IyAtKi0gdGV4dCAtKi0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5yYzMgLT4gVjUuNy4yCgpjb21taXQgNTA1NGI1NzA2MTlkZjBhODE5NThhMDQ1YmVmMTM1YjIwMjA1ZjAzNgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAxNToyNjowNSAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yCgpjb21taXQgNTZhNzk3ZmYzZTcxZGM4ODY0NjdkMTdjZTAyNWIwMjM3YzhjMWNjMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAxNDo0MjoyMyAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMgoKY29tbWl0IDA4MTNmOGI2MmRmMGU4NDQwZmZlZjE2MWNlMTM0ZmY5NDU1ZTdkZTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5lQHJlZGhhdC5jb20+CkRhdGU6ICAgVHVlIE9jdCA5IDA2OjMzOjU4IDIwMTIgLTA3MDAKCiAgICBmaXggZG91YmxlLW5lZ2F0aXZlIHR5cG8KICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYTZhODg5Mjc1MzQ2ODRlMjc1Y2NmMGU3ODA1MTMwOTRhNzNmYzZiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMToyMSAyMDEyIC0wNzAwCgogICAgQUlYIG5ldC1zbm1wNS43LjEgaHJTV1J1blBhdGggbm90IGNvbXBsZXRlCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDU4YTRkODgzOTAyMWY3NzJjMzVhNzMyYmQwOTZkMWUyOTBkYzBhNjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMDY6MzA6NTcgMjAxMiAtMDcwMAoKICAgIEFJWCBuZXQtc25tcDUuNy4xIGhyU1dSdW5QYXRoIG5vdCBjb21wbGV0ZQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2MjZlYWJlYzRlYTk4ZTUzNTkwODk3OTA4NTg0NzlhNTlhMjZjZGNiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCAzMCAyMzozMDoyOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTW92ZSB0aGUgY2hlY2sgdGhhdCB0aGUgcGR1IHZhcmlhYmxlIGlzIG5vbi1OVUxMIHRvIGJlZm9yZSB0aGUgZmlyc3QgZGVyZWZlcmVuY2Ugb2YgaXQuCgpjb21taXQgNjhhYWI1NzJjMmQyNzQ2YjUxYTk1ZWJhMTEwNTY4YzM4YjA1MDgwOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjUgMTk6MDc6NDIgMjAxMiAtMDcwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCAwYTQxNTMzYjFiNDlmMDBkNzM1N2EzZDJiZWE1ZGZhNzVlOGVkY2Q3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIFNlcCAyNCAwMDowNzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3QgY2FzZXMgZm9yIHNubXBfc2VydmljZQoKY29tbWl0IGE2MWI0OGQ3OGUxMWQ5NDVkZWY0NmZkZTBmN2Q1NWY3OTE5YzMzNWEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDIzIDA3OjUzOjA5IDIwMTIgKzAyMDAKCiAgICBQcmVmZXIgY29weV9ud29yZF9jb25zdCBvdmVyIGNvcHlfbndvcmQoTkVUU05NUF9SRU1PVkVfQ09OU1QKCmNvbW1pdCA5YmZmYzU0MTNkMGQ4ODIzOThiMDZmNDEwOWFjODA3YWYyZjc4MzQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCAyMyAwMDoyOTo0NCAyMDEyICswMjAwCgogICAgU2ltcGxpZnkgbG9nZ2luZyB0aHJvdWdoIHRoZSB1c2Ugb2YgbmV0c25tcF9jb25maWdfZXJyb3IKCmNvbW1pdCBkMDlkNTNhMGZhNmRmNjNiMjFlNmYxMjczMWJlZTUxYTM2MjRlODVlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IFNlcCAyMiAyMTozMDowOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNyYXNoIG9uIGluY29tcGxldGUgY29uZmlndXJhdGlvbiB0b2tlbnMuCgpjb21taXQgMDJkY2U2ZjQzYjk5Zjg1OTQxNjI3OTI4YzFhNTAyMmQ2NzI1ZDEyNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBTZXAgMjIgMjE6Mjg6NTEgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCB0cnVuY2F0ZSBzaW5nbGUgZGVmYXVsdCB0cmFuc3BvcnQgZG9tYWlucwoKY29tbWl0IDIxMWUzYzcwNjI1OTY1NDQxYjJhMDI5YTYxMTM4MDI5NzQ2NzNjNDMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgU2VwIDIyIDExOjIzOjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY3Jhc2ggZnJvbSBlbXB0eSB2YWx1ZXMgaW4gLS10b2tlbj12YWx1ZSBhcmd1bWVudHMKCmNvbW1pdCBhZjNkMmQ5NzNiMWU4ZTI5ZDIwNWQ4YTA3YWNkODJiMWY4NTQ4MTllCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IFNlcCAyMiAxMDozMDoxNiAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIHRoZSBzeW1ib2wgTkVUU05NUF9QUklvIHRvIGhlbHAgaW4gcHJpbnRpbmcgb2lkIHZhbHVlcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5yYzIgLT4gVjUuNy4yLnJjMwoKY29tbWl0IDhiNDUyOTIzMDFmMDM0OWZmYjY5ZDRmZDg1OTVmMmQ1YjE5OWU2YjYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI1IDE5OjM1OjM5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucmMzCgpjb21taXQgMGNiZmZiNTY1ZTYyYWVmOTM3ZmM3MDBkOGQzYzNiOGM2NWRkZmE2NQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjUgMTk6MDc6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucmMzCgpjb21taXQgNDA1MDU5NzFhZGQ2YTNiNmY1OTU0Y2ZiZGU1MzI3NDliZmJjYjE2YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MzQ6MzcgMjAxMiAtMDcwMAoKICAgIGZpeCBmb3IgaGlkZGVuIENNU0dfeHh4IG1hY3JvcyBvbiBBSVgKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNjBmMGE5ZTk4M2FiODI3YzgyNGUzOTdkNjJhZWZmNDhhNjBmMDEzMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MzE6MTIgMjAxMiAtMDcwMAoKICAgIEZpeCBwc3RhdCBtZW1vcnkgbGVhayBvbiBocHV4IDExaQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAxM2JkNGQ1NmJhYTk4ODYwMThhMDA0NzdlMzIxNGViZTAyNzA1ZmZlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzozMTowNCAyMDEyIC0wNzAwCgogICAgRml4IHBzdGF0IG1lbW9yeSBsZWFrIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDA4MDU0MjA4MTNkZTE1NmM3ZmM1MTQyNTM0ZmI0MjBhMGZjYzM1NzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI4OjU5IDIwMTIgLTA3MDAKCiAgICBmaXhlcyBBVCBjb2RlIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGJkYjNiMTQ2MzgwZGIxMzE2Y2FiZDU4YjcwNDQzNmU3ZWVjZGQ5ZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI4OjUwIDIwMTIgLTA3MDAKCiAgICBmaXhlcyBBVCBjb2RlIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGU5MzZjZjgxMGE0NzM3OTE1NmQ5MTNhNzE0ZTM4MTYxODFhMGQzZGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI1OjIwIDIwMTIgLTA3MDAKCiAgICBmaXhlcyBkaXNBdmFpbCBvbiBGcmVlQlNEIHVmcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2MDhhYjU3ODg3ZTU1NjZlNjM1MDlhM2Y3ZTVkMGEzZTI4OTJmNGE3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzoyNTowMiAyMDEyIC0wNzAwCgogICAgZml4ZXMgZGlzQXZhaWwgb24gRnJlZUJTRCB1ZnMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucmMxIC0+IFY1LjcuMi5yYzIKCmNvbW1pdCAwN2Y5MTQ1NjRlMDk3MjI0ZDY3NzUxNWMyZjVmZDFmM2MwYzllYjQyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAxIDA5OjU0OjQyIDIwMTIgLTA3MDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNy1wYXRjaGVzCgpjb21taXQgYWVlMjE3YzA3ZWE5ZjM0YTMyMjY4ZTk2NmM3ZWNlZjAzNmVjNGE5NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMSAwOTo1NDozOCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5yYzIKCmNvbW1pdCAxMTliMGQzY2YxMmM5N2NhM2M3NGQ2ZDFlNzIzMTk2NzBhODM3OGFhCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAxIDA5OjUxOjA4IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTYwNDczOiBmcm9tIGZlbm5lcjogSGFuZGxlIFRpbWVUaWNrcyB3aGVuIHByZXR0eS1wcmludGluZyBPSUQKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYzk0YzYyZWEwZWRjZWJiZmJiNzNmYWI2ZWNkZGM2NzlmNzY5NGRhYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMSAwOTo1MTowOCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU2MDQ3MzogZnJvbSBmZW5uZXI6IEhhbmRsZSBUaW1lVGlja3Mgd2hlbiBwcmV0dHktcHJpbnRpbmcgT0lECiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDZkN2Y5ZWIwZGVjZGI5NjgyODM2ZmZkMDNmMTk3NDIxOTdhZDg3ZGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDI5IDIxOjE0OjQ2IDIwMTIgKzAyMDAKCiAgICBGaXggcG9zc2libGUgbWVtb3J5IG92ZXJydW4gaW4gZnN5c19nZXRmc3N0YXRzLmMgKHBhdGNoIDM1NTk0MTcpCgpjb21taXQgZjIzNWVlOGIzMmVlZDFkZTNmMWU0MjAyZWY0NWI2Mzc3ZmJjZTE2MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMjkgMjE6MDc6MTQgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgaHJTdG9yYWdlVGFibGUgb24gQUlYIChidWcgMzU1NzE1OSkKCmNvbW1pdCA3OGNjOWQ1Y2NkODZiMTcwNjIyYWFjNTQzYzM0NWMwMjA3NTVjNzhhCkF1dGhvcjogc3RoZW4gPHN0aGVuMjM5MzRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTg6MDkgMjAxMiAtMDcwMAoKICAgIGFkZCBtaXNzaW5nIHByb2Nlc3Mgc3RhdHVzIHZhbHVlcyB1bmRlciBuZXQvb3Blbi1ic2QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNGVmOWRjZDgwYjBiZGExZTE4YjdlMzQ5YTA4YmMwZjIyYTdlNzU1ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTY6MzcgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IE9wZW5CU0Q6IFBBVENIIDM1NTk0MTQ6IGZyb20gbmJhOiBzdXBwb3J0IE9wZW5CU0QgZm9yIGhyX3N3aW5zdAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwYjU2OWZjY2VhOTQxNGM1MGNmZDZiMGU4M2UxODMxYmExMjkxY2UyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNDo0NSAyMDEyIC0wNzAwCgogICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAxZDNjN2JlN2ZhN2EzOGZkM2ZjMzk3MjBiYjVjYjcwZjhiZDcxMTYwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNDoyMiAyMDEyIC0wNzAwCgogICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBmZjQzODQzM2FjYTA5NmJiYmVhMjlkZDMwZGZkNWM1NTIzNzYxYTcyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNjo1MDo0NiAyMDEyIC0wNzAwCgogICAgRml4IHJlYWwgbWVtb3J5IHJlcG9ydGluZyBvbiBCU0Qgc3lzdGVtcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBjNDI5YTRmMzk4NGRhZTc5MWUzMDdkZjcwMjI1MWY5NmVmMDQ3ZDg4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNjo0OToxMCAyMDEyIC0wNzAwCgogICAgRml4IHJlYWwgbWVtb3J5IHJlcG9ydGluZyBvbiBCU0Qgc3lzdGVtcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA0MWQ5ODBjMDE1NTY0ZGI3ZjIyZjc2MzE5MGY2MWFjMGQ1NmJhM2IyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyAyNCAxNDozNTo1MyAyMDEyICswMDAwCgogICAgV2luZG93czogVW5icmVhayBETEwgYnVpbGQKCmNvbW1pdCAyNzkzOTIzYmZlMmIwMjZmY2FlYWY1MzhhZTUwM2YxMDVjYjMxNWJjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzIDIyOjI2OjIwIDIwMTEgKzAwMDAKCiAgICBhZGRlZCBtaXNzaW5nIFRMU1RDUCBtZW50aW9uIGluIHRoZSBoZWxwIG91dHB1dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnByZTMgLT4gVjUuNy4yLnJjMQoKY29tbWl0IDllYzVjNTk5NzgwMjUxZGNkMzE1NWY5YWM5ODA2ZWNlN2VkNmJhMjIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXVnIDExIDEyOjAwOjM3IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucmMxCgpjb21taXQgMzM1OGI2NWIxMWUyYzBlZTcxMmY2MDlmMDIwNzEyNjBmNzVmOWJiMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBdWcgMTEgMTE6Mzk6MzggMjAxMiAtMDcwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCA0ODQ5YTQzMGRhYWZiOTFjN2E2MWJmYmJjMTdmOTI5OWU1OGZjZjY0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEF1ZyAxMSAxMTozOTozNSAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5yYzEKCmNvbW1pdCAxYmMyNjg0MjhlODI5ODUyYzllZjBhNzk1NTJjYTQwNDVhZGQyOGEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDIyOjQyOjUyIDIwMTIgKzAyMDAKCiAgICBNYWtlIHN1cmUgd2UgaGF2ZSBhbiBpbml0aWFsaXplZCBrdm0gc3RydWN0dXJlIHdoZW4gcXVlcnlpbmcgcHJvYyB0YWJsZSBvbiBCU0QuCgpjb21taXQgN2U2N2M1MDM4YjZhYWJmZGExOTM5ZWE4MWQ5NDBiMjQwMDBjZmI1MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTQ6Mjc6MDggMjAxMiArMDIwMAoKICAgIFJlbW92ZWQgZXJyb3IgbWVzc2FnZSB3aGVuIGZpbGUgY2Fubm90IGJlIG9wZW5lZC4KICAgIAogICAgVGhpcyBzaG91bGQgYmUgaGFuZGxlZCBieSBjYWxsZXIsIG5vdCBpbiB0aGUgZnVuY3Rpb24uIFRoZXJlIGlzIG9ubHkgb25lIGNhbGxlciBub3csIHVkcF9lbmRwb2ludF9saW51eC5jLgoKY29tbWl0IDU5YjBkZTBiOGZhNzNlYjQwMzAwNmNlZTc1ZmY4NjUxZTE1ODVlMjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDE0OjIzOjE0IDIwMTIgKzAyMDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3JzIGludHJvZHVjZWQgYnkgY29tbWl0IGY5NWRmNjM0MWIxZDA2MjQ5NDQzZTUxNmI1OWE0M2NkZmEzZDQ3NzcuCiAgICAKICAgIFRoaXMgaXMgZW1iYXJhc3NpbmcsIEkgY29tcGlsZWQgdGhlIHNvdXJjZXMgd2l0aG91dCAtLWVuYWJsZS1pcHY2LiBTb3JyeSBmb3IgaW5jb252ZW5pZW5jZS4KCmNvbW1pdCA1ZDdlZGFkZDQ3NjE2ODBiNjZkMWRmM2JmZGU3Y2E1YjE2Y2E1YTE2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxMjo0NjozNSAyMDEyICswMjAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGludHJvZHVjZWQgYnkgY29tbWl0IGY5NWRmNjM0MWIxZDA2MjQ5NDQzZTUxNmI1OWE0M2NkZmEzZDQ3NzcuCgpjb21taXQgNDNjOTdiYmFhZjIxMWY0YzdmN2M3MDRjZmNiOTAxZGZiZjgzNDg3NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6MzA6MDkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBMb3dlcmVkIHNldmVyaXR5IG9mICdFcnJvciBleHBhbmRpbmcgWFhYIHRvIDY0Yml0cycgbWVzc2FnZXMuCgpjb21taXQgOGU1Y2YyYTcyYTQ2Y2Q0ODNkMjJlNjI5MGE2YzhjNGMyNmFmNmFkMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6MjU6NDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHJlbW92ZWQgY291bnRlci02NCBlcnJvciBtZXNzYWdlcy4KICAgIAogICAgVGhlc2UgbWVzc2FnZXMgZG8gbm90IHNheSBlbnl0aGluZyB1c2VmdWwsIGNhbGxlciBzaG91bGQgY2hlY2sgdGhlaXIgcmV0dXJuIHZhbHVlIGFuZCByZXBvcnQgaXQuCgpjb21taXQgZjk1ZGY2MzQxYjFkMDYyNDk0NDNlNTE2YjU5YTQzY2RmYTNkNDc3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6MDE6MjUgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiByZW1vdmVkIGVycm9yIGxvZyBtZXNzYWdlcyB3aGVuIElQdjYgaXMgZGlzYWJsZWQuCgpjb21taXQgMThkYWNlOGU0YTM2YjA4M2Q2ZWY3MTc3MzVjNjNlN2Y0MDIyNGRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTA6NDE6NDUgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGFkZGVkIENWRlMgKENlbnRyYVZpc2lvbiBGaWxlIFN5c3RlbSkgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZS4KCmNvbW1pdCA5MGY0MzFiNDVkMjE1MDY0MjdiYzBiZDFkNGVlNjllMGI4ZWEzMGJjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIzOjEwOjUwIDIwMTIgKzAyMDAKCiAgICBVcGRhdGUgdG8gY3VycmVudCBNSUIgdmVyc2lvbnMKCmNvbW1pdCA5ZTdhMGI5ZTU4MGQzYjFlYTYxOThhNzQxNGM4MTZjMjNiMTIzYjEwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIyOjI3OjE2IDIwMTIgKzAyMDAKCiAgICBVc2UgYSB3cmtpbmcgYXdrIGZvciBTb2xhcmlzCgpjb21taXQgMGUzOTIyYWUyMWU0YjdlYzUzODg2N2FmZDIyY2U3NGQ3NDFlMGYxYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMjoxNzozNCAyMDEyICswMjAwCgogICAgZml4IHByb3RvdHlwZSBmb3Iga2xvb2t1cAoKY29tbWl0IGEyMjEwOTcxMWE2ZDFlYzE0YjZhM2YxY2FjMjIxZDcwMjYzZjEwNGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDggMjI6MDg6MTMgMjAxMiArMDIwMAoKICAgIGZpeCBwcm90b3R5cGVzIGZvciBrbG9va3VwCgpjb21taXQgYWMwNjI5NzJjNTg1MTc0Zjk1ZDdiYTg3YWE1ZWM1NGM0MmZkZWM1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMjowMDoyNiAyMDEyICswMjAwCgogICAgZml4IHByb3RvdHlwZXMgZm9yIGtsb29rdXAKCmNvbW1pdCA3Y2RkOGViZWY5NTA3ZmU3NjYxMDdjYTlmZWUwNTRjNDRjYzBiYWM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyA1IDA4OjEzOjU5IDIwMTIgKzAwMDAKCiAgICBNYWtlIHNubXBfYWxhcm1fcmVzZXQoKSB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgMzdiYTdlMi4KCmNvbW1pdCAwMjNmNjFlYTc4M2JmY2M1M2ZlOTBhYTY2NTQ1YzVhZWEyZGI4MDYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyA4IDE2OjI2OjU0IDIwMTIgKzAwMDAKCiAgICBGaXggYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IGNvbW1pdCAwMjg2MTRlY2YyZDY3Mzk4Njk5ZGMzYmQ3ODQwMjlmMzM2MGYyZTEzCgpjb21taXQgY2Q4MjA5NDlhMTQ5MWFmMTAzYTg1NTVmNmJkYWUwNDg1MWYzZDI4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgOCAxNjoxNjo0MyAyMDEyICswMDAwCgogICAgVW5kbyBidWlsZCBicmVha2FnZSBjYXVzZWQgYnkgY29tbWl0IDM3YmE3ZTIwYTUyMWZiZjA0NThhMGM3N2VlYTJlNWUzNmJkN2VjMGEKCmNvbW1pdCBmMTQzMDA4Y2NjNTdlYTEwY2JiODhhYjM1NTQ4MjJiMTdiNjI3MGFhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyA1IDA4OjQ1OjQyIDIwMTIgKzAwMDAKCiAgICBNYWtlIGdldF9leGVjX291dHB1dCgpIHdvcmsgb24gYmlnIGVuZGlhbiBzeXN0ZW1zLgogICAgCiAgICBVbmRvIEFQSSBicmVha2FnZSBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA3Mzc0Yjg0ZmU0YzJlZjg0OTdmZGUzZGFlODBhNjlhYTg5ZWJhMTljLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnByZTIgLT4gVjUuNy4yLnByZTMKCmNvbW1pdCA4NDMyMmUwZGMyYTg5NzQ2NDY1NDJkOTg4MWJjMDFiNDNkYzNhMTJkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNjoyNDowNyAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTMKCmNvbW1pdCA4ZmVjN2E4MWQ2MTMzYTVmMDVlZDM0YTVhZjk4MDZhZjVkMTI4MjIzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNTo1Nzo1NiAyMDEyIC0wNzAwCgogICAgZml4IHRoZSBhc3NlcnQgY2hlY2sgdG8gYWxsb3cgZm9yIHNvbWUga25vd24gYXNzZXJ0cwoKY29tbWl0IGRmZGU2ZDJkZGQ1MTljOGMyYWUxNzg4Nzc0ZmRmOTBkOGJlYTAyYjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDMwIDEwOjA4OjI0IDIwMTIgLTA3MDAKCiAgICBpbmNsdWRlIGVycm5vLmggYW5kIGRvbid0IHVzZSBjb250aW51ZSBvdXRzaWRlIGEgbG9vcAoKY29tbWl0IDdjZmZlMDIyMmNkOThhMjFlMzBmNDRjM2RmOWYwZDkwYmYwOTZmZTkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDE0OjEzOjUwIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTMKCmNvbW1pdCAyMmFmN2ZkNDY3NzZhOGRiMjM2MmU4OGFjYjFiNjliMTY1YzAzNGI2CkF1dGhvcjogYmxlbnR6IDxibGVudHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6NTI6NDAgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFpeDogUEFUQ0ggMzQwMzQzMzogZnJvbSBibGVudHo6IElzc3VlcyB3aXRoIGhyU1dSdW5OYW1lIGFuZCBQYXJhbWV0ZXJzIG9uIEFJWAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA1MTZiOWY4Mjc1YjhkYjAzY2RjNDEwNzhlNjVjMjE3MDMwOWEzZjhiCkF1dGhvcjogSnVsaWVuIFBpbm9uIDxqcGlub25AdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6MjU6MzEgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IHBlcmw6IFBBVENIIDM0MTI5Mzk6IGZyb20ganBpbm9uOiBSZXBhaXIgdGttaWIKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgOGYyMzBmNDAxYzY0ZDgyMjg4M2FjNDQ0NjI0YTJjMmZkNzEyOGQ4ZQpBdXRob3I6IEhhcnNoYSBTaGl2YW5uYSA8bmFhbnVoc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMzoyMjoxMSAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU1Mjc0NTogZnJvbSBuYWFudWhzOiBmaXggdG8gc3VwcG9ydCAzMiBjaGFycyBmb3IgVkFDTSBuYW1lcyBhcyBwZXIgUkZDLTI1NzUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMzQwMDhkMzJhZWY0M2Q4YmJlMTAwMGZiOWJmOTQ2NDJjMDUxNGY2ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6MjA6MzEgMjAxMiAtMDcwMAoKICAgIGZpeCB0aGUgYWdlbnR4IHBpbmcgcGF0Y2ggc28gaXQgd29ya3Mgd2l0aCB0aGUgbmV3ZXIgYWxhcm0gc3RydWN0dXJlIG5hbWVzCgpjb21taXQgOTYyNjc2Mzk0ZDNmZTU1N2VhZDkxMDU3YjRkNzgwMjI2ZGMwZDZiMwpBdXRob3I6IE1pam8gU2FmcmFkaW4gPG1pam9zQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEyOjQ4OjAxIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQxNDA1MTogZnJvbSBtaWpvczogc25tcC1icmlkZ2UtbWliOiBmaXggZm9yIGRvdDFkQmFzZVRhYmxlCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDM3YmE3ZTIwYTUyMWZiZjA0NThhMGM3N2VlYTJlNWUzNmJkN2VjMGEKQXV0aG9yOiBWaW5jZW50IEJlcm5hdCA8dmJlcm5hdEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMjoyNzoyOCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0ODE2ODY6IGZyb20gdmJlcm5hdDogRG9udCBwaW5nIG1hc3RlciBhZ2VudCB1bmxlc3MgdGhlcmUgaXMgbm8gaW5jb21pbmcgdHJhZmZpYwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAyYmU1ZmVhZGIwNTQwODQ2ZTBlM2FkYTI3ZWZiOTc4OTRhNGNiZDUyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAwNzoyOToxNyAyMDEyIC0wNzAwCgogICAgYWRkZWQgYSBkYXJ3aW4gMTIgdmVyc2lvbgoKY29tbWl0IDFmOWJjZDIxZTdjMmQ1ZWZmYjYyYWEwMWI3Yjg3ZTQzZGM4NjIxNGMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNDo0MzoyNyAyMDEyICswMjAwCgogICAgRml4ZWQgU0NUUC1NSUI6OnNjdHBBc3NvY1ByaW1Qcm9jZXNzLCB0aGUgbGlzdCBvZiBwcm9jZXNzZXMgd2FzIG5vdCBpbml0aWFsaXplZC4KCmNvbW1pdCA0OGJlNWU4OWFhMDRhZGIwZGY3ZTA5NGIyZmU0NjMwMTU0MjlmYzk4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6NDg6MzEgMjAxMiArMDIwMAoKICAgIEFkZGVkIGxvZyBtZXNzYWdlIHdoZW4gaXBUYWJsZSBtaXNzZXMgc29tZSBpbnRlcmZhY2VzLgoKY29tbWl0IDc1MjNmMGYwMWJhNGRiNjVhYzE2NDdhMjMyMjhjZjA2YzBiNzJhMDMKQXV0aG9yOiBNYXJpdXN6IENlaWVyIDxtY2VpZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MTk6MzMgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1MzY2OTI6IGZyb20gbWNlaWVyOiBjcmVhdGUgYSB1bml0IHRlc3QgZm9yIHJlYWRfY29uZmlnIEFQSXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYzA3YjhkOWIzNzcwYjYxNWM4ZTE2MmRiZGY3NjQzODA1ZjM3MmQ3NQpBdXRob3I6IE1hcml1c3ogQ2VpZXIgPG1jZWllckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAzMCAxMDoxODo0MiAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzUzNjY5MjogZnJvbSBtY2VpZXI6IEZpeCBmb3IgY2FsbGJhY2sgY2FsbGluZyB3aGVuIHVucmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXIKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNWMyNDI0ZjA3ZDg1YzBjNGY3OWQ2YzVmYWY2NGQ3ZjNlZTg2MTcyNgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MDg6NDIgMjAxMiAtMDcwMAoKICAgIGRvbid0IGR1cGxpY2F0ZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGRlZgoKY29tbWl0IDczNzRiODRmZTRjMmVmODQ5N2ZkZTNkYWU4MGE2OWFhODllYmExOWMKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMDk6NDE6MTcgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzODM5NzA6IGZyb20geWFiZXJhdW5leWE6IEZpeCBjb21waWxlIGVycm9yIG9uIEZyZWVCU0QgOS54L1BPU0lYaWZ5IGF1dG9fbmxpc3QsIGV0YwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2NzBkOTZlNzg2NTkwZmRkMzBhMTZhMzMwMGMwZWQ1YmQ2ZTUzMjE0CkF1dGhvcjogTWFyayBSdXNrIDx1c2VyX2lkPTM0OTg5NUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAyOSAyMzozOToyMiAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MjQ5MzM6IGZyb20gdXNlcl9pZD0zNDk4OTU6IFVzZSBORVRTTk1QX0RTX0FHRU5UX0FHRU5UWF9USU1FT1VUIGZvciB0aGUgZGVmYXVsdCB0aW1lb3V0CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGYxZWFlYzE1ZWY2MDNiOGNlNTQyOTMyZmZkYmQ4Nzg4YzNkMWFjYzUKQXV0aG9yOiBEYW5pZWwgSG9iaSA8aG9iaWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdWwgMjkgMjM6Mjg6MDEgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNTMwNzk0OiBmcm9tIGhvYmlkOiBwYXNzL3Bhc3NfcGVyc2lzdDogdW5yZWdpc3RlciBNSUIgd2l0aCBjb3JyZWN0IHByaW9yaXR5CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGQ3ODNhZDk5MGU5MTRjMGVlMWM5OGQwYTkzYTQyOWViMmIyZjQ5OTcKQXV0aG9yOiBEb3VnIE1hbmxleSA8dGVra2FtYW5lbmRsZXNzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIzOjI1OjQwIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTI2NTk5OiBmcm9tIHRla2thbWFuZW5kbGVzczogQSBidWdneSBTTk1QdjMgYWdlbnQgY2FuIGNhdXNlIGEgbmV0LXNubXAgY2xpZW50IHRvIGhhbmcKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZTk4NTE1MjBjMThkN2VkMTcyNDA0YTM3ZGMwZGM3YTEzNmJmYWVkZApBdXRob3I6IERhbmllbCBFdmVycyA8ZGFuaWVsLWV2ZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIzOjE0OjE5IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTQ4MjU3OiBmcm9tIGRhbmllbC1ldmVyczogZml4IGZvciByZWN1cnNpdmUgcHRocmVhZCBtdXRleGVzCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGU3YTM3Njc4YzJiNzM1OWFmZDQ0YTMwN2U4MjRjMWY3ZDdhMGM4N2QKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIxOjM1OjM1IDIwMTIgLTA3MDAKCiAgICBORVdTOiBvc3g6IHBhdGNoOiAzNTE0MDQ5IGZyb20gdHdvYml0cy1naXRodWI6IGZpeCBjb21waWxhdGlvbiBvbiBkYXJ3aW4xMQoKY29tbWl0IDEyMjE0MjZhYmFkMTViOWIyZmNlZThmMWUzMmFiNTJlZjI2OTI5NTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxNDoxODoyNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogUEFUQ0hFUzogMzUyOTU0MTogRG9uJ3QgcmVmZXIgdG8gaW50ZXJuYWwgJ215JyB2YXJpYWJsZXMgZnJvbSBleHRlcm5hbCBzY3JpcHRzCiAgICAKICAgIEZpeCBwcm92aWRlZCBieSBMZXp6IEdpbGVzCgpjb21taXQgOWMwNmMyMjAyZGMwNTY3MDNjODA5NTlhMGVjYTlhNzE2ODRjMjhkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEzOjI5OjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzUzNjQyMDogRW5zdXJlIHNuZC9yY3YgbWVtb3J5IGJ1ZmZlcnMgYXJlIHN1aXRhYmx5IGFsaWduZWQKICAgIAogICAgUGF0Y2ggcHJvdmlkZWQgYnkgVHlsZXIgT2xtc3RlYWQKCmNvbW1pdCA4OWI4MmM1NWY5ZWZkMmU4YWI4YzZkNjVmYTU2N2M1YjFmYWMxODQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTM6MTQ6MDcgMjAxMiArMDEwMAoKICAgICJJZGxlIiBwcm9jZXNzZXMgKGkuZS4gaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgY3JlYXRlZCkgYXJlIHByb2JhYmx5CiAgICBiZXN0IHJlZ2FyZGVkIGFzICJ3YWl0aW5nIGZvciBhbiBldmVudCIgdG8gYmVjb21lIHJ1bm5hYmxlIC0gaS5lLiAnbm90UnVubmFibGUoMyknCiAgICBUaGF0IGV2ZW50IGJlaW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjcmVhdGlvbiBwcm9jZXNzLgogICAgICAgSXQncyBhcmd1YWJsZSB3aGV0aGVyIG9yIG5vdCB0aGV5IGFyZSBzdHJpY3RseSAibG9hZGVkIiwgYnV0CiAgICB0aGlzIGZlZWxzIGxlc3MgbWlzbGVhZGluZyB0aGFuIHJlcG9ydGluZyB0aGVtIGFzICdpbnZhbGlkKDQpJwoKY29tbWl0IDZlNzgwYTViZjBkNjRiZjQ3ZGZiZjQ3OWFlN2Y1NmMxMGZmODE2NmUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxMjo1Nzo1NCAyMDEyICswMTAwCgogICAgQ2xhcmlmeSBtZWFuaW5nIG9mIGhyU1dSdW5TdGF0dXMgJ2ludmFsaWQoNCknCiAgICBFbnN1cmUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGFsdGVybmF0aXZlcyBkb24ndCBjb25mdXNlIGNvZGUgc3ludGF4Cgpjb21taXQgOTliMzUzZjcyNTNhNWJiMzhiODZmMzFjMjcwOGUxNmIzNGE0NmNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEyOjUwOjUxIDIwMTIgKzAxMDAKCiAgICBBZGRpdGlvbmFsIHBhdGNoIGZyb20gUGF0Y2ggSUQgIzM1NDMwMDAKCmNvbW1pdCBkMGUwM2ZlNGEyMzY5NDVkYWY0MmFmN2E0NzA5NGU2ODZmOWJkYjllCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTI6NDE6MDIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNTQzMDAwOiBWYXJpb3VzIGZpeGVzIHRvIFJtb24gY29kZQogICAgU3VwcGxpZWQgYnkgUGF0cmljayBSaXR0ZXIKCmNvbW1pdCA2NjMyYTJiOWI5ZmFkMWEwYjBkNmJhZWRmMmEyYjM5MWY1ZDRlOTE0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTQ6Mzk6NDIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEJVRzogMzUxNzAzMDogRW5zdXJlIGxhcmdlIHRhYmxlcyBhcmUgd2Fsa2VkIHByb3Blcmx5Cgpjb21taXQgYjhkMTY2MDRkYmIyZjgwZWJlMjg1MjMyMmFhODMzNjFhMDMyMzc5NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDE0OjE5OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBhcHBzOiBCVUc6IDM1Mjk3Njg6IEJlIG1vcmUgY2FyZWZ1bCB3aGVuIHN0cmlwcGluZyBvZmYgbnVtZXJpYyBzdWZmaXhlcwoKY29tbWl0IDBiM2FkNDRlYzRjMWI5ZjQxZGMzZWY3MGU2YTM4YTUzZWYyNjhhZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMzozNDoxMCAyMDEyICswMTAwCgogICAgRml4IGNvbW1lbnRzIGRlc2NyaWJpbmcgRnJlZUJTRCByZWxhdGlvbnNoaXBzCgpjb21taXQgOGNmN2E4OTE4N2E5OTZmYWZmMDQwNDE0OTg2ZmZhNWQ3OGQ1NjgzZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEzOjIxOjU2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBidWlsZDogQlVHOiAzNTMyMjM0OiBGaXggdHlwbyBpbiBsaWJ0b29sIHNjcmlwdAogICAgKGFkZHJlc3NlZCBwcm9wZXJseSBpbiBsaWJ0b29sIDIuNC4yKQoKY29tbWl0IDQyNThkODUyY2E3YjZhZWFlOTNhZDczMDY0ZDQzYWE4MDdlYjYxMDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMzoxNjoyMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogZG9jOiBCVUc6IDM1MzUyNjk6IERvY3VtZW50IHVzZSBvZiBbc25tcF0gZm9yIGNsaWVudC1zaWRlIHRvb2xzLgoKY29tbWl0IDI2ZWQ0MGNiZDA3Y2YyNzFhOWNmYzQ1MTdkOTY0Nzc0NzEyYWQ3N2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMjo1Nzo1NiAyMDEyICswMTAwCgogICAgU3VwcG9ydCBsb2NhbCByb2xsdXAgb2YgcGF0Y2hlcyB3aXRob3V0IGZpcnN0IHN5bmNocm9uaXNpbmcgd2l0aCBleHRlbmFsIHJlcG8uCgpjb21taXQgOTA0YzQ0MmQ2MGM1Yjk5YWFjZDdmNjAzMDdjMjg2ODRlZmFlODU0YwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEyOjUzOjM3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEJVRzogMzUzNTk2NzogRml4IG1lbW9yeSBsZWFrIC0gc25tcF97c2Vzc199ZXJyb3IgYWxsb2NhdGVzIHRoZSBvdXRwdXQgYnVmZmVyCgpjb21taXQgNTk3ZWNkYTY4ZWUyYjU4MGI2NjYyODg5NzdiMDRhYTEzMzIwNzUxNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEyOjE3OjE0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM1NDA2MjE6IGRpc3Q6IEFkZCBtaXNzaW5nIFByb3ZpZGVzOiB0byBuZXQtc25tcC1wZXJsbW9kcyBSUE0gc3BlYwoKY29tbWl0IDQzZDViYTIyNGMzZjI5ZmQ4ZTdmZDFkMDYwYTE3MDQ1YWFkN2VmZjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMToyNTo0MyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogQlVHOiAzNTQxMDEyOiBGaXggaGFuZGxpbmcgb2YgZ2V0dGFibGUgY29sdW1ucwoKY29tbWl0IGJjMjkzYWNhZDhkMzQ4N2NkZGVmM2M3MGNlYTc0MzY4ZjM0ZDkzNTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMToyMDoyMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzU0Mzg2NDogUmVtb3ZlIGV4dHJhbmVvdXMgZnVuY3Rpb24gdHlwZQogICAgKGFuZCBmaXggYSByZWxhdGVkIHR5cG8pCgpjb21taXQgMDI4NjE0ZWNmMmQ2NzM5ODY5OWRjM2JkNzg0MDI5ZjMzNjBmMmUxMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDI0IDE1OjM3OjE2IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuCgpjb21taXQgNGQzODg5NWY0NTlhMWRmMjRmNjhjNGE2MGU0Y2FmNmE3NzhkOGMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI3IDA5OjM1OjQ0IDIwMTIgLTA0MDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcmVtb3ZlZCBsaW1pdCBvZiAnZXhlYycgYW5kICdzaCcgZW50cmllcyBpbiBzbm1wZC5jb25mCiAgICAKICAgIFVzZSBkeW5hbWljIChyZSlhbGxvY2F0aW9uIGluc3RlYWQuCgpjb21taXQgZGNlZWFjYzk5OGZlMjMyMjg4MmU3ZWVkZWMwYTcxYTc5ZGM0OTRhYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgSnVsIDI0IDA5OjAwOjIzIDIwMTIgKzAxMDAKCiAgICBEb24ndCBiZSBzdXJwcmlzZWQgaWYgdGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gdmFyaW91cyBmaWxlcwoKY29tbWl0IDU2YzNjMDc4MzM2Y2JmMWJmMDlmZDFiMDEwNzhhOTAzMDcxNzYxM2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSnVsIDExIDA4OjQ3OjEzIDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIzMDc6IENvcnJlY3Qgc3lzT1JJRCBmb3Igc25tcE1QRFN0YXRzLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgoKY29tbWl0IDYxZWNlZGMwODNmODgxZGI4YTlhNTBkNTBiZGVlZDM2NjI0ZWQzMDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSnVsIDExIDAwOjIxOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIxODg6IENvcnJlY3Qgc3lzT1JEZXNjciBmb3Igc25tcFVzbU1JQi4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KCmNvbW1pdCAyZjllZGU0MTlmNDBlODQ4YTI0MjUzODkyODhjYWMwZTIzMzFiOTkyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMTkgMTc6MTA6NTIgMjAxMiArMDEwMAoKICAgIEZpeCBleGFtcGxlICdyc3luYycgY29tbWFuZCBmb3IgZnVsbCByZWxlYXNlcwoKY29tbWl0IDZkZDc4ODRkOTllNzU2ZTJmMjJiNjg4ODIzY2UxYjFkNTI2YWQxNjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxNTo1OTo1OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yCgpjb21taXQgOTc2Njk2YTEyOGU1N2I1MTJiZjdhZDQwMGQwMDIzNjhiNGE5YTg3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDE0OjM0OjMxIDIwMTIgKzAxMDAKCiAgICBWNS02LXBhdGNoZXMgb3V0IG9mIFJlbGVhc2UgQ2FuZGlkYXRlCgpjb21taXQgNTdjNTY4ZDNkMzk4MTcyYzU1NDFmYjMxYmI3NWQxOGZjY2UyZTI2ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDE0OjM0OjE1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yCgpjb21taXQgNzNkOTA2YmM3Yzk4NTA2ZmEyYjRkNmQyOTBmN2IzYmViYTJlNGEwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDExOjEyOjU4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIKCmNvbW1pdCA0MmI1YWZiM2NkNmQwNmFkYjQyNmYxZGJhYTk4MzU4ZjJiMmU4YTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTA6NDY6NDcgMjAxMiArMDEwMAoKICAgIFY1LTUtcGF0Y2hlcyBvdXQgb2YgUmVsZWFzZSBDYW5kaWRhdGUKCmNvbW1pdCA4YmQ0NDBjNDNlMzY1YTBiNzdkNDdmNTgyY2FkZTlmOTdjN2JmY2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTA6NDY6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIKCmNvbW1pdCA2ZTA4NTVhMzE1NzE5ODQ5OTQxMWFjNTJiNDZkNWYzMmFhZDViOWZhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMDk6NTE6MzIgMjAxMiArMDEwMAoKICAgIEFkZCBtaXNzaW5nIHJldHVybiB0eXBlIGluIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgpjb21taXQgMDdkODI1ZThiYjM1ZWVhOWFjNmIxY2I4MmNiYjIzNGZlNjZiMWFiNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDA5OjUxOjMyIDIwMTIgKzAxMDAKCiAgICBBZGQgbWlzc2luZyByZXR1cm4gdHlwZSBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKY29tbWl0IDVkYjcwMDM2ZWY2NzU2MzU2NDdlNWI3YzcyNTM0NTY4Mzg4MzY2NDcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKCiAgICBkb24ndCB1c2UgLS1yZWJhc2UKCmNvbW1pdCBkNGMxNTQ5NTkzY2UyYzJjYWViOThlNWY4YWJmZDdhNWFlNWEwMjczCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjcgMDk6MzU6NDQgMjAxMiAtMDQwMAoKICAgIENIQU5HRVM6IHNubXBkOiByZW1vdmVkIGxpbWl0IG9mICdleGVjJyBhbmQgJ3NoJyBlbnRyaWVzIGluIHNubXBkLmNvbmYKICAgIAogICAgVXNlIGR5bmFtaWMgKHJlKWFsbG9jYXRpb24gaW5zdGVhZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5wcmUxIC0+IFY1LjcuMi5wcmUyCgpjb21taXQgZmZjZTQ5ZmIxYWI0YTc4ZDRmMjk0N2JlMDZkNjIwZjE0MjQ1MjhmZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTc6MTI6MzEgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMgoKY29tbWl0IGJkN2M3Mjk3MTg3ODE4ZTVlZWY3MzI3NjY3ZTRhODFmNmM5ZmM4OWIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKCiAgICBkb24ndCB1c2UgLS1yZWJhc2UKCmNvbW1pdCBhNzE1MzEyZTJjZTQ5ZDRkYTkzZmMxNDBjYzM5ZmMxMDBiMGI3OTc4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNTo0NzoyMiAyMDEyIC0wNzAwCgogICAgdXBkYXRlZCBmb3IgdGhlIHByZXZpb3VzIDUuNy4yLnByZTEgcmVsZWFzZQoKY29tbWl0IDE3Mjc3Njg5YjYyOWY0NTg2ZDVkNzE0ZDg3Y2U2YmMxMWY4ODc2NjgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKCiAgICBkb24ndCB1c2UgLS1yZWJhc2UKCmNvbW1pdCA2Nzg2ZmZjNzZmYWNmNzQ2YWZiNmFmMjUxNThmNzk0MDY1NmFiMzljCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEp1bCAxMSAwODo0NzoxMyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAzNTQyMzA3OiBDb3JyZWN0IHN5c09SSUQgZm9yIHNubXBNUERTdGF0cy4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KCmNvbW1pdCBmMGUzNWQ2MWY5MjU4ZGM2MDhkYTliZjcxOGFmMTQ1N2E4NTlmYTE5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEp1bCAxMSAwMDoyMToyNyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAzNTQyMTg4OiBDb3JyZWN0IHN5c09SRGVzY3IgZm9yIHNubXBVc21NSUIuIFRoYW5rcyB0byBEYXZlIFZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCgpjb21taXQgNTIwNmQyNWQ0Y2I5NGQ0YjBkZDMzMWE1YTQxMTNkNGQ4Nzc4MmM0MgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMiAxMjoxNDozOSAyMDEyIC0wNzAwCgogICAgYmV0dGVyIGRlc2NyaXB0aW9uIG9mIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGY5Mjg1MzI4MTQ3N2VlNzI0YTUxYTk5NjdmMzdkM2YxZGQxYjBmN2UKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDIgMTI6MDk6NTAgMjAxMiAtMDcwMAoKICAgIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbnMgY2F1c2luZyBhIHByb2JsZW0KCmNvbW1pdCA1YmUyNzM2ODc1MTY5MWZjMWFiNTVmZTYyYjQxMDZkOGQ5OWI4NzA0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAyIDEyOjA2OjU4IDIwMTIgLTA3MDAKCiAgICBhZnRlciBwdWxsaW5nIGFsbCB0aGUgYnJhbmNoZXMsIHN3aXRjaCBiYWNrIHRvIHRoZSBpbml0aWFsIG9uZQoKY29tbWl0IDgyNTk2YTY5ZjVjZTUzZDVhNmYwYWY0MjE1Yzk4ZDYxODRkYWI0ZDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxNDowNDo1MCAyMDEyICswMTAwCgogICAgVW5waWNrIG1lcmdlIGNvbmZsaWN0LgogICAgKE5vdCBzdXJlIHdoeSB0aGlzIHdhc24ndCBmbGFnZ2VkIHVwIGVhcmxpZXIgLSBvciBtYXliZSBJIGp1c3QgbWlzc2VkIGl0ISkKICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGIwNWJkNzhmOWYyMzRiYjU3YTAwYjU0YzViZmIxZGUzMmEwOWY0YTQpCgpjb21taXQgNmEwNzVhZTQ5NGM3NmI4MmVlYTk2MzI3Y2Y1MjQyZGYwNDg3NDNkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjIxOjA4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMzCgpjb21taXQgYTM3ZTdlMDI5NDUxNDdiZmU2Y2FkYjk1NzE3MDZjNmIyZWM3NDNiZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjE3OjQyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMzCgpjb21taXQgYjA1YmQ3OGY5ZjIzNGJiNTdhMDBiNTRjNWJmYjFkZTMyYTA5ZjRhNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjA0OjUwIDIwMTIgKzAxMDAKCiAgICBVbnBpY2sgbWVyZ2UgY29uZmxpY3QuCiAgICAoTm90IHN1cmUgd2h5IHRoaXMgd2Fzbid0IGZsYWdnZWQgdXAgZWFybGllciAtIG9yIG1heWJlIEkganVzdCBtaXNzZWQgaXQhKQoKY29tbWl0IDRkMTU3NDJjNzUwYTk2YTRkYmIzZGE4NzQ3NDFhZTE1MjQ4OWY4ZDUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1ODowNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGY2YjVlMzM3NmVkM2E4ZTllYWY3NGI3ZDY4MjJiM2E3NjU3NzJlZTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1Nzo1NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzMKCmNvbW1pdCA1Y2ZiMDgxMTEyN2E2NTNkZmYwZjRlNTNhZDYwMjllMjI5OGE2YzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MzcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBlNzJlMjA1ZmRjZWY3ODdlZjg0MGM4YzkyOGVkMjczNTFhNjk1NDRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NTg6MDcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBmNzlhNTRmMjQ3MjUwOGIxNjdkOTc3ZjM2N2MzODY0YjU2MjFlODlkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NDI6NTMgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzMKCmNvbW1pdCA1NmVmNWYwZGI1MWNmZDU1MjI2ZjgyZjk0ZjNmM2QyNDUwZTRmZWI1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mzk6MzIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzMKCmNvbW1pdCBhZjFkMDBhYjAyNDYyNzVkYWRiNWYwY2QzYTIzYTc3ZDVmNTU5OGNkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MzcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBmMTg3NzZkNjNhNTE2MDIwMzE3ZTU4ODc1YWIyNDM1MmQ1ZGI4NjUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MjYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMzCgpjb21taXQgZmUxMDc3OTRlNzQwMGQyMzllOGFmM2RhOGI0YTNmYmVmMDZiNWRhOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgMGY4NGZiY2Y3MTk5NWJkZGFmYWI1MDBkODdjOWM1YTZmNDYxYTczNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEyOjI5OjM0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ3OTc0MDogRml4IGhyU1dSdW5QZXJmIHN0YXRpc3RpY3MKCmNvbW1pdCAxZTNiYjYwNjBiZTYxNTZkM2ZmMzE2YzVhN2U0ZmQ3ZjA1ZTM3Y2ZmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTI6MTE6NTYgMjAxMiArMDEwMAoKICAgIE5FV1M6IHNubXBkOiBCVUc6IDM1MzIwOTA6IEZpeCBoaWdoIGlmSW5kZXggdmFsdWVzIGNyYXNoaW5nIGhyRGV2aWNlRGVzY3IKCmNvbW1pdCBlODY2M2ZhYzhiODg2NjMyODI2Njk3MjZhMDhmMTZkYjE2YjVmNGRiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMTggMTM6MzA6MjUgMjAxMiArMDIwMAoKICAgIFJldmVydCAiQ0hOQUdFUzogc25tcGQ6IGZpeGVkIHNubXBkIGV4aXRpbmcgc2hvcnRseSBhZnRlciBzdGFydCBkdWUgdG8gaW5jb21pbmcgc2lnbmFsLiIKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiMTFhNGU5M2Y1MGQ4YTU0NGY4MzVmMzc2YzNhNGI4YzA2NDFhMzFhLAogICAgd2UncmUgaW4gUkMtcGhhc2UgYW5kIGNvZGUgaXMgZnJvemVuCiAgICAKICAgIChzb3JyeSBmb3Igbm9pc2UpCgpjb21taXQgYjExYTRlOTNmNTBkOGE1NDRmODM1ZjM3NmMzYTRiOGMwNjQxYTMxYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDExIDE2OjI2OjA5IDIwMTIgKzAyMDAKCiAgICBDSE5BR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuCgpjb21taXQgYTU3MDIzOGQ1OGViNWE5OTZiNTZmMDFhMjdhMThkZjZmMzdkMGY2MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDExIDE0OjIwOjI1IDIwMTIgKzAyMDAKCiAgICBNb3JlIHByZWNpc2VseSBkZXNjcmliZSAtYyBvcHRpb24uCgpjb21taXQgNDhjYzM5ZjFhYTBmYTZjZTk1NWVmNzZiMjVkYjhmOWRjYTA2YjgwZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwOToyNzoxMCAyMDEyIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCA4MTAxODVhZTBiMGNkMmFkNGQ0MjRhMWJhNzc1ZWY1Y2VhZjUwZjAzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA5OjI0OjE5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMQoKY29tbWl0IDYyNzE0NzFlMDEyODJmMzY3NTcyNGVhZjEzNThjZWIwZTk1ZGRkNGUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMQoKY29tbWl0IGZjYjc4MmFhODg5MzEzNGM3NDE0YTkyNmQ5MjY4NTk0ZjcyNWI5MTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6MTggMjAxMiAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCgpjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowNzo1MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTM6MTAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTE6NDUgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBkOWExNTQ0NWFhNzRmNTMxNmJmYzcxMWMxNTU4NDY3ODcyYzI5NThjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTA6MTIgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBiY2FiZDJjOTU0MmRiZWJkMWQzMTliNDQ5NDQxM2JkY2NhMDY2MTRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBiNDczODk4YzBjNWFjOWViNDdjN2MwNWEzZjc0NWU0ZmYyYTc2YWFhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCgpjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIxOjM4IDIwMTIgKzAxMDAKCiAgICBBdm9pZCBwZXJsIHZlcnNpb25pbmcgcHJvYmxlbXMgd2hlbiBzZXR0aW5nIHVwIHRoZSBidWlsZCBlbnZpcm9ubWVudAoKY29tbWl0IDUwOGVjZTE2ZTZmNmY0OTU2MmRhMjA0NzkyYWUwNjQ0MjY5OTk0ZDEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMDo1OCAyMDEyICswMTAwCgogICAgRml4IGhhbmRsaW5nIG9mIGRpc3QvcmVsZWFzZSBtZXJnZQoKY29tbWl0IDViOGE4NTQ3YjFhNDdkMmY1YjIwN2Y0OGYyNDk2ZTQyNDFkOTAyYzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMToxMDo0OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDZjMzI5MTRiZjI4ZDY5NWRmMzQ5ZGNhMjY5ZTQ4OGI1MDE3MDAzMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNzoyMiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDlmNWE4MmE1YWZkYmIzZGFlYjJmZDQzN2EzMDlmMGI4ZDM1N2NmNGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNTozOSAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDM5MjAzZjI5NDc3YTNiZWRmMDEyZDQxMTM1ZDhhYmQ2YmNhZDA4YjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo1NDoyNyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDE3ZTc5ZWYwZmFkNzk2MDljNWJhMmZlYjRlOGI5ZWI1ZDdkYjY4ODYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IDU4MjFiZTViYmI0MDE4ZGVkMjgyZmJiYmQ0ODMwY2YyZWVhZGQ5ZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NTo1OSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzIKCmNvbW1pdCAzZjIxMTFkZTY3MzNhMDRlMTJkOTEwZDMwNmEzNGQ2NzFlMDA4NzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBjY2Y4ZmYyYzRkYjYwMTIyZDQxMzAyZTRhZWI3MDBlMGI4NjgxMDVmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgMjggMTA6MTg6NDMgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM1MjY1OTk6IERvbid0IGhhbmcgb24gcmV0cmllZCBmYWlsaW5nIFNOTVB2MyByZXNwb25zZXMKCmNvbW1pdCBjODFjODQ4Mzk5MDkxMWY0NzQzNWQzMDA1MjU1ZDkxYzM3YWI5MmIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowOToyNiAyMDEyICswMjAwCgogICAgRml4IEJTRCB0aGF0IGRvd25ub3QgYWx3YXlzIGxpa2UgSVBfU0VORFNSQ0FERFIgLSBzbyByZXRyeSB3aXRob3V0Cgpjb21taXQgZmZjZTFmMmRjMmY4YjMxYWJkMDFmOTNiMjZkYTc4ZjQ3MjZhMWU2NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDM6NTggMjAxMiArMDIwMAoKICAgIEZpeCBPUyBtaXNzaW5nIE1TR19ET05UV0FJVCAoQUlYKS4gQmFja3BvcnQgZnJvbSA1LjcKCmNvbW1pdCBjNTc1MjE2ODUwMTg1YjU2NDU0ZGFkMDI1M2UzMTY0OTc5ZTEzNTEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxMzo1NjowMSAyMDEyICswMjAwCgogICAgRml4IG1pc3NpbmcgaW5jbHVkZS4gRml4ZXMgU0lHU0VHViBvbiBGcmVlQlNEOSB4NjQKCmNvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1heSAyNyAwNjoyMzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGRlYnVnIHRhZwoKY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWF5IDI1IDA5OjAyOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUnVuIGxpYnRvb2wgLS1tb2RlPWZpbmlzaCBvbiB0aGUgcmlnaHQgZGlyZWN0b3J5Cgpjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjU0OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKCmNvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTI6NTYgMjAxMiArMDEwMAoKICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgogICAgT21pdCBmaW5hbC1yZWxlYXNlLW9ubHkgc3RlcHMgd2hlbiBwcmVwYXJpbmcgcHJlTi9yY04gcmVsZWFzZXMKICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQoKY29tbWl0IDRjNTYzM2YxNjAzZTRiZDAzZWQwNWMzN2Q3ODJlYzg5MTE3NTljNDcKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CkRhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCgogICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKCmNvbW1pdCA2NWRkODNjMjI1NWVlNThlZGJmMGUyNTg2M2U1NWI1OGE0MTEzNjc5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGFjNGJjNjVlMjkwOWYzYmQ4NWYzMmYwNGI1MDRmYTY1ZDJmNjQ1NTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCgpjb21taXQgYjc0OTk0ODY0MTk1MTE5ZWRiNmUxOWM4NTE0N2ZhYzAwYmNiOTNlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCgpjb21taXQgOTEzNTAwOTJjNDZlNjZkMDZkNzQxNDNmNDgxNjQ3M2RiNGQyNTE2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAoKICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5Cgpjb21taXQgNzI0MWFjY2Q3MGI4MmQwZmNkNDRkNWE1MjM4YjJlZTk0NDU5MDBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCA3Yzc5NmExNWExZDFiYjg1ZmVlYTk0MGJkNGUzNTE2ODc3OTIwOTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDA3ZTI2OGJmYjY0YjBlYzY0NWIzZjdlODcyNjY5ODRmOTIxN2NmMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCgpjb21taXQgMTZlYWFmNmMzYmExNDU5NmNhOWVmYWY0YjExNGYxYjcwOWY0MmI2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCBjNzI5NDY5ZWYxMjE1NDkzMGNmOWQxNTk2N2UxNjE4NmZiNDQ1ZjMwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKCmNvbW1pdCAxNDI1NzFkM2NlYTA4ZjBjMDcyZDI0YzFkMzlhNDNjNzQ0NmY4Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoyNToxNSAyMDEyICswMjAwCgogICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCgpjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTc6NDIgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KCmNvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMjoxMSAyMDEyICswMjAwCgogICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKCmNvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMDoxNSAyMDEyICswMjAwCgogICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKCmNvbW1pdCBhMDYwOWNmMWYzYTY5MTdkMjYzNzI1NzMyMjQ4Y2Q5MzdhNDVhZDk0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDA4OjQwOjQ0IDIwMTIgKzAyMDAKCiAgICBSZW1vdmUgbGltaXRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGxpbmUgbGVuZ3RoLgoKY29tbWl0IDMwNTk3MzMzOGE2M2FlNTRjNWUwMmE4NjI2ZmJlOWE4MDY0ZGNiN2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MzI6MTkgMjAxMiArMDIwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCgpjb21taXQgY2NhYjRlOWQzZWQ0MjRjMzlkMGRjMjdiZTYzZmE3NmM3NDYxZWE4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDoxNToyMiAyMDEyICswMjAwCgogICAgSW50ZXJuYWxpemUgdGhlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIHRoZSBjdXJyZXQgY29uZmlndXJhdGlvbiBmaWxlCgpjb21taXQgY2Y4NzRhZDdiOWRhZjRmY2MwZDQ2Y2RkMDM0NDc0YjQ3ODAwNTM0MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBcHIgNiAyMTo0NzoyOCAyMDEyICswMjAwCgogICAgUmVwbGFjZSAjaWYgKEEpIEIgI2Vsc2UgQiAjZW5kaWYgd2l0aCBCLgoKY29tbWl0IGVmOWVhNjQxYmMyOTBlZWM1MDY4NWI2MDUxOWIzMWJlZThiMTRhNjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjA0OjA2IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IDM1YWJhMTk1OWRlMTE5ZjFmYjg5MjAzYzM3MTA5YWE2ZjBlMjFjNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjAwOjQwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IGU0MWZiYWZmMThhYzkwOTVjZjRhNzM5YTA2ZWMzOWExYTZjY2ZkYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIwOjM1OjM1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTIKCmNvbW1pdCAxMzdmZTU4MmQ2Y2M1NjExNDMwZGFiNDZlZjE0NGVmZDg0Y2ZjODAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBBcHIgNiAyMDo0Njo1NiAyMDEyICswMTAwCgogICAgUmV2ZXJ0IGNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCiAgICAoc25tcF9zdG9yZV9uZWVkZWQoKSBBUEkgaXMgbm90IGF2YWlsYWJsZSBpbiA1Lls0NV0ueCkKCmNvbW1pdCAyYjdlNjQyODhjMDFhOGEwNjIwMjZjNTIxY2EzMWE1ZTg4NWYzMGNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjoxMjoxMiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCA3ZTk1ZDgwYjY5ODA1MTI1OTY0NWMwNzRhNTNmZmQyNjRhNmZhOTE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjowNjo1NiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYTliN2I3YzAyZTJkZWVmZTk5NGQ1OTVhN2NjMWRkMmZmYmVlZTFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNTo1MToyMCAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggJ3JlY2VudCcgaGVhZGVyIHNodWZmbGluZwogICAgQmFja3BvcnQgb2YgYzUzZDhjMzUyNWY1OTBmMjIxM2QzNWIwZGE5NDEyMzg2MmYzZTM2NiBmcm9tIFY1LTUtcGF0Y2hlcwogICAgKFBhdGNoICMzMzYzMzA4IC0gb21pdHRpbmcgdHdlYWtzIHRvIGNvbmZpZ3VyZSkKCmNvbW1pdCAzZDlkZGI0MWUyNjNiYzFhNzhmOWY5NDQwYjhkNGFkNGY4NmM4MmUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDozNjoxOCAyMDEyICswMTAwCgogICAgRml4IHR5cG8KICAgIEJhY2twb3J0IG9mIDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAwZDM1YzYwOTU2NGI2NmExZmZlODE1NTZkMzdhZGYwNTAzYzM4OWNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDoxNTowOCAyMDEyICswMTAwCgogICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgTkVUU05NUF9QUklvCiAgICAodXNlZCBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMpCgpjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAoKICAgIEhlYWRlciBmaWRkbGluZyBmb3IgRnJlZUJTRCxPcGVuQlNELERyYWdvbmZseQogICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFkZjc0YmY3NTNkMzk3MDM1N2FmZDYzMzgwMzI1NjI0MWQ5YzdiODcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA4OjIwOjQ2IDIwMTIgKzAxMDAKCiAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQogICAgQmFja3BvcnQgb2YgY29tbWl0cyA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCiAgICAgIGFuZCA1MGQ3M2YwZDU2ZmUyMmM1OTA1MzBiM2UzMDVkNDFkY2RhYzNjZTAwIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgZDk1NTVhY2I5ZjQ3YzNhYThmZGU0YmMyMGE0NGQ3Y2E2MTgxYThhOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzIChiYXNlZCBvbiBwYXRjaCAzNTAzMjU5KQoKY29tbWl0IDgyYThiNDdlZTk2ZTVkMjlhMmI3YWMzY2EwMDcyMmQ3MzdkNWI0NzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IDljYThkOTM5YWIzOTMzMDZhMWQwZjE0NmM5Y2I3MGVhMGNiMTlkNDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGNlY2Q0ODY5ZGViNjhmM2Q0YzcxZTc2OGQ1YjQwZGQ1NzY0NDY5MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGExYTQ1MTNiZDNlNGU2MTQyMDBmNmRiNWEwMmY2MWQ2YzhlZWZiMzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrcG9ydCBvZiBnaXQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgOWJkYmNjYTEyMmMzN2RhMzA0ZmM2YWE2OTM5NzI5NDc1ZjkwZjVmZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKCmNvbW1pdCAxZjc1ZjM3N2QwZGIwMTc1NGMwYzE2MWRjNDQzNzMwODFiZWVmNTIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQoKY29tbWl0IDNkNzJjOWU3OGYyYWQ4MTdjOWQxZDgyOTc3MzI3YmJiMjBkNjNhYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQoKY29tbWl0IDEyOTA2NTc4YWIzMGNmNzc2ZDA4MGMwZWYzMDI1YjMwMzM0ZDc2NTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEZpeCBldmVuIG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgY2NmZDVjYTZmZTEwMzEzZDYxODFkMjRiYmIxNzk3ODI1YTk3ZGExMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRWxpbWluYXRlIGR1cGxpY2F0ZSBjb2RlCgpjb21taXQgOWZkYTI2Njg3MjJmMDhkZGJmZGQ2N2EyMjM5ZDhiMDIxZGI2NGE4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogV3JpdGUgYSBsb29wIGFzIGEgbG9vcAoKY29tbWl0IGNiYzE4ZWI3NjNiYTZkZjY5ZWY3MDY2OGE1NGQ3NWJmMzVlNzk1MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjNzcyNTE5MjQ3OGFlYzAxOGZiNGFlZmE2MDk0NmUwNGE0MDZjMDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgcmVhZGluZyBmcmVlZCBtZW1vcnkgd2hlbiBkZWxldGluZyBhIHJvdyBmcm9tIGEgdGFibGUKCmNvbW1pdCBhNmJlNzM5NTY2ZjMxMGQ3NDQxZmQ3ZjU0OTg5ZTM5NDQ2ZjdhMTQzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCgogICAgRXh0ZW5kIERJU01BTi1QSU5HLU1JQiB0ZXN0Cgpjb21taXQgOGE5YjU3MjkxNDUzY2I4YWVjMjhlNzY2YzU5NDcwMWVkMTljNGZjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgRHJhZ29uRmx5IDMKCmNvbW1pdCBlNWM5YTMyZjc5ZWFjMmU4NTUyN2M5Y2YwNTA4N2NkYWU5YjM1YTZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCgogICAgRHJhZ29uRmx5IG5lZWRzIF9LRVJORUxfU1RSVUNUVVJFUyB0byBjb21waWxlIGlwdjYgY29kZQoKY29tbWl0IGNkNDNiYzA5YTM5YmQ5N2ZmNWU3MTlhMmNlMjMyY2U0MjQ2MDBhNjUKQXV0aG9yOiBEYXZpZCBJbWhvZmYgPGRpbWhvZmZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDM1MTA0NTQ6IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0Cgpjb21taXQgZTJmYzE1ZjllNWE2ZTNlMzZiZTVmNDg5NjAxY2JmNmJmNzMxOTE3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA0MzJmZTNkZGY1NGYyYzk4ZjkzNjk1OTQ2OWNiOWIwMTRkNTk5ZjA2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBwZXJsIHRvIGRvIHBhc3NfcGVyc2lzdCB0ZXN0Cgpjb21taXQgMzdkMjc3MGNmNTBjOTgwMjNlZWJhOTBlMjVkMzcyYmZmNzMxNmFkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlci5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDg2YTk0OGQ4NjkxZTg4MWQ1NTU5MWRjYWJkZGMyNzM5Y2U3MmIzMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQG5iYS1saW51eC5zYi5zdGF0c2JpYmxpb3Rla2V0LmRrPgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGZpbmQgcGFzcyBoZWxwZXJzIGZvciB0ZXN0aW5nLgoKY29tbWl0IGZlMjZhM2M0ZjI5ZjA0NmJmNjVlZDUyZTlkOTQwNTRiNjc1ZmJjNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IExpbWl0IHNvdXJjZSBjb2RlIGxpbmVzIHRvIDgwIGNvbHVtbnMKCmNvbW1pdCA3NDViYWZjZGNjOWM4ZTg0NjE2ZDRlMjc0ZGIyYTM4NGJmMjM0ZGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sganVtcHMKCmNvbW1pdCBkYTY5MjVlNjc2M2NhZGJlMDJmNGE4YmJmZTY4YTM2MmU1MzVhZDVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCgpjb21taXQgZmE2MDZkZDdjYTZhZmY5MzA4ZDRlOGIwMWJiY2RlMTQ4ZjQ0MTI3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKCmNvbW1pdCA2MTdhODNiYTc5OTU3NWM4NGM2NmY2YjFjNDgwZWY2MzMxNjFhNjRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUgaG9zdAoKY29tbWl0IDYyNWY1NWMyNzJlYzYyODFlMzhkOGUzMGViNTNmZDUxNTE2YjAwYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgaW50byBhIHN0YWNrIHZhcmlhYmxlCgpjb21taXQgYjQ4ZjE5YWQ0YjRhYTY4YzNlMTZlMmE3MmRmMzdiOWMwY2QzNmM0YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQWRkIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCmNvbW1pdCBkNzRjYjM5NjYxNzU4OTI1NjJmNWUzYTliMTY4M2FjYmEyYzIyZTA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCgpjb21taXQgMGIxYTc3Njc0Njc4Y2M5YTE1YmUzZTc3MDBkM2NlZjY1MGVkMDJjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvIG5vdCBzZW5kIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhY2sgb3ZlciB0aGUgbmV0d29yawoKY29tbWl0IDEzOTAyM2NkM2FiNTE2MzFjYzEwZTI4NjZkNzFhYmNmOTlhZTRjMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEb24ndCBjYWxsIGV4aXQoKSB1cG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUKCmNvbW1pdCAxNjliNmFhYTdiNjE4MjdjYzFhZDBiM2FlZWFlM2E3MjI5ZGQyNWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IElQdjYgc29ja2V0IGxlYWsgaW4gZXJyb3IgcGF0aHMKCmNvbW1pdCBhMGJlMzJhZDA1M2E3MWZhOTYxMzRkNTVlNTQyYmIwN2Q0ZjAyOTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgdGhhdCBob3N0IG5hbWUgcmVzb2x1dGlvbiBmYWlsdXJlIGNhdXNlcyBhIGNyYXNoCgpjb21taXQgYmY5YmZmNjQ1NTY3ODdkNzY2ZWUyZWYyZDU3OGFmYjkyMDcxOWYzYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgcHJpbnRmKCkgc3RhdGVtZW50cyBpbnRvIHNubXBfbG9nKCkgYW5kIERFQlVHTVNHKCktc3RhdGVtZW50cy4KCmNvbW1pdCA1ZDc0YzAxMjQ1NTIzYTlkOGRiMWVkYTI3ZDFlZmFlMmViYzEwNGZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCgogICAgTmV3IE1JQjogVlJSUFYzLU1JQgoKY29tbWl0IDViMzhmMDYyYjk5YjZlZjM2NzA4ZTJjN2RlNDk2NWEzMTkyNjEyZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKCiAgICBGb3Igc2FmZXR5LCBzaXplb2YgdGhlIHJpZ2h0IHZhcmlhYmxlIGluIG1lbWNweQoKY29tbWl0IGU1ZjgyNzgyZGEwNWVmYTdjMGU2ZGMyYmY1YTQxZWUxMTg2OGY0NjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXggZm9yIGhyU1dSdW4gZGF0YSBmb3IgRnJlZUJTRAoKY29tbWl0IDgzMjc1NjVlODIzMjcwZDEwYTQ1MDQ1NjhlZGJlNWI1YWUzMjNhNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCB2YXJpYWJsZXMgZm9yIE9wZW5CU0QvTmV0QlNECgpjb21taXQgMTcwZjZmMDI3YmY0ZjkxNzRiNzA3MzUzMGRhNGQwN2Y0MDBiYmE1OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAoKICAgIE1vdmUgZGVjbGFyYXRpb25zIGluIGZyb250IG9mIHN0YXRlbWVudHMKCmNvbW1pdCBkYmI0NTczYjY5ZmFlODVjZGM5MzFiMjg5MmI1Y2U0ZTViMTZiMzIxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBrZXJuZWxfbmV0YnNkIGZvciBOZXRCU0Q2Cgpjb21taXQgZjExNjgxZjE1YWFkN2Q5YTUyZmEyOTgxMmVjYmI1MDdmMWI3ZmUyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKCiAgICBDaGVjayBmb3Igb2xkIHRhcmJhbGxzIChhbmQgdW5wYWNrZWQgZGlzdHJpYnV0aW9ucykgYmVmb3JlIHN0YXJ0aW5nLgogICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKICAgIG9uIHRoZSBjdXJyZW50IHRyZWUsIGFuZCB3b3VsZCBkZXNjZW5kIGludG8gc3VjaCB1bnBhY2tlZCBzb3VyY2UgdHJlZXMuCgpjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjMyOjEzIDIwMTIgKzAwMDAKCiAgICBEb24ndCBydW4gIm1ha2UgZG9jczsgbWFrZSBtYW5jcCIgaWYgdGhlcmUncyBubyBNYWtlZmlsZSBwcmVzZW50Cgpjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjI2OjEwIDIwMTIgKzAwMDAKCiAgICBBbGxvdyBkaXN0cmlidXRpb24gYXMgcGFydCBvZiBub3JtYWwgTmV0LVNOTVAgcGFja2FnZXMuCgpjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTggMTk6MDM6MDggMjAxMiArMDEwMAoKICAgIFJlZ2VuZXJhdGUKCmNvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMToyOTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMvLS1kaXNhYmxlLWFnZW50IHRvZ2V0aGVyIHdpdGggLS1lbmFibGUtbWluaW1hbGlzdAoKY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDIwOjEwOjU4IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgZGVjbGFyZSB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBvcGFxdWVfc3BlY2lhbF90eXBlcyB1bmxlc3MgdGhhdCBvcHRpb24gaXMgc2V0LgoKY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDE5OjUwOjAzIDIwMTIgKzAxMDAKCiAgICBDaGVjayB0aGF0IHRoZSBkYXRhIGV4aXN0IGJlZm9yZSB0cnlpbmcgdG8gcmVhZCBpdAoKY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTWFyIDE0IDAxOjA1OjMzIDIwMTIgKzAxMDAKCiAgICBQYXJ0aWFsbHkgcmV2ZXJ0ICJNZXJnZSByZW1vdGUgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvIFY1LTctcGF0Y2hlcyIKICAgIAogICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCiAgICAKICAgIDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAgKGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlKQogICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQogICAgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YyAoUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUpCiAgICAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiIChwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZykKICAgIAogICAgYW5kIHBhcnQgb2YKICAgIAogICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKICAgIAogICAgVGhpcyByZXZlcnRzIHRob3NlIHJldmVydHMuCgpjb21taXQgYWFlZGQ1OWNjMmRhNzAxNTI3ZGMyZDI2MWQ0ZTlmODVmMTZlNzUwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAoKICAgIEFsbG93IG1ha2UgdGVzdCB3aGVyZSB0aGUgc291cmNlIHBhdGggY29udGFpbnMgdGhlIHN0cmluZyBOZXQtU05NUCB0byBzdWNjZWVkLgoKY29tbWl0IDRiOTRkNzk2OTE4YTRlZWFlNjhhYjIxYWE1M2Q0NDRhOGI1YzI5MjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgY29tcGlsYXRpb24gb24gRnJlZUJTRCA0Cgpjb21taXQgMTBmZTZiODMzMjRhZDM3ZDE4YjkzN2NjOGM2ZGU5NGRlNTM0ZDAzNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgZTExMjJlZGMxYTVmZTc5NzZiMDY1MDQ0MTM0ZDM5ZTdkYjU5ODVlYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgYTYxM2QzYTgzNDkxMjIwNmQxYmE1OTcxZTQ0MWEzZWE2YjM2YWYyMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMGVmMzRlNjUxOWRmY2I4MmM5N2RmODQyNzU0N2MwOGRjZjgxZTY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBzbm1wZCAnLWQnIG9wdGlvbi4KICAgIAogICAgTm93IGl0IGR1bXBzIHBhY2tldHMgYWdhaW4uCgpjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MjEgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMQoKY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjA1IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU5OjM4IDIwMTIgKzAxMDAKCiAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQoKY29tbWl0IGNlODU4MzI5MzJjY2Q5MTZjNDIzMTkxMTRjNDA4ODVhNDY2YTlkMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTY6NDAgMjAxMiArMDEwMAoKICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKCmNvbW1pdCAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE1OjA4OjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MgaW5zdGVhZCBvZiAwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhLgoKY29tbWl0IDUxODkxN2U5ZjM5ZjdhOWQzYzNiZjNhODY1ZThhYzBlMzAyNmQ2MDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTQ6MDQ6NTQgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCAyNjUxOTA5Y2NjZWFiZmNmYWRhZjk0MmMwMjQ1MGUyOGZlODM3ZGM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiA5IDEyOjA0OjA0IDIwMTAgKzAwMDAKCiAgICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk2NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTQxZjExNWU0MDMwNGM5NDFiYTE3ZDY3ZTI0NzEwNzIyZDkwNzQxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC13IGFuZCAtcSBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZS4KCmNvbW1pdCA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlIGlmIGl0IGlzbid0IG5lZWRlZC4KCmNvbW1pdCA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2Ugb3B0aW9ucy4KCmNvbW1pdCAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjM5IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDQ0YWEyNjU4OTFjZDU2M2Y3ZjQxMTRlZjI1ZGNmN2FhZjNiMTRlOWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDQwMDIyYTY5Nzk1ODI1OWNjZmJiM2ZlZDQ0ZWIzYzQ3MmY1ZTgzN2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgc2ggZG9lcyBub3QgdW5kZXJzdGFuZCAidGVzdCAtZSIKCmNvbW1pdCA3NzNhZjBjNDJlMDc3YmViZGFlY2YxYzBjYWYzOTMyODVhNzY4OGYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE3OjE5OjMwIDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCBuc3JvbGx1cCBjb21wbGljYXRpb25zCgpjb21taXQgZWU3MTA0OWMzZTIxYzFkMGUzNDI0Mjk3MTM2NjUyYmJlMGUzOWQ4NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCgogICAgbWliZ3JvdXAvaWNtcC5jOiBhZGp1c3QgaWZkZWZzIHRvIG1ha2UgaXQgY29tcGlsZSBvbiBCU0QncwoKY29tbWl0IGNlOTYwMDM2MWU2NjVkZGUxN2FmOWQ4YWIxNmQ3Y2U4NWRjMDU2NDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzk6NTUgMjAxMiArMDEwMAoKICAgIGRvdDNTdGF0c1RhYmxlIGhhcyBidWdzIDotKAoKY29tbWl0IGRmZmFjZjZmYTA3NTVlMTcwMGNiYWMyNWI4NDQxODVhYmQ4MDdhMGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzg6MTAgMjAxMiArMDEwMAoKICAgIHBhc3NwZXJzaXN0IHRlc3QgbmVlZHMgL3Vzci9iaW4vcGVybAoKY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzY6NTggMjAxMiArMDEwMAoKICAgIGdyZXAgLXcgZmFpbHMgd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlzIDEwLTY0Cgpjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAvdXNyL3hwZzQvYmluL2dyZXAgdG8gdW5kZXJzdGFuZCAtcQoKY29tbWl0IDk5NTRiNGI3NDFmZDhjNjNkNjEyOGJkMDUyNzI5OGM4ZTRlOTg5ZmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBwcm9wZXIgc3JjZGlyIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoKY29tbWl0IDc4MzY5MDAyYmUyNzExZjBhYTg3NmI2NGE0ZTEwYjA5MGNjMjQxY2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzM6MzEgMjAxMiArMDEwMAoKICAgIE5vdCBhbGwgbWFrZSB2ZXJzaW9ucyBkZWZpbmUgJChSTSkKCmNvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjI0OjI0IDIwMTIgKzAxMDAKCiAgICBNYWtlIGF1dG9jb25mIDIuNjggaGFwcHkKCmNvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjEyOjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgb2YgbWliIG1vZHVsZSBmc3lzX2dldGZzc3RhdHMKCmNvbW1pdCAxZmExZmVlMzY5M2Y2N2I4MjAyMjM4MDZiM2Q3M2FmZDRjNTBlYzE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKCiAgICBTaWxlbmNlIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCA5MzI2M2I5OGE1ZGIzNDRjZjJjNGQ0ODljNDM5NzFlN2IyOWNkYjAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMzozNzoyMCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA1YTE3NTQyOGI5NzNkMmVhODU1M2UyOWZlY2Y5NGNmMTU2NmFhODU4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0ODoxOCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAzNjQyNzZhMWM1YWE2NmNhYTIzZWI1YjdmMTExZmRlYjVhZjcxZmE3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0NToxMCAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA3MzU5ODM0MDE3MmVmZjc1NzI5YTZkNTcxOTJiODE3MWQ1YmJmMDBlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0Mjo1NiAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5wcmUxCgpjb21taXQgZjMyMTQ0MDI2NzJjYTE5OWZkNTMxZTY2MTIyYmY5NmM0ZDlhNGViNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMmU3NGFjYjZmMTllNDcyOWNlZGUwYWI0M2U5MzE5NjFjYjIzYWFlYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwOToxODozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43Cgpjb21taXQgYjcxMDk2NDZiOTVhNzA3MTNkMWFkOTkxZDQxYmNjZDU3YzBiYjNlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwODo0ODo0OCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIGludHJvZHVjZWQgaW4gNS42Cgpjb21taXQgNDMyY2JiN2E1NTAxYWI5MGQ2NmQwYTgzZTczMWU3MzQzYmMwNGIzNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAoKICAgIENvcnJlY3QgdHlwb3MKCmNvbW1pdCA2YTZjOWJiYzc1ODRmMTk2YTExODVjYzE5MzUyMDRmMTIwNjgxMWVkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEZlYiAyOSAwODo1NTozNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzCgpjb21taXQgZDUxNWUyYTZlNGMyYTFjNGQ4NDczNGNjN2IyZDBiMmZjNWE4OTRhZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjU2OjIxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ4NzkxOTogRml4IGNvbXBpbGF0aW9uIHdoZW4gY2FjaGluZyBpcyBkaXNhYmxlZAoKY29tbWl0IGFmODM2OGVkODg5OGE3OGQwODY4YjQ3YWY0NmJjOWRiMDdkMWM3NjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQxNDc3MzogRW5jb2RlIGludGVnZXIgdmFsdWUgdXNpbmcgQVNOX0lOVEVHRVIKCmNvbW1pdCAxOWUyNzE1ODA3ZmUwNmZkMGJhZWRmODgxNjUwMTFhZWU5MzNlNzU1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IG1hbjogQlVHUzogMzQ5MDcwODogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCgpjb21taXQgNjVmNzk2MmY5MzJjOWI3NWM1YmJiYjA0N2QxZTI2YWU2MDk3OGU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ4OTYzMTogRml4IGluY29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgbW9uaXRvcmluZyBmbGFnCgpjb21taXQgYWMxNjYwNTFiNmEwOTJkZDRhNTk0MzI2ZWM4NWUyZjY5OWI2MjU0NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDExOjU3OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBCVUdTOiAzNDc0NTkwOiBEb24ndCBtYXRjaCB1bmRlcnNjb3JlcyB3aXRoaW4gdGhlIHNvdXJjZSByb290IGZpbGVuYW1lCgpjb21taXQgODc5YmY3MDc5ZDM0ZmE0NmY2ZmNmNTRhMDFjODUwMGJlYWVjZTU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ2MDM2NDogRml4IHVzZSBvZiBibG9jayBmYWN0b3Igd2hlbiBkZXRlY3RpbmcgZXJyb3IgY29uZGl0aW9ucwoKY29tbWl0IDAzNGYxYzU3MmY2ODNlYTQyODU4MzA3NDQ3MWU1ZDVkMTNiNTE4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IDM2NDIzZTIxMGJmYjY1ZWYxMjFjNmE2NmFlYzQzOGM3YzIzN2QzZGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDU0MTY4OiBjb25maWd1cmU6IEZpeCBidWlsZGluZyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IGVlZDBiY2JjNDNmZWExODI1OWYwZjYzYjIwODFiNmQxMDUzNWEwNTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgYmFieS1zdGVwcyB3aGVuIGNvbXBpbGVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0LgogICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4Cgpjb21taXQgZWM2YTIzMDMwZTVhMjA3MmMxOWMxOGMxZDljMTI0Mzg3ZGE1NmI3YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTg6NDI6NTggMjAxMiArMDAwMAoKICAgIEFkZCAtbHJ0IHRvIE5FVFNOTVBMSUJTIHN1Y2ggdGhhdCBjbG9ja19nZXR0aW1lKCkgY2FuIGJlIGZvdW5kCgpjb21taXQgZjEzMzIwNTAwMjk0YmIyNDBmNjNjNmRkN2QyZTlhMjIwOGViNzQwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbXBpbGVkIHVzaW5nIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGM0Mjc2YjYyMzJjMjkxNDVjMDM5ODg0ZTZiNWE2YjZkYTRiOTM4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0IChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCAwMWM5MzBlZGNjMjU3MDBkNmI1ZmIwMzc2ZjU1YTI2NDI1ZTEzZmIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6MTc6MjIgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAogICAgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDI0IDE0OjAwOjMyIDIwMTIgKzAxMDAKCiAgICBSZXdvcmsgY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMuCgpjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjQgMDc6NDM6MjIgMjAxMiAtMDgwMAoKICAgIHNldCBNRVJHRV9BVVRPRURJVCBiZWZvcmUgbWVyZ2luZyB0byBhdm9pZCB0aGUgZnV0dXJlIGdpdCAxLjcuMTAgZm9yY2VkIG1zZwoKY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjI3OjU0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogaW5pdF9hZ2VudCgpICsgaW5pdF9rbWVtKCk6IFJldHVybiBhbiBlcnJvciB2YWx1ZSBpbnN0ZWFkIG9mIGludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAoKY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjAzOjMxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgc3ltYm9sIE5FVFNOTVBfRVhJVF9PTl9CQURfS0xSRUFECgpjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDg6NTM6NTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IHNubXBkICsgYXBwczogU2VuZGluZyBVRFAgcGFja2V0cyB3b3JrcyBhZ2FpbiBmb3Igbm9uLXJvb3QgdXNlcnMKCmNvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMTozMTo0NiAyMDEyICswMTAwCgogICAgdGVzdGluZy9SVU5URVNUUzogRml4IGEgYmFzaGlzbQoKY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE2OjU4OjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgJWxkIHZlcnN1cyB0aW1lX3Qgb24gc3lzdGVtcyB3aGVyZSB0aW1lX3QgaXMgYSBzeW5vbnltIGZvciBsb25nIGxvbmcgaW5zdGVhZCBvZiBsb25nLgoKY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDEyOjMyOjI1IDIwMTIgKzAxMDAKCiAgICBGaXggc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMgZmlsZSBoZWFkZXIKCmNvbW1pdCBhYTc2NmQxOTZlNTI4N2Y2Y2E3OWI1OGEzNDViMDI0MjYwYWJhMzU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNzowNzoxMyAyMDEyICswMTAwCgogICAgSUYtTUlCOiBkbyBub3QgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IgKD4+IDMyIG9mIGEgMzItYml0IHZhcmlhYmxlKSB3aGVuIHVwZGF0aW5nIGEgY291bnRlciBhbmQgaWZpX2lwYWNrZXRzIGlzIGEgMzItYml0IHZhcmlhYmxlCgpjb21taXQgYzNmYjZkZDllNmI5OWU5NTQyNDkzMTg4OTg3ODcxZmM1MDE3Y2IzYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDk6NDU6NDUgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgb24gc3lzdGVtcyB3aGVyZSBtb2RlX3QgaXMgdW5zaWduZWQKCmNvbW1pdCBmOGEzZWYwZDNkNGU1MzAyNzk5MDAxMDEwNDliOGRlOThhNDRhNmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ4OjUyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazogQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0IG5lZWRzIHJlbGF0aXZlIHRpbWUKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZSBzbm1wRW5naW5lVGltZSBpcyAwLi4yMTQ3NDgzNjQ3IG9uIGFsbCBzdXBwb3J0ZWQgc3lzdGVtcyBpbnN0ZWFkIG9mIDAuLjQyOTQ5NjcyIG9uIHNvbWUgc3lzdGVtcyAoaS5lLiB3cmFwYXJvdW5kIGFmdGVyIDQ5NyBkYXlzKQogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygpLCBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCksIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCksIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQogICAgQ0hBTkdFUzogc25tcGxpYjogRGVwcmVjYXRlIGF0aW1lX2RpZmYoKSwgYXRpbWVfbmV3TWFya2VyKCksIGF0aW1lX3JlYWR5KCksIGF0aW1lX3NldE1hcmtlcigpLCBtYXJrZXJfdHRpY2tzKCksIG5ldHNubXBfbWFya2VyX3VwdGltZSgpLCBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCksIHRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0cnVjdCB0aW1ldmFsIG1lbWJlcnMgb2YgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIGEgd2FsbCBjbG9jayB0aW1lIGJ1dCB0aGF0IGRvIG5vdyBjb250YWluIGEgbW9ub3RvbmljIGNsb2NrIHZhbHVlCgpjb21taXQgYzE5NzYwZjMzMzNjOTJmYWM1ZDUwZTk3NjhjZGY5MzkyMThiYzQ4NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMTUgMDk6NDU6MDMgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcHYzLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IGE2ZGIyMzk5NDVlMTk1ZGU1YTkwZmExODM3MDBiMjdhNmVjYjI4ZDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDcgMDA6MTE6MTQgMjAxMiArMDEwMAoKICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmcm9tIHJlY2VudCBkZWNsYXJhdGlvbnMgcGF0Y2gKCmNvbW1pdCAwZmJiYjlhOWUyOTA2YTdhZjk1Njk1NzA2MWQ0ODU4NzQ0NjJhZWE5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjQzOjA0IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgbWl4IGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cwoKY29tbWl0IGYzMDhkNWJhZmIwNWQ3OGVkNDAzMGM0ZWNmZjMyNGI2Y2JkYTY4MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0NmYwZmMxYjdmYzI2YTIyNTc2M2JjNjVjY2E1MjBhMWM1OWYwMjUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjU0OjMyIDIwMTIgKzAxMDAKCiAgICBzZW5kbXNnIGRvZXMgbm90IGxpa2UgSVBfU0VORFNSQ0FERFIgaWYgYWRkciBpcyBJTkFERFJfQU5ZCgpjb21taXQgZGViYWM0OThmZTg0MTAxMTAxMDdhMmZlNjRmOGFmYjc0OGVkYWEwNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMTY6NDg6MDkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFkZGVkIE9DRlMyIChPcmFjbGUgQ2x1c3RlciBGUykgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZQoKY29tbWl0IGZhZmM5OWNkODllNzNlYzdlMDBiZjczNjBkMGI0ZmE2MTk0NGE0ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAoKICAgIFNpbXBsaWZ5IGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCgpjb21taXQgN2FmMjAxM2RlOGJmMWIzNzljMDc2ZGI0ZTEwNDUwOGUxNzg3NGQzZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCgogICAgRml4IG9yZGVyIG9mIGZlYXR1cmUgI2lmbmRlZiBhbmQgRG94eWdlbiBjb21tZW50IGJsb2NrCgpjb21taXQgYmJkNjdmNjM1MzBmNWVmMGJmYzk0OGZjNThkZmU2YTkzZjhmODY3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQyYTY2YWVmZjI1YjllOWVmNjM1YTQwNGFkMmY1MjEyZjllOGNmMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAoKICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCgpjb21taXQgM2ZlNzJiM2I5OWI3ZTRiMmI5ODIzNjNkZmM0ZjJkOGQxM2Y0MDU5MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCgogICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAoKY29tbWl0IGU5ZGIyNjZhZTQ4ZDA1YTdhNmNiNWQ3MWI0YmRlYTdhZDgwOGVmNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKCmNvbW1pdCBkMDgwNDRjYjllNTcwMmZiZjU0OWUxNDQyNWY0Mjc5NDI1OWQ4YTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQoKY29tbWl0IGEwNWMyN2MyNzExY2I0MTU4MmEzYjRjMzFlMzhiMGU5MzUzMGI2MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCA5MTBkN2IwZDk5MTgzNjA5Yjk1MjliMDRjM2YyOTMzMGViNjYxMDIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQoKY29tbWl0IDQzYTgzZjZjNmE5NmNjMjMxNmI3MGVlY2FjZjEyN2ViNjkxM2M3YTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAoKICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCgpjb21taXQgMmZlNTc5ZWZiMWNiM2E3NGY4MjgwM2NhMzIzOTI4ZjZiOGU0YjVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCgogICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlLgoKY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFJtb24gTUlCIGltcGxlbWVudGF0aW9uCgpjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCgogICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCgogICAgVXNlIFNOTVBfTUlOKCkgaW5zdGVhZCBvZiBtaW4oKQoKY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NyBwYXJ0aWFsbHkuCgpjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBdm9pZCBjcmFzaCBkdXJpbmcgc2h1dGRvd24gZHVlIHRvIGludm9raW5nIHBlcmxfZGVzdHJ1Y3QoTlVMTCkKCmNvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgYSBzdXBlcmZsdW91cyBkZWNsYXJhdGlvbgoKY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsOiBBZGQgZXJyb3IgY2hlY2tpbmcKCmNvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBNYWtlIGNvbmZpZ3VyZS10aW1lIEVWUF9NRF9DVFhfY3JlYXRlKCkgZGV0ZWN0aW9uIHdvcmsgb24gdGhlIDUuNCBicmFuY2guCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgoKY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6MTI6MDAgMjAxMiArMDEwMAoKICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDEgMTE6NTY6NTggMjAxMiArMDEwMAoKICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDA5OjU2OjAyIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCgpjb21taXQgY2E0YTRmZTI1ZWZkMjcxNGY4ZjE5NjFiOTc4NTY2MTY1NjNmNDJjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAoKY29tbWl0IDEzYWRhNTY1NThiNDRlMjhkMTM1NWMwZGNlMWQ5MjFmMzc0NmQ1NDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkLgoKY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU4OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTU6NTYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1MToyNiAyMDEyICswMTAwCgogICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCgpjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjQ2OjI5IDIwMTIgKzAxMDAKCiAgICBSZXdvcmtlZCBfcmVnaXN0ZXJfZXh0ZW5kKCkgZXJyb3IgaGFuZGxpbmcuCgpjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIxOjI4IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjA6MjIgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToxNzowNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA4OjA5IDIwMTIgKzAxMDAKCiAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCgpjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA1OjEwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDQ6MDYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMjo1MCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAwOjUxIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDYxOTM2NzYyZTY0MWMxOGRiNzVhYTUxMjVhMzNlNzc2YzY3N2FkYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCgogICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgoKY29tbWl0IDQ5NjQzNzQzMDQxNWZiYWZlYjFjY2Q0Nzc0ZjFjYTAwZDYyN2VhMWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAoKY29tbWl0IDViNGEyNGNkY2VlMWJjM2Q4MjYzM2NjYWZlYjk2ZmNlOTUzNDljNTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKCiAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IGNiZjFjOTFiYWY3MTkxYmU1ZmEyN2Q4MWJjZjg3MTQzMzFhMmMxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKCiAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCiAgICAKICAgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYuCgpjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAoKICAgIEhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEF2b2lkIHRoYXQgYW4gU05NUCBzZXQgd2l0aCBVc2VFbnVtcyBlbmFibGVkIGNhdXNlcyBhIHNlZ21lbnRhdGlvbiBmYXVsdAoKY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggbW9zdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCgogICAgRml4IGEgdHlwbwoKY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCgogICAgRnJlZSB0bVN0YXRlUmVmIG9uIGVycm9ycy4KCmNvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgZmluZ2VycHJpbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgpjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKCiAgICBGcmVlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50LgoKY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCgogICAgUHJvcGVybHkgYWxsb2NhdGUgYW5kIGZyZWUgZW5naW5lSUQuCgpjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKCiAgICBGcmVlIGxvY2FsbHkgYWxsb2NhdGVkIHRtU3RhdGVSZWYuCgpjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBpZiB0aGUgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyBzb21ldGhpbmcuCgpjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGVzIG9uIGVycm9yLgoKY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlIG9uIGVycm9yLgoKY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDU5ODg0YmI0ZDM1YWQxMzc0N2ZmYTY3MjM0MzZkY2E1ODdhOWFiNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCgogICAgSW4gYWJvdmUgY29kZSwgb2xlbmd0aCBpcyBjaGVja2VkLCBzbyBsZXQncyBjaGVjayBpdCBhbHNvIGhlcmUuCgpjb21taXQgYmE1ZDUyOTJiMDQzOTNiMGM3ZDdkN2VkOTYxMjQxOTI5NDE4YzZlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZGEyZDZhNzAyOGExM2I5ZWRmM2E1Yzg0MzE0ZDBmMWZlZWY3NjcxNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjQ0OjU2IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBmODgwNTRhOWI2OWI2ZGUyNzRmN2ExNGE1OWI0NzMyM2U1ZTRlNGM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6Mzc6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIGNvbnRleHQgaWYgaXQncyBOVUxMLgoKY29tbWl0IDdjNGQ0NTllOGYxZjY1MmNjMjA5OGMzZDRjODFkZTkwYTg0ZWQ3MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozMDowOSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVmZXJlbmNlIE5VTEwuCgpjb21taXQgZmMxOWI3ZjMzYjU4NzkyN2QyYTAxZTcyZDIzZDIxYjliMTY5NmFiMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjI1OjI2IDIwMTIgKzAxMDAKCiAgICBEb24ndCBjbG9zZSBOVUxMIGZpbGUuCgpjb21taXQgNWU5NWNhNjc5MDA3NmI3ODgwNzJhODAxZWU3YzgyOTY5ZDk5NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjE3OjA5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTCB3aGVuIGEgdHJhbnNwb3J0IGRvZXMgbm90IGhhdmUgZl9mbXRhZGRyLgoKY29tbWl0IGVlZDZmNWY5YjlhZTU0ZDJjZWFiNjdhZDg1YWRkZTFmNmE4YTIxZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMzoxMyAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgNDFjZGU2OGI1ZmE0YjM4ZDgxNDUwY2Y5MWUwODJjZGZhODI1ZTdjZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEwOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBpZiBhIHJlZ2lzdHJhdGlvbiB3YXMgcmVhbGx5IGZvdW5kLgoKY29tbWl0IDViNzJhNDA4NTM4NzZhMTg2ZWZjYzAwOTBhNGUzMmMyMzViOWMwNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjowMzo1OCAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCB3aGVuIGRpZmZsZW4gaXMgU01VWF9NQVhfUFJJT1JJVFkgKHdoaWNoIGlzIGhpZ2hseSB1bmxpa2VseSwgYnV0Li4uKQoKY29tbWl0IGZhNmE5MTJlNDFjNWQwZmQyYTYzNjg5NGU4NmI2NDI2YzA3Mzc1YWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNTozNzo0NCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3NpbmcgdmFsdWUgaW4gc2V0RXZlbnQuCgpjb21taXQgNDEwYjcxZGE0MjUzODlmZWNjMjVkMTRmNDlmMjM3NTM1ODE1NzZhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjI4OjQxIDIwMTIgKzAxMDAKCiAgICBEZXJlZmVyZW5jZSBlcmVnIG9ubHkgaWYgaXQgaXMgbm90IE5VTEwuCgpjb21taXQgMTg1MjcyZDFhMGI5MTM3NzQxODZmMWI5MTM1YWVhZjYzN2ViZWQ1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjE3OjIxIDIwMTIgKzAxMDAKCiAgICBBcyBwZXIgYWJvdmUgY29kZSwgdGVtcGxhdGVfdjJwZHUgY2FuIGJlIE5VTEwsIHNvIGNoZWNrIGl0IGJlZm9yZSBkZXJlZmVyZW5jaW5nLgoKY29tbWl0IDQ4ZTVlYWQzZmQyYzJiMzg1ZGY2OTcyYzY3NTI2ZmY2YmRjMzA3NjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDo0MjoyMiAyMDEyICswMTAwCgogICAgVXBkYXRlZCBsYXN0IGZpeCB0byBuZXcgZXJyb3IgcmVwb3J0aW5nIHN0eWxlLgoKY29tbWl0IGYzM2QzMzYxNWQ2ZDg1ZDAwNzM3MjY0NzNjNDE0NmNiY2RmMTFjZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDozMDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgc2lnc2VndiB3aGVuIGVtcHR5IGNvbmZpZyBsaW5lIGlzIHBhcnNlZC4KCmNvbW1pdCBiNWRmMWVlYjQ3ZWQzNTU5YjZmNGQ5ZWNjY2RiMjQyMTI2ZTZjOTkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MTE6NTggMjAxMiArMDEwMAoKICAgIEZpeGVkIChoaWdobHkgdGhlb3JldGljYWwpIHNpZ3NlZ3Ygd2hlbiBzcC0+c2VjdXJpdHlFbmdpbmVJRCBpcyBOVUxMLgoKY29tbWl0IDZmZWVkNjI5YTcxODk5YzExMzA5Njk1OWQ4NTQ5ZGMxMjAxZThmOWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzo0MzozNyAyMDEyICswMTAwCgogICAgQWRkZWQgTlVMTCBhbmQgbGVuIGNoZWNrIGp1c3QgaW4gY2FzZSBzb21lb25lIHByb3ZpZGVzIHZhbHVlID0gTlVMTCBhbmQgbm96ZXJvIGxlbiAoLT4gTlVMTCBpcyB0aGVuIGRlcmVmZXJlbmNlZCkuCgpjb21taXQgMzU1YzVhYjI2NGFmMmE2MDIwYTFkOGE5MjNmODBmMTFiOTQyMjk1ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjM2OjQxIDIwMTIgKzAxMDAKCiAgICBFeHRlbmQgdGhlIE5VTEwgY2hlY2ssIGkuZS4gcmV0dXJuIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVtb3ZlLgoKY29tbWl0IGRkZDc5NDhhY2FkOTM4Y2Q0Mjk3NDUwNWRkY2E0ZjAzNzIxMTY3MDkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDExOjExOjI5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgc3BhcnRhJ3MgY29weXJpZ2h0Cgpjb21taXQgNDEyNTYwODZhN2E1MDQxNDUzNDE5Y2ZkNmU1NjJjN2I1NWM1NmIwYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MzI6MDQgMjAxMiAtMDgwMAoKICAgIHB1bGxlZCBmdWxsIGNvcHkgb2YgZXh0cmFjdG5ld3MgZnJvbSBtYXN0ZXIKCmNvbW1pdCA2MjVhNzBkYmRmZDk5MDJkYTc5ZWZhMjkzZmU2ZDJhYzhjY2YyYjJlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDoyNDoxOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHRvIGNoYW5nZSB0byB0aGUgbmV3ZXIgbG9nIGdlbmVyYXRpbmcvcGFyc2luZwoKY29tbWl0IDYyZTMyYjEzMDg5YjI5ZWRjZjI3NmY2MTVkYTY3ZTQ1MDhmZTdiYjUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDA5OjI5OjQyIDIwMTIgLTA4MDAKCiAgICBjb25mbGljdGluZyBtZXJnZSBmcm9tIG1hc3RlciBmb3IgZXh0cmFjdG5ld3MKCmNvbW1pdCA3MDA4NGRhNjFkMmJjYmQyY2YxZWQ4MWJkYzNiZjY3OTRjMmFmZmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAxMyAxMTo0OToxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1TQ0hFRFVMRVItTUlCOiBIYW5kbGUgMzItY2hhcmFjdGVyIHNjaGVkQ29udGV4dE5hbWUgdmFsdWVzIGNvcnJlY3RseS4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCgpjb21taXQgMDRiZjNlMjg4MTU4ZWU4ODBlZGYyMzdlNDAwN2ZlZTM3ZDIwNDRkZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjM5OjM3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiBTU0xfcmVhZCByZXR1cm5zIGVycm9yLgoKY29tbWl0IGMxNTI2ZmNjYzA0NzRjMWRiMThjYWE5ZGJiODMzODUzY2RkZGUzY2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMzoyMSAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGEyN2FhMTlkZjI4MzE1NmMwMzJjODFlYWVlNWUxMTU4NTlkMzhjMTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMTozMiAyMDEyICswMTAwCgogICAgRG9uJ3QgcmVwbGFjZSAncmMnIHZhcmlhYmxlLCBpdCdzIHZhbHVlIGlzIG5lZWRlZCBvdXRzaWRlIHRoZSBsb29wLgoKY29tbWl0IDk4NWRmZjJiMDg3NmQ5NDgzYzQxNGZjY2VhM2VmNmJjNjNlMTQ1NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMTozMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyZmQ3ODE4MzE4ZTdhNWRmZTk4ZjUyY2NmNzUwYzJhNjNlODI1ZGVkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDA6MjIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMTVmMjExMzBiYTMzZGM5YWZkMTY0ZTUyZGZkNzRjOWNlYzBlOTIzMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjU4OjE0IDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJhOGE4ZjJhYjdjZDc1ODI2YzVkNDFlYzNjZmQ1Y2UzZTk2MzRjZjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDozOToyOCAyMDEyICswMTAwCgogICAgcmVtb3ZlIGRlYWQgY29kZSwgJ2NwJyBpcyBhbHdheXMgIT0gTlVMTCBoZXJlLgoKY29tbWl0IDM4ZmQ2Mzc4Y2MzMjc1MTgwZjYzYjhkOWI5YTQwNzJiM2RhYmY4ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDoyNTowNiAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGViZDkyZTE5YjEwYzBhMzhlMTdjZGU0MDc4NjRiNDVjMjZlMTczMjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDowNzo0MyAyMDEyICswMTAwCgogICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiAodmFsdWUpIGNoZWNrIC0gdmFsdWUgaXMgY2hlY2tlZCBmZXcgbGluZXMgYmVmb3JlLgoKY29tbWl0IGM1Y2FjZjVjYWY5NzlkMDE4ZWE2Y2FlMWMwM2I4ZmRmMGIxMThkZmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0NDo0MyAyMDEyICswMTAwCgogICAgUHJldmVudCBkb3VibGUgZnJlZSgpLCAnZGlybmFtZScgaXMgYWxyZWFkeSBmcmVlZCBpbnNpZGUgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIGlmIGl0IGZhaWxzLgoKY29tbWl0IGFjZGNlYjUwZWE2NmQ2YjMyM2M3NGVlMDIxZmI3N2U4MTBlNGU3YWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0MzoxOSAyMDEyICswMTAwCgogICAgUHJldmVudCBtZW1vcnkgbGVhayB3aGVuIG1hbGxvYyBmYWlscy4KCmNvbW1pdCAxNzA1M2UzNGNmZTlhOGFiMzk1ZmI1MGY1YzNmMWRhZmM3MjQ3YWViCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6MzI6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRvdWJsZSBmY2xvc2UoKS4KICAgIExpbnV4IG1hbiBwYWdlIGZvciBmY2xvc2UoMykgc2F5czogSW4gZWl0aGVyIGNhc2UgYW55IGZ1cnRoZXIgYWNjZXNzIChpbmNsdWRpbmcgYW5vdGhlciBjYWxsIHRvIGZjbG9zZSgpKSB0byB0aGUgc3RyZWFtIHJlc3VsdHMgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoKY29tbWl0IGE2NjQxZWRiOWNiNzRmYzIyMzZiNDJjZTU1NTRmYzMzMjk5NTY1NTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjIyOjM0IDIwMTIgKzAxMDAKCiAgICBNaW5HVzogU2tpcCB0ZXN0IFQwNjUgaWYgbm90IHN0YXJ0ZWQgZnJvbSBpbnNpZGUgYW4gTVNZUyBzaGVsbAoKY29tbWl0IGE4ODNlZjE5ODJmMzAxYjE0ODVkMjI3MzAxNjc0OTI3MzMwZjViNjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToxNDo1MyAyMDEyICswMTAwCgogICAgTW92ZWQgZGVidWcgb3B1dHB1dCBiZWZvcmUgcmV0dXJuLgoKY29tbWl0IDQ1NzUxOTY3Mjg3ZDk3NjQwZWZkY2RmOGU3N2U4ZDQ5MDkzOWQ4ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE0OjE3OjE4IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cnRvdWxsKCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAyYzJmYTQ4MzM2YTRmMWYxNzdjMjk5MWQ2NTE1ZDI5ZjM5NTMzYzQ0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzo1MDo0NCAyMDEyICswMTAwCgogICAgQ29udmVydCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMDdjNjY2ZjZjZWEyN2YyYjJhYjliYzA4YWVkMGNiNjEzM2ZlMzc1OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjE3OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMToKICAgIEZpZGV4IGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgM2I2ODY1NjYyOTZkZDg3YmM0MmI3ZjExNjlkYWFjZGIzYzQ1Y2M1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMTggMDY6MjU6NTYgMjAxMCArMDAwMAoKICAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYzYTdkMWIwOTYwOWRhZDY0OWY1OGJiZGI1YjdlMTBkMzliMzk4YzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDExOjA0OjA2IDIwMTAgKzAwMDAKCiAgICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmRlNzNiZDM2NWEzODFiOWMzNTNjYTUyMzA3NjllZWZiMWFjNzFlZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTE6NDI6NDIgMjAxMiArMDEwMAoKICAgIGxvY2FsL3Bhc3N0ZXN0OiBSZW1vdmUgYW4gaW5jb3JyZWN0IFBBVEg9IHN0YXRlbWVudAoKY29tbWl0IDY5OTUxM2YxMjM4ZTBhZGNlMWYxY2VjOThlMGQxNDcyOTNmYzUwNDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDA5OjI1OjUxIDIwMTAgKzAwMDAKCiAgICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDYzNThkZWU3MmZiMzQ3ZTI2MDBhMGE3YmQyMWYyMzI3MGQzYTAwZjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjU4OjE1IDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOiBBZGQgYSBjb21tZW50Cgpjb21taXQgNTM5NmJmZTAzMmM4Y2JjNzNjOGZmNWQ0YjA4NWViYWRhOWY1OTg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MzA6MTYgMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgZmViM2FmMjhkY2FlMjIwMTVhZTg2NWEyZTVkZDhjNDE2ZTk5OTFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MDI6MDggMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgYjdlMWFhMjU1YmFlNGEzNDUzZjllY2E2NDRhODc2NjM0MzUxZjExZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjAgMTk6MzY6MjggMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKiBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgIAlhcHBzL3NubXB0cmFwZC5jCiAgICAJc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYwogICAgCXNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAgCXNubXBsaWIvc3lzdGVtLmMKCmNvbW1pdCBmNDdhMzc1Mjg0OWRiMDc1ZTZmMjA1M2I4NTk1YjdiNzkyZmI2NDYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAxNSAxMDo1NjowOSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBCdWlsZHMgbm93IGNvcnJlY3RseSB3aXRoIGEgNjQtYml0IGNvbXBpbGVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwMmI2MDU2ZGY5NWRhOGI2NzMwMzRlMzljMmM3YzM4NmVkMGYzNjljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMTo0NDo1MyAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCBhMTk4NjU4MzJmYzc3ZjRjMDQ4MTQ0ZDkxYTQzMWIxZTk0ZDMyOWYyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMTQgMjM6MTI6MDUgMjAwOSArMDAwMAoKICAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc3OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjdhM2UyZWNjYjk1ZjljOWQwODA5ZWZjYmRkY2Q4NjZlZTMwNjJkNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxNDoyNzoxNSAyMDEwICswMDAwCgogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2RjZGUyZThhNTk1YTUyN2YwNjE0MmMzYjg1MmRlODQzM2ExY2YyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDI0IDE0OjI3OjU1IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IgTkVUU05NUF9SRU1PVkVfQ09OU1QKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzJlMTUyNWE4NWJkYTUyOTlhM2I5ZjI0MTYxNGY3ZTY1MDlhZWViYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMzozNToxMSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IDI5NWY0NzNjODM1NDYyMjFiMmE3MWQ4MTVjNjFlMzNhNjdmOThhZTM6IHJlZmluZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpIGltcGxlbWVudGF0aW9uLgoKY29tbWl0IGNiNDIzYjBhZTllZDAwNTlhYTEwMGRjNGUyZmQ5M2FkMWI5N2ZhZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTE6NTc6NTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBlMmZiMDllMDA5M2UyZjY0OGZlMjYzOGRhMmYzYWYxOGZkYjMyYmYwIC0gaW50cm9kdWNlIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9zbm1wX3BlcmwuYwogICAgCXNubXBsaWIvc25tcF9zZXJ2aWNlLmMKCmNvbW1pdCBhZmMzOTZhYjE2MThhODU5NWEyNTE5ZmJjMjVmN2E0OThlMTc0NDExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODo0OTozNCAyMDEyICswMTAwCgogICAgVW5icmVhayBuZXRzbm1wX21rdGVtcCgpIGFuZCBtYWtlX3RlbXAoKS4KICAgIAogICAgVGhlc2Ugd2VyZSBicm9rZW4gYnkgY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkuCiAgICBBbHNvIHJlcGxhY2UgYSBzdHJuY3B5KCkgY2FsbCBieSBhIGNhbGwgdG8gc3RybGNweSgpIGFuZCByZXBsYWNlIHRoZQogICAgbWFrZV90ZW1wZmlsZSgpIGltcGxlbWVudGF0aW9uIGJ5IGEgY2FsbCB0byBuZXRzbm1wX21rdGVtcCgpLgoKY29tbWl0IDIxMDE4NWMxNWQwZDY1ZjBlYTk4YjVlM2MyZTA3NzZmNjIyMmQxNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjI3OjQzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjcmFzaCBkdXJpbmcgc3RhcnR1cCBvZiBzbm1wZCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkLgogICAgCiAgICBBbHNvLCBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBjb3B5IG9mIHRoZSBjbGVhbnVwIGNvZGUgaW4gZnVuY3Rpb24KICAgIG1rZGlyaGllcigpLgoKY29tbWl0IDhiYjRlODZhYmNmOThmZjI4NzQ4YWYwYWY4OWM5OGU2NGQ1Y2Q5NjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSmFuIDExIDA3OjQ3OjEyIDIwMTIgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBvbGRtYXNrIHZhcmlhYmxlLgoKY29tbWl0IDY2ODAxNDdiMTM4ZWMxMTRmODFjNWQxMjhhYzkzNTBjODQ1MGQwODEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDE4OjQ0OjMxIDIwMTIgKzAwMDAKCiAgICBNYWtlIHRlc3QgVDAxNWludDY0X2NsaWIgcGFzcyBvbiA2NC1iaXQgc3lzdGVtcwoKY29tbWl0IDNhYWQxNWFlNTYwYWM4NTdlNzNjOTA3NjRlOTAzZTdjYTAyYjMyOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTo0MDo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IGZvciBsYXJnZSBPSUQgbmFtZXMKCmNvbW1pdCBmYmExODhlZTgyMDEwYjJmMmQ4Y2EyZTQyNmJhNjU0NDk5YWIzZDBhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MzE6MzMgMjAxMiArMDEwMAoKICAgIGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX2NvbmNhdF9vaWRfc3RyCgpjb21taXQgMjFkMjVkODZiOGU0OTA0ZDc5OGRjOGM5NmRhZGU5ZTUwNDg0NTdhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjI2OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIHBvcnQgbnVtYmVycy4KCmNvbW1pdCBkMzY5MzE4NDFiMmZjMmNlYmM2MzY0YjI5NDkxMjlhMGFkNDJhZDFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDU6NTEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgU3VtRmlsZSBpcyB1c2VkLgoKY29tbWl0IDBlZmRkMDIyZGEwOWFmMWI1ZTE2MTcxZmE3YTJiNTIzYzVkNmVjNTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowMTo1MyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDU2MGJjNmMwOWI3NTE1NTZlZmQ2YjRjNDQ5NTc1MWIxMDlhOTNmOTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1OToyNCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgODI5MWQ3YzViOTJhMzFkZDRmNTgyYjQ5N2Q0YjJhMDg1MzM2N2E1NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU1OjE2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCgpjb21taXQgODhlMWYzNGRlNzMwMDU3NWZhNmRhYjg1N2VjZGRiMjQyYTg3ZGU4MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ4OjU1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYmUxMzc1YTk5MjZlYmUwY2Q1Yjc4YTQwNDVjM2JkMTFjODM2NjRiMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIHNlbnNvciBuYW1lIGlzIHRvbyBsb25nLgoKY29tbWl0IDFjYjI0NjI1MzcyMDYyYjE0YzcxZDdkZDUxZTIwZmVmNzczZTI3NDMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0MTowMCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBDUFUgaGFzIHRvbyBsb25nIG5hbWUuCgpjb21taXQgODRjODA3ZWUwMzI1MWU1NDg1NmU4M2Q2MmQwNmVhMDhiOGRmNTI3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjM2OjUwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYzMxMGUzOTBiNWRkMDVmMjRiZTdlYjE5MDRjNzRlNDEyNTljOTNkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjI0OjU0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNDYwMGQxMTQzNGU4M2I4NjUzY2Y5ZjgxM2EzZDhiNjMwNDU1YjQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjE3OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBwbGF1c2libGUgc3RyaW5nIG92ZXJmbG93IGJlZm9yZSBwYXJzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxMTowMiAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiAoaW5zZWN1cmUpIFNOTVBfTUFYUEFUSCBpbiBta2RpcmhpZXIoKQoKY29tbWl0IDgwMTY4OTBhNDQ1ZjZhN2UyYTg3M2EwNDg3M2Q0ZTI3YjZlZTY0ZTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzo0ODozNCAyMDEyICswMTAwCgogICAgRml4ZWQgd3JvbmcgaW50ZWdlciBzaXplIG9uIDY0IGJpdCBwbGF0Zm9ybS4KCmNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MzE6MzYgMjAxMiArMDEwMAoKICAgIFNlY3VyZSBta3N0ZW1wKCkgd2l0aCB1bWFzaygpIC0gb24gc29tZSBpbXBsZW1lbnRhdGlvbnMgaXQgZG9lcyBub3Qgc2V0IDA2MDAgcGVybWlzc2lvbnMgYXV0b21hdGljYWxseS4KCmNvbW1pdCAyMDI1MjNjYTcwNGJkNzIyZGMxYWMwZTFlNmIwZTRiNGU1NDI0NDk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MTE6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgJ2MnIGJlZm9yZSBOVUxMIGNoZWNrLgoKY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzowODoyNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAyZjRlNmFjZDcxNDE4M2YwMTViNzYzNjU3ZjhmMDg0NTkzMzU3ZTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMDozODoxNiAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlIHBlcmwvKi55bWwgZmlsZXMKCmNvbW1pdCBjMzY1ZDgwYzE2YzJkMTdiMTYwMDExZThjMWY5Y2I5NTg5NTRlOWRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAwODozNDoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlIHRoYXQgZmFpbHMgaWYgU0lHVEVSTSBpcyByZWNlaXZlZCB3aGlsZSBhIFBlcmwgaGFuZGxlciBpcyBhY3RpdmUuIEJhc2VkIG9uIGEgcGF0Y2ggcG9zdGVkIGJ5IEpvZWwgQXZuaSA8amF2bmlAYXJ1YmFuZXR3b3Jrcy5jb20+Cgpjb21taXQgZDA1OWZiODc4YjE0MzY1OTk5NTNjZWE1YTA3NzQ5OWRkY2RjYmNiNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNzowMzo1NSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KCmNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI2OjE3IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKCmNvbW1pdCBlMzI1ZWNiZmNlNzdmMDBhYzVjZjZmYmQ5NTdmOTU0OTVmNjFjNTliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI1OjEwIDIwMTIgKzAxMDAKCiAgICBTdXBwcmVzcyB1bmludGVyZXN0aW5nIERveHlnZW4gd2FybmluZ3MKCmNvbW1pdCBiZTkxNjFkM2E1ODk4ZTg2Mzc2N2Y5MjY2MTM0ODYxMjZjMmNiZjY3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjM1OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIDY0LWJpdCBudW1iZXJzLgoKY29tbWl0IDg2ZTRjMmJlMDg1MmEwYTEzYjA2MDMwNzU3MjBiMzI2NGVjNzBkZGUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6Mjk6MTEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgaXQgZXhwbGljaXQgdGhhdCBNQVhfU1VCSUQgaXMgYW4gdW5zaWduZWQgY29uc3RhbnQKCmNvbW1pdCAzN2UyNzJkOGY3YjcxODBiYTE0MGZhMzg2YTVmZjA1ODk2OGEwOGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE4OjIxOjQ4IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSUYtTUlCOjppZlR5cGU6IFJlcG9ydCB0eXBlICJpbmZpbmliYW5kICgxOTkpIiBmb3IgSW5maW5pQmFuZCBpbnRlcmZhY2VzIGluc3RlYWQgb2YgdHlwZSAib3RoZXIgKDEpIi4KCmNvbW1pdCAyNjk5MzJmYTMyYzdjZDQ3OTU3NDg5Njk4ZTA5YmVlMzFmNjNiN2FmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMGQxYzIxZjk5OTFkMTMwOWQwNTdlM2U0MDU2ZDU0N2RmN2Q0MGVjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCgogICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KCmNvbW1pdCAwYzNkNGRiYjBhOWNmNWIzNTlmNzBiMmYxOTkxNTQ5NTU1NGY4NDBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAoKY29tbWl0IDg5M2VjYzk3YjU4NzY2MTA0NWJlY2JlMDlhMzIwYzFiY2JjNzFjN2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCgpjb21taXQgM2QxMjY0MjJlNjI1NzAyYjlkM2ZhMDY3NmE5N2VjNWNiMjBkOWQxMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCgogICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCgpjb21taXQgYWY1M2I3NmMyZmZhNzUxZTM5NThkMGZjNWQ4Mjc5Zjc4YzJjMWMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCgogICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKCmNvbW1pdCAzNWE5MmU2OTNkMTMzYTViMTFlOWU5YjU5OWRiZjQ3ZWRlZjQ5MzNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQoKY29tbWl0IGE5YjA3M2VhM2I2Y2VkZjcxM2UzMDVlN2IxNWYyOGFlNTdiZmRmMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAoKICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA3ZTg5MGRhZDk1ZjU2NjA2OWVlMjgwMjE1YTRmZWEzZjBlMmUzOTgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKCiAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCgpjb21taXQgMWY2MjAwY2ZlMWIwYjI3ZWJiMDkzYTE2MDZiNTkyZjllOTY4NGJlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42Cgpjb21taXQgYzMxMjZiMTQzOTIxZmFiZWFjNDQyMTY2ZWNhNWI1Yjc0MmZkNDJjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCgogICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKCmNvbW1pdCBiMjRlZTdjOTA5NjU3ZGI0M2JkOGM1ZDhjMDEwNTVjYTA4ODNjOWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKCiAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscwogICAgCiAgICBVc2luZyBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBpcyBlcnJvciBwcm9uZSAtLSBzZWUgYWxzbwogICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCiAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKICAgIHN0cm5jcHkoZHN0LCBzcmMsIG4pIGNhbGxzIGJ5OgogICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCiAgICAgICAgbm90ICdcMCctdGVybWluYXRlZC4KICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCiAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCgpjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMToxOToxNiAyMDEyICswMTAwCgogICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCgpjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoxMyAyMDEyICswMTAwCgogICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KCmNvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjI5IDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTU6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQoKY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTc6MTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTY6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAoKY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTk6NTU6NTYgMjAxMiArMDAwMAoKICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKCmNvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjMzOjA5IDIwMTIgKzAwMDAKCiAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MTE6MjQgMjAxMiArMDEwMAoKICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKCmNvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMyAxOTowNzozNyAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCiAgICAoRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZSBwZXJsIHN1YmRpcmVjdG9yeS4gTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLikKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJcGVybC9BU04vQVNOLnhzCiAgICAJcGVybC9PSUQvT0lELnhzCiAgICAJcGVybC9TTk1QL1NOTVAueHMKICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCgpjb21taXQgZDIxMmRjOTg0ZWMzNGU0ZDIzMDYyNWU0NmU1OGIwYzYyOGE1MGRmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCgogICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgYmFjZWViYjEwZDhjYWY1ZGI2M2NjMzY5MzVmZWQ2NWVlOTMxMDI5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCgogICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQoKY29tbWl0IGY3Zjk2NmFiZDZkMjg0OWIxMzMxMjUyYWZlNWM0NzNlNWM0MGIzMmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgoKY29tbWl0IDMwM2MwMTViY2ZlOWFmMGIxNTRlOTg4MWM3YjRmNDQ5ZTA4ZjMwYmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CiAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKICAgIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAoKY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjE6NTk6MjAgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKICAgIChUcml2aWFsIHdhcm5pbmcgZml4ZXMsIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAgCWFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYwogICAgCWFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKICAgIAlhZ2VudC9zbm1wZC5jCiAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKCmNvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoyOTowOCAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvCgpjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6MTQ6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgoKY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjQwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSAndG9rZW4nIGlzIHVzZWQuCgpjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6Mjg6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG9mZi1ieS1vbmUgbWVtc2V0LgoKY29tbWl0IDBmNTM2OTUwNDRkZDNmMGMzNTA3NzUzZTNmOGMyOWQ5N2U5Njg3MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDMgMjE6Mzg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFwcHMvc25tcHRscy5jCiAgICAJYXBwcy9zbm1wdHJhcGRfbG9nLmMKICAgIAlzbm1wbGliL2Rpcl91dGlscy5jCiAgICAJc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAJc25tcGxpYi9zbm1wX29wZW5zc2wuYwogICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKCmNvbW1pdCAwMTUzODA1Yzk5YjkxOTczNjU5MzVjNWQxMWFlOWMzZDRiZmFhMGYzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQ4OjQxIDIwMTIgKzAxMDAKCiAgICBGaXggYSBzZXQtYnV0LW5vdC11c2VkIHdhcm5pbmcKCmNvbW1pdCAzZjg4ODVmYmVlOTQwNzc0OGZjMmYwNTczNzI4YTExYmEyYmMwMjNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMjggMDU6NTE6MTMgMjAwOSArMDAwMAoKICAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzIGxvY2F0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3NTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIxZWFhZjMwMjM2OWZkNDU1MmU4ZmVlN2I2YTgwNTA5MWVjMGE5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmaW5kX3NlY19tb2QoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgYWVlNGU4OTVmZTNiZDVmNGE2MWUzNDI3NWJmY2EwMzY4YjU2MDU1NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIHNubXBfc2Vzc190cmFuc3BvcnQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgNWQxZDBhNzQ0YWIzMGM4ZTY0NWMzYjg1MDZjYmJkMmNjZWIzZDI3NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDI5OWVhOWE4OWMzZjE3NThhNzc0OGJiOWIzNDExZjYyZjJjNzBmODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KCmNvbW1pdCA5MGYxYWU2NzU3OTE3NDgxNjM2ZWVmNzcxMDBjYWVlYjUzZWRmZTAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCgpjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAoKICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgMTk5YTA1MTFmNmViMGVmM2ZmMWQ5ZjkyMmI3OTBhYjY3ZGZkZTAxZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQoKY29tbWl0IGQ4ODM1NzNhYTczZTBmNWZjMTg4YWNlZGVlNjQ1MWY5NWRhZTkwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCA3YjdhM2ViMjUwMDUyN2VhYTE2OTkyODdhNmNhNmZjYzRjYzJlMDhhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgMmI2YzExOWZlZDQ4NDhkYTY2NjNjMTFmMGMyY2JkYzI5OTIxYjVjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCgpjb21taXQgNmNlNTM2MGNhYTRjOWRlNTFhZGU1Nzg3OWU4M2Y5NmJkMDRiNGM1YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCgpjb21taXQgYjNiYzU0YmVkMzE2OTBhODVkZjJhY2ZiZjMyOTZkYTkzYTllODliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAoKICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KCmNvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToxODoyNiAyMDEyICswMTAwCgogICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KCmNvbW1pdCA2NjY1ZDVmZTJmYzU2OWQ2ZmE4NTRkMWQ3OGUzNDdiYmFjNjllMDcwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMjoyMiAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNjoxMSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCiAgICBBbHNvIGFkZGVkIGEgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAoKICAgIEFkZGVkIG1pc3NpbmcgYnJlYWsKCmNvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCgogICAgRml4ZWQgUVVJVEZVTiB1c2FnZS4KCmNvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgZm9yIGZhaWxlZCByZWdpc3Rlcl9taWIuCgpjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAoKICAgIE1ha2UgTUlCIGZpbGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG1vcmUgc3RyaWN0IC0gTEFCRUwgaXMgcmVxdWlyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBNSUIgZmlsZXMuCgpjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCgogICAgQXNzdW1lIHRoYXQgbGliZGwgbWlnaHQgYmUgaW4gQUdFTlRMSUJTIG9yIFNOTVBMSUJTIHNvIHByZWFkZCB0aGVtLgoKY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAoKICAgIERvIG5vdCByZXF1aXJlIHVjZC1zbm1wL2RsbW9kIHVubGVzcyBpdCB3aWxsIHdvcmsuCgpjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAoKICAgIEFkanVzdCBwYXRocyBmb3IgdGVzdCByZXN0cnVjdHVyZQoKY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGxtb2QgbW9kdWxlIGZhaWwgcmF0aGVyIHRoYW4gZ2VuZXJhdGUgYSBkdW1teSBtb2R1bGUgaWYgdGhlIGRsb3BlbiBmdW5jdGlvbiBpc24ndCBhdmFpbGFibGUuCgpjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAoKICAgIEFkanVzdCB0aGUgcGF0aHMgdG8gc3VwcG9ydCB0ZXN0aW5nIGV2ZW4gaWYgYnVpbGRkaXIgIT0gc3JjZGlyCgpjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlcyAncCcgYW5kICdsZW4nLgoKY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCgogICAgUmVwb3J0IHByb2JsZW1zIHdpdGggU2V0VW5kbyBwcm9jZXNzaW5nCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAoKY29tbWl0IGViMmFiMjM3NDJjYTg2YzBiODljY2ZlOTFlYjZlYTM3NGJmM2FjYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCgogICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAoKY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxMjo1OTo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCgpjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE3OjE1OjE2IDIwMTEgKzAwMDAKCiAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KCmNvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTY6NTM6MjQgMjAxMSArMDAwMAoKICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjU4OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDQwOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBBZ2VudFggZXJyb3JzCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGZlNThhMGU1ZjRkNGUyZTJlY2JjYjQ3MzgyYjA4Y2IxZTRkZjM1MmMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MDQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucwogICAgKGluIGxpbmUgd2l0aCBjb25uZWN0aW9ucykgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBhbnkgR0VUTkVYVCByZXF1ZXN0IE9JRCwgbm90IGp1c3QgYSBzaW1wbGUgd2Fsay4KCmNvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHBhc3M6IFBBVENIRVM6IDM0OTM5NDogQnJpbmcgcGFzc19wZXJzaXN0dGVzdCBzY3JpcHQgaW50byBsaW5lIHdpdGggcGFzc3Rlc3QqCiAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNjo1NDozOCAyMDExICswMDAwCgogICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCiAgICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4gIEJhY2twb3J0IG9mIFNWTgogICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCiAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKCmNvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6NDU6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcwogICAgUGF0Y2ggc3VwcGxpZWQgYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKCmNvbW1pdCBiYTRhOWNlNTFjOTYwMGY5ZmRhMTY4ZjFlNmVmZjMyYTFkYjYzY2I5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAoKICAgIFR3ZWFrIC0tZGlzYWJsZS1zbm1wLXNldCBjaGFuZ2VzCgpjb21taXQgODI3YzhiMjg4MzAxNzFmYWE5YzYxZDUzZWZjYTllYjY2MDA1NjFjMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDM0MzM4NDY6IEZpeCBmb3IgdXNlIHdpdGggcHl0aG9uIDIuNAoKY29tbWl0IGY5OGE1NGE5OWNhZjdiNDZiMTAwYTkyMGRiOTQyY2JjYTljNDM5MjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMDoxMDozNiAyMDExICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgMjMwZGYxNGY5NGMzNzM2ZmYzNDM3OWE0ZTI4MWVlYTM1M2I0N2Y4MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBEZWMgMjYgMjM6MzQ6MjMgMjAxMSArMDEwMAoKICAgIERvIG5vdCBhc3NpZ24gdG1TdGF0ZVJlZiB0d2ljZQoKY29tbWl0IGM5NmIzYjRkODUzMGFkNWUwZWZiMDNmMjRkYWI1ZTVmMWE0NjAwMzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE4OjIxIDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IHVzZS1hZnRlci1mcmVlLgoKY29tbWl0IGM1OTc4Yzg5Y2RlMjQ0MGY0ZDIwZGFkYmM5ZDFkZDhkYjU2MmQ1NmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE1OjQ0IDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IGRvdWJsZS1mcmVlLgogICAgCiAgICBuZXRzbm1wX3Rsc3RtQWRkcl9hZGQgdGFrZXMgb3duZXJzaGlwIG9mIGl0J3MgYXJndW1lbnQgc28gY2FsbGluZyBmcmVlIG9uIHRoZQogICAgYXJndW1lbnQgb24gZmFpbHVyZSBpcyBpbmNvcnJlY3QuCgpjb21taXQgYzEzOWNhMTIzYjQ0YmIzYjliNmJmOTIxZTE2MDljYzQ1ZjYzYTY2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjU1OjMwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDU5OiBGaXggc3BhcnNlbHkgYXVnbWVudGluZyB0cmlnZ2VyIHRhYmxlcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNGFlMDIxYjJlNjM4NDQzNzA4MWM1NjIzZjM2MGM4ODk2MzkwMTg4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjk6NTQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgQmFzZWQgb24gbWliMmMgcGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNmFjY2Y4YzY2MjU0ZmE4YzQ4NzY3ZWQ3ZGVjNzk1ZGRhZmM1MjJlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjc6MTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBhNjE4MjZhZDhjYTU0NjYxZDFkOTA5NzEyNTAzYmQzYThiMzJlZWQwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAyMiAxODozNTo0NiAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgIAogICAgbXlNYXRjaCBpcyB1bnVzZWQgYXMgbm1hdGNoIGlzIHplcm8gYW5kIGFsc28gc2luY2UgcmVnZXhCdWZmZXIgaXMgY3JlYXRlZAogICAgd2l0aCBSRUdfTk9TVUIgc2V0LgoKY29tbWl0IGJhNGZjODBmZTJjZmQ1YTVkODkyMzBkOGYzNzAzZTRmZTAxZTYwMTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyMiAxOToyNDo0MCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MDIzNzY6IGZyb20gTGVvbmFyZG8gQ2hpcXVpdHRvOiBSZWNvZ25pc2UgUmVpc2VyRlMKICAgIEFsc28gbW92ZSB2YXJpb3VzIEZTVHlwZSBkZWZpbml0aW9ucyB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2tzCgpjb21taXQgYjVhYzRhMDRkY2Q1NDcwZDA4ZDAzMzIxYWJjZDFlOTgyNjIxZTZlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgMmIzN2U0ZThmMjUwYTBkODgyMTE5OWE3NGFjM2Y0ZTViN2I3YmFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMxOjUxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgM2QwODM0NTE1NmM0MTkzMzNkZTk2OWYxM2QyMWZjZWM3ZTE4ZTk0ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMyOjI5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgY2Q4NTlhZDUxYzRmMThkNWIwZmM2OWRkNjY5ZmNiMDUxYzc5ODk2OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBtZW1tb3ZlIHNpemUKCmNvbW1pdCAzMGZmNThkMDlkNGM5ZDU0MzhiYjYyMTA1NGZkN2FkN2EyYTU5N2U0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MDc6MTkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIGxlbmd0aCBvZiBidWZmZXIgd2hlbiBwcmludGluZyBBU05fQklUX1NUUgoKY29tbWl0IDZjMTQ4N2UxZDM2MGQzZDI2MGEzOWNiMWY1YjE1ZGE5NzgzOTUwNTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NzozNCAyMDExICswMTAwCgogICAgRml4ZWQgcG90ZW50aWFsIGZyZWUgb2YgdW5pbml0aWFsaXplZCBwb2ludGVyIGluIGVycm9yIGNhc2VzCgpjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ0OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bml0aWFsaXplZCB2YWx1ZXMgaW4gdWRwVGFibGUKCmNvbW1pdCBjNDQ2MDg2NzliODk3NTExNzZmMjhhMmU1NGQ1MjgyYjQ2ZTJhMDVjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NTY6MTMgMjAxMSArMDEwMAoKICAgIFVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgYW5kIG1hbnVhbCBjbGVhcmluZwoKY29tbWl0IGEwNWM1Zjk1MTM0NjE4MjRlNzkwM2FlOWFlOWE2YzMzODZlMzM4NzkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo0MDo1MCAyMDExICswMTAwCgogICAgRml4ZWQgcHJpbnRpbmcgb2YgdW5pdGlhbGl6ZWQgdmFyaWFibGUgd2hlbiBzZW5zb3JzX2dldF9sYWJlbCgpIGZhaWxzCgpjb21taXQgZTRhNWVkYzcyMzkzYmQzZGU5YmYxMmJjZWJhOWQ4M2JiZjdkZTcwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjMxOjI1IDIwMTEgKzAxMDAKCiAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGZhZTJlNWI4MzViOGRmMWVhZTQ3ZTRjZWJiNGViNDA0ZDcyODIzNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMToyMSAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bml0aWFsaXplZCBpaWQgaW4gZXJyb3IgY2FzZXMgYW5kIHdpdGggZGVidWcgaW5mbyBlbmFibGVkLgoKY29tbWl0IDlkNThmODFhOTIzOWNmYmNmYzhlYmNlMzY3ZDIxZTliM2RjYjAyOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMzozMyAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBpbiBlcnJvciBjYXNlcwoKY29tbWl0IDBiYzhjMDhlZGVhZTdhZTA5NWYxMTYyNThjMjBhZTU3NjdkNjA2NTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzoyMDo1MiAyMDExICswMTAwCgogICAgRml4ZWQgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgJ3N0YXR1cycgd2hlbiBzcyA9PSBOVUxMCgpjb21taXQgNzMwNGM1M2NmOGFkZWU4ZWNjZWYxYThmMjY3NTZmYzA3ZjA5ODcyMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTggMjM6MzE6NTMgMjAxMSArMDEwMAoKICAgIE9uIHNvbGFyaXMgMTAgdGVzdCBpbiAvYmluL3NoIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLWUgdGVzdC4gUmVwbGFjZSBpdCB3aXRoIC1mCgpjb21taXQgOGNkM2JlNjBkNjkzYzljMzZmZmI5N2QzZDliY2I0OWMxYjRhYmUzNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMTcgMDg6NTI6MjQgMjAxMSArMDEwMAoKICAgIEF2b2lkIHJlcGV0aXRpb24gb2YgdGhlIGNvbXBsZXggZXhwcmVzc2lvbiBkZXRlcm1pbmluZyBpZiBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCiAgICAKICAgIFRoaXMgYWxzbyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBwbGF0Zm9ybXMgbGlrZSBTb2xhcmlzIDEwIHRoYXQgZGVmaW5lCiAgICBJUF9SRUNWRFNUQUREUiBidXQgbGFjayBlaXRoZXIgb2YgbXNnaGRyLm1zZ19jb250cm9sIGFuZCBtc2doZHIubXNnX2ZsYWdzLgoKY29tbWl0IDk1M2YyZTNkNDI1ZWRlM2I4NjNhMmU3Y2NiMGI0YmM4NjI5MjhiNTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDUgMjI6MTM6MDcgMjAxMSArMDEwMAoKICAgIE1vdmUgdGhlIHVzZSBvZiBfc2VuZHRvIGFuZCBfcmVjdmZyb20gYmVsb3cgdGhlaXIgZGVmaW5pdGlvbnMuCgpjb21taXQgNjhhMTE3M2M0NmNmNzc2MDE0MjZjZjM5MWQ5YTg1Mjc5NGYyMDU3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjAgMjA6MDU6MTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIG91dCB0aGUgY21lc2cgYnVmZmVyIHNpemUKCmNvbW1pdCA0NjFkZDE2ZjNiMjY0NzMyMmNkY2U2MzYzMDgxY2M0NGJhNWE0OWI1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAyNiAyMTo1MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KCmNvbW1pdCA3YWNjYjY5YmFhMWZjMGI2YTM0MzlkMmU1NDljODZkYTM0NTNiYWQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTozMDozMSAyMDExICswMTAwCgogICAgVXNlIGEgYmFyZSBzdHJ1Y3QgaW92ZWMgaW4gaW5zdGVhZCBvZiBhIG9uZSBlbGVtZW50IGFycmF5LgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGNoYW5nZSBpcyB0byBtYWtlIF9yZWN2ZnJvbSBtb3JlIHNpbWlsYXIgdG8gX3NlbmR0by4KCmNvbW1pdCAzOTg1MmNkNGM4NWVmMmJmYzc1Y2RlYTI4MjUyNjFlZTkzZTc2OGMyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyOToyMCAyMDExICswMTAwCgogICAgQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB0aGUgcHVycG9zZSBvZiB0aGUgY2FsbCB0byBnZXRzb2NrbmFtZSBhZnRlciBhbG1vc3QgcmVtb3ZpbmcgaXQuCgpjb21taXQgMWIyOTJjYTI3ZWFiNWNhYTczZmVhYWE4M2RjOWMxMmFiYzBmMmU3MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjc6NTkgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZS4KCmNvbW1pdCBiYzg3OTU3MWVjYTk1MjBiYzEzMmY4NDBjM2U2NTlkMzc5MzE0NGQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNTozNiAyMDExICswMTAwCgogICAgSW50cm9kdWNlIHRlbXBvcmFyeSB2YXJpYWJsZXMgdG8gZWFzZSB0aGUgZXh0cmFjdGlvbiBvZiB0aGUgc2VydmVyIGFkZHJlc3MuCgpjb21taXQgYjdlZWE2Y2ZmYmQ4NzI5MzJjZTJjMDRmZWZiNmY0M2RlMzM5ZjM3NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTg6MzMgMjAxMSArMDEwMAoKICAgIFJlbmFtZSB0aGUgY21lc2dwdHIgdmFyaWFibGUgdG8gY20uCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgoKY29tbWl0IDBhNzQ2MWU3Mjg4MDVjNjJhMWNhYjlkODdiZmM3NGM3OTI3YTlmY2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE1OjIyIDIwMTEgKzAxMDAKCiAgICBGYWN0b3Igb3V0IGEgY29tbW9uIGxvb3AgaW4gcmVjdm1zZyBvcHRpb24gcHJvY2Vzc2luZy4KCmNvbW1pdCBiM2M2MjQ4ZDAyMDFhYjE2MTA4NDBkNmQwZTc0OWIzYjZjNGFkNzkyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxMzo0MyAyMDExICswMTAwCgogICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiBMaW51eCBhbmQgQlNEIHJlY3Ztc2cgb3B0aW9uIHBhcnNpbmcgc29tZXdoYXQuCgpjb21taXQgMzU2NDAwZDYyOTBhNDIzYjUyZWJlZWE1YTVlOTc2ZmIxNWJiNzNiNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MDQ6NTYgMjAxMSArMDEwMAoKICAgIFVzZSBDTVNHX0RBVEEgb24gdGhlIHJlc3VsdCBvZiBDTVNHX0ZJUlNUL05FWFRIRFIsIG5vdCBvbiB0aGUgYnVmZmVyLgoKY29tbWl0IDNiMzUxNzA4YzYyZGU0NmFhMWI5MGVkMjMyY2ZkOGM3YzViMDIyMzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTI6MDA6MzIgMjAxMSArMDEwMAoKICAgIFJlbW92ZSBhIGNhc3QKCmNvbW1pdCBkZTkyNTBkOWRhZTk3MjdhNmNjN2Y2NDc2ODhkZGRmMWI4NTk3MTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDExOjU4OjA0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzcHJpbnRfbWliX29pZCgpIHRyZWF0IE9JRCBjb21wb25lbnRzIGFzIHVuc2lnbmVkIGluc3RlYWQgb2Ygc2lnbmVkIGludGVnZXJzCgpjb21taXQgMGUzM2IzYjZkNTg1NGE0YmFjMTVkNGVhNWUwMTZjNTNkMTYxZDBjZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMDowMjoyOCAyMDExICswMTAwCgogICAgRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA4OjM3OjIyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZwoKY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDk6MDk6NTkgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgM2RiOTc5NjJiMzdlYjEyZDI1NGQ2MWU2YmUyMzRiMDZhMzkxYzhiYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBEZWMgOCAwNzo0Mzo0NSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDM0NTM4Njg6IGZyb20gIkJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPiI6IEZhY3RvciBjb21tb24gY29kZSBpbnRvIHBhc3NfY29tbW9uCiAgICAKICAgIE1vdmUgdGhlIGNvZGUgZm9yIHBvcm1hdHRpbmcgYW5kIHByaW50aW5nIHZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdAogICAgaW50byBwYXNzX2NvbW1vbi4KCmNvbW1pdCBiNjU2OGM4M2YxNzU2ZTlhNjU0MzRlZGVlZWI0MGQyM2RkYmJiNjUyCkF1dGhvcjogY2NjaGl1IDxjY2NoaXVAc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgNyAxNjoyNToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDUyMDY5OiBGaXggc25tcHRyYXBfb2lkIGRlY2xhcmF0aW9uIGluIG1pYjJjIGdlbmVyYXRlZCBjb2RlCiAgICAKICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QgYXQgdGhlCiAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKICAgIDBlYzA4OGFmYTI3Y2ZkYTRlNmVhNzhhYWU3Y2ZjNTUwNzU2NGVkZGUpLgoKY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzg6MTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRWxpbWluYXRlIGFuIHVudXNlZCB2YXJpYWJsZSAoTm93KQoKY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzc6MTEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogTW92ZSB0aGUgbWFpbiBsb29wIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbgoKY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMDk6MzI6MTYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYXRjaCBlYWNoIGdldHB3bmFtKCkvZ2V0cHd1aWQoKSBjYWxsIHdpdGggYW4gZW5kcHdlbnQoKSBjYWxsIGFuZCBlYWNoIGdldGdyZW50KCkgY2FsbCB3aXRoIGFuIGVuZGdyZW50KCkgY2FsbC4KCmNvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjQxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDdmMDVkYWE4ZTBlMGY1MzNiMGYxMmEzZTFjZjA3NjQxNTE5OTA5ZDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTE6NTg6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0NDkzOTogQlVHOiAxNzk2ODg2OiBzbm1wbGliOiBBdm9pZCB0aGF0IHNwcmludF9yZWFsbG9jX29jdGV0X3N0cmluZygpIGVtYmVkcyB1bnByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgb3IgYmluYXJ5IHplcm9lcyBpbiBpdHMgb3V0cHV0LiBUaGlzIGJlaGF2aW9yIGNvdWxkIGNhdXNlIHRydW5jYXRlZCBvdXRwdXQgaW4gc25tcHRyYXBkLgoKY29tbWl0IGRiOGY1NThmZDJmM2I3YzEwOWVhM2ExYzIxMzNiNzViNmY4Y2IyYWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4OiBwYXNzIHVuc2lnbmVkIGNoYXJzIHRvIGlzcHJpbnQoKSBpbnN0ZWFkIG9mIHNpZ25lZCBjaGFycy4KCmNvbW1pdCA4MDBkYzEwMjhlN2UwY2Q4Y2MxNGQ4NGRkMzE3MjNkNDdhYzA3M2RiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjE4OjU4IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBoaW50IHZhcmlhYmxlCgpjb21taXQgODNlYTRhMDgwYzkwYTc0Yjk3NDNkM2YyNGNmMGQ0YjhhMWU4Yzg0OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjcgMjE6MTY6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIHFvcwoKY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA0OjAxIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgI2RlZmluZSB2YWwoeCkgX19TVFJJTkcoeCkgYW5kIGNoYW5nZSB2YWwoeCkgaW50byBfX1NUUklORyh4KS4KCmNvbW1pdCAyZjM3OWIwZTRlY2FkZmE0ZTU0MWUzMDA1YzhmYzgyODE4ODJiNzQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNTo1ODo0NyAyMDExICswMTAwCgogICAgRm9sbG93LXVwIGZvciBjb21taXQgMWFhNzA0ZTogdW5icmVhayB0aGUgTVNWQyBidWlsZAoKY29tbWl0IDY0ZWYwZjcxMTI3NjE3ODM3MDI3ZmIyY2ZhZjE3NGI5NWJhNzllMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjE5OjUwIDIwMTEgKzAxMDAKCiAgICBBZGQgU05NUDo6cmVnaXN0ZXJfZGVidWdfdG9rZW5zKCkKCmNvbW1pdCA3YmVhZDljYTkxN2M2NzU2NmQ1ZWQ5OGFiNTA3YmJjMDI4MTYyMTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowODowOCAyMDExICswMTAwCgogICAgQWdlbnRYIHN1YmFnZW50OiBSZWR1Y2UgY29kZSBkdXBsaWNhdGlvbgoKY29tbWl0IDBlZDcxNTQxZjg3ZTdkNzhiYzk5OGVlYmRhMzIxN2M1OWUxZGY4MzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAzOjE5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgRG94eWdlbi1zdHlsZSBmdW5jdGlvbiBoZWFkZXIgZm9yIG5ldHNubXBfcmVnaXN0ZXJfZGVmYXVsdF90YXJnZXQoKSBhbmQgbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpLgoKY29tbWl0IDhjMjk3MmI2MWU0MDE2OWI0N2M1MDk4OGI2YWU5ZThjMjg1Zjg0ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAyOjU0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBGaXggc3BlbGxpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFNOTVAgbW9kdWxlCgpjb21taXQgNWRmMmJhYzZiZDcxNzc5OTMxMWYwMDFhYzdiNzNkYjg4ZjExYmRkYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6NTk6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE9ubHkgdHJhbnNmb3JtIHRoZSBhZGRyZXNzIHRvIHByaW50YWJsZSBmb3JtIHdoZW4gbmVlZGVkLgoKY29tbWl0IDE3MWU4ZDQ4ZDRhZjA0MDEzY2ZmOGZkMjhmNTM0MWEyYWVmMjFkODgKQXV0aG9yOiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAxNjo0OTo0NiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcC1icmlkZ2UtbWliOiBGaXggaW5kZXggaW50ZXJwcmV0YXRpb24uCiAgICAKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSB3cm9uZyBkYXRhIGludGVycHJldGF0aW9uLgogICAgc25tcC1icmlkZ2UtbWliIG9idGFpbnMgdGhlIGlmaW5kZXggdmFsdWUgZnJvbSB0aGUgc3lzZnMKICAgIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcyBhdHRyaWJ1dGUKICAgIGlzIGFuIGludGVnZXIsIHdoaWNoIGlzIGhhbmRsZWQgYXMgaGV4IGFuZCBsZWFkcyB0bwogICAgaW5jb3JyZWN0IGRhdGEgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgogICAgCiAgICBlLmcuCiAgICAgICAgJCA+IHNubXB3YWxrIGxvY2FsaG9zdCBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yCiAgICAgICAgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMiA9IElOVEVHRVI6IDU0CiAgICAKICAgIGFjY29yZGluZyB0byB0aGUgc3lzZnMgYXR0cmlidXRlIHRoZSB2YWx1ZSBpcyAzNgogICAgCiAgICAgICAgJCA+IGNhdCAvc3lzL2NsYXNzL25ldC88ZGV2aWNlPi9pZmluZGV4CiAgICAgICAgMzYKICAgIAogICAgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgoKY29tbWl0IDgyZTM5ZmI2NzA2ZGY5MGVjZjJmYzllMTBhZGEyYjk2MmVlMTk2ZjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAyOSAxMjoyNzo0NiAyMDExICswMDAwCgogICAgRml4IG11bHRpLWxpbmUgY2FzZSB0ZXN0aW5nIG9mIGluY29taW5nIE9JRAoKY29tbWl0IGIxNWRhMWE0NTE2MDYxMTA1YTFlYWM3NDUwY2Y2NTBlYzQ0MjY2YjIKQXV0aG9yOiBOaWtvbGF5IERlbmV2IDxuZGVuZXZAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6Mjk6NDkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFJlc3RvcmUgSVBfUkVDVkRTVEFERFIgZnVuY3Rpb25hbGl0eS4KCmNvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiAyOCAwODo1MTozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIFNOTVBfQUxMT0NfVFlQRURFRiB0byBhbGxvY2F0ZSB0cmFuc3BvcnRzIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBzZXBhcmF0ZSBjYWxsIHRvIG1lbXNldC4KCmNvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNTowMjo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KCmNvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNDo1NTo0MiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMDE0Z2V0aG9zdGJ5YWRkcl9jbGliIHBhc3MKCmNvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAwOTo0NDozOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcy4KICAgIAogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcyBuZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQgdG8gcmVhZCBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2Ugb24gVW5peCBzeXN0ZW1zIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBzaHJpbmsgYmVoYXZpb3IgY29ycmVjdC4KCmNvbW1pdCAyM2RiMGNmMDliOGIwZWFiMzdiNzQ5ZWYwYzNjM2YzMDY5MDAyNDVjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAyMSAyMzowMjo1NyAyMDExICswMTAwCgogICAgRml4IGNhc3RpbmcgdHZfdXNlYyB0byBpbnQgd2hpY2ggbWF5IGJlIHRvbyBzaG9ydAoKY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjE0OjAyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kIHJlbmFtZSBpdCB0byBuZXRzbm1wX2ludGVybmFsX3Bhc3Nfc3RyX3RvX2Vycm5vCgpjb21taXQgMGJhYTkyOTZjMDcyYmIzNzM1NzYwYjBkZDk5MmYyZDFkM2NhMjdmYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MDU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY2llcyBvZiB1Y2Qtc25tcC9wYXNzIGFuZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKCmNvbW1pdCAxYWE3MDRlNGEyOTQ0MzBiMjhlMzliNmY5ZTQ2ODNiOGE0OGJjZTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwODozNToyMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZhY3RvciBvdXQgYXNjMmJpbiBhbmQgYmluMmFzYy4gQWRkIGEgbmV0c25tcF9pbnRlcm5hbF8gcHJlZml4IHRvIHRoZW0KCmNvbW1pdCBjZGE4ZmU5MTAxM2YxMmNiZjY0YTA3NzVhYmI1NTcyMDAzNWFmOTMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwMDo1NToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IENhbGwgc25tcF9vaWR0cmVlX2NvbXBhcmUgaW5zdGVhZCBvZiBzbm1wX29pZF9taW5fY29tcGFyZQogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzbm1wX29pZF9taW5fY29tcGFyZSBzaW5jZSBpdCBpcyBpbnRlcm5hbCBhbmQgdW51c2VkCgpjb21taXQgODVmODkzZTJiNjA1ZTY3ZjliZDA0NDNjNzRlMmVkMjY5YWE2ODU2NApBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAxNyAyMjo0MjozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KCmNvbW1pdCA1YzkxM2U1NDY1NmFlMDA5NmIxZmViNmRhOThiNWZjOWNhODFmMjc2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMzowNyAyMDExICswMTAwCgogICAgRGVmaW5lIHRoZSBmdWxsIE5ldEJTRCBoaWVyYXJjaHkgZG93bndhcmRzCgpjb21taXQgYjg4MTg0MWJkMDQ5M2RkNzFkNjMyNTliZGRlZDQ0OWIwNmYwMmMzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzA6MzMgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBjYTI5NGNmNzViYmM4ZTkwZGJmNDRlZTQwNDc4OTM1ZTkxZGIxNDg3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxODowMyAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCBjZDMyYzJkZmYwNmI5YjQ1MmNjMThkNTUyZDJmMjIzNDA5MmM4MjljCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCB3YXJuaW5nCgpjb21taXQgODgzMTM2YzJiMmZhMDczOWY0MzdhOGNmYjY2MTRhY2NjNzZlMjY4ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMAoKICAgIE1vcmUgbmVlZHMgZm9yIE5FVFNOTVBfUFJJbyBmb3JtYXQgc3BlY2lmaWVyCgpjb21taXQgYjgwODRhN2NjYzkwOWI2ZDZkYjdjMGU4ZTU5NmQ3ODY3MWY1Njc4YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTQ6MjYgMjAxMSArMDEwMAoKICAgIEZpeCB1c2luZyBjaGFyIGFzIGFycmF5IGluZGV4IChjdHlwZS5oKQoKY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggbWlzc2luZyBmb3JtYXQgZm9yIEZyZWVCU0QgNAoKY29tbWl0IDRiZDAzNTI5NTVhMjU1MWJmZTAyMzA4ZGQxMzRiOTEyOGM5OGI5ZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU5OjM2IDIwMTEgKzAxMDAKCiAgICBGaXggcGFyYW50aGVzaXMgcHJvYmxlbQoKY29tbWl0IGZlNjI2OWIxOTAwY2Y0NGRjMjdhMTk5YTc2MWQxNWEwMWMzZjMwOTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU4OjM0IDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgYTRkYjlmOWZjMTNkMjFlY2ZmNDg4ZWI0MTAzNzZlZGRhNmMyODIzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6NDM6MzQgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncwoKY29tbWl0IDI1Y2ZjMTk2MmFlNTc2Y2NiMTU1OGRhMWUzZWY4YjZjMTdmNjNjMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDExOjI3OjUzIDIwMTEgKzAxMDAKCiAgICBSZWFsbHkgdXAtdG8tZGF0ZSBtaWJzCgpjb21taXQgMGU4NmM3ODFmMzk4OWJmMDIyYzg5OTNhMTE4NjE3Yjc0YTc1NDIwYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTc6MTkgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogZ2V0IFNobWVtIGZyb20gL3Byb2MvbWVtaW5mbyBmb3IgMi42IChvciBuZXdlcikga2VybmVscwoKY29tbWl0IGJmMjY0ZDE1ZGVkN2FjYmJmMmUzODcxYjk4ZmQxZmNlZjQzZDllYzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE2OjE2IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGNsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDU3ZmY4YTQwYmFlNWQ5YmNhZDE2MDg5MTQyYTljZjMyOGM5ZmExZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE0OjU3IDIwMTEgKzAxMDAKCiAgICBkaXNtYW4vcGluZywgZGlzbWFuL3RyYWNlcm91dGU6IENsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDhhMjUwMmExNWMzMjE3Yjk1OTM5YTNjODM2MTY3ZDIzMGFjMzVmMDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKCiAgICBVcC10by1kYXRlIGxpc3Qgb2YgUkZDcyB3aXQgbWlicwoKY29tbWl0IGRjZGQ3MDIxMTFkOGRhNWY1MzgwNGNmY2YwZGZkYWQ3MzE0NjhiZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCgogICAgRG9uJ3QgdHJ5IHRvIGluc3RhbGwgYW4gZW1wdHkgbGlzdCBvZiBtYW4gcGFnZXMgKE1BTjMpCgpjb21taXQgYmE2MTk4MDRlNTk3OGE4ZGY3NTQ4NDRlZmNjYTUyYjY5YjUwMTVmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTM6MzQ6MjAgMjAxMSArMDEwMAoKICAgIE1pbkdXOiBNYWtlIHN1cmUgdGhhdCB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIHBza2lsbCBtZXNzYWdlIGFyZSBkaXNwbGF5ZWQuCgpjb21taXQgOTIzZWVjYzUwN2Y3NTA0M2I2MGM1ZTY4MDUzYTRmMzk2YWIwYjBkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTI6MzY6MzggMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCgpjb21taXQgNDM0YmZjMWY3NDU3NTUwYjZmODdkNWJjZDUxMTI3NmIyNzBiNTk2NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBNYXJ0aW4gV2lsY2s6IGZpeGVkIHNubXBkIGNyYXNoaW5nIHdpdGggJ3NlbGVjdDogYmFkIGZpbGUgZGVzY3JpcHRvcicuCiAgICAKICAgIE9uIDMyLWJpdCBzeXN0ZW1zLCBzbm1wZCBkaWVzIHdpdGggYWZvcmVtZW50aW9uZWQgbWVzc2FnZSB3aGVuIHVzaW5nIGZpbGUgZGVzY3JpcHRpb25zID4gMzIsIGUuZy4gd2hlbiBoYXZpbmcgPjMyIEFnZW50WCBzdWJhZ2VudHMuCgpjb21taXQgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDE6MjEgMjAxMSArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciBjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKCmNvbW1pdCBlYWNhNzk4M2UzNjU1YWI2OTZmY2M0NDYxY2EwY2VkYmFjNmNlNjlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMDoxMiAyMDExICswMTAwCgogICAgTmV0QlNELTY6IE9uZSBtb3JlIGluc3RhbmNlIG9mIHRpbWVzcGVjIHJlcGxhY2luZyB0aW1ldmFsCgpjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTk6MDEgMjAxMSArMDEwMAoKICAgIEZpeCBidWlnICMzNDM2NTI3OiBhcnBfbmV0bGluazogZml4IGR5aW5nIHJlbG9hZCBvZiBjYWNoZQoKY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU1OjQzIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgoKY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgoKY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjE3OjA0IDIwMTEgKzAxMDAKCiAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQogICAgCiAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgoKY29tbWl0IGY2MTViZjI0ZjVkMGYyM2NlOTMwMWRhNTU2MTg0ZDY0NjA3NDA0NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAoKICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAoKY29tbWl0IGE5NGExNzlkOTM0MGY1MWZhN2MyMzQzMTYzMGJjMGZmZDZkNzU5ZTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKCmNvbW1pdCBiMjllNDE2NDUzMWQyNThmZTM0YTZmZTJiOWUxZWM2MGM1NmY5NTQ0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZTIyMWU2NWZkYzFjNjhmMTk2ODY1MTcxN2RjYzljY2ZiNjQxNDc4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxNTowNTowMCAyMDExICswMTAwCgogICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCiAgICAKICAgIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCBhMGFmMzg1LgoKY29tbWl0IDJlN2U5ZWRhMGIwZDYyYTc2NDVhOWE4ZjcwZWYzZmI2ZjNkZDY5NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMAoKICAgIEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzLgoKY29tbWl0IDM0NjJlYmNkZDBiN2MyOThjYjE1YzMwOTk3MzZmNGY5NTIyNTc4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDI4IDE2OjA3OjE1IDIwMTEgKzAyMDAKCiAgICBSZW1vdmUgdGhvc2Ugc3VwZXJmbHVvdXMgcGFyZW50aGVzZXMgdGhhdCB0cmlnZ2VyIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCAzZTVmZWRkM2U3ZDFlZjMxNjgzNjA0YmY3M2RjNTZlOTQ0Y2FkMzQ5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgYWZ0ZXIgMzAgZGF5cyBvZiB1cHRpbWUuCiAgICAKICAgIEFmdGVyIDMwIGRheXMsIHZhbHVlcyBmcm9tIC9wcm9jL3N0YXQgKG9uIExpbnV4KSBjYW4gZ2V0IGJpZ2dlciB0aGFuIDMyYml0cyBhbmQgc25tcGQgY2FsY3VsYXRpb25zIG1pZ2h0IHJlbmRlciBjb3VudGVycyBsaWtlIHNzQ3B1VXNlciBuZWdhdGl2ZSBvciB6ZXJvLCB3aGlsZSB0aGUgcmVhbCB2YWx1ZSBpcyBoaWdoZXIuIFRoZXJlZm9yZSB0aGUgY291bnRlcnMgc2hvdWxkIGJlIHRyYWNrZWQgYXMgdGhlIGxhcmdlc3QgaW50ZWdlciBhdmFpbGFibGUuCgpjb21taXQgMGZjODIyMWIyNDk4OGM0YWU2MTgwZWQ0MmI4NmI5ODUyZmQ1ODZhZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMjo1OTowOCAyMDExICswMTAwCgogICAgZHNrSW5kZXggd2FzIG9mZiBieSBvbmUKCmNvbW1pdCBhNWIyODgyOWU2NGQ1ZjNiODdlNGI5YjFlZjhjYzIwNGYzM2E2MWI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIxOjI1OjA3IDIwMTEgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzICRBV0sgdG8gZ2V0IGEgdXNhYmxlIG5hd2sKCmNvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo1NTo1MyAyMDExICswMTAwCgogICAgUGF0Y2ggIzM0MDYzNjQ6IEZpeCB1bnN0YWJsZSBkYXRhIGZvciBOZXRCU0QuCgpjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NDM6NTIgMjAxMSArMDEwMAoKICAgIEZpeCBpcHY2IHN0YXRpc3RpY3MgbG9vcGluZyB0b28gZmFyIHdoZW4gc2Nhbm5pbmcgaW50ZXJmYWNlcy4KICAgIEZpeCBUQ1Agc2Vzc2lvbiB0YWJsZSByZXBlYXRpbmcgZGF0YSBmcm9tIGZpcnN0IGVudHJ5IGZvciBhbGwuCgpjb21taXQgMzQ5NTkxZDAzZTE3YTU1YjQzZWFjYzZhNjg3YjAyZmQ4ZDRlOTUyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgcGVybCBzdXBwb3J0IHdpdGhvdXQgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzLgoKY29tbWl0IDFlYzcxMTBlNzJiY2UxNTYxZjc0NjUxNzQ1OWQ2ZjA0MzAxNmI2MGUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBhc24xIHRlc3QgcGFzcyBldmVuIGlmIHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcyBhcmUgcmVtb3ZlZC4KCmNvbW1pdCA2ZDI2OTE4YWY1NWFhMzY2MmE3MjA1NDJkZTc3YmJmMzliMGEzZTkxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERpc2FibGUgdGhlIHN1cHBvcnQgZm9yIGludGVnZXI2NCBpbiBwYXNzIHNjcmlwdHMgaWYgY29tcGlsaW5nIHdpdGhvdXQgb3BhcXVlLXNwZWNpYWwtdHlwZXMuCgpjb21taXQgMjliZjY5ZDcwNDI0ZjM1OWQ5Yzg3ZjA3YTk2NGEwOTk0MTU2NDlhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KICAgIAogICAgVGhpcyBpcyBhIGJhY2twb3J0IG9mIGNvbW1pdCA5ZjY1M2Y3LgoKY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0Mjg1MDY6IEZpeCBuZXRzbm1wX2dldGhvc3RieWFkZHIoKQogICAgCiAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCgpjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjcgMDg6MjA6MDAgMjAxMSArMDIwMAoKICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKCmNvbW1pdCAyYzQ1ZjkyY2ZjYjViMDVlMDQ5MjI2YTVhNzg4M2EwYjEwNjAxMWFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAxMDo0MjoyOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCgpjb21taXQgMjc1ZDIzZWRmZGViZTA1NzdiMDg0MjFlNGM2YzkzNmFlMzliN2ZkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzM6MDkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcwoKY29tbWl0IDQ0OTVlMTdjMDc4YWM2OTk3YTljN2ZhMWE4OGRiMDY0NGU5MTk0OTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMyOjQ2IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgMTM5NTJmNmJlZTlmNDA4ODY3YWI2ZDJmZGZkZGU0ZjI4NDA3NDk1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI2IDE0OjA1OjE2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgogICAgCiAgICBBbiBzbm1wIHN1YmFnZW50IGxpbmtlZCBhZ2FpbnN0IG5ldC1zbm1wLWxpYnMgbWF5IGNyYXNoIGlmIGl0IGhhbmRsZXMgYQogICAgcmVzcG9uc2Ugd2hpY2ggaGFzIG1hZ2ljIHJlZmVycmluZyB0byBhbiBvbGRlciBkaXNjb25uZWN0ZWQgbWFpbiBzZXNzaW9uLiBUaGlzCiAgICBtYXkgaGFwcGVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICBhdHRlbXB0cyB0byBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgb24gcmVjb25uZWN0aW9uIG9mIHRoZSBkaXNjb25uZWN0ZWQgbWFzdGVyCiAgICBzZXNzaW9uLgoKY29tbWl0IGFlMDUyNDcyYjIyNzIwZDA4MzY5ZTg1MTI3ZGIyMTQyNDVkZjJlM2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAyNSAxNjoxNToxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogZml4ZWQgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCiAgICAKICAgIFdoZW4gbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyIGZhaWxzLCBpdCBmcmVlcyBpdHMgcmVnaW5mbyAtPiBuc2Focl9ERVNUUk9ZIChhbmQgYW55IG90aGVyIGZ1bmN0aW9uKSBtdXN0IG5vdCBkZXJlZmVyZW5jZSBpdC4KCmNvbW1pdCBjMTk5YmY5MWI2MjM5ZjI2YjJhYWIzNGU4NTc1ZTBmMGRmOWNkZTliCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjQgMTQ6MjU6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiB4ZnMsIGpmcyBhbmQgdnhmcyBmaWxlc3lzdGVtcyBhcmUgbm93IHJlY29nbml6ZWQgaW4gaHJTdG9yYWdlVGFibGUKCmNvbW1pdCA3NDdmZGM3MWU2NGQwOWUwODA5MjhlYmJiNGQwNGNiZGUzOTA2Nzk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAxNTo1Nzo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IExvd2VyZWQgc2V2ZXJpdHkgb2YgJ2Vycm9yIGZpbmRpbmcgcm93IGluZGV4IGluIF9pZlhUYWJsZV9jb250YWluZXJfcm93X3Jlc3RvcmUnIG1lc3NhZ2UuCiAgICAKICAgIFRoZSBtZXNzYWdlIGlzIHNob3dzIHVwIHdoZW4gc25tcGQgaXMgc3RhcnRlZCBhbmQgdGhlcmUgaXMgZGlmZmVyZW50IHNldCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdGhhbiBpdCB3YXMgd2hlbiBzbm1wZCB3YXN0IGxhc3Qgc3RvcHBlZC4gVGhpcyBpcyBjb21tb24gb24gcHBwLXNlcnZlcnMgb3IgdmlydHVhbCBob3N0cy4KCmNvbW1pdCAyNTBmNjk4ZTU5ZWFiOWYxZmZkMzMyZmY1OWZkYjcyZWEwZGYwNmZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyMyAwODo1MToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgogICAgCiAgICBQcmV2aW91c2x5IHRoZSB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgcHJvY2Vzc2luZyBjb2RlIHJhbiB3aXRoCiAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKICAgIGlzIHJlcXVpZXJlZC4gVGhhdCBmaWxlIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBmaXJzdCBtYWtlIHJ1biwgYW5kIHRoYXQgaGFwcGVucwogICAgYWZ0ZXIgY29uZmlndXJlIGlzIHJ1bi4KICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCiAgICBzdXBwb3J0IGR1cmluZyB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBtYWtlIGl0IHdvcmsgYXQgYWxsLgoKY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDIwIDIwOjMwOjU0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDA4Mzk4OiBGaXggYSBtZW1vcnkgbGVhayBpbiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLgogICAgCiAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIDliZjNkOTZkOTZhOGVjZDRhNWZjMzVjMzI2ZGM5Mzc0NjcwMDJiNmM6IEluaXRpYWwgSEFMCiAgICBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uIChNYXJjaCA3LCAyMDA4KS4KCmNvbW1pdCBjZjgyYjg5NGIyMjE3YzI2ZWRjNmYxMzU2MzUxYzkzMjQxNTYwNGUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDIzOTE1OiBDaGFuZ2UgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBiYWNrIGZyb20gMCB0byA1CiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCB2aWEgY29tbWl0IDZjYWMwNTAgKE1heSA1LCAyMDExLAogICAgYWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBpbgogICAgc25tcGQuY29uZikuCgpjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KCmNvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyMjoyMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KCmNvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNjo0NzoxNiAyMDExICswMjAwCgogICAgTWluR1csIGh3X2ZzeXM6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcnMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KCmNvbW1pdCAyMTFkY2I0OTMwNjU2MWUzNWJhM2MyMTNiZTdjZmEyNTdiNDBhOGU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCgogICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwoKY29tbWl0IDlmNjUzZjczZTVhYTcwZjBiZWYxMTc0NjMyZTk1NTk0Zjg3ZjY2OWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCgpjb21taXQgNGM4M2I5MjI5YTc0NTRmMzRmNmZmNzVmNjllNjdlNDAzMGM0MTliNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNTo1ODo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2V0IHRoZSBycGF0aCBmb3IgbGlicGVybC5zbyBpbiBsaWJuZXRzbm1wbWlicy5zbyBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSBkeW5hbWljIGxpbmtlciBzZXR0aW5ncy4KICAgIAogICAgVGhpcyBjaGFuZ2UgaW4gYWdlbnQvTWFrZWZpbGUuaW4gaXMgbmVjZXNzYXJ5IG9uIHRoZSA1LjUgYnJhbmNoIGFuZAogICAgbGF0ZXIgYnV0IG5vdCBvbiB0aGUgNS40IGJyYW5jaC4gVGhhdCBpcyBiZWNhdXNlIHRoZSA1LjQgYnJhbmNoIHVzZXMKICAgIGFuIG9sZGVyIHZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAogICAgbGlicmFyaWVzLiBUaGlzIGlzIGNhbGxlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY3kgdHJhY2tpbmcgaW4gdGhlCiAgICBsaWJ0b29sIG1hbnVhbC4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByZXNlbnQgaW4gbGlidG9vbCB2ZXJzaW9uIDEKICAgIGJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKICAgIGR5bmFtaWMgbGlicmFyaWVzIGFuZCBycGF0aHMsIHNlZSBhbHNvIHRoZSBkb2N1bWVudCB3aXRoIHRoZSB0aXRsZQogICAgIlJwYXRoSXNzdWUiIG9uIHRoZSBEZWJpYW4gd2lraSAoaHR0cDovL3dpa2kuZGViaWFuLm9yZy9ScGF0aElzc3VlKS4KCmNvbW1pdCA4OTI1YzkxMmQyNjM5NzUyYTg0YmNmZmVlZjFiNzBhODEwMjY0NDliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjIxOjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogSE9TVC1SRVNPVVJDRVMtTUlCOiBBZGQgbWlzc2luZyBicmFjZSBpbiBhIGRlYnVnIHN0YXRlbWVudAoKY29tbWl0IDc2ZmYyNWQ5YmY5NzU3OWU3MjEzMTAyMDY1ZmQ1MDk2ZjA0OWE0YzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MTM6MTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3RvcmFnZVRhYmxlOiBmaXggYnVnIGluIGhhbmRsaW5nIGxhcmdlIGZpbGVzeXN0ZW1zLCB3aGVyZSBsYXJnZSBtZWFucyBhYm92ZSA4IFRCICg9IDIqKjMxICogNDA5NiBieXRlcykuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKICAgIDcxZDgyOTNmMzg3YTZjZDY2YmIwZGJiMTNjMGY1MDE3NGQyZTY3OGIuCiAgICBGb3IgdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnQsIHNlZSBhbHNvCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhdGlkPTExMjY5NCZhaWQ9MzQxOTgyNSZncm91cF9pZD0xMjY5NC4KCmNvbW1pdCA4NjYwMzNkYjk5MDRmZmIxMjAzZjI4M2Y4MzgwOTJlNGNmNjhkZTZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDA3OjMzOjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNwdXJpb3VzICNlbmRpZiB0aGF0IHNlZW1zIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBtaXNtZXJnZS4KCmNvbW1pdCAyMGY0ZjMyNjdlZTIwZDU1NzA1YjdhNDM3ODk4NzljMTAzZjk2NjIwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDAwOjA4OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KCmNvbW1pdCBlNWRlMmNjNTdiZjMwNGYzMzIwY2FkMDAzNGQyZWEyZDhhZWRjNDM2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA5OjE1OjEwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogTG9nIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGlmIGVtYmVkZGVkIHBlcmwgaW5pdGlhbGl6YXRpb24gZmFpbHMKCmNvbW1pdCA1ZWVmOTk5MGRlMjhmNjMxMTFlNmMwOTNiZTBmM2M3YWUyZDUxM2ExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ1OjQ5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBBZGQgYWdlbnQ6OnVwdGltZSgpCgpjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IEN5d2luOiBhZ2VudDogSW1wbGVtZW50IGdldF91cHRpbWUoKSBzdWNoIHRoYXQgcXVlcnlpbmcgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCgpjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNwpBdXRob3I6IFRob21hcyBKYXJvc2NoIDx0amFyb3NjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBQQVRDSDogMzQxODY0OTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZiBmY2xvc2UoKSB0byBjbG9zZSBhIHBpcGUuCgpjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNjoxODowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBkZXBlbmRlbmNpZXMgb24gQEZFQVRVUkVUQVJHU0AgdG8gbWFrZSB0aGUgc3VidGFyZ2V0IHdvcmsgYXMgd2VsbC4KCmNvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE0OjAyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCgpjb21taXQgOTk1NjQ3YzBjZmUwMDQxMjI2MmNjNTc5N2JkZmFlOWQwMGI3MGM3NgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNTo0NDozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSB0aGUgdXNlIG9mIC1MIGZsYWdzIGZvciBpbnRlcm5hbCBsaWJyYXJpZXMgYXMgaXQgY29uZnVzZXMgbGlidG9vbC4KCmNvbW1pdCA5M2RjMTIzNWEwZGI1OGZmZDI5NjE3Y2ZmMDBkYzExMjYzNzgwMjAyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjMxOjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBtYWtlIGFwcHMgd29yayBhZ2FpbgogICAgCiAgICBhcHBzIGluY2x1ZGUgc25tcHRyYXBkIGFuZCB0aGF0IHJlcXVpcmUgdGhlIGFnZW50IGxpYnJhcmllcyBhcyB3ZWxsLgoKY29tbWl0IGJhNDE0ODhlZDQ0Y2QyM2MyNTk2M2Q0ZmM1NmM0NzY4NTNiMmFiNTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6Mjk6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXaGVuIHlvdSBzYXkgbWFrZSBsaWJzIHlvdSBleHBlY3QgYWxsIHRoZSBsaWJzIHRvIGJlIGJ1aWx0LgogICAgCiAgICBUaGlzIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgc25tcHRyYXBkIHRhcmdldCBhdCB0aGUgdG9wIGxldmVsIHdoaWNoIG9idmlvdXNseQogICAgZXhwZWN0ZWQgYm90aCBsaWJzIHRvIGJlIGJ1aWx0IGFuZCBzbyBmYWlsZWQgdG8gY29tcGlsZSBiZWZvcmUgdGhpcyBwYXRjaC4KCmNvbW1pdCAzMDU3YzczZTA5MzQ3M2JlNDYyNTRiY2RmYjRjYTc4OGU0MzJkMWI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMzAgMDc6MzI6NTIgMjAwOCArMDAwMAoKICAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLgogICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCiAgICAKICAgIEJhY2twb3J0IHRoaXMgdG8gVjUtNCBhcyBpdCBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uIGluIHRoZSBzaW5nbGUKICAgIHRocmVhZGVkIGNhc2Ugb2YgbWFrZSBtaWJsaWIgYXMgd2VsbC4KCmNvbW1pdCA2ZWFlMzQwZmEyYTY0MDg2NTkyOTgyY2M1MjczNWJjMDE0ODdkOTc4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAxIDE5OjMzOjUwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogU2lsZW5jZSBsaWJic2QgMC4zLjAgbmFnZ2luZwogICAgCiAgICBJZiB5b3UgaGF2ZSBsaWJic2QgMC4zLjAgaW5zdGFsbGVkIHRoZW4gdGhlaXIgdmVyc2lvbiBvZiBubGlzdC5oIHdhcm5zIGFuZAogICAgdHJpZXMgdG8gbWFrZSB5b3UgaW5jbHVkZSBic2Qvbmxpc3QuaCBpbnN0ZWFkLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGRvbid0CiAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcwogICAgcHVyZSBuYWdnaW5nLiBUaGlzIHBhdGNoIGFkZHMgYSBkZWZpbmUgdGhhdCBjaGFuZ2VzIHRoZSB3YXJuaW5nIGludG8gYW4KICAgIGVycm9yIGFuZCB0aGVuIGZpZ3VyZXMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gdXNhYmxlIG5saXN0LmggYW5kIGlnbm9yZXMgaXQKICAgIGZvciB0aGUgZnV0dXJlLgoKY29tbWl0IGFjMzhjYjUzMWJlZTUwZWRjOGQ0YzgzNGYzMDA1ZjU5OTJjNzcxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDE5OjAzOjAyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKCmNvbW1pdCBhNzVkZTI5NzE1MjdhYzJkMmU4MTIwMjQyOTg2MDJiYjI0MTJmMzM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IDg0OGY2MzAwZWZlMzg0OTJmYjQ1NDQ1MWEwMzBmMGI3ZTZmZjhjOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgYzEzNzQ0NzNlY2Q4ZWM5ZTAzMTAwMTM4NjFlZTE4YzgzZTVkNmM1YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBTZXAgMzAgMDM6Mjk6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCgpjb21taXQgN2U5N2EyMDYzM2E1N2VhZTM5ZDAxNWIyMzMzOTQ2M2MzMmY1Zjg0OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjI6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKCmNvbW1pdCA5YzBkZDk4MTc2NDU3MzQyZmZmYWE1ZTc0ZDgwMmUzMTQ1ZWQ3MGU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAwODo1NjoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKCmNvbW1pdCA1ZmQyNmU0ZmEzZTAwMGVhOWM4MWMzOGFiOTc1Yjc5NDZlZmUyMTU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyOCAxNzo0OTo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgogICAgCiAgICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICBhYTRkNDdjMjYwOWU1MjgxOGM5Y2RmMWE4ZTIyMDVkZTlhMzM1YTBhIChzdm4gcjE5NTE1KS4KCmNvbW1pdCBkMjI1MmQwMTY2OTM4MDczMjZmNzJiNjYxMjM2NDlkZWEwMGFmOTE2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVxdWlyZSBhIHNlbWljb2xvbiBhZnRlciBPSygpLCBPS0YoKSBhbmQgUExBTigpCiAgICAKICAgIEFsc28sIGxldCBPS0YoKSBlbWl0IGEgc2luZ2xlIGxpbmUgb2Ygb3V0cHV0IHN1Y2ggdGhhdCBhbGwgb3V0cHV0IGl0CiAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCgpjb21taXQgMTQyMTkyNGI0ODUyMTQyMTkyYzViYjllOTNkZGJmZWQ2OWU5MDhmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjEgMjI6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGlmIGEgc2Vzc2lvbiBoYXMgdGltZW91dCB6ZXJvCgpjb21taXQgNWYyN2Y0Zjc0YWUyYmQ1YmFmNTAzY2YzMDZiNGY5YTI4NDFhNTdjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDozMjowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgoKY29tbWl0IDA5NzAzOTU4Y2M1ZWE4NDU5MjlhZTE5ZWY5ZTA4MDRhZWNhYTUxMmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDEyOjQyOjQxIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBdm9pZCBmYWxzZSBuZWdhdGl2ZSBmb3IgVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlIGNhdXNlZCBieSB0aGUgdGVzdCByZXN1bHQgYmVpbmcgcHJlc2VudCBpbiB0aGUgaGV4IGR1bXAgKCJtb3N0bHlfaGFybWxlc3MiKQoKY29tbWl0IDQzOTMwMDI3OWY2ZjMxNDM4NjM4ZDJmMjIyYzI0YzNjODQxZmE2YWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDExOjE2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWljcm8tb3B0aW1pemUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMKICAgIAogICAgVGhpcyBtYWtlcyB0aGUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMgY2FycmllZCBvdXQgYnkgdGhlCiAgICBjb25maWd1cmUgc2NyaXB0IHNsaWdodGx5IGZhc3RlciwgZXNwZWNpYWxseSBvbiB0aG9zZSBzeXN0ZW1zIHdoZXJlCiAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgoKY29tbWl0IGJiYzY4MDAwNGExMzc2MDM4ZGZkYzQxNzJkYmU3YjllMzExZmJhNjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDEwOjE0OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0ZXN0IFQxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSBwYXNzCgpjb21taXQgNzBiMDZjZjc4OTIwOGVhYTg5MGJmYmNkNjM4YmRiNzc1ZjgxNzA1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6NTA6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHRlc3Rpbmc6IHBlcmw6IEZpeCBhbiBpbmNvcnJlY3QgbWVzc2FnZSBwcmludGVkIHdoaWxlIHJ1bm5pbmcgdGhlIFBlcmwgbW9kdWxlIHJlZ3Jlc3Npb24gdGVzdHMKCmNvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAxNiAxNjoxNDoyNCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50Cgpjb21taXQgNjI2Mjc1ZTJkMWFjYWZhZTcxNDRhMzNlZDMwMWE0MGY1OTZiMzdiMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMTQgMTM6MTQ6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBzdXBlcmZsdW91cyBsaW5rIGxpYnJhcmllcyBmcm9tIHByb2plY3QgZmlsZXMgKCouZHNwKQoKY29tbWl0IDM4ZmMzY2FhOWVlYjM4MDAyNTRiNGY2YWQ2ZjhmNDc2NGMwZjgzZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjM0OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAgKFNURElOX0ZJTEVOTykKCmNvbW1pdCA2YzhjN2U4YWNhOGZjMmVlYjUyMDEwYWUzZTlmZWU2ZGQ4M2VmNzgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAxMyAwOTo1ODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIG9ic29sZXRlIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uKCkgZGVjbGFyYXRpb24KCmNvbW1pdCAwODYwZDExZmQ4ZmM1ZGJkYWFhZTIyNjFmYWUyYzA3ZmI5YzJjODJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjU0OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNvbmZsaWN0IHdpdGggdGhvc2UgaW4gPHN0ZGludC5oPiBmcm9tIHRoZSBtc2ludHR5cGVzIHByb2plY3QKCmNvbW1pdCBmOGEwMzZmNjNmZjY4ZjA4MzQzNjEyMGUwYWJkNDc4YjY5MmEyZjYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjIxOjA2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBXaGVuIGxpbmtpbmcgd2l0aCBPcGVuU1NMLCBsaW5rIHdpdGggdXNlcjMyLmxpYiB0b28KCmNvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEp1bCAxNCAxODozODoxMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5Cgpjb21taXQgN2IwN2ZkNmNkZWY0OWVjN2JiMDRiMTY2ZTJhNGZiYjM3YjU4Mjg0MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMToxMDozOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKCmNvbW1pdCA5OGY2ZDI5ZDk4MWZmOGU2MDc2MDBjNjNkYWRiMjQwNTM1NjI5ODA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjQ5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCgpjb21taXQgNTJjZDAwMzFhMzFmNjkyZjEzMjYzYTk0YzMzNWQwNmJlMTQ1NDgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCgpjb21taXQgZjVjZDg5YmQzMzU2ZGQ3NGUxNTU2YzBiNTA5NjZhNjQzZjE5MjA4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yawoKY29tbWl0IGRlZWRkNTJjODM0YTY0NDg4NTJhMDY3ODU1MzZlMTM4NjU5Njk2OTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBTdXBwb3J0IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHJlY2VudCBTaGluaW5nIExpZ2h0IE9wZW5TU0wgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKCmNvbW1pdCBkNTViZDRlMDU0OWYwM2I2ZmQzMjU2MmMyYWE3ZmUzOTI3MmE5ZWY3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxOSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgYWMyYWVkM2M5NGJiMmViYjQ3M2FmMGExZTIwZjA1NjFhZDYyOTk1NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IDQwMDc5MjA1OTY3YjhlNWFlZWRiMTlmYTNjYjJlN2IyZjc5ODg1NzcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI3IDIxOjUzOjQ3IDIwMTEgLTA3MDAKCiAgICBtYWtlIGRlcGVuZAoKY29tbWl0IGNmMTRhMjI4NTgzYWZmM2M1YWIyZjBkNDRjMmY0YzBmYTViZDY2YWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI3IDIxOjUzOjE4IDIwMTEgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEKCmNvbW1pdCAxMDE0ZGQ4ZGZiNDhhNWJkMDUzZjA0NTQxZWI5NzI4ZjBiZTA3ZjQ3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNyAyMTo0NTowNCAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xCgpjb21taXQgMThkMTE2YmEzODhjMWRjOTQ5NTI4ODg0YmIwMDY5OGYxYmFjYWE5NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjcgMjE6MTE6NTIgMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEKCmNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAyMTo0OToyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KCmNvbW1pdCBhNWYwNjRkZDgyOTk2ZTJiZTNmMWU5NjE2NzAzYWQwMzk1ZmI1YWJhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAyMiAwNzozMzowMSAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMwoKY29tbWl0IDU2OTc5NGZjZWI5OWVlZDdiZTgxN2M2NGY4NWNkOTQ1Y2FmOTk1OTIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgU2VwIDIyIDA3OjIwOjA3IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMwoKY29tbWl0IGM1NWY2MDhmMTZmMTYwZjVlNzlkYzA1N2Y4ODc4ZGVmNDYyOTczZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IFNlcCAyMiAxMDozNToyNCAyMDExICswMTAwCgogICAgRml4IHRoZSBjb2RlIGZvciBwb3B1bGF0aW5nIHRoZSB0YWJsZV90ZGF0YSBjYWNoZSwKICAgIGFuZCBjbGFyaWZ5IGFyZWFzIG5lZWRpbmcgTUlCLXNwZWNpZmljIGFkZGl0aW9ucy4KCmNvbW1pdCAxMzc2M2NmMmM3MWJmOTNmZWMwOTZlZWUwMDQ4NTdjMTViMmNmZmZmCkF1dGhvcjogU3RldmUgRnJpZWRsIDxzdGV2ZUB1bml4d2l6Lm5ldD4KRGF0ZTogICBUaHUgU2VwIDIyIDEwOjA2OjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogMzQwOTY5MjogQ2FsY3VsYXRlIGRpc2sgcGVyY2VudGFnZSB1c2FnZSB2aWEgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYwogICAgdG8gYXZvaWQgaW50ZWdlciBhcml0aG1ldGljIGVycm9ycy4KICAgIChDb2RlIGJhc2VkIG9uIHBhdGNoLCByYXRoZXIgdGhhbiBhcHBsaWVkIHZlcmJhdGltKQoKY29tbWl0IGVlMGQzYWRiMDc4MjkxYjc0M2M5ZWNiNzZkMjBiNTkxYjdiMTU5NzIKQXV0aG9yOiBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgpEYXRlOiAgIFRodSBTZXAgMjIgMDk6NTg6MzkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOiBDYWxjdWxhdGUgZGlzayBwZXJjZW50YWdlIHVzYWdlIHZpYSBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljCiAgICB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93IGVycm9ycy4KICAgIChDb2RlIGJhc2VkIG9uIHRoZSBzdWJtaXR0ZWQgcGF0Y2gsIHJhdGhlciB0aGFuIGFwcGxpZWQgdmVyYmF0aW0pCgpjb21taXQgMzY3ZGExNGZjZGIxNDY1OTJkZTY3YzFkNjk5N2EwOTc3NDI1OTY3MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjIgMDg6MDk6MTcgMjAxMSArMDIwMAoKICAgIFRoZSBvbmx5IGNoYW5nZSBiZXR3ZWVuIFY1LjcucmMxIGFuZCBWNS43LjEucmMyIGlzIHRoZSB2ZXJzaW9uIG51bWJlci4gTWFrZSB0aGlzIGNsZWFyIGluIHRoZSBDaGFuZ2VMb2cgZmlsZS4KCmNvbW1pdCBjMjc2ZWViOGYwNDU1YTA4NzBjNGI0NzhkZGU2NDhlODY1MjlhZGQzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyMSAxMzo1MTo1OCAyMDExIC0wNzAwCgogICAgY2hhbmdlbG9nIHVwZGF0ZQoKY29tbWl0IDYzMDUwODM4NjY2ZjY0NWZjMzA2ZGMyZWU0ZjczZjVlZmNlNjNmZWQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDIxIDEzOjM4OjE4IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMgoKY29tbWl0IGJiZTJjMTlhMDFlY2VjMDI0Zjc0MWUyZTU0NzAxYWU2MjEyZjRjM2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDQgMTQ6NDQ6MzggMjAxMSArMDIwMAoKICAgIFRoaXMgc2hvdWxkIGhhdmUgZ29uZSBvbmx5IHRvIG1hc3Rlci4KICAgIAogICAgUmV2ZXJ0ICJDSEFOR0VTOiBidWlsZGluZzogQ29ycmVjdCBkZXBlbmRlbmNpZXMgLSBzaW5jZSBiZjc0ZmVhNjlmMjRkYzZlODVmOTA4ZjNmNDFkMTQyNmIyZTA5Njg4IHNubXBjb25mIGlzIGxvY2F0ZWQgaW4gYnVpbGRkaXIsIG5vdCBzcmNkaXIiCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZS4KCmNvbW1pdCA5ZWZhNDY3YTk3MmJiNmUxYzdmYmRhZjJlMjc0MjlkMjlmNGFiODllCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCA0IDE0OjAwOjEyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQ29ycmVjdCBkZXBlbmRlbmNpZXMgLSBzaW5jZSBiZjc0ZmVhNjlmMjRkYzZlODVmOTA4ZjNmNDFkMTQyNmIyZTA5Njg4IHNubXBjb25mIGlzIGxvY2F0ZWQgaW4gYnVpbGRkaXIsIG5vdCBzcmNkaXIKCmNvbW1pdCA3ODM1OTY0ZDM1OTNlNWM2YTFhZTdkZTBiNDExNGI3ZGYxYWUwZmUxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxOToyMTo1MSAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMQoKY29tbWl0IGNiNmEwYzBiZDZmOGMyYzdjZDVmZDg2MDgwZGM2MzI0ZTdmNzM4NTgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjIwOjM1IDIwMTEgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjEucmMxCgpjb21taXQgZTVmZjJlYjgzYmJiZWQ5MmRhYzc1MWM1YTY2NDNkNzhmODM3Y2Y5YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MTk6NDYgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudAoKY29tbWl0IGNiMWY1Y2ZmYzZmYjUyYzJhNmMwZjdiNDA4YWZlYjQ3ZmNmZTU1ZTQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjA5OjU2IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMQoKY29tbWl0IDQyMmIwODJhOTU5M2NhOWM2NWFhYzQ0OWU2ZDEyOGE5ZTk3ZTk0ZmIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjA2OjU2IDIwMTEgLTA3MDAKCiAgICBhZGRlZCA3IGFzIGEgcmMgc2VyaWVzIGJyYW5jaAoKY29tbWl0IDcxYzBkNzY1MDQ5MzcxMDYzMWZhMDhkNWRjNGRhZDUwMWE5YWE3NzEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE2OjM3OjQxIDIwMTEgLTA3MDAKCiAgICBkZWFsIHByb3Blcmx5IHdpdGggaW52ZXJ0ZWQgZXJyb3IgY2FzZXMKCmNvbW1pdCBjZjRjZjdmMzJhZDU4ZjMyNmZmZWQ1MDQ5NDU4MzIzMTY0OGQ3OWQyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMTowODowOSAyMDExIC0wNzAwCgogICAgYWRkZWQgLmZ0IGFuZCAuZnQuMSBmb3IgZmVhdHVyZSBmaWxlcwoKY29tbWl0IDQxYjJjZGUxOWQyMjIwOWI0ODMyMDc2MTRlMDI3NDgzYzM3MDY4NzcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDExOjAzOjE1IDIwMTEgLTA3MDAKCiAgICBhdXRvLWRldGVybWluZSBwYXRjaCBhcmd1bWVudHMgaWYgcG9zc2libGUgZm9yIG5zcGF0Y2h0cnkKCmNvbW1pdCA5NmJiNTg5YzJlNTA1NDg5MGU5ODcwNWFiNWY0MzA4YWU2YTEzMGJiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMDoxMzowNiAyMDExIC0wNzAwCgogICAgbWFrZSBpdCBzbyB0aGUgZ2l0IGNvbW1pdCBsaW5lIGNhbiBiZSBjdXQvcGFzdGUgd2l0aG91dCBsaW5lYnJlYWtzCgpjb21taXQgM2ZlMzZmN2FkNzFjMDhlMTI4NmNlOGU0ODdlOTM1MmUyN2NkOTZjYwpBdXRob3I6IFJvbmFsZCBXYWhsIDxyd2EtY29AdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTA6MTI6MTEgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzOTQ1ODY6IGZyb20gcndhLWNvOiBmaWxlIGRlc2NyaXB0b3IgbGVhayBpbiByZWFkX2NvbmZpZyAoK2ZpeCkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNmU1NGM0MTMxYWY3MzFmZjkwNDY3YTc1YmNjODE3Yzk1N2Y4ZjcyYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMDk6NTU6MTQgMjAxMSAtMDcwMAoKICAgIGRlc2NyaWJlIHRoYXQgbnNyb2xsdXAgbmVlZHMgdG8gYmUgcnVuIG5vdy4KCmNvbW1pdCA4NmVmZWUyMzQzMmNjYjBkMmUwYzczNmQzNGRjMTA1MTEzMGNkYzBmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTA6NTI6MzAgMjAxMSArMDEwMAoKICAgIEFwcGFyZW50bHkgSVJJWCBoYXMgYSBkaWZmZXJlbnQgQVBJIGZvciBzdGF0ZnMKCmNvbW1pdCBmN2UyMWYyNjMzMzkwYjdhMjdjNTAyMjdiZWU2ZDg2OTZhZTNmYmNmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyOSAxNjowMTozMSAyMDExIC0wNzAwCgogICAgZG9uJ3QgcHJvdmlkZSBhIGZlYXR1cmUgd2hlbiB5b3VyIGEgY2hpbGQgb2YgYW5vdGhlciBmZWF0dXJlCgpjb21taXQgY2FjMjNjMGIyNTc0ZTcyODBiZDEyOGM2MjI2ODc1YWQwZjZiNGJmYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBBdWcgMjggMDk6Mzg6MTQgMjAxMSArMDIwMAoKICAgIE1ha2Ugc3VyZSB0aGF0IGZlYXR1cmUtZGV0YWlscy5oIGV4aXN0cyBiZWZvcmUgdHJ5aW5nIHRvIGluY2x1ZGUgaXQKCmNvbW1pdCA3ODFmNGNlMmFjYjM3MTU2MDc5N2Q4YjI5YTg5ZWQwNjc0ZTkzNWY4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAwOTozNjozNiAyMDExICswMjAwCgogICAgVXNlIHRoZSBmZWF0dXJlIHRhcmdldCBpbnN0ZWFkIG9mIHRoZSB0YXJnZXQgd2hlbiBidWlsZGluZyB0aGUgZmVhdHVyZSBzZXQKCmNvbW1pdCAxMWJmZjQ3MmNhN2IxZmNmZjBjMTYxODdhMWI4YTEzMDkzYmM5MWM0CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyOSAwMDozMzo1NSAyMDExICswMjAwCgogICAgdGhlIGlyaXg2IGJ1aWxkIG9ubHkgZGVmaW5lcyBpcml4Niwgbm90IGlyaXgKCmNvbW1pdCAzYzczYTE0MDdhMDgxZDQyZWJkZDkxZGZiY2IxZTRmMTUyYjdkZjRhCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyOSAwMDowNToxMyAyMDExICswMjAwCgogICAgcmUtYWRkIHNvY2thZGRyX3VuLnN1bl9wYXRoIGNvbmZpZ3VyZSBjaGVjayAobG9zdCBpbiBwcmV2aW91cyBjb21taXQpCgpjb21taXQgMmUzZjAyZTAzYWVkMTI1Mzg0YmE0ZmUzZDgzNDk0ZDQzZjNhMjllOQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjggMjM6NTM6MzAgMjAxMSArMDIwMAoKICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYyBkb2Vzbid0IGJ1aWxkIG9uIElSSVggeWV0Cgpjb21taXQgZjk1YWEzMTM3N2Q1NzJiMDQ5YjBiMzE2ZGJiMTYzYmY3YWNhOTNkNQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjggMjM6MjU6NDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZHMgbXNnX2NvbnRyb2wvbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIgKGJhY2twb3J0KQoKY29tbWl0IDdmNDdkOTM3NjVhYTM1YTU4Njg3ZWI5YjRmOWY3MDBlNDM0M2UxM2MKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDExOjExOjM1IDIwMTEgLTA3MDAKCiAgICBhZGRlZCByZXF1aXJlZCBmZWF0dXJlcyBmb3IgbWZkIGhhbmRsaW5nCgpjb21taXQgOWIyZTQyYTZlMDU1MGZiNzg5YzYwN2MzNTIwODgwZDRkYmMwY2YyNApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMjYgMTE6MDg6MDkgMjAxMSAtMDcwMAoKICAgIGFkZGVkIC5mdCBhbmQgLmZ0LjEgZm9yIGZlYXR1cmUgZmlsZXMKCmNvbW1pdCAzM2RjYmY1NmZjMDYyNmEzZTRmMTM1OTA5NWJkMjE3ZDFhNTY3Nzk0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMTowNzo1OCAyMDExIC0wNzAwCgogICAgbm9fd3JpdGVfc3VwcG9ydCBzdXBwb3J0ZWQKCmNvbW1pdCA5N2Q0MmVmZDc2OTM3Y2U3ZTRiYzQ4YTcyZWQ1YTExMGU0MjMxMDJkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMDowODo1MSAyMDExIC0wNzAwCgogICAgaGFuZGxlIG5vLXdyaXRlLXN1cHBvcnQgd2l0aCBpZmRlZnMKCmNvbW1pdCBlYThiZWQ3OWU4MWM0MmUzM2NiZjM3Y2E2ZjNjMDNjNTQ5OTg3YjIyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAyNSAwNjo1NjoyMiAyMDExIC0wNzAwCgogICAgaW1wb3J0IHN0ZGVycgoKY29tbWl0IGZkNmQ4MDRkYzNlNzAzYzQwNTlkYmU3NzUwMDFhM2JlOWI5MzMwOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDI1IDA2OjU1OjM4IDIwMTEgLTA3MDAKCiAgICB1c2UgPj4gdG8gcHJpbnQgdG8gc3RkZXJyCgpjb21taXQgY2VlMDM1OWM2ZmFlMmI4NWQ3YjkzMTg1OWU1MTdkODljZTA3MjJiYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIzIDIzOjQzOjE5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGdlbmVyYXRlIGFuIG91dHB1dCBmaWxlIG9uIGZhaWx1cmUKICAgIAogICAgbWFrZSBzdXBwb3NlcyB0aGF0IG5vIG91dHB1dCBpcyBnZW5lcmF0ZWQgaWYgdGhlIGNvbW1hbmQgZmFpbGVkLiBDaGFuZ2UKICAgIGZlYXR1cmUtcmVtb3ZlIHRvIGZvbGxvdyB0aGF0IHByZXN1bXB0aW9uLgoKY29tbWl0IGZlMzllNzI4OGNhOTMwZDJjOWFhYTgzMDFjYzlkOTVmMGMzOGYzNmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAyMTo0ODoxNyAyMDExICswMjAwCgogICAgQ29ycmVjdCB0eXBvCgpjb21taXQgMWYwODJhMzFjZDEzOGYxZjVlMjdiZTZkOTBhMWQ1NzkwZGMwZmZlNApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MzU6NDIgMjAxMSArMDIwMAoKICAgIG1ha2Ugc3VyZSB0aGF0IF9LRVJORUwgaXMgZGVmaW5lZCB0byAxIHNvIHRoYXQgIiNpZiBfS0VSTkVMIiB3b3JrcyBvbiBzeXN0ZW1zIHRoYXQgbmVlZCBpdCAoZS5nLiBJUklYKQoKY29tbWl0IDI2YmIyNDcwYzEwNmY4MzQ0NDJhMmFkYmM3NjExYmYxNjY1N2ZiZGYKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIzIDIzOjIyOjQ0IDIwMTEgKzAyMDAKCiAgICBtYWtlIHN1cmUgdGhhdCBfS0VSTkVMIGlzIGRlZmluZWQgdG8gMSBzbyB0aGF0ICIjaWYgX0tFUk5FTCIgd29ya3Mgb24gc3lzdGVtcyB0aGF0IG5lZWQgaXQgKGUuZy4gSVJJWCkKCmNvbW1pdCBmYzU1NjBjMDVmODQ4MzIxZGEwY2EwYzJlODcwMDFkNWYyMjk1MTY3CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyMiAxODo1NDozMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyIChlLmcuIElSSVgpCgpjb21taXQgOTZlYTJkMWE4ZWJmZmIzNDg2NzNhODY1ZDQ4NmYzMWU2MzVlNjJiZApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDE6NTE6NDkgMjAxMSArMDIwMAoKICAgIGF1dG9yZWNvbmYKCmNvbW1pdCAxYTI2NDhlYWY3MWNiMDE4OTUxNTk2Njg5YzUxNTg4ZGNhODA2M2M1CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMTo0ODo1NyAyMDExICswMjAwCgogICAgYXV0b3JlY29uZgoKY29tbWl0IDNmMmY2MWIwZTYxM2Q2MTA1ZWNmMmNlYjM5NWRlMGJkZTM3ZjNjZTMKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAxOjQ3OjEzIDIwMTEgKzAyMDAKCiAgICBhdXRvcmVjb25mCgpjb21taXQgYjYyY2IwODY0ZjU3N2JhODU1NzNkMGQyNTBkMTJhMzkzODdjMDdiNApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDA6NTU6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFpeDogZWxpbWluYXRlIGNvbmZpZ3VyZSB3YXJuaW5nIHJlZ2FyZGluZyBsaWJwZXJmc3RhdC5oIG9uIEFJWCA2LjEgYW5kIHVwCgpjb21taXQgNzFiOTBiNmYyMTc5NDRiNGZmYzE4MzZlNTE2MGQ0MGUzM2I0NDIzZApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDA6NDA6MjggMjAxMSArMDIwMAoKICAgIGZpeCBicm9rZW4gbGluZSB3cmFwCgpjb21taXQgNWI1OTAwYTRmN2RmZWU2ZTFlYzg2OWUzMjMxMGI4MGNhNmZiMjNmZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTI6Mjg6MDcgMjAxMSAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUyCgpjb21taXQgM2I3ZTJlMzk5NDlmODhkOWM1NmVkNWY5OTQwMjhiOTQ4MTZhYjc1YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTI6MjM6MjggMjAxMSAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMS5wcmUyCgpjb21taXQgZWNlNjNiZmU0OTljNjMwYmRhYWU2MjAwNjQ4ZDI5MTgwY2UzYTE3OQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTI6MDM6MTcgMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucHJlMgoKY29tbWl0IDI4YjU0MDcwNTE0NzUzZThkOGFiYjcxOGIyMjRkNjU3YWI3YThhYjgKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTE6NDk6NTYgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IEJTRDogUEFUQ0ggMzM4Mzk2NTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGlmLW1pYiBhZ2VudCBjb21waWxlIHdhcm5pbmdzIG9uICpCU0QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZjczZTYzNjRiYjM0MDcwNjIyZTlmNDQ4OGNkMDQ4N2QyZmI3NDAyYQpBdXRob3I6IFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDExOjQ1OjI5IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzM4OTIyODogZnJvbSB3dWxmMjAwMTogaW5jb21wbGV0ZSBjb21taXQgKHBhdGNoIDMzODY2MzM6IGZpeCBpbnRlZ2VyIG92ZXJmbG93KQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlNmNmODIwNmYwYzY3NjUwMDAxZTM0YjUyNmIzN2Y2NGU0YTU5MjljCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAwOTo0NjozMyAyMDExIC0wNzAwCgogICAgUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiBvbiAtY29kZXJzIGZvciBmaXhpbmcgbWFuIHBhZ2UgdHlwb3MKCmNvbW1pdCA2YTg0MWQ1NjUxOGE3MjcxOTZlNjZiNTllN2U1YjMzMDRmNTRiMGExCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAwODozMTowNiAyMDExIC0wNzAwCgogICAgY2hhbmdlZCBjbGllbnRhZGRyIHNvIGl0IHJlZ2lzdGVycyBhcyBwcmUtbWliIHRvIGJlIHBpY2tlZCB1cCBiZWZvcmUgdGhlIHRyYW5zcG9ydHMgZ2V0IGNyZWF0ZWQKCmNvbW1pdCBjMDIxMzFlNWIzNWQyOTY3NTViYWVjOTliZDM2MzIwNWE4NjMwN2RkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAxNyAwOTozNDowMCAyMDExIC0wNzAwCgogICAgZGV0ZWN0IHJlYWxseSBvbGQgdmVyc2lvbnMgb2YgTG9uZy5wbQoKY29tbWl0IDUwMGQ2ZGUwNmFhNGZmMzMwYWVlNGQ3NDlhNGNjMzc3YmVjODllMDkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDE3IDE4OjExOjQ3IDIwMTEgKzAyMDAKCiAgICBGaXggdGhlIGxvZyBtZXNzYWdlIHRoYXQgcmVwb3J0cyB0aGF0IGdldGhvc3RieWFkZHIoKSBpcyBtaXNzaW5nCgpjb21taXQgNjU4MDU1NmNjN2JkODMzYWY3MzFiNjJjZTFlZDIwMTc1NjRmZTdlYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMTcgMTg6MDg6MDEgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHNubXB0cmFwZDogTWFrZSB0aGUgSVAgYWRkcmVzcyB0byBob3N0bmFtZSBjb252ZXJzaW9uIHdvcmsKCmNvbW1pdCAzY2IzZjFlZGUzODhkODRlMzkyZTFkODE1ZDU5OTRhNGJmMGYxMGY5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyAxNCAwNzo1OToyNSAyMDExICswMjAwCgogICAgV2luZG93cywgYnVpbGQuYmF0OiBSZXN0b3JlIG9yaWdpbmFsIGJ1aWxkIGFuZCBpbnN0YWxsIG9yZGVyLiBBcHBhcmVudGx5IHRoZSBjb3JyZWN0IG5ldHNubXAuZGxsIGlzIHVzZWQgZHVyaW5nIHRoZSBQZXJsIHRlc3RzIGJ5IHNldHRpbmcgUEFUSCBwcm9wZXJseS4KICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBjMWI1YTAzMGQ4ZjA0ODc2Y2Q1YjlhZjAwOGM4NzljYzQ2OGIyMTJmLgoKY29tbWl0IGRhZmY0OWQ5YjMzNjllZmNjODdmMDVkYzg1OTEzNjJlODFhNDVmZGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDE4OjQzOjQ4IDIwMTEgKzAyMDAKCiAgICBXaW5kb3dzOiBNYWtlIHRoZSBQZXJsIGFnZW50IG1vZHVsZSB3b3JrIGFnYWluIHdpdGggdGhlIG9yaWdpbmFsIFNOTVBfRlJFRSgpIGRlZmluaXRpb24uCgpjb21taXQgM2M3M2I0ODM4ZTYwNWIxNTBiYzMxNzMxM2YxNGViMzM0NDQ3MjlmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTc6Mzg6MjcgMjAxMSArMDIwMAoKICAgIFJldmVydCB0aGUgdHdvIG1vc3QgcmVjZW50IFNOTVBfRlJFRSgpIGNoYW5nZXMgKGNvbW1pdHMgNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNSBhbmQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCkuCgpjb21taXQgM2U1MGMzZTAwZTlmMzIxZmI3MDhiYzU3OWViNGRjMWEwZjFlN2M0ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTE6MzE6NDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBwYXNzX3BlcnNpc3Q6ICBGaXhlcyBhIHJhY2UgY29uZGl0aW9uIGludHJvZHVjZWQgaW4gY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUuCiAgICAKICAgIFRoZSBmb2xsb3dpbmcgcmFjZSBjb25kaXRpb24gY291bGQgaGFwcGVuOgogICAgLSBBIHN5c3RlbSBjYWxsIGZhaWxzIGFuZCBlcnJubyBpcyBzZXQgYWNjb3JkaW5nbHkgYnkgdGhlIEMgbGlicmFyeS4KICAgIC0gU0lHQ0hMRCBoYW5kbGVyIGludm9rZXMgYSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxzIGFuZCBoZW5jZSBvdmVyd3JpdGVzIGVycm5vLgogICAgLSBTSUdDSExEIGhhbmRsZXIgbGVhdmVzLgogICAgLSBvcmlnaW5hbCBjb250ZXh0IGNoZWNrcyBlcnJubyBhbmQgZmluZHMgdGhlIHZhbHVlIGZyb20gdGhlIHN5c3RlbSBjYWxsIGludm9rZWQKICAgICAgYnkgdGhlIFNJR0NITEQgaGFuZGxlciBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxlZCBvcmlnaW5hbGx5LgogICAgCiAgICBPdGhlciBmaXhlcyBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoOgogICAgLSBSZW5hbWVkIGRlaW5pdF9wYXNzX3BlcnNpc3QoKSBpbnRvIHNodXRkb3duX3Bhc3NfcGVyc2lzdCgpIHN1Y2ggdGhhdCB0aGlzCiAgICAgIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGR1cmluZyBhZ2VudCBzaHV0ZG93bi4KICAgIC0gTWFkZSBzdXJlIHRoYXQgc2h1dGRvd25fcGFzc19wZXJzaXN0KCkgaXMgY2FsbGVkIGJ5IHRoZSBXaW5kb3dzIHNubXBkLmV4ZSB0b28uCiAgICAtIFdpbmRvd3M6IGF2b2lkIGNhbGxpbmcgQ2xvc2VIYW5kbGUoSU5WQUxJRF9IQU5ETEVfVkFMVUUpLgogICAgLSBXaW5kb3dzOiBhdm9pZCB0aGF0IGNsb3NpbmcgYSBwYXNzX3BlcnNpc3QgcGlwZSB0cmlnZ2VycyBhIGNyYXNoLgogICAgLSBXaW5kb3dzOiBwYXNzX3BlcnNpc3Q6IGNsb3NlIGhhbmRsZXMgb2YgZmluaXNoZWQgcHJvY2Vzc2VzLgogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgCXdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaAoKY29tbWl0IGUxNDdlNGI5Njc1NTIwN2RlMWNlMzA5OTBkNjdiNGI3Yzc2ZGQ0ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjM5OjE0IDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBXaW5kb3dzIGJ1aWxkLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMi4KCmNvbW1pdCBjMWI1YTAzMGQ4ZjA0ODc2Y2Q1YjlhZjAwOGM4NzljYzQ2OGIyMTJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogYnVpbGRpbmcgKGJ1aWxkLmJhdCk6IEluc3RhbGwgbmV0c25tcC5kbGwgYmVmb3JlIHJ1bm5pbmcgdGhlIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBzdWNoIHRoYXQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1biB3aXRoIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgbmV0c25tcC5kbGwuCgpjb21taXQgMWU5ZDIwMDNiYWVkMjI3ZjY4YjY4NTI4ZjFlOTdlNmY1ZWE4NmMxYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHBlcmwgKGJ1aWxkLmJhdCk6IFdoZW4gaW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcywgaW5zdGFsbCB0aGUgUERCIGZpbGVzIHRvby4KCmNvbW1pdCBhOGQ5NDAwN2UzMmQwMzcxMDY5MmM4ZjFiNDE3ZDViZGZlMzY1MGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogRml4IFBlcmwgcmVncmVzc2lvbiB0ZXN0IGZhaWx1cmVzCiAgICAKICAgIEFsbCBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBub3cgb24gTGludXggYW5kIG9uIFdpbmRvd3MgKE1TVkMpLgoKY29tbWl0IGI2ZDBiNDkwMTgxYzZkZjhjMTFlY2YxNTVmMWU2ZWFmMTFiMWVjNTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBQZXJsIHJlZ3Jlc3Npb24gdGVzdHM6IERvbid0IGZhaWwgc2tpcHBlZCB0ZXN0cy4KCmNvbW1pdCBjYTNhY2YyYjA3MDM5ZDk2YTExN2YwOTBmN2VjNzZiNmU4YjU0MWU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQWRkIFNOTVA6OmdldGVudigpIGFuZCBTTk1QOjpzZXRlbnYoKS4KCmNvbW1pdCA1Njc1OWU1YWQ1MzdmMDFiNGE1MWU3ZmY5OTk0ZWM0YjU1YzMyMTM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfc2V0ZW52KCkuCgpjb21taXQgOTg0M2U1YmNmNDcyODc3ZTg1YjAzMWI1ZTVkYWZhYTlkNWZjNjNjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6IGRvY3VtZW50IGhvdyB0byB1c2Ugb24gV2luZG93cwoKY29tbWl0IDYwNTc4NjZiNzNhMDIyNzcxZTkwZTk5NjdkZDI1YmRjNzE5MmZiZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICBTZXQgZXhlY3V0ZSBmbGFnIG9uIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Qgc3VjaCB0aGF0IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhhdCBmaWxlIHdvcmsKCmNvbW1pdCBjMmRhZjU5NDBmMjFhMTNlODk4OWRkMDU1YjE3ZjMxODExMTJmODU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogRml4IGEgc3VwcHJlc3Npb24gcGF0dGVybgoKY29tbWl0IDFmMGE5MjhhMjkxM2NmYTdmNWNlYWFmNDY5NmM2OWZiZGM2ODc2MjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDEyIDA5OjA5OjExIDIwMTEgLTA3MDAKCiAgICBhZGRlZCB0aGUgbWlzc2luZyAtZSBvcHRpb24gdG8gdGhlIGNyZWF0ZVVzZXIgZG9jcwoKY29tbWl0IDFlMTAwMGE4ODE1OTIxYjVlYzJlNzk5N2I1MzU5MmE1NDRiM2RmYzIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgQXVnIDExIDE1OjQ2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogTmV0LVNOTVAgUGVybCBtb2R1bGVzIGJ1aWxkIGFnYWluLgoKY29tbWl0IDk3ZDY0MzJmOTVlMWNkY2Y2ZmQ4NWU3Y2ExZDBjNTU1N2ViNmQ5MTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgQXVnIDExIDE4OjE2OjQ0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBwZXJsOiBNYWtlIHN1cmUgdGhhdCB0aGUgY29uc3RhbnQgU05NUF9ERUZBVUxUX1JFVFJJRVMgaXMgcmVjb2duaXplZC4KICAgIAogICAgQ0hBTkdFUzogcGVybDogU05NUCBtb2R1bGU6IEFkZCBjb25zdGFudHMgTkVUU05NUF9DQUxMQkFDS19PUF9SRUNFSVZFRF9NRVNTQUdFIGFuZCBORVRTTk1QX0NBTExCQUNLX09QX1RJTUVEX09VVC4KICAgIAogICAgV2hlbiB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGFyZSBidWlsdCBvbiBXaW5kb3dzIHdpdGggTVNWQyBvciBNaW5HVyBpdAogICAgaXMgcG9zc2libGUgdGhhdCBlYWNoIHRoZXNlIGFyZSBsaW5rZWQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMKICAgIHJ1bnRpbWUgbGlicmFyeSB0aGFuIHRoZSBQZXJsIGludGVycHJldGVyIGl0c2VsZi4gSW4gdGhhdCBjYXNlIHRoZSAiZXJybm8iCiAgICB2YXJpYWJsZSB1c2VkIGluc2lkZSAueHMgc291cmNlIGZpbGVzIGlzIGFub3RoZXIgdmFyaWFibGUgdGhhbiB0aGUgJCEgdmFyaWFibGUKICAgIGluIC5wbSBmaWxlcy4gT3I6IGFzc2lnbm1lbnRzIHRvICJlcnJubyIgaW4gYSAueHMgZmlsZSBkbyBub3QgbW9kaWZ5IHRoZSAiJCEiCiAgICBQZXJsIHZhcmlhYmxlIFRoaXMgcGF0Y2ggYXZvaWRzIHVzaW5nICJlcnJubyIgYnkgbW9kaWZ5aW5nIHRoZSBkaWZmZXJlbnQKICAgIGNvbnN0YW50KCkgZnVuY3Rpb25zIHN1Y2ggdGhhdCB0aGVzZSByZXR1cm4gYSB0d28tZWxlbWVudCBhcnJheSBpbnN0ZWFkIG9mCiAgICByZXR1cm5pbmcgYSBzY2FsYXIgYW5kIHNldHRpbmcgZXJybm8uCgpjb21taXQgNzY5MDg5NGI3Yjg0NjRmMDVjN2M5MDJiZDdjZjc1MWNjMjY5OTc3YQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMTAgMDk6MjY6MzcgMjAxMSAtMDcwMAoKICAgIGRvbid0IGFzc2VydCBvbiBhIGRvdWJsZSBpbml0OyBqdXN0IGRvbid0IGRvIGl0IHR3aWNlCgpjb21taXQgNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMTAgMTY6NDQ6MzYgMjAxMSArMDIwMAoKICAgIFNOTVBfRlJFRSgpOiBjYXN0IGFyZ3VtZW50IHRvICh2b2lkICopIGJlZm9yZSBwYXNzaW5nIGl0IHRvIG5ldHNubXBfZnJlZSgpCgpjb21taXQgMDIyMDM5MmQ4OTlhOWNhYjcwMWY3NGFmMTIwMzBiYjFkNGNjNWUyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKdWwgMSAxMzowMjoxNSAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIgYnVpbGQKCmNvbW1pdCAwMzQ0ZGY5MmU0NjJmM2JlYzk5NDYwOGMzMzgxZmNhNTM0OGFiY2RiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDE1OjEyOjU1IDIwMTEgLTA3MDAKCiAgICBmaXggQysrIGNvbW1lbnRzCgpjb21taXQgMDlhNjYxZDVkYzYwYzczMGZlMDM4NGIwMmVkNjcyODMwZWY3NGUzMApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxNToxMjo1NSAyMDExIC0wNzAwCgogICAgZml4IEMrKyBjb21tZW50cwoKY29tbWl0IDY5Y2I0MmE0ZWEwNTgzY2U2ZjVmZjhmODM4MzUxNmQzNGJjNGMzNDQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTU6MTI6NTUgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudHMKCmNvbW1pdCA0NDdkZGM2NmQ5MGRkOWU1YzMxMDViMjY4YjZhNjNiZmM1ODBiOTI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBdWcgOCAyMjowMzo1OCAyMDExICswMTAwCgogICAgRGVmaW5lIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4KICAgIChhcyBwZXIgQWxleCcgYnVpbGQgaW5zdHJ1Y3Rpb25zKQoKY29tbWl0IGIwYTYyZWIxOTc2M2FiNGYwYjc3NjQzMDI0MmE2MTE3Y2NhZTVkZDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEF1ZyA4IDIxOjU5OjE3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbgogICAgKGFzIHBlciBBbGV4JyBidWlsZCBpbnN0cnVjdGlvbnMpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjEgLT4gVjUuNy4yLnByZTEKCmNvbW1pdCA4MTAxODVhZTBiMGNkMmFkNGQ0MjRhMWJhNzc1ZWY1Y2VhZjUwZjAzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA5OjI0OjE5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMQoKY29tbWl0IDYyNzE0NzFlMDEyODJmMzY3NTcyNGVhZjEzNThjZWIwZTk1ZGRkNGUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMQoKY29tbWl0IGZjYjc4MmFhODg5MzEzNGM3NDE0YTkyNmQ5MjY4NTk0ZjcyNWI5MTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6MTggMjAxMiAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCgpjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowNzo1MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTM6MTAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTE6NDUgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBkOWExNTQ0NWFhNzRmNTMxNmJmYzcxMWMxNTU4NDY3ODcyYzI5NThjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTA6MTIgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBiY2FiZDJjOTU0MmRiZWJkMWQzMTliNDQ5NDQxM2JkY2NhMDY2MTRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBiNDczODk4YzBjNWFjOWViNDdjN2MwNWEzZjc0NWU0ZmYyYTc2YWFhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCgpjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIxOjM4IDIwMTIgKzAxMDAKCiAgICBBdm9pZCBwZXJsIHZlcnNpb25pbmcgcHJvYmxlbXMgd2hlbiBzZXR0aW5nIHVwIHRoZSBidWlsZCBlbnZpcm9ubWVudAoKY29tbWl0IDUwOGVjZTE2ZTZmNmY0OTU2MmRhMjA0NzkyYWUwNjQ0MjY5OTk0ZDEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMDo1OCAyMDEyICswMTAwCgogICAgRml4IGhhbmRsaW5nIG9mIGRpc3QvcmVsZWFzZSBtZXJnZQoKY29tbWl0IDViOGE4NTQ3YjFhNDdkMmY1YjIwN2Y0OGYyNDk2ZTQyNDFkOTAyYzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMToxMDo0OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDZjMzI5MTRiZjI4ZDY5NWRmMzQ5ZGNhMjY5ZTQ4OGI1MDE3MDAzMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNzoyMiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDlmNWE4MmE1YWZkYmIzZGFlYjJmZDQzN2EzMDlmMGI4ZDM1N2NmNGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNTozOSAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDM5MjAzZjI5NDc3YTNiZWRmMDEyZDQxMTM1ZDhhYmQ2YmNhZDA4YjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo1NDoyNyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDE3ZTc5ZWYwZmFkNzk2MDljNWJhMmZlYjRlOGI5ZWI1ZDdkYjY4ODYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IDU4MjFiZTViYmI0MDE4ZGVkMjgyZmJiYmQ0ODMwY2YyZWVhZGQ5ZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NTo1OSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzIKCmNvbW1pdCAzZjIxMTFkZTY3MzNhMDRlMTJkOTEwZDMwNmEzNGQ2NzFlMDA4NzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBjY2Y4ZmYyYzRkYjYwMTIyZDQxMzAyZTRhZWI3MDBlMGI4NjgxMDVmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgMjggMTA6MTg6NDMgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM1MjY1OTk6IERvbid0IGhhbmcgb24gcmV0cmllZCBmYWlsaW5nIFNOTVB2MyByZXNwb25zZXMKCmNvbW1pdCBjODFjODQ4Mzk5MDkxMWY0NzQzNWQzMDA1MjU1ZDkxYzM3YWI5MmIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowOToyNiAyMDEyICswMjAwCgogICAgRml4IEJTRCB0aGF0IGRvd25ub3QgYWx3YXlzIGxpa2UgSVBfU0VORFNSQ0FERFIgLSBzbyByZXRyeSB3aXRob3V0Cgpjb21taXQgZmZjZTFmMmRjMmY4YjMxYWJkMDFmOTNiMjZkYTc4ZjQ3MjZhMWU2NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDM6NTggMjAxMiArMDIwMAoKICAgIEZpeCBPUyBtaXNzaW5nIE1TR19ET05UV0FJVCAoQUlYKS4gQmFja3BvcnQgZnJvbSA1LjcKCmNvbW1pdCBjNTc1MjE2ODUwMTg1YjU2NDU0ZGFkMDI1M2UzMTY0OTc5ZTEzNTEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxMzo1NjowMSAyMDEyICswMjAwCgogICAgRml4IG1pc3NpbmcgaW5jbHVkZS4gRml4ZXMgU0lHU0VHViBvbiBGcmVlQlNEOSB4NjQKCmNvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1heSAyNyAwNjoyMzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGRlYnVnIHRhZwoKY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWF5IDI1IDA5OjAyOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUnVuIGxpYnRvb2wgLS1tb2RlPWZpbmlzaCBvbiB0aGUgcmlnaHQgZGlyZWN0b3J5Cgpjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjU0OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKCmNvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTI6NTYgMjAxMiArMDEwMAoKICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgogICAgT21pdCBmaW5hbC1yZWxlYXNlLW9ubHkgc3RlcHMgd2hlbiBwcmVwYXJpbmcgcHJlTi9yY04gcmVsZWFzZXMKICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQoKY29tbWl0IDRjNTYzM2YxNjAzZTRiZDAzZWQwNWMzN2Q3ODJlYzg5MTE3NTljNDcKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CkRhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCgogICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKCmNvbW1pdCA2NWRkODNjMjI1NWVlNThlZGJmMGUyNTg2M2U1NWI1OGE0MTEzNjc5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGFjNGJjNjVlMjkwOWYzYmQ4NWYzMmYwNGI1MDRmYTY1ZDJmNjQ1NTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCgpjb21taXQgYjc0OTk0ODY0MTk1MTE5ZWRiNmUxOWM4NTE0N2ZhYzAwYmNiOTNlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCgpjb21taXQgOTEzNTAwOTJjNDZlNjZkMDZkNzQxNDNmNDgxNjQ3M2RiNGQyNTE2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAoKICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5Cgpjb21taXQgNzI0MWFjY2Q3MGI4MmQwZmNkNDRkNWE1MjM4YjJlZTk0NDU5MDBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCA3Yzc5NmExNWExZDFiYjg1ZmVlYTk0MGJkNGUzNTE2ODc3OTIwOTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDA3ZTI2OGJmYjY0YjBlYzY0NWIzZjdlODcyNjY5ODRmOTIxN2NmMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCgpjb21taXQgMTZlYWFmNmMzYmExNDU5NmNhOWVmYWY0YjExNGYxYjcwOWY0MmI2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCBjNzI5NDY5ZWYxMjE1NDkzMGNmOWQxNTk2N2UxNjE4NmZiNDQ1ZjMwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKCmNvbW1pdCAxNDI1NzFkM2NlYTA4ZjBjMDcyZDI0YzFkMzlhNDNjNzQ0NmY4Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoyNToxNSAyMDEyICswMjAwCgogICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCgpjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTc6NDIgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KCmNvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMjoxMSAyMDEyICswMjAwCgogICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKCmNvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMDoxNSAyMDEyICswMjAwCgogICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKCmNvbW1pdCBhMDYwOWNmMWYzYTY5MTdkMjYzNzI1NzMyMjQ4Y2Q5MzdhNDVhZDk0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDA4OjQwOjQ0IDIwMTIgKzAyMDAKCiAgICBSZW1vdmUgbGltaXRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGxpbmUgbGVuZ3RoLgoKY29tbWl0IDMwNTk3MzMzOGE2M2FlNTRjNWUwMmE4NjI2ZmJlOWE4MDY0ZGNiN2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MzI6MTkgMjAxMiArMDIwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCgpjb21taXQgY2NhYjRlOWQzZWQ0MjRjMzlkMGRjMjdiZTYzZmE3NmM3NDYxZWE4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDoxNToyMiAyMDEyICswMjAwCgogICAgSW50ZXJuYWxpemUgdGhlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIHRoZSBjdXJyZXQgY29uZmlndXJhdGlvbiBmaWxlCgpjb21taXQgY2Y4NzRhZDdiOWRhZjRmY2MwZDQ2Y2RkMDM0NDc0YjQ3ODAwNTM0MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBcHIgNiAyMTo0NzoyOCAyMDEyICswMjAwCgogICAgUmVwbGFjZSAjaWYgKEEpIEIgI2Vsc2UgQiAjZW5kaWYgd2l0aCBCLgoKY29tbWl0IGVmOWVhNjQxYmMyOTBlZWM1MDY4NWI2MDUxOWIzMWJlZThiMTRhNjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjA0OjA2IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IDM1YWJhMTk1OWRlMTE5ZjFmYjg5MjAzYzM3MTA5YWE2ZjBlMjFjNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjAwOjQwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IGU0MWZiYWZmMThhYzkwOTVjZjRhNzM5YTA2ZWMzOWExYTZjY2ZkYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIwOjM1OjM1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTIKCmNvbW1pdCAxMzdmZTU4MmQ2Y2M1NjExNDMwZGFiNDZlZjE0NGVmZDg0Y2ZjODAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBBcHIgNiAyMDo0Njo1NiAyMDEyICswMTAwCgogICAgUmV2ZXJ0IGNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCiAgICAoc25tcF9zdG9yZV9uZWVkZWQoKSBBUEkgaXMgbm90IGF2YWlsYWJsZSBpbiA1Lls0NV0ueCkKCmNvbW1pdCAyYjdlNjQyODhjMDFhOGEwNjIwMjZjNTIxY2EzMWE1ZTg4NWYzMGNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjoxMjoxMiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCA3ZTk1ZDgwYjY5ODA1MTI1OTY0NWMwNzRhNTNmZmQyNjRhNmZhOTE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjowNjo1NiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYTliN2I3YzAyZTJkZWVmZTk5NGQ1OTVhN2NjMWRkMmZmYmVlZTFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNTo1MToyMCAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggJ3JlY2VudCcgaGVhZGVyIHNodWZmbGluZwogICAgQmFja3BvcnQgb2YgYzUzZDhjMzUyNWY1OTBmMjIxM2QzNWIwZGE5NDEyMzg2MmYzZTM2NiBmcm9tIFY1LTUtcGF0Y2hlcwogICAgKFBhdGNoICMzMzYzMzA4IC0gb21pdHRpbmcgdHdlYWtzIHRvIGNvbmZpZ3VyZSkKCmNvbW1pdCAzZDlkZGI0MWUyNjNiYzFhNzhmOWY5NDQwYjhkNGFkNGY4NmM4MmUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDozNjoxOCAyMDEyICswMTAwCgogICAgRml4IHR5cG8KICAgIEJhY2twb3J0IG9mIDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAwZDM1YzYwOTU2NGI2NmExZmZlODE1NTZkMzdhZGYwNTAzYzM4OWNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDoxNTowOCAyMDEyICswMTAwCgogICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgTkVUU05NUF9QUklvCiAgICAodXNlZCBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMpCgpjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAoKICAgIEhlYWRlciBmaWRkbGluZyBmb3IgRnJlZUJTRCxPcGVuQlNELERyYWdvbmZseQogICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFkZjc0YmY3NTNkMzk3MDM1N2FmZDYzMzgwMzI1NjI0MWQ5YzdiODcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA4OjIwOjQ2IDIwMTIgKzAxMDAKCiAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQogICAgQmFja3BvcnQgb2YgY29tbWl0cyA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCiAgICAgIGFuZCA1MGQ3M2YwZDU2ZmUyMmM1OTA1MzBiM2UzMDVkNDFkY2RhYzNjZTAwIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgZDk1NTVhY2I5ZjQ3YzNhYThmZGU0YmMyMGE0NGQ3Y2E2MTgxYThhOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzIChiYXNlZCBvbiBwYXRjaCAzNTAzMjU5KQoKY29tbWl0IDgyYThiNDdlZTk2ZTVkMjlhMmI3YWMzY2EwMDcyMmQ3MzdkNWI0NzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IDljYThkOTM5YWIzOTMzMDZhMWQwZjE0NmM5Y2I3MGVhMGNiMTlkNDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGNlY2Q0ODY5ZGViNjhmM2Q0YzcxZTc2OGQ1YjQwZGQ1NzY0NDY5MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGExYTQ1MTNiZDNlNGU2MTQyMDBmNmRiNWEwMmY2MWQ2YzhlZWZiMzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrcG9ydCBvZiBnaXQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgOWJkYmNjYTEyMmMzN2RhMzA0ZmM2YWE2OTM5NzI5NDc1ZjkwZjVmZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKCmNvbW1pdCAxZjc1ZjM3N2QwZGIwMTc1NGMwYzE2MWRjNDQzNzMwODFiZWVmNTIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQoKY29tbWl0IDNkNzJjOWU3OGYyYWQ4MTdjOWQxZDgyOTc3MzI3YmJiMjBkNjNhYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQoKY29tbWl0IDEyOTA2NTc4YWIzMGNmNzc2ZDA4MGMwZWYzMDI1YjMwMzM0ZDc2NTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEZpeCBldmVuIG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgY2NmZDVjYTZmZTEwMzEzZDYxODFkMjRiYmIxNzk3ODI1YTk3ZGExMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRWxpbWluYXRlIGR1cGxpY2F0ZSBjb2RlCgpjb21taXQgOWZkYTI2Njg3MjJmMDhkZGJmZGQ2N2EyMjM5ZDhiMDIxZGI2NGE4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogV3JpdGUgYSBsb29wIGFzIGEgbG9vcAoKY29tbWl0IGNiYzE4ZWI3NjNiYTZkZjY5ZWY3MDY2OGE1NGQ3NWJmMzVlNzk1MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjNzcyNTE5MjQ3OGFlYzAxOGZiNGFlZmE2MDk0NmUwNGE0MDZjMDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgcmVhZGluZyBmcmVlZCBtZW1vcnkgd2hlbiBkZWxldGluZyBhIHJvdyBmcm9tIGEgdGFibGUKCmNvbW1pdCBhNmJlNzM5NTY2ZjMxMGQ3NDQxZmQ3ZjU0OTg5ZTM5NDQ2ZjdhMTQzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCgogICAgRXh0ZW5kIERJU01BTi1QSU5HLU1JQiB0ZXN0Cgpjb21taXQgOGE5YjU3MjkxNDUzY2I4YWVjMjhlNzY2YzU5NDcwMWVkMTljNGZjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgRHJhZ29uRmx5IDMKCmNvbW1pdCBlNWM5YTMyZjc5ZWFjMmU4NTUyN2M5Y2YwNTA4N2NkYWU5YjM1YTZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCgogICAgRHJhZ29uRmx5IG5lZWRzIF9LRVJORUxfU1RSVUNUVVJFUyB0byBjb21waWxlIGlwdjYgY29kZQoKY29tbWl0IGNkNDNiYzA5YTM5YmQ5N2ZmNWU3MTlhMmNlMjMyY2U0MjQ2MDBhNjUKQXV0aG9yOiBEYXZpZCBJbWhvZmYgPGRpbWhvZmZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDM1MTA0NTQ6IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0Cgpjb21taXQgZTJmYzE1ZjllNWE2ZTNlMzZiZTVmNDg5NjAxY2JmNmJmNzMxOTE3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA0MzJmZTNkZGY1NGYyYzk4ZjkzNjk1OTQ2OWNiOWIwMTRkNTk5ZjA2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBwZXJsIHRvIGRvIHBhc3NfcGVyc2lzdCB0ZXN0Cgpjb21taXQgMzdkMjc3MGNmNTBjOTgwMjNlZWJhOTBlMjVkMzcyYmZmNzMxNmFkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlci5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDg2YTk0OGQ4NjkxZTg4MWQ1NTU5MWRjYWJkZGMyNzM5Y2U3MmIzMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQG5iYS1saW51eC5zYi5zdGF0c2JpYmxpb3Rla2V0LmRrPgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGZpbmQgcGFzcyBoZWxwZXJzIGZvciB0ZXN0aW5nLgoKY29tbWl0IGZlMjZhM2M0ZjI5ZjA0NmJmNjVlZDUyZTlkOTQwNTRiNjc1ZmJjNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IExpbWl0IHNvdXJjZSBjb2RlIGxpbmVzIHRvIDgwIGNvbHVtbnMKCmNvbW1pdCA3NDViYWZjZGNjOWM4ZTg0NjE2ZDRlMjc0ZGIyYTM4NGJmMjM0ZGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sganVtcHMKCmNvbW1pdCBkYTY5MjVlNjc2M2NhZGJlMDJmNGE4YmJmZTY4YTM2MmU1MzVhZDVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCgpjb21taXQgZmE2MDZkZDdjYTZhZmY5MzA4ZDRlOGIwMWJiY2RlMTQ4ZjQ0MTI3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKCmNvbW1pdCA2MTdhODNiYTc5OTU3NWM4NGM2NmY2YjFjNDgwZWY2MzMxNjFhNjRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUgaG9zdAoKY29tbWl0IDYyNWY1NWMyNzJlYzYyODFlMzhkOGUzMGViNTNmZDUxNTE2YjAwYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgaW50byBhIHN0YWNrIHZhcmlhYmxlCgpjb21taXQgYjQ4ZjE5YWQ0YjRhYTY4YzNlMTZlMmE3MmRmMzdiOWMwY2QzNmM0YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQWRkIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCmNvbW1pdCBkNzRjYjM5NjYxNzU4OTI1NjJmNWUzYTliMTY4M2FjYmEyYzIyZTA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCgpjb21taXQgMGIxYTc3Njc0Njc4Y2M5YTE1YmUzZTc3MDBkM2NlZjY1MGVkMDJjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvIG5vdCBzZW5kIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhY2sgb3ZlciB0aGUgbmV0d29yawoKY29tbWl0IDEzOTAyM2NkM2FiNTE2MzFjYzEwZTI4NjZkNzFhYmNmOTlhZTRjMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEb24ndCBjYWxsIGV4aXQoKSB1cG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUKCmNvbW1pdCAxNjliNmFhYTdiNjE4MjdjYzFhZDBiM2FlZWFlM2E3MjI5ZGQyNWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IElQdjYgc29ja2V0IGxlYWsgaW4gZXJyb3IgcGF0aHMKCmNvbW1pdCBhMGJlMzJhZDA1M2E3MWZhOTYxMzRkNTVlNTQyYmIwN2Q0ZjAyOTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgdGhhdCBob3N0IG5hbWUgcmVzb2x1dGlvbiBmYWlsdXJlIGNhdXNlcyBhIGNyYXNoCgpjb21taXQgYmY5YmZmNjQ1NTY3ODdkNzY2ZWUyZWYyZDU3OGFmYjkyMDcxOWYzYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgcHJpbnRmKCkgc3RhdGVtZW50cyBpbnRvIHNubXBfbG9nKCkgYW5kIERFQlVHTVNHKCktc3RhdGVtZW50cy4KCmNvbW1pdCA1ZDc0YzAxMjQ1NTIzYTlkOGRiMWVkYTI3ZDFlZmFlMmViYzEwNGZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCgogICAgTmV3IE1JQjogVlJSUFYzLU1JQgoKY29tbWl0IDViMzhmMDYyYjk5YjZlZjM2NzA4ZTJjN2RlNDk2NWEzMTkyNjEyZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKCiAgICBGb3Igc2FmZXR5LCBzaXplb2YgdGhlIHJpZ2h0IHZhcmlhYmxlIGluIG1lbWNweQoKY29tbWl0IGU1ZjgyNzgyZGEwNWVmYTdjMGU2ZGMyYmY1YTQxZWUxMTg2OGY0NjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXggZm9yIGhyU1dSdW4gZGF0YSBmb3IgRnJlZUJTRAoKY29tbWl0IDgzMjc1NjVlODIzMjcwZDEwYTQ1MDQ1NjhlZGJlNWI1YWUzMjNhNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCB2YXJpYWJsZXMgZm9yIE9wZW5CU0QvTmV0QlNECgpjb21taXQgMTcwZjZmMDI3YmY0ZjkxNzRiNzA3MzUzMGRhNGQwN2Y0MDBiYmE1OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAoKICAgIE1vdmUgZGVjbGFyYXRpb25zIGluIGZyb250IG9mIHN0YXRlbWVudHMKCmNvbW1pdCBkYmI0NTczYjY5ZmFlODVjZGM5MzFiMjg5MmI1Y2U0ZTViMTZiMzIxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBrZXJuZWxfbmV0YnNkIGZvciBOZXRCU0Q2Cgpjb21taXQgZjExNjgxZjE1YWFkN2Q5YTUyZmEyOTgxMmVjYmI1MDdmMWI3ZmUyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKCiAgICBDaGVjayBmb3Igb2xkIHRhcmJhbGxzIChhbmQgdW5wYWNrZWQgZGlzdHJpYnV0aW9ucykgYmVmb3JlIHN0YXJ0aW5nLgogICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKICAgIG9uIHRoZSBjdXJyZW50IHRyZWUsIGFuZCB3b3VsZCBkZXNjZW5kIGludG8gc3VjaCB1bnBhY2tlZCBzb3VyY2UgdHJlZXMuCgpjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjMyOjEzIDIwMTIgKzAwMDAKCiAgICBEb24ndCBydW4gIm1ha2UgZG9jczsgbWFrZSBtYW5jcCIgaWYgdGhlcmUncyBubyBNYWtlZmlsZSBwcmVzZW50Cgpjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjI2OjEwIDIwMTIgKzAwMDAKCiAgICBBbGxvdyBkaXN0cmlidXRpb24gYXMgcGFydCBvZiBub3JtYWwgTmV0LVNOTVAgcGFja2FnZXMuCgpjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTggMTk6MDM6MDggMjAxMiArMDEwMAoKICAgIFJlZ2VuZXJhdGUKCmNvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMToyOTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMvLS1kaXNhYmxlLWFnZW50IHRvZ2V0aGVyIHdpdGggLS1lbmFibGUtbWluaW1hbGlzdAoKY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDIwOjEwOjU4IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgZGVjbGFyZSB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBvcGFxdWVfc3BlY2lhbF90eXBlcyB1bmxlc3MgdGhhdCBvcHRpb24gaXMgc2V0LgoKY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDE5OjUwOjAzIDIwMTIgKzAxMDAKCiAgICBDaGVjayB0aGF0IHRoZSBkYXRhIGV4aXN0IGJlZm9yZSB0cnlpbmcgdG8gcmVhZCBpdAoKY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTWFyIDE0IDAxOjA1OjMzIDIwMTIgKzAxMDAKCiAgICBQYXJ0aWFsbHkgcmV2ZXJ0ICJNZXJnZSByZW1vdGUgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvIFY1LTctcGF0Y2hlcyIKICAgIAogICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCiAgICAKICAgIDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAgKGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlKQogICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQogICAgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YyAoUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUpCiAgICAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiIChwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZykKICAgIAogICAgYW5kIHBhcnQgb2YKICAgIAogICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKICAgIAogICAgVGhpcyByZXZlcnRzIHRob3NlIHJldmVydHMuCgpjb21taXQgYWFlZGQ1OWNjMmRhNzAxNTI3ZGMyZDI2MWQ0ZTlmODVmMTZlNzUwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAoKICAgIEFsbG93IG1ha2UgdGVzdCB3aGVyZSB0aGUgc291cmNlIHBhdGggY29udGFpbnMgdGhlIHN0cmluZyBOZXQtU05NUCB0byBzdWNjZWVkLgoKY29tbWl0IDRiOTRkNzk2OTE4YTRlZWFlNjhhYjIxYWE1M2Q0NDRhOGI1YzI5MjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgY29tcGlsYXRpb24gb24gRnJlZUJTRCA0Cgpjb21taXQgMTBmZTZiODMzMjRhZDM3ZDE4YjkzN2NjOGM2ZGU5NGRlNTM0ZDAzNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgZTExMjJlZGMxYTVmZTc5NzZiMDY1MDQ0MTM0ZDM5ZTdkYjU5ODVlYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgYTYxM2QzYTgzNDkxMjIwNmQxYmE1OTcxZTQ0MWEzZWE2YjM2YWYyMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMGVmMzRlNjUxOWRmY2I4MmM5N2RmODQyNzU0N2MwOGRjZjgxZTY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBzbm1wZCAnLWQnIG9wdGlvbi4KICAgIAogICAgTm93IGl0IGR1bXBzIHBhY2tldHMgYWdhaW4uCgpjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MjEgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMQoKY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjA1IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU5OjM4IDIwMTIgKzAxMDAKCiAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQoKY29tbWl0IGNlODU4MzI5MzJjY2Q5MTZjNDIzMTkxMTRjNDA4ODVhNDY2YTlkMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTY6NDAgMjAxMiArMDEwMAoKICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKCmNvbW1pdCAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE1OjA4OjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MgaW5zdGVhZCBvZiAwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhLgoKY29tbWl0IDUxODkxN2U5ZjM5ZjdhOWQzYzNiZjNhODY1ZThhYzBlMzAyNmQ2MDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTQ6MDQ6NTQgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCAyNjUxOTA5Y2NjZWFiZmNmYWRhZjk0MmMwMjQ1MGUyOGZlODM3ZGM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiA5IDEyOjA0OjA0IDIwMTAgKzAwMDAKCiAgICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk2NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTQxZjExNWU0MDMwNGM5NDFiYTE3ZDY3ZTI0NzEwNzIyZDkwNzQxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC13IGFuZCAtcSBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZS4KCmNvbW1pdCA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlIGlmIGl0IGlzbid0IG5lZWRlZC4KCmNvbW1pdCA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2Ugb3B0aW9ucy4KCmNvbW1pdCAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjM5IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDQ0YWEyNjU4OTFjZDU2M2Y3ZjQxMTRlZjI1ZGNmN2FhZjNiMTRlOWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDQwMDIyYTY5Nzk1ODI1OWNjZmJiM2ZlZDQ0ZWIzYzQ3MmY1ZTgzN2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgc2ggZG9lcyBub3QgdW5kZXJzdGFuZCAidGVzdCAtZSIKCmNvbW1pdCA3NzNhZjBjNDJlMDc3YmViZGFlY2YxYzBjYWYzOTMyODVhNzY4OGYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE3OjE5OjMwIDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCBuc3JvbGx1cCBjb21wbGljYXRpb25zCgpjb21taXQgZWU3MTA0OWMzZTIxYzFkMGUzNDI0Mjk3MTM2NjUyYmJlMGUzOWQ4NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCgogICAgbWliZ3JvdXAvaWNtcC5jOiBhZGp1c3QgaWZkZWZzIHRvIG1ha2UgaXQgY29tcGlsZSBvbiBCU0QncwoKY29tbWl0IGNlOTYwMDM2MWU2NjVkZGUxN2FmOWQ4YWIxNmQ3Y2U4NWRjMDU2NDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzk6NTUgMjAxMiArMDEwMAoKICAgIGRvdDNTdGF0c1RhYmxlIGhhcyBidWdzIDotKAoKY29tbWl0IGRmZmFjZjZmYTA3NTVlMTcwMGNiYWMyNWI4NDQxODVhYmQ4MDdhMGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzg6MTAgMjAxMiArMDEwMAoKICAgIHBhc3NwZXJzaXN0IHRlc3QgbmVlZHMgL3Vzci9iaW4vcGVybAoKY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzY6NTggMjAxMiArMDEwMAoKICAgIGdyZXAgLXcgZmFpbHMgd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlzIDEwLTY0Cgpjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAvdXNyL3hwZzQvYmluL2dyZXAgdG8gdW5kZXJzdGFuZCAtcQoKY29tbWl0IDk5NTRiNGI3NDFmZDhjNjNkNjEyOGJkMDUyNzI5OGM4ZTRlOTg5ZmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBwcm9wZXIgc3JjZGlyIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoKY29tbWl0IDc4MzY5MDAyYmUyNzExZjBhYTg3NmI2NGE0ZTEwYjA5MGNjMjQxY2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzM6MzEgMjAxMiArMDEwMAoKICAgIE5vdCBhbGwgbWFrZSB2ZXJzaW9ucyBkZWZpbmUgJChSTSkKCmNvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjI0OjI0IDIwMTIgKzAxMDAKCiAgICBNYWtlIGF1dG9jb25mIDIuNjggaGFwcHkKCmNvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjEyOjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgb2YgbWliIG1vZHVsZSBmc3lzX2dldGZzc3RhdHMKCmNvbW1pdCAxZmExZmVlMzY5M2Y2N2I4MjAyMjM4MDZiM2Q3M2FmZDRjNTBlYzE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKCiAgICBTaWxlbmNlIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCA5MzI2M2I5OGE1ZGIzNDRjZjJjNGQ0ODljNDM5NzFlN2IyOWNkYjAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMzozNzoyMCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA1YTE3NTQyOGI5NzNkMmVhODU1M2UyOWZlY2Y5NGNmMTU2NmFhODU4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0ODoxOCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAzNjQyNzZhMWM1YWE2NmNhYTIzZWI1YjdmMTExZmRlYjVhZjcxZmE3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0NToxMCAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA3MzU5ODM0MDE3MmVmZjc1NzI5YTZkNTcxOTJiODE3MWQ1YmJmMDBlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0Mjo1NiAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5wcmUxCgpjb21taXQgZjMyMTQ0MDI2NzJjYTE5OWZkNTMxZTY2MTIyYmY5NmM0ZDlhNGViNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMmU3NGFjYjZmMTllNDcyOWNlZGUwYWI0M2U5MzE5NjFjYjIzYWFlYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwOToxODozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43Cgpjb21taXQgYjcxMDk2NDZiOTVhNzA3MTNkMWFkOTkxZDQxYmNjZDU3YzBiYjNlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwODo0ODo0OCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIGludHJvZHVjZWQgaW4gNS42Cgpjb21taXQgNDMyY2JiN2E1NTAxYWI5MGQ2NmQwYTgzZTczMWU3MzQzYmMwNGIzNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAoKICAgIENvcnJlY3QgdHlwb3MKCmNvbW1pdCA2YTZjOWJiYzc1ODRmMTk2YTExODVjYzE5MzUyMDRmMTIwNjgxMWVkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEZlYiAyOSAwODo1NTozNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzCgpjb21taXQgZDUxNWUyYTZlNGMyYTFjNGQ4NDczNGNjN2IyZDBiMmZjNWE4OTRhZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjU2OjIxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ4NzkxOTogRml4IGNvbXBpbGF0aW9uIHdoZW4gY2FjaGluZyBpcyBkaXNhYmxlZAoKY29tbWl0IGFmODM2OGVkODg5OGE3OGQwODY4YjQ3YWY0NmJjOWRiMDdkMWM3NjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQxNDc3MzogRW5jb2RlIGludGVnZXIgdmFsdWUgdXNpbmcgQVNOX0lOVEVHRVIKCmNvbW1pdCAxOWUyNzE1ODA3ZmUwNmZkMGJhZWRmODgxNjUwMTFhZWU5MzNlNzU1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IG1hbjogQlVHUzogMzQ5MDcwODogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCgpjb21taXQgNjVmNzk2MmY5MzJjOWI3NWM1YmJiYjA0N2QxZTI2YWU2MDk3OGU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ4OTYzMTogRml4IGluY29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgbW9uaXRvcmluZyBmbGFnCgpjb21taXQgYWMxNjYwNTFiNmEwOTJkZDRhNTk0MzI2ZWM4NWUyZjY5OWI2MjU0NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDExOjU3OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBCVUdTOiAzNDc0NTkwOiBEb24ndCBtYXRjaCB1bmRlcnNjb3JlcyB3aXRoaW4gdGhlIHNvdXJjZSByb290IGZpbGVuYW1lCgpjb21taXQgODc5YmY3MDc5ZDM0ZmE0NmY2ZmNmNTRhMDFjODUwMGJlYWVjZTU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ2MDM2NDogRml4IHVzZSBvZiBibG9jayBmYWN0b3Igd2hlbiBkZXRlY3RpbmcgZXJyb3IgY29uZGl0aW9ucwoKY29tbWl0IDAzNGYxYzU3MmY2ODNlYTQyODU4MzA3NDQ3MWU1ZDVkMTNiNTE4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IDM2NDIzZTIxMGJmYjY1ZWYxMjFjNmE2NmFlYzQzOGM3YzIzN2QzZGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDU0MTY4OiBjb25maWd1cmU6IEZpeCBidWlsZGluZyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IGVlZDBiY2JjNDNmZWExODI1OWYwZjYzYjIwODFiNmQxMDUzNWEwNTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgYmFieS1zdGVwcyB3aGVuIGNvbXBpbGVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0LgogICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4Cgpjb21taXQgZWM2YTIzMDMwZTVhMjA3MmMxOWMxOGMxZDljMTI0Mzg3ZGE1NmI3YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTg6NDI6NTggMjAxMiArMDAwMAoKICAgIEFkZCAtbHJ0IHRvIE5FVFNOTVBMSUJTIHN1Y2ggdGhhdCBjbG9ja19nZXR0aW1lKCkgY2FuIGJlIGZvdW5kCgpjb21taXQgZjEzMzIwNTAwMjk0YmIyNDBmNjNjNmRkN2QyZTlhMjIwOGViNzQwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbXBpbGVkIHVzaW5nIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGM0Mjc2YjYyMzJjMjkxNDVjMDM5ODg0ZTZiNWE2YjZkYTRiOTM4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0IChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCAwMWM5MzBlZGNjMjU3MDBkNmI1ZmIwMzc2ZjU1YTI2NDI1ZTEzZmIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6MTc6MjIgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAogICAgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDI0IDE0OjAwOjMyIDIwMTIgKzAxMDAKCiAgICBSZXdvcmsgY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMuCgpjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjQgMDc6NDM6MjIgMjAxMiAtMDgwMAoKICAgIHNldCBNRVJHRV9BVVRPRURJVCBiZWZvcmUgbWVyZ2luZyB0byBhdm9pZCB0aGUgZnV0dXJlIGdpdCAxLjcuMTAgZm9yY2VkIG1zZwoKY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjI3OjU0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogaW5pdF9hZ2VudCgpICsgaW5pdF9rbWVtKCk6IFJldHVybiBhbiBlcnJvciB2YWx1ZSBpbnN0ZWFkIG9mIGludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAoKY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjAzOjMxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgc3ltYm9sIE5FVFNOTVBfRVhJVF9PTl9CQURfS0xSRUFECgpjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDg6NTM6NTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IHNubXBkICsgYXBwczogU2VuZGluZyBVRFAgcGFja2V0cyB3b3JrcyBhZ2FpbiBmb3Igbm9uLXJvb3QgdXNlcnMKCmNvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMTozMTo0NiAyMDEyICswMTAwCgogICAgdGVzdGluZy9SVU5URVNUUzogRml4IGEgYmFzaGlzbQoKY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE2OjU4OjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgJWxkIHZlcnN1cyB0aW1lX3Qgb24gc3lzdGVtcyB3aGVyZSB0aW1lX3QgaXMgYSBzeW5vbnltIGZvciBsb25nIGxvbmcgaW5zdGVhZCBvZiBsb25nLgoKY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDEyOjMyOjI1IDIwMTIgKzAxMDAKCiAgICBGaXggc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMgZmlsZSBoZWFkZXIKCmNvbW1pdCBhYTc2NmQxOTZlNTI4N2Y2Y2E3OWI1OGEzNDViMDI0MjYwYWJhMzU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNzowNzoxMyAyMDEyICswMTAwCgogICAgSUYtTUlCOiBkbyBub3QgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IgKD4+IDMyIG9mIGEgMzItYml0IHZhcmlhYmxlKSB3aGVuIHVwZGF0aW5nIGEgY291bnRlciBhbmQgaWZpX2lwYWNrZXRzIGlzIGEgMzItYml0IHZhcmlhYmxlCgpjb21taXQgYzNmYjZkZDllNmI5OWU5NTQyNDkzMTg4OTg3ODcxZmM1MDE3Y2IzYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDk6NDU6NDUgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgb24gc3lzdGVtcyB3aGVyZSBtb2RlX3QgaXMgdW5zaWduZWQKCmNvbW1pdCBmOGEzZWYwZDNkNGU1MzAyNzk5MDAxMDEwNDliOGRlOThhNDRhNmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ4OjUyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazogQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0IG5lZWRzIHJlbGF0aXZlIHRpbWUKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZSBzbm1wRW5naW5lVGltZSBpcyAwLi4yMTQ3NDgzNjQ3IG9uIGFsbCBzdXBwb3J0ZWQgc3lzdGVtcyBpbnN0ZWFkIG9mIDAuLjQyOTQ5NjcyIG9uIHNvbWUgc3lzdGVtcyAoaS5lLiB3cmFwYXJvdW5kIGFmdGVyIDQ5NyBkYXlzKQogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygpLCBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCksIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCksIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQogICAgQ0hBTkdFUzogc25tcGxpYjogRGVwcmVjYXRlIGF0aW1lX2RpZmYoKSwgYXRpbWVfbmV3TWFya2VyKCksIGF0aW1lX3JlYWR5KCksIGF0aW1lX3NldE1hcmtlcigpLCBtYXJrZXJfdHRpY2tzKCksIG5ldHNubXBfbWFya2VyX3VwdGltZSgpLCBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCksIHRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0cnVjdCB0aW1ldmFsIG1lbWJlcnMgb2YgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIGEgd2FsbCBjbG9jayB0aW1lIGJ1dCB0aGF0IGRvIG5vdyBjb250YWluIGEgbW9ub3RvbmljIGNsb2NrIHZhbHVlCgpjb21taXQgYzE5NzYwZjMzMzNjOTJmYWM1ZDUwZTk3NjhjZGY5MzkyMThiYzQ4NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMTUgMDk6NDU6MDMgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcHYzLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IGE2ZGIyMzk5NDVlMTk1ZGU1YTkwZmExODM3MDBiMjdhNmVjYjI4ZDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDcgMDA6MTE6MTQgMjAxMiArMDEwMAoKICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmcm9tIHJlY2VudCBkZWNsYXJhdGlvbnMgcGF0Y2gKCmNvbW1pdCAwZmJiYjlhOWUyOTA2YTdhZjk1Njk1NzA2MWQ0ODU4NzQ0NjJhZWE5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjQzOjA0IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgbWl4IGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cwoKY29tbWl0IGYzMDhkNWJhZmIwNWQ3OGVkNDAzMGM0ZWNmZjMyNGI2Y2JkYTY4MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0NmYwZmMxYjdmYzI2YTIyNTc2M2JjNjVjY2E1MjBhMWM1OWYwMjUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjU0OjMyIDIwMTIgKzAxMDAKCiAgICBzZW5kbXNnIGRvZXMgbm90IGxpa2UgSVBfU0VORFNSQ0FERFIgaWYgYWRkciBpcyBJTkFERFJfQU5ZCgpjb21taXQgZGViYWM0OThmZTg0MTAxMTAxMDdhMmZlNjRmOGFmYjc0OGVkYWEwNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMTY6NDg6MDkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFkZGVkIE9DRlMyIChPcmFjbGUgQ2x1c3RlciBGUykgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZQoKY29tbWl0IGZhZmM5OWNkODllNzNlYzdlMDBiZjczNjBkMGI0ZmE2MTk0NGE0ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAoKICAgIFNpbXBsaWZ5IGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCgpjb21taXQgN2FmMjAxM2RlOGJmMWIzNzljMDc2ZGI0ZTEwNDUwOGUxNzg3NGQzZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCgogICAgRml4IG9yZGVyIG9mIGZlYXR1cmUgI2lmbmRlZiBhbmQgRG94eWdlbiBjb21tZW50IGJsb2NrCgpjb21taXQgYmJkNjdmNjM1MzBmNWVmMGJmYzk0OGZjNThkZmU2YTkzZjhmODY3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQyYTY2YWVmZjI1YjllOWVmNjM1YTQwNGFkMmY1MjEyZjllOGNmMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAoKICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCgpjb21taXQgM2ZlNzJiM2I5OWI3ZTRiMmI5ODIzNjNkZmM0ZjJkOGQxM2Y0MDU5MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCgogICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAoKY29tbWl0IGU5ZGIyNjZhZTQ4ZDA1YTdhNmNiNWQ3MWI0YmRlYTdhZDgwOGVmNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKCmNvbW1pdCBkMDgwNDRjYjllNTcwMmZiZjU0OWUxNDQyNWY0Mjc5NDI1OWQ4YTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQoKY29tbWl0IGEwNWMyN2MyNzExY2I0MTU4MmEzYjRjMzFlMzhiMGU5MzUzMGI2MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCA5MTBkN2IwZDk5MTgzNjA5Yjk1MjliMDRjM2YyOTMzMGViNjYxMDIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQoKY29tbWl0IDQzYTgzZjZjNmE5NmNjMjMxNmI3MGVlY2FjZjEyN2ViNjkxM2M3YTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAoKICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCgpjb21taXQgMmZlNTc5ZWZiMWNiM2E3NGY4MjgwM2NhMzIzOTI4ZjZiOGU0YjVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCgogICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlLgoKY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFJtb24gTUlCIGltcGxlbWVudGF0aW9uCgpjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCgogICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCgogICAgVXNlIFNOTVBfTUlOKCkgaW5zdGVhZCBvZiBtaW4oKQoKY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NyBwYXJ0aWFsbHkuCgpjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBdm9pZCBjcmFzaCBkdXJpbmcgc2h1dGRvd24gZHVlIHRvIGludm9raW5nIHBlcmxfZGVzdHJ1Y3QoTlVMTCkKCmNvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgYSBzdXBlcmZsdW91cyBkZWNsYXJhdGlvbgoKY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsOiBBZGQgZXJyb3IgY2hlY2tpbmcKCmNvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBNYWtlIGNvbmZpZ3VyZS10aW1lIEVWUF9NRF9DVFhfY3JlYXRlKCkgZGV0ZWN0aW9uIHdvcmsgb24gdGhlIDUuNCBicmFuY2guCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgoKY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6MTI6MDAgMjAxMiArMDEwMAoKICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDEgMTE6NTY6NTggMjAxMiArMDEwMAoKICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDA5OjU2OjAyIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCgpjb21taXQgY2E0YTRmZTI1ZWZkMjcxNGY4ZjE5NjFiOTc4NTY2MTY1NjNmNDJjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAoKY29tbWl0IDEzYWRhNTY1NThiNDRlMjhkMTM1NWMwZGNlMWQ5MjFmMzc0NmQ1NDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkLgoKY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU4OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTU6NTYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1MToyNiAyMDEyICswMTAwCgogICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCgpjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjQ2OjI5IDIwMTIgKzAxMDAKCiAgICBSZXdvcmtlZCBfcmVnaXN0ZXJfZXh0ZW5kKCkgZXJyb3IgaGFuZGxpbmcuCgpjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIxOjI4IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjA6MjIgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToxNzowNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA4OjA5IDIwMTIgKzAxMDAKCiAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCgpjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA1OjEwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDQ6MDYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMjo1MCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAwOjUxIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDYxOTM2NzYyZTY0MWMxOGRiNzVhYTUxMjVhMzNlNzc2YzY3N2FkYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCgogICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgoKY29tbWl0IDQ5NjQzNzQzMDQxNWZiYWZlYjFjY2Q0Nzc0ZjFjYTAwZDYyN2VhMWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAoKY29tbWl0IDViNGEyNGNkY2VlMWJjM2Q4MjYzM2NjYWZlYjk2ZmNlOTUzNDljNTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKCiAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IGNiZjFjOTFiYWY3MTkxYmU1ZmEyN2Q4MWJjZjg3MTQzMzFhMmMxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKCiAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCiAgICAKICAgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYuCgpjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAoKICAgIEhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEF2b2lkIHRoYXQgYW4gU05NUCBzZXQgd2l0aCBVc2VFbnVtcyBlbmFibGVkIGNhdXNlcyBhIHNlZ21lbnRhdGlvbiBmYXVsdAoKY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggbW9zdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCgogICAgRml4IGEgdHlwbwoKY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCgogICAgRnJlZSB0bVN0YXRlUmVmIG9uIGVycm9ycy4KCmNvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgZmluZ2VycHJpbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgpjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKCiAgICBGcmVlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50LgoKY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCgogICAgUHJvcGVybHkgYWxsb2NhdGUgYW5kIGZyZWUgZW5naW5lSUQuCgpjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKCiAgICBGcmVlIGxvY2FsbHkgYWxsb2NhdGVkIHRtU3RhdGVSZWYuCgpjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBpZiB0aGUgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyBzb21ldGhpbmcuCgpjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGVzIG9uIGVycm9yLgoKY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlIG9uIGVycm9yLgoKY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDU5ODg0YmI0ZDM1YWQxMzc0N2ZmYTY3MjM0MzZkY2E1ODdhOWFiNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCgogICAgSW4gYWJvdmUgY29kZSwgb2xlbmd0aCBpcyBjaGVja2VkLCBzbyBsZXQncyBjaGVjayBpdCBhbHNvIGhlcmUuCgpjb21taXQgYmE1ZDUyOTJiMDQzOTNiMGM3ZDdkN2VkOTYxMjQxOTI5NDE4YzZlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZGEyZDZhNzAyOGExM2I5ZWRmM2E1Yzg0MzE0ZDBmMWZlZWY3NjcxNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjQ0OjU2IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBmODgwNTRhOWI2OWI2ZGUyNzRmN2ExNGE1OWI0NzMyM2U1ZTRlNGM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6Mzc6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIGNvbnRleHQgaWYgaXQncyBOVUxMLgoKY29tbWl0IDdjNGQ0NTllOGYxZjY1MmNjMjA5OGMzZDRjODFkZTkwYTg0ZWQ3MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozMDowOSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVmZXJlbmNlIE5VTEwuCgpjb21taXQgZmMxOWI3ZjMzYjU4NzkyN2QyYTAxZTcyZDIzZDIxYjliMTY5NmFiMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjI1OjI2IDIwMTIgKzAxMDAKCiAgICBEb24ndCBjbG9zZSBOVUxMIGZpbGUuCgpjb21taXQgNWU5NWNhNjc5MDA3NmI3ODgwNzJhODAxZWU3YzgyOTY5ZDk5NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjE3OjA5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTCB3aGVuIGEgdHJhbnNwb3J0IGRvZXMgbm90IGhhdmUgZl9mbXRhZGRyLgoKY29tbWl0IGVlZDZmNWY5YjlhZTU0ZDJjZWFiNjdhZDg1YWRkZTFmNmE4YTIxZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMzoxMyAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgNDFjZGU2OGI1ZmE0YjM4ZDgxNDUwY2Y5MWUwODJjZGZhODI1ZTdjZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEwOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBpZiBhIHJlZ2lzdHJhdGlvbiB3YXMgcmVhbGx5IGZvdW5kLgoKY29tbWl0IDViNzJhNDA4NTM4NzZhMTg2ZWZjYzAwOTBhNGUzMmMyMzViOWMwNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjowMzo1OCAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCB3aGVuIGRpZmZsZW4gaXMgU01VWF9NQVhfUFJJT1JJVFkgKHdoaWNoIGlzIGhpZ2hseSB1bmxpa2VseSwgYnV0Li4uKQoKY29tbWl0IGZhNmE5MTJlNDFjNWQwZmQyYTYzNjg5NGU4NmI2NDI2YzA3Mzc1YWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNTozNzo0NCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3NpbmcgdmFsdWUgaW4gc2V0RXZlbnQuCgpjb21taXQgNDEwYjcxZGE0MjUzODlmZWNjMjVkMTRmNDlmMjM3NTM1ODE1NzZhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjI4OjQxIDIwMTIgKzAxMDAKCiAgICBEZXJlZmVyZW5jZSBlcmVnIG9ubHkgaWYgaXQgaXMgbm90IE5VTEwuCgpjb21taXQgMTg1MjcyZDFhMGI5MTM3NzQxODZmMWI5MTM1YWVhZjYzN2ViZWQ1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjE3OjIxIDIwMTIgKzAxMDAKCiAgICBBcyBwZXIgYWJvdmUgY29kZSwgdGVtcGxhdGVfdjJwZHUgY2FuIGJlIE5VTEwsIHNvIGNoZWNrIGl0IGJlZm9yZSBkZXJlZmVyZW5jaW5nLgoKY29tbWl0IDQ4ZTVlYWQzZmQyYzJiMzg1ZGY2OTcyYzY3NTI2ZmY2YmRjMzA3NjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDo0MjoyMiAyMDEyICswMTAwCgogICAgVXBkYXRlZCBsYXN0IGZpeCB0byBuZXcgZXJyb3IgcmVwb3J0aW5nIHN0eWxlLgoKY29tbWl0IGYzM2QzMzYxNWQ2ZDg1ZDAwNzM3MjY0NzNjNDE0NmNiY2RmMTFjZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDozMDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgc2lnc2VndiB3aGVuIGVtcHR5IGNvbmZpZyBsaW5lIGlzIHBhcnNlZC4KCmNvbW1pdCBiNWRmMWVlYjQ3ZWQzNTU5YjZmNGQ5ZWNjY2RiMjQyMTI2ZTZjOTkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MTE6NTggMjAxMiArMDEwMAoKICAgIEZpeGVkIChoaWdobHkgdGhlb3JldGljYWwpIHNpZ3NlZ3Ygd2hlbiBzcC0+c2VjdXJpdHlFbmdpbmVJRCBpcyBOVUxMLgoKY29tbWl0IDZmZWVkNjI5YTcxODk5YzExMzA5Njk1OWQ4NTQ5ZGMxMjAxZThmOWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzo0MzozNyAyMDEyICswMTAwCgogICAgQWRkZWQgTlVMTCBhbmQgbGVuIGNoZWNrIGp1c3QgaW4gY2FzZSBzb21lb25lIHByb3ZpZGVzIHZhbHVlID0gTlVMTCBhbmQgbm96ZXJvIGxlbiAoLT4gTlVMTCBpcyB0aGVuIGRlcmVmZXJlbmNlZCkuCgpjb21taXQgMzU1YzVhYjI2NGFmMmE2MDIwYTFkOGE5MjNmODBmMTFiOTQyMjk1ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjM2OjQxIDIwMTIgKzAxMDAKCiAgICBFeHRlbmQgdGhlIE5VTEwgY2hlY2ssIGkuZS4gcmV0dXJuIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVtb3ZlLgoKY29tbWl0IGRkZDc5NDhhY2FkOTM4Y2Q0Mjk3NDUwNWRkY2E0ZjAzNzIxMTY3MDkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDExOjExOjI5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgc3BhcnRhJ3MgY29weXJpZ2h0Cgpjb21taXQgNDEyNTYwODZhN2E1MDQxNDUzNDE5Y2ZkNmU1NjJjN2I1NWM1NmIwYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MzI6MDQgMjAxMiAtMDgwMAoKICAgIHB1bGxlZCBmdWxsIGNvcHkgb2YgZXh0cmFjdG5ld3MgZnJvbSBtYXN0ZXIKCmNvbW1pdCA2MjVhNzBkYmRmZDk5MDJkYTc5ZWZhMjkzZmU2ZDJhYzhjY2YyYjJlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDoyNDoxOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHRvIGNoYW5nZSB0byB0aGUgbmV3ZXIgbG9nIGdlbmVyYXRpbmcvcGFyc2luZwoKY29tbWl0IDYyZTMyYjEzMDg5YjI5ZWRjZjI3NmY2MTVkYTY3ZTQ1MDhmZTdiYjUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDA5OjI5OjQyIDIwMTIgLTA4MDAKCiAgICBjb25mbGljdGluZyBtZXJnZSBmcm9tIG1hc3RlciBmb3IgZXh0cmFjdG5ld3MKCmNvbW1pdCA3MDA4NGRhNjFkMmJjYmQyY2YxZWQ4MWJkYzNiZjY3OTRjMmFmZmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAxMyAxMTo0OToxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1TQ0hFRFVMRVItTUlCOiBIYW5kbGUgMzItY2hhcmFjdGVyIHNjaGVkQ29udGV4dE5hbWUgdmFsdWVzIGNvcnJlY3RseS4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCgpjb21taXQgMDRiZjNlMjg4MTU4ZWU4ODBlZGYyMzdlNDAwN2ZlZTM3ZDIwNDRkZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjM5OjM3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiBTU0xfcmVhZCByZXR1cm5zIGVycm9yLgoKY29tbWl0IGMxNTI2ZmNjYzA0NzRjMWRiMThjYWE5ZGJiODMzODUzY2RkZGUzY2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMzoyMSAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGEyN2FhMTlkZjI4MzE1NmMwMzJjODFlYWVlNWUxMTU4NTlkMzhjMTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMTozMiAyMDEyICswMTAwCgogICAgRG9uJ3QgcmVwbGFjZSAncmMnIHZhcmlhYmxlLCBpdCdzIHZhbHVlIGlzIG5lZWRlZCBvdXRzaWRlIHRoZSBsb29wLgoKY29tbWl0IDk4NWRmZjJiMDg3NmQ5NDgzYzQxNGZjY2VhM2VmNmJjNjNlMTQ1NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMTozMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyZmQ3ODE4MzE4ZTdhNWRmZTk4ZjUyY2NmNzUwYzJhNjNlODI1ZGVkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDA6MjIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMTVmMjExMzBiYTMzZGM5YWZkMTY0ZTUyZGZkNzRjOWNlYzBlOTIzMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjU4OjE0IDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJhOGE4ZjJhYjdjZDc1ODI2YzVkNDFlYzNjZmQ1Y2UzZTk2MzRjZjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDozOToyOCAyMDEyICswMTAwCgogICAgcmVtb3ZlIGRlYWQgY29kZSwgJ2NwJyBpcyBhbHdheXMgIT0gTlVMTCBoZXJlLgoKY29tbWl0IDM4ZmQ2Mzc4Y2MzMjc1MTgwZjYzYjhkOWI5YTQwNzJiM2RhYmY4ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDoyNTowNiAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGViZDkyZTE5YjEwYzBhMzhlMTdjZGU0MDc4NjRiNDVjMjZlMTczMjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDowNzo0MyAyMDEyICswMTAwCgogICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiAodmFsdWUpIGNoZWNrIC0gdmFsdWUgaXMgY2hlY2tlZCBmZXcgbGluZXMgYmVmb3JlLgoKY29tbWl0IGM1Y2FjZjVjYWY5NzlkMDE4ZWE2Y2FlMWMwM2I4ZmRmMGIxMThkZmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0NDo0MyAyMDEyICswMTAwCgogICAgUHJldmVudCBkb3VibGUgZnJlZSgpLCAnZGlybmFtZScgaXMgYWxyZWFkeSBmcmVlZCBpbnNpZGUgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIGlmIGl0IGZhaWxzLgoKY29tbWl0IGFjZGNlYjUwZWE2NmQ2YjMyM2M3NGVlMDIxZmI3N2U4MTBlNGU3YWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0MzoxOSAyMDEyICswMTAwCgogICAgUHJldmVudCBtZW1vcnkgbGVhayB3aGVuIG1hbGxvYyBmYWlscy4KCmNvbW1pdCAxNzA1M2UzNGNmZTlhOGFiMzk1ZmI1MGY1YzNmMWRhZmM3MjQ3YWViCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6MzI6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRvdWJsZSBmY2xvc2UoKS4KICAgIExpbnV4IG1hbiBwYWdlIGZvciBmY2xvc2UoMykgc2F5czogSW4gZWl0aGVyIGNhc2UgYW55IGZ1cnRoZXIgYWNjZXNzIChpbmNsdWRpbmcgYW5vdGhlciBjYWxsIHRvIGZjbG9zZSgpKSB0byB0aGUgc3RyZWFtIHJlc3VsdHMgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoKY29tbWl0IGE2NjQxZWRiOWNiNzRmYzIyMzZiNDJjZTU1NTRmYzMzMjk5NTY1NTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjIyOjM0IDIwMTIgKzAxMDAKCiAgICBNaW5HVzogU2tpcCB0ZXN0IFQwNjUgaWYgbm90IHN0YXJ0ZWQgZnJvbSBpbnNpZGUgYW4gTVNZUyBzaGVsbAoKY29tbWl0IGE4ODNlZjE5ODJmMzAxYjE0ODVkMjI3MzAxNjc0OTI3MzMwZjViNjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToxNDo1MyAyMDEyICswMTAwCgogICAgTW92ZWQgZGVidWcgb3B1dHB1dCBiZWZvcmUgcmV0dXJuLgoKY29tbWl0IDQ1NzUxOTY3Mjg3ZDk3NjQwZWZkY2RmOGU3N2U4ZDQ5MDkzOWQ4ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE0OjE3OjE4IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cnRvdWxsKCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAyYzJmYTQ4MzM2YTRmMWYxNzdjMjk5MWQ2NTE1ZDI5ZjM5NTMzYzQ0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzo1MDo0NCAyMDEyICswMTAwCgogICAgQ29udmVydCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMDdjNjY2ZjZjZWEyN2YyYjJhYjliYzA4YWVkMGNiNjEzM2ZlMzc1OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjE3OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMToKICAgIEZpZGV4IGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgM2I2ODY1NjYyOTZkZDg3YmM0MmI3ZjExNjlkYWFjZGIzYzQ1Y2M1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMTggMDY6MjU6NTYgMjAxMCArMDAwMAoKICAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYzYTdkMWIwOTYwOWRhZDY0OWY1OGJiZGI1YjdlMTBkMzliMzk4YzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDExOjA0OjA2IDIwMTAgKzAwMDAKCiAgICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmRlNzNiZDM2NWEzODFiOWMzNTNjYTUyMzA3NjllZWZiMWFjNzFlZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTE6NDI6NDIgMjAxMiArMDEwMAoKICAgIGxvY2FsL3Bhc3N0ZXN0OiBSZW1vdmUgYW4gaW5jb3JyZWN0IFBBVEg9IHN0YXRlbWVudAoKY29tbWl0IDY5OTUxM2YxMjM4ZTBhZGNlMWYxY2VjOThlMGQxNDcyOTNmYzUwNDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDA5OjI1OjUxIDIwMTAgKzAwMDAKCiAgICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDYzNThkZWU3MmZiMzQ3ZTI2MDBhMGE3YmQyMWYyMzI3MGQzYTAwZjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjU4OjE1IDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOiBBZGQgYSBjb21tZW50Cgpjb21taXQgNTM5NmJmZTAzMmM4Y2JjNzNjOGZmNWQ0YjA4NWViYWRhOWY1OTg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MzA6MTYgMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgZmViM2FmMjhkY2FlMjIwMTVhZTg2NWEyZTVkZDhjNDE2ZTk5OTFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MDI6MDggMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgYjdlMWFhMjU1YmFlNGEzNDUzZjllY2E2NDRhODc2NjM0MzUxZjExZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjAgMTk6MzY6MjggMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKiBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgIAlhcHBzL3NubXB0cmFwZC5jCiAgICAJc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYwogICAgCXNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAgCXNubXBsaWIvc3lzdGVtLmMKCmNvbW1pdCBmNDdhMzc1Mjg0OWRiMDc1ZTZmMjA1M2I4NTk1YjdiNzkyZmI2NDYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAxNSAxMDo1NjowOSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBCdWlsZHMgbm93IGNvcnJlY3RseSB3aXRoIGEgNjQtYml0IGNvbXBpbGVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwMmI2MDU2ZGY5NWRhOGI2NzMwMzRlMzljMmM3YzM4NmVkMGYzNjljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMTo0NDo1MyAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCBhMTk4NjU4MzJmYzc3ZjRjMDQ4MTQ0ZDkxYTQzMWIxZTk0ZDMyOWYyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMTQgMjM6MTI6MDUgMjAwOSArMDAwMAoKICAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc3OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjdhM2UyZWNjYjk1ZjljOWQwODA5ZWZjYmRkY2Q4NjZlZTMwNjJkNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxNDoyNzoxNSAyMDEwICswMDAwCgogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2RjZGUyZThhNTk1YTUyN2YwNjE0MmMzYjg1MmRlODQzM2ExY2YyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDI0IDE0OjI3OjU1IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IgTkVUU05NUF9SRU1PVkVfQ09OU1QKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzJlMTUyNWE4NWJkYTUyOTlhM2I5ZjI0MTYxNGY3ZTY1MDlhZWViYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMzozNToxMSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IDI5NWY0NzNjODM1NDYyMjFiMmE3MWQ4MTVjNjFlMzNhNjdmOThhZTM6IHJlZmluZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpIGltcGxlbWVudGF0aW9uLgoKY29tbWl0IGNiNDIzYjBhZTllZDAwNTlhYTEwMGRjNGUyZmQ5M2FkMWI5N2ZhZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTE6NTc6NTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBlMmZiMDllMDA5M2UyZjY0OGZlMjYzOGRhMmYzYWYxOGZkYjMyYmYwIC0gaW50cm9kdWNlIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9zbm1wX3BlcmwuYwogICAgCXNubXBsaWIvc25tcF9zZXJ2aWNlLmMKCmNvbW1pdCBhZmMzOTZhYjE2MThhODU5NWEyNTE5ZmJjMjVmN2E0OThlMTc0NDExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODo0OTozNCAyMDEyICswMTAwCgogICAgVW5icmVhayBuZXRzbm1wX21rdGVtcCgpIGFuZCBtYWtlX3RlbXAoKS4KICAgIAogICAgVGhlc2Ugd2VyZSBicm9rZW4gYnkgY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkuCiAgICBBbHNvIHJlcGxhY2UgYSBzdHJuY3B5KCkgY2FsbCBieSBhIGNhbGwgdG8gc3RybGNweSgpIGFuZCByZXBsYWNlIHRoZQogICAgbWFrZV90ZW1wZmlsZSgpIGltcGxlbWVudGF0aW9uIGJ5IGEgY2FsbCB0byBuZXRzbm1wX21rdGVtcCgpLgoKY29tbWl0IDIxMDE4NWMxNWQwZDY1ZjBlYTk4YjVlM2MyZTA3NzZmNjIyMmQxNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjI3OjQzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjcmFzaCBkdXJpbmcgc3RhcnR1cCBvZiBzbm1wZCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkLgogICAgCiAgICBBbHNvLCBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBjb3B5IG9mIHRoZSBjbGVhbnVwIGNvZGUgaW4gZnVuY3Rpb24KICAgIG1rZGlyaGllcigpLgoKY29tbWl0IDhiYjRlODZhYmNmOThmZjI4NzQ4YWYwYWY4OWM5OGU2NGQ1Y2Q5NjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSmFuIDExIDA3OjQ3OjEyIDIwMTIgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBvbGRtYXNrIHZhcmlhYmxlLgoKY29tbWl0IDY2ODAxNDdiMTM4ZWMxMTRmODFjNWQxMjhhYzkzNTBjODQ1MGQwODEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDE4OjQ0OjMxIDIwMTIgKzAwMDAKCiAgICBNYWtlIHRlc3QgVDAxNWludDY0X2NsaWIgcGFzcyBvbiA2NC1iaXQgc3lzdGVtcwoKY29tbWl0IDNhYWQxNWFlNTYwYWM4NTdlNzNjOTA3NjRlOTAzZTdjYTAyYjMyOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTo0MDo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IGZvciBsYXJnZSBPSUQgbmFtZXMKCmNvbW1pdCBmYmExODhlZTgyMDEwYjJmMmQ4Y2EyZTQyNmJhNjU0NDk5YWIzZDBhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MzE6MzMgMjAxMiArMDEwMAoKICAgIGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX2NvbmNhdF9vaWRfc3RyCgpjb21taXQgMjFkMjVkODZiOGU0OTA0ZDc5OGRjOGM5NmRhZGU5ZTUwNDg0NTdhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjI2OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIHBvcnQgbnVtYmVycy4KCmNvbW1pdCBkMzY5MzE4NDFiMmZjMmNlYmM2MzY0YjI5NDkxMjlhMGFkNDJhZDFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDU6NTEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgU3VtRmlsZSBpcyB1c2VkLgoKY29tbWl0IDBlZmRkMDIyZGEwOWFmMWI1ZTE2MTcxZmE3YTJiNTIzYzVkNmVjNTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowMTo1MyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDU2MGJjNmMwOWI3NTE1NTZlZmQ2YjRjNDQ5NTc1MWIxMDlhOTNmOTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1OToyNCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgODI5MWQ3YzViOTJhMzFkZDRmNTgyYjQ5N2Q0YjJhMDg1MzM2N2E1NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU1OjE2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCgpjb21taXQgODhlMWYzNGRlNzMwMDU3NWZhNmRhYjg1N2VjZGRiMjQyYTg3ZGU4MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ4OjU1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYmUxMzc1YTk5MjZlYmUwY2Q1Yjc4YTQwNDVjM2JkMTFjODM2NjRiMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIHNlbnNvciBuYW1lIGlzIHRvbyBsb25nLgoKY29tbWl0IDFjYjI0NjI1MzcyMDYyYjE0YzcxZDdkZDUxZTIwZmVmNzczZTI3NDMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0MTowMCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBDUFUgaGFzIHRvbyBsb25nIG5hbWUuCgpjb21taXQgODRjODA3ZWUwMzI1MWU1NDg1NmU4M2Q2MmQwNmVhMDhiOGRmNTI3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjM2OjUwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYzMxMGUzOTBiNWRkMDVmMjRiZTdlYjE5MDRjNzRlNDEyNTljOTNkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjI0OjU0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNDYwMGQxMTQzNGU4M2I4NjUzY2Y5ZjgxM2EzZDhiNjMwNDU1YjQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjE3OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBwbGF1c2libGUgc3RyaW5nIG92ZXJmbG93IGJlZm9yZSBwYXJzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxMTowMiAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiAoaW5zZWN1cmUpIFNOTVBfTUFYUEFUSCBpbiBta2RpcmhpZXIoKQoKY29tbWl0IDgwMTY4OTBhNDQ1ZjZhN2UyYTg3M2EwNDg3M2Q0ZTI3YjZlZTY0ZTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzo0ODozNCAyMDEyICswMTAwCgogICAgRml4ZWQgd3JvbmcgaW50ZWdlciBzaXplIG9uIDY0IGJpdCBwbGF0Zm9ybS4KCmNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MzE6MzYgMjAxMiArMDEwMAoKICAgIFNlY3VyZSBta3N0ZW1wKCkgd2l0aCB1bWFzaygpIC0gb24gc29tZSBpbXBsZW1lbnRhdGlvbnMgaXQgZG9lcyBub3Qgc2V0IDA2MDAgcGVybWlzc2lvbnMgYXV0b21hdGljYWxseS4KCmNvbW1pdCAyMDI1MjNjYTcwNGJkNzIyZGMxYWMwZTFlNmIwZTRiNGU1NDI0NDk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MTE6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgJ2MnIGJlZm9yZSBOVUxMIGNoZWNrLgoKY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzowODoyNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAyZjRlNmFjZDcxNDE4M2YwMTViNzYzNjU3ZjhmMDg0NTkzMzU3ZTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMDozODoxNiAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlIHBlcmwvKi55bWwgZmlsZXMKCmNvbW1pdCBjMzY1ZDgwYzE2YzJkMTdiMTYwMDExZThjMWY5Y2I5NTg5NTRlOWRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAwODozNDoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlIHRoYXQgZmFpbHMgaWYgU0lHVEVSTSBpcyByZWNlaXZlZCB3aGlsZSBhIFBlcmwgaGFuZGxlciBpcyBhY3RpdmUuIEJhc2VkIG9uIGEgcGF0Y2ggcG9zdGVkIGJ5IEpvZWwgQXZuaSA8amF2bmlAYXJ1YmFuZXR3b3Jrcy5jb20+Cgpjb21taXQgZDA1OWZiODc4YjE0MzY1OTk5NTNjZWE1YTA3NzQ5OWRkY2RjYmNiNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNzowMzo1NSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KCmNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI2OjE3IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKCmNvbW1pdCBlMzI1ZWNiZmNlNzdmMDBhYzVjZjZmYmQ5NTdmOTU0OTVmNjFjNTliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI1OjEwIDIwMTIgKzAxMDAKCiAgICBTdXBwcmVzcyB1bmludGVyZXN0aW5nIERveHlnZW4gd2FybmluZ3MKCmNvbW1pdCBiZTkxNjFkM2E1ODk4ZTg2Mzc2N2Y5MjY2MTM0ODYxMjZjMmNiZjY3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjM1OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIDY0LWJpdCBudW1iZXJzLgoKY29tbWl0IDg2ZTRjMmJlMDg1MmEwYTEzYjA2MDMwNzU3MjBiMzI2NGVjNzBkZGUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6Mjk6MTEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgaXQgZXhwbGljaXQgdGhhdCBNQVhfU1VCSUQgaXMgYW4gdW5zaWduZWQgY29uc3RhbnQKCmNvbW1pdCAzN2UyNzJkOGY3YjcxODBiYTE0MGZhMzg2YTVmZjA1ODk2OGEwOGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE4OjIxOjQ4IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSUYtTUlCOjppZlR5cGU6IFJlcG9ydCB0eXBlICJpbmZpbmliYW5kICgxOTkpIiBmb3IgSW5maW5pQmFuZCBpbnRlcmZhY2VzIGluc3RlYWQgb2YgdHlwZSAib3RoZXIgKDEpIi4KCmNvbW1pdCAyNjk5MzJmYTMyYzdjZDQ3OTU3NDg5Njk4ZTA5YmVlMzFmNjNiN2FmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMGQxYzIxZjk5OTFkMTMwOWQwNTdlM2U0MDU2ZDU0N2RmN2Q0MGVjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCgogICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KCmNvbW1pdCAwYzNkNGRiYjBhOWNmNWIzNTlmNzBiMmYxOTkxNTQ5NTU1NGY4NDBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAoKY29tbWl0IDg5M2VjYzk3YjU4NzY2MTA0NWJlY2JlMDlhMzIwYzFiY2JjNzFjN2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCgpjb21taXQgM2QxMjY0MjJlNjI1NzAyYjlkM2ZhMDY3NmE5N2VjNWNiMjBkOWQxMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCgogICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCgpjb21taXQgYWY1M2I3NmMyZmZhNzUxZTM5NThkMGZjNWQ4Mjc5Zjc4YzJjMWMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCgogICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKCmNvbW1pdCAzNWE5MmU2OTNkMTMzYTViMTFlOWU5YjU5OWRiZjQ3ZWRlZjQ5MzNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQoKY29tbWl0IGE5YjA3M2VhM2I2Y2VkZjcxM2UzMDVlN2IxNWYyOGFlNTdiZmRmMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAoKICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA3ZTg5MGRhZDk1ZjU2NjA2OWVlMjgwMjE1YTRmZWEzZjBlMmUzOTgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKCiAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCgpjb21taXQgMWY2MjAwY2ZlMWIwYjI3ZWJiMDkzYTE2MDZiNTkyZjllOTY4NGJlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42Cgpjb21taXQgYzMxMjZiMTQzOTIxZmFiZWFjNDQyMTY2ZWNhNWI1Yjc0MmZkNDJjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCgogICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKCmNvbW1pdCBiMjRlZTdjOTA5NjU3ZGI0M2JkOGM1ZDhjMDEwNTVjYTA4ODNjOWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKCiAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscwogICAgCiAgICBVc2luZyBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBpcyBlcnJvciBwcm9uZSAtLSBzZWUgYWxzbwogICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCiAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKICAgIHN0cm5jcHkoZHN0LCBzcmMsIG4pIGNhbGxzIGJ5OgogICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCiAgICAgICAgbm90ICdcMCctdGVybWluYXRlZC4KICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCiAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCgpjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMToxOToxNiAyMDEyICswMTAwCgogICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCgpjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoxMyAyMDEyICswMTAwCgogICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KCmNvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjI5IDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTU6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQoKY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTc6MTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTY6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAoKY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTk6NTU6NTYgMjAxMiArMDAwMAoKICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKCmNvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjMzOjA5IDIwMTIgKzAwMDAKCiAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MTE6MjQgMjAxMiArMDEwMAoKICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKCmNvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMyAxOTowNzozNyAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCiAgICAoRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZSBwZXJsIHN1YmRpcmVjdG9yeS4gTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLikKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJcGVybC9BU04vQVNOLnhzCiAgICAJcGVybC9PSUQvT0lELnhzCiAgICAJcGVybC9TTk1QL1NOTVAueHMKICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCgpjb21taXQgZDIxMmRjOTg0ZWMzNGU0ZDIzMDYyNWU0NmU1OGIwYzYyOGE1MGRmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCgogICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgYmFjZWViYjEwZDhjYWY1ZGI2M2NjMzY5MzVmZWQ2NWVlOTMxMDI5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCgogICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQoKY29tbWl0IGY3Zjk2NmFiZDZkMjg0OWIxMzMxMjUyYWZlNWM0NzNlNWM0MGIzMmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgoKY29tbWl0IDMwM2MwMTViY2ZlOWFmMGIxNTRlOTg4MWM3YjRmNDQ5ZTA4ZjMwYmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CiAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKICAgIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAoKY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjE6NTk6MjAgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKICAgIChUcml2aWFsIHdhcm5pbmcgZml4ZXMsIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAgCWFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYwogICAgCWFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKICAgIAlhZ2VudC9zbm1wZC5jCiAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKCmNvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoyOTowOCAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvCgpjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6MTQ6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgoKY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjQwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSAndG9rZW4nIGlzIHVzZWQuCgpjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6Mjg6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG9mZi1ieS1vbmUgbWVtc2V0LgoKY29tbWl0IDBmNTM2OTUwNDRkZDNmMGMzNTA3NzUzZTNmOGMyOWQ5N2U5Njg3MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDMgMjE6Mzg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFwcHMvc25tcHRscy5jCiAgICAJYXBwcy9zbm1wdHJhcGRfbG9nLmMKICAgIAlzbm1wbGliL2Rpcl91dGlscy5jCiAgICAJc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAJc25tcGxpYi9zbm1wX29wZW5zc2wuYwogICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKCmNvbW1pdCAwMTUzODA1Yzk5YjkxOTczNjU5MzVjNWQxMWFlOWMzZDRiZmFhMGYzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQ4OjQxIDIwMTIgKzAxMDAKCiAgICBGaXggYSBzZXQtYnV0LW5vdC11c2VkIHdhcm5pbmcKCmNvbW1pdCAzZjg4ODVmYmVlOTQwNzc0OGZjMmYwNTczNzI4YTExYmEyYmMwMjNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMjggMDU6NTE6MTMgMjAwOSArMDAwMAoKICAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzIGxvY2F0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3NTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIxZWFhZjMwMjM2OWZkNDU1MmU4ZmVlN2I2YTgwNTA5MWVjMGE5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmaW5kX3NlY19tb2QoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgYWVlNGU4OTVmZTNiZDVmNGE2MWUzNDI3NWJmY2EwMzY4YjU2MDU1NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIHNubXBfc2Vzc190cmFuc3BvcnQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgNWQxZDBhNzQ0YWIzMGM4ZTY0NWMzYjg1MDZjYmJkMmNjZWIzZDI3NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDI5OWVhOWE4OWMzZjE3NThhNzc0OGJiOWIzNDExZjYyZjJjNzBmODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KCmNvbW1pdCA5MGYxYWU2NzU3OTE3NDgxNjM2ZWVmNzcxMDBjYWVlYjUzZWRmZTAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCgpjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAoKICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgMTk5YTA1MTFmNmViMGVmM2ZmMWQ5ZjkyMmI3OTBhYjY3ZGZkZTAxZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQoKY29tbWl0IGQ4ODM1NzNhYTczZTBmNWZjMTg4YWNlZGVlNjQ1MWY5NWRhZTkwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCA3YjdhM2ViMjUwMDUyN2VhYTE2OTkyODdhNmNhNmZjYzRjYzJlMDhhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgMmI2YzExOWZlZDQ4NDhkYTY2NjNjMTFmMGMyY2JkYzI5OTIxYjVjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCgpjb21taXQgNmNlNTM2MGNhYTRjOWRlNTFhZGU1Nzg3OWU4M2Y5NmJkMDRiNGM1YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCgpjb21taXQgYjNiYzU0YmVkMzE2OTBhODVkZjJhY2ZiZjMyOTZkYTkzYTllODliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAoKICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KCmNvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToxODoyNiAyMDEyICswMTAwCgogICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KCmNvbW1pdCA2NjY1ZDVmZTJmYzU2OWQ2ZmE4NTRkMWQ3OGUzNDdiYmFjNjllMDcwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMjoyMiAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNjoxMSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCiAgICBBbHNvIGFkZGVkIGEgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAoKICAgIEFkZGVkIG1pc3NpbmcgYnJlYWsKCmNvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCgogICAgRml4ZWQgUVVJVEZVTiB1c2FnZS4KCmNvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgZm9yIGZhaWxlZCByZWdpc3Rlcl9taWIuCgpjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAoKICAgIE1ha2UgTUlCIGZpbGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG1vcmUgc3RyaWN0IC0gTEFCRUwgaXMgcmVxdWlyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBNSUIgZmlsZXMuCgpjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCgogICAgQXNzdW1lIHRoYXQgbGliZGwgbWlnaHQgYmUgaW4gQUdFTlRMSUJTIG9yIFNOTVBMSUJTIHNvIHByZWFkZCB0aGVtLgoKY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAoKICAgIERvIG5vdCByZXF1aXJlIHVjZC1zbm1wL2RsbW9kIHVubGVzcyBpdCB3aWxsIHdvcmsuCgpjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAoKICAgIEFkanVzdCBwYXRocyBmb3IgdGVzdCByZXN0cnVjdHVyZQoKY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGxtb2QgbW9kdWxlIGZhaWwgcmF0aGVyIHRoYW4gZ2VuZXJhdGUgYSBkdW1teSBtb2R1bGUgaWYgdGhlIGRsb3BlbiBmdW5jdGlvbiBpc24ndCBhdmFpbGFibGUuCgpjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAoKICAgIEFkanVzdCB0aGUgcGF0aHMgdG8gc3VwcG9ydCB0ZXN0aW5nIGV2ZW4gaWYgYnVpbGRkaXIgIT0gc3JjZGlyCgpjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlcyAncCcgYW5kICdsZW4nLgoKY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCgogICAgUmVwb3J0IHByb2JsZW1zIHdpdGggU2V0VW5kbyBwcm9jZXNzaW5nCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAoKY29tbWl0IGViMmFiMjM3NDJjYTg2YzBiODljY2ZlOTFlYjZlYTM3NGJmM2FjYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCgogICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAoKY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxMjo1OTo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCgpjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE3OjE1OjE2IDIwMTEgKzAwMDAKCiAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KCmNvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTY6NTM6MjQgMjAxMSArMDAwMAoKICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjU4OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDQwOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBBZ2VudFggZXJyb3JzCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGZlNThhMGU1ZjRkNGUyZTJlY2JjYjQ3MzgyYjA4Y2IxZTRkZjM1MmMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MDQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucwogICAgKGluIGxpbmUgd2l0aCBjb25uZWN0aW9ucykgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBhbnkgR0VUTkVYVCByZXF1ZXN0IE9JRCwgbm90IGp1c3QgYSBzaW1wbGUgd2Fsay4KCmNvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHBhc3M6IFBBVENIRVM6IDM0OTM5NDogQnJpbmcgcGFzc19wZXJzaXN0dGVzdCBzY3JpcHQgaW50byBsaW5lIHdpdGggcGFzc3Rlc3QqCiAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNjo1NDozOCAyMDExICswMDAwCgogICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCiAgICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4gIEJhY2twb3J0IG9mIFNWTgogICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCiAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKCmNvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6NDU6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcwogICAgUGF0Y2ggc3VwcGxpZWQgYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKCmNvbW1pdCBiYTRhOWNlNTFjOTYwMGY5ZmRhMTY4ZjFlNmVmZjMyYTFkYjYzY2I5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAoKICAgIFR3ZWFrIC0tZGlzYWJsZS1zbm1wLXNldCBjaGFuZ2VzCgpjb21taXQgODI3YzhiMjg4MzAxNzFmYWE5YzYxZDUzZWZjYTllYjY2MDA1NjFjMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDM0MzM4NDY6IEZpeCBmb3IgdXNlIHdpdGggcHl0aG9uIDIuNAoKY29tbWl0IGY5OGE1NGE5OWNhZjdiNDZiMTAwYTkyMGRiOTQyY2JjYTljNDM5MjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMDoxMDozNiAyMDExICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgMjMwZGYxNGY5NGMzNzM2ZmYzNDM3OWE0ZTI4MWVlYTM1M2I0N2Y4MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBEZWMgMjYgMjM6MzQ6MjMgMjAxMSArMDEwMAoKICAgIERvIG5vdCBhc3NpZ24gdG1TdGF0ZVJlZiB0d2ljZQoKY29tbWl0IGM5NmIzYjRkODUzMGFkNWUwZWZiMDNmMjRkYWI1ZTVmMWE0NjAwMzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE4OjIxIDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IHVzZS1hZnRlci1mcmVlLgoKY29tbWl0IGM1OTc4Yzg5Y2RlMjQ0MGY0ZDIwZGFkYmM5ZDFkZDhkYjU2MmQ1NmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE1OjQ0IDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IGRvdWJsZS1mcmVlLgogICAgCiAgICBuZXRzbm1wX3Rsc3RtQWRkcl9hZGQgdGFrZXMgb3duZXJzaGlwIG9mIGl0J3MgYXJndW1lbnQgc28gY2FsbGluZyBmcmVlIG9uIHRoZQogICAgYXJndW1lbnQgb24gZmFpbHVyZSBpcyBpbmNvcnJlY3QuCgpjb21taXQgYzEzOWNhMTIzYjQ0YmIzYjliNmJmOTIxZTE2MDljYzQ1ZjYzYTY2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjU1OjMwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDU5OiBGaXggc3BhcnNlbHkgYXVnbWVudGluZyB0cmlnZ2VyIHRhYmxlcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNGFlMDIxYjJlNjM4NDQzNzA4MWM1NjIzZjM2MGM4ODk2MzkwMTg4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjk6NTQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgQmFzZWQgb24gbWliMmMgcGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNmFjY2Y4YzY2MjU0ZmE4YzQ4NzY3ZWQ3ZGVjNzk1ZGRhZmM1MjJlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjc6MTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBhNjE4MjZhZDhjYTU0NjYxZDFkOTA5NzEyNTAzYmQzYThiMzJlZWQwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAyMiAxODozNTo0NiAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgIAogICAgbXlNYXRjaCBpcyB1bnVzZWQgYXMgbm1hdGNoIGlzIHplcm8gYW5kIGFsc28gc2luY2UgcmVnZXhCdWZmZXIgaXMgY3JlYXRlZAogICAgd2l0aCBSRUdfTk9TVUIgc2V0LgoKY29tbWl0IGJhNGZjODBmZTJjZmQ1YTVkODkyMzBkOGYzNzAzZTRmZTAxZTYwMTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyMiAxOToyNDo0MCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MDIzNzY6IGZyb20gTGVvbmFyZG8gQ2hpcXVpdHRvOiBSZWNvZ25pc2UgUmVpc2VyRlMKICAgIEFsc28gbW92ZSB2YXJpb3VzIEZTVHlwZSBkZWZpbml0aW9ucyB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2tzCgpjb21taXQgYjVhYzRhMDRkY2Q1NDcwZDA4ZDAzMzIxYWJjZDFlOTgyNjIxZTZlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgMmIzN2U0ZThmMjUwYTBkODgyMTE5OWE3NGFjM2Y0ZTViN2I3YmFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMxOjUxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgM2QwODM0NTE1NmM0MTkzMzNkZTk2OWYxM2QyMWZjZWM3ZTE4ZTk0ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMyOjI5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgY2Q4NTlhZDUxYzRmMThkNWIwZmM2OWRkNjY5ZmNiMDUxYzc5ODk2OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBtZW1tb3ZlIHNpemUKCmNvbW1pdCAzMGZmNThkMDlkNGM5ZDU0MzhiYjYyMTA1NGZkN2FkN2EyYTU5N2U0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MDc6MTkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIGxlbmd0aCBvZiBidWZmZXIgd2hlbiBwcmludGluZyBBU05fQklUX1NUUgoKY29tbWl0IDZjMTQ4N2UxZDM2MGQzZDI2MGEzOWNiMWY1YjE1ZGE5NzgzOTUwNTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NzozNCAyMDExICswMTAwCgogICAgRml4ZWQgcG90ZW50aWFsIGZyZWUgb2YgdW5pbml0aWFsaXplZCBwb2ludGVyIGluIGVycm9yIGNhc2VzCgpjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ0OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bml0aWFsaXplZCB2YWx1ZXMgaW4gdWRwVGFibGUKCmNvbW1pdCBjNDQ2MDg2NzliODk3NTExNzZmMjhhMmU1NGQ1MjgyYjQ2ZTJhMDVjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NTY6MTMgMjAxMSArMDEwMAoKICAgIFVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgYW5kIG1hbnVhbCBjbGVhcmluZwoKY29tbWl0IGEwNWM1Zjk1MTM0NjE4MjRlNzkwM2FlOWFlOWE2YzMzODZlMzM4NzkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo0MDo1MCAyMDExICswMTAwCgogICAgRml4ZWQgcHJpbnRpbmcgb2YgdW5pdGlhbGl6ZWQgdmFyaWFibGUgd2hlbiBzZW5zb3JzX2dldF9sYWJlbCgpIGZhaWxzCgpjb21taXQgZTRhNWVkYzcyMzkzYmQzZGU5YmYxMmJjZWJhOWQ4M2JiZjdkZTcwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjMxOjI1IDIwMTEgKzAxMDAKCiAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGZhZTJlNWI4MzViOGRmMWVhZTQ3ZTRjZWJiNGViNDA0ZDcyODIzNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMToyMSAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bml0aWFsaXplZCBpaWQgaW4gZXJyb3IgY2FzZXMgYW5kIHdpdGggZGVidWcgaW5mbyBlbmFibGVkLgoKY29tbWl0IDlkNThmODFhOTIzOWNmYmNmYzhlYmNlMzY3ZDIxZTliM2RjYjAyOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMzozMyAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBpbiBlcnJvciBjYXNlcwoKY29tbWl0IDBiYzhjMDhlZGVhZTdhZTA5NWYxMTYyNThjMjBhZTU3NjdkNjA2NTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzoyMDo1MiAyMDExICswMTAwCgogICAgRml4ZWQgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgJ3N0YXR1cycgd2hlbiBzcyA9PSBOVUxMCgpjb21taXQgNzMwNGM1M2NmOGFkZWU4ZWNjZWYxYThmMjY3NTZmYzA3ZjA5ODcyMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTggMjM6MzE6NTMgMjAxMSArMDEwMAoKICAgIE9uIHNvbGFyaXMgMTAgdGVzdCBpbiAvYmluL3NoIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLWUgdGVzdC4gUmVwbGFjZSBpdCB3aXRoIC1mCgpjb21taXQgOGNkM2JlNjBkNjkzYzljMzZmZmI5N2QzZDliY2I0OWMxYjRhYmUzNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMTcgMDg6NTI6MjQgMjAxMSArMDEwMAoKICAgIEF2b2lkIHJlcGV0aXRpb24gb2YgdGhlIGNvbXBsZXggZXhwcmVzc2lvbiBkZXRlcm1pbmluZyBpZiBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCiAgICAKICAgIFRoaXMgYWxzbyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBwbGF0Zm9ybXMgbGlrZSBTb2xhcmlzIDEwIHRoYXQgZGVmaW5lCiAgICBJUF9SRUNWRFNUQUREUiBidXQgbGFjayBlaXRoZXIgb2YgbXNnaGRyLm1zZ19jb250cm9sIGFuZCBtc2doZHIubXNnX2ZsYWdzLgoKY29tbWl0IDk1M2YyZTNkNDI1ZWRlM2I4NjNhMmU3Y2NiMGI0YmM4NjI5MjhiNTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDUgMjI6MTM6MDcgMjAxMSArMDEwMAoKICAgIE1vdmUgdGhlIHVzZSBvZiBfc2VuZHRvIGFuZCBfcmVjdmZyb20gYmVsb3cgdGhlaXIgZGVmaW5pdGlvbnMuCgpjb21taXQgNjhhMTE3M2M0NmNmNzc2MDE0MjZjZjM5MWQ5YTg1Mjc5NGYyMDU3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjAgMjA6MDU6MTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIG91dCB0aGUgY21lc2cgYnVmZmVyIHNpemUKCmNvbW1pdCA0NjFkZDE2ZjNiMjY0NzMyMmNkY2U2MzYzMDgxY2M0NGJhNWE0OWI1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAyNiAyMTo1MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KCmNvbW1pdCA3YWNjYjY5YmFhMWZjMGI2YTM0MzlkMmU1NDljODZkYTM0NTNiYWQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTozMDozMSAyMDExICswMTAwCgogICAgVXNlIGEgYmFyZSBzdHJ1Y3QgaW92ZWMgaW4gaW5zdGVhZCBvZiBhIG9uZSBlbGVtZW50IGFycmF5LgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGNoYW5nZSBpcyB0byBtYWtlIF9yZWN2ZnJvbSBtb3JlIHNpbWlsYXIgdG8gX3NlbmR0by4KCmNvbW1pdCAzOTg1MmNkNGM4NWVmMmJmYzc1Y2RlYTI4MjUyNjFlZTkzZTc2OGMyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyOToyMCAyMDExICswMTAwCgogICAgQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB0aGUgcHVycG9zZSBvZiB0aGUgY2FsbCB0byBnZXRzb2NrbmFtZSBhZnRlciBhbG1vc3QgcmVtb3ZpbmcgaXQuCgpjb21taXQgMWIyOTJjYTI3ZWFiNWNhYTczZmVhYWE4M2RjOWMxMmFiYzBmMmU3MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjc6NTkgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZS4KCmNvbW1pdCBiYzg3OTU3MWVjYTk1MjBiYzEzMmY4NDBjM2U2NTlkMzc5MzE0NGQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNTozNiAyMDExICswMTAwCgogICAgSW50cm9kdWNlIHRlbXBvcmFyeSB2YXJpYWJsZXMgdG8gZWFzZSB0aGUgZXh0cmFjdGlvbiBvZiB0aGUgc2VydmVyIGFkZHJlc3MuCgpjb21taXQgYjdlZWE2Y2ZmYmQ4NzI5MzJjZTJjMDRmZWZiNmY0M2RlMzM5ZjM3NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTg6MzMgMjAxMSArMDEwMAoKICAgIFJlbmFtZSB0aGUgY21lc2dwdHIgdmFyaWFibGUgdG8gY20uCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgoKY29tbWl0IDBhNzQ2MWU3Mjg4MDVjNjJhMWNhYjlkODdiZmM3NGM3OTI3YTlmY2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE1OjIyIDIwMTEgKzAxMDAKCiAgICBGYWN0b3Igb3V0IGEgY29tbW9uIGxvb3AgaW4gcmVjdm1zZyBvcHRpb24gcHJvY2Vzc2luZy4KCmNvbW1pdCBiM2M2MjQ4ZDAyMDFhYjE2MTA4NDBkNmQwZTc0OWIzYjZjNGFkNzkyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxMzo0MyAyMDExICswMTAwCgogICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiBMaW51eCBhbmQgQlNEIHJlY3Ztc2cgb3B0aW9uIHBhcnNpbmcgc29tZXdoYXQuCgpjb21taXQgMzU2NDAwZDYyOTBhNDIzYjUyZWJlZWE1YTVlOTc2ZmIxNWJiNzNiNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MDQ6NTYgMjAxMSArMDEwMAoKICAgIFVzZSBDTVNHX0RBVEEgb24gdGhlIHJlc3VsdCBvZiBDTVNHX0ZJUlNUL05FWFRIRFIsIG5vdCBvbiB0aGUgYnVmZmVyLgoKY29tbWl0IDNiMzUxNzA4YzYyZGU0NmFhMWI5MGVkMjMyY2ZkOGM3YzViMDIyMzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTI6MDA6MzIgMjAxMSArMDEwMAoKICAgIFJlbW92ZSBhIGNhc3QKCmNvbW1pdCBkZTkyNTBkOWRhZTk3MjdhNmNjN2Y2NDc2ODhkZGRmMWI4NTk3MTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDExOjU4OjA0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzcHJpbnRfbWliX29pZCgpIHRyZWF0IE9JRCBjb21wb25lbnRzIGFzIHVuc2lnbmVkIGluc3RlYWQgb2Ygc2lnbmVkIGludGVnZXJzCgpjb21taXQgMGUzM2IzYjZkNTg1NGE0YmFjMTVkNGVhNWUwMTZjNTNkMTYxZDBjZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMDowMjoyOCAyMDExICswMTAwCgogICAgRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA4OjM3OjIyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZwoKY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDk6MDk6NTkgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgM2RiOTc5NjJiMzdlYjEyZDI1NGQ2MWU2YmUyMzRiMDZhMzkxYzhiYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBEZWMgOCAwNzo0Mzo0NSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDM0NTM4Njg6IGZyb20gIkJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPiI6IEZhY3RvciBjb21tb24gY29kZSBpbnRvIHBhc3NfY29tbW9uCiAgICAKICAgIE1vdmUgdGhlIGNvZGUgZm9yIHBvcm1hdHRpbmcgYW5kIHByaW50aW5nIHZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdAogICAgaW50byBwYXNzX2NvbW1vbi4KCmNvbW1pdCBiNjU2OGM4M2YxNzU2ZTlhNjU0MzRlZGVlZWI0MGQyM2RkYmJiNjUyCkF1dGhvcjogY2NjaGl1IDxjY2NoaXVAc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgNyAxNjoyNToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDUyMDY5OiBGaXggc25tcHRyYXBfb2lkIGRlY2xhcmF0aW9uIGluIG1pYjJjIGdlbmVyYXRlZCBjb2RlCiAgICAKICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QgYXQgdGhlCiAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKICAgIDBlYzA4OGFmYTI3Y2ZkYTRlNmVhNzhhYWU3Y2ZjNTUwNzU2NGVkZGUpLgoKY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzg6MTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRWxpbWluYXRlIGFuIHVudXNlZCB2YXJpYWJsZSAoTm93KQoKY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzc6MTEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogTW92ZSB0aGUgbWFpbiBsb29wIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbgoKY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMDk6MzI6MTYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYXRjaCBlYWNoIGdldHB3bmFtKCkvZ2V0cHd1aWQoKSBjYWxsIHdpdGggYW4gZW5kcHdlbnQoKSBjYWxsIGFuZCBlYWNoIGdldGdyZW50KCkgY2FsbCB3aXRoIGFuIGVuZGdyZW50KCkgY2FsbC4KCmNvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjQxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDdmMDVkYWE4ZTBlMGY1MzNiMGYxMmEzZTFjZjA3NjQxNTE5OTA5ZDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTE6NTg6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0NDkzOTogQlVHOiAxNzk2ODg2OiBzbm1wbGliOiBBdm9pZCB0aGF0IHNwcmludF9yZWFsbG9jX29jdGV0X3N0cmluZygpIGVtYmVkcyB1bnByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgb3IgYmluYXJ5IHplcm9lcyBpbiBpdHMgb3V0cHV0LiBUaGlzIGJlaGF2aW9yIGNvdWxkIGNhdXNlIHRydW5jYXRlZCBvdXRwdXQgaW4gc25tcHRyYXBkLgoKY29tbWl0IGRiOGY1NThmZDJmM2I3YzEwOWVhM2ExYzIxMzNiNzViNmY4Y2IyYWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4OiBwYXNzIHVuc2lnbmVkIGNoYXJzIHRvIGlzcHJpbnQoKSBpbnN0ZWFkIG9mIHNpZ25lZCBjaGFycy4KCmNvbW1pdCA4MDBkYzEwMjhlN2UwY2Q4Y2MxNGQ4NGRkMzE3MjNkNDdhYzA3M2RiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjE4OjU4IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBoaW50IHZhcmlhYmxlCgpjb21taXQgODNlYTRhMDgwYzkwYTc0Yjk3NDNkM2YyNGNmMGQ0YjhhMWU4Yzg0OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjcgMjE6MTY6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIHFvcwoKY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA0OjAxIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgI2RlZmluZSB2YWwoeCkgX19TVFJJTkcoeCkgYW5kIGNoYW5nZSB2YWwoeCkgaW50byBfX1NUUklORyh4KS4KCmNvbW1pdCAyZjM3OWIwZTRlY2FkZmE0ZTU0MWUzMDA1YzhmYzgyODE4ODJiNzQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNTo1ODo0NyAyMDExICswMTAwCgogICAgRm9sbG93LXVwIGZvciBjb21taXQgMWFhNzA0ZTogdW5icmVhayB0aGUgTVNWQyBidWlsZAoKY29tbWl0IDY0ZWYwZjcxMTI3NjE3ODM3MDI3ZmIyY2ZhZjE3NGI5NWJhNzllMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjE5OjUwIDIwMTEgKzAxMDAKCiAgICBBZGQgU05NUDo6cmVnaXN0ZXJfZGVidWdfdG9rZW5zKCkKCmNvbW1pdCA3YmVhZDljYTkxN2M2NzU2NmQ1ZWQ5OGFiNTA3YmJjMDI4MTYyMTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowODowOCAyMDExICswMTAwCgogICAgQWdlbnRYIHN1YmFnZW50OiBSZWR1Y2UgY29kZSBkdXBsaWNhdGlvbgoKY29tbWl0IDBlZDcxNTQxZjg3ZTdkNzhiYzk5OGVlYmRhMzIxN2M1OWUxZGY4MzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAzOjE5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgRG94eWdlbi1zdHlsZSBmdW5jdGlvbiBoZWFkZXIgZm9yIG5ldHNubXBfcmVnaXN0ZXJfZGVmYXVsdF90YXJnZXQoKSBhbmQgbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpLgoKY29tbWl0IDhjMjk3MmI2MWU0MDE2OWI0N2M1MDk4OGI2YWU5ZThjMjg1Zjg0ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAyOjU0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBGaXggc3BlbGxpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFNOTVAgbW9kdWxlCgpjb21taXQgNWRmMmJhYzZiZDcxNzc5OTMxMWYwMDFhYzdiNzNkYjg4ZjExYmRkYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6NTk6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE9ubHkgdHJhbnNmb3JtIHRoZSBhZGRyZXNzIHRvIHByaW50YWJsZSBmb3JtIHdoZW4gbmVlZGVkLgoKY29tbWl0IDE3MWU4ZDQ4ZDRhZjA0MDEzY2ZmOGZkMjhmNTM0MWEyYWVmMjFkODgKQXV0aG9yOiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAxNjo0OTo0NiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcC1icmlkZ2UtbWliOiBGaXggaW5kZXggaW50ZXJwcmV0YXRpb24uCiAgICAKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSB3cm9uZyBkYXRhIGludGVycHJldGF0aW9uLgogICAgc25tcC1icmlkZ2UtbWliIG9idGFpbnMgdGhlIGlmaW5kZXggdmFsdWUgZnJvbSB0aGUgc3lzZnMKICAgIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcyBhdHRyaWJ1dGUKICAgIGlzIGFuIGludGVnZXIsIHdoaWNoIGlzIGhhbmRsZWQgYXMgaGV4IGFuZCBsZWFkcyB0bwogICAgaW5jb3JyZWN0IGRhdGEgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgogICAgCiAgICBlLmcuCiAgICAgICAgJCA+IHNubXB3YWxrIGxvY2FsaG9zdCBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yCiAgICAgICAgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMiA9IElOVEVHRVI6IDU0CiAgICAKICAgIGFjY29yZGluZyB0byB0aGUgc3lzZnMgYXR0cmlidXRlIHRoZSB2YWx1ZSBpcyAzNgogICAgCiAgICAgICAgJCA+IGNhdCAvc3lzL2NsYXNzL25ldC88ZGV2aWNlPi9pZmluZGV4CiAgICAgICAgMzYKICAgIAogICAgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgoKY29tbWl0IDgyZTM5ZmI2NzA2ZGY5MGVjZjJmYzllMTBhZGEyYjk2MmVlMTk2ZjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAyOSAxMjoyNzo0NiAyMDExICswMDAwCgogICAgRml4IG11bHRpLWxpbmUgY2FzZSB0ZXN0aW5nIG9mIGluY29taW5nIE9JRAoKY29tbWl0IGIxNWRhMWE0NTE2MDYxMTA1YTFlYWM3NDUwY2Y2NTBlYzQ0MjY2YjIKQXV0aG9yOiBOaWtvbGF5IERlbmV2IDxuZGVuZXZAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6Mjk6NDkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFJlc3RvcmUgSVBfUkVDVkRTVEFERFIgZnVuY3Rpb25hbGl0eS4KCmNvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiAyOCAwODo1MTozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIFNOTVBfQUxMT0NfVFlQRURFRiB0byBhbGxvY2F0ZSB0cmFuc3BvcnRzIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBzZXBhcmF0ZSBjYWxsIHRvIG1lbXNldC4KCmNvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNTowMjo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KCmNvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNDo1NTo0MiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMDE0Z2V0aG9zdGJ5YWRkcl9jbGliIHBhc3MKCmNvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAwOTo0NDozOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcy4KICAgIAogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcyBuZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQgdG8gcmVhZCBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2Ugb24gVW5peCBzeXN0ZW1zIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBzaHJpbmsgYmVoYXZpb3IgY29ycmVjdC4KCmNvbW1pdCAyM2RiMGNmMDliOGIwZWFiMzdiNzQ5ZWYwYzNjM2YzMDY5MDAyNDVjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAyMSAyMzowMjo1NyAyMDExICswMTAwCgogICAgRml4IGNhc3RpbmcgdHZfdXNlYyB0byBpbnQgd2hpY2ggbWF5IGJlIHRvbyBzaG9ydAoKY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjE0OjAyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kIHJlbmFtZSBpdCB0byBuZXRzbm1wX2ludGVybmFsX3Bhc3Nfc3RyX3RvX2Vycm5vCgpjb21taXQgMGJhYTkyOTZjMDcyYmIzNzM1NzYwYjBkZDk5MmYyZDFkM2NhMjdmYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MDU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY2llcyBvZiB1Y2Qtc25tcC9wYXNzIGFuZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKCmNvbW1pdCAxYWE3MDRlNGEyOTQ0MzBiMjhlMzliNmY5ZTQ2ODNiOGE0OGJjZTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwODozNToyMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZhY3RvciBvdXQgYXNjMmJpbiBhbmQgYmluMmFzYy4gQWRkIGEgbmV0c25tcF9pbnRlcm5hbF8gcHJlZml4IHRvIHRoZW0KCmNvbW1pdCBjZGE4ZmU5MTAxM2YxMmNiZjY0YTA3NzVhYmI1NTcyMDAzNWFmOTMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwMDo1NToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IENhbGwgc25tcF9vaWR0cmVlX2NvbXBhcmUgaW5zdGVhZCBvZiBzbm1wX29pZF9taW5fY29tcGFyZQogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzbm1wX29pZF9taW5fY29tcGFyZSBzaW5jZSBpdCBpcyBpbnRlcm5hbCBhbmQgdW51c2VkCgpjb21taXQgODVmODkzZTJiNjA1ZTY3ZjliZDA0NDNjNzRlMmVkMjY5YWE2ODU2NApBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAxNyAyMjo0MjozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KCmNvbW1pdCA1YzkxM2U1NDY1NmFlMDA5NmIxZmViNmRhOThiNWZjOWNhODFmMjc2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMzowNyAyMDExICswMTAwCgogICAgRGVmaW5lIHRoZSBmdWxsIE5ldEJTRCBoaWVyYXJjaHkgZG93bndhcmRzCgpjb21taXQgYjg4MTg0MWJkMDQ5M2RkNzFkNjMyNTliZGRlZDQ0OWIwNmYwMmMzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzA6MzMgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBjYTI5NGNmNzViYmM4ZTkwZGJmNDRlZTQwNDc4OTM1ZTkxZGIxNDg3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxODowMyAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCBjZDMyYzJkZmYwNmI5YjQ1MmNjMThkNTUyZDJmMjIzNDA5MmM4MjljCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCB3YXJuaW5nCgpjb21taXQgODgzMTM2YzJiMmZhMDczOWY0MzdhOGNmYjY2MTRhY2NjNzZlMjY4ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMAoKICAgIE1vcmUgbmVlZHMgZm9yIE5FVFNOTVBfUFJJbyBmb3JtYXQgc3BlY2lmaWVyCgpjb21taXQgYjgwODRhN2NjYzkwOWI2ZDZkYjdjMGU4ZTU5NmQ3ODY3MWY1Njc4YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTQ6MjYgMjAxMSArMDEwMAoKICAgIEZpeCB1c2luZyBjaGFyIGFzIGFycmF5IGluZGV4IChjdHlwZS5oKQoKY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggbWlzc2luZyBmb3JtYXQgZm9yIEZyZWVCU0QgNAoKY29tbWl0IDRiZDAzNTI5NTVhMjU1MWJmZTAyMzA4ZGQxMzRiOTEyOGM5OGI5ZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU5OjM2IDIwMTEgKzAxMDAKCiAgICBGaXggcGFyYW50aGVzaXMgcHJvYmxlbQoKY29tbWl0IGZlNjI2OWIxOTAwY2Y0NGRjMjdhMTk5YTc2MWQxNWEwMWMzZjMwOTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU4OjM0IDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgYTRkYjlmOWZjMTNkMjFlY2ZmNDg4ZWI0MTAzNzZlZGRhNmMyODIzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6NDM6MzQgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncwoKY29tbWl0IDI1Y2ZjMTk2MmFlNTc2Y2NiMTU1OGRhMWUzZWY4YjZjMTdmNjNjMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDExOjI3OjUzIDIwMTEgKzAxMDAKCiAgICBSZWFsbHkgdXAtdG8tZGF0ZSBtaWJzCgpjb21taXQgMGU4NmM3ODFmMzk4OWJmMDIyYzg5OTNhMTE4NjE3Yjc0YTc1NDIwYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTc6MTkgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogZ2V0IFNobWVtIGZyb20gL3Byb2MvbWVtaW5mbyBmb3IgMi42IChvciBuZXdlcikga2VybmVscwoKY29tbWl0IGJmMjY0ZDE1ZGVkN2FjYmJmMmUzODcxYjk4ZmQxZmNlZjQzZDllYzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE2OjE2IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGNsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDU3ZmY4YTQwYmFlNWQ5YmNhZDE2MDg5MTQyYTljZjMyOGM5ZmExZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE0OjU3IDIwMTEgKzAxMDAKCiAgICBkaXNtYW4vcGluZywgZGlzbWFuL3RyYWNlcm91dGU6IENsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDhhMjUwMmExNWMzMjE3Yjk1OTM5YTNjODM2MTY3ZDIzMGFjMzVmMDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKCiAgICBVcC10by1kYXRlIGxpc3Qgb2YgUkZDcyB3aXQgbWlicwoKY29tbWl0IGRjZGQ3MDIxMTFkOGRhNWY1MzgwNGNmY2YwZGZkYWQ3MzE0NjhiZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCgogICAgRG9uJ3QgdHJ5IHRvIGluc3RhbGwgYW4gZW1wdHkgbGlzdCBvZiBtYW4gcGFnZXMgKE1BTjMpCgpjb21taXQgYmE2MTk4MDRlNTk3OGE4ZGY3NTQ4NDRlZmNjYTUyYjY5YjUwMTVmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTM6MzQ6MjAgMjAxMSArMDEwMAoKICAgIE1pbkdXOiBNYWtlIHN1cmUgdGhhdCB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIHBza2lsbCBtZXNzYWdlIGFyZSBkaXNwbGF5ZWQuCgpjb21taXQgOTIzZWVjYzUwN2Y3NTA0M2I2MGM1ZTY4MDUzYTRmMzk2YWIwYjBkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTI6MzY6MzggMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCgpjb21taXQgNDM0YmZjMWY3NDU3NTUwYjZmODdkNWJjZDUxMTI3NmIyNzBiNTk2NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBNYXJ0aW4gV2lsY2s6IGZpeGVkIHNubXBkIGNyYXNoaW5nIHdpdGggJ3NlbGVjdDogYmFkIGZpbGUgZGVzY3JpcHRvcicuCiAgICAKICAgIE9uIDMyLWJpdCBzeXN0ZW1zLCBzbm1wZCBkaWVzIHdpdGggYWZvcmVtZW50aW9uZWQgbWVzc2FnZSB3aGVuIHVzaW5nIGZpbGUgZGVzY3JpcHRpb25zID4gMzIsIGUuZy4gd2hlbiBoYXZpbmcgPjMyIEFnZW50WCBzdWJhZ2VudHMuCgpjb21taXQgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDE6MjEgMjAxMSArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciBjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKCmNvbW1pdCBlYWNhNzk4M2UzNjU1YWI2OTZmY2M0NDYxY2EwY2VkYmFjNmNlNjlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMDoxMiAyMDExICswMTAwCgogICAgTmV0QlNELTY6IE9uZSBtb3JlIGluc3RhbmNlIG9mIHRpbWVzcGVjIHJlcGxhY2luZyB0aW1ldmFsCgpjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTk6MDEgMjAxMSArMDEwMAoKICAgIEZpeCBidWlnICMzNDM2NTI3OiBhcnBfbmV0bGluazogZml4IGR5aW5nIHJlbG9hZCBvZiBjYWNoZQoKY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU1OjQzIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgoKY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgoKY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjE3OjA0IDIwMTEgKzAxMDAKCiAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQogICAgCiAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgoKY29tbWl0IGY2MTViZjI0ZjVkMGYyM2NlOTMwMWRhNTU2MTg0ZDY0NjA3NDA0NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAoKICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAoKY29tbWl0IGE5NGExNzlkOTM0MGY1MWZhN2MyMzQzMTYzMGJjMGZmZDZkNzU5ZTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKCmNvbW1pdCBiMjllNDE2NDUzMWQyNThmZTM0YTZmZTJiOWUxZWM2MGM1NmY5NTQ0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZTIyMWU2NWZkYzFjNjhmMTk2ODY1MTcxN2RjYzljY2ZiNjQxNDc4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxNTowNTowMCAyMDExICswMTAwCgogICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCiAgICAKICAgIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCBhMGFmMzg1LgoKY29tbWl0IDJlN2U5ZWRhMGIwZDYyYTc2NDVhOWE4ZjcwZWYzZmI2ZjNkZDY5NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMAoKICAgIEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzLgoKY29tbWl0IDM0NjJlYmNkZDBiN2MyOThjYjE1YzMwOTk3MzZmNGY5NTIyNTc4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDI4IDE2OjA3OjE1IDIwMTEgKzAyMDAKCiAgICBSZW1vdmUgdGhvc2Ugc3VwZXJmbHVvdXMgcGFyZW50aGVzZXMgdGhhdCB0cmlnZ2VyIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCAzZTVmZWRkM2U3ZDFlZjMxNjgzNjA0YmY3M2RjNTZlOTQ0Y2FkMzQ5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgYWZ0ZXIgMzAgZGF5cyBvZiB1cHRpbWUuCiAgICAKICAgIEFmdGVyIDMwIGRheXMsIHZhbHVlcyBmcm9tIC9wcm9jL3N0YXQgKG9uIExpbnV4KSBjYW4gZ2V0IGJpZ2dlciB0aGFuIDMyYml0cyBhbmQgc25tcGQgY2FsY3VsYXRpb25zIG1pZ2h0IHJlbmRlciBjb3VudGVycyBsaWtlIHNzQ3B1VXNlciBuZWdhdGl2ZSBvciB6ZXJvLCB3aGlsZSB0aGUgcmVhbCB2YWx1ZSBpcyBoaWdoZXIuIFRoZXJlZm9yZSB0aGUgY291bnRlcnMgc2hvdWxkIGJlIHRyYWNrZWQgYXMgdGhlIGxhcmdlc3QgaW50ZWdlciBhdmFpbGFibGUuCgpjb21taXQgMGZjODIyMWIyNDk4OGM0YWU2MTgwZWQ0MmI4NmI5ODUyZmQ1ODZhZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMjo1OTowOCAyMDExICswMTAwCgogICAgZHNrSW5kZXggd2FzIG9mZiBieSBvbmUKCmNvbW1pdCBhNWIyODgyOWU2NGQ1ZjNiODdlNGI5YjFlZjhjYzIwNGYzM2E2MWI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIxOjI1OjA3IDIwMTEgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzICRBV0sgdG8gZ2V0IGEgdXNhYmxlIG5hd2sKCmNvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo1NTo1MyAyMDExICswMTAwCgogICAgUGF0Y2ggIzM0MDYzNjQ6IEZpeCB1bnN0YWJsZSBkYXRhIGZvciBOZXRCU0QuCgpjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NDM6NTIgMjAxMSArMDEwMAoKICAgIEZpeCBpcHY2IHN0YXRpc3RpY3MgbG9vcGluZyB0b28gZmFyIHdoZW4gc2Nhbm5pbmcgaW50ZXJmYWNlcy4KICAgIEZpeCBUQ1Agc2Vzc2lvbiB0YWJsZSByZXBlYXRpbmcgZGF0YSBmcm9tIGZpcnN0IGVudHJ5IGZvciBhbGwuCgpjb21taXQgMzQ5NTkxZDAzZTE3YTU1YjQzZWFjYzZhNjg3YjAyZmQ4ZDRlOTUyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgcGVybCBzdXBwb3J0IHdpdGhvdXQgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzLgoKY29tbWl0IDFlYzcxMTBlNzJiY2UxNTYxZjc0NjUxNzQ1OWQ2ZjA0MzAxNmI2MGUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBhc24xIHRlc3QgcGFzcyBldmVuIGlmIHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcyBhcmUgcmVtb3ZlZC4KCmNvbW1pdCA2ZDI2OTE4YWY1NWFhMzY2MmE3MjA1NDJkZTc3YmJmMzliMGEzZTkxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERpc2FibGUgdGhlIHN1cHBvcnQgZm9yIGludGVnZXI2NCBpbiBwYXNzIHNjcmlwdHMgaWYgY29tcGlsaW5nIHdpdGhvdXQgb3BhcXVlLXNwZWNpYWwtdHlwZXMuCgpjb21taXQgMjliZjY5ZDcwNDI0ZjM1OWQ5Yzg3ZjA3YTk2NGEwOTk0MTU2NDlhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KICAgIAogICAgVGhpcyBpcyBhIGJhY2twb3J0IG9mIGNvbW1pdCA5ZjY1M2Y3LgoKY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0Mjg1MDY6IEZpeCBuZXRzbm1wX2dldGhvc3RieWFkZHIoKQogICAgCiAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCgpjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjcgMDg6MjA6MDAgMjAxMSArMDIwMAoKICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKCmNvbW1pdCAyYzQ1ZjkyY2ZjYjViMDVlMDQ5MjI2YTVhNzg4M2EwYjEwNjAxMWFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAxMDo0MjoyOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCgpjb21taXQgMjc1ZDIzZWRmZGViZTA1NzdiMDg0MjFlNGM2YzkzNmFlMzliN2ZkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzM6MDkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcwoKY29tbWl0IDQ0OTVlMTdjMDc4YWM2OTk3YTljN2ZhMWE4OGRiMDY0NGU5MTk0OTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMyOjQ2IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgMTM5NTJmNmJlZTlmNDA4ODY3YWI2ZDJmZGZkZGU0ZjI4NDA3NDk1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI2IDE0OjA1OjE2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgogICAgCiAgICBBbiBzbm1wIHN1YmFnZW50IGxpbmtlZCBhZ2FpbnN0IG5ldC1zbm1wLWxpYnMgbWF5IGNyYXNoIGlmIGl0IGhhbmRsZXMgYQogICAgcmVzcG9uc2Ugd2hpY2ggaGFzIG1hZ2ljIHJlZmVycmluZyB0byBhbiBvbGRlciBkaXNjb25uZWN0ZWQgbWFpbiBzZXNzaW9uLiBUaGlzCiAgICBtYXkgaGFwcGVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICBhdHRlbXB0cyB0byBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgb24gcmVjb25uZWN0aW9uIG9mIHRoZSBkaXNjb25uZWN0ZWQgbWFzdGVyCiAgICBzZXNzaW9uLgoKY29tbWl0IGFlMDUyNDcyYjIyNzIwZDA4MzY5ZTg1MTI3ZGIyMTQyNDVkZjJlM2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAyNSAxNjoxNToxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogZml4ZWQgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCiAgICAKICAgIFdoZW4gbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyIGZhaWxzLCBpdCBmcmVlcyBpdHMgcmVnaW5mbyAtPiBuc2Focl9ERVNUUk9ZIChhbmQgYW55IG90aGVyIGZ1bmN0aW9uKSBtdXN0IG5vdCBkZXJlZmVyZW5jZSBpdC4KCmNvbW1pdCBjMTk5YmY5MWI2MjM5ZjI2YjJhYWIzNGU4NTc1ZTBmMGRmOWNkZTliCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjQgMTQ6MjU6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiB4ZnMsIGpmcyBhbmQgdnhmcyBmaWxlc3lzdGVtcyBhcmUgbm93IHJlY29nbml6ZWQgaW4gaHJTdG9yYWdlVGFibGUKCmNvbW1pdCA3NDdmZGM3MWU2NGQwOWUwODA5MjhlYmJiNGQwNGNiZGUzOTA2Nzk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAxNTo1Nzo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IExvd2VyZWQgc2V2ZXJpdHkgb2YgJ2Vycm9yIGZpbmRpbmcgcm93IGluZGV4IGluIF9pZlhUYWJsZV9jb250YWluZXJfcm93X3Jlc3RvcmUnIG1lc3NhZ2UuCiAgICAKICAgIFRoZSBtZXNzYWdlIGlzIHNob3dzIHVwIHdoZW4gc25tcGQgaXMgc3RhcnRlZCBhbmQgdGhlcmUgaXMgZGlmZmVyZW50IHNldCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdGhhbiBpdCB3YXMgd2hlbiBzbm1wZCB3YXN0IGxhc3Qgc3RvcHBlZC4gVGhpcyBpcyBjb21tb24gb24gcHBwLXNlcnZlcnMgb3IgdmlydHVhbCBob3N0cy4KCmNvbW1pdCAyNTBmNjk4ZTU5ZWFiOWYxZmZkMzMyZmY1OWZkYjcyZWEwZGYwNmZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyMyAwODo1MToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgogICAgCiAgICBQcmV2aW91c2x5IHRoZSB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgcHJvY2Vzc2luZyBjb2RlIHJhbiB3aXRoCiAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKICAgIGlzIHJlcXVpZXJlZC4gVGhhdCBmaWxlIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBmaXJzdCBtYWtlIHJ1biwgYW5kIHRoYXQgaGFwcGVucwogICAgYWZ0ZXIgY29uZmlndXJlIGlzIHJ1bi4KICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCiAgICBzdXBwb3J0IGR1cmluZyB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBtYWtlIGl0IHdvcmsgYXQgYWxsLgoKY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDIwIDIwOjMwOjU0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDA4Mzk4OiBGaXggYSBtZW1vcnkgbGVhayBpbiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLgogICAgCiAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIDliZjNkOTZkOTZhOGVjZDRhNWZjMzVjMzI2ZGM5Mzc0NjcwMDJiNmM6IEluaXRpYWwgSEFMCiAgICBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uIChNYXJjaCA3LCAyMDA4KS4KCmNvbW1pdCBjZjgyYjg5NGIyMjE3YzI2ZWRjNmYxMzU2MzUxYzkzMjQxNTYwNGUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDIzOTE1OiBDaGFuZ2UgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBiYWNrIGZyb20gMCB0byA1CiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCB2aWEgY29tbWl0IDZjYWMwNTAgKE1heSA1LCAyMDExLAogICAgYWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBpbgogICAgc25tcGQuY29uZikuCgpjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KCmNvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyMjoyMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KCmNvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNjo0NzoxNiAyMDExICswMjAwCgogICAgTWluR1csIGh3X2ZzeXM6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcnMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KCmNvbW1pdCAyMTFkY2I0OTMwNjU2MWUzNWJhM2MyMTNiZTdjZmEyNTdiNDBhOGU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCgogICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwoKY29tbWl0IDlmNjUzZjczZTVhYTcwZjBiZWYxMTc0NjMyZTk1NTk0Zjg3ZjY2OWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCgpjb21taXQgNGM4M2I5MjI5YTc0NTRmMzRmNmZmNzVmNjllNjdlNDAzMGM0MTliNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNTo1ODo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2V0IHRoZSBycGF0aCBmb3IgbGlicGVybC5zbyBpbiBsaWJuZXRzbm1wbWlicy5zbyBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSBkeW5hbWljIGxpbmtlciBzZXR0aW5ncy4KICAgIAogICAgVGhpcyBjaGFuZ2UgaW4gYWdlbnQvTWFrZWZpbGUuaW4gaXMgbmVjZXNzYXJ5IG9uIHRoZSA1LjUgYnJhbmNoIGFuZAogICAgbGF0ZXIgYnV0IG5vdCBvbiB0aGUgNS40IGJyYW5jaC4gVGhhdCBpcyBiZWNhdXNlIHRoZSA1LjQgYnJhbmNoIHVzZXMKICAgIGFuIG9sZGVyIHZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAogICAgbGlicmFyaWVzLiBUaGlzIGlzIGNhbGxlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY3kgdHJhY2tpbmcgaW4gdGhlCiAgICBsaWJ0b29sIG1hbnVhbC4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByZXNlbnQgaW4gbGlidG9vbCB2ZXJzaW9uIDEKICAgIGJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKICAgIGR5bmFtaWMgbGlicmFyaWVzIGFuZCBycGF0aHMsIHNlZSBhbHNvIHRoZSBkb2N1bWVudCB3aXRoIHRoZSB0aXRsZQogICAgIlJwYXRoSXNzdWUiIG9uIHRoZSBEZWJpYW4gd2lraSAoaHR0cDovL3dpa2kuZGViaWFuLm9yZy9ScGF0aElzc3VlKS4KCmNvbW1pdCA4OTI1YzkxMmQyNjM5NzUyYTg0YmNmZmVlZjFiNzBhODEwMjY0NDliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjIxOjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogSE9TVC1SRVNPVVJDRVMtTUlCOiBBZGQgbWlzc2luZyBicmFjZSBpbiBhIGRlYnVnIHN0YXRlbWVudAoKY29tbWl0IDc2ZmYyNWQ5YmY5NzU3OWU3MjEzMTAyMDY1ZmQ1MDk2ZjA0OWE0YzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MTM6MTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3RvcmFnZVRhYmxlOiBmaXggYnVnIGluIGhhbmRsaW5nIGxhcmdlIGZpbGVzeXN0ZW1zLCB3aGVyZSBsYXJnZSBtZWFucyBhYm92ZSA4IFRCICg9IDIqKjMxICogNDA5NiBieXRlcykuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKICAgIDcxZDgyOTNmMzg3YTZjZDY2YmIwZGJiMTNjMGY1MDE3NGQyZTY3OGIuCiAgICBGb3IgdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnQsIHNlZSBhbHNvCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhdGlkPTExMjY5NCZhaWQ9MzQxOTgyNSZncm91cF9pZD0xMjY5NC4KCmNvbW1pdCA4NjYwMzNkYjk5MDRmZmIxMjAzZjI4M2Y4MzgwOTJlNGNmNjhkZTZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDA3OjMzOjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNwdXJpb3VzICNlbmRpZiB0aGF0IHNlZW1zIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBtaXNtZXJnZS4KCmNvbW1pdCAyMGY0ZjMyNjdlZTIwZDU1NzA1YjdhNDM3ODk4NzljMTAzZjk2NjIwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDAwOjA4OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KCmNvbW1pdCBlNWRlMmNjNTdiZjMwNGYzMzIwY2FkMDAzNGQyZWEyZDhhZWRjNDM2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA5OjE1OjEwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogTG9nIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGlmIGVtYmVkZGVkIHBlcmwgaW5pdGlhbGl6YXRpb24gZmFpbHMKCmNvbW1pdCA1ZWVmOTk5MGRlMjhmNjMxMTFlNmMwOTNiZTBmM2M3YWUyZDUxM2ExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ1OjQ5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBBZGQgYWdlbnQ6OnVwdGltZSgpCgpjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IEN5d2luOiBhZ2VudDogSW1wbGVtZW50IGdldF91cHRpbWUoKSBzdWNoIHRoYXQgcXVlcnlpbmcgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCgpjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNwpBdXRob3I6IFRob21hcyBKYXJvc2NoIDx0amFyb3NjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBQQVRDSDogMzQxODY0OTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZiBmY2xvc2UoKSB0byBjbG9zZSBhIHBpcGUuCgpjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNjoxODowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBkZXBlbmRlbmNpZXMgb24gQEZFQVRVUkVUQVJHU0AgdG8gbWFrZSB0aGUgc3VidGFyZ2V0IHdvcmsgYXMgd2VsbC4KCmNvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE0OjAyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCgpjb21taXQgOTk1NjQ3YzBjZmUwMDQxMjI2MmNjNTc5N2JkZmFlOWQwMGI3MGM3NgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNTo0NDozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSB0aGUgdXNlIG9mIC1MIGZsYWdzIGZvciBpbnRlcm5hbCBsaWJyYXJpZXMgYXMgaXQgY29uZnVzZXMgbGlidG9vbC4KCmNvbW1pdCA5M2RjMTIzNWEwZGI1OGZmZDI5NjE3Y2ZmMDBkYzExMjYzNzgwMjAyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjMxOjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBtYWtlIGFwcHMgd29yayBhZ2FpbgogICAgCiAgICBhcHBzIGluY2x1ZGUgc25tcHRyYXBkIGFuZCB0aGF0IHJlcXVpcmUgdGhlIGFnZW50IGxpYnJhcmllcyBhcyB3ZWxsLgoKY29tbWl0IGJhNDE0ODhlZDQ0Y2QyM2MyNTk2M2Q0ZmM1NmM0NzY4NTNiMmFiNTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6Mjk6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXaGVuIHlvdSBzYXkgbWFrZSBsaWJzIHlvdSBleHBlY3QgYWxsIHRoZSBsaWJzIHRvIGJlIGJ1aWx0LgogICAgCiAgICBUaGlzIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgc25tcHRyYXBkIHRhcmdldCBhdCB0aGUgdG9wIGxldmVsIHdoaWNoIG9idmlvdXNseQogICAgZXhwZWN0ZWQgYm90aCBsaWJzIHRvIGJlIGJ1aWx0IGFuZCBzbyBmYWlsZWQgdG8gY29tcGlsZSBiZWZvcmUgdGhpcyBwYXRjaC4KCmNvbW1pdCAzMDU3YzczZTA5MzQ3M2JlNDYyNTRiY2RmYjRjYTc4OGU0MzJkMWI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMzAgMDc6MzI6NTIgMjAwOCArMDAwMAoKICAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLgogICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCiAgICAKICAgIEJhY2twb3J0IHRoaXMgdG8gVjUtNCBhcyBpdCBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uIGluIHRoZSBzaW5nbGUKICAgIHRocmVhZGVkIGNhc2Ugb2YgbWFrZSBtaWJsaWIgYXMgd2VsbC4KCmNvbW1pdCA2ZWFlMzQwZmEyYTY0MDg2NTkyOTgyY2M1MjczNWJjMDE0ODdkOTc4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAxIDE5OjMzOjUwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogU2lsZW5jZSBsaWJic2QgMC4zLjAgbmFnZ2luZwogICAgCiAgICBJZiB5b3UgaGF2ZSBsaWJic2QgMC4zLjAgaW5zdGFsbGVkIHRoZW4gdGhlaXIgdmVyc2lvbiBvZiBubGlzdC5oIHdhcm5zIGFuZAogICAgdHJpZXMgdG8gbWFrZSB5b3UgaW5jbHVkZSBic2Qvbmxpc3QuaCBpbnN0ZWFkLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGRvbid0CiAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcwogICAgcHVyZSBuYWdnaW5nLiBUaGlzIHBhdGNoIGFkZHMgYSBkZWZpbmUgdGhhdCBjaGFuZ2VzIHRoZSB3YXJuaW5nIGludG8gYW4KICAgIGVycm9yIGFuZCB0aGVuIGZpZ3VyZXMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gdXNhYmxlIG5saXN0LmggYW5kIGlnbm9yZXMgaXQKICAgIGZvciB0aGUgZnV0dXJlLgoKY29tbWl0IGFjMzhjYjUzMWJlZTUwZWRjOGQ0YzgzNGYzMDA1ZjU5OTJjNzcxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDE5OjAzOjAyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKCmNvbW1pdCBhNzVkZTI5NzE1MjdhYzJkMmU4MTIwMjQyOTg2MDJiYjI0MTJmMzM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IDg0OGY2MzAwZWZlMzg0OTJmYjQ1NDQ1MWEwMzBmMGI3ZTZmZjhjOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgYzEzNzQ0NzNlY2Q4ZWM5ZTAzMTAwMTM4NjFlZTE4YzgzZTVkNmM1YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBTZXAgMzAgMDM6Mjk6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCgpjb21taXQgN2U5N2EyMDYzM2E1N2VhZTM5ZDAxNWIyMzMzOTQ2M2MzMmY1Zjg0OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjI6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKCmNvbW1pdCA5YzBkZDk4MTc2NDU3MzQyZmZmYWE1ZTc0ZDgwMmUzMTQ1ZWQ3MGU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAwODo1NjoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKCmNvbW1pdCA1ZmQyNmU0ZmEzZTAwMGVhOWM4MWMzOGFiOTc1Yjc5NDZlZmUyMTU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyOCAxNzo0OTo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgogICAgCiAgICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICBhYTRkNDdjMjYwOWU1MjgxOGM5Y2RmMWE4ZTIyMDVkZTlhMzM1YTBhIChzdm4gcjE5NTE1KS4KCmNvbW1pdCBkMjI1MmQwMTY2OTM4MDczMjZmNzJiNjYxMjM2NDlkZWEwMGFmOTE2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVxdWlyZSBhIHNlbWljb2xvbiBhZnRlciBPSygpLCBPS0YoKSBhbmQgUExBTigpCiAgICAKICAgIEFsc28sIGxldCBPS0YoKSBlbWl0IGEgc2luZ2xlIGxpbmUgb2Ygb3V0cHV0IHN1Y2ggdGhhdCBhbGwgb3V0cHV0IGl0CiAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCgpjb21taXQgMTQyMTkyNGI0ODUyMTQyMTkyYzViYjllOTNkZGJmZWQ2OWU5MDhmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjEgMjI6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGlmIGEgc2Vzc2lvbiBoYXMgdGltZW91dCB6ZXJvCgpjb21taXQgNWYyN2Y0Zjc0YWUyYmQ1YmFmNTAzY2YzMDZiNGY5YTI4NDFhNTdjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDozMjowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgoKY29tbWl0IDA5NzAzOTU4Y2M1ZWE4NDU5MjlhZTE5ZWY5ZTA4MDRhZWNhYTUxMmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDEyOjQyOjQxIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBdm9pZCBmYWxzZSBuZWdhdGl2ZSBmb3IgVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlIGNhdXNlZCBieSB0aGUgdGVzdCByZXN1bHQgYmVpbmcgcHJlc2VudCBpbiB0aGUgaGV4IGR1bXAgKCJtb3N0bHlfaGFybWxlc3MiKQoKY29tbWl0IDQzOTMwMDI3OWY2ZjMxNDM4NjM4ZDJmMjIyYzI0YzNjODQxZmE2YWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDExOjE2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWljcm8tb3B0aW1pemUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMKICAgIAogICAgVGhpcyBtYWtlcyB0aGUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMgY2FycmllZCBvdXQgYnkgdGhlCiAgICBjb25maWd1cmUgc2NyaXB0IHNsaWdodGx5IGZhc3RlciwgZXNwZWNpYWxseSBvbiB0aG9zZSBzeXN0ZW1zIHdoZXJlCiAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgoKY29tbWl0IGJiYzY4MDAwNGExMzc2MDM4ZGZkYzQxNzJkYmU3YjllMzExZmJhNjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDEwOjE0OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0ZXN0IFQxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSBwYXNzCgpjb21taXQgNzBiMDZjZjc4OTIwOGVhYTg5MGJmYmNkNjM4YmRiNzc1ZjgxNzA1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6NTA6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHRlc3Rpbmc6IHBlcmw6IEZpeCBhbiBpbmNvcnJlY3QgbWVzc2FnZSBwcmludGVkIHdoaWxlIHJ1bm5pbmcgdGhlIFBlcmwgbW9kdWxlIHJlZ3Jlc3Npb24gdGVzdHMKCmNvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAxNiAxNjoxNDoyNCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50Cgpjb21taXQgNjI2Mjc1ZTJkMWFjYWZhZTcxNDRhMzNlZDMwMWE0MGY1OTZiMzdiMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMTQgMTM6MTQ6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBzdXBlcmZsdW91cyBsaW5rIGxpYnJhcmllcyBmcm9tIHByb2plY3QgZmlsZXMgKCouZHNwKQoKY29tbWl0IDM4ZmMzY2FhOWVlYjM4MDAyNTRiNGY2YWQ2ZjhmNDc2NGMwZjgzZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjM0OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAgKFNURElOX0ZJTEVOTykKCmNvbW1pdCA2YzhjN2U4YWNhOGZjMmVlYjUyMDEwYWUzZTlmZWU2ZGQ4M2VmNzgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAxMyAwOTo1ODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIG9ic29sZXRlIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uKCkgZGVjbGFyYXRpb24KCmNvbW1pdCAwODYwZDExZmQ4ZmM1ZGJkYWFhZTIyNjFmYWUyYzA3ZmI5YzJjODJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjU0OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNvbmZsaWN0IHdpdGggdGhvc2UgaW4gPHN0ZGludC5oPiBmcm9tIHRoZSBtc2ludHR5cGVzIHByb2plY3QKCmNvbW1pdCBmOGEwMzZmNjNmZjY4ZjA4MzQzNjEyMGUwYWJkNDc4YjY5MmEyZjYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjIxOjA2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBXaGVuIGxpbmtpbmcgd2l0aCBPcGVuU1NMLCBsaW5rIHdpdGggdXNlcjMyLmxpYiB0b28KCmNvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEp1bCAxNCAxODozODoxMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5Cgpjb21taXQgN2IwN2ZkNmNkZWY0OWVjN2JiMDRiMTY2ZTJhNGZiYjM3YjU4Mjg0MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMToxMDozOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKCmNvbW1pdCA5OGY2ZDI5ZDk4MWZmOGU2MDc2MDBjNjNkYWRiMjQwNTM1NjI5ODA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjQ5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCgpjb21taXQgNTJjZDAwMzFhMzFmNjkyZjEzMjYzYTk0YzMzNWQwNmJlMTQ1NDgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCgpjb21taXQgZjVjZDg5YmQzMzU2ZGQ3NGUxNTU2YzBiNTA5NjZhNjQzZjE5MjA4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yawoKY29tbWl0IGRlZWRkNTJjODM0YTY0NDg4NTJhMDY3ODU1MzZlMTM4NjU5Njk2OTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBTdXBwb3J0IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHJlY2VudCBTaGluaW5nIExpZ2h0IE9wZW5TU0wgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKCmNvbW1pdCBkNTViZDRlMDU0OWYwM2I2ZmQzMjU2MmMyYWE3ZmUzOTI3MmE5ZWY3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxOSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgYWMyYWVkM2M5NGJiMmViYjQ3M2FmMGExZTIwZjA1NjFhZDYyOTk1NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDIxOjQ5OjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQXZvaWQgdGhhdCBzbm1wZCBjcmFzaGVzIGlmIHN0YXJ0ZWQgb24gYSBzeXN0ZW0gd2l0aCBhbm90aGVyIE9wZW5TU0wgbGlicmFyeSB2ZXJzaW9uIHRoYW4gdGhlIG9uZSBpdCBoYXMgYmVlbiBidWlsdCB3aXRoLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMSAtPiBWNS43LjIucHJlMgoKY29tbWl0IDgxMDE4NWFlMGIwY2QyYWQ0ZDQyNGExYmE3NzVlZjVjZWFmNTBmMDMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDk6MjQ6MTkgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5wcmUxCgpjb21taXQgNjI3MTQ3MWUwMTI4MmYzNjc1NzI0ZWFmMTM1OGNlYjBlOTVkZGQ0ZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjo0MCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUxCgpjb21taXQgZmNiNzgyYWE4ODkzMTM0Yzc0MTRhOTI2ZDkyNjg1OTRmNzI1YjkxNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjoxOCAyMDEyIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCBlM2JjZDg3YzcyZmNlYTc3MDZlODY4YjVhY2U3NTI5NjA5M2Y3NDk3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDk6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZDgxM2NlMmVlZWZjNjgyMjljZmNhZjIwNjAzMjQ0Y2RkNmQwOWQzYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA3OjUyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGZhN2JkNTgxZTM3ODM2ODVkYjM5YzliNGVhZjg0N2JlNWFjODZmZDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MzoxMCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IDA3MzllMjM4MmQzMTE0NmFjYTMyMDUyNDRjZjcwNzg4YjQwYTQyOGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MTo0NSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGQ5YTE1NDQ1YWE3NGY1MzE2YmZjNzExYzE1NTg0Njc4NzJjMjk1OGMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MDoxMiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGJjYWJkMmM5NTQyZGJlYmQxZDMxOWI0NDk0NDEzYmRjY2EwNjYxNGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGI0NzM4OThjMGM1YWM5ZWI0N2M3YzA1YTNmNzQ1ZTRmZjJhNzZhYWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODoyOCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzIKCmNvbW1pdCAxMzE0MjllNzA2MmZiYWE2NWI4MmFmZmVkMWZiOTJkZjJjMGNjODEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYzgxMTBiMzNiODEwNWNhNjE5MDk0NWEzNWZlN2FlOTAzMjUyZDY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjE6MzggMjAxMiArMDEwMAoKICAgIEF2b2lkIHBlcmwgdmVyc2lvbmluZyBwcm9ibGVtcyB3aGVuIHNldHRpbmcgdXAgdGhlIGJ1aWxkIGVudmlyb25tZW50Cgpjb21taXQgNTA4ZWNlMTZlNmY2ZjQ5NTYyZGEyMDQ3OTJhZTA2NDQyNjk5OTRkMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIwOjU4IDIwMTIgKzAxMDAKCiAgICBGaXggaGFuZGxpbmcgb2YgZGlzdC9yZWxlYXNlIG1lcmdlCgpjb21taXQgNWI4YTg1NDdiMWE0N2QyZjViMjA3ZjQ4ZjI0OTZlNDI0MWQ5MDJjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjEwOjQ4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgNmMzMjkxNGJmMjhkNjk1ZGYzNDlkY2EyNjllNDg4YjUwMTcwMDMxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA3OjIyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgOWY1YTgyYTVhZmRiYjNkYWViMmZkNDM3YTMwOWYwYjhkMzU3Y2Y0YgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA1OjM5IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMyCgpjb21taXQgMzkyMDNmMjk0NzdhM2JlZGYwMTJkNDExMzVkOGFiZDZiY2FkMDhiMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjU0OjI3IDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgMTdlNzllZjBmYWQ3OTYwOWM1YmEyZmViNGU4YjllYjVkN2RiNjg4NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgNTgyMWJlNWJiYjQwMThkZWQyODJmYmJiZDQ4MzBjZjJlZWFkZDllMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ1OjU5IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMgoKY29tbWl0IDNmMjExMWRlNjczM2EwNGUxMmQ5MTBkMzA2YTM0ZDY3MWUwMDg3NjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IGNjZjhmZjJjNGRiNjAxMjJkNDEzMDJlNGFlYjcwMGUwYjg2ODEwNWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSAyOCAxMDoxODo0MyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzUyNjU5OTogRG9uJ3QgaGFuZyBvbiByZXRyaWVkIGZhaWxpbmcgU05NUHYzIHJlc3BvbnNlcwoKY29tbWl0IGM4MWM4NDgzOTkwOTExZjQ3NDM1ZDMwMDUyNTVkOTFjMzdhYjkyYjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjA5OjI2IDIwMTIgKzAyMDAKCiAgICBGaXggQlNEIHRoYXQgZG93bm5vdCBhbHdheXMgbGlrZSBJUF9TRU5EU1JDQUREUiAtIHNvIHJldHJ5IHdpdGhvdXQKCmNvbW1pdCBmZmNlMWYyZGMyZjhiMzFhYmQwMWY5M2IyNmRhNzhmNDcyNmExZTY0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowMzo1OCAyMDEyICswMjAwCgogICAgRml4IE9TIG1pc3NpbmcgTVNHX0RPTlRXQUlUIChBSVgpLiBCYWNrcG9ydCBmcm9tIDUuNwoKY29tbWl0IGM1NzUyMTY4NTAxODViNTY0NTRkYWQwMjUzZTMxNjQ5NzllMTM1MTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDEzOjU2OjAxIDIwMTIgKzAyMDAKCiAgICBGaXggbWlzc2luZyBpbmNsdWRlLiBGaXhlcyBTSUdTRUdWIG9uIEZyZWVCU0Q5IHg2NAoKY29tbWl0IDU4MDU4Nzg3NDljMDgwNjJkZWJmMGE5ZDc5OGQwOGZiOTE2Y2FhMmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWF5IDI3IDA2OjIzOjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZGVidWcgdGFnCgpjb21taXQgZDFhNDJiYmNjN2IxNDczMGM5YTZkOTljNGYwNDcwOTc4NDNhNTQ5YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXkgMjUgMDk6MDI6MjcgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSdW4gbGlidG9vbCAtLW1vZGU9ZmluaXNoIG9uIHRoZSByaWdodCBkaXJlY3RvcnkKCmNvbW1pdCAxZmJmMzM3MTFhMTllYWM5NzM5YWQyM2Y2ZjYyNTFlYWNjNDFmMWM0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTQ6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMzUyNTk5ODogRG9uJ3QgdXNlIGFuIHVuaW5pdGlhbGlzZWQgdmFsdWUgaW4gZXJyb3IgbWVzc2FnZQoKY29tbWl0IDMyYzE2ODZiNjdkYzg1YzRhMTg5NTc2MzYzMDY1NjA5ZGZlZDVlNjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1Mjo1NiAyMDEyICswMTAwCgogICAgQXR0ZW1wdCB0byBtYXJrIHJlbGVhc2UtY2FuZGlkYXRlIGJyYW5jaGVzIGFzIHN1Y2guCiAgICBPbWl0IGZpbmFsLXJlbGVhc2Utb25seSBzdGVwcyB3aGVuIHByZXBhcmluZyBwcmVOL3JjTiByZWxlYXNlcwogICAgKFJlbGllcyBvbiBhIHR3ZWFrIHRvIHRoZSBNYWtlcmVsZWFzZSBwZXJsIG1vZHVsZXMpCgpjb21taXQgNGM1NjMzZjE2MDNlNGJkMDNlZDA1YzM3ZDc4MmVjODkxMTc1OWM0NwpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QGZyZWVzbm1wLmNvbT4KRGF0ZTogICBNb24gTWF5IDE0IDExOjQwOjA2IDIwMTIgLTA0MDAKCiAgICBORVdTOiBzbm1wOiBCVUc6IDM1MjY1NDk6IENWRS0yMDEyLTIxNDEgQXJyYXkgaW5kZXggZXJyb3IgbGVhZGluZyB0byBjcmFzaAoKY29tbWl0IDY1ZGQ4M2MyMjU1ZWU1OGVkYmYwZTI1ODYzZTU1YjU4YTQxMTM2NzkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjMwOjQyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMxCgpjb21taXQgYWM0YmM2NWUyOTA5ZjNiZDg1ZjMyZjA0YjUwNGZhNjVkMmY2NDU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6Mjg6MDYgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBiNzQ5OTQ4NjQxOTUxMTllZGI2ZTE5Yzg1MTQ3ZmFjMDBiY2I5M2UzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoxMzo0NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzEKCmNvbW1pdCA5MTM1MDA5MmM0NmU2NmQwNmQ3NDE0M2Y0ODE2NDczZGI0ZDI1MTYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxOTo1NjozMyAyMDEyICswMTAwCgogICAgTWFyayB2ZXJzaW9uLXNwZWNpZmljIGNoYW5nZXMgX2JlZm9yZV8gcHVzaGluZyB0byBjZW50cmFsIHJlcG9zaXRvcnkKCmNvbW1pdCA3MjQxYWNjZDcwYjgyZDBmY2Q0NGQ1YTUyMzhiMmVlOTQ0NTkwMGRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MzoxNyAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDdjNzk2YTE1YTFkMWJiODVmZWVhOTQwYmQ0ZTM1MTY4Nzc5MjA5MTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUwOjQ5IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgMDdlMjY4YmZiNjRiMGVjNjQ1YjNmN2U4NzI2Njk4NGY5MjE3Y2YxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NDQ6MzcgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAxNmVhYWY2YzNiYTE0NTk2Y2E5ZWZhZjRiMTE0ZjFiNzA5ZjQyYjY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyOTowMyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IGM3Mjk0NjllZjEyMTU0OTMwY2Y5ZDE1OTY3ZTE2MTg2ZmI0NDVmMzAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI3OjIwIDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMQoKY29tbWl0IDE0MjU3MWQzY2VhMDhmMGMwNzJkMjRjMWQzOWE0M2M3NDQ2ZjhjZTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IGViYTg2YjZmN2FmZjI2MWVlMGU2MTMzNGRmNzBkZTcxNTZlNWMzY2IKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IDVjMGY2NGQ2ZGIyYjU5M2Y3Y2MwZWQyZDRmNTViN2M1OTJiNzc0YTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjI1OjE1IDIwMTIgKzAyMDAKCiAgICBPbmx5IG91dHB1dCBjcHUgd2FybmluZ3Mgb25jZS4KCmNvbW1pdCBlZTU4ZTQ4MjdiOWZhMTZlNjYzNWNhMDAzZThhNGYxMWRjYjVmYjdhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxNzo0MiAyMDEyICswMjAwCgogICAgRml4IHNwZWxpbmcgaW4gZXJyb3JtZXNzYWdlLgoKY29tbWl0IDAzZjQ4NWRmMjJmMjBlMTQ5Y2ZhZTk0YzU3Y2I4MmZlZWNiNWQ3NGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEyOjExIDIwMTIgKzAyMDAKCiAgICBOb3QgYWxsIExpbnV4ZXMgdXNlIHJwbSAoZGViaWFuL3VidW50dSBjb21lcyB0byBtaW5kKQoKY29tbWl0IDkzMDgzODIyNGY3ODE2OTZiZDM1MjI1ZjIyNTY5MzQ3NDE2ZjFiMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEwOjE1IDIwMTIgKzAyMDAKCiAgICBDaGVjayBuZWVkIGZvciAtbG0gdG8gdXNlIHJvdW5kL2V4cAoKY29tbWl0IGEwNjA5Y2YxZjNhNjkxN2QyNjM3MjU3MzIyNDhjZDkzN2E0NWFkOTQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDg6NDA6NDQgMjAxMiArMDIwMAoKICAgIFJlbW92ZSBsaW1pdGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gbGluZSBsZW5ndGguCgpjb21taXQgMzA1OTczMzM4YTYzYWU1NGM1ZTAyYTg2MjZmYmU5YTgwNjRkY2I3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDozMjoxOSAyMDEyICswMjAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KCmNvbW1pdCBjY2FiNGU5ZDNlZDQyNGMzOWQwZGMyN2JlNjNmYTc2Yzc0NjFlYTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjE1OjIyIDIwMTIgKzAyMDAKCiAgICBJbnRlcm5hbGl6ZSB0aGUgbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJldCBjb25maWd1cmF0aW9uIGZpbGUKCmNvbW1pdCBjZjg3NGFkN2I5ZGFmNGZjYzBkNDZjZGQwMzQ0NzRiNDc4MDA1MzQxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIEFwciA2IDIxOjQ3OjI4IDIwMTIgKzAyMDAKCiAgICBSZXBsYWNlICNpZiAoQSkgQiAjZWxzZSBCICNlbmRpZiB3aXRoIEIuCgpjb21taXQgZWY5ZWE2NDFiYzI5MGVlYzUwNjg1YjYwNTE5YjMxYmVlOGIxNGE2OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDQ6MDYgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgMzVhYmExOTU5ZGUxMTlmMWZiODkyMDNjMzcxMDlhYTZmMGUyMWM1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDA6NDAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgZTQxZmJhZmYxOGFjOTA5NWNmNGE3MzlhMDZlYzM5YTFhNmNjZmRjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjA6MzU6MzUgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMgoKY29tbWl0IDEzN2ZlNTgyZDZjYzU2MTE0MzBkYWI0NmVmMTQ0ZWZkODRjZmM4MDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEFwciA2IDIwOjQ2OjU2IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKICAgIChzbm1wX3N0b3JlX25lZWRlZCgpIEFQSSBpcyBub3QgYXZhaWxhYmxlIGluIDUuWzQ1XS54KQoKY29tbWl0IDJiN2U2NDI4OGMwMWE4YTA2MjAyNmM1MjFjYTMxYTVlODg1ZjMwY2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjEyOjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDdlOTVkODBiNjk4MDUxMjU5NjQ1YzA3NGE1M2ZmZDI2NGE2ZmE5MTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjA2OjU2IDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFhOWI3YjdjMDJlMmRlZWZlOTk0ZDU5NWE3Y2MxZGQyZmZiZWVlMWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE1OjUxOjIwIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCAncmVjZW50JyBoZWFkZXIgc2h1ZmZsaW5nCiAgICBCYWNrcG9ydCBvZiBjNTNkOGMzNTI1ZjU5MGYyMjEzZDM1YjBkYTk0MTIzODYyZjNlMzY2IGZyb20gVjUtNS1wYXRjaGVzCiAgICAoUGF0Y2ggIzMzNjMzMDggLSBvbWl0dGluZyB0d2Vha3MgdG8gY29uZmlndXJlKQoKY29tbWl0IDNkOWRkYjQxZTI2M2JjMWE3OGY5Zjk0NDBiOGQ0YWQ0Zjg2YzgyZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjM2OjE4IDIwMTIgKzAxMDAKCiAgICBGaXggdHlwbwogICAgQmFja3BvcnQgb2YgNWI3MDJiMDI0YjYwMTc2ZDdmNTY5OWI5MmU1NWRhNTBhOGRlYWU3MSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDBkMzVjNjA5NTY0YjY2YTFmZmU4MTU1NmQzN2FkZjA1MDNjMzg5Y2UKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjE1OjA4IDIwMTIgKzAxMDAKCiAgICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiBORVRTTk1QX1BSSW8KICAgICh1c2VkIGluIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYykKCmNvbW1pdCBhNzkxNDFhNDE5OTUzZDAxMGE2OTg5ZThiODhmNGRmMTI3Mzk0ZDM4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwOToxOToyNiAyMDEyICswMTAwCgogICAgSGVhZGVyIGZpZGRsaW5nIGZvciBGcmVlQlNELE9wZW5CU0QsRHJhZ29uZmx5CiAgICBCYWNrcG9ydCBvZiBmN2IwZGUxNTE4MDAyYzZlOGY5Yjk0ZWYzZGViODg4MmUxZTkzMzhlIGZyb20gVjUtNy1wYXRjaGVzCgpjb21taXQgYWRmNzRiZjc1M2QzOTcwMzU3YWZkNjMzODAzMjU2MjQxZDljN2I4NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDg6MjA6NDYgMjAxMiArMDEwMAoKICAgIEZpeCBJUHY2IFRDUCAmIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydCAoaW5jbHVkaW5nIE9wZW5CU0QpCiAgICBCYWNrcG9ydCBvZiBjb21taXRzIDVjZDE1NzM2MjU0NzFjMDU4M2U5MDg3YWVjNjgwMmI3NzE1N2Q1YTIKICAgICAgYW5kIDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCBkOTU1NWFjYjlmNDdjM2FhOGZkZTRiYzIwYTQ0ZDdjYTYxODFhOGE5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1hciAyNSAxODo0ODoxMiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCgpjb21taXQgODJhOGI0N2VlOTZlNWQyOWEyYjdhYzNjYTAwNzIyZDczN2Q1YjQ3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzE6NTYgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgOWNhOGQ5MzlhYjM5MzMwNmExZDBmMTQ2YzljYjcwZWEwY2IxOWQ0OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzA6MzggMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgY2VjZDQ4NjlkZWI2OGYzZDRjNzFlNzY4ZDViNDBkZDU3NjQ0NjkyNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6Mjk6MzEgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgYTFhNDUxM2JkM2U0ZTYxNDIwMGY2ZGI1YTAyZjYxZDZjOGVlZmIzMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjQ3OjQ1IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2twb3J0IG9mIGdpdCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCA5YmRiY2NhMTIyYzM3ZGEzMDRmYzZhYTY5Mzk3Mjk0NzVmOTBmNWZkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6MzA6NDkgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFjay1wb3J0IG9mIEdJVCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6NDE6MjQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDk1Njk3OiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcwoKY29tbWl0IDFmNzVmMzc3ZDBkYjAxNzU0YzBjMTYxZGM0NDM3MzA4MWJlZWY1MjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMToxNDowNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUEFUQ0hFUzogMzQ4OTM4NzogSW5zdGFsbCBGcmVlQlNEIDEwIGhlYWRlciBmaWxlIChwbHVzIG90aGVyIG1pc3NpbmcgdmVyc2lvbnMpCgpjb21taXQgM2Q3MmM5ZTc4ZjJhZDgxN2M5ZDFkODI5NzczMjdiYmIyMGQ2M2FiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjA2OjMxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDM0ODc4Njc6IERvbid0IHNraXAgbWlzc2luZyBpZlhUYWJsZSBlbnRyaWVzIChpZkNvbm5lY3RvclByZXNlbnQgRkFMU0UpCgpjb21taXQgMTI5MDY1NzhhYjMwY2Y3NzZkMDgwYzBlZjMwMjViMzAzMzRkNzY1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTY6MTc6NDUgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjY2ZkNWNhNmZlMTAzMTNkNjE4MWQyNGJiYjE3OTc4MjVhOTdkYTEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo1MToxNiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBFbGltaW5hdGUgZHVwbGljYXRlIGNvZGUKCmNvbW1pdCA5ZmRhMjY2ODcyMmYwOGRkYmZkZDY3YTIyMzlkOGIwMjFkYjY0YTgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo0ODo0NiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBXcml0ZSBhIGxvb3AgYXMgYSBsb29wCgpjb21taXQgY2JjMThlYjc2M2JhNmRmNjllZjcwNjY4YTU0ZDc1YmYzNWU3OTUwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6MjQ6MDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGM3NzI1MTkyNDc4YWVjMDE4ZmI0YWVmYTYwOTQ2ZTA0YTQwNmMwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQzOjI0IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQoKY29tbWl0IGE2YmU3Mzk1NjZmMzEwZDc0NDFmZDdmNTQ5ODllMzk0NDZmN2ExNDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQyOjI4IDIwMTIgKzAyMDAKCiAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKCmNvbW1pdCA4YTliNTcyOTE0NTNjYjhhZWMyOGU3NjZjNTk0NzAxZWQxOWM0ZmM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMTowMzo0MSAyMDEyICswMjAwCgogICAgRml4IGZvciBEcmFnb25GbHkgMwoKY29tbWl0IGU1YzlhMzJmNzllYWMyZTg1NTI3YzljZjA1MDg3Y2RhZTliMzVhNmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIwOjU5OjUzIDIwMTIgKzAyMDAKCiAgICBEcmFnb25GbHkgbmVlZHMgX0tFUk5FTF9TVFJVQ1RVUkVTIHRvIGNvbXBpbGUgaXB2NiBjb2RlCgpjb21taXQgY2Q0M2JjMDlhMzliZDk3ZmY1ZTcxOWEyY2UyMzJjZTQyNDYwMGE2NQpBdXRob3I6IERhdmlkIEltaG9mZiA8ZGltaG9mZkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTo0NzoxNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzUxMDQ1NDogQWxsb3cgdGhlIHVzZSBvZiAwLjAuMC4wLzAgYXMgYWxpYXMgZm9yIGRlZmF1bHQKCmNvbW1pdCBlMmZjMTVmOWU1YTZlM2UzNmJlNWY0ODk2MDFjYmY2YmY3MzE5MTdmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToyMTozOCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDQzMmZlM2RkZjU0ZjJjOThmOTM2OTU5NDY5Y2I5YjAxNGQ1OTlmMDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjEwOjUyIDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIHBlcmwgdG8gZG8gcGFzc19wZXJzaXN0IHRlc3QKCmNvbW1pdCAzN2QyNzcwY2Y1MGM5ODAyM2VlYmE5MGUyNWQzNzJiZmY3MzE2YWRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2VyLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjA2OjQwIDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgODZhOTQ4ZDg2OTFlODgxZDU1NTkxZGNhYmRkYzI3MzljZTcyYjMwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAbmJhLWxpbnV4LnNiLnN0YXRzYmlibGlvdGVrZXQuZGs+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowMTozNyAyMDEyICswMTAwCgogICAgUHJvcGVybHkgZmluZCBwYXNzIGhlbHBlcnMgZm9yIHRlc3RpbmcuCgpjb21taXQgZmUyNmEzYzRmMjlmMDQ2YmY2NWVkNTJlOWQ5NDA1NGI2NzVmYmM0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6MDQ6NDIgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogTGltaXQgc291cmNlIGNvZGUgbGluZXMgdG8gODAgY29sdW1ucwoKY29tbWl0IDc0NWJhZmNkY2M5YzhlODQ2MTZkNGUyNzRkYjJhMzg0YmYyMzRkYTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA4OjU1OjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmcgaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgb2YgbnRwZCBjbG9jayBqdW1wcwoKY29tbWl0IGRhNjkyNWU2NzYzY2FkYmUwMmY0YThiYmZlNjhhMzYyZTUzNWFkNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjM4OjM2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKCmNvbW1pdCBmYTYwNmRkN2NhNmFmZjkzMDhkNGU4YjAxYmJjZGUxNDhmNDQxMjcxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjo0OToyMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5naW5nIGxvY2FsIGludGVyZmFjZSBhZGRyZXNzZXMgd29yawoKY29tbWl0IDYxN2E4M2JhNzk5NTc1Yzg0YzY2ZjZiMWM0ODBlZjYzMzE2MWE2NGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI4OjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggYSBzb2NrZXQgbGVhayB0cmlnZ2VyZWQgYnkgcGluZ2luZyBhIHJlbW90ZSBob3N0Cgpjb21taXQgNjI1ZjU1YzI3MmVjNjI4MWUzOGQ4ZTMwZWI1M2ZkNTE1MTZiMDBhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6NTQ6NTUgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQ29udmVydCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB2YXJpYWJsZSBpbnRvIGEgc3RhY2sgdmFyaWFibGUKCmNvbW1pdCBiNDhmMTlhZDRiNGFhNjhjM2UxNmUyYTcyZGYzN2I5YzBjZDM2YzRhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyNDowNyAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBBZGQgbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKY29tbWl0IGQ3NGNiMzk2NjE3NTg5MjU2MmY1ZTNhOWIxNjgzYWNiYTJjMjJlMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQ1OjE4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggc2V2ZXJhbCBtZW1vcnkgbGVha3MKCmNvbW1pdCAwYjFhNzc2NzQ2NzhjYzlhMTViZTNlNzcwMGQzY2VmNjUwZWQwMmM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMjowMDozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG8gbm90IHNlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGFjayBvdmVyIHRoZSBuZXR3b3JrCgpjb21taXQgMTM5MDIzY2QzYWI1MTYzMWNjMTBlMjg2NmQ3MWFiY2Y5OWFlNGMxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTY6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQoKY29tbWl0IDE2OWI2YWFhN2I2MTgyN2NjMWFkMGIzYWVlYWUzYTcyMjlkZDI1ZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUzOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggSVB2NiBzb2NrZXQgbGVhayBpbiBlcnJvciBwYXRocwoKY29tbWl0IGEwYmUzMmFkMDUzYTcxZmE5NjEzNGQ1NWU1NDJiYjA3ZDRmMDI5N2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQzOjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCB0aGF0IGhvc3QgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmUgY2F1c2VzIGEgY3Jhc2gKCmNvbW1pdCBiZjliZmY2NDU1Njc4N2Q3NjZlZTJlZjJkNTc4YWZiOTIwNzE5ZjNhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MTo1NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQ29udmVydCBwcmludGYoKSBzdGF0ZW1lbnRzIGludG8gc25tcF9sb2coKSBhbmQgREVCVUdNU0coKS1zdGF0ZW1lbnRzLgoKY29tbWl0IDVkNzRjMDEyNDU1MjNhOWQ4ZGIxZWRhMjdkMWVmYWUyZWJjMTA0ZmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBOZXcgTUlCOiBWUlJQVjMtTUlCCgpjb21taXQgNWIzOGYwNjJiOTliNmVmMzY3MDhlMmM3ZGU0OTY1YTMxOTI2MTJlOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzQ6NDggMjAxMiArMDEwMAoKICAgIEZvciBzYWZldHksIHNpemVvZiB0aGUgcmlnaHQgdmFyaWFibGUgaW4gbWVtY3B5Cgpjb21taXQgZTVmODI3ODJkYTA1ZWZhN2MwZTZkYzJiZjVhNDFlZTExODY4ZjQ2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzM6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBmb3IgaHJTV1J1biBkYXRhIGZvciBGcmVlQlNECgpjb21taXQgODMyNzU2NWU4MjMyNzBkMTBhNDUwNDU2OGVkYmU1YjVhZTMyM2E1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzE6NTQgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIHZhcmlhYmxlcyBmb3IgT3BlbkJTRC9OZXRCU0QKCmNvbW1pdCAxNzBmNmYwMjdiZjRmOTE3NGI3MDczNTMwZGE0ZDA3ZjQwMGJiYTU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyODo1OCAyMDEyICswMTAwCgogICAgTW92ZSBkZWNsYXJhdGlvbnMgaW4gZnJvbnQgb2Ygc3RhdGVtZW50cwoKY29tbWl0IGRiYjQ1NzNiNjlmYWU4NWNkYzkzMWIyODkyYjVjZTRlNWIxNmIzMjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjIzOjM2IDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIGtlcm5lbF9uZXRic2QgZm9yIE5ldEJTRDYKCmNvbW1pdCBmMTE2ODFmMTVhYWQ3ZDlhNTJmYTI5ODEyZWNiYjUwN2YxYjdmZTI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzY6MzggMjAxMiArMDAwMAoKICAgIENoZWNrIGZvciBvbGQgdGFyYmFsbHMgKGFuZCB1bnBhY2tlZCBkaXN0cmlidXRpb25zKSBiZWZvcmUgc3RhcnRpbmcuCiAgICBUaGVzZSBjYW4gY29uZnVzZSBzdGVwcyBzdWNoIGFzICJtYWtlIGRlcGVuZGNoZWNrIiwgdGhhdCBkbyBhICdmaW5kJwogICAgb24gdGhlIGN1cnJlbnQgdHJlZSwgYW5kIHdvdWxkIGRlc2NlbmQgaW50byBzdWNoIHVucGFja2VkIHNvdXJjZSB0cmVlcy4KCmNvbW1pdCA0NzBkY2Q0YjZjM2ZmMTFmZjBhMzUzMmE3MzQwYTU2Y2ZmZDY5MDk4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzI6MTMgMjAxMiArMDAwMAoKICAgIERvbid0IHJ1biAibWFrZSBkb2NzOyBtYWtlIG1hbmNwIiBpZiB0aGVyZSdzIG5vIE1ha2VmaWxlIHByZXNlbnQKCmNvbW1pdCBjOWFjNDIwMzQzZTE2ZGYyYjcwNjVmNWJmMjc5MGRmNDRlMjQ3ZmJhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6MjY6MTAgMjAxMiArMDAwMAoKICAgIEFsbG93IGRpc3RyaWJ1dGlvbiBhcyBwYXJ0IG9mIG5vcm1hbCBOZXQtU05NUCBwYWNrYWdlcy4KCmNvbW1pdCA1OTk5ZjYwYzU3NzIzZjIzZjNjMjU0YWY1N2ZkYjEwYWYzMDFhOGViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxOCAxOTowMzowOCAyMDEyICswMTAwCgogICAgUmVnZW5lcmF0ZQoKY29tbWl0IDI3NWQyMDQwMzZhNjA3ZTNkZjUwZTg0NDdkNGJjNzU1ZTlkYjAyZmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gQXVnIDI4IDIxOjI5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucy8tLWRpc2FibGUtYWdlbnQgdG9nZXRoZXIgd2l0aCAtLWVuYWJsZS1taW5pbWFsaXN0Cgpjb21taXQgYmRjY2M4NzU3MTAyOTVhYWNmNTBmNzFlYjFjMWQyZWU5N2YzMzZmZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAoKICAgIERvIG5vdCBkZWNsYXJlIHRoZSBsb2NhbCB2YXJpYWJsZXMgZm9yIG9wYXF1ZV9zcGVjaWFsX3R5cGVzIHVubGVzcyB0aGF0IG9wdGlvbiBpcyBzZXQuCgpjb21taXQgYjgwYTY3ZGEwNTJhZGNhMWI1YTY0NGRiODNhNzgyZTE1YzIyMzdjMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAoKICAgIENoZWNrIHRoYXQgdGhlIGRhdGEgZXhpc3QgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0Cgpjb21taXQgZWZhZTg2YmJhNTk2MjQ5MWQ0MmI3N2I5MzUxOTFhM2ViMjVkZDkzOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAoKICAgIFBhcnRpYWxseSByZXZlcnQgIk1lcmdlIHJlbW90ZSBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8gVjUtNy1wYXRjaGVzIgogICAgCiAgICBDb21taXQgZDM1YTE4NjAyMTdlNzIzZTRmODY2ZGQ5OGVmNjYyMTY2NTkzNGM0YSBhY2NpZGVudGFsbHkgcmV2ZXJ0ZWQKICAgIAogICAgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMCAoaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UpCiAgICAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyIChDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MpCiAgICA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjIChSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSkKICAgIDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IgKHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nKQogICAgCiAgICBhbmQgcGFydCBvZgogICAgCiAgICA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiIChBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzKQogICAgCiAgICBUaGlzIHJldmVydHMgdGhvc2UgcmV2ZXJ0cy4KCmNvbW1pdCBhYWVkZDU5Y2MyZGE3MDE1MjdkYzJkMjYxZDRlOWY4NWYxNmU3NTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxMSAyMDo1NzozOCAyMDEyICswMTAwCgogICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCgpjb21taXQgNGI5NGQ3OTY5MThhNGVlYWU2OGFiMjFhYTUzZDQ0NGE4YjVjMjkyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBNYXIgOSAwODowNDo1OSAyMDEyICswMTAwCgogICAgVW5icmVhayBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDQKCmNvbW1pdCAxMGZlNmI4MzMyNGFkMzdkMThiOTM3Y2M4YzZkZTk0ZGU1MzRkMDM1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMzowNDowNyAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBlMTEyMmVkYzFhNWZlNzk3NmIwNjUwNDQxMzRkMzllN2RiNTk4NWVhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjo0MzoxOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBhNjEzZDNhODM0OTEyMjA2ZDFiYTU5NzFlNDQxYTNlYTZiMzZhZjIzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjozMzowMyAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAwZWYzNGU2NTE5ZGZjYjgyYzk3ZGY4NDI3NTQ3YzA4ZGNmODFlNjlhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgOCAxMDoxMTozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHNubXBkICctZCcgb3B0aW9uLgogICAgCiAgICBOb3cgaXQgZHVtcHMgcGFja2V0cyBhZ2Fpbi4KCmNvbW1pdCA4ZTY5NzQyZjE0M2U0ZmMxMTE5NmU1YjJlZDY2YzhmN2Y1M2ZkMDJmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDoyMSAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUxCgpjb21taXQgYzRlMDBiOGMzZTEwMTBjZGNhYjVlNmMwMmQ2MGQ3NWRmOWM2ZGNmMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MDUgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMzk0OTAxMDRhM2FiNTgyMzVhYWNlMmY5ZDg3MWMyNjZkYzQ0ODVlZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTk6MzggMjAxMiArMDEwMAoKICAgIGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlCgpjb21taXQgY2U4NTgzMjkzMmNjZDkxNmM0MjMxOTExNGM0MDg4NWE0NjZhOWQwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1Njo0MCAyMDEyICswMTAwCgogICAgTW9yZSBmaXhlcyBmb3IgU29sYXJpcyBzaAoKY29tbWl0IDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTU6MDg6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcyBpbnN0ZWFkIG9mIDAuMC4wLjAuIE1ha2VzIHRlc3QgVDE2MHNubXBuZXRzdGF0IHBhc3MgYWdhaW4uIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EuCgpjb21taXQgNTE4OTE3ZTlmMzlmN2E5ZDNjM2JmM2E4NjVlOGFjMGUzMDI2ZDYwMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNDowNDo1NCAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IDI2NTE5MDljY2NlYWJmY2ZhZGFmOTQyYzAyNDUwZTI4ZmU4MzdkYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDkgMTI6MDQ6MDQgMjAxMCArMDAwMAoKICAgIFBhc3NlcyBub3cgb24gTWluR1cgdG9vLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTY1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlNDFmMTE1ZTQwMzA0Yzk0MWJhMTdkNjdlMjQ3MTA3MjJkOTA3NDFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEzOjM5OjE3IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXcgYW5kIC1xIGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlLgoKY29tbWl0IDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MjAgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUgaWYgaXQgaXNuJ3QgbmVlZGVkLgoKY29tbWl0IDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMDk6MjI6MzEgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgoKY29tbWl0IDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MzkgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgNDRhYTI2NTg5MWNkNTYzZjdmNDExNGVmMjVkY2Y3YWFmM2IxNGU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IGRhZTRlMTZiZTg2MTE3ODYxZjYzZDFhMmY5ODFhZDM2MTQxOGY1YzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCAyOGY2MjI2ZjJlMjI4YjhjYTI0ODQ4OTczNWY4NjUwMmIyY2NlMGExCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNDAwMjJhNjk3OTU4MjU5Y2NmYmIzZmVkNDRlYjNjNDcyZjVlODM3ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgNCAxMDozNzo0MSAyMDEyICswMTAwCgogICAgU29sYXJpcyBzaCBkb2VzIG5vdCB1bmRlcnN0YW5kICJ0ZXN0IC1lIgoKY29tbWl0IDc3M2FmMGM0MmUwNzdiZWJkYWVjZjFjMGNhZjM5MzI4NWE3Njg4ZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTc6MTk6MzAgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKCmNvbW1pdCBlZTcxMDQ5YzNlMjFjMWQwZTM0MjQyOTcxMzY2NTJiYmUwZTM5ZDg1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE2OjQ5OjQxIDIwMTIgKzAxMDAKCiAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCgpjb21taXQgY2U5NjAwMzYxZTY2NWRkZTE3YWY5ZDhhYjE2ZDdjZTg1ZGMwNTY0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozOTo1NSAyMDEyICswMTAwCgogICAgZG90M1N0YXRzVGFibGUgaGFzIGJ1Z3MgOi0oCgpjb21taXQgZGZmYWNmNmZhMDc1NWUxNzAwY2JhYzI1Yjg0NDE4NWFiZDgwN2EwYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozODoxMCAyMDEyICswMTAwCgogICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCgpjb21taXQgODcyNjk5NWM3YThhZWY2NzRjNGYxNjRiMTg3MWMzN2JiZGNkYWQ1MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNjo1OCAyMDEyICswMTAwCgogICAgZ3JlcCAtdyBmYWlscyB3aXRoIE9wZW5CU0QgYW5kIFNvbGFyaXMgMTAtNjQKCmNvbW1pdCAxZWI0NzQ1YjIzY2MzYTgzOTg2NGU3ZjZlYTI4MzU1YjA1NjZlYjY3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM1OjQ5IDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzIC91c3IveHBnNC9iaW4vZ3JlcCB0byB1bmRlcnN0YW5kIC1xCgpjb21taXQgOTk1NGI0Yjc0MWZkOGM2M2Q2MTI4YmQwNTI3Mjk4YzhlNGU5ODlmYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNDo0NSAyMDEyICswMTAwCgogICAgTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHByb3BlciBzcmNkaXIgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCgpjb21taXQgNzgzNjkwMDJiZTI3MTFmMGFhODc2YjY0YTRlMTBiMDkwY2MyNDFjZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozMzozMSAyMDEyICswMTAwCgogICAgTm90IGFsbCBtYWtlIHZlcnNpb25zIGRlZmluZSAkKFJNKQoKY29tbWl0IDk0MjQ1YjI5YTNjZGE4OTQ3NWM2ZWFiNWQ5NDkzYzY2NTdmZjM4ZTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MjQ6MjQgMjAxMiArMDEwMAoKICAgIE1ha2UgYXV0b2NvbmYgMi42OCBoYXBweQoKY29tbWl0IDQ0YWNkNmMyODVmYjU2MTRiNGM5NjExYjFhYmRlY2E5ZGQyOGU0YmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBvZiBtaWIgbW9kdWxlIGZzeXNfZ2V0ZnNzdGF0cwoKY29tbWl0IDFmYTFmZWUzNjkzZjY3YjgyMDIyMzgwNmIzZDczYWZkNGM1MGVjMTgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDIgMDE6Mzc6MjAgMjAxMiArMDEwMAoKICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDkzMjYzYjk4YTVkYjM0NGNmMmM0ZDQ4OWM0Mzk3MWU3YjI5Y2RiMDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEzOjM3OjIwIDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDVhMTc1NDI4Yjk3M2QyZWE4NTUzZTI5ZmVjZjk0Y2YxNTY2YWE4NTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ4OjE4IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDM2NDI3NmExYzVhYTY2Y2FhMjNlYjViN2YxMTFmZGViNWFmNzFmYTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ1OjEwIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucHJlMQoKY29tbWl0IDczNTk4MzQwMTcyZWZmNzU3MjlhNmQ1NzE5MmI4MTcxZDViYmYwMGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjU2IDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnByZTEKCmNvbW1pdCBmMzIxNDQwMjY3MmNhMTk5ZmQ1MzFlNjYxMjJiZjk2YzRkOWE0ZWI3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0MjozOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAyZTc0YWNiNmYxOWU0NzI5Y2VkZTBhYjQzZTkzMTk2MWNiMjNhYWVhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA5OjE4OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogRG8gbm90IGluc3RhbGwgdGhlIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyB0aGF0IHdlcmUgcmVtb3ZlZCBpbiA1LjcKCmNvbW1pdCBiNzEwOTY0NmI5NWE3MDcxM2QxYWQ5OTFkNDFiY2NkNTdjMGJiM2ViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA4OjQ4OjQ4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgaW50cm9kdWNlZCBpbiA1LjYKCmNvbW1pdCA0MzJjYmI3YTU1MDFhYjkwZDY2ZDBhODNlNzMxZTczNDNiYzA0YjM3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEZlYiAyNSAxMDoxMzoxNSAyMDEyICswMTAwCgogICAgQ29ycmVjdCB0eXBvcwoKY29tbWl0IDZhNmM5YmJjNzU4NGYxOTZhMTE4NWNjMTkzNTIwNGYxMjA2ODExZWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgRmViIDI5IDA4OjU1OjM1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKCmNvbW1pdCBkNTE1ZTJhNmU0YzJhMWM0ZDg0NzM0Y2M3YjJkMGIyZmM1YTg5NGFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTY6MjEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDg3OTE5OiBGaXggY29tcGlsYXRpb24gd2hlbiBjYWNoaW5nIGlzIGRpc2FibGVkCgpjb21taXQgYWY4MzY4ZWQ4ODk4YTc4ZDA4NjhiNDdhZjQ2YmM5ZGIwN2QxYzc2NApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjUwOjU2IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDE0NzczOiBFbmNvZGUgaW50ZWdlciB2YWx1ZSB1c2luZyBBU05fSU5URUdFUgoKY29tbWl0IDE5ZTI3MTU4MDdmZTA2ZmQwYmFlZGY4ODE2NTAxMWFlZTkzM2U3NTUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNDowNTozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogbWFuOiBCVUdTOiAzNDkwNzA4OiBDbGFyaWZ5IHVzZSBvZiBjb21tb24gY29tbWFuZC1saW5lIG9wdGlvbnMKCmNvbW1pdCA2NWY3OTYyZjkzMmM5Yjc1YzViYmJiMDQ3ZDFlMjZhZTYwOTc4ZTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTI6MjM6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDg5NjMxOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKCmNvbW1pdCBhYzE2NjA1MWI2YTA5MmRkNGE1OTQzMjZlYzg1ZTJmNjk5YjYyNTQ3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTE6NTc6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEJVR1M6IDM0NzQ1OTA6IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKCmNvbW1pdCA4NzliZjcwNzlkMzRmYTQ2ZjZmY2Y1NGEwMWM4NTAwYmVhZWNlNTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6NDQ6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCgpjb21taXQgMDM0ZjFjNTcyZjY4M2VhNDI4NTgzMDc0NDcxZTVkNWQxM2I1MTgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjIyOjIwIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgMzY0MjNlMjEwYmZiNjVlZjEyMWM2YTY2YWVjNDM4YzdjMjM3ZDNkZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjAzOjI1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgZWVkMGJjYmM0M2ZlYTE4MjU5ZjBmNjNiMjA4MWI2ZDEwNTM1YTA1MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDA5OjI3OjExIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCiAgICBJbnNwaXJlZCBieSBidWcgIzM0NTQxNjgKCmNvbW1pdCBlYzZhMjMwMzBlNWEyMDcyYzE5YzE4YzFkOWMxMjQzODdkYTU2YjdiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyNyAxODo0Mjo1OCAyMDEyICswMDAwCgogICAgQWRkIC1scnQgdG8gTkVUU05NUExJQlMgc3VjaCB0aGF0IGNsb2NrX2dldHRpbWUoKSBjYW4gYmUgZm91bmQKCmNvbW1pdCBmMTMzMjA1MDAyOTRiYjI0MGY2M2M2ZGQ3ZDJlOWEyMjA4ZWI3NDBkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTY6NTI6NTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29tcGlsZWQgdXNpbmcgLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgYzQyNzZiNjIzMmMyOTE0NWMwMzk4ODRlNmI1YTZiNmRhNGI5MzgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjU0OjQ1IDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDAxYzkzMGVkY2MyNTcwMGQ2YjVmYjAzNzZmNTVhMjY0MjVlMTNmYjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNToxNzoyMiAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0CiAgICAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgOTQ4NGQ4MzIwM2M0ZTJkODIwNDE2YmU2NjVmYTgzM2FhNzA0NDRkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMjQgMTQ6MDA6MzIgMjAxMiArMDEwMAoKICAgIFJld29yayBjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMy4KCmNvbW1pdCAyYjdmMTM0OTUyMjg2MzVkODE2ZTU4YjIxNzRkYzEyNGRkMGNmMzlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCgogICAgc2V0IE1FUkdFX0FVVE9FRElUIGJlZm9yZSBtZXJnaW5nIHRvIGF2b2lkIHRoZSBmdXR1cmUgZ2l0IDEuNy4xMCBmb3JjZWQgbXNnCgpjb21taXQgZTFiOTEwYjBiZTkzNDM1ODZhZTllZGJhNmY0NjA0MGFmMzE1ZmNkZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBpbml0X2FnZW50KCkgKyBpbml0X2ttZW0oKTogUmV0dXJuIGFuIGVycm9yIHZhbHVlIGluc3RlYWQgb2YgaW52b2tpbmcgZXhpdCgpIGlmIGFjY2VzcyB0byBrZXJuZWwgdmlydHVhbCBtZW1vcnkgaXMgZGVuaWVkCgpjb21taXQgNDYzZWVkMjEyMGY5ZDE5MWJjMjI2NzM0OTZhNDllODE3NDY2NGU0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBzeW1ib2wgTkVUU05NUF9FWElUX09OX0JBRF9LTFJFQUQKCmNvbW1pdCBjMzZhYjcxYTRlMDk2ZjE2Y2M1YTU1NTMzZjA4MGM5YTk0MDA5OTE0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwODo1Mzo1NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogc25tcGQgKyBhcHBzOiBTZW5kaW5nIFVEUCBwYWNrZXRzIHdvcmtzIGFnYWluIGZvciBub24tcm9vdCB1c2VycwoKY29tbWl0IGVkZWJkZGJhOTMwZjhiMTQ3MmZhMGJkMjBmYzQxM2VmOGNmNDY0YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDExOjMxOjQ2IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL1JVTlRFU1RTOiBGaXggYSBiYXNoaXNtCgpjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTY6NTg6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCAlbGQgdmVyc3VzIHRpbWVfdCBvbiBzeXN0ZW1zIHdoZXJlIHRpbWVfdCBpcyBhIHN5bm9ueW0gZm9yIGxvbmcgbG9uZyBpbnN0ZWFkIG9mIGxvbmcuCgpjb21taXQgZDg5NzhlY2M4MjExYmU3YzFlNzkwNWYxZTIxNWJiMDZkZWQyNjZiNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTI6MzI6MjUgMjAxMiArMDEwMAoKICAgIEZpeCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYyBmaWxlIGhlYWRlcgoKY29tbWl0IGFhNzY2ZDE5NmU1Mjg3ZjZjYTc5YjU4YTM0NWIwMjQyNjBhYmEzNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE3OjA3OjEzIDIwMTIgKzAxMDAKCiAgICBJRi1NSUI6IGRvIG5vdCB0cmlnZ2VyIHVuZGVmaW5lZCBiZWhhdmlvciAoPj4gMzIgb2YgYSAzMi1iaXQgdmFyaWFibGUpIHdoZW4gdXBkYXRpbmcgYSBjb3VudGVyIGFuZCBpZmlfaXBhY2tldHMgaXMgYSAzMi1iaXQgdmFyaWFibGUKCmNvbW1pdCBjM2ZiNmRkOWU2Yjk5ZTk1NDI0OTMxODg5ODc4NzFmYzUwMTdjYjNjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwOTo0NTo0NSAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBvbiBzeXN0ZW1zIHdoZXJlIG1vZGVfdCBpcyB1bnNpZ25lZAoKY29tbWl0IGY4YTNlZjBkM2Q0ZTUzMDI3OTkwMDEwMTA0OWI4ZGU5OGE0NGE2ZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDg6NTIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWIgKyBzbm1wZCArIHNubXB3YWxrOiBBdm9pZCB0aGF0IHN5c3RlbSBjbG9jayBjaGFuZ2VzIChlLmcuIGJ5IG50cGQpIGFmZmVjdCBjb2RlIHRoYXQgbmVlZHMgcmVsYXRpdmUgdGltZQogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IHRoZSByYW5nZSBvZiB0aGUgU05NUHYzIHZhcmlhYmxlIHNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YgMC4uNDI5NDk2NzIgb24gc29tZSBzeXN0ZW1zIChpLmUuIHdyYXBhcm91bmQgYWZ0ZXIgNDk3IGRheXMpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwgbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKSwgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZXByZWNhdGUgYXRpbWVfZGlmZigpLCBhdGltZV9uZXdNYXJrZXIoKSwgYXRpbWVfcmVhZHkoKSwgYXRpbWVfc2V0TWFya2VyKCksIG1hcmtlcl90dGlja3MoKSwgbmV0c25tcF9tYXJrZXJfdXB0aW1lKCksIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSwgdGltZXZhbF90dGlja3MoKSwgdWF0aW1lX2RpZmYoKSwgdWF0aW1lX2hkaWZmKCkgYW5kIHVhdGltZV9yZWFkeSgpLgogICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgc3RydWN0IHRpbWV2YWwgbWVtYmVycyBvZiBkYXRhIHN0cnVjdHVyZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgYSB3YWxsIGNsb2NrIHRpbWUgYnV0IHRoYXQgZG8gbm93IGNvbnRhaW4gYSBtb25vdG9uaWMgY2xvY2sgdmFsdWUKCmNvbW1pdCBjMTk3NjBmMzMzM2M5MmZhYzVkNTBlOTc2OGNkZjkzOTIxOGJjNDg3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxNSAwOTo0NTowMyAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wdjMuYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgYTZkYjIzOTk0NWUxOTVkZTVhOTBmYTE4MzcwMGIyN2E2ZWNiMjhkMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgNyAwMDoxMToxNCAyMDEyICswMTAwCgogICAgRml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZyb20gcmVjZW50IGRlY2xhcmF0aW9ucyBwYXRjaAoKY29tbWl0IDBmYmJiOWE5ZTI5MDZhN2FmOTU2OTU3MDYxZDQ4NTg3NDQ2MmFlYTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NDM6MDQgMjAxMiArMDEwMAoKICAgIERvIG5vdCBtaXggZGVjbGFyYXRpb25zIGFuZCBzdGF0ZW1lbnRzCgpjb21taXQgZjMwOGQ1YmFmYjA1ZDc4ZWQ0MDMwYzRlY2ZmMzI0YjZjYmRhNjgwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQ2ZjBmYzFiN2ZjMjZhMjI1NzYzYmM2NWNjYTUyMGExYzU5ZjAyNTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NTQ6MzIgMjAxMiArMDEwMAoKICAgIHNlbmRtc2cgZG9lcyBub3QgbGlrZSBJUF9TRU5EU1JDQUREUiBpZiBhZGRyIGlzIElOQUREUl9BTlkKCmNvbW1pdCBkZWJhYzQ5OGZlODQxMDExMDEwN2EyZmU2NGY4YWZiNzQ4ZWRhYTA3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAxNjo0ODowOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCgpjb21taXQgZmFmYzk5Y2Q4OWU3M2VjN2UwMGJmNzM2MGQwYjRmYTYxOTQ0YTRmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxODozNCAyMDEyICswMTAwCgogICAgU2ltcGxpZnkgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZCBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKCmNvbW1pdCA3YWYyMDEzZGU4YmYxYjM3OWMwNzZkYjRlMTA0NTA4ZTE3ODc0ZDNlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjU1OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggb3JkZXIgb2YgZmVhdHVyZSAjaWZuZGVmIGFuZCBEb3h5Z2VuIGNvbW1lbnQgYmxvY2sKCmNvbW1pdCBiYmQ2N2Y2MzUzMGY1ZWYwYmZjOTQ4ZmM1OGRmZTZhOTNmOGY4Njc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDJhNjZhZWZmMjViOWU5ZWY2MzVhNDA0YWQyZjUyMTJmOWU4Y2YwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0Nzo1NCAyMDEyICswMTAwCgogICAgUmVuYW1lIHR3byBmdW5jdGlvbiBhcmd1bWVudHMKCmNvbW1pdCAzZmU3MmIzYjk5YjdlNGIyYjk4MjM2M2RmYzRmMmQ4ZDEzZjQwNTkyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDEzOjQ5OjIyIDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHNubXBfc2VsZWN0X2luZm8oKSBkb2N1bWVudGF0aW9uIHRvIERveHlnZW4gZm9ybWF0Cgpjb21taXQgZTlkYjI2NmFlNDhkMDVhN2E2Y2I1ZDcxYjRiZGVhN2FkODA4ZWY1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxNzo1NyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9uZXh0X2FsYXJtX3RpbWUoKQoKY29tbWl0IGQwODA0NGNiOWU1NzAyZmJmNTQ5ZTE0NDI1ZjQyNzk0MjU5ZDhhMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMDk6Mzg6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCgpjb21taXQgYTA1YzI3YzI3MTFjYjQxNTgyYTNiNGMzMWUzOGIwZTkzNTMwYjYyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1MTozMyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIGluIGEgc291cmNlIGNvZGUgY29tbWVudAoKY29tbWl0IDkxMGQ3YjBkOTkxODM2MDliOTUyOWIwNGMzZjI5MzMwZWI2NjEwMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6Mzg6MTIgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpIGJ5IG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpCgpjb21taXQgNDNhODNmNmM2YTk2Y2MyMzE2YjcwZWVjYWNmMTI3ZWI2OTEzYzdhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxOToxNSAyMDEyICswMTAwCgogICAgVXNlIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGluc3RlYWQgb2YgbWVtY3B5KCkgZm9yIGNvcHlpbmcgc3RydWN0IHRpbWV2YWwKCmNvbW1pdCAyZmU1NzllZmIxY2IzYTc0ZjgyODAzY2EzMjM5MjhmNmI4ZTRiNWMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDE0OjA0OjAyIDIwMTIgKzAxMDAKCiAgICBNYWtlIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyBidWlsZCBhZ2FpbiBvbiBub24tTGludXggc3lzdGVtcy4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUuCgpjb21taXQgODgxZGU2YWI3MzU1Mjc3YTVjMTE2YTAwOGZiZTUxMzI5M2IwNTAzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxMDowODoyMSAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgUm1vbiBNSUIgaW1wbGVtZW50YXRpb24KCmNvbW1pdCA0NjI5OTMzYzBkM2IzZjlmNGJhNTgzNTM0Zjc5YTM3ZmI5NjMzODE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDIwOjA1OjMxIDIwMTIgKzAwMDAKCiAgICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBlOWI1YTNkZWU2ZjlhZmFiOGI5MGEyOTM5MjA0MDYzMmIwNzVhZDdhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE2OjU2OjU1IDIwMTIgKzAxMDAKCiAgICBVc2UgU05NUF9NSU4oKSBpbnN0ZWFkIG9mIG1pbigpCgpjb21taXQgYWU0NTJjNzdiNDExMTM5ZDZiNTgwMGZmY2Y4OGQ0OGU5YjQ3OTJhOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToyMzozOCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCBjN2QxMWZhMDBmOTk5NWRkYjlmZTNkNDk5NGEzZTk3OTBkYTJlMTg5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjE4OjQwIDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3IHBhcnRpYWxseS4KCmNvbW1pdCAwMGZkNjI3MjBlYzQ1NGY1YTY5MGRlNGZlYmEwODIyM2NmYjJjM2Y4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ4OjQ0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEF2b2lkIGNyYXNoIGR1cmluZyBzaHV0ZG93biBkdWUgdG8gaW52b2tpbmcgcGVybF9kZXN0cnVjdChOVUxMKQoKY29tbWl0IGQ5ZTIyOWQ4MWFiZWFmMTkxZWYyY2NiMDc3ODQyODg1YzIzMGQ2MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDc6NDEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIGRlY2xhcmF0aW9uCgpjb21taXQgMWUyZTJhZjZjYWU4MzBmMzgxZTg3YTI0NGQwMjllYjg2YmYzZmNjZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMzoyMDozNyAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGw6IEFkZCBlcnJvciBjaGVja2luZwoKY29tbWl0IDI0MWExNDFlMzFmMTY4NGZjNmNmNzBjYzRhMDBjY2U2MzZmZDM1MjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6Mjg6MzcgMjAxMiArMDEwMAoKICAgIE1ha2UgY29uZmlndXJlLXRpbWUgRVZQX01EX0NUWF9jcmVhdGUoKSBkZXRlY3Rpb24gd29yayBvbiB0aGUgNS40IGJyYW5jaC4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAuCgpjb21taXQgNmQ5ZDE0ZmVhYWEyZDBmZWM2OGI0ZDE1ODk0NGQzMmNiMDRmZjFiYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToxMjowMCAyMDEyICswMTAwCgogICAgUmV2ZXJ0IHRoZSBjaGFuZ2VzIHRoYXQgYnJlYWsgdGhlIGJ1aWxkIG9uIHRoZSA1LjQgYnJhbmNoIGZyb20gY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgOGFiZTQ5ZTMwYzk3Yzg5ODNlODNiNDVhMzVjNzE2ZmU5MWY2NmJlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMSAxMTo1Njo1OCAyMDEyICswMTAwCgogICAgRml4IHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gdGhlIERJU01BTiBNSUIgaW1wbGVtZW50YXRpb25zLgoKY29tbWl0IGY5ZmIwYTUzMzM3NWUxNGRjMzcwMDI1YTBiMmZiYzc2MWJmMjdiZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMDk6NTY6MDIgMjAxMiArMDEwMAoKICAgIFJldmVydCAiSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nIiBiZWNhdXNlIGl0J3Mgd3JvbmcuCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMy4KCmNvbW1pdCBjYTRhNGZlMjVlZmQyNzE0ZjhmMTk2MWI5Nzg1NjYxNjU2M2Y0MmM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEwOjIxOjQ5IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBBZGQgcHl0aG9uL2J1aWxkCgpjb21taXQgMTNhZGE1NjU1OGI0NGUyOGQxMzU1YzBkY2UxZDkyMWYzNzQ2ZDU0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjUzOjQ5IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIlJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiIgLSB0aGVyZSAqaXMqIE5FVFNOTVBfUFJJbyBpbiBWNS02KyBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQuCgpjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCAyZmI5OWJlOWFhODZhNmNhMzQ5Yjg2ZDRlZjhiYzcyNmVkOWYyYTgyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTg6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGU1YzM1NTg5ZTBiZjQxNmJmZDAzNmJkNDY4ZjQyYWFlYWIyNWU3ODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1NTo1NiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjUxOjI2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlcnJvciBoYW5kbGluZyBpbiBpbml0X2ljbXAoKS4KCmNvbW1pdCBjMzAzNTQ5YTU5ZmE4YzJmMjBhOWQ4YmYxZTk4NWZiYzhhYmRlNmE4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NDY6MjkgMjAxMiArMDEwMAoKICAgIFJld29ya2VkIF9yZWdpc3Rlcl9leHRlbmQoKSBlcnJvciBoYW5kbGluZy4KCmNvbW1pdCA5YzIwZTI3YTcwMjZmYzAzMGRhM2IzMjhiOWEyZTFiNGYzNjY3MGNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjE6MjggMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDIyZmQwYmZjMmRmMGUxZjYwMjBkYzNjNTBhNzUzZGRmMjhhNDU5OWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMDoyMiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNWQ2MWU1N2JhZjU4MGM3ODI1MmMwYWJiMDA5OGMwN2JiMDVhZjE3YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjE3OjA1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzYzNlZWFlODBkNzk2ZjI3NTk3YzkwMWU3ZmYyMDQ2Yzc2OWVmNGI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDg6MDkgMjAxMiArMDEwMAoKICAgIE1hcmsgcm93cmVxX2N0eCBhcyBmcmVlZCBzbyBuZXh0IGl0ZXJhdGlvbiBhbGxvY2F0ZXMgbmV3IG9uZSBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlIGZyZWVkIG9uZS4KCmNvbW1pdCBhZjlhYmQ1M2MyMzM3YzkwYTY5MWE3YjA0NGZmM2Y5N2MxMDAzMTYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDU6MTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGNmOTQ2NWY1NDE4MWU2MmUyMWE5YjEwMjE5MTMxMTA3YTNkMmViZjYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNDowNiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNzg3MWYyYjA5YjhiNTJmMzRhOWU1Nzc4NDI2NjQ1OTA1MzE2NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAyOjUwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3YTM3ZjMzZDMxMGM5NTk4NjA3YmMzMjNkOWJkYmY5MWFhZjcyYzk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDA6NTEgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNlNDVmNzAyNjI0OWU0NTM1MGVkYWFjODUzMzc0MjNhYTBlOTVkOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgNjE5MzY3NjJlNjQxYzE4ZGI3NWFhNTEyNWEzM2U3NzZjNjc3YWRjNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjEzOjM5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBmcmVlaW5nIHJlZ2luZm8gdHdpY2Ugb24gZXJyb3IgaW4gYSB0ZW1wbGF0ZSBhbmQgYWxsIGl0cyBpbnN0YW5jZXMuCgpjb21taXQgNDk2NDM3NDMwNDE1ZmJhZmViMWNjZDQ3NzRmMWNhMDBkNjI3ZWExZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MDQ6MTMgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbnRyb2R1Y2VkIG9uIFY1LjYgYnJhbmNoCgpjb21taXQgNWI0YTI0Y2RjZWUxYmMzZDgyNjMzY2NhZmViOTZmY2U5NTM0OWM1OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjI6MjcgMjAxMiArMDEwMAoKICAgIHVuaXQgdGVzdHM6IGZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgY2JmMWM5MWJhZjcxOTFiZTVmYTI3ZDgxYmNmODcxNDMzMWEyYzEyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6NDIgMjAxMiArMDEwMAoKICAgIFVzZSBzbm1wVGFyZ2V0UGFyYW1UYWJsZV9kaXNwb3NlKCkgdG8gZnJlZSBhIHN0cnVjdCB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdC4KICAgIAogICAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZi4KCmNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDozMSAyMDEyICswMTAwCgogICAgSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgM2E3NmI0M2UxMWZmZmFkYTYzMmZjY2I4NDhhYjUwMGU4NzZhZDQ4YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTY6MjE6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogQXZvaWQgdGhhdCBhbiBTTk1QIHNldCB3aXRoIFVzZUVudW1zIGVuYWJsZWQgY2F1c2VzIGEgc2VnbWVudGF0aW9uIGZhdWx0Cgpjb21taXQgODRkZWM5ZmE5MmIwYWEyZDU4ZWI3MDIwMzMwZjRmOThlNTE1NDMyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6Mzg6MjEgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgMzhjZjIxOGMzZjFhNzI3Nzg2ZTIyN2E1ZDNmYjE4NmZkMGYxYTE1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjUwOjEzIDIwMTIgKzAxMDAKCiAgICBGaXggYSB0eXBvCgpjb21taXQgNDU0MTIyMjQ0MTIyYmZkYjZmNjdjYWIzMTI1NmQ3YjQ2MzcyZTllMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjMwOjE4IDIwMTIgKzAxMDAKCiAgICBGcmVlIHRtU3RhdGVSZWYgb24gZXJyb3JzLgoKY29tbWl0IDAxMTkwMjJkYWE1OWM3M2JmZWMwZGEyMzg2ZDA2MjhmMTRlNmRhYjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDowOToxMiAyMDEyICswMTAwCgogICAgRnJlZSBmaW5nZXJwcmludCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KCmNvbW1pdCAwZTg0Y2QzMDNhMDgyNjdkZWM3OGY2ZDgxYzliYjA3ZTNkODNhMTFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDg6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2M2RjODQ2YTc5NDljZTY5N2IzZTI4YzU0M2RjMTEwNWU2M2EyMjUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDg6MjggMjAxMiArMDEwMAoKICAgIEZyZWUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQuCgpjb21taXQgY2UxZjI4NGE2M2ViODE2NDRiM2UzMjYwNmNiZTM5YjY3ZTFkZmYyYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjM3OjA5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgN2UyMTQxM2NhNmYyZWZkN2EzYWZiNjJjNjJiNjQ0ODgxYjhiZDFlNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ2OjMwIDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBhbGxvY2F0ZSBhbmQgZnJlZSBlbmdpbmVJRC4KCmNvbW1pdCAzNGM5NjI4ODI2MDdjMzYzOGEyZmEyNWEyYWM1MzE0OTJkNzFjNzg3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6Mzc6MjUgMjAxMiArMDEwMAoKICAgIEZyZWUgbG9jYWxseSBhbGxvY2F0ZWQgdG1TdGF0ZVJlZi4KCmNvbW1pdCBmNTdhZTUzMWRjNTY1OGFiY2Q2NWIxNjI3NjE1NTI1MjM4ZDE2ZDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MjA6MjQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1MzZiYzU3NTU2YzMxNDE1NjFlYTRhMTk0ODEwYjE2MjkwYTY5MWVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MTU6NDcgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBhY3R1YWxseSBkb2VzIHNvbWV0aGluZy4KCmNvbW1pdCBhMDc3N2QzMDdkYmNhZjIxOWVlMDE4NGEwZmJhYjlkNGU1ZDZhYTBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDE6NDUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA4Yjk3YTcxYzhlNzk1OTQyOGViNGQ0ZThkOTBlOTA5NmQ0M2ZmMDlmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTc6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYzE1MDdjMjIwMzA1NDlhZTY2MGMwZTIxMWZiZGM1Yzc1ZWM1YzU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTM6NDcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2NWYyYjdiY2Q0ZmUwMzkwNmFhMWExMTVhYjYwYTg5YjhhZTkzM2Q1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTE6MzYgMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZXMgb24gZXJyb3IuCgpjb21taXQgMGU1MmU0ZjY2ZDQ0NzY2YmVhMzc0NzM1NTZjNzhlNTIxOWI5NTQ2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQ1OjMzIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQyOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNzQ4ZGE4NGIxZmQ2NTRlMzM4YmM3MDFlOGY5ZTVkYTIyOTE4N2YxYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjMyOjA0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZWIyMTcxNDZmZDU0MDM2ZWE0MjAyYmZlZjc4YmJmNzc0ZDdlMzgyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjIzOjEwIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOWJhMzhlZWM2NjEzOGVjMWY2MTNlYThkMDRlMTU4MTMwYzcxMjFiYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE4OjU1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZDlkOTM4ZDMwMThjMjdmNTMyNzdiYzVlNTk1Nzg1MDA0OTBjMWQwOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE2OjM4IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGUgb24gZXJyb3IuCgpjb21taXQgZDVlODE3ZDViZDUxOGQ5YWM2YTBkNjBlMGUxNDFkZDY0ZjI3YWQxOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE0OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmFlNjhmMDU5ZGY5ZDc0YjA3NGQxMmY1OWMxODQ3NDY2ZWQ1NzZjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjAzOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgYTAwZjNkNDYxMTIxYjU0NWFlZDcyYWMxMmIyNDM4NzkxZGNmYzRiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjU4OjM5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTk4ODRiYjRkMzVhZDEzNzQ3ZmZhNjcyMzQzNmRjYTU4N2E5YWI3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBJbiBhYm92ZSBjb2RlLCBvbGVuZ3RoIGlzIGNoZWNrZWQsIHNvIGxldCdzIGNoZWNrIGl0IGFsc28gaGVyZS4KCmNvbW1pdCBiYTVkNTI5MmIwNDM5M2IwYzdkN2Q3ZWQ5NjEyNDE5Mjk0MThjNmU0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDU6MTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBkYTJkNmE3MDI4YTEzYjllZGYzYTVjODQzMTRkMGYxZmVlZjc2NzE0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6NDQ6NTYgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IGY4ODA1NGE5YjY5YjZkZTI3NGY3YTE0YTU5YjQ3MzIzZTVlNGU0YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozNzozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgY29udGV4dCBpZiBpdCdzIE5VTEwuCgpjb21taXQgN2M0ZDQ1OWU4ZjFmNjUyY2MyMDk4YzNkNGM4MWRlOTBhODRlZDcxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjMwOjA5IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZWZlcmVuY2UgTlVMTC4KCmNvbW1pdCBmYzE5YjdmMzNiNTg3OTI3ZDJhMDFlNzJkMjNkMjFiOWIxNjk2YWIzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MjU6MjYgMjAxMiArMDEwMAoKICAgIERvbid0IGNsb3NlIE5VTEwgZmlsZS4KCmNvbW1pdCA1ZTk1Y2E2NzkwMDc2Yjc4ODA3MmE4MDFlZTdjODI5NjlkOTk1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTc6MDkgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMIHdoZW4gYSB0cmFuc3BvcnQgZG9lcyBub3QgaGF2ZSBmX2ZtdGFkZHIuCgpjb21taXQgZWVkNmY1ZjliOWFlNTRkMmNlYWI2N2FkODVhZGRlMWY2YThhMjFkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEzOjEzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCA0MWNkZTY4YjVmYTRiMzhkODE0NTBjZjkxZTA4MmNkZmE4MjVlN2NmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTA6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGlmIGEgcmVnaXN0cmF0aW9uIHdhcyByZWFsbHkgZm91bmQuCgpjb21taXQgNWI3MmE0MDg1Mzg3NmExODZlZmNjMDA5MGE0ZTMyYzIzNWI5YzA1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjAzOjU4IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHdoZW4gZGlmZmxlbiBpcyBTTVVYX01BWF9QUklPUklUWSAod2hpY2ggaXMgaGlnaGx5IHVubGlrZWx5LCBidXQuLi4pCgpjb21taXQgZmE2YTkxMmU0MWM1ZDBmZDJhNjM2ODk0ZTg2YjY0MjZjMDczNzVhYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjM3OjQ0IDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2YWx1ZSBpbiBzZXRFdmVudC4KCmNvbW1pdCA0MTBiNzFkYTQyNTM4OWZlY2MyNWQxNGY0OWYyMzc1MzU4MTU3NmFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mjg6NDEgMjAxMiArMDEwMAoKICAgIERlcmVmZXJlbmNlIGVyZWcgb25seSBpZiBpdCBpcyBub3QgTlVMTC4KCmNvbW1pdCAxODUyNzJkMWEwYjkxMzc3NDE4NmYxYjkxMzVhZWFmNjM3ZWJlZDUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6MTc6MjEgMjAxMiArMDEwMAoKICAgIEFzIHBlciBhYm92ZSBjb2RlLCB0ZW1wbGF0ZV92MnBkdSBjYW4gYmUgTlVMTCwgc28gY2hlY2sgaXQgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgpjb21taXQgNDhlNWVhZDNmZDJjMmIzODVkZjY5NzJjNjc1MjZmZjZiZGMzMDc2OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjQyOjIyIDIwMTIgKzAxMDAKCiAgICBVcGRhdGVkIGxhc3QgZml4IHRvIG5ldyBlcnJvciByZXBvcnRpbmcgc3R5bGUuCgpjb21taXQgZjMzZDMzNjE1ZDZkODVkMDA3MzcyNjQ3M2M0MTQ2Y2JjZGYxMWNlZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjMwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBzaWdzZWd2IHdoZW4gZW1wdHkgY29uZmlnIGxpbmUgaXMgcGFyc2VkLgoKY29tbWl0IGI1ZGYxZWViNDdlZDM1NTliNmY0ZDllY2NjZGIyNDIxMjZlNmM5OTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDoxMTo1OCAyMDEyICswMTAwCgogICAgRml4ZWQgKGhpZ2hseSB0aGVvcmV0aWNhbCkgc2lnc2VndiB3aGVuIHNwLT5zZWN1cml0eUVuZ2luZUlEIGlzIE5VTEwuCgpjb21taXQgNmZlZWQ2MjlhNzE4OTljMTEzMDk2OTU5ZDg1NDlkYzEyMDFlOGY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjQzOjM3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBOVUxMIGFuZCBsZW4gY2hlY2sganVzdCBpbiBjYXNlIHNvbWVvbmUgcHJvdmlkZXMgdmFsdWUgPSBOVUxMIGFuZCBub3plcm8gbGVuICgtPiBOVUxMIGlzIHRoZW4gZGVyZWZlcmVuY2VkKS4KCmNvbW1pdCAzNTVjNWFiMjY0YWYyYTYwMjBhMWQ4YTkyM2Y4MGYxMWI5NDIyOTVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6MzY6NDEgMjAxMiArMDEwMAoKICAgIEV4dGVuZCB0aGUgTlVMTCBjaGVjaywgaS5lLiByZXR1cm4gaWYgdGhlcmUgaXMgbm90aGluZyB0byByZW1vdmUuCgpjb21taXQgZGRkNzk0OGFjYWQ5MzhjZDQyOTc0NTA1ZGRjYTRmMDM3MjExNjcwOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTE6MTE6MjkgMjAxMiAtMDgwMAoKICAgIHVwZGF0ZSBzcGFydGEncyBjb3B5cmlnaHQKCmNvbW1pdCA0MTI1NjA4NmE3YTUwNDE0NTM0MTljZmQ2ZTU2MmM3YjU1YzU2YjBhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDozMjowNCAyMDEyIC0wODAwCgogICAgcHVsbGVkIGZ1bGwgY29weSBvZiBleHRyYWN0bmV3cyBmcm9tIG1hc3RlcgoKY29tbWl0IDYyNWE3MGRiZGZkOTkwMmRhNzllZmEyOTNmZTZkMmFjOGNjZjJiMmUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDEwOjI0OjE5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgdG8gY2hhbmdlIHRvIHRoZSBuZXdlciBsb2cgZ2VuZXJhdGluZy9wYXJzaW5nCgpjb21taXQgNjJlMzJiMTMwODliMjllZGNmMjc2ZjYxNWRhNjdlNDUwOGZlN2JiNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMDk6Mjk6NDIgMjAxMiAtMDgwMAoKICAgIGNvbmZsaWN0aW5nIG1lcmdlIGZyb20gbWFzdGVyIGZvciBleHRyYWN0bmV3cwoKY29tbWl0IDcwMDg0ZGE2MWQyYmNiZDJjZjFlZDgxYmRjM2JmNjc5NGMyYWZmYjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDEzIDExOjQ5OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVNDSEVEVUxFUi1NSUI6IEhhbmRsZSAzMi1jaGFyYWN0ZXIgc2NoZWRDb250ZXh0TmFtZSB2YWx1ZXMgY29ycmVjdGx5LgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZC4KCmNvbW1pdCAwNGJmM2UyODgxNThlZTg4MGVkZjIzN2U0MDA3ZmVlMzdkMjA0NGRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6Mzk6MzcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVuZGxlc3MgbG9vcCB3aGVuIFNTTF9yZWFkIHJldHVybnMgZXJyb3IuCgpjb21taXQgYzE1MjZmY2NjMDQ3NGMxZGIxOGNhYTlkYmI4MzM4NTNjZGRkZTNjYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjEzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgYTI3YWExOWRmMjgzMTU2YzAzMmM4MWVhZWU1ZTExNTg1OWQzOGMxNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjExOjMyIDIwMTIgKzAxMDAKCiAgICBEb24ndCByZXBsYWNlICdyYycgdmFyaWFibGUsIGl0J3MgdmFsdWUgaXMgbmVlZGVkIG91dHNpZGUgdGhlIGxvb3AuCgpjb21taXQgOTg1ZGZmMmIwODc2ZDk0ODNjNDE0ZmNjZWEzZWY2YmM2M2UxNDU2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAxOjMyIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJmZDc4MTgzMThlN2E1ZGZlOThmNTJjY2Y3NTBjMmE2M2U4MjVkZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMDoyMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAxNWYyMTEzMGJhMzNkYzlhZmQxNjRlNTJkZmQ3NGM5Y2VjMGU5MjMyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6NTg6MTQgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMmE4YThmMmFiN2NkNzU4MjZjNWQ0MWVjM2NmZDVjZTNlOTYzNGNmMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjM5OjI4IDIwMTIgKzAxMDAKCiAgICByZW1vdmUgZGVhZCBjb2RlLCAnY3AnIGlzIGFsd2F5cyAhPSBOVUxMIGhlcmUuCgpjb21taXQgMzhmZDYzNzhjYzMyNzUxODBmNjNiOGQ5YjlhNDA3MmIzZGFiZjhlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjI1OjA2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgZWJkOTJlMTliMTBjMGEzOGUxN2NkZTQwNzg2NGI0NWMyNmUxNzMyNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjA3OjQzIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGlmICh2YWx1ZSkgY2hlY2sgLSB2YWx1ZSBpcyBjaGVja2VkIGZldyBsaW5lcyBiZWZvcmUuCgpjb21taXQgYzVjYWNmNWNhZjk3OWQwMThlYTZjYWUxYzAzYjhmZGYwYjExOGRmZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQ0OjQzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRvdWJsZSBmcmVlKCksICdkaXJuYW1lJyBpcyBhbHJlYWR5IGZyZWVkIGluc2lkZSBzZV9hZGRfcGFpcl90b19saXN0KCkgaWYgaXQgZmFpbHMuCgpjb21taXQgYWNkY2ViNTBlYTY2ZDZiMzIzYzc0ZWUwMjFmYjc3ZTgxMGU0ZTdhZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQzOjE5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gbWFsbG9jIGZhaWxzLgoKY29tbWl0IDE3MDUzZTM0Y2ZlOWE4YWIzOTVmYjUwZjVjM2YxZGFmYzcyNDdhZWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzozMjo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZG91YmxlIGZjbG9zZSgpLgogICAgTGludXggbWFuIHBhZ2UgZm9yIGZjbG9zZSgzKSBzYXlzOiBJbiBlaXRoZXIgY2FzZSBhbnkgZnVydGhlciBhY2Nlc3MgKGluY2x1ZGluZyBhbm90aGVyIGNhbGwgdG8gZmNsb3NlKCkpIHRvIHRoZSBzdHJlYW0gcmVzdWx0cyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCgpjb21taXQgYTY2NDFlZGI5Y2I3NGZjMjIzNmI0MmNlNTU1NGZjMzMyOTk1NjU1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MjI6MzQgMjAxMiArMDEwMAoKICAgIE1pbkdXOiBTa2lwIHRlc3QgVDA2NSBpZiBub3Qgc3RhcnRlZCBmcm9tIGluc2lkZSBhbiBNU1lTIHNoZWxsCgpjb21taXQgYTg4M2VmMTk4MmYzMDFiMTQ4NWQyMjczMDE2NzQ5MjczMzBmNWI2NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjE0OjUzIDIwMTIgKzAxMDAKCiAgICBNb3ZlZCBkZWJ1ZyBvcHV0cHV0IGJlZm9yZSByZXR1cm4uCgpjb21taXQgNDU3NTE5NjcyODdkOTc2NDBlZmRjZGY4ZTc3ZThkNDkwOTM5ZDhlYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTQ6MTc6MTggMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RydG91bGwoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAoKY29tbWl0IDJjMmZhNDgzMzZhNGYxZjE3N2MyOTkxZDY1MTVkMjlmMzk1MzNjNDQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjUwOjQ0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAwN2M2NjZmNmNlYTI3ZjJiMmFiOWJjMDhhZWQwY2I2MTMzZmUzNzU4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTEgMTM6MTc6NDUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxOgogICAgRmlkZXggZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAzYjY4NjU2NjI5NmRkODdiYzQyYjdmMTE2OWRhYWNkYjNjNDVjYzU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAxOCAwNjoyNTo1NiAyMDEwICswMDAwCgogICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjNhN2QxYjA5NjA5ZGFkNjQ5ZjU4YmJkYjViN2UxMGQzOWIzOThjMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMTE6MDQ6MDYgMjAxMCArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjE5NDc2OiBmaXhlZCBhIHR5cG8uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyZGU3M2JkMzY1YTM4MWI5YzM1M2NhNTIzMDc2OWVlZmIxYWM3MWVkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMTo0Mjo0MiAyMDEyICswMTAwCgogICAgbG9jYWwvcGFzc3Rlc3Q6IFJlbW92ZSBhbiBpbmNvcnJlY3QgUEFUSD0gc3RhdGVtZW50Cgpjb21taXQgNjk5NTEzZjEyMzhlMGFkY2UxZjFjZWM5OGUwZDE0NzI5M2ZjNTA0NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMDk6MjU6NTEgMjAxMCArMDAwMAoKICAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCktcmVsYXRlZCBjbGVhbnVwLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjM1OGRlZTcyZmIzNDdlMjYwMGEwYTdiZDIxZjIzMjcwZDNhMDBmNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6NTg6MTUgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6IEFkZCBhIGNvbW1lbnQKCmNvbW1pdCA1Mzk2YmZlMDMyYzhjYmM3M2M4ZmY1ZDRiMDg1ZWJhZGE5ZjU5ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDozMDoxNiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBmZWIzYWYyOGRjYWUyMjAxNWFlODY1YTJlNWRkOGM0MTZlOTk5MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDowMjowOCAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBiN2UxYWEyNTViYWU0YTM0NTNmOWVjYTY0NGE4NzY2MzQzNTFmMTFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyMCAxOTozNjoyOCAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2ggdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdCBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAogICAgCiAgICBDb25mbGljdHM6CiAgICAJYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAgCWFwcHMvc25tcHRyYXBkLmMKICAgIAlzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jCiAgICAJc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICAJc25tcGxpYi9zeXN0ZW0uYwoKY29tbWl0IGY0N2EzNzUyODQ5ZGIwNzVlNmYyMDUzYjg1OTViN2I3OTJmYjY0NjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgT2N0IDE1IDEwOjU2OjA5IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQgY29tcGlsZXIuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDAyYjYwNTZkZjk1ZGE4YjY3MzAzNGUzOWMyYzdjMzg2ZWQwZjM2OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDExOjQ0OjUzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IGExOTg2NTgzMmZjNzdmNGMwNDgxNDRkOTFhNDMxYjFlOTRkMzI5ZjIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAxNCAyMzoxMjowNSAyMDA5ICswMDAwCgogICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzc5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2N2EzZTJlY2NiOTVmOWM5ZDA4MDllZmNiZGRjZDg2NmVlMzA2MmQ1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDE0OjI3OjE1IDIwMTAgKzAwMDAKCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZGNkZTJlOGE1OTVhNTI3ZjA2MTQyYzNiODUyZGU4NDMzYTFjZjI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKYW4gMjQgMTQ6Mjc6NTUgMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvciBORVRTTk1QX1JFTU9WRV9DT05TVAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMmUxNTI1YTg1YmRhNTI5OWEzYjlmMjQxNjE0ZjdlNjUwOWFlZWJhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDEzOjM1OjExIDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgMjk1ZjQ3M2M4MzU0NjIyMWIyYTcxZDgxNWM2MWUzM2E2N2Y5OGFlMzogcmVmaW5lIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgaW1wbGVtZW50YXRpb24uCgpjb21taXQgY2I0MjNiMGFlOWVkMDA1OWFhMTAwZGM0ZTJmZDkzYWQxYjk3ZmFmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMTo1Nzo1MSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGUyZmIwOWUwMDkzZTJmNjQ4ZmUyNjM4ZGEyZjNhZjE4ZmRiMzJiZjAgLSBpbnRyb2R1Y2UgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L3NubXBfcGVybC5jCiAgICAJc25tcGxpYi9zbm1wX3NlcnZpY2UuYwoKY29tbWl0IGFmYzM5NmFiMTYxOGE4NTk1YTI1MTlmYmMyNWY3YTQ5OGUxNzQ0MTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjQ5OjM0IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIG5ldHNubXBfbWt0ZW1wKCkgYW5kIG1ha2VfdGVtcCgpLgogICAgCiAgICBUaGVzZSB3ZXJlIGJyb2tlbiBieSBjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OS4KICAgIEFsc28gcmVwbGFjZSBhIHN0cm5jcHkoKSBjYWxsIGJ5IGEgY2FsbCB0byBzdHJsY3B5KCkgYW5kIHJlcGxhY2UgdGhlCiAgICBtYWtlX3RlbXBmaWxlKCkgaW1wbGVtZW50YXRpb24gYnkgYSBjYWxsIHRvIG5ldHNubXBfbWt0ZW1wKCkuCgpjb21taXQgMjEwMTg1YzE1ZDBkNjVmMGVhOThiNWUzYzJlMDc3NmY2MjIyZDE3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDg6Mjc6NDMgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNyYXNoIGR1cmluZyBzdGFydHVwIG9mIHNubXBkIGludHJvZHVjZWQgYnkgY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQuCiAgICAKICAgIEFsc28sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGNvcHkgb2YgdGhlIGNsZWFudXAgY29kZSBpbiBmdW5jdGlvbgogICAgbWtkaXJoaWVyKCkuCgpjb21taXQgOGJiNGU4NmFiY2Y5OGZmMjg3NDhhZjBhZjg5Yzk4ZTY0ZDVjZDk2MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDc6NDc6MTIgMjAxMiArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIG9sZG1hc2sgdmFyaWFibGUuCgpjb21taXQgNjY4MDE0N2IxMzhlYzExNGY4MWM1ZDEyOGFjOTM1MGM4NDUwZDA4MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTg6NDQ6MzEgMjAxMiArMDAwMAoKICAgIE1ha2UgdGVzdCBUMDE1aW50NjRfY2xpYiBwYXNzIG9uIDY0LWJpdCBzeXN0ZW1zCgpjb21taXQgM2FhZDE1YWU1NjBhYzg1N2U3M2M5MDc2NGU5MDNlN2NhMDJiMzI5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjQwOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgZm9yIGxhcmdlIE9JRCBuYW1lcwoKY29tbWl0IGZiYTE4OGVlODIwMTBiMmYyZDhjYTJlNDI2YmE2NTQ0OTlhYjNkMGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTozMTozMyAyMDEyICswMTAwCgogICAgZml4ZWQgYnVmZmVyIG92ZXJmbG93IGluIF9fY29uY2F0X29pZF9zdHIKCmNvbW1pdCAyMWQyNWQ4NmI4ZTQ5MDRkNzk4ZGM4Yzk2ZGFkZTllNTA0ODQ1N2E4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MjY6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgcG9ydCBudW1iZXJzLgoKY29tbWl0IGQzNjkzMTg0MWIyZmMyY2ViYzYzNjRiMjk0OTEyOWEwYWQ0MmFkMWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowNTo1MSAyMDEyICswMTAwCgogICAgRml4ZWQgYSBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSBTdW1GaWxlIGlzIHVzZWQuCgpjb21taXQgMGVmZGQwMjJkYTA5YWYxYjVlMTYxNzFmYTdhMmI1MjNjNWQ2ZWM1OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNTYwYmM2YzA5Yjc1MTU1NmVmZDZiNGM0NDk1NzUxYjEwOWE5M2Y5MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU5OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3csIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCA4MjkxZDdjNWI5MmEzMWRkNGY1ODJiNDk3ZDRiMmEwODUzMzY3YTU2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTU6MTYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdy4KCmNvbW1pdCA4OGUxZjM0ZGU3MzAwNTc1ZmE2ZGFiODU3ZWNkZGIyNDJhODdkZTgwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDg6NTUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBiZTEzNzVhOTkyNmViZTBjZDViNzhhNDA0NWMzYmQxMWM4MzY2NGIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDY6NDkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgc2Vuc29yIG5hbWUgaXMgdG9vIGxvbmcuCgpjb21taXQgMWNiMjQ2MjUzNzIwNjJiMTRjNzFkN2RkNTFlMjBmZWY3NzNlMjc0MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQxOjAwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIENQVSBoYXMgdG9vIGxvbmcgbmFtZS4KCmNvbW1pdCA4NGM4MDdlZTAzMjUxZTU0ODU2ZTgzZDYyZDA2ZWEwOGI4ZGY1MjdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MzY6NTAgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBjMzEwZTM5MGI1ZGQwNWYyNGJlN2ViMTkwNGM3NGU0MTI1OWM5M2RiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MjQ6NTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KCmNvbW1pdCA0NjAwZDExNDM0ZTgzYjg2NTNjZjlmODEzYTNkOGI2MzA0NTViNDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTc6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIHBsYXVzaWJsZSBzdHJpbmcgb3ZlcmZsb3cgYmVmb3JlIHBhcnNpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgpjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjExOjAyIDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIChpbnNlY3VyZSkgU05NUF9NQVhQQVRIIGluIG1rZGlyaGllcigpCgpjb21taXQgODAxNjg5MGE0NDVmNmE3ZTJhODczYTA0ODczZDRlMjdiNmVlNjRlMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjQ4OjM0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBpbnRlZ2VyIHNpemUgb24gNjQgYml0IHBsYXRmb3JtLgoKY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzozMTozNiAyMDEyICswMTAwCgogICAgU2VjdXJlIG1rc3RlbXAoKSB3aXRoIHVtYXNrKCkgLSBvbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCBkb2VzIG5vdCBzZXQgMDYwMCBwZXJtaXNzaW9ucyBhdXRvbWF0aWNhbGx5LgoKY29tbWl0IDIwMjUyM2NhNzA0YmQ3MjJkYzFhYzBlMWU2YjBlNGI0ZTU0MjQ0OTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzoxMTo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyAnYycgYmVmb3JlIE5VTEwgY2hlY2suCgpjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjA4OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgoKY29tbWl0IDJmNGU2YWNkNzE0MTgzZjAxNWI3NjM2NTdmOGYwODQ1OTMzNTdlMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDEwOjM4OjE2IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBJZ25vcmUgcGVybC8qLnltbCBmaWxlcwoKY29tbWl0IGMzNjVkODBjMTZjMmQxN2IxNjAwMTFlOGMxZjljYjk1ODk1NGU5ZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDA4OjM0OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IERvIG5vdCBpbnZva2Ugc2h1dGRvd25fcGVybCgpIGZyb20gaW5zaWRlIHRoZSBTSUdURVJNIGhhbmRsZXIgc2luY2UgdGhhdCBmYWlscyBpZiBTSUdURVJNIGlzIHJlY2VpdmVkIHdoaWxlIGEgUGVybCBoYW5kbGVyIGlzIGFjdGl2ZS4gQmFzZWQgb24gYSBwYXRjaCBwb3N0ZWQgYnkgSm9lbCBBdm5pIDxqYXZuaUBhcnViYW5ldHdvcmtzLmNvbT4KCmNvbW1pdCBkMDU5ZmI4NzhiMTQzNjU5OTk1M2NlYTVhMDc3NDk5ZGRjZGNiY2I1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE3OjAzOjU1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDA3NTI6IElGLU1JQjogUmVwb3J0IGludGVyZmFjZSBzcGVlZCBjb3JyZWN0bHkgZm9yIEV0aGVybmV0IGludGVyZmFjZXMgaWYgb3RoZXIgdGhhbiAxMCBNYnBzLCAxMDAgTWJwcywgMSBHYnBzLCAyLjUgR2JwcyBvciAxMCBHYnBzLiBBZGQgc3VwcG9ydCBmb3IgTklDcyBmYXN0ZXIgdGhhbiA2NSBHYnBzLgoKY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjY6MTcgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcwoKY29tbWl0IGUzMjVlY2JmY2U3N2YwMGFjNWNmNmZiZDk1N2Y5NTQ5NWY2MWM1OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjU6MTAgMjAxMiArMDEwMAoKICAgIFN1cHByZXNzIHVuaW50ZXJlc3RpbmcgRG94eWdlbiB3YXJuaW5ncwoKY29tbWl0IGJlOTE2MWQzYTU4OThlODYzNzY3ZjkyNjYxMzQ4NjEyNmMyY2JmNjcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6MzU6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9ucyBtYW5pcHVsYXRpbmcgNjQtYml0IG51bWJlcnMuCgpjb21taXQgODZlNGMyYmUwODUyYTBhMTNiMDYwMzA3NTcyMGIzMjY0ZWM3MGRkZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjoyOToxMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBpdCBleHBsaWNpdCB0aGF0IE1BWF9TVUJJRCBpcyBhbiB1bnNpZ25lZCBjb25zdGFudAoKY29tbWl0IDM3ZTI3MmQ4ZjdiNzE4MGJhMTQwZmEzODZhNWZmMDU4OTY4YTA4YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTg6MjE6NDggMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kIGludGVyZmFjZXMgaW5zdGVhZCBvZiB0eXBlICJvdGhlciAoMSkiLgoKY29tbWl0IDI2OTkzMmZhMzJjN2NkNDc5NTc0ODk2OThlMDliZWUzMWY2M2I3YWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzQ6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAwZDFjMjFmOTk5MWQxMzA5ZDA1N2UzZTQwNTZkNTQ3ZGY3ZDQwZWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE2OjA2OjMxIDIwMTIgKzAxMDAKCiAgICBNYWtlIGRlY2xhcmF0aW9uIGFuZCBkZWZpbml0aW9uIG9mIHN0cmxjYXQoKSBjb25zaXN0ZW50LgoKY29tbWl0IDBjM2Q0ZGJiMGE5Y2Y1YjM1OWY3MGIyZjE5OTE1NDk1NTU0Zjg0MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MjM6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBzbm1wZDogUmVtb3ZlIGRsbW9kCgpjb21taXQgODkzZWNjOTdiNTg3NjYxMDQ1YmVjYmUwOWEzMjBjMWJjYmM3MWM3YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNjo1OSAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQoKSB0byB0aGUgTVNWQyBidWlsZCBpbmZyYXN0cnVjdHVyZS4KCmNvbW1pdCAzZDEyNjQyMmU2MjU3MDJiOWQzZmEwNjc2YTk3ZWM1Y2IyMGQ5ZDEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjAxOjA2IDIwMTIgKzAxMDAKCiAgICBNYWtlIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGNvbnNpc3RlbnQgd2l0aCBpdHMgLmluIGZpbGUKCmNvbW1pdCBhZjUzYjc2YzJmZmE3NTFlMzk1OGQwZmM1ZDgyNzlmNzhjMmMxYzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjQzOjU1IDIwMTIgKzAxMDAKCiAgICBTa2lwIFQwNjZwYXNzX3NpbXBsZSBhbmQgVDA2N3Bhc3NwZXJzaXN0X3NpbXBsZSBvbiBNaW5HVwoKY29tbWl0IDM1YTkyZTY5M2QxMzNhNWIxMWU5ZTliNTk5ZGJmNDdlZGVmNDkzM2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMDg6MTY6MzYgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMgYWdhaW4sIHdoaWNoIHdhcyBhZGRlZCBhY2NpZGVudGFsbHkgd2hpbGUgcmVzb2x2aW5nIG1lcmdlIGNvbmZsaWN0cyAoY29tbWl0IDFkNzhmN2Q1YjU4YWVkMmI1MmM0ZDM4NmE3YmE4MGE0NDcxMWJhY2EpCgpjb21taXQgYTliMDczZWEzYjZjZWRmNzEzZTMwNWU3YjE1ZjI4YWU1N2JmZGYxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNzo0NzoxMSAyMDEyICswMDAwCgogICAgRml4IDY0LWJpdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDdlODkwZGFkOTVmNTY2MDY5ZWUyODAyMTVhNGZlYTNmMGUyZTM5ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTY6Mzg6NTAgMjAxMiArMDEwMAoKICAgIEF2b2lkIGEgU0lHU0VHViBpZiBjcCA9PSBOVUxMLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OC4KCmNvbW1pdCAxZjYyMDBjZmUxYjBiMjdlYmIwOTNhMTYwNmI1OTJmOWU5Njg0YmU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjUzOjM0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjYKCmNvbW1pdCBjMzEyNmIxNDM5MjFmYWJlYWM0NDIxNjZlY2E1YjViNzQyZmQ0MmMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjAyOjM5IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG1vc3Qgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNQoKY29tbWl0IGIyNGVlN2M5MDk2NTdkYjQzYmQ4YzVkOGMwMTA1NWNhMDg4M2M5Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDg6NDA6MzkgMjAxMiArMDEwMAoKICAgIEVsaW1pbmF0ZSBtb3N0IHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGNhbGxzCiAgICAKICAgIFVzaW5nIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGlzIGVycm9yIHByb25lIC0tIHNlZSBhbHNvCiAgICBodHRwOi8vd3d3LmdyYXRpc29mdC51cy90b2RkL3BhcGVycy9zdHJsY3B5Lmh0bWwuIEhlbmNlIHJlcGxhY2UKICAgIGFsbCBpbnZvY2F0aW9ucyBvZiBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKS4gUmVwbGFjZQogICAgc3RybmNweShkc3QsIHNyYywgbikgY2FsbHMgYnk6CiAgICAqIHN0cmxjcHkoZHN0LCBzcmMsIG4pIGlmIHRoZSBnb2FsIHdhcyB0byBhdm9pZCBvdXRwdXQgYnVmZmVyIG92ZXJmbG93LgogICAgKiBzcHJpbnRmKGRzdCwgIiUuKnMiLCBuLCBzcmMpIHRvIGNvcHkgYSBwcmVmaXggb2Ygc3JjIHRvIGRzdCBvciBpZiBzcmMgaXMKICAgICAgICBub3QgJ1wwJy10ZXJtaW5hdGVkLgogICAgKiBtZW1jcHkoZHN0LCBzcmMsIG4pIGlmIHN0cmxlbihzcmMpID49IG4gYW5kIG4gPCBzaXplIG9mIGRzdC4KICAgICogc3RyY3B5KGRzdCwgc3JjKSBpZiBuID4gc3RybGVuKHNyYykgYW5kIG4gPCBzaXplIG9mIGRzdC4KCmNvbW1pdCA2ZDk1YmM0MTQ5NDcyOTMxMDA1NDc1YzMwYTU0MWZlZDU1MzRkYTM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDExOjE5OjE2IDIwMTIgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgdHJpZ2dlcmVkIGR1cmluZyBjb21waWxhdGlvbiBvZiB0aGUgUGVybCB4cyBzb3VyY2UgZmlsZXMKCmNvbW1pdCBiYWQwNjAwZjZlYzk0NGVmODQ1NWUzMjdjZTc4NGI5YjA3ZDI0N2M5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjEzIDIwMTIgKzAxMDAKCiAgICBBZGQgY29uZmlndXJlIHRlc3QgZm9yIHNvY2thZGRyX3VuLnN1bl9wYXRoIHN1Y2ggdGhhdCB0aGUgY29tMnNlYyB0ZXN0IGlzIHJ1bgoKY29tbWl0IDkyYTMyYWM0ODY2YTVlZGM3ZjM0N2QzNzk0MmJmMDI4ZGUwMjc2MmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MjkgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgODNlNGMwZTMwNGY2MTdjY2FjNjYxMGVkZDc0ZDE3MDY3OTdiYmY1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNTozNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIGEgdGVzdCBmb3Igc2Vfc3RvcmVfbGlzdCgpCgpjb21taXQgNGZhZTU4NTIxMDNlYzM4OTNhZDQ4OGJjMGQ5MDVjYTY5MTQ1OTVlZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNzoxNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgdGhlIHNlX3N0b3JlX2VudW1fbGlzdCgpIGltcGxlbWVudGF0aW9uCgpjb21taXQgYjMyMjJiYjI3NWYyZjIzNDZlMGZkMDQ3OGFmYTJlZmI2MDA3NzNlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNjo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRGVjbGFyZSAidHlwZSIgYXJndW1lbnQgb2Ygc2Vfc3RvcmVfbGlzdCgpIC8gc2Vfc3RvcmVfc2xpc3QoKSAvIHNlX3N0b3JlX2VudW1fbGlzdCgpIGNvbnN0Cgpjb21taXQgMDIyZjg0MGZiZmNiMGUyNmIwOGYwZTU1NzI4MjMxZjYxMTQ5NTgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxOTo1NTo1NiAyMDEyICswMDAwCgogICAgQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQgc2VuZGluZyBVRFAgZGF0YQoKY29tbWl0IDY3MmE4MDljMjI4ZTk1NTBiOTliODkxMGJlNzVkMGIxNjE5ODU0MDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MzM6MDkgMjAxMiArMDAwMAoKICAgIEZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMjRmZjI2MGFkODljZTJhYTM2MWE1NWM3YzcyZTkxNjAzMWRlZmUzNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzoxMToyNCAyMDEyICswMTAwCgogICAgQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc25tcF9zZXRfdmFyX3ZhbHVlKCkgYW5kIHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZSgpIGZyb20gdV9jaGFyKiB0byB2b2lkKiwgbGlrZSBvbiBtb3JlIHJlY2VudCBicmFuY2hlcwoKY29tbWl0IGM2Y2E3MzdmYjQ2ZjkwYTRiZGE1ZDQzNzM0YWFjMzRlODM3YTA1ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDEzIDE5OjA3OjM3IDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZjUwNGNlMmQ3NGE0YmM4OGY2OGNjOTUxNWZhNzA1MzM3M2NiMTViNS4KICAgIChGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlIHBlcmwgc3ViZGlyZWN0b3J5LiBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuKQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlwZXJsL0FTTi9BU04ueHMKICAgIAlwZXJsL09JRC9PSUQueHMKICAgIAlwZXJsL1NOTVAvU05NUC54cwogICAgCXBlcmwvYWdlbnQvYWdlbnQueHMKCmNvbW1pdCBkMjEyZGM5ODRlYzM0ZTRkMjMwNjI1ZTQ2ZTU4YjBjNjI4YTUwZGY1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBTTk1QLnhzIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBiYWNlZWJiMTBkOGNhZjVkYjYzY2MzNjkzNWZlZDY1ZWU5MzEwMjlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjIyOjQ0IDIwMTIgKzAxMDAKCiAgICBBZGQgZGVjbGFyYXRpb24gZm9yIHNodXRkb3duX3NubXBOb3RpZnlUYWJsZSgpCgpjb21taXQgZjdmOTY2YWJkNmQyODQ5YjEzMzEyNTJhZmU1YzQ3M2U1YzQwYjMyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNDoyNDozMyAyMDEyICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoZXMuCgpjb21taXQgMzAzYzAxNWJjZmU5YWYwYjE1NGU5ODgxYzdiNGY0NDllMDhmMzBiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMjowNjoyMyAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGQzZWIyYjVjZWQyMmE4NDgwMDUzY2U0M2FjZjk3Mzk3MjkwNTU0MDQKICAgIChTcHJpbmtsZSBzb21lIGNvbnN0LW5lc3Mgd2hlcmUgcmVsZXZhbnQgLyBmaXggZm9ybWF0IHN0cmluZyBtaXNtYXRjaGVzLAogICAgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKICAgIAlhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYwogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCgpjb21taXQgZDk1YjQwNDA2OTE2YmRhNWI0OGI1YTYxMzFiZWMyN2I4NjZiMGE3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMTo1OToyMCAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgYTJhNzMxNmMzMTBmMGZjYzM3Mjg2NzNmYTA0NzA1MWMyM2I3MTk2MAogICAgKFRyaXZpYWwgd2FybmluZyBmaXhlcywgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYwogICAgCWFnZW50L3NubXBkLmMKICAgIAlzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYwoKY29tbWl0IGQ4NmM0N2YwMDNmZGMxOTJiY2U3YjQ2YWM0ZjA2YjA5ZTM4N2MxMmIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjI5OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8KCmNvbW1pdCBiZWU0ZDc5Y2Y0ZWI3ZTBhNDUzOTdmNTliNTI5OGRhNjMzYThlMWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoxNDo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIuCgpjb21taXQgM2RjMGUwMGEyZmQ4ZTM0ZmUxYWUzM2VjYWJmMzZlMTQ2NDYwYTMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlICd0b2tlbicgaXMgdXNlZC4KCmNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjoyODo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgb2ZmLWJ5LW9uZSBtZW1zZXQuCgpjb21taXQgMGY1MzY5NTA0NGRkM2YwYzM1MDc3NTNlM2Y4YzI5ZDk3ZTk2ODcyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMyAyMTozODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYXBwcy9zbm1wdGxzLmMKICAgIAlhcHBzL3NubXB0cmFwZF9sb2cuYwogICAgCXNubXBsaWIvZGlyX3V0aWxzLmMKICAgIAlzbm1wbGliL3NubXBfY2xpZW50LmMKICAgIAlzbm1wbGliL3NubXBfb3BlbnNzbC5jCiAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYwoKY29tbWl0IDAxNTM4MDVjOTliOTE5NzM2NTkzNWM1ZDExYWU5YzNkNGJmYWEwZjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDg6NDEgMjAxMiArMDEwMAoKICAgIEZpeCBhIHNldC1idXQtbm90LXVzZWQgd2FybmluZwoKY29tbWl0IDNmODg4NWZiZWU5NDA3NzQ4ZmMyZjA1NzM3MjhhMTFiYTJiYzAyM2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAyOCAwNTo1MToxMyAyMDA5ICswMDAwCgogICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMgbG9jYXRlZC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjFlYWFmMzAyMzY5ZmQ0NTUyZThmZWU3YjZhODA1MDkxZWMwYTliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6Mzg6NTEgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZpbmRfc2VjX21vZCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCBhZWU0ZTg5NWZlM2JkNWY0YTYxZTM0Mjc1YmZjYTAzNjhiNTYwNTU1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozMToyMiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2Ygc25tcF9zZXNzX3RyYW5zcG9ydCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCA1ZDFkMGE3NDRhYjMwYzhlNjQ1YzNiODUwNmNiYmQyY2NlYjNkMjc1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTowNDo0OCAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgbmV0c25tcF9leHRyYWN0X2l0ZXJhdG9yX2NvbnRleHQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgMjk5ZWE5YTg5YzNmMTc1OGE3NzQ4YmI5YjM0MTFmNjJmMmM3MGY4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTQ6NTUgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZvcGVuKCkgcmV0dXJuIHZhbHVlLCBqdXN0IGluIGNhc2Ugb2Ygc29tZSByYWNlLgoKY29tbWl0IDkwZjFhZTY3NTc5MTc0ODE2MzZlZWY3NzEwMGNhZWViNTNlZGZlMDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDMgMTA6MDY6NTYgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0LmMuIFNvdXJjZTogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvY3Zzd2ViLmNnaS9zcmMvbGliL2xpYmMvc3RyaW5nL3N0cmxjYXQuYy4KCmNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1MDo1NiAyMDEyICswMTAwCgogICAgQWRkZWQgc3RycmNociByZXR1cm4gdmFsdWUgY2hlY2ssIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCAxOTlhMDUxMWY2ZWIwZWYzZmYxZDlmOTIyYjc5MGFiNjdkZmRlMDFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjMxOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogc211eDogc2ltcGxpZnkgc211eF9saXN0X2RldGFjaCgpCgpjb21taXQgZDg4MzU3M2FhNzNlMGY1ZmMxODhhY2VkZWU2NDUxZjk1ZGFlOTAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDoyMzowNiAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDdiN2EzZWIyNTAwNTI3ZWFhMTY5OTI4N2E2Y2E2ZmNjNGNjMmUwOGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDA6MDIgMjAxMiArMDEwMAoKICAgIEZpeCBhIGJ1aWxkIGVycm9yIGNhdXNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCAyYjZjMTE5ZmVkNDg0OGRhNjY2M2MxMWYwYzJjYmRjMjk5MjFiNWM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo1MToxMCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG5ldHNubXBfZHNfZ2V0X2ludCgpIGVycm9ycy4KCmNvbW1pdCA2Y2U1MzYwY2FhNGM5ZGU1MWFkZTU3ODc5ZTgzZjk2YmQwNGI0YzVhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo0MjoyMyAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3Npbmcgdmlldy4KCmNvbW1pdCBiM2JjNTRiZWQzMTY5MGE4NWRmMmFjZmJmMzI5NmRhOTNhOWU4OWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToyMzoxNyAyMDEyICswMTAwCgogICAgQ2hlY2sgc29ja2V0KCkgcmVzdWx0LgogICAgQWxzbyBjbG9zZSB0aGUgc29ja2V0IG9uIGVycm9yLgoKY29tbWl0IDkyMDc1ZjUxY2Q0NWEzOGNhMzg3NjBiM2ZmZTgyZTE2NTU5ZTljMmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjE4OjI2IDIwMTIgKzAxMDAKCiAgICBDaGVjayBvcGVuKCkgcmVzdWx0LgoKY29tbWl0IDY2NjVkNWZlMmZjNTY5ZDZmYTg1NGQxZDc4ZTM0N2JiYWM2OWUwNzAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIyOjIyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGE2NjQ4YzU0NTNlMWVmOGRhYzU3YTM4ZWZjYzAwY2NlNTNiZjllNGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIwOjI3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGQ2OGRjYWUwZjE4ZDU1NDU3MWFlZjMyMTk0NGE1MjkwNTQ4ZGRlODYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE2OjExIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGZiNmY4MGMwZmUzYmEzNmU1NmY1YjkxMWE0N2UzZjZmMzJiYTI2NmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE0OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBleGl0IGNvZGUgb2YgZW5jb2RlX2tleWNoYW5nZSB3aXRoIHdyb25nIGFyZ3VtZW50cy4KICAgIEFsc28gYWRkZWQgYSBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCAzMTMwZTI0ZmRjMjMyNDY0ZGQ3YmIyMTZmNDZjYWZhMmUwZTc3NWE2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowOTo1NCAyMDEyICswMTAwCgogICAgQWRkZWQgbWlzc2luZyBicmVhawoKY29tbWl0IDE4YzEyNmE5NTY1Y2I0ZDY5ZDc1MTNiOTQ0YTIxMDU1ODgwNDVkMzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA3OjI5IDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDZkMzFjODIwNzBhMmM2OGZlM2M1MTllOWQ1NmZhMjc3OTU1NGQwMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGRjNmYwZTJlNTQ5YjRjZDA2MWViYzE5MDA4NGIxZmM3N2E1NWY0MGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMyOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGRhYjMyODY3ZWQwYjk5MzAxZWZkN2I4ZDg1MmFkMTI4OGExODRiZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMwOjMzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBRVUlURlVOIHVzYWdlLgoKY29tbWl0IGIxYTJiY2Y2NDYxNWViNjZiYzI0ZDViZTQ5NTBlNDUwMTI5NjIwNDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE4OjAzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGIyYjFjODUxYjk0ZmVkMzdjMzg2ZWFhMWJmZWFkNWM3NzY5NmUzZWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE0OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjU4OjQ2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBmb3IgZmFpbGVkIHJlZ2lzdGVyX21pYi4KCmNvbW1pdCA1OTQ5ZjA1NWMxNmFlNjUwNjE1YWFlN2ExZmVlM2YyZDdiMTZkOTQwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDoyOTo1OSAyMDEyICswMTAwCgogICAgTWFrZSBNSUIgZmlsZSBwYXJzaW5nIGFuZCBkZXRlY3Rpb24gbW9yZSBzdHJpY3QgLSBMQUJFTCBpcyByZXF1aXJlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIE1JQiBmaWxlcy4KCmNvbW1pdCBlNGI2NzM2ODNjNjhiYThiM2FiYzA0MGI5MTI1ZWMzMDQ2NDNjYzdjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIzOjAwOjI0IDIwMTIgKzAxMDAKCiAgICBBc3N1bWUgdGhhdCBsaWJkbCBtaWdodCBiZSBpbiBBR0VOVExJQlMgb3IgU05NUExJQlMgc28gcHJlYWRkIHRoZW0uCgpjb21taXQgYjEzYzFlNTdiZWRiYTc5YjgwNjEwM2M3NGYxOTIxZDUzYTcwNmIzOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMjo1NTowNiAyMDEyICswMTAwCgogICAgRG8gbm90IHJlcXVpcmUgdWNkLXNubXAvZGxtb2QgdW5sZXNzIGl0IHdpbGwgd29yay4KCmNvbW1pdCAyN2RjZWEwZDVmODAxZGY0OTRhYjJjYjVjNWMwZWJlNTRlYjBkY2QzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDo0ODoyOSAyMDExICswMTAwCgogICAgQWRqdXN0IHBhdGhzIGZvciB0ZXN0IHJlc3RydWN0dXJlCgpjb21taXQgMTRiNjBlODVhMWI1NzAwZTkzZDEyNmUyZjI5MWQ1YzQ4NWYzNGUzNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6MTQ6MjkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkbG1vZCBtb2R1bGUgZmFpbCByYXRoZXIgdGhhbiBnZW5lcmF0ZSBhIGR1bW15IG1vZHVsZSBpZiB0aGUgZGxvcGVuIGZ1bmN0aW9uIGlzbid0IGF2YWlsYWJsZS4KCmNvbW1pdCA5OGE5NzUzOGZjMWU5ZmY0NmI2MGQ1ZDk2OTM0NzQ0NDU3ODM3OGMwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMzozNToxMyAyMDExICswMTAwCgogICAgQWRqdXN0IHRoZSBwYXRocyB0byBzdXBwb3J0IHRlc3RpbmcgZXZlbiBpZiBidWlsZGRpciAhPSBzcmNkaXIKCmNvbW1pdCA4OGYwYWYzY2ZiOTE2YWU1ODYzY2MyOTg2MDcxZDQzNWYyMGMzMDY0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMTozNzo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGVzICdwJyBhbmQgJ2xlbicuCgpjb21taXQgMDgxNWE3NTM2Yzc2ZjdlNDg0MjYzODY4M2Y2NzQ4OTRhMWE4Y2UxNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjQyOjU0IDIwMTEgKzAwMDAKCiAgICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBTZXRVbmRvIHByb2Nlc3NpbmcKICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ1NDQwCgpjb21taXQgZWIyYWIyMzc0MmNhODZjMGI4OWNjZmU5MWViNmVhMzc0YmYzYWNjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjM3OjMxIDIwMTEgKzAwMDAKCiAgICBDaGVjayBmb3IgdGhlIGV4cGVjdGVkIGVycm9yIChFUElQRSkgb24gY2xvc3VyZS4KICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ3NDQ0Cgpjb21taXQgYWFjMTBiYzRmMDUzYzAxNGYzODJkNjU5M2ZjMzJhYjk1ZTBiMWE1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDEyOjU5OjUyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDYzNzY3OiBIYW5kbGUgcGFyc2luZyBzdWJpZGVudGlmaWVycyA+IDJeMzEKCmNvbW1pdCBiYmMwMmUzNmU5MGMxYWFiNzg5ODU2MmY5NjNmNWNhZGIyNmUxMGJkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTc6MTU6MTYgMjAxMSArMDAwMAoKICAgIE1vdmUgcGFzcy9wYXNzX3BlcnNpc3QgdGVzdHMgdG8gdGhlIG5ldyBsb2NhdGlvbgoKY29tbWl0IDM4OThjMDRmZDZmODk4NjcwNjJmZGZlYmYzNjg1N2FiNjE5YzA0NTAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNjo1MzoyNCAyMDExICswMDAwCgogICAgQWRkIHRlc3RzIGZvciBwYXNzL3Bhc3NfcGVyc2lzdCwgc3VwcGxpZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBkNWVlM2YwYTFhNjNiYjE3NTJjNzRjYmNhNTVhYTNkNDBiZjliZjEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NTg6NTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NDQ0OiBGaXggU0lHX1BJUEUgaGFuZGxpbmcKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMmExN2IzNzQzMGMxODUyOTk4YzM1ODhlNTQ3ZDdlYjYxYzA2ZGE3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjQ1OjM4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0NDA6IE1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIEFnZW50WCBlcnJvcnMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZmU1OGEwZTVmNGQ0ZTJlMmVjYmNiNDczODJiMDhjYjFlNGRmMzUyYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjE2OjIzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDU2NzcwOiBIYW5kbGUgKG9ic29sZXRlKSBVSW50ZWdlciB0eXBlIHByb3Blcmx5CiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDFiZThjZjA4YTY3YTkxODU1ZmVlMWVjNGEyZDhlMDg3Yzc4MTI0NTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODowNDoxMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDM3OiBMb2cgQWdlbnRYIGRpc2Nvbm5lY3Rpb25zCiAgICAoaW4gbGluZSB3aXRoIGNvbm5lY3Rpb25zKSBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDA2ODAzNzI4OTEwN2ZhYTJiYTNmNWNkMmZiMDBjMTk0OTRiYjlhMDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzoyNzo0NiAyMDExICswMDAwCgogICAgSGFuZGxlIGFueSBHRVRORVhUIHJlcXVlc3QgT0lELCBub3QganVzdCBhIHNpbXBsZSB3YWxrLgoKY29tbWl0IGE3NGZhNTI4OTgzMTIzZDM1NWE4Y2RjYWE3N2RkNGViNGI4YzY5NTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzowMDoxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGFzczogUEFUQ0hFUzogMzQ5Mzk0OiBCcmluZyBwYXNzX3BlcnNpc3R0ZXN0IHNjcmlwdCBpbnRvIGxpbmUgd2l0aCBwYXNzdGVzdCoKICAgIChpLmUuIHVzaW5nIHRoZSBsZWdpdGltYXRlIHN0cnVjdHVyZSBvZiBORVQtU05NUC1QQVNTLU1JQikKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgYmJlNjQ5ZWJmYTYxZWEyMjM5OTE3MGIzNmI5OWRiMzBhMWRlODAxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE2OjU0OjM4IDIwMTEgKzAwMDAKCiAgICBSZXdvcmsgInBhc3N0ZXN0IiBleGFtcGxlIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMKICAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIHN0cnVjdHVyZSBmb3Igb3V0cHV0LiAgQmFja3BvcnQgb2YgU1ZOCiAgICByZXZpc2lvbiAxNzYzMiAod2hpY2ggdXBkYXRlZCAncGFzc3Rlc3QucGwnIGJ1dCBtaXNzZWQgJ3Bhc3N0ZXN0JykKICAgIENvcnJlY3QgaW4gYnJhbmNoZXMgNS41IGFuZCBhYm92ZQoKY29tbWl0IDgyZDA2YzcyNDdiMjJjOGIwMWQ0NWJmNTUwNDFkMmYxZTY0MjdkNDkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzo0NToxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc2NzE6IEZpeCBvdmVycmlkZSBoYW5kbGluZyBvZiBPSUQgdmFsdWVzCiAgICBQYXRjaCBzdXBwbGllZCBieSBQaGlsbGlwIE8nRG9ubmVsbAoKY29tbWl0IGJhNGE5Y2U1MWM5NjAwZjlmZGExNjhmMWU2ZWZmMzJhMWRiNjNjYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzoyNDoyNiAyMDExICswMDAwCgogICAgVHdlYWsgLS1kaXNhYmxlLXNubXAtc2V0IGNoYW5nZXMKCmNvbW1pdCA4MjdjOGIyODgzMDE3MWZhYTljNjFkNTNlZmNhOWViNjYwMDU2MWMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTE6MjU6NDMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzQzMzg0NjogRml4IGZvciB1c2Ugd2l0aCBweXRob24gMi40Cgpjb21taXQgZjk4YTU0YTk5Y2FmN2I0NmIxMDBhOTIwZGI5NDJjYmNhOWM0MzkyNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEwOjEwOjM2IDIwMTEgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCAyMzBkZjE0Zjk0YzM3MzZmZjM0Mzc5YTRlMjgxZWVhMzUzYjQ3ZjgwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIERlYyAyNiAyMzozNDoyMyAyMDExICswMTAwCgogICAgRG8gbm90IGFzc2lnbiB0bVN0YXRlUmVmIHR3aWNlCgpjb21taXQgYzk2YjNiNGQ4NTMwYWQ1ZTBlZmIwM2YyNGRhYjVlNWYxYTQ2MDAzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTg6MjEgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgdXNlLWFmdGVyLWZyZWUuCgpjb21taXQgYzU5NzhjODljZGUyNDQwZjRkMjBkYWRiYzlkMWRkOGRiNTYyZDU2ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTU6NDQgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgZG91YmxlLWZyZWUuCiAgICAKICAgIG5ldHNubXBfdGxzdG1BZGRyX2FkZCB0YWtlcyBvd25lcnNoaXAgb2YgaXQncyBhcmd1bWVudCBzbyBjYWxsaW5nIGZyZWUgb24gdGhlCiAgICBhcmd1bWVudCBvbiBmYWlsdXJlIGlzIGluY29ycmVjdC4KCmNvbW1pdCBjMTM5Y2ExMjNiNDRiYjNiOWI2YmY5MjFlMTYwOWNjNDVmNjNhNjYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6NTU6MzAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTk6IEZpeCBzcGFyc2VseSBhdWdtZW50aW5nIHRyaWdnZXIgdGFibGVzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM0YWUwMjFiMmU2Mzg0NDM3MDgxYzU2MjNmMzYwYzg4OTYzOTAxODgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyOTo1NCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBCYXNlZCBvbiBtaWIyYyBwYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM2YWNjZjhjNjYyNTRmYThjNDg3NjdlZDdkZWM3OTVkZGFmYzUyMmUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyNzoxMSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGE2MTgyNmFkOGNhNTQ2NjFkMWQ5MDk3MTI1MDNiZDNhOGIzMmVlZDAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDIyIDE4OjM1OjQ2IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAgCiAgICBteU1hdGNoIGlzIHVudXNlZCBhcyBubWF0Y2ggaXMgemVybyBhbmQgYWxzbyBzaW5jZSByZWdleEJ1ZmZlciBpcyBjcmVhdGVkCiAgICB3aXRoIFJFR19OT1NVQiBzZXQuCgpjb21taXQgYmE0ZmM4MGZlMmNmZDVhNWQ4OTIzMGQ4ZjM3MDNlNGZlMDFlNjAxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDIyIDE5OjI0OjQwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQwMjM3NjogZnJvbSBMZW9uYXJkbyBDaGlxdWl0dG86IFJlY29nbmlzZSBSZWlzZXJGUwogICAgQWxzbyBtb3ZlIHZhcmlvdXMgRlNUeXBlIGRlZmluaXRpb25zIHRvIHRoZSBhcHByb3ByaWF0ZSBibG9ja3MKCmNvbW1pdCBiNWFjNGEwNGRjZDU0NzBkMDhkMDMzMjFhYmNkMWU5ODI2MjFlNmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAyYjM3ZTRlOGYyNTBhMGQ4ODIxMTk5YTc0YWMzZjRlNWI3YjdiYWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzE6NTEgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAzZDA4MzQ1MTU2YzQxOTMzM2RlOTY5ZjEzZDIxZmNlYzdlMThlOTRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzI6MjkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCBjZDg1OWFkNTFjNGYxOGQ1YjBmYzY5ZGQ2NjlmY2IwNTFjNzk4OTY5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIG1lbW1vdmUgc2l6ZQoKY29tbWl0IDMwZmY1OGQwOWQ0YzlkNTQzOGJiNjIxMDU0ZmQ3YWQ3YTJhNTk3ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDowNzoxOSAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbGVuZ3RoIG9mIGJ1ZmZlciB3aGVuIHByaW50aW5nIEFTTl9CSVRfU1RSCgpjb21taXQgNmMxNDg3ZTFkMzYwZDNkMjYwYTM5Y2IxZjViMTVkYTk3ODM5NTA1MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ3OjM0IDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwb3RlbnRpYWwgZnJlZSBvZiB1bmluaXRpYWxpemVkIHBvaW50ZXIgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDQ6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVuaXRpYWxpemVkIHZhbHVlcyBpbiB1ZHBUYWJsZQoKY29tbWl0IGM0NDYwODY3OWI4OTc1MTE3NmYyOGEyZTU0ZDUyODJiNDZlMmEwNWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo1NjoxMyAyMDExICswMTAwCgogICAgVXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyBhbmQgbWFudWFsIGNsZWFyaW5nCgpjb21taXQgYTA1YzVmOTUxMzQ2MTgyNGU3OTAzYWU5YWU5YTZjMzM4NmUzMzg3OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjQwOjUwIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwcmludGluZyBvZiB1bml0aWFsaXplZCB2YXJpYWJsZSB3aGVuIHNlbnNvcnNfZ2V0X2xhYmVsKCkgZmFpbHMKCmNvbW1pdCBlNGE1ZWRjNzIzOTNiZDNkZTliZjEyYmNlYmE5ZDgzYmJmN2RlNzBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6MzE6MjUgMjAxMSArMDEwMAoKICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZmFlMmU1YjgzNWI4ZGYxZWFlNDdlNGNlYmI0ZWI0MDRkNzI4MjM3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMxOjIxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaXRpYWxpemVkIGlpZCBpbiBlcnJvciBjYXNlcyBhbmQgd2l0aCBkZWJ1ZyBpbmZvIGVuYWJsZWQuCgpjb21taXQgOWQ1OGY4MWE5MjM5Y2ZiY2ZjOGViY2UzNjdkMjFlOWIzZGNiMDI4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMzOjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGluIGVycm9yIGNhc2VzCgpjb21taXQgMGJjOGMwOGVkZWFlN2FlMDk1ZjExNjI1OGMyMGFlNTc2N2Q2MDY1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjIwOjUyIDIwMTEgKzAxMDAKCiAgICBGaXhlZCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZSAnc3RhdHVzJyB3aGVuIHNzID09IE5VTEwKCmNvbW1pdCA3MzA0YzUzY2Y4YWRlZThlY2NlZjFhOGYyNjc1NmZjMDdmMDk4NzIxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxOCAyMzozMTo1MyAyMDExICswMTAwCgogICAgT24gc29sYXJpcyAxMCB0ZXN0IGluIC9iaW4vc2ggZG9lc24ndCBzdXBwb3J0IHRoZSAtZSB0ZXN0LiBSZXBsYWNlIGl0IHdpdGggLWYKCmNvbW1pdCA4Y2QzYmU2MGQ2OTNjOWMzNmZmYjk3ZDNkOWJjYjQ5YzFiNGFiZTM1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAxNyAwODo1MjoyNCAyMDExICswMTAwCgogICAgQXZvaWQgcmVwZXRpdGlvbiBvZiB0aGUgY29tcGxleCBleHByZXNzaW9uIGRldGVybWluaW5nIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGdldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4KICAgIAogICAgVGhpcyBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIHBsYXRmb3JtcyBsaWtlIFNvbGFyaXMgMTAgdGhhdCBkZWZpbmUKICAgIElQX1JFQ1ZEU1RBRERSIGJ1dCBsYWNrIGVpdGhlciBvZiBtc2doZHIubXNnX2NvbnRyb2wgYW5kIG1zZ2hkci5tc2dfZmxhZ3MuCgpjb21taXQgOTUzZjJlM2Q0MjVlZGUzYjg2M2EyZTdjY2IwYjRiYzg2MjkyOGI1NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgNSAyMjoxMzowNyAyMDExICswMTAwCgogICAgTW92ZSB0aGUgdXNlIG9mIF9zZW5kdG8gYW5kIF9yZWN2ZnJvbSBiZWxvdyB0aGVpciBkZWZpbml0aW9ucy4KCmNvbW1pdCA2OGExMTczYzQ2Y2Y3NzYwMTQyNmNmMzkxZDlhODUyNzk0ZjIwNTdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyMCAyMDowNToxOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgb3V0IHRoZSBjbWVzZyBidWZmZXIgc2l6ZQoKY29tbWl0IDQ2MWRkMTZmM2IyNjQ3MzIyY2RjZTYzNjMwODFjYzQ0YmE1YTQ5YjUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDI2IDIxOjUxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNZXJnZSB0b2dldGhlciB0aGUgTGludXggYW5kICpCU0QgdmVyc2lvbiBvZiBzcmMgcG9ydCBzZW5kaW5nLgoKY29tbWl0IDdhY2NiNjliYWExZmMwYjZhMzQzOWQyZTU0OWM4NmRhMzQ1M2JhZDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjMwOjMxIDIwMTEgKzAxMDAKCiAgICBVc2UgYSBiYXJlIHN0cnVjdCBpb3ZlYyBpbiBpbnN0ZWFkIG9mIGEgb25lIGVsZW1lbnQgYXJyYXkuCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2hhbmdlIGlzIHRvIG1ha2UgX3JlY3Zmcm9tIG1vcmUgc2ltaWxhciB0byBfc2VuZHRvLgoKY29tbWl0IDM5ODUyY2Q0Yzg1ZWYyYmZjNzVjZGVhMjgyNTI2MWVlOTNlNzY4YzIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI5OjIwIDIwMTEgKzAxMDAKCiAgICBBZGQgY29tbWVudCBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBjYWxsIHRvIGdldHNvY2tuYW1lIGFmdGVyIGFsbW9zdCByZW1vdmluZyBpdC4KCmNvbW1pdCAxYjI5MmNhMjdlYWI1Y2FhNzNmZWFhYTgzZGM5YzEyYWJjMGYyZTcwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNzo1OSAyMDExICswMTAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlLgoKY29tbWl0IGJjODc5NTcxZWNhOTUyMGJjMTMyZjg0MGMzZTY1OWQzNzkzMTQ0ZDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI1OjM2IDIwMTEgKzAxMDAKCiAgICBJbnRyb2R1Y2UgdGVtcG9yYXJ5IHZhcmlhYmxlcyB0byBlYXNlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBzZXJ2ZXIgYWRkcmVzcy4KCmNvbW1pdCBiN2VlYTZjZmZiZDg3MjkzMmNlMmMwNGZlZmI2ZjQzZGUzMzlmMzc0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxODozMyAyMDExICswMTAwCgogICAgUmVuYW1lIHRoZSBjbWVzZ3B0ciB2YXJpYWJsZSB0byBjbS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBpbmNyZWFzZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuCgpjb21taXQgMGE3NDYxZTcyODgwNWM2MmExY2FiOWQ4N2JmYzc0Yzc5MjdhOWZjYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTU6MjIgMjAxMSArMDEwMAoKICAgIEZhY3RvciBvdXQgYSBjb21tb24gbG9vcCBpbiByZWN2bXNnIG9wdGlvbiBwcm9jZXNzaW5nLgoKY29tbWl0IGIzYzYyNDhkMDIwMWFiMTYxMDg0MGQ2ZDBlNzQ5YjNiNmM0YWQ3OTIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjEzOjQzIDIwMTEgKzAxMDAKCiAgICBVbmlmeSB0aGUgc3RydWN0dXJlIG9mIExpbnV4IGFuZCBCU0QgcmVjdm1zZyBvcHRpb24gcGFyc2luZyBzb21ld2hhdC4KCmNvbW1pdCAzNTY0MDBkNjI5MGE0MjNiNTJlYmVlYTVhNWU5NzZmYjE1YmI3M2I0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTowNDo1NiAyMDExICswMTAwCgogICAgVXNlIENNU0dfREFUQSBvbiB0aGUgcmVzdWx0IG9mIENNU0dfRklSU1QvTkVYVEhEUiwgbm90IG9uIHRoZSBidWZmZXIuCgpjb21taXQgM2IzNTE3MDhjNjJkZTQ2YWExYjkwZWQyMzJjZmQ4YzdjNWIwMjIzMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMjowMDozMiAyMDExICswMTAwCgogICAgUmVtb3ZlIGEgY2FzdAoKY29tbWl0IGRlOTI1MGQ5ZGFlOTcyN2E2Y2M3ZjY0NzY4OGRkZGYxYjg1OTcxMjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTE6NTg6MDQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHNwcmludF9taWJfb2lkKCkgdHJlYXQgT0lEIGNvbXBvbmVudHMgYXMgdW5zaWduZWQgaW5zdGVhZCBvZiBzaWduZWQgaW50ZWdlcnMKCmNvbW1pdCAwZTMzYjNiNmQ1ODU0YTRiYWMxNWQ0ZWE1ZTAxNmM1M2QxNjFkMGNkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEwOjAyOjI4IDIwMTEgKzAxMDAKCiAgICBGaXggcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IGI3ZTUwZDVmOWE2NzU1OTgyZDJhZjMxOTE0NzNjYjM0NjQzYmMwM2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDg6Mzc6MjIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlZHVjZSBvdmVyaGVhZCBvZiBjb25maWcgZmlsZSBwYXJzaW5nCgpjb21taXQgNzNjOWVlNDJkMjhhZmUyZTEwN2E3ZDY2MTZiNmQwMTE4OTBjMzZlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzZGI5Nzk2MmIzN2ViMTJkMjU0ZDYxZTZiZTIzNGIwNmEzOTFjOGJiCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IERlYyA4IDA3OjQzOjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzQ1Mzg2ODogZnJvbSAiQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+IjogRmFjdG9yIGNvbW1vbiBjb2RlIGludG8gcGFzc19jb21tb24KICAgIAogICAgTW92ZSB0aGUgY29kZSBmb3IgcG9ybWF0dGluZyBhbmQgcHJpbnRpbmcgdmFsdWVzIGZyb20gcGFzcyBhbmQgcGFzc19wZXJzaXN0CiAgICBpbnRvIHBhc3NfY29tbW9uLgoKY29tbWl0IGI2NTY4YzgzZjE3NTZlOWE2NTQzNGVkZWVlYjQwZDIzZGRiYmI2NTIKQXV0aG9yOiBjY2NoaXUgPGNjY2hpdUBzb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyA3IDE2OjI1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTIwNjk6IEZpeCBzbm1wdHJhcF9vaWQgZGVjbGFyYXRpb24gaW4gbWliMmMgZ2VuZXJhdGVkIGNvZGUKICAgIAogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgY29uc2lkZXJhYmxlIHRpbWUgYWdvLiBJdCBkaWQgYWxyZWFkeSBleGlzdCBhdCB0aGUKICAgIHRpbWUgdGhlIDUuNiBicmFuY2ggd2FzIGNyZWF0ZWQgKHNlZSBhbHNvIGNvbW1pdAogICAgMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCgpjb21taXQgZDQ5NGRiNjRjMjA4YjRkYzYyODEzMTMyZjg4NjNiZDVjMWEzOWQ3NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozODoxNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBFbGltaW5hdGUgYW4gdW51c2VkIHZhcmlhYmxlIChOb3cpCgpjb21taXQgMjhmMjU2MWJjMjkzNWQ4ZTFjYmY0NmQyODIwMTU4MTczZTdhNGNmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozNzoxMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBNb3ZlIHRoZSBtYWluIGxvb3AgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uCgpjb21taXQgMzk2ZTEyMmRkYzQyYTkxNmYwNmEwMjg4NGMwZThhMjU4ZWRiZTIzOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAwOTozMjoxNiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1hdGNoIGVhY2ggZ2V0cHduYW0oKS9nZXRwd3VpZCgpIGNhbGwgd2l0aCBhbiBlbmRwd2VudCgpIGNhbGwgYW5kIGVhY2ggZ2V0Z3JlbnQoKSBjYWxsIHdpdGggYW4gZW5kZ3JlbnQoKSBjYWxsLgoKY29tbWl0IDNlZmVmYmMwMDI0Mzk5Nzg2ZjhiNjhiMWU5M2IwYThmZGRkZGM3ZGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6NDE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgN2YwNWRhYThlMGUwZjUzM2IwZjEyYTNlMWNmMDc2NDE1MTk5MDlkNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMTo1ODozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQ0OTM5OiBCVUc6IDE3OTY4ODY6IHNubXBsaWI6IEF2b2lkIHRoYXQgc3ByaW50X3JlYWxsb2Nfb2N0ZXRfc3RyaW5nKCkgZW1iZWRzIHVucHJpbnRhYmxlIGNvbnRyb2wgY2hhcmFjdGVycyBvciBiaW5hcnkgemVyb2VzIGluIGl0cyBvdXRwdXQuIFRoaXMgYmVoYXZpb3IgY291bGQgY2F1c2UgdHJ1bmNhdGVkIG91dHB1dCBpbiBzbm1wdHJhcGQuCgpjb21taXQgZGI4ZjU1OGZkMmYzYjdjMTA5ZWEzYTFjMjEzM2I3NWI2ZjhjYjJhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDowNDo0MSAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXg6IHBhc3MgdW5zaWduZWQgY2hhcnMgdG8gaXNwcmludCgpIGluc3RlYWQgb2Ygc2lnbmVkIGNoYXJzLgoKY29tbWl0IDgwMGRjMTAyOGU3ZTBjZDhjYzE0ZDg0ZGQzMTcyM2Q0N2FjMDczZGIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MTg6NTggMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIGhpbnQgdmFyaWFibGUKCmNvbW1pdCA4M2VhNGEwODBjOTBhNzRiOTc0M2QzZjI0Y2YwZDRiOGExZThjODQ5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyNyAyMToxNjo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgcW9zCgpjb21taXQgN2I5ZTAzNDQxYzNkYzNhMDc2NzBlZDAxZjVkMDQ3OTFhODJjNzUwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDQ6MDEgMjAxMSArMDEwMAoKICAgIFJlbW92ZSAjZGVmaW5lIHZhbCh4KSBfX1NUUklORyh4KSBhbmQgY2hhbmdlIHZhbCh4KSBpbnRvIF9fU1RSSU5HKHgpLgoKY29tbWl0IDJmMzc5YjBlNGVjYWRmYTRlNTQxZTMwMDVjOGZjODI4MTg4MmI3NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE1OjU4OjQ3IDIwMTEgKzAxMDAKCiAgICBGb2xsb3ctdXAgZm9yIGNvbW1pdCAxYWE3MDRlOiB1bmJyZWFrIHRoZSBNU1ZDIGJ1aWxkCgpjb21taXQgNjRlZjBmNzExMjc2MTc4MzcwMjdmYjJjZmFmMTc0Yjk1YmE3OWUwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MTk6NTAgMjAxMSArMDEwMAoKICAgIEFkZCBTTk1QOjpyZWdpc3Rlcl9kZWJ1Z190b2tlbnMoKQoKY29tbWl0IDdiZWFkOWNhOTE3YzY3NTY2ZDVlZDk4YWI1MDdiYmMwMjgxNjIxN2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA4OjA4IDIwMTEgKzAxMDAKCiAgICBBZ2VudFggc3ViYWdlbnQ6IFJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uCgpjb21taXQgMGVkNzE1NDFmODdlN2Q3OGJjOTk4ZWViZGEzMjE3YzU5ZTFkZjgzMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDM6MTkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBEb3h5Z2VuLXN0eWxlIGZ1bmN0aW9uIGhlYWRlciBmb3IgbmV0c25tcF9yZWdpc3Rlcl9kZWZhdWx0X3RhcmdldCgpIGFuZCBuZXRzbm1wX2NsZWFyX2RlZmF1bHRfdGFyZ2V0KCkuCgpjb21taXQgOGMyOTcyYjYxZTQwMTY5YjQ3YzUwOTg4YjZhZTllOGMyODVmODRmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDI6NTQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEZpeCBzcGVsbGluZyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgU05NUCBtb2R1bGUKCmNvbW1pdCA1ZGYyYmFjNmJkNzE3Nzk5MzExZjAwMWFjN2I3M2RiODhmMTFiZGRhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODo1OTo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogT25seSB0cmFuc2Zvcm0gdGhlIGFkZHJlc3MgdG8gcHJpbnRhYmxlIGZvcm0gd2hlbiBuZWVkZWQuCgpjb21taXQgMTcxZThkNDhkNGFmMDQwMTNjZmY4ZmQyOGY1MzQxYTJhZWYyMWQ4OApBdXRob3I6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDE2OjQ5OjQ2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wLWJyaWRnZS1taWI6IEZpeCBpbmRleCBpbnRlcnByZXRhdGlvbi4KICAgIAogICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBhIHdyb25nIGRhdGEgaW50ZXJwcmV0YXRpb24uCiAgICBzbm1wLWJyaWRnZS1taWIgb2J0YWlucyB0aGUgaWZpbmRleCB2YWx1ZSBmcm9tIHRoZSBzeXNmcwogICAgYXR0cmlidXRlICdpZmluZGV4JyBUaGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN5c2ZzIGF0dHJpYnV0ZQogICAgaXMgYW4gaW50ZWdlciwgd2hpY2ggaXMgaGFuZGxlZCBhcyBoZXggYW5kIGxlYWRzIHRvCiAgICBpbmNvcnJlY3QgZGF0YSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCiAgICAKICAgIGUuZy4KICAgICAgICAkID4gc25tcHdhbGsgbG9jYWxob3N0IEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIKICAgICAgICBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yID0gSU5URUdFUjogNTQKICAgIAogICAgYWNjb3JkaW5nIHRvIHRoZSBzeXNmcyBhdHRyaWJ1dGUgdGhlIHZhbHVlIGlzIDM2CiAgICAKICAgICAgICAkID4gY2F0IC9zeXMvY2xhc3MvbmV0LzxkZXZpY2U+L2lmaW5kZXgKICAgICAgICAzNgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+Cgpjb21taXQgODJlMzlmYjY3MDZkZjkwZWNmMmZjOWUxMGFkYTJiOTYyZWUxOTZmMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDI5IDEyOjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBGaXggbXVsdGktbGluZSBjYXNlIHRlc3Rpbmcgb2YgaW5jb21pbmcgT0lECgpjb21taXQgYjE1ZGExYTQ1MTYwNjExMDVhMWVhYzc0NTBjZjY1MGVjNDQyNjZiMgpBdXRob3I6IE5pa29sYXkgRGVuZXYgPG5kZW5ldkBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODoyOTo0OSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUmVzdG9yZSBJUF9SRUNWRFNUQUREUiBmdW5jdGlvbmFsaXR5LgoKY29tbWl0IDdmNDdmNTJlNDgxYmFhOWFhZmI1Nzg0MjQ0YjBkZDI2NTNlN2RjZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDI4IDA4OjUxOjM5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgU05NUF9BTExPQ19UWVBFREVGIHRvIGFsbG9jYXRlIHRyYW5zcG9ydHMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIHNlcGFyYXRlIGNhbGwgdG8gbWVtc2V0LgoKY29tbWl0IGNmODYwMzllMzA4NjIyNWMzMDg1YmI5YWRmMDg4YjhiYTViYTY5NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE1OjAyOjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYiBwYXNzLgoKY29tbWl0IDFhODdlNzZlMDBlZTNkNWNkMzdhMDdiZmMzZDg0NDkwZDNjMmE0ZWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE0OjU1OjQyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QwMTRnZXRob3N0YnlhZGRyX2NsaWIgcGFzcwoKY29tbWl0IDg4NjdmZDFkY2ZlNzJiNTlkMDczMjJmZjM4YTY5OWI2NmVjNGYzMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDA5OjQ0OjM4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHJvYnVzdCBhZ2FpbnN0IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVzLgogICAgCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIE5FVFNOTVBfTEFSR0VfRkRfWkVSTygpIHVzZSBtZW1zZXQoKSBvbiBVbml4IHN5c3RlbXMgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBsb29wLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBzdXJlIHRoYXQgb24gVW5peCBzeXN0ZW1zIG5ldHNubXBfbGFyZ2VfZmRfY2xyKCkgZG9lc24ndCB0cnkgdG8gcmVhZCBtZW1vcnkgaXQgaXNuJ3QgYWxsb3dlZCB0byByZWFkIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX2lzX3NldCgpIHJldHVybiBmYWxzZSBvbiBVbml4IHN5c3RlbXMgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHNocmluayBiZWhhdmlvciBjb3JyZWN0LgoKY29tbWl0IDIzZGIwY2YwOWI4YjBlYWIzN2I3NDllZjBjM2MzZjMwNjkwMDI0NWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDIxIDIzOjAyOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggY2FzdGluZyB0dl91c2VjIHRvIGludCB3aGljaCBtYXkgYmUgdG9vIHNob3J0Cgpjb21taXQgODBlZTQwMjJlNTM0ZTY0YWFkNWE1ZjI3MTkyODQzYjQyYWNiODVlMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IE1vdmUgbmV0c25tcF9wYXNzX3N0cl90b19lcnJubyB0byBwYXNzX2NvbW1vbiBhbmQgcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KCmNvbW1pdCAwYmFhOTI5NmMwNzJiYjM3MzU3NjBiMGRkOTkyZjJkMWQzY2EyN2ZhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOTowNToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jaWVzIG9mIHVjZC1zbm1wL3Bhc3MgYW5kIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdAoKY29tbWl0IDFhYTcwNGU0YTI5NDQzMGIyOGUzOWI2ZjllNDY4M2I4YTQ4YmNlMDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA4OjM1OjIxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8gdGhlbQoKY29tbWl0IGNkYThmZTkxMDEzZjEyY2JmNjRhMDc3NWFiYjU1NzIwMDM1YWY5MzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDAwOjU1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQ2FsbCBzbm1wX29pZHRyZWVfY29tcGFyZSBpbnN0ZWFkIG9mIHNubXBfb2lkX21pbl9jb21wYXJlCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNubXBfb2lkX21pbl9jb21wYXJlIHNpbmNlIGl0IGlzIGludGVybmFsIGFuZCB1bnVzZWQKCmNvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CkF1dGhvcjogTmlraSBEZW5ldiA8bmlraV9kQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDE3IDIyOjQyOjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQogICAgCiAgICBUaGlzIGh1bmsgZmVsbCBvZiB3aGVuIHRoZSByZXN0IG9mIHRoZSBwYXRjaCB3YXMgbWVyZ2VkLgoKY29tbWl0IDVjOTEzZTU0NjU2YWUwMDk2YjFmZWI2ZGE5OGI1ZmM5Y2E4MWYyNzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMzOjA3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKCmNvbW1pdCBiODgxODQxYmQwNDkzZGQ3MWQ2MzI1OWJkZGVkNDQ5YjA2ZjAyYzMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMDozMyAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGNhMjk0Y2Y3NWJiYzhlOTBkYmY0NGVlNDA0Nzg5MzVlOTFkYjE0ODcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE4OjAzIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IGNkMzJjMmRmZjA2YjliNDUyY2MxOGQ1NTJkMmYyMjM0MDkyYzgyOWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE3OjA5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHdhcm5pbmcKCmNvbW1pdCA4ODMxMzZjMmIyZmEwNzM5ZjQzN2E4Y2ZiNjYxNGFjY2M3NmUyNjhlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNTo1OCAyMDExICswMTAwCgogICAgTW9yZSBuZWVkcyBmb3IgTkVUU05NUF9QUklvIGZvcm1hdCBzcGVjaWZpZXIKCmNvbW1pdCBiODA4NGE3Y2NjOTA5YjZkNmRiN2MwZThlNTk2ZDc4NjcxZjU2NzhiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNDoyNiAyMDExICswMTAwCgogICAgRml4IHVzaW5nIGNoYXIgYXMgYXJyYXkgaW5kZXggKGN0eXBlLmgpCgpjb21taXQgODQ1MjllNjMyMGE4OWQ5N2YxMzE0YWViYWQ4MDYyNTVkMmExYjE4YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MDA6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBtaXNzaW5nIGZvcm1hdCBmb3IgRnJlZUJTRCA0Cgpjb21taXQgNGJkMDM1Mjk1NWEyNTUxYmZlMDIzMDhkZDEzNGI5MTI4Yzk4YjllOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTk6MzYgMjAxMSArMDEwMAoKICAgIEZpeCBwYXJhbnRoZXNpcyBwcm9ibGVtCgpjb21taXQgZmU2MjY5YjE5MDBjZjQ0ZGMyN2ExOTlhNzYxZDE1YTAxYzNmMzA5MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTg6MzQgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBhNGRiOWY5ZmMxM2QyMWVjZmY0ODhlYjQxMDM3NmVkZGE2YzI4MjMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzo0MzozNCAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzozNzo0OSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzCgpjb21taXQgMjVjZmMxOTYyYWU1NzZjY2IxNTU4ZGExZTNlZjhiNmMxN2Y2M2MxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTE6Mjc6NTMgMjAxMSArMDEwMAoKICAgIFJlYWxseSB1cC10by1kYXRlIG1pYnMKCmNvbW1pdCAwZTg2Yzc4MWYzOTg5YmYwMjJjODk5M2ExMTg2MTdiNzRhNzU0MjBjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNzoxOSAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBnZXQgU2htZW0gZnJvbSAvcHJvYy9tZW1pbmZvIGZvciAyLjYgKG9yIG5ld2VyKSBrZXJuZWxzCgpjb21taXQgYmYyNjRkMTVkZWQ3YWNiYmYyZTM4NzFiOThmZDFmY2VmNDNkOWVjMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTY6MTYgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogY2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgNTdmZjhhNDBiYWU1ZDliY2FkMTYwODkxNDJhOWNmMzI4YzlmYTFmNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTQ6NTcgMjAxMSArMDEwMAoKICAgIGRpc21hbi9waW5nLCBkaXNtYW4vdHJhY2Vyb3V0ZTogQ2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgOGEyNTAyYTE1YzMyMTdiOTU5MzlhM2M4MzYxNjdkMjMwYWMzNWYwMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTM6NTMgMjAxMSArMDEwMAoKICAgIFVwLXRvLWRhdGUgbGlzdCBvZiBSRkNzIHdpdCBtaWJzCgpjb21taXQgZGNkZDcwMjExMWQ4ZGE1ZjUzODA0Y2ZjZjBkZmRhZDczMTQ2OGJkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDE1IDEwOjU3OjM0IDIwMTEgKzAwMDAKCiAgICBEb24ndCB0cnkgdG8gaW5zdGFsbCBhbiBlbXB0eSBsaXN0IG9mIG1hbiBwYWdlcyAoTUFOMykKCmNvbW1pdCBiYTYxOTgwNGU1OTc4YThkZjc1NDg0NGVmY2NhNTJiNjliNTAxNWZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMzozNDoyMCAyMDExICswMTAwCgogICAgTWluR1c6IE1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgcHNraWxsIG1lc3NhZ2UgYXJlIGRpc3BsYXllZC4KCmNvbW1pdCA5MjNlZWNjNTA3Zjc1MDQzYjYwYzVlNjgwNTNhNGYzOTZhYjBiMGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMjozNjozOCAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXggZm9yIHN5c3RlbXMgd2hlcmUgdWludDY0X3QgPSB1bnNpZ25lZCBsb25nIChlLmcuIFJIRUwgNi4xL3g4Nl82NCkKCmNvbW1pdCA0MzRiZmMxZjc0NTc1NTBiNmY4N2Q1YmNkNTExMjc2YjI3MGI1OTY0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTQgMTE6MjI6NTMgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmcm9tIE1hcnRpbiBXaWxjazogZml4ZWQgc25tcGQgY3Jhc2hpbmcgd2l0aCAnc2VsZWN0OiBiYWQgZmlsZSBkZXNjcmlwdG9yJy4KICAgIAogICAgT24gMzItYml0IHN5c3RlbXMsIHNubXBkIGRpZXMgd2l0aCBhZm9yZW1lbnRpb25lZCBtZXNzYWdlIHdoZW4gdXNpbmcgZmlsZSBkZXNjcmlwdGlvbnMgPiAzMiwgZS5nLiB3aGVuIGhhdmluZyA+MzIgQWdlbnRYIHN1YmFnZW50cy4KCmNvbW1pdCBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMToyMSAyMDExICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yIGNvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwoKY29tbWl0IGVhY2E3OTgzZTM2NTVhYjY5NmZjYzQ0NjFjYTBjZWRiYWM2Y2U2OWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAwOjEyIDIwMTEgKzAxMDAKCiAgICBOZXRCU0QtNjogT25lIG1vcmUgaW5zdGFuY2Ugb2YgdGltZXNwZWMgcmVwbGFjaW5nIHRpbWV2YWwKCmNvbW1pdCA4YWQ2YzUzZmRlYzVhZGVhZTRlNTJmMTc1MWVjZWM0YTM0NWJhYjA1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1OTowMSAyMDExICswMTAwCgogICAgRml4IGJ1aWcgIzM0MzY1Mjc6IGFycF9uZXRsaW5rOiBmaXggZHlpbmcgcmVsb2FkIG9mIGNhY2hlCgpjb21taXQgMzc4ZmZlZDAzYmE3OWE4MzQ2ZDZjNjI3ODFlMmRkZjVjZTkyYTQ3OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTU6NDMgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzY1Mjg6IHN3aW5zdF9wa2dpbmZvOiByZWNvdmVyIGZyb20gTlVMTCByZXR1cm4gZnJvbSBvcGVuZGlyCgpjb21taXQgZDdhZDhmNWY5ZjNmNjdmMTZmNjVjMjUxNWQxMWUxOTRkMmNkZDEyYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEN5Z3dpbjogTWFrZSBkYXRlX25fdGltZSgpIHByb2R1Y2UgdGltZSB6b25lIGluZm9ybWF0aW9uCgpjb21taXQgYmEzNWM1MGIyZjQ1OWJkOWMxMWVkNTljYzdkMWIxNjIxNTY0NGZhMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MTc6MDQgMjAxMSArMDEwMAoKICAgIFJlcGxhY2UgQUNfVFJZX0xJTksoKSBieSBBQ19MSU5LX0lGRUxTRSgpCiAgICAKICAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQuCgpjb21taXQgZjYxNWJmMjRmNWQwZjIzY2U5MzAxZGE1NTYxODRkNjQ2MDc0MDQ1NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMjo0OSAyMDExICswMTAwCgogICAgRmlzIEJ1ZyAjMzQzNDgyNDogU0lHU0VHViB3aGVuIHJlYWRpbmcgZGlzayBkaXJlY3RpdmUgYWZ0ZXIgU0lHSFVQCgpjb21taXQgYTk0YTE3OWQ5MzQwZjUxZmE3YzIzNDMxNjMwYmMwZmZkNmQ3NTllOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMDo1MSAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzMzYxNjogZG9udCB0cmVhdCBEYXRlQW5kVGltZSBhcyBhIHN0cmluZwoKY29tbWl0IGIyOWU0MTY0NTMxZDI1OGZlMzRhNmZlMmI5ZTFlYzYwYzU2Zjk1NDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDcgMDE6MjU6NTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBlMjIxZTY1ZmRjMWM2OGYxOTY4NjUxNzE3ZGNjOWNjZmI2NDE0NzgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDE1OjA1OjAwIDIwMTEgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgYWJvdXQgY29udmVydGluZyBzb2NrYWRkcl9pbiAqIGludG8gc29ja2FkZHIgKi4KICAgIAogICAgVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IGEwYWYzODUuCgpjb21taXQgMmU3ZTllZGEwYjBkNjJhNzY0NWE5YThmNzBlZjNmYjZmM2RkNjk0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxMToxNzo0OCAyMDExICswMTAwCgogICAgRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MuCgpjb21taXQgMzQ2MmViY2RkMGI3YzI5OGNiMTVjMzA5OTczNmY0Zjk1MjI1Nzg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgMjggMTY6MDc6MTUgMjAxMSArMDIwMAoKICAgIFJlbW92ZSB0aG9zZSBzdXBlcmZsdW91cyBwYXJlbnRoZXNlcyB0aGF0IHRyaWdnZXIgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDNlNWZlZGQzZTdkMWVmMzE2ODM2MDRiZjczZGM1NmU5NDRjYWQzNDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAzIDA5OjQ1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KICAgIAogICAgQWZ0ZXIgMzAgZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzIGFuZCBzbm1wZCBjYWxjdWxhdGlvbnMgbWlnaHQgcmVuZGVyIGNvdW50ZXJzIGxpa2Ugc3NDcHVVc2VyIG5lZ2F0aXZlIG9yIHplcm8sIHdoaWxlIHRoZSByZWFsIHZhbHVlIGlzIGhpZ2hlci4gVGhlcmVmb3JlIHRoZSBjb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KCmNvbW1pdCAwZmM4MjIxYjI0OTg4YzRhZTYxODBlZDQyYjg2Yjk4NTJmZDU4NmFkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIyOjU5OjA4IDIwMTEgKzAxMDAKCiAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQoKY29tbWl0IGE1YjI4ODI5ZTY0ZDVmM2I4N2U0YjliMWVmOGNjMjA0ZjMzYTYxYjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjE6MjU6MDcgMjAxMSArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgJEFXSyB0byBnZXQgYSB1c2FibGUgbmF3awoKY29tbWl0IDI4MDFhMjEzOWYyNzAyMWUxYWIxNWUzNjJlMmQzZDYyNGZmYWE0OTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKCiAgICBQYXRjaCAjMzQwNjM2NDogRml4IHVuc3RhYmxlIGRhdGEgZm9yIE5ldEJTRC4KCmNvbW1pdCA4MjFhNThkMTEyZDdhYzQ5NTE0OWUyNjJkNzA0NDEyYmEyODAwNDM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCgogICAgRml4IGlwdjYgc3RhdGlzdGljcyBsb29waW5nIHRvbyBmYXIgd2hlbiBzY2FubmluZyBpbnRlcmZhY2VzLgogICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KCmNvbW1pdCAzNDk1OTFkMDNlMTdhNTViNDNlYWNjNmE2ODdiMDJmZDhkNGU5NTI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE9jdCAzMSAwODo1OTozNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCgpjb21taXQgMWVjNzExMGU3MmJjZTE1NjFmNzQ2NTE3NDU5ZDZmMDQzMDE2YjYwZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMzAgMTk6MDU6MzAgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgoKY29tbWl0IDZkMjY5MThhZjU1YWEzNjYyYTcyMDU0MmRlNzdiYmYzOWIwYTNlOTEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDI5IDA4OjM0OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KCmNvbW1pdCAyOWJmNjlkNzA0MjRmMzU5ZDljODdmMDdhOTY0YTA5OTQxNTY0OWE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgogICAgCiAgICBUaGlzIGlzIGEgYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCgpjb21taXQgMmNjOTUwNGI5YmI4NjI1Yjk0YmU2Y2RhN2U2MDk5M2QwNTljZDkyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyODUwNjogRml4IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigpCiAgICAKICAgIFRoaXMgcGF0Y2ggc2hvdWxkIGZpeCB0aGUgcmVncmVzc2lvbnMgaW50cm9kdWNlZCBieSBjb21taXQgODVkOTZjNCAoTWF5IDEzLCAyMDExKS4KCmNvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyNyAwODoyMDowMCAyMDExICswMjAwCgogICAgTWluR1c6IEF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIE1pbkdXJ3Mga2lsbC5leGUgYW5kIHRoZSBTeXNJbnRlcm5hbHMgcHNraWxsLmV4ZQoKY29tbWl0IDJjNDVmOTJjZmNiNWIwNWUwNDkyMjZhNWE3ODgzYTBiMTA2MDExYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDEwOjQyOjI5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcGFzc2luZyBhIGNvbnN0IHBvaW50ZXIgdG8gYSBmdW5jdGlvbiBhY2NlcHRpbmcgYSBub24tY29uc3QgcG9pbnRlci4KCmNvbW1pdCAyNzVkMjNlZGZkZWJlMDU3N2IwODQyMWU0YzZjOTM2YWUzOWI3ZmRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMzowOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNldC1idXQtbm90LXVzZWQgdmFyaWFibGVzCgpjb21taXQgNDQ5NWUxN2MwNzhhYzY5OTdhOWM3ZmExYTg4ZGIwNjQ0ZTkxOTQ5MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzI6NDYgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCAxMzk1MmY2YmVlOWY0MDg4NjdhYjZkMmZkZmRkZTRmMjg0MDc0OTU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjYgMTQ6MDU6MTYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gU2lkZGhlc2ggUG95YXJla2FyOiBwcm9wZXJseSBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgaW4gYSBzdWJhZ2VudCB3aGVuIHdlIHJlY29ubmVjdCB0byBtYXN0ZXIuCiAgICAKICAgIEFuIHNubXAgc3ViYWdlbnQgbGlua2VkIGFnYWluc3QgbmV0LXNubXAtbGlicyBtYXkgY3Jhc2ggaWYgaXQgaGFuZGxlcyBhCiAgICByZXNwb25zZSB3aGljaCBoYXMgbWFnaWMgcmVmZXJyaW5nIHRvIGFuIG9sZGVyIGRpc2Nvbm5lY3RlZCBtYWluIHNlc3Npb24uIFRoaXMKICAgIG1heSBoYXBwZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgIGF0dGVtcHRzIHRvIGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBvbiByZWNvbm5lY3Rpb24gb2YgdGhlIGRpc2Nvbm5lY3RlZCBtYXN0ZXIKICAgIHNlc3Npb24uCgpjb21taXQgYWUwNTI0NzJiMjI3MjBkMDgzNjllODUxMjdkYjIxNDI0NWRmMmUzZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDI1IDE2OjE1OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgIAogICAgV2hlbiBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIgZmFpbHMsIGl0IGZyZWVzIGl0cyByZWdpbmZvIC0+IG5zYWhyX0RFU1RST1kgKGFuZCBhbnkgb3RoZXIgZnVuY3Rpb24pIG11c3Qgbm90IGRlcmVmZXJlbmNlIGl0LgoKY29tbWl0IGMxOTliZjkxYjYyMzlmMjZiMmFhYjM0ZTg1NzVlMGYwZGY5Y2RlOWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyNCAxNDoyNToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHhmcywgamZzIGFuZCB2eGZzIGZpbGVzeXN0ZW1zIGFyZSBub3cgcmVjb2duaXplZCBpbiBoclN0b3JhZ2VUYWJsZQoKY29tbWl0IDc0N2ZkYzcxZTY0ZDA5ZTA4MDkyOGViYmI0ZDA0Y2JkZTM5MDY3OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDE1OjU3OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnZXJyb3IgZmluZGluZyByb3cgaW5kZXggaW4gX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZScgbWVzc2FnZS4KICAgIAogICAgVGhlIG1lc3NhZ2UgaXMgc2hvd3MgdXAgd2hlbiBzbm1wZCBpcyBzdGFydGVkIGFuZCB0aGVyZSBpcyBkaWZmZXJlbnQgc2V0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB0aGFuIGl0IHdhcyB3aGVuIHNubXBkIHdhc3QgbGFzdCBzdG9wcGVkLiBUaGlzIGlzIGNvbW1vbiBvbiBwcHAtc2VydmVycyBvciB2aXJ0dWFsIGhvc3RzLgoKY29tbWl0IDI1MGY2OThlNTllYWI5ZjFmZmQzMzJmZjU5ZmRiNzJlYTBkZjA2ZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIzIDA4OjUxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSB0aGUgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZSB3b3JrIGFnYWluCiAgICAKICAgIFByZXZpb3VzbHkgdGhlIHRyYW5zcG9ydCBpbmhlcml0YW5jZSBwcm9jZXNzaW5nIGNvZGUgcmFuIHdpdGgKICAgIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyBzZXQuIEluIHRoaXMgbW9kZSB0aGUgZmlsZSBuZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaAogICAgaXMgcmVxdWllcmVkLiBUaGF0IGZpbGUgaXMgY3JlYXRlZCBkdXJpbmcgdGhlIGZpcnN0IG1ha2UgcnVuLCBhbmQgdGhhdCBoYXBwZW5zCiAgICBhZnRlciBjb25maWd1cmUgaXMgcnVuLgogICAgQ2hhbmdlIHRoaXMgdG8gdW5kZWZpbmUgTkVUU05NUF9NSU5JTUFMX0NPREUsIGVmZmVjdGl2ZWx5IHR1cm5pbmcgb2ZmIGZlYXR1cmUKICAgIHN1cHBvcnQgZHVyaW5nIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIG1ha2UgaXQgd29yayBhdCBhbGwuCgpjb21taXQgNmVmNjkwNzY0MjI0N2M2NjNiOWI4OTY0YjlmZDQ0YTIxMWRiY2FhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjAgMjA6MzA6NTQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MDgzOTg6IEZpeCBhIG1lbW9yeSBsZWFrIGluIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuCiAgICAKICAgIFRoaXMgbWVtb3J5IGxlYWsgd2FzIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgOWJmM2Q5NmQ5NmE4ZWNkNGE1ZmMzNWMzMjZkYzkzNzQ2NzAwMmI2YzogSW5pdGlhbCBIQUwKICAgIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24gKE1hcmNoIDcsIDIwMDgpLgoKY29tbWl0IGNmODJiODk0YjIyMTdjMjZlZGM2ZjEzNTYzNTFjOTMyNDE1NjA0ZTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgT2N0IDE1IDE0OjQ1OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0MjM5MTU6IENoYW5nZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGJhY2sgZnJvbSAwIHRvIDUKICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIHZpYSBjb21taXQgNmNhYzA1MCAoTWF5IDUsIDIwMTEsCiAgICBhZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGluCiAgICBzbm1wZC5jb25mKS4KCmNvbW1pdCBjMTFhZGFhMTI5MTVhYmZlZTYyOWJiNmMwMjZjMjFmMjE4NWIyMTZlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgY29tcGlsaW5nIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IHdpdGggdGhlIE1pbkdXIGdjYyBjb21waWxlciB0cmlnZ2VycyB3YXJuaW5ncyBhYm91dCAicHJhZ21hIGNvbW1lbnQiLgoKY29tbWl0IGIxN2E3MmE3OTM0ODNhZWU0YTViYjJmMmUyYzdmNGZkODY5ODE3ZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjIyOjIwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCB0aGUgUEFDS0FHRV8qIG1hY3JvcyBkZWZpbmVkIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2F1c2UgdHJvdWJsZSB3aGVuIGluY2x1ZGluZyB0aGlzIGhlYWRlciBpbiBhIHBhY2thZ2UgdGhhdCB1c2VzIHRoZSBHTlUgYXV0b3Rvb2xzLgoKY29tbWl0IDY2NGQzYWUxMDdkNzU0MDUxYjhjNDIyNzlkNDU5YWE1N2ExYmUxYzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE2OjQ3OjE2IDIwMTEgKzAyMDAKCiAgICBNaW5HVywgaHdfZnN5czogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVycyBpbiBhIGRlYnVnIHN0YXRlbWVudC4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCA3NmZmMjVkLgoKY29tbWl0IDIxMWRjYjQ5MzA2NTYxZTM1YmEzYzIxM2JlN2NmYTI1N2I0MGE4ZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE1OjUyOjQzIDIwMTEgKzAyMDAKCiAgICBBdm9pZCB0aGF0IGdjYyA0LjYgY29tcGxhaW5zIGFib3V0IHNldCBidXQgbm90IHVzZWQgdmFyaWFibGVzCgpjb21taXQgOWY2NTNmNzNlNWFhNzBmMGJlZjExNzQ2MzJlOTU1OTRmODdmNjY5ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KCmNvbW1pdCA0YzgzYjkyMjlhNzQ1NGYzNGY2ZmY3NWY2OWU2N2U0MDMwYzQxOWI1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE1OjU4OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXQgdGhlIHJwYXRoIGZvciBsaWJwZXJsLnNvIGluIGxpYm5ldHNubXBtaWJzLnNvIHN1Y2ggdGhhdCB0aGUgZHluYW1pYyBsaW5rZXIgY2FuIGZpbmQgbGlicGVybC5zbyB3aXRob3V0IHJlcXVpcmluZyB0aGUgdXNlciB0byBtb2RpZnkgdGhlIGR5bmFtaWMgbGlua2VyIHNldHRpbmdzLgogICAgCiAgICBUaGlzIGNoYW5nZSBpbiBhZ2VudC9NYWtlZmlsZS5pbiBpcyBuZWNlc3Nhcnkgb24gdGhlIDUuNSBicmFuY2ggYW5kCiAgICBsYXRlciBidXQgbm90IG9uIHRoZSA1LjQgYnJhbmNoLiBUaGF0IGlzIGJlY2F1c2UgdGhlIDUuNCBicmFuY2ggdXNlcwogICAgYW4gb2xkZXIgdmVyc2lvbiBvZiBsaWJ0b29sIHRoYXQgcHJvcGFnYXRlcyB0aGUgcnBhdGggb2YgZGVwZW5kZW50CiAgICBsaWJyYXJpZXMuIFRoaXMgaXMgY2FsbGVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jeSB0cmFja2luZyBpbiB0aGUKICAgIGxpYnRvb2wgbWFudWFsLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudCBpbiBsaWJ0b29sIHZlcnNpb24gMQogICAgYnV0IG5vdCBpbiBsaWJ0b29sIHZlcnNpb24gMi4gRm9yIG1vcmUgYmFja2dyb3VuZCBpbmZvcm1hdGlvbiBhYm91dAogICAgZHluYW1pYyBsaWJyYXJpZXMgYW5kIHJwYXRocywgc2VlIGFsc28gdGhlIGRvY3VtZW50IHdpdGggdGhlIHRpdGxlCiAgICAiUnBhdGhJc3N1ZSIgb24gdGhlIERlYmlhbiB3aWtpIChodHRwOi8vd2lraS5kZWJpYW4ub3JnL1JwYXRoSXNzdWUpLgoKY29tbWl0IDg5MjVjOTEyZDI2Mzk3NTJhODRiY2ZmZWVmMWI3MGE4MTAyNjQ0OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MjE6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBIT1NULVJFU09VUkNFUy1NSUI6IEFkZCBtaXNzaW5nIGJyYWNlIGluIGEgZGVidWcgc3RhdGVtZW50Cgpjb21taXQgNzZmZjI1ZDliZjk3NTc5ZTcyMTMxMDIwNjVmZDUwOTZmMDQ5YTRjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoxMzoxOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTdG9yYWdlVGFibGU6IGZpeCBidWcgaW4gaGFuZGxpbmcgbGFyZ2UgZmlsZXN5c3RlbXMsIHdoZXJlIGxhcmdlIG1lYW5zIGFib3ZlIDggVEIgKD0gMioqMzEgKiA0MDk2IGJ5dGVzKS4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgNzFkODI5M2YzODdhNmNkNjZiYjBkYmIxM2MwZjUwMTc0ZDJlNjc4Yi4KICAgIEZvciB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydCwgc2VlIGFsc28KICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvP2Z1bmM9ZGV0YWlsJmF0aWQ9MTEyNjk0JmFpZD0zNDE5ODI1Jmdyb3VwX2lkPTEyNjk0LgoKY29tbWl0IDg2NjAzM2RiOTkwNGZmYjEyMDNmMjgzZjgzODA5MmU0Y2Y2OGRlNmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDc6MzM6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc3B1cmlvdXMgI2VuZGlmIHRoYXQgc2VlbXMgdG8gYmUgdGhlIHJlc3VsdCBvZiBhIG1pc21lcmdlLgoKY29tbWl0IDIwZjRmMzI2N2VlMjBkNTU3MDViN2E0Mzc4OTg3OWMxMDNmOTY2MjAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDA6MDg6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbWlzc2luZyBlbmQgY29tbWVudHMgdG8gZmVhdHVyZSBpZm5kZWZzLgoKY29tbWl0IGU1ZGUyY2M1N2JmMzA0ZjMzMjBjYWQwMDM0ZDJlYTJkOGFlZGM0MzYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDk6MTU6MTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBMb2cgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2UgaWYgZW1iZWRkZWQgcGVybCBpbml0aWFsaXphdGlvbiBmYWlscwoKY29tbWl0IDVlZWY5OTkwZGUyOGY2MzExMWU2YzA5M2JlMGYzYzdhZTJkNTEzYTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDU6NDkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEFkZCBhZ2VudDo6dXB0aW1lKCkKCmNvbW1pdCA2ODEwZWQ0MmY5YmM1NjA3NTBkNmRiZmI3ZTUwYjZlMmFjMTE4OTljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogQ3l3aW46IGFnZW50OiBJbXBsZW1lbnQgZ2V0X3VwdGltZSgpIHN1Y2ggdGhhdCBxdWVyeWluZyBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3lzdGVtVXB0aW1lIHJldHVybnMgYSBub24temVybyB2YWx1ZS4KCmNvbW1pdCA5NzE3MmIzMTFkMjBmNDQ0MWM3YTdlOTAwOTJiNTljMWUwZGE5OWY3CkF1dGhvcjogVGhvbWFzIEphcm9zY2ggPHRqYXJvc2NoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDY6MzkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFBBVENIOiAzNDE4NjQ5OiBIT1NULVJFU09VUkNFUy1NSUI6IFVzZSBwY2xvc2UoKSBpbnN0ZWFkIG9mIGZjbG9zZSgpIHRvIGNsb3NlIGEgcGlwZS4KCmNvbW1pdCA2NTkxOTM3YWRiODUwMDBjMjcwNjljNGJlODRjZjQ2ODg4MzhlYmNkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE2OjE4OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGRlcGVuZGVuY2llcyBvbiBARkVBVFVSRVRBUkdTQCB0byBtYWtlIHRoZSBzdWJ0YXJnZXQgd29yayBhcyB3ZWxsLgoKY29tbWl0IGI5YzgwMTJlYzAzNWJjMDg0ZjE3NTg3NmZlY2MzNzUxOTVmOWJlODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTQ6MDI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgdGFyZ2V0IHRvIGJ1aWxkIGFnZW50eHRyYXAgZnJvbSB0aGUgdG9wbGV2ZWwKCmNvbW1pdCA5OTU2NDdjMGNmZTAwNDEyMjYyY2M1Nzk3YmRmYWU5ZDAwYjcwYzc2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE1OjQ0OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIHRoZSB1c2Ugb2YgLUwgZmxhZ3MgZm9yIGludGVybmFsIGxpYnJhcmllcyBhcyBpdCBjb25mdXNlcyBsaWJ0b29sLgoKY29tbWl0IDkzZGMxMjM1YTBkYjU4ZmZkMjk2MTdjZmYwMGRjMTEyNjM3ODAyMDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6MzE6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIG1ha2UgYXBwcyB3b3JrIGFnYWluCiAgICAKICAgIGFwcHMgaW5jbHVkZSBzbm1wdHJhcGQgYW5kIHRoYXQgcmVxdWlyZSB0aGUgYWdlbnQgbGlicmFyaWVzIGFzIHdlbGwuCgpjb21taXQgYmE0MTQ4OGVkNDRjZDIzYzI1OTYzZDRmYzU2YzQ3Njg1M2IyYWI1OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMToyOTozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdoZW4geW91IHNheSBtYWtlIGxpYnMgeW91IGV4cGVjdCBhbGwgdGhlIGxpYnMgdG8gYmUgYnVpbHQuCiAgICAKICAgIFRoaXMgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBzbm1wdHJhcGQgdGFyZ2V0IGF0IHRoZSB0b3AgbGV2ZWwgd2hpY2ggb2J2aW91c2x5CiAgICBleHBlY3RlZCBib3RoIGxpYnMgdG8gYmUgYnVpbHQgYW5kIHNvIGZhaWxlZCB0byBjb21waWxlIGJlZm9yZSB0aGlzIHBhdGNoLgoKY29tbWl0IDMwNTdjNzNlMDkzNDczYmU0NjI1NGJjZGZiNGNhNzg4ZTQzMmQxYjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAzMCAwNzozMjo1MiAyMDA4ICswMDAwCgogICAgTkVXUzogYnVpbGRpbmc6IFBBVENIOiAyMDkxMTU2OiBjb3JyZWN0bHkgZGVjbGFyZSBkZXBlbmRlbmNpZXMgaW4gTWFrZWZpbGUuCiAgICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KICAgIAogICAgQmFja3BvcnQgdGhpcyB0byBWNS00IGFzIGl0IGlzIG5lZWRlZCBmb3IgY29ycmVjdCBvcGVyYXRpb24gaW4gdGhlIHNpbmdsZQogICAgdGhyZWFkZWQgY2FzZSBvZiBtYWtlIG1pYmxpYiBhcyB3ZWxsLgoKY29tbWl0IDZlYWUzNDBmYTJhNjQwODY1OTI5ODJjYzUyNzM1YmMwMTQ4N2Q5NzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDEgMTk6MzM6NTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaWxlbmNlIGxpYmJzZCAwLjMuMCBuYWdnaW5nCiAgICAKICAgIElmIHlvdSBoYXZlIGxpYmJzZCAwLjMuMCBpbnN0YWxsZWQgdGhlbiB0aGVpciB2ZXJzaW9uIG9mIG5saXN0Lmggd2FybnMgYW5kCiAgICB0cmllcyB0byBtYWtlIHlvdSBpbmNsdWRlIGJzZC9ubGlzdC5oIGluc3RlYWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgZG9uJ3QKICAgIG5lZWQgdGhhdCBjb21wYXRpYmlsaXR5IGxpYnJhcnkgYXMgd2Uga25vdyBob3cgdG8gZG8gaXQgb3Vyc2VsZiBzbyBpdCBiZWNvbWVzCiAgICBwdXJlIG5hZ2dpbmcuIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmluZSB0aGF0IGNoYW5nZXMgdGhlIHdhcm5pbmcgaW50byBhbgogICAgZXJyb3IgYW5kIHRoZW4gZmlndXJlcyBvdXQgdGhhdCB0aGVyZSBpcyBubyB1c2FibGUgbmxpc3QuaCBhbmQgaWdub3JlcyBpdAogICAgZm9yIHRoZSBmdXR1cmUuCgpjb21taXQgYWMzOGNiNTMxYmVlNTBlZGM4ZDRjODM0ZjMwMDVmNTk5MmM3NzFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTk6MDM6MDIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEVuYWJsZSBzZW5kaW5nIFNOTVB2MiB0cmFwcyB3aXRoIGFuIGVtcHR5IHZhcmJpbmQgbGlzdAoKY29tbWl0IGE3NWRlMjk3MTUyN2FjMmQyZTgxMjAyNDI5ODYwMmJiMjQxMmYzMzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgODQ4ZjYzMDBlZmUzODQ5MmZiNDU0NDUxYTAzMGYwYjdlNmZmOGM5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCBjMTM3NDQ3M2VjZDhlYzllMDMxMDAxMzg2MWVlMThjODNlNWQ2YzViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIFNlcCAzMCAwMzoyOTozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUHJvdGVjdCB0aGUgdXNlIG9mICRPU1RZUEUgdG8gZW5zdXJlIHRoYXQgJ3Rlc3QnIGdldCBlbm91Z2ggcGFyYW1ldGVycy4KCmNvbW1pdCA3ZTk3YTIwNjMzYTU3ZWFlMzlkMDE1YjIzMzM5NDYzYzMyZjVmODQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMjowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQ29udmVydCBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMgaW50byB0d28gdW5pdCB0ZXN0cwoKY29tbWl0IDljMGRkOTgxNzY0NTczNDJmZmZhYTVlNzRkODAyZTMxNDVlZDcwZTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDA4OjU2OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQoKY29tbWl0IDVmZDI2ZTRmYTNlMDAwZWE5YzgxYzM4YWI5NzViNzk0NmVmZTIxNTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDI4IDE3OjQ5OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKSBmYWlsdXJlIHRyaWdnZXJzIGEgZG91YmxlIGZyZWUuCiAgICAKICAgIEZpeGVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIGFhNGQ0N2MyNjA5ZTUyODE4YzljZGYxYThlMjIwNWRlOWEzMzVhMGEgKHN2biByMTk1MTUpLgoKY29tbWl0IGQyMjUyZDAxNjY5MzgwNzMyNmY3MmI2NjEyMzY0OWRlYTAwYWY5MTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkKICAgIAogICAgQWxzbywgbGV0IE9LRigpIGVtaXQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQgc3VjaCB0aGF0IGFsbCBvdXRwdXQgaXQKICAgIHByb2R1Y2VzIGlzIHZpc2libGUgaW4gdGhlIG91dHB1dCBvZiAibWFrZSB0ZXN0Ii4KCmNvbW1pdCAxNDIxOTI0YjQ4NTIxNDIxOTJjNWJiOWU5M2RkYmZlZDY5ZTkwOGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyMSAyMjoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgd2FpdGluZyBpbmRlZmluaXRlbHkgaWYgYSBzZXNzaW9uIGhhcyB0aW1lb3V0IHplcm8KCmNvbW1pdCA1ZjI3ZjRmNzRhZTJiZDViYWY1MDNjZjMwNmI0ZjlhMjg0MWE1N2NmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjMyOjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgcnVubmVyCgpjb21taXQgMDk3MDM5NThjYzVlYTg0NTkyOWFlMTllZjllMDgwNGFlY2FhNTEyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTI6NDI6NDEgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEF2b2lkIGZhbHNlIG5lZ2F0aXZlIGZvciBUMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgY2F1c2VkIGJ5IHRoZSB0ZXN0IHJlc3VsdCBiZWluZyBwcmVzZW50IGluIHRoZSBoZXggZHVtcCAoIm1vc3RseV9oYXJtbGVzcyIpCgpjb21taXQgNDM5MzAwMjc5ZjZmMzE0Mzg2MzhkMmYyMjJjMjRjM2M4NDFmYTZhYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTE6MTY6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNaWNyby1vcHRpbWl6ZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcwogICAgCiAgICBUaGlzIG1ha2VzIHRoZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcyBjYXJyaWVkIG91dCBieSB0aGUKICAgIGNvbmZpZ3VyZSBzY3JpcHQgc2xpZ2h0bHkgZmFzdGVyLCBlc3BlY2lhbGx5IG9uIHRob3NlIHN5c3RlbXMgd2hlcmUKICAgIGZvcmsoKSBpcyBleHBlbnNpdmUgKEN5Z3dpbikuCgpjb21taXQgYmJjNjgwMDA0YTEzNzYwMzhkZmRjNDE3MmRiZTdiOWUzMTFmYmE2OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMTA6MTQ6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRlc3QgVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlIHBhc3MKCmNvbW1pdCA3MGIwNmNmNzg5MjA4ZWFhODkwYmZiY2Q2MzhiZGI3NzVmODE3MDU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTo1MDo1NyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luZG93czogdGVzdGluZzogcGVybDogRml4IGFuIGluY29ycmVjdCBtZXNzYWdlIHByaW50ZWQgd2hpbGUgcnVubmluZyB0aGUgUGVybCBtb2R1bGUgcmVncmVzc2lvbiB0ZXN0cwoKY29tbWl0IDcwYmNjOGRlMmQwZmM5MmJiYjg0ODE4MjM2MzBmYWI5YmM4N2FmNzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDE2IDE2OjE0OjI0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogT2J0YWluIHRoZSBNU1lTIHBhdGggZnJvbSB0aGUgZW52aXJvbm1lbnQKCmNvbW1pdCA2MjYyNzVlMmQxYWNhZmFlNzE0NGEzM2VkMzAxYTQwZjU5NmIzN2IwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAxNCAxMzoxNDoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIHN1cGVyZmx1b3VzIGxpbmsgbGlicmFyaWVzIGZyb20gcHJvamVjdCBmaWxlcyAoKi5kc3ApCgpjb21taXQgMzhmYzNjYWE5ZWViMzgwMDI1NGI0ZjZhZDZmOGY0NzY0YzBmODNkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6MzQ6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9jYWxsYmFja19hY2NlcHQoKSByZXR1cm4gLTEgKGZhaWx1cmUpIGluc3RlYWQgb2YgMCAoU1RESU5fRklMRU5PKQoKY29tbWl0IDZjOGM3ZThhY2E4ZmMyZWViNTIwMTBhZTNlOWZlZTZkZDgzZWY3ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDEzIDA5OjU4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgb2Jzb2xldGUgc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24oKSBkZWNsYXJhdGlvbgoKY29tbWl0IDA4NjBkMTFmZDhmYzVkYmRhYWFlMjI2MWZhZTJjMDdmYjljMmM4MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6NTQ6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IEF2b2lkIHRoYXQgdGhlIHR5cGVkZWZzIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiA8c3RkaW50Lmg+IGZyb20gdGhlIG1zaW50dHlwZXMgcHJvamVjdAoKY29tbWl0IGY4YTAzNmY2M2ZmNjhmMDgzNDM2MTIwZTBhYmQ0NzhiNjkyYTJmNjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6MjE6MDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IFdoZW4gbGlua2luZyB3aXRoIE9wZW5TU0wsIGxpbmsgd2l0aCB1c2VyMzIubGliIHRvbwoKY29tbWl0IDgzNmEyM2UxMGNhODEwYzM4OTk5MDJkMzI1ODc2MTZhOWQxMjAzZGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSnVsIDE0IDE4OjM4OjEzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBMaW5rIHdpdGggcHJvcGVyIGxpYmVheTMyIGxpYnJhcnkKCmNvbW1pdCA3YjA3ZmQ2Y2RlZjQ5ZWM3YmIwNGIxNjZlMmE0ZmJiMzdiNTgyODQwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDExOjEwOjM4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgYW4gaW5jb3JyZWN0IGNvbW1lbnQgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaAoKY29tbWl0IDk4ZjZkMjlkOTgxZmY4ZTYwNzYwMGM2M2RhZGIyNDA1MzU2Mjk4MDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6NDk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgSVNERUZJTkVEKCkgY2hlY2sgZm9yIGFuIGV4YWN0IG1hdGNoIGluc3RlYWQgb2YgYSBwcmVmaXggbWF0Y2gKCmNvbW1pdCA1MmNkMDAzMWEzMWY2OTJmMTMyNjNhOTRjMzM1ZDA2YmUxNDU0ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0aG9zZSByZWdyZXNzaW9uIHRlc3RzIHBhc3MgZm9yIHdoaWNoIFNOTVBDT05GUEFUSCBhbmQvb3IgU05NUF9QRVJTSVNURU5UX0RJUiBtYXR0ZXIKCmNvbW1pdCBmNWNkODliZDMzNTZkZDc0ZTE1NTZjMGI1MDk2NmE2NDNmMTkyMDg1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgZnJhbWV3b3JrCgpjb21taXQgZGVlZGQ1MmM4MzRhNjQ0ODg1MmEwNjc4NTUzNmUxMzg2NTk2OTY5NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IFN1cHBvcnQgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgb2YgcmVjZW50IFNoaW5pbmcgTGlnaHQgT3BlblNTTCBiaW5hcnkgZGlzdHJpYnV0aW9ucwoKY29tbWl0IGQ1NWJkNGUwNTQ5ZjAzYjZmZDMyNTYyYzJhYTdmZTM5MjcyYTllZjcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjE5IDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCBhYzJhZWQzYzk0YmIyZWJiNDczYWYwYTFlMjBmMDU2MWFkNjI5OTU2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxMSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMjE6NDk6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBdm9pZCB0aGF0IHNubXBkIGNyYXNoZXMgaWYgc3RhcnRlZCBvbiBhIHN5c3RlbSB3aXRoIGFub3RoZXIgT3BlblNTTCBsaWJyYXJ5IHZlcnNpb24gdGhhbiB0aGUgb25lIGl0IGhhcyBiZWVuIGJ1aWx0IHdpdGguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMyAtPiBWNS43LjEKCjIwMTEtMDktMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xCgoKMjAxMS0wOS0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzIgLT4gVjUuNy4xLnJjMwoKMjAxMS0wOS0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMzCgoKMjAxMS0wOS0yMiAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCAwN2Y2MWEwMmEyNDA5MDk2ZTVjOTYyY2QyMTExMjYzOTZhZDA5ZDJiIE1lcmdlOiBlZTBkM2FkCgogYmRhMzI0YiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBUaHUKIFNlcCAyMiAxMDozOTo1OSAyMDExICswMTAwCgoyMDExLTA5LTIyICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IGM1NWY2MDhmMTZmMTYwZjVlNzlkYzA1N2Y4ODc4ZGVmNDYyOTczZTEgQXV0aG9yOiBEYXZlCgogU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBUaHUgU2VwIDIyIDEwOjM1OjI0IDIwMTEKICswMTAwCgoyMDExLTA5LTIyICBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOgoKIENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMgdG8KIGF2b2lkIGludGVnZXIgYXJpdGhtZXRpYyBlcnJvcnMuICAoQ29kZSBiYXNlZCBvbiBwYXRjaCwgcmF0aGVyIHRoYW4KIGFwcGxpZWQgdmVyYmF0aW0pCgoyMDExLTA5LTIyICBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOgoKIENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMgdG8KIGF2b2lkIGludGVnZXIgb3ZlcmZsb3cgZXJyb3JzLiAgKENvZGUgYmFzZWQgb24gdGhlIHN1Ym1pdHRlZCBwYXRjaCwKIHJhdGhlciB0aGFuIGFwcGxpZWQgdmVyYmF0aW0pCgoyMDExLTA5LTIyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogQ2hhbmdlTG9nOiBUaGUgb25seSBjaGFuZ2UgYmV0d2VlbiBWNS43LnJjMSBhbmQgVjUuNy4xLnJjMiBpcyB0aGUKCiB2ZXJzaW9uIG51bWJlci4gTWFrZSB0aGlzIGNsZWFyIGluIHRoZSBDaGFuZ2VMb2cgZmlsZS4KCjIwMTEtMDktMjEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IGNoYW5nZWxvZyB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMxIC0+IFY1LjcuMS5yYzIKCjIwMTEtMDktMjEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMgoKCjIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiA6IGNvbW1pdCA0ZDZkZWZkYWU3MmMzNWIxMDgwMDc2MTgwMzEzZDI5MTA1Njg0NzViIE1lcmdlOiBkM2E3NThjCgogM2I3ZmRjNCBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1bgogU2VwIDQgMTQ6NDY6MDIgMjAxMSArMDIwMAoKMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIDogY29tbWl0IGJiZTJjMTlhMDFlY2VjMDI0Zjc0MWUyZTU0NzAxYWU2MjEyZjRjM2UgQXV0aG9yOiBNYWdudXMKCiBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1biBTZXAgNCAxNDo0NDozOCAyMDExCiArMDIwMAoKMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIDogY29tbWl0IGQzYTc1OGNmMzAyNTRiODA3MDZhNDNmMTkxYzE1MjM4YjJjYjczYzkgTWVyZ2U6IGMxMDdjZTAKCiAyMjdkYmQ3IEF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuCiBTZXAgNCAxNDowODozNSAyMDExICswMjAwCgoyMDExLTA5LTA0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KCiAgICogOiBjb21taXQgOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZSBBdXRob3I6IE1hZ251cwoKIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuIFNlcCA0IDE0OjAwOjEyIDIwMTEKICswMjAwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnByZTIgLT4gVjUuNy4xLnJjMQoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBmb3IgNS43LjEucmMxCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOiBmaXggQysrIGNvbW1lbnQKCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzEKCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzEwN2NlMDc4NDA5ZDI2NWI5YjIxOGQ0OWYzODE1Yjc5NWRiMWRjMyBNZXJnZTogZWE0YjNiMgoKIDkxNWFhOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMzAgMTk6MDc6MDcgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQyMmIwODJhOTU5M2NhOWM2NWFhYzQ0OWU2ZDEyOGE5ZTk3ZTk0ZmIgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBBdWcgMzAKIDE5OjA2OjU2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlYTRiM2IyM2YzNTA1ODNlNTYyNjMyOGI1MzY3ZTZjNjE3MjU1Zjk1IE1lcmdlOiBiY2YzOGI4CgogYjM0ZDVkYyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAzMCAxNjozODoyNSAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNzFjMGQ3NjUwNDkzNzEwNjMxZmEwOGQ1ZGM0ZGFkNTAxYTlhYTc3MSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEF1ZyAzMAogMTY6Mzc6NDEgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGIxM2Y0ZDg4ODZiNmE0ZTczYmMwN2RmMmI5MGQxYTYxMTVjZjNkZmMgTWVyZ2U6IGY3ZTIxZjIKCiA2NGU5Nzc4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDMwIDExOjA5OjMwIDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiNWQyYTQzZjk3YTU5ODU4Yzk0NGViYTIyOTBiNTliOTNjMjMwYTZhIE1lcmdlOiA4NmVmZWUyCgogY2Y0Y2Y3ZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAzMCAxMTowOToyOSAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdXRvLWRldGVybWluZSBwYXRjaCBhcmd1bWVudHMgaWYKCiBwb3NzaWJsZSBmb3IgbnNwYXRjaHRyeQoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSBpdCBzbyB0aGUgZ2l0IGNvbW1pdCBsaW5lIGNhbgoKIGJlIGN1dC9wYXN0ZSB3aXRob3V0IGxpbmVicmVha3MKCjIwMTEtMDgtMzAgIFJvbmFsZCBXYWhsIDxyd2EtY29AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzOTQ1ODY6IGZyb20KCiByd2EtY286IGZpbGUgZGVzY3JpcHRvciBsZWFrIGluIHJlYWRfY29uZmlnICgrZml4KSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZGVzY3JpYmUgdGhhdCBuc3JvbGx1cCBuZWVkcyB0byBiZSBydW4gbm93LgoKCjIwMTEtMDgtMzAgIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgMmI5MmEwYTFlM2EwNjE4YzUxNWViZDkwMjI3MWI5NWMwODkzMWFmYSBNZXJnZTogYTA4NjM0NwoKIDg2ZWZlZTIgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgVHVlCiBBdWcgMzAgMTE6Mjg6MTQgMjAxMSArMDEwMAoKMjAxMS0wOC0zMCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6IEFwcGFyZW50bHkgSVJJWCBoYXMgYQoKIGRpZmZlcmVudCBBUEkgZm9yIHN0YXRmcwoKMjAxMS0wOC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzogZG9uJ3QgcHJvdmlkZSBhIGZlYXR1cmUgd2hlbiB5b3VyIGEKCiBjaGlsZCBvZiBhbm90aGVyIGZlYXR1cmUKCjIwMTEtMDgtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8KCiBWNS03LXBhdGNoZXMKCjIwMTEtMDgtMjggIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiBhcHBzL01ha2VmaWxlLmluOiBVc2UgdGhlIGZlYXR1cmUgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIHRhcmdldAoKIHdoZW4gYnVpbGRpbmcgdGhlIGZlYXR1cmUgc2V0CgoyMDExLTA4LTI5ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oOiB0aGUgaXJpeDYgYnVpbGQgb25seSBkZWZpbmVzCgogaXJpeDYsIG5vdCBpcml4CgoyMDExLTA4LTI5ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogcmUtYWRkIHNvY2thZGRyX3VuLnN1bl9wYXRoCgogY29uZmlndXJlIGNoZWNrIChsb3N0IGluIHByZXZpb3VzIGNvbW1pdCkKCjIwMTEtMDgtMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmg6IAoKIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYyBkb2Vzbid0IGJ1aWxkIG9uIElSSVggeWV0CgoyMDExLTA4LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYTA4NjM0NzlkODA5NjJjNjUyOTQ3ZGZkZWUxMWJkZDEzNmMwZTAxMyBNZXJnZTogNTI1MDg5MwoKIGY5NWFhMzEgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFN1biBBdWcgMjggMjM6Mzc6MjcgMjAxMSArMDIwMAoKMjAxMS0wOC0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeAoKIGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGRzIG1zZ19jb250cm9sL21zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyCiAoYmFja3BvcnQpCgoyMDExLTA4LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOiBhZGRlZCByZXF1aXJlZCBmZWF0dXJlcyBmb3IKCiBtZmQgaGFuZGxpbmcKCjIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiBhZGRlZCAuZnQgYW5kIC5mdC4xIGZvciBmZWF0dXJlIGZpbGVzCgoKMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6IG5vX3dyaXRlX3N1cHBvcnQgc3VwcG9ydGVkCgoKMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzogaGFuZGxlIG5vLXdyaXRlLXN1cHBvcnQgd2l0aAoKIGlmZGVmcwoKMjAxMS0wOC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDUyNTA4OTMyN2FiYTdkMDFkNjMzYzYzNGM2YjZmMDZkZTQyYWNiYjggTWVyZ2U6IDFiYjIzNGEKCiAwNGZkNzFhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDI1IDA2OjU3OjIxIDIwMTEgLTA3MDAKCjIwMTEtMDgtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlYThiZWQ3OWU4MWM0MmUzM2NiZjM3Y2E2ZjNjMDNjNTQ5OTg3YjIyIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDI1CiAwNjo1NjoyMiAyMDExIC0wNzAwCgoyMDExLTA4LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OiB1c2UgPj4gdG8gcHJpbnQgdG8gc3RkZXJyCgoKMjAxMS0wOC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlOiBDSEFOR0VTOiBidWlsZDogRG8gbm90IGdlbmVyYXRlCgogYW4gb3V0cHV0IGZpbGUgb24gZmFpbHVyZSBtYWtlIHN1cHBvc2VzIHRoYXQgbm8gb3V0cHV0IGlzIGdlbmVyYXRlZCBpZiB0aGUgY29tbWFuZCBmYWlsZWQuCiBDaGFuZ2UgZmVhdHVyZS1yZW1vdmUgdG8gZm9sbG93IHRoYXQgcHJlc3VtcHRpb24uCgoyMDExLTA4LTIxICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmU6IENvcnJlY3QgdHlwbwoKCjIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxYmIyMzRhNmNjMzZlNmE0ZWZiZTNmYjI5YzQ4MDIxMGRjMmI5YzEzIE1lcmdlOiAzNWE5OGMzCgogMWYwODJhMyBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAyMyAyMzozODowNyAyMDExICswMjAwCgoyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IG1ha2Ugc3VyZSB0aGF0CgogX0tFUk5FTCBpcyBkZWZpbmVkIHRvIDEgc28gdGhhdCAiI2lmIF9LRVJORUwiIHdvcmtzIG9uIHN5c3RlbXMgdGhhdAogbmVlZCBpdCAoZS5nLiBJUklYKQoKMjAxMS0wOC0yMyAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDM1YTk4YzNkN2M1YTNjNWRmMzU2YWRkOWU4YjgwODI4Nzg5OWI2OWEgTWVyZ2U6IDFmMzdmNTcKCiBhMjdmNzQ0IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDIzIDIzOjMwOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyNmJiMjQ3MGMxMDZmODM0NDQyYTJhZGJjNzYxMWJmMTY2NTdmYmRmIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgQXVnIDIzIDIzOjIyOjQ0CiAyMDExICswMjAwCgoyMDExLTA4LTIyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhdXRvcmVjb25mCgoKMjAxMS0wOC0yMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4CgogZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZCBtc2dfZmxhZ3MgaW4gc3RydWN0IG1zZ2hkciAoZS5nLiBJUklYKQoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogYXV0b3JlY29uZgoKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGF1dG9yZWNvbmYKCgoyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCgoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGI2MmNiMDg2NGY1NzdiYTg1NTczZDBkMjUwZDEyYTM5Mzg3YzA3YjQgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBBdWcgMjEgMDA6NTU6MzMKIDIwMTEgKzAyMDAKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3MWI5MGI2ZjIxNzk0NGI0ZmZjMTgzNmU1MTYwZDQwZTMzYjQ0MjNkIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gQXVnIDIxIDAwOjQwOjI4CiAyMDExICswMjAwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnByZTEgLT4gVjUuNy4xLnByZTIKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZm9yIDUuNy4xLnByZTIKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnByZTIKCgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMDMwNTM0Nzk2MDRiYzgzZWZiZWE1NzliNDU2MmIxODMxY2VhMWNiNiBNZXJnZTogZjczZTYzNgoKIGQ5NGRmMzkgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgMTggMTE6NTc6NDYgMjAxMSAtMDcwMAoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI4YjU0MDcwNTE0NzUzZThkOGFiYjcxOGIyMjRkNjU3YWI3YThhYjggQXV0aG9yOiBHYXJyZXR0CgogQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyAxOAogMTE6NDk6NTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0xOCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IGFnZW50OiBQQVRDSCAzMzg5MjI4OgoKIGZyb20gd3VsZjIwMDE6IGluY29tcGxldGUgY29tbWl0IChwYXRjaCAzMzg2NjMzOiBmaXggaW50ZWdlcgogb3ZlcmZsb3cpIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6IFBhdGNoIGZyb20gQ2xhdXMgS2xlaW4gb24gLWNvZGVycyBmb3IgZml4aW5nCgogbWFuIHBhZ2UgdHlwb3MKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IGNoYW5nZWQgY2xpZW50YWRkciBzbyBpdCByZWdpc3RlcnMgYXMgcHJlLW1pYgoKIHRvIGJlIHBpY2tlZCB1cCBiZWZvcmUgdGhlIHRyYW5zcG9ydHMgZ2V0IGNyZWF0ZWQKCjIwMTEtMDgtMTcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjMDIxMzFlNWIzNWQyOTY3NTViYWVjOTliZDM2MzIwNWE4NjMwN2RkIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgQXVnIDE3CiAwOTozNDowMCAyMDExIC0wNzAwCgoyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogRml4IHRoZSBsb2cgbWVzc2FnZSB0aGF0IHJlcG9ydHMgdGhhdAoKIGdldGhvc3RieWFkZHIoKSBpcyBtaXNzaW5nCgoyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTgyZTFkYzBjM2VhY2ZhNGU5Y2NkYjI4NjAwZmYwZjIzNzAyMTFhZSBNZXJnZTogNDk5Yjc5NgoKIDUxN2I2YjAgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnCiAxNyAxODowOTozMCAyMDExICswMjAwCgoyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNjU4MDU1NmNjN2JkODMzYWY3MzFiNjJjZTFlZDIwMTc1NjRmZTdlYiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZyAxNyAxODowODowMSAyMDExICswMjAwCgoyMDExLTA4LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNDk5Yjc5NmNiZDc4MDY1YzMzNTQ3NzkxMzZiZDNkOWQxZjU0OGE1OCBNZXJnZTogMDQxOGZmMAoKIGE5Y2IyNjcgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnCiAxNCAwODowMjozOCAyMDExICswMjAwCgoyMDExLTA4LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgM2NiM2YxZWRlMzg4ZDg0ZTM5MmUxZDgxNWQ1OTk0YTRiZjBmMTBmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZyAxNCAwNzo1OToyNSAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54czogV2luZG93czoKCiBNYWtlIHRoZSBQZXJsIGFnZW50IG1vZHVsZSB3b3JrIGFnYWluIHdpdGggdGhlIG9yaWdpbmFsIFNOTVBfRlJFRSgpCiBkZWZpbml0aW9uLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDA0MThmZjBjZGEyMTQxMWE0N2ZhODk3OGMzZTBkMDQzYTE5ZDI0YjYgTWVyZ2U6IDI2YjBhYTMKCiAzYzczYjQ4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZwogMTMgMTg6NDI6MDUgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBSZXZlcnQgdGhlIHR3byBtb3N0IHJlY2VudAoKIFNOTVBfRlJFRSgpIGNoYW5nZXMgKGNvbW1pdHMKIDQ3YzhlZjFiODljNmNjYjQyNDdkOTYzMzQ3NzkyNTkwOGM2OGMxYTUgYW5kCiA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwKS4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyNmIwYWEzMDEwZmExODJiNjAzOWE4YzJjYWQ4Y2NiNDU3MTY1MmRlIE1lcmdlOiAyZjNkNjA3CgogMGM4ZTFhOSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcKIDEzIDExOjQzOjIwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAzZTUwYzNlMDBlOWYzMjFmYjcwOGJjNTc5ZWI0ZGMxYTBmMWU3YzRkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnIDEzIDExOjMxOjQwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZjNkNjA3OWRjMzZhYWQ5NTU5ZDkxYzVjMzI0ZTJjZTUzNTU3M2RkIE1lcmdlOiBlMzJhYTk3CgogZmYxNzM0ZCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcKIDEzIDA5OjA4OjA2IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlMTQ3ZTRiOTY3NTUyMDdkZTFjZTMwOTkwZDY3YjRiN2M3NmRkNDgzIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnIDEzIDA4OjM5OjE0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB3aW4zMi9idWlsZC5wbDogQ0hBTkdFUzogV2luZG93czogYnVpbGRpbmcgKGJ1aWxkLmJhdCk6IEluc3RhbGwKCiBuZXRzbm1wLmRsbCBiZWZvcmUgcnVubmluZyB0aGUgUGVybCByZWdyZXNzaW9uIHRlc3RzIHN1Y2ggdGhhdCB0aGUKIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1biB3aXRoIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgbmV0c25tcC5kbGwuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogd2luMzIvTWFrZWZpbGUuaW46IENIQU5HRVM6IFdpbmRvd3M6IHBlcmwgKGJ1aWxkLmJhdCk6IFdoZW4KCiBpbnN0YWxsaW5nIGRldmVsb3BtZW50IGZpbGVzLCBpbnN0YWxsIHRoZSBQREIgZmlsZXMgdG9vLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9jb25mLnQsIHBlcmwvU05NUC90L21pYi50LCAKICAgICAgcGVybC9hZ2VudC90ZXN0LnBsOiBDSEFOR0VTOiB0ZXN0aW5nOiBGaXggUGVybCByZWdyZXNzaW9uIHRlc3QKCiBmYWlsdXJlcyBBbGwgUGVybCByZWdyZXNzaW9uIHRlc3RzIHBhc3Mgbm93IG9uIExpbnV4IGFuZCBvbiBXaW5kb3dzIChNU1ZDKS4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50OiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFBlcmwgcmVncmVzc2lvbiB0ZXN0czogRG9uJ3QgZmFpbCBza2lwcGVkIHRlc3RzLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czogQ0hBTkdFUzogcGVybDogQWRkCgogU05NUDo6Z2V0ZW52KCkgYW5kIFNOTVA6OnNldGVudigpLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQWRkIG5ldHNubXBfc2V0ZW52KCkuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogZG9jdW1lbnQgaG93IHRvCgogdXNlIG9uIFdpbmRvd3MKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OiBTZXQgZXhlY3V0ZSBmbGFnIG9uIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QKCiBzdWNoIHRoYXQgdGhlIGluc3RydWN0aW9ucyBpbiB0aGF0IGZpbGUgd29yawoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEZpeCBhIHN1cHByZXNzaW9uIHBhdHRlcm4KCgoyMDExLTA4LTEyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZTMyYWE5Nzc0MjIzMmNlZDNhNzJmOGI4NDVhY2U1Y2UzZDUzYjhkZiBNZXJnZTogNGFkZmVjOAoKIDg2ZmJkMzMgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIEZyaSBBdWcgMTIgMDk6MTE6MTQgMjAxMSAtMDcwMAoKMjAxMS0wOC0xMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGE3M2ViNDBlYzI2M2EwZmRmNTNhNzRlNzIwZGRmNDFjNGE3ZWUzZDQgTWVyZ2U6IDc2OTA4OTQKCiAyOTQwZWUzIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBGcmkgQXVnIDEyIDA5OjExOjEzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMTIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxZjBhOTI4YTI5MTNjZmE3ZjVjZWFhZjQ2OTZjNjlmYmRjNjg3NjIxIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBGcmkgQXVnIDEyCiAwOTowOToxMSAyMDExIC0wNzAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNGFkZmVjODEyMTZmNmM1YmYyNWM5YWM2YjJiNzQ3OGQxYmU4ZTg0MiBNZXJnZTogMjgxYjg2OQoKIDI5NDBlZTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiAxMSAxODo1NzoyOSAyMDExICswMjAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyAxMSAxNTo0NjozMiAyMDExICswMjAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMjgxYjg2OTYxYjEwMjY2ZGRmMzg4Mzk0MmQ0ZGMzYjZiOThkMzIyNyBNZXJnZTogZDhkMjI1YwoKIGYxODEwOTkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiAxMSAxODo0NjowNiAyMDExICswMjAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBNZXJnZSBWNS00LXBhdGNoZXMuCgoKMjAxMS0wOC0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYzogZG9uJ3QgYXNzZXJ0IG9uIGEgZG91YmxlCgogaW5pdDsganVzdCBkb24ndCBkbyBpdCB0d2ljZQoKMjAxMS0wOC0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ4ZDIyNWNhMzRhOGYyMjc1MjE1M2FjYjc5NDRmOTQzNWY1NjRkMmMgTWVyZ2U6IDA2YjQxODYKCiA0N2M4ZWYxIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZwogMTAgMTg6MDU6MjEgMjAxMSArMDIwMAoKMjAxMS0wOC0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBTTk1QX0ZSRUUoKTogY2FzdCBhcmd1bWVudCB0bwoKICh2b2lkICopIGJlZm9yZSBwYXNzaW5nIGl0IHRvIG5ldHNubXBfZnJlZSgpCgoyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMDZiNDE4NjVlYzMwMmMzOTMxYjEwODNkM2ZkZTg5ZjkzNDVlYzA2ZiBNZXJnZTogMTE0MjZmYgoKIGE0ZjZhYzcgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgOSAwNjo0NDo0MSAyMDExIC0wNzAwCgoyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMTE0MjZmYjNjNmYzMjc4MjBiOWJiODZhNzZlY2M5ZTJjMzdlNzkzNCBNZXJnZTogMDM0NGRmOQoKIDliZjA2ODEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgOSAwNjo0NDoxMSAyMDExIC0wNzAwCgoyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgOWJmMDY4MTIxOGVkZjQzY2RiNWZjNjhmMTcyMTIzYmM0YTJkMDE4OCBNZXJnZTogZjlkYjYxMQoKIGNjYjBlYjYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgQXVnCiA5IDA4OjE5OjMzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkZTdlMzQ4ZWNlMDNkMjM4MGMyYTg4MDZlYmJhZDVkOWI1NDg3NjgyIE1lcmdlOiBkNTM4YmNiCgogY2NiMGViNiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKIDkgMDg6MDc6MjIgMjAxMSArMDIwMAoKMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDAyMjAzOTJkODk5YTljYWI3MDFmNzRhZjEyMDMwYmIxZDRjYzVlMmUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMSAxMzowMjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlOgoKIDUuNy4xLnByZTEKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUxCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGNmNGNjZTRjMTg5Y2Y0N2Y0YzQ4OWRiNDNiN2ZhNTEwZjg5MDZhMWEgTWVyZ2U6IGRmOTFhOWYKCiA5M2U5N2RjIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbgogQXVnIDggMjI6MTU6MjggMjAxMSArMDEwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KCiBWNS02LXBhdGNoZXMKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAogICAgICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOiBEZWZpbmUKCiBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKIGluc3RydWN0aW9ucykKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOiBEZWZpbmUKCiBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKIGluc3RydWN0aW9ucykKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZjE2ZGMyMjIxZTk5M2RkM2M2NjY1MGQ1ZTg3MjU3N2ZmZTZjMDFiIE1lcmdlOiA3MTRiYzgyCgogOGU1YTI4ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEzOjU2OjQzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTM6NTU6MzgKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgNzE0YmM4MmZhMDFlMjFhMzY1NTgyNDk2M2ZhNTRlOWI4MDQyZmZiMCBNZXJnZTogNmZlOGZlNQoKIDNlZjFkYjUgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCiBBdWcgOCAyMToyMTo0NiAyMDExICswMTAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IGI0NTE2MDdkY2EwMTVjMTExZTk2ZmRmZWIyZGRiMDY2MWZiNGY3MjQgQXV0aG9yOiBEYXZlCgogU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24gQXVnIDggMjE6MjA6MzIgMjAxMQogKzAxMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2ZmU4ZmU1Mjk0YTQ1YmM3ZTRlYTM3NTFhMWFkN2FhNDdiNWNhYmIyIE1lcmdlOiAzNjRmOGZmCgogZjY5YWJlMyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMjI6MDI6MzggMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGM5NDgxMzA0NGE0YzRhNjA4ZTk4ZTgwMjIzMDc1YzZmYWYwNGVlMTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAyMTo1NjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzY0ZjhmZmFlYjkwYjRlYjAxNjVmYzg1NTY4OGNkMDYyNjYzMjc5NCBNZXJnZTogMzI4NzI5NQoKIDdhYmI5MjYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMToyNDoyNiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBkaXNwbGF5IHRoZSBicmFuY2ggd2UnbGwgY29tbWl0IHRvCgoKMjAxMS0wOC0wOCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMzg2NjMzOgoKIGZyb20gd3VsZjIwMDE6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGRpc2sgcGVyY2VudCBjYWxjdWxhdGlvbnMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODRhNzc1ZDA1NTdmZWE5NzU3MGU0MTcxNWEzMTY0OTcwYjRjMDNhMiBNZXJnZTogNmZmZjFjMQoKIGQzNzNjNGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDIwOjEyOjMyIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM4NzEzOTogZnJvbQoKIHlhYmVyYXVuZXlhOiBBdm9pZCBzZWdmYXVsdCBpZiB0cmFwc2VzcyB0cmFuc3BvcnQgZWxlbWVudCBjYW50IGJlCiBwYXJzZWQgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuc3NmcGF0Y2hhcHBseTogc3BsaXQgdGhlCgogZGlzcGxheWVkIGdpdCBjb21taXQgY29tbWFuZCBpbnRvIG11bHRpcGxlIHNlZ21lbnRzCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMzODY5NjE6CgogTWFrZSBTTk1QIEdFVCB3b3JrIGluIGFuIEFnZW50WCBzdWJhZ2VudCBpZiB3cml0ZSBzdXBwb3J0IGlzCiBkaXNhYmxlZCB2aWEgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIChNYXJrIFJ1c2spLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUKCiB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAogZXF1YWwgdG8gLTEuCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNmZmZjFjMWFlNTFiMDZjOWQ4MGZhZjE1MzczYTk2M2QxNzNmMTRlOCBNZXJnZTogODM3YzUyZQoKIDhjYzkwMDQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDo1ODo1OSAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOGNhN2ZmMWU2OTJjYWVjNDE4NmI3ODhjOWFlMmQyN2JlMjEzMjkwZiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyA4IDEwOjMzOjU2CiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjhmNTI5Y2JhMjdjMDExNGI0Y2I3MzQwY2ZkNDQ5NTA0ZmEwNzUwNiBNZXJnZTogMDgyMmYyZAoKIDU1NmU5MzggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDowNTozNiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggZnVuY3Rpb24gbmFtZSB0eXBvCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI5ODgyYTA3OGE5NTlhMGY3OGIwM2UwMTk2OGYxZDE3YjdmNmEyOTkgTWVyZ2U6IDVlOWJkMmYKCiAwNDA5YzBhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6MDM6MzQgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlIG9mIHB1bGwvcHVzaAoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2UgbnNwdWxsL25zcHVzaCBjaGVjayBmb3IgYQoKIGNsZWFuIHJlcG8KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG5ldyBmdW5jdGlvbiAibnNtYWtlYWxsIiB0byB0ZXN0CgogYnVpbGRpbmcgb24gZXZlcnkgYnJhbmNoCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBkZWZhdWx0IHRvIG1lcmdlCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50bwoKIFY1LTctcGF0Y2hlcwoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IGlmCgogdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBoYXZlIGJlZW4gYnVpbHQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YKIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHRoYW4gQWN0aXZlUGVybCB0aGF0IHVzaW5nIG9uZSBvZiB0aGVzZSBQZXJsCiBtb2R1bGVzIHRyaWdnZXJzIGEgIkZyZWUgdG8gd3JvbmcgcG9vbCIgY3Jhc2guIFRoaXMgcmVncmVzc2lvbiB3YXMKIGNhdXNlZCBieSBjb21taXQgM2IxNGM1OWNmODI3OGQ0MTAyMDdmZjQyZGViZGEyNjM2NDI2YTQ2OCAodGhlCiBuZXRzbm1wX2ZyZWUoKSBpbnRvIFNOTVBfRlJFRSgpIGNoYW5nZXMgaW4gdGhlICoueHMgZmlsZXMpLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGUxMDk1Mzk5MzA3MDNjYjMwNTJkNTI0MWIxOGFjNmZjMDYyZmFhY2EgTWVyZ2U6IDBjOWI2Y2IKCiBlNDZiMTcwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAxODozNDoxMSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogRml4IGEgY3Jhc2ggdGhhdCBjb3VsZCBiZQoKIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90CiBlcXVhbCB0byAtMS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMDk6NTA6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBjOWI2Y2JlOWRiZTJlYzUyMTdhOTViNjc4MWZkN2RjMWY2ZWJkYTcgTWVyZ2U6IGZhNmNlZjUKCiA5NjMzMjBmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAxODoxNDozNiAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTNiODY1NGEyMzJjNTYzYmM5N2NjOTkyNWNkOTg1OTBhMzBjNWJjNSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDE3OjI0OjE4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmYTZjZWY1Y2E5MWRmM2EwYjAzNDU1YjY4NTU5ZDJiZWUyNDgxMDFjIE1lcmdlOiBmNWZlNTM2CgogOGFkZDBkYSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKIDcgMTA6MTg6NTQgMjAxMSArMDIwMAoKMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGEwZGQzY2FmMjU5MjZlNDM0NjU3MThiZjQxN2E0NjRjMmZiMzYzNjYgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcgNyAxMDoxNzowMSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogMzIgaXMgdG9vIGxpbWl0ZWQgZm9yCgogYmlnZ2VyIHRhYmxlczsgaW5jcmVhc2UgdGhlIG1heCBtc2cgY291bnQgdG8gMTI4CgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIHJvbGx1cCBhbmQgc3luYyBzdXBwb3J0CgogLS1yZWJhc2UgYW5kIGNoYW5nZSB0aGUgZGVmYXVsdCBiYWNrIHRvIG1lcmdlCgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnRlZCBob3cgdG8gdXNlIGJ1aWxkLmJhdCB3aXRoCgogT3BlblNTTCBlbmFibGVkCgoyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgb3V0ZGF0ZWQgaW5zdHJ1Y3Rpb25zIGFib3V0CgogZWRpdGluZyB3aW4zMlxsaWJzbm1wX2RsbFxsaWJzbm1wLmRlZiBmcm9tIFJFQURNRS53aW4zMgoKMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luMzI6IERvY3VtZW50IGhvdyB0byBidWlsZCA2NC1iaXQKCiBleGVjdXRhYmxlcyBmb3IgdGhlIHg2NC9hbWQ2NCBhcmNoaXRlY3R1cmUKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmNWZlNTM2ZThmZDZjNDhmZTI0M2RlY2QzMWZhYzljZjFjOTJmNGNjIE1lcmdlOiA3ODUwZWExCgogODA5MjhhOCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTU6MTM6MjcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDgwOTI4YTg5MDljZmFiMzdmMDFiMzlhMDcxYTNlOGFkODU5NTYyMjIgTWVyZ2U6IGYxNmEwOTQKCiAwZGJjODY5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMzo1NzozMCAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGRiYzg2OWZlYzA3ZDhlOTBkYmQxYzk1NDkzZWU3Y2JjNjIzYzk1YyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjQwOjMxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQKCiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5kZWYgYW5kIHBlcmwvU05NUC90CgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODZjMWUyYjk2NzlmZWMyY2Q3OTliYTc2MDA1YzNkNjBlOWQ0NzYzNCBNZXJnZTogYmNkODYzNQoKIGYxNmEwOTQgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEyOjIwOjUwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZjhkNGY1Nzk2Y2JjMWM3ZTk2N2FjZGFhODAxOWIyNGYxNTIwYTM2IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTI6MDI6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvcGFyc2UuYzogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIC0gcmV2ZXJ0IGNvbW1pdAoKIGQyYzQ3NjhiZDJlZmI0ODY2NDQzNGE4MzE0MjVjMmRkYTg1ZDcxMzMgKENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENICiAzMzYyMjMzOiBmcm9tIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZQogbm9pc2UpLgoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6IAoKIFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAogYmY3MTc4YjBiMjI1ODdkNDNkMWE4MGMyNjljZDIxNmJkNTkzMDIxNCAoYWdlbnQ6IGNoYW5nZSB0eXBlIG9mCiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcpCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzCgogYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQKIDBlNjg0MmZlMDgwY2VjODUzYjA4Y2QyMzIzMDE1YWJhYmMzODFjZTEgKENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0gKIDMzODM0NDE6IGZyb20gc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZgogZnJlZWQgbWVtb3J5KS4KCjIwMTEtMDgtMDUgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBtaW5vciBORVdTIHBvbGlzaAoKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiY2Q4NjM1MDcxMzgyMjk2M2QzNzZlZmY1ODJhOTJmNDNlNDI2ZDZjIE1lcmdlOiA5YzgxMGEzCgogN2EyMGY3MSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTA6Mjg6NTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDNhYTk0OWZiZGZjMWE5NGE4MzQwYWQ4YmFmOGIzMTQ3NTZhMGJiOWQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMDoyNjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOWM4MTBhM2IzN2I2ODU3M2M0MDMzN2UyNDZlMmZhZjI5OWI3N2QzMSBNZXJnZTogNzFjYjJlOAoKIDYxMGQ2M2YgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAxMDo0MjowOCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOTQzOTMwZTFlMTI0Mzg1ZmQ5NDczOGI2ZGNkYTM3ZDI5ZGM3YWM3ZiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxCiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNGVkY2I4OGRhZThiMmU1OWRjNjgzZTgwZDQxNGZhN2VjZWMzNjg4NSBNZXJnZTogNjVmM2VlZgoKIDJkZDllZDAgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAxMDoyNDoxMSAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNS1wYXRjaGVzJyBpbnRvCgogVjUtNS1wYXRjaGVzCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYmM1Y2EwM2EwNGFiMTljNjM0YTM0ZDA2MGIwYjE2Yjc0ODRjYjUyMCBNZXJnZTogODhmZGRiNwoKIDkwYzBlNzUgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDE5OjEzOjA3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jOiBzbm1wdXNtOiBGaXggcmVjZW50bHkKCiBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6IENIQU5HRVM6IG9wZW5ic2Q6CgogUEFUQ0ggMzM1NzkzMjogZnJvbSB0MGp3MmZ1MGttZzogQ2xlYW5pbmcgaW4gbWVtb3J5X25ldGJzZC5jIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jOiBDSEFOR0VTOiBhZ2VudDoKCiBQQVRDSCAzMzg2MTQ3OiBmcm9tIHd1bGYyMDAxOiBmaXggVUNELVNOTVAtTUlCOjpkc2tVc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQ3M2Q3ZTVjZDRkNDExYmJhMjBlYjg1MzU5ZDg3MjgwNjMzMDFjYmQgTWVyZ2U6IGE0ZThiNjIKCiA4OGZkZGI3IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6Mjg6MjIgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDIxMDFiYjJkN2FkNmRiMDM4Yzc1NWFhOTE5M2M4YWNlMGRiZDRmNTggQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgNCAwOToyODowNgogMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IGlnbm9yZSAqLm9yaWcgYW5kICoucmVqCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogaGVscCBvdXRwdXQgZGVzY3JpYmVzIHJlYmFzZSB2cwoKIG1lcmdlIGJldHRlcgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGYxMjZhMTdjNmEzMDYzNDU1YTUxMTk0MGIwMjMwNDdhYmQ5YjQ4ZWUgTWVyZ2U6IGFkNzY1ZjQKCiA3N2E0Nzg0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6MjU6MTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQ1MmUxNzA3ZjIwOWVjNDVlN2M3ZjJhMzA0MGVmNTk1ZmI5ZDFhZjYgTWVyZ2U6IGRjNzU1YTYKCiBiMzcyZTVhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6MjU6MDMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2Q1Lmg6IENIQU5HRVM6IG9wZW5ic2Q6IFBBVENICiAgICAgIDMzNTc5Mjc6CgogZnJvbSB0MGp3MmZ1MGttZzogUmVjb2duaXNlIG9wZW5ic2Q1IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZml4IHdoZXJlIGFyZ3VtZW50cyBhcmUgc2V0CgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogc3BsaXQgbnNzZnBhdGNoYXBwbHkgaW50byB0d28KCiBwYXJ0czogYXBwbHkgYW5kIGNvbW1pdGluZwoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogcGF0Y2ggdXNpbmcgLU4KCgoyMDExLTA4LTA0ICBEYXZpZCBBcm5vbGQgPGRqYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsIAogICAgICBtYW4vZml4cHJvYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwKICAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgCiAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGNvbmYuMS5kZWYsCiAgICAgIG1hbi9zbm1wZC44LmRlZiwgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsIAogICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBuZXRzdGF0LjEuZGVmLCBtYW4vc25tcHNldC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCBtYW4vc25tcHRlc3QuMS5kZWYsIAogICAgICBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAKICAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtYW4vc25tcHVzbS4xLmRlZiwgbWFuL3NubXB2YWNtLjEuZGVmLCAKICAgICAgbWFuL3NubXB3YWxrLjEuZGVmOiBDSEFOR0VTOiBtYW46IFBBVENIIDMzMTI4NjE6IGZyb20gZGphOiBNYW4KICAgICAgcGFnZXMKCiBoeXBoZW4tdnMtbWludXMgY2xlYW51cCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRGV0ZWN0IChhbmQgcmVqZWN0KSBPcGVuU1NMCgogMS4wLjAKCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogQ29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHNpbGVudAoKIGluc3RhbGwKCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRW5zdXJlIFdpbmRvd3MgcGFja2FnZQoKIHVuaW5zdGFsbHMgY29tcGxldGVseS4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4MWM2M2ZiNWM1ZTRhYmI5YzI5YWNhODliZjlkNjk0NDEwMDg2ZTk3IE1lcmdlOiA0YTY5MjBhCgogZGM3NTVhNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA4OjMzOjM0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6IGFkZGVkIHNwYWNpbmcgdG8gbWF0Y2ggdGhlIGxhdGVyIGJyYW5jaGVzCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzogcmVtb3ZlZCBhY2NpZGVudGlhbGx5IGR1cGxpY2F0ZWQgY29kZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CgogQWRkIEZyZWVCU0QgOS54IHRvIHN1cHBvcnRlZCBPU2VzIGxpc3QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzI4OiBmcm9tIHlhYmVyYXVuZXlhOgoKIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgc25tcGxpYi9rZXl0b29scy5jLAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZAogY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCiBjb21waWxlIHdhcm5pbmdzIHdpdGggRnJlZUJTRC9OZXRCU0QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZTg3OGFiYmRiMTgwOGVmODNlMGE4MDc0NTM2ZmI1NGUxMzIxOWE4YiBNZXJnZTogNDAzZGU0MgoKIDg3OGZiZjQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1NTowMCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjUwYWZhMDY4OTJmZDg5N2FjMzFlMzgzNmE3ZmZjOWUyYjRjZjdiOSBNZXJnZTogMmMxNGMxYwoKIDNhZmM1ZTAgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1MTozMyAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNTc4Y2Q3Y2NlMzUxYWU4ZDkwNGVjM2Q4MGJlOWJhNmQxZDQ4YTcxMiBNZXJnZTogMjU5ODhiZQoKIGYzYmM1NTEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1MDo1NiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhdXRvY29uZgoKCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENICgogMzM4Mzk0OTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGF1dG9jb25mIHRlc3RzIGZvciBzeXMvbWJ1Zi5oIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogcHJvbXB0IGZvciBwYXRjaCBhbmQgYW4gYXJlYSwgYW5kCgogdXNlIHRoZSBwcm9wZXIgQ0hBTkdFUyBsaW5lIGZvcm1hdAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogVXNlIGZldGNoIC0tYWxsIGFuZCByZWJhc2UgYXMKCiBzdWdnZXN0ZWQgYnkgQmFydCBmb3Igc3BlZWQgaW1wcm92ZW1lbnRzCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDZhMWE4OWU2ZjY0ODk1MWE5YjgzMTkzMmQzY2MyMzA4MjFmMmQzNyBNZXJnZTogZGNiNzEyZgoKIDg3MmUwMTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDEyOjA2OjE4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA0NDk2OWI0ZTU3YzI3MTk0ZTViZDM1N2JjNDUyNzVmZWI4Njk1ZDIyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDggMjA6NTI6MjUgMjAxMSArMDIwMAoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOiBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBJbnZva2UKCiBTbm1wVXRpbE9pZEZyZWUoKSBiZWZvcmUgU25tcFV0aWxPaWRDcHkoKS4gSXQncyBub3QgY2xlYXIgeWV0IHdoeQogdGhlIG9yaWdpbmFsIGNvZGUgZGlkIG5vdCBtYWtlIHNubXB3YWxrIHRyaWdnZXIgYSBtZW1vcnkgbGVhay4KCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkY2I3MTJmZmM4NmIzMzU4MzAwMGVmNGFlOWE1MWNlZDI1Y2QxNWJmIE1lcmdlOiBlODVjZmE1CgogOTg2MjNlZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTE6MzY6MTcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDhhMDFlYzY0MjNkNDAwYzRhMTNjY2FjNjhhMzc5MWQwMjE4YTA4ODUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZTg1Y2ZhNTk5YjIzYjc2ZDk3OTEzYzk2YjVkNzAzYmZmNmJhNDk0NCBNZXJnZTogYjA1NmVlNgoKIGUyMWVlZjIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDA4OjQ0OjQzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IENIQU5HRVM6IGFnZW50OgoKIEF2b2lkIHRoYXQgYSBNSUIgd2FsayBvbiB0aGUgaG9zdCByZXNvdXJjZXMgTUlCIHRyaWdnZXJzIGEgY3Jhc2ggb24KIEZlZG9yYSAxNQoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGIwNTZlZTZlYjUzOTA5YWQwNGYxNmVjMjZkMjY5MGQ3YTA4MzE5MmEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAwNzo1OTowNCAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYwogICAgICAgZXNzLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKICAgICAgIC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFnZW50L3NubXBfYWdlbnQuYywgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcHVzbS5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6CgogcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYWU4ZTNlY2QyZGY0Y2YzNzYyNTk0NGFkZWQxZGZlNDczNWQ0NGVlYSBNZXJnZTogNzMxODdjZQoKIDkzMzVlMTkgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBBdWcgMyAxNDozNzozNiAyMDExIC0wNzAwCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNzk0ZjlhNjlkN2ViNjQyMjY4MjAwYjBhNGIxOTkxNTFkZWY2NmVkMCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEF1ZyAzIDE0OjM2OjI1CiAyMDExIC0wNzAwCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQogICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IFJlZW5hYmxlIElQLU1JQjo6aXBEZWZhdWx0Um91dGVyVGFibGUKICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA3LTE4ICBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOiBhZ2VudDogY2hhbmdlCgogdHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcgVHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHZhcmlhYmxlIGlzIGNoYW5nZWQgZnJvbSBpbnQgdG8gbG9uZy4KIFRoaXMgZml4ZXMgdGhlIGJ1ZyB3aXRoIHdyaXRpbmcgdG8gc25tcEVuYWJsZUF1dGhlblRyYXBzIGlmIHNlcnZlcgogaXMgY29tcGlsZWQgZm9yIDY0Yml0IChzbm1wc2V0IHJlcG9ydHMgd3JvbmcgbGVuZ3RoKS4gVGhpcyBidWcgd2FzCiBpbnRyb2R1Y2VkIGEgbG9uZyB0aW1lIGFnbyAoYnkgZmFlZWNkMCBjb21taXQpLiAgQWN0dWFsbHkgdGhpcyBpcyBhICdsZXNzIGVmZm9ydCcgdHlwZSBvZiBmaXggYnV0IEkgd29uZGVyIHdoeSB3ZQogbmVlZCBhIGxvbmcgdG8gc3RvcmUgYW4gSU5URUdFUiBpbiB0aGUgZmlyc3QgcGxhY2U/IFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPiBTaWduZWQtb2ZmLWJ5OiBXZXMKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDZhZDdlMjhmZjllNWU0ZWJjMTM1OGVlMzljYzk3OTZhNDRhMWJlZTcgTWVyZ2U6IGYyODMyZTMKCiAxZTE1NGNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZwogMyAxOToxNToyNCAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNjFiMTc4ZjFlZTg5NTJhYTAzYWEzYjFiYTUxZjRhNjY1NWU0N2YwMSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZyAzIDE4OjA5OjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6IFdoaXRlc3BhY2Utb25seSBjaGFuZ2U6IGZpeCBpbmRlbnRhdGlvbgoKIG9mIGFuICNpbmNsdWRlIGRpcmVjdGl2ZQoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvTmV0U05NUC54czogQ0hBTkdFUzogUGVybDogUmVtb3ZlIGZpbGUgcGVybC9OZXRTTk1QLnhzCgogYmVjYXVzZSBpdCBicmVha3MgdGhlIFdpbmRvd3MgYnVpbGQuICBUbyBXZXM6IGlmIHlvdSBjYW4gdGVsbCBtZSBob3cgdG8gcmVwcm9kdWNlIHRoZSBwcm9ibGVtIHlvdSBvYnNlcnZlZAogSSdsbCB0cnkgdG8gZmluZCBhIHBvcnRhYmxlIGZpeC4gIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDU0ODcxZjUyOTM2NzVjODA1OGVjY2U4OGZlZDViNjQ2YzgzNjMyMyAoIkFkZGVkCiBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbiBuZXdlciBwZXJsIHRoYXQgd2FudHMKICJzb21ldGhpbmciIikuCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGY0ODliMTk5YWRhYjQ4YjE2MzNlYmNhZjVmZjVhN2MyMmM0Y2I4OSBNZXJnZTogZjRlYWEwMgoKIDcyYTU5YmMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgQXVnCiAyIDEwOjExOjUzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3ZmNjMGI4MDMyZjhkYTViN2JjMzAwNTlhZjBiYTY1NmVhZTcxMDkxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDEgMTQ6MTE6MjggMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYzogRml4IGEgY29tcGlsZXIgd2FybmluZyBpbgoKCiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwoKMjAxMS0wOC0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0CgogZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyB0aGUgV2luZG93cyBidWlsZAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGFwcHMvc3NodG9zbm1wCgoKMjAxMS0wOC0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICAuZ2l0aWdub3JlLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LXhzLmluYzogUmVtb3ZlIHR3byBnZW5lcmF0ZWQgUGVybCBmaWxlcy4KCgoyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjRlYWEwMmQ5YjA3NmE2N2Q3MjcyZGU3ZWVmOGU5ZGZiZjE4OWJiZiBNZXJnZTogNDAxMjVkOAoKIGFkYWRjYjkgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMiAwMDo1Nzo1MSAyMDExICswMjAwCgoyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOiBzdXBwcmVzcyAib2siIHRlc3Qgb3V0cHV0IGluIG5zYgoKCjIwMTEtMDgtMDEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDAxMjVkODUzOWNkODlmOTUyZmJjMjQ1ODhjNWU4MWU5Y2Q4MjFmZSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgMQogMTM6NTg6MzMgMjAxMSArMDIwMAoKMjAxMS0wOC0wMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDVhY2YwZDJjZWIzOTc3OTY0ZWQzOWYwMDMwNzNiYTY0MTM4YzJlYmQgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMjM6NTc6NDEKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhNzcyMmE4MWY5Y2I3YWE4NjcwZTdjMjM4NjAxMzYyYTMxMDg3YWNjIE1lcmdlOiAyNDJlMTc5CgogYWU5YWM2YyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBKdWwKIDMxIDA5OjExOjQ1IDIwMTEgKzAyMDAKCjIwMTEtMDctMzEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NzaHRvc25tcC5jOiBGaXggYW4gaW5jb3JyZWN0IHNvdXJjZSBjb2RlIGNvbW1lbnQ6IHRoZXJlIGlzCgogbm8gcmVxdWlyZW1lbnQgaW4gdGhlIEFOU0kgQyBzdGFuZGFyZCB0aGF0IHN0YWNrIHZhcmlhYmxlcyBzaG91bGQgYmUKIGluaXRpYWxpemVkIHRvIHplcm8uCgoyMDExLTA3LTMxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjQyZTE3OTdiMjY5NGEwNjg5ODU2YWUzNmQwNWQzNDEzYWFmOGQ3NyBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEp1bCAzMSAwMTo0NDowOQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZwoKIGdldGFkZHJpbmZvKCkgYW5kIEVBSV9GQUlMIChlLmcuIEhQLVVYIDEwLjIwLzExLjAwKQoKMjAxMS0wNy0zMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDE4ZGY3NTlmMTliOTc1YzQ0OWQwMTBiYjBhMTYyMTE5YmI2ODM2MGQgTWVyZ2U6IDU0YTQ0Y2IKCiA3MDUwNzE4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEp1bAogMzAgMTY6Mzk6MTMgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDgyZDczZmIxMWJlM2FlMzFmMzljOWQ2MThkNTM4OGRjOWIxMDA2ZDcgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMjA6NTE6MjcgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCgoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCgoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDEwOWY2Njk0ZDc4OGY0OGViZDlmYzBhMWU5MGM0NWFiYzM3YmVhMjAgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFNhdCBKdWwgMzAgMTQ6MjI6MTkKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3ZDgxMDBlZWQ0NTlhMWZmMWEyMGMwNjczNjRmYTZjYjQ3NDkxMzA5IE1lcmdlOiAxMTZjMjRmCgogOWU0N2FjNCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogU2F0IEp1bCAzMCAwMDoyMDowMSAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zLCBkaXN0L25zYi1uaWdodGx5LCBkaXN0L25zYi1wYWNrYWdlOiBtaW5vciBuc2IKCiBmaXhlcy9lbmhhbmNlbWVudHMgZnJvbSBteSBvbGQgc3ZuIHRyZWUKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxMTZjMjRmMGY3ZmIzZjk5YmE2NDY3MzBmNjFjNTZkMWFlMjNiYTQxIE1lcmdlOiA5ODJmYjdmCgogNGZjMGI4YiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwKIDI5IDExOjMxOjIwIDIwMTEgKzAyMDAKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBjNDgxNzNjMDZhOWVhYWRiZjgxZTZiNDk2MmQ1NWVmMGE1NGRiMjUxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDI5IDEwOjI3OjM5IDIwMTEgKzAyMDAKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNDogUmVydW4gYXV0b3JlY29uZgoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5CgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmM6IEZpeCB0d28gZmlsZW5hbWVzIGluIGhvc3QgbWliCgogc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDk4MmZiN2ZkOGJhYjI1YzQzMjJhYTYyYzUwNDM3MDM2Y2UyOTZlM2UgTWVyZ2U6IDFlZGE2NzUKCiAzNDU4MTI4IEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEp1bCAyOCAxNjoyNDowMyAyMDExICswMjAwCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogRml4IHBvdGVudGlhbAoKIHNpZ3NlZ3Ygd2hlbiBhbiBpZlRhYmxlIGVudHJ5IGlzIHJlbW92ZWQgYXMgcmVzdWx0IG9mIGJvdGgKIGludGVyZmFjZV9yZXBsYWNlX29sZCBhbmQgaW50ZXJmYWNlX2ZhZGVvdXQgYXQgdGhlIHNhbWUgdGltZS4KCjIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NzaHRvc25tcC5jOiBNYWtlIGFwcHMvc3NodG9zbm1wLmMgYnVpbGQgYWdhaW4gKHdhcyBicm9rZW4gYnkKCiBjb21taXQgNjEyMjQ3Y2RmMTRjMWU3NDVjMzg0Y2VmZTFmM2ZkZTNlNDQ1YjM0NyB0aGF0IGNoYW5nZWQKIE1TR19OT1NJR05BTCBpbnRvIE5FVFNOTVBfTk9TSUdOQUwpCgoyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWVkYTY3NTNiN2ZlN2QzYjNmMjE3YzA5MjU0ZWMwMmQwZWUxZDBjZSBNZXJnZTogZGI4Yjg2MAoKIGEyZjllY2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsCiAyOCAxNTozMjoyOCAyMDExICswMjAwCgoyMDExLTA3LTI4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOiAKCiBDSEFOR0VTOiBzbm1wZDogUmVzdG9yZSBzdG9yYWdlIHRhYmxlcyBvbiBMaW51eAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgogaWZUYWJsZSB3aGVuIGFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYWxyZWFkeSBleGlzaW5nIG9uZQogYXBwZWFycy4gIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQWxsb3cgaWZUYWJsZQoKIGVudHJpZXMgdG8gYmUgZGVsZXRlZCBpbW1lZGlhdGVseSB3aGVuIGFwcHJvcHJpYXRlIGludGVyZmFjZQogZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfZmFkZW91dCcgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc2V0CiBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZDYyYTBlYjkwNzBiNGQ4ZDlmZTJiY2ZkYjRkNTNkMzdlZjgxNGY5YiBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBKdWwgMjgKIDE0OjQ5OjA4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX3JlcGxhY2Vfb2xkJyBvcHRpb24gdG8gcmVtb3ZlIG9sZCBlbnRyaWVzIGluCiBpZlRhYmxlIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhbHJlYWR5IGV4aXNpbmcgb25lCiBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCB0aGUgaW50ZXJmYWNlX2ZhZGVvdXQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCgogZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCiBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKIGxpZmV0aW1lIG9mIGlmVGFibGUgZW50cmllcyBvZiByZW1vdmVkIGludGVyZmFjZXMuICBQcmV2aW91cyBsaWZldGltZSB3YXMgaGFyZGNvZGVkIDUgbWludXRlcywgbm93IGl0J3MgY29uZmlndXJhYmxlLgoKMjAxMS0wNy0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhcHBzL3NzaHRvc25tcC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQKICAgICAgZml4CgogZm9yIHN5c3RlbXMgbGFja2luZyBNU0dfRE9OVFdBSVQKCjIwMTEtMDctMjcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzogQ0hBTkdFUzogc25tcGQ6IE1ha2UKCiBUQ1AtTUlCOjp0Y3BDdXJyRXN0YWIgd29yayBhZ2Fpbi4gV2FzIGJyb2tlbiBpbiA1LjcgYnkgdGhlCiBpbnRyb2R1Y3Rpb24gb2YgdGhlICJmZWF0dXJlcyIgZmVhdHVyZS4KCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZmI4ODA3NGZiYmMyNjhjN2YwNTA5NDkxNTM1YWVjNWZlY2IwNTY4NCBNZXJnZTogYTc0M2FlNQoKIDM4MjEyNzMgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVsIDI3IDE0OjQ3OjI1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzFmYTA3Y2Q5ZmZkZTQ2ZDQxZDJiNTgzOGMzZmM0ZDAxNTQ4YmZiNSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjcKIDE0OjQ1OjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IHJ1biBzaWduYWwgaGFuZGxlcnMgd2hlbiBzZWxlY3QoKQoKIGlzIGludGVycnVwdGVkLiAgVGhpcyBiZWhhdmlvciBpcyBpbmRpY2F0ZWQgaW4gY29tbWVudCBvbiBsaW5lIDEyNDQsIGJ1dCBpdCB3YXMgbm90CiBhY3R1YWxseSBkb25lLgoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDJlOTQ2NmQ3ZjU5ZDY1ZDA1MDI3NzczNWU0ZWQ5ZDMwNzE5ZmY3NTIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMjYgMTM6MTA6MDQgMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDc3MDgyOTY3NjBlYWY1YTgwZDg1NDA3NDZjOWMyNDk4MjZmZDFiZmUgTWVyZ2U6IGVhMTFlNWUKCiBjZDZlMzgyIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMjYgMTY6MjE6NDEgMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogQ2xhcmlmeSBhbiBJUHY2IHNvdXJjZSBjb2RlIGNvbW1lbnQKCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBtYW4vbmV0c25tcF9oYW5kbGVyLjM6IFNwZWxsaW5nIGZpeDoKCiBkZWZpbmVkeSAtPiBkZWZpbmVkCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zOiBTcGVsbGluZwoKIGZpeDogYWxldmlhdGUgLT4gYWxsZXZpYXRlCgoyMDExLTA3LTI2ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGRkMmM0NzEzMzQ5M2Q1YTAwZGU2YjNjZGJjZmFjN2U5ZDQ0YjZmZmUgTWVyZ2U6IGY5Y2NiYzcKCiBlYTExZTVlIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEp1bCAyNiAxNDoyNToyOCAyMDExICswMjAwCgoyMDExLTA3LTI2ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGM1YTg0NjRjNDJhOTRjMjUwZWUyZGZhMmE0NzMxMDlhNzM0MjAzZDggQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDI2CiAxNDoyNDo1NSAyMDExICswMjAwCgoyMDExLTA3LTI1ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGY5Y2NiYzc3MjY2NjEzNGQxZDE3OGI1MDVhZjlkZGNkZDllZDQyNDQgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gSnVsIDI1CiAxNTowMjoxNSAyMDExICswMjAwCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjBjMGEzNTVkNWY2MDFhMTFiZTQ5MTRmYmY3MTM3MTZhYmQzMGEyOSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAxOQogMTg6MzY6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGMxNGZjMzg2MTRiYWYxMGQ1MTcxMzZmMDQ4MDkwN2I3ZjAzZDhkNzQgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjAKIDEzOjQ0OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOiByZW1vdmUgYnJva2VuIHdoaXRlc3BhY2UgbGluZXMgdGhhdAoKIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZWJkZDIxNmMwNzRiZjQxY2QzYTA4NGJkMTQ2ODljZjAxYzg4N2IzMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAxOQogMTg6MzY6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IHVwZGF0ZWQgZ2l0aWdub3JlIHRvIGlnbm9yZSBhIG51bWJlciBvZiBhdXRvLWdlbmVyYXRlZAoKIGZpbGVzCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKCiBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGRmNWY3MDA1NWNmOWJlMzNmMDVmYjUwYWJlMmY1YTgxZWFjMDkyYWQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMTkgMTE6MDc6MTkgMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGY1OTZmMTgyNDJkY2RmZDZjZjQ5Yzg4ZGExZDgzNmMxNmUyNjBjYWMgTWVyZ2U6IDBmMzA5YjQKCiA3MGRlZTRiIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMTkgMTE6MzM6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOgogICAgICAzMzY5NjgwOgoKIGZyb20gSWx5YSBZYW5vazogY2hhbmdlIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgZnJvbSBpbnQgdG8gbG9uZyBzdWNoCiB0aGF0IG1vZGlmeWluZyB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZQogbWVtb3J5IGluIDY0LWJpdCBidWlsZHMuCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzM3MDY0NToKCiBmcm9tIEJpbGwgRmVubmVyOiBGaXggQWdlbnRYIHN1YmFnZW50IGZvdXIgYnl0ZSBsZWFrCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOiBkbwoKIG5vdCBpbnZva2UgSVNSVU5OSU5HKCkgb24gTWluR1cuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOgoKIGNsZWFudXAgLSByZW1vdmUgY29kZSB0aGF0IGJlY2FtZSBzdXBlcmZsdW91cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBNaW5HVzogRG8gbm90CgogYXNzdW1lIHRoYXQga2lsbC5leGUgcmVwb3J0cyB2aWEgaXRzIGV4aXQgc3RhdHVzIHdoZXRoZXIgdGhlCiBzaWduYWxsZWQgcHJvY2VzcyBzdGlsbCBleGlzdHMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBSZW1vdmUgdGhlIGZ1bmN0aW9uIFdBSVRPUkRJRSgpIGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2ggc2luY2UgaXQKIGlzIG5ldmVyIGludm9rZWQuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBTaW1wbGlmeSBXQUlURk9SKCkgaW4gc2ltcGxlX2V2YWxfdG9vbHMuc2guIFRoZSBjb2RlIHRoYXQgaGFuZGxlZAogaW52b2NhdGlvbiBvZiBXQUlURk9SKCkgd2l0aCB6ZXJvIG9yIG9uZSBhcmd1bWVudHMgaGFzIGJlZW4gZHJvcHBlZAogc2luY2UgV0FJVEZPUigpIGlzIGFsd2F5cyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CgogbWlub3Igc2ltcGxpZmljYXRpb24uCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZTogQ0hBTkdFUzoKCiB0ZXN0aW5nOiBTa2lwIHRlc3QgNTkgaWYgU0lHSFVQIGlzIG5vdCBzdXBwb3J0ZWQuIE1ha2VzIHRlc3QgNTkgcGFzcwogb24gTWluR1cuCgoyMDExLTA3LTA2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogTWluR1cgZml4CgoKMjAxMS0wNy0wNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgZnJhbWV3b3JrCgogcmVmYWN0b3Jpbmc6IEludHJvZHVjZSBXQUlURk9STk9UQ09ORCgpLgoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogTWFrZSBTVE9QUFJPRyBzZW5kIFNJR1RFUk0gcmVwZWF0ZWRseS4gVGhpcyBmaXhlcyBhIHJhY2Ugd2hlcmUKIFNJR1RFUk0gY291bGQgYmUgc2VudCBiZWZvcmUgdGhlIFNJR1RFUk0gc2lnbmFsIGhhbmRsZXIgd2FzIHNldCB1cCwKIGVzcGVjaWFsbHkgd2hlbiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kLgogQ0hBTkdFUzogdGVzdGluZzogTWFrZSB0aGUgU05NUF9WRVJCT1NFPTEgb3V0cHV0IGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzcwoKIHJlZmFjdG9yaW5nOiBpbnRyb2R1Y2UgRUNIT1NFTkRTSUdURVJNKCkgYW5kIEVDSE9TRU5EU0lHS0lMTCgpCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogRml4IGEgYnVnIGluCgogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCB0aGF0IHdhcyBpbnRyb2R1Y2VkCiBpbiBjb21taXQgOTM4ZDc1Yy4KCjIwMTEtMDctMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBJZ25vcmUgKi5leGUgZmlsZXMgZ2VuZXJhdGVkIGJ5IHRoZSBXaW4zMgoKIGJ1aWxkCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBUZXN0IG9ubHkgb25jZSBkdXJpbmcgYSB0ZXN0IHdoZXRoZXIgdGhlIHNoZWxsIHN1cHBvcnRzIHN1Yi1zZWNvbmQKIHNsZWVwaW5nIGluc3RlYWQgb2YgcmVwZWF0ZWRseS4KCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46IENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZWQKCiBkZWZhdWx0IHRpbWVvdXQgZnJvbSAxcyB0byAxMHMgd2hlbiB0aGUgcmVncmVzc2lvbiB0ZXN0cyBhcmUgcnVuCiB1bmRlciBWYWxncmluZAoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogQWZ0ZXIgaGF2aW5nIHNlbnQgU0lHVEVSTSB0byBzbm1wZCBvciBzbm1wdHJhcGQsIHdhaXQgdW50aWwgdGhlCiBwcm9jZXNzIGhhcyBzdG9wcGVkIGJlZm9yZSBzZW5kaW5nIFNJR0tJTEwuIFRoaXMgcmFjZSBjb25kaXRpb24gd2FzCiBoaXQgbW9zdCBlYXNpbHkgd2hlbiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kLgogQ0hBTkdFUzogdGVzdGluZzogQ2hlY2sgUElEIGZpbGUgZXhpc3RlbmNlIGFmdGVyIGhhdmluZyByZWFkIGl0CiBpbnN0ZWFkIG9mIGJlZm9yZS4gVGhpcyBmaXhlcyB0aGUgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIFBJRCBmaWxlCiBkaXNhcHBlYXJlZCBhZnRlciB0aGUgZXhpc3RlbmNlIGNoZWNrIGFuZCBiZWZvcmUgaXQgd2FzIHJlYWQuCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoKIGludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgVGhpcyBwYXRjaCBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgdG8gVjUuNiBTVk4gcGF0Y2hlczogZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGYzMDliNDkzYzIxZDNjNjkxNDQ4NzUxNGI0MTU2MDc1NGZmY2RmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAwODozNzo1MCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWI3NDU0YmMyODE1Njg0NzBhMTMwMDQ3NmQyZWRiNGY0MTFlNjAyOSBNZXJnZTogOGQ5ZGNjOAoKIDY5MGVhN2QgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAxOSAwODozMToyOCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzogQ0hBTkdFUzogc25tcHRyYXBkOiBBZGQgbWlzc2luZyBuZXdsaW5lCgogY2hhcmFjdGVyIGluIGEgbG9nIG1lc3NhZ2UKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEludm9rZSBzaHV0ZG93bl9wZXJsKCkgd2hlbgoKIHNodXR0aW5nIGRvd24KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IFNwZWxsaW5nIGZpeDogYnJhbmtldCAtPiBicmFja2V0CgoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYuCgogRml4ZXMgYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBhdGNoCiBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IChSUE0gNC45IHN1cHBvcnQpCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDYxN2Q4NGY4M2ZhNjllZDlmYTlmOThlZmM0YWZhZjg4MGQxMjFmMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bCAxNCAxNjo0Mzo0NyAyMDExICswMjAwCgoyMDExLTA3LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBNYWtlCgogbmV0c25tcF9pcHY2X2ZtdGFkZHIoKSBzaG93IHRoZSBJUHY2IHNjb3BlIElECgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogQWRkIHN1cHBvcnQKICAgICAgZm9yCgogSVB2NiBhZGRyZXNzIHNjb3BlIElECgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSdW4gYXV0b3JlY29uZgoKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhNTY3MjFhM2U3NzU0ZTM4OWRhYTdlOGEzZDU3OTI4OTllZGM5ZGUzIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsIDE0IDE2OjE4OjMyIDIwMTEgKzAyMDAKCjIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4NDRkNGNlODY3YmYzYWJlN2I3NTM2YzVkYmZiYTQwMTkzN2E4ZDRhIE1lcmdlOiBlZWQwMTk4CgogNjEwMzZhOCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogRnJpIEp1bCAxNSAxNTozMzoxMCAyMDExIC0wNzAwCgoyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODUxYmNmNTNmY2QxM2NkZjBiYTlmMTJlNWQ2MDNlNzNmOGJiOTYxMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgRnJpIEp1bCAxNQogMTU6MzI6NDkgMjAxMSAtMDcwMAoKMjAxMS0wNy0xNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBmaXggYSB0eXBvCgoKMjAxMS0wNy0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IHNubXBsaWI6ICB0d2VhayBwYXRjaCAzMDQ0ODg4IHRvIHJlc3RvcmUKCiBwcm9wZXIgbm9uLWVycm9yIHJldHVybiBkdXJpbmcgbWliIGxvYWRpbmcKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGFkZGVkIDUuNyBwYXRjaGVzIHRvIHRoZSBicmFuY2ggbGlzdCBhbmQgZml4IHRoZSByZWxlYXNlIGZpbGUKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlcgoKIGJyYW5jaGVzCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCA1LjcgcGF0Y2hlcwoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjNDMxMjMxZThmMGEzOWQxOTUwYmM3MmMzMmUzNDAyZjkwZmE4MDMwIE1lcmdlOiA1NmZlZTQwCgogYTJhYzI0ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEp1bCAxMSAxOTozMzoxNyAyMDExIC0wNzAwCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvcHkgb2YgdGhlCgogc2hlbGwtZnVuY3Rpb25zIHRvIHRoZSBvbGRlciBicmFuY2gKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCgogYnJhbmNoZXMKCjIwMTEtMDctMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcKCgoyMDExLTA3LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcKCgoyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IFJldmVydCAiZml4IGR0bHN1ZHAKCiB0cmFuc3BvcnQgYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24iIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmFiM2E2ZTZmMmZjYzFmZjNlNWYwZmI1ZGM1ZDA1ZTQ5ODgyMGQ4OS4gICAtIGZvciBzb21lIHJlYXNvbiBJIHNhdyAncmMnIGFuZCBteSBicmFpbiBpbnRlcnByZXRlZCBpdCBhcyAgICAncHJlLXJlbGVhc2UnLiBXaGF0IGNhbiBJIHNheSwgaXQgd2FzIGxhdGUuIDotLwoKMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBmaXggZHRsc3VkcCB0cmFuc3BvcnQKCiBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiAgLSB1cGRhdGUgaXB2NCBmbXRhZGRyIHRvIGhhbmRsZSBzb2NrYWRkciBhbmQgdG8gY2hlY2sgICAgc2l6ZSBiZWZvcmUgYXNzdW1pbmcgZGF0YSBpcyBhZGRyIHBhaXIgIC0gbW92ZSBkdGxzdWRwIGZ1bmN0aW9ucyB0byBleHRyYWN0IGFkZHIocykgdG8gdGxzYmFzZQoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDU2ZmVlNDAxMThiMjFhOWY0ZGMwMmE2ZjI0N2Y3ZGE2ZmM2OWEwMDUgTWVyZ2U6IGQzOTE5NGIKCiA5ZmY0NzE0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVuIDI5IDIzOjE4OjEzIDIwMTEgLTA3MDAKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHRhZyBwdXNoaW5nCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggdGFnIHB1c2hpbmcKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUKCiBwdWJsaXNoaW5nCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LnJjMwoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy5yYzMKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50CgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtaXNjIHB1YmxpY2F0aW9uIGZpeGVzIGZvdW5kIHdoaWxlCgogcHVibGlzaGluZwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHJhbiBhdXRvaGVhZGVyIHRvIGFkZCB0aGUKCiBtaXNzaW5nIHRlbXBsYXRlIGlmZGVmcwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy5yYzIKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcucmMyCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDY0YjZjNjhhODQ5MzBhYjAxZTNlMTQ2YzQ5ZjNhYjUzODJlZmRhM2UgTWVyZ2U6IDEyN2VlYzIKCiBkMzkxOTRiIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVuIDI5IDE3OjEyOjQ2IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZjljZjlhMWUyOTNkMDVhMjQ3ODY2OTRmNjhjMDVhMmJlMTNhOWIzIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVuIDI5CiAxNjozNDoxMSAyMDExIC0wNzAwCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSBnaXQyY2wgdG8gZ2VuZXJhdGUgdGhlIENoYW5nZUxvZyBmaWxlOwoKIG5lZWRzIG11Y2ggbW9yZSB3b3JrLgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiB1c2UgdGhlIG5ldyBydW4tYXV0b2NvbmYgc2NyaXB0CgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcnVuLWF1dG9jb25mOiBBIHNjcmlwdCB0byBpbnZva2UgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiB0aGUKCiBhdXRvY29uZiB0b29sCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHJlbWFpbmluZyBjb21tYW5kIGxpbmUgY2hhbmdlcyBmb3Igc3ZuIC0+CgogZ2l0CgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1ha2UgdGhlIGJyYW5jaCBlY2hvIG91dHB1dCBhbmQgc3ZuIHVwZGF0ZQoKIGNvbnZlcnRlZCB0byBnaXQgZXF1aXZhbGVudHMKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcHVsbCB0aGUgYnJhbmNoIGluZm8gZnJvbSBnaXQKCgoyMDExLTA2LTI5ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOiBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yayB3aXRoCiAgICAgIGxpYnJhcnkKCiB2ZXJzaW9uIDQuOQoKMjAxMS0wNi0yOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1biAyOQogMTY6MDc6MDAgMjAxMSArMDIwMAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogbm90ZWQgdGhhdCB0aGUgbWFzdGVyIGJyYW5jaCBpcyBpbiByYyBzdGF0ZQoKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCA4YjIzYjRjMTM5MjNiOGNhZjRkNGFlZDMyYTQ1MDkzMzkzNGZmNDYxIE1lcmdlOiAxNTM3ODFkCgogNDdmNTA0OCBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIFR1ZQogSnVuIDI4IDEzOjE0OjUyIDIwMTEgLTA3MDAKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCBhZjhiMjM1MjM0ZjcyOTQ0YTY0OWE3NmYwZDMwY2ZmOTVhYzJlODk1IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBUdWUgSnVuIDI4IDEzOjExOjE5IDIwMTEKIC0wNzAwCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgZ2l0IG1lcmdlIHdpdGggdGhlIC0tbG9nCgogb3B0aW9uCgoyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTUzNzgxZGJmYjJhZmMwMDAzYmE0ZTU4ZmZjY2E1MzAwMWU0ODZkNiBNZXJnZTogYjNlODBkZQoKIDNjNWE0MDkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVuCiAyOCAxOTo0MzoxMyAyMDExICswMjAwCgoyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgOWJjODJlNGNhNDgzN2YwMDA3MmRiYTg2Yjk0OTdhMjcxODY5MDlmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1biAyOCAxOToxMzozNSAyMDExICswMjAwCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogRkFROiBXZSdyZSBub3cgdXNpbmcgZ2l0IQoKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCBiM2U4MGRlOWIwN2QyODJmZjExYWY4YjA2YTkxZDY0Mjc5ZDMyNjFkIE1lcmdlOiBjNGFkMjc4CgogNmE1ZTVhNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgogSnVuIDI3IDIxOjM0OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCAzOGZlODE3N2Q1MzMxMzVhNmNjNjgyNzI0ZjE2YTkxMTEzYmNkN2YzIE1lcmdlOiA3ZDkxN2NmCgogZGQ1OGJhZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgogSnVuIDI3IDIxOjM0OjU2IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCA1YzE3N2Y1MTdkMTZmMDU1NDViMjc5ZDE2ZjBlNGZkNTY5NmJlNjUxIE1lcmdlOiBmMGQ2YmYwCgogYzJiY2ViYyBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgogSnVuIDI3IDIxOjM0OjU1IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCA5Yzk3Njk1NzJlYjhjMDNiNjk1NTZjMWM1YWFiOWI0ZDU2YzZkMWQzIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gSnVuIDI3CiAxNDoxMToxNCAyMDExICswMDAwCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGZlYXR1cmUgdG8gbm90IHJvbGwKCiBicmFuY2hlcyBjdXJyZW5seSBpbiByYyBwaGFzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBuc3JvbGx1cCBmdW5jdGlvbiBmb3IKCiByb2xsaW5nIGJyYW5jaGVzIHVwd2FyZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBjcmVhdGVkIGFuIG5zcGF0Y2hhcHBseSBmdW5jdGlvbgoKIHRvIGFwcGx5IGEgcHJldmlvdXNseSB0ZXN0ZWQgcGF0Y2ggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnN0cnlwYXRjaCBmdW5jdGlvbiB0bwoKIHRlc3QgcGF0Y2ggYXBwbGljYXRpb24gYWdhaW5zdCB2YXJpb3VzIGJyYW5jaGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCB2ZXJib3NlIG91dHB1dCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1vcmUgcHJlZml4IGNoYW5nZXMgYW5kIGJldHRlcgoKIHNldHRpbmcgb2YgZGVmYXVsdCB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBucyBwcmVmaXhlcyBpbnN0ZWFkIG9mIGdlbmVyaWMKCiBzbm1wIHByZWZpeGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiAKCiBNaXNzaW5nIGNoZWNrIGZvciBycG10cy5oIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yawoKIHdpdGggbGlicmFyeSB2ZXJzaW9uIDQuOSBCYXNlZCBvbiBhIHBhdGNoIGJ5IEphbiBTYWZyYW5layBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcKCiBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5IChyYXRoZXIgdGhhbiBxdWVyeWluZwogdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoKIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CiAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoKIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CiAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoKIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CiAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlCgogdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZQoKIHRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CgogaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CgogaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkCgogb2YgJWxkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKCiBvZiAlbGQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IHJ1biBjb3JyZWN0IHZlcnNpb24gb2YgYXV0b2NvbmYgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogcmFuIGF1dG9jb25mIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBJbmNsdWRlIHN0ZGxpYi5oIHRvIG1ha2UgZG1hbGxvYyBoYXBweQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEwICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlczogRml4IGJ1aWxkIG9mIHNubXB1c20KCiB3aGVuIGFkZGl0aW9uYWwgc2VjIG1vZHVsZXMgcmVxdWVzdGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmM6IEluY2x1ZGUgc3Rk4KWG4KSF4KSG4KWG4KSFh2liLmggdG8gbWFrZSBkbWFsbG9jIGhhcHB5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wOSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6IENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlCgogcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wOSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6IENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlCgogcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA4ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsIAogICAgICBzbm1wbGliL3N5c3RlbS5jOiBtb3JlIGRuc3NlYyB0d2Vha3MgIC0gY3JlYXRlIGFuIGFwcC1nbG9iYWwKICAgICAgdmFsaWRhdG9yIGNvbnRleHQgZm9yIHVzZSB3aXRoIGFsbCAgICB2YWxpZGF0aW9uIHJvdXRpbmVzLiBtYWlubHkKICAgICAgdXNlZnVsIGZvciBsb25nLWxpdmVkIGFwcHMuICAgLSB1c2UgdGhlIGFwcHR5cGUgYXMgdGhlIHZhbGlkYXRvcgogICAgICAnc2NvcGUnLCBhbGxvd2luZyAgICBmb3IgYXBwLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRhdGlvbgogICAgICB2aWEgbGlidmFsJ3MgICAgZG5zdmFsLmNvbmYgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA3ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6IGFkZCBhIG1heCBkZWZpbmUgZm9yCgogZWFjaCBkZWZhdWx0IHN0b3JlIHR5cGUgICBub3QgYWN0dWFsbHkgdXNlZCwganVzdCBhIGhlbHBmdWwgcmVtaW5kZXIgZm9yIHRob3NlIGFkZGluZyAgIG5ldyBpZHMgd2hvIG1pZ2h0IG5vdCB0aGluayB0byBjaGVjayBORVRTTk1QX0RTX01BWF9TVUJJRFMuICAgICh0aGUgYm9vbCBsaXN0IGlzIHJhcGlkbHkgYXBwcm9hY2hpbmcgdGhlIGN1cnJlbnQgbGltaXQuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wNyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46IG1lbnRpb24gYnVpbGRkaXIgd2hlbgoKIGNvbXBsYWluaW5nIGFib3V0IG5vdCBiZWluZyBydW4gZnJvbSBzb3VyY2UgdHJlZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOiBSZXZlcnRlZCByMjAzNjI6IHRoYXQgcGF0Y2ggbWFrZXMgc2Vuc2Ugb24gdGhlCgogdHJ1bmsgYW5kIHRoZSA1LjYgYnJhbmNoIGJ1dCBub3Qgb24gdGhlIDUuNSBub3Igb24gdGhlIDUuNCBicmFuY2guICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nCiBvdXRwdXQgb2YgYWdlbnR4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcKIG91dHB1dCBvZiBhZ2VudHggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nCiBvdXRwdXQgb2YgYWdlbnR4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGZpeGVkIGF1dG9jb25mIHZlcnNpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL1NOTVAvU05NUC54czogUmVpbnN0YXRlIGFuICJ1bnVzZWQiIGxhYmVsIHRoYXQgaXMgYWN0dWFsbHkKCiBzdGlsbCByZXF1aXJlZC4gIChyZWZlcmVuY2VkIGluIGxpbmUgMjcxMCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IEZpeCB0eXBvIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIENIQU5HRVMsIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHhtbCBxdW90aW5nIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3BhcnNlLmM6IGZpeCBub24gZXhpc3RlbnQgbWFsbG9jIG1hY3JvIHRvIHVzZSBjYWxsb2MKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBBcHBsaWVkIHRoZSBpbnRlbnQgb2YgcGF0Y2ggMzA0NDg4OCB0byBhbGxvdyBhcHBsaWNhdGlvbnMKIHRvIHJlYWQgdGhlIGVycm9yIG1lc3NhZ2VzIG9mIGEgTUlCIHBhcnNpbmcgZmFpbHVyZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKCiBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZAogb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aAoKIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCiBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjawogL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGhyU1dSdW5QYXRoCgogb2Ygc3dhcHBlZC1vdXQgcHJvY2Vzc2VzIG9uIExpbnV4LiAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQKIG91dCkgYW5kIHdoZW4gdGhlIHByb2Nlc3MgZXhpdGVkIGFmdGVyIGZvcGVuKCksIHNvIGNoZWNrCiAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKCiBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZAogb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVwIHRoZSBhbnRlIGFuZCBydW4gb3RoZXIgdGVzdCBzdWl0ZXMKCiBiZXNpZGVzIGp1c3QgdGhlIGRlZmF1bHQgc2V0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbwoKIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOiBBcHBsaWVkIHRoZSBpbnRlbnQKICAgICAgb2YKCiBwYXRjaCAzMjk5Mzg2IHdoaWNoIGZpeGVzIGR1cGxpY2F0ZSBlbnRyaWVzIG9uIGEgU0lHSFVQLiAgVG8gYWNoaWV2ZQogdGhpcyBzb21lIG5ldyBoZWFkZXJfY29tcGxleCBmdW5jdGlvbnMgbmVlZGVkIHRvIGJlIGNyZWF0ZWQgdGhhdAogZGlkbid0IGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIG9sZGVyIG9uZXMuICBUaGUgbm90aWZpY2F0aW9uIGNvZGUKIG5vdyBjYWxscyB0aGVzZSBuZXdlciBmdW5jdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKCiByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmgsIHBlcmwvTWFrZWZpbGUuUEw6CgogTkVXUzogc25tcGQ6IHBhdGNoIDMxMzEzOTc6IGZyb20gdGFrZXZvczogaHVnZSBzcGVlZHVwcyBvZiB0aGUKIFRDUC9VRFAgVGFibGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9OZXRTTk1QLnhzOiBBZGRlZCBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbgoKIG5ld2VyIHBlcmwgdGhhdCB3YW50cyAic29tZXRoaW5nIiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOiBDSEFOR0VTOgoKIHNubXBkOiBwYXRjaCAzMzA2NDc2OiBmcm9tIHRpbnlweXJhbWlkczogZml4IG1lbW9yeSBsZWFrIGluIHRoZQogc3dydW4gY29udGFpbmVyIGxvYWRpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6IENIQU5HRVM6Cgogc25tcGQ6IHBhdGNoIDMzMDY0NzY6IGZyb20gdGlueXB5cmFtaWRzOiBmaXggbWVtb3J5IGxlYWsgaW4gdGhlCiBzd3J1biBjb250YWluZXIgbG9hZGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDQ0OTogdXNlCgogTkVUU05NUF9QUklvICJ1IiBmb3IgcHJpbnRpbmcgc3ViaWRzIGluc3RlYWQgb2Ygb25seSBORVRTTk1QX1BSSW8uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogRm9sbG93LXVwIGZvciByMjA0NDk6IHVzZQoKIE5FVFNOTVBfUFJJbyAidSIgZm9yIHByaW50aW5nIHN1YmlkcyBpbnN0ZWFkIG9mIG9ubHkgTkVUU05NUF9QUklvLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IE1pY3Jvc29mdAoKIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCiBiZWNhdXNlIGdkaTMyLmxpYiBpcyBhIGRlcGVuZGVuY3kgb2YgT3BlblNTTC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogTWljcm9zb2Z0CgogVmlzdWFsIFN0dWRpbzogTGluayB3aXRoIGdkaTMyLmxpYiBpZiBPcGVuU1NMIGhhcyBiZWVuIGVuYWJsZWQKIGJlY2F1c2UgZ2RpMzIubGliIGlzIGEgZGVwZW5kZW5jeSBvZiBPcGVuU1NMLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKCiBWaXN1YWwgU3R1ZGlvOiBMaW5rIHdpdGggZ2RpMzIubGliIGlmIE9wZW5TU0wgaGFzIGJlZW4gZW5hYmxlZAogYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogRm9sbG93LXVwIGZvciByMjA0NDg6IHNpbmNlIHRoZQoKICJvaWQiIHR5cGVkZWYgaGFzIGJlZW4gY2hhbmdlZCBiYWNrIGZyb20gdWludDMyX3QgdG8gdV9sb25nLCBjaGFuZ2UKIE5FVFNOTVBfUFJJbyBmcm9tIE5FVFNOTVBfUFJJMzIgaW50byAibCIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IEZvbGxvdy11cCBmb3IgcjIwNDQ4OiBzaW5jZSB0aGUKCiAib2lkIiB0eXBlZGVmIGhhcyBiZWVuIGNoYW5nZWQgYmFjayBmcm9tIHVpbnQzMl90IHRvIHVfbG9uZywgY2hhbmdlCiBORVRTTk1QX1BSSW8gZnJvbSBORVRTTk1QX1BSSTMyIGludG8gImwiLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAoKIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQKCiBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0Cgogc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAoKIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiByZXZlcnQgT0lEIHR5cGVkZWYgdG8gdV9sb25nIGFzCgogYWdyZWVkIHRvIG9uIC1jb2RlcnMgYW5kIGluIHRoZSBhZG1pbiBtZWV0aW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogcmV2ZXJ0IE9JRCB0eXBlZGVmIHRvIHVfbG9uZyBhcwoKIGFncmVlZCB0byBvbiAtY29kZXJzIGFuZCBpbiB0aGUgYWRtaW4gbWVldGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3N5c3RlbS5jOiBSZW1lbWJlciB0byByZXR1cm4gaW5mbyBhbHNvIHdpdGhvdXQgRE5TU0VDCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jOiBBZGRlZCBOVUxMLWNoZWNrcwoKIGFmdGVyIG1hbGxvYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYzogQWRkZWQgTlVMTC1jaGVja3MKCiBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCgogYWZ0ZXIgbWFsbG9jIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jOiBBZGRlZCBOVUxMLWNoZWNrcwoKIGFmdGVyIG1hbGxvYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOiBDSEFOR0VTOgoKIGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YgSVB2NiBhZGRyZXNzZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6IENIQU5HRVM6CgogYWdlbnQ6IEJVRzogMzMwNTE1NzogRml4IGlwQWRkcmVzc1ByZWZpeCBoYW5kbGluZyBvZiBJUHY2IGFkZHJlc3NlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogQlVHOiAzMjk1NDA3OiBGaXgKCiBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4CgogaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAoKIGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAoKIGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcwogKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZQogICAgICBvbGQKCiBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKICAgICAgMzIzNDc1NDoKCiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzIGluaXRpYWxpemVkIHRvIE5VTEwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgogICAgICAzMjM0NzU0OgoKIEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjM0NzU0OiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzCiBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCgogcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXNlICNpZmRlZgoKIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6IENIQU5HRVM6IG1hbjogQlVHOgoKIDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOiBDSEFOR0VTOiBtYW46IEJVRzoKCiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmOiAKCiBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kCiBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWY6IAoKIENIQU5HRVM6IG1hbjogQlVHOiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQKIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CgogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICAoYWxyZWFkeQogZml4ZWQgaW4gVjUtNS1wYXRjaGVzIGFuZCBWNS00LXBhdGNoZXMgaW4gU1ZOIHJldi4gMjAxMTUsIGR1bm5vIHdoeQogSSBkaWQgbm90IHBhdGNoIHRydW5rKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICAoYWxyZWFkeQogZml4ZWQgaW4gVjUtNS1wYXRjaGVzIGFuZCBWNS00LXBhdGNoZXMgaW4gU1ZOIHJldi4gMjAxMTUsIGR1bm5vIHdoeQogSSBkaWQgbm90IHBhdGNoIHRydW5rKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKCiAzMTg0Njk3OiBEb24ndCByZWZlcmVuY2UgaW50ZXJuYWwgTUQ1IHdoZW4gaXQncyBleHBsaWNpdGx5IGRpc2FibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKCiAzMTg0Njk3OiBEb24ndCByZWZlcmVuY2UgaW50ZXJuYWwgTUQ1IHdoZW4gaXQncyBleHBsaWNpdGx5IGRpc2FibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGhpbnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogRm9sbG93LXVwIGZvciByMjA0MzI6IHRlc3RpbmcvUlVOVEVTVFMgd2l0aG91dAoKIGFyZ3VtZW50cyB3b3JrcyBhZ2FpbiBhcyBpdCBzaG91bGQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBGb2xsb3ctdXAgZm9yIHIyMDQzMjogdGVzdGluZy9SVU5URVNUUyB3aXRob3V0CgogYXJndW1lbnRzIHdvcmtzIGFnYWluIGFzIGl0IHNob3VsZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBSYW4KCiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMgdGhyb3VnaCBkb3MydW5peC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOiBGaXhlZCBhIHR5cG8gaW4gYQoKIGNvbW1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGU6IEZpeGVkIGEgdHlwbyBpbiBhCgogY29tbWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0CgogbnVtYmVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0CgogbnVtYmVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgYnVnIGluCgogbmV0c25tcF9nZXRhZGRyaW5mbygpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogRG9jdW1lbnQgdGhhdCB0aGUgdWNkLXNubXAKCiBkaXNraW8gY29kZSBzdGlsbCBoYXMgdG8gYmUgbW9kaWZpZWQgc3VjaCB0aGF0IGRpc2tpb19mcmVlX2NvbmZpZygpCiBnZXRzIGludm9rZWQgdXBvbiBTSUdIVVAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogRG9jdW1lbnQgdGhhdCB0aGUgdWNkLXNubXAKCiBkaXNraW8gY29kZSBzdGlsbCBoYXMgdG8gYmUgbW9kaWZpZWQgc3VjaCB0aGF0IGRpc2tpb19mcmVlX2NvbmZpZygpCiBnZXRzIGludm9rZWQgdXBvbiBTSUdIVVAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBmaXggY2FzdCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jOiBSZXZlcnQgMjA0MjAgIkNIQU5HRVM6IHNubXBkOiBGaXhlZCBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCCgogdGFibGVzIGludHJvZHVjZWQgYnkgcGF0Y2ggIzMwNTM0MzYuIiBSZXZlcnQgMTk3MDggIkNIQU5HRVM6IHNubXBkOgogUEFUQ0g6IDMwNTM0MzY6IGZyb206IHRha2V2b3M6IGZpeDogdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzCiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MiIHRoZSBidWcgMzA1MzQzNiBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4gcjE3NzE5LCBhbmQgZml4ZWQgaW4KIHIxNzg2MS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCAKICAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zeXN0ZW0uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOiBtb3JlIGRucyByZWxhdGVkIHR3ZWFrcyAgLQogICAgICBhZGQgbmV0c25tcF9nZXRob3N0YnlhZGRyICAtIGFsd2F5cyBkZWZpbmUgbmV0c25tcF8qIHZlcnNpb25zOwogICAgICBsb2dvbmNlIGlmIHVuZGVybHlpbmcgICAgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJsZSAgLSB1c2UgbmV3CiAgICAgIGZ1bmN0aW9ucyBpbiBkaXNtYW4gbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgc25tcGxpYi9zbm1wdjMuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOiB1c2UgbmV3IG5ldHNubXAgZG5zCgogZnVuY3Rpb25zIGluIGFwcHMvc25tcGxpYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6IG1vdmUgRE5TU0VDCgogdmFsaWRhdGlvbiBpbnRvIHJlc29sdmVyIHdyYXBwZXIgZnVuY3Rpb25zICAgLSBhbGxvd3Mgb3RoZXIgY29kZSB0byBiZW5lZml0IGZyb20gdmFsaWRhdGlvbiAgIC0gbmV3IG5ldHNubXBfZ2V0aG9zdGJ5bmFtZSwgbmV0c25tcF9nZXRhZGRyaW5mbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQoKIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQoKIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQoKIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jOiBGaXggZm9yIFJIRUw0CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBIZWFkZXIgZmlkZGxpbmcgZm9yIHRoZQoKIGJlbmVmaXQgb2YgUkhFTDQsIFNvbGFyaXMsIE9wZW5CU0QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jOiBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbWVtb3J5IGxlYWsgaW4gVENQLU1JQiB0YWJsZXMKICAgICAgaW50cm9kdWNlZAoKIGJ5IHBhdGNoICMzMDUzNDM2LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYzogQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzCiAgICAgIGludHJvZHVjZWQKCiBieSBwYXRjaCAjMzA1MzQzNi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6IFJldmVydGVkIGFjY2lkZW50YWxseSBjb21taXR0ZWQKCiBjaGFuZ2VzIG9mIHIyMDQxMi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogc25tcF9mcmVlX3Nlc3Npb24oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiBzbm1wX2ZyZWVfc2Vzc2lvbigpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogc25tcF9mcmVlX3Nlc3Npb24oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcwoKIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcwoKIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcwoKIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmM6IEF2b2lkIHRoYXQgTVNWQyB0cmlnZ2VycyBhIGNvbXBpbGVyIHdhcm5pbmcgb24KCiB0aGUgY29kZSBpbiBzbm1wbGliL2xjZF90aW1lLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6IEF2b2lkCgogcmVhZGluZyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CgogbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlmVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeQoKIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpZlRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKCiBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaWZUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CgogbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlmVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhawoKIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBBZGRyVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsKCiBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrCgogaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDogCgogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKQogaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudCBzcGVsbGluZyBmaXg6CgogZXhpdGVudCAtPiBleGlzdGVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZywgc25tcGxpYi9taWIuYzogRG9jdW1lbnRhdGlvbiAvIHNvdXJjZSBjb2RlIGNvbW1lbnQKCiBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50Cgogc3BlbGxpbmcgZml4OiBleGl0ZW50IC0+IGV4aXN0ZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nLCBzbm1wbGliL21pYi5jOiBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudAoKIHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBXaW4zMjogQnVpbGQKCiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMgb25seSBpZiBORVRTTk1QX0VOQUJMRV9JUFY2CiBoYXMgYmVlbiBkZWZpbmVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogaW5zdGFsbCB0aGUgYnVpbHQgZmVhdHVyZQoKIGhlYWRlcnMgdG9vIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlOiBDSEFOR0VTOgoKIHRlc3Rpbmc6IFRlc3RzIDAyNSBhbmQgMDI2IHBhc3Mgb24gTWluR1cgZXZlbiBpZiB3aW5FeHRETEwgaGFzIGJlZW4KIGVuYWJsZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZTogVDA2NSByb2J1c3RuZXNzCgogaW1wcm92ZW1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfdm9pZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oOiBDSEFOR0VTOiBzbm1wZDogdWNkX3NubXAgYnVpbGRzCgogYWdhaW4gb24gTWluR1cgYW5kIEN5Z3dpbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IGluc3RhbGwgdGhlIG5ldC1zbm1wLWZlYXR1cmVzLmggZmlsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IEltcHJvdmVkIHRlc3QKCiByb2J1c3RuZXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6IENvbXBpbGVyIHdhcm5pbmcgZml4ZXMuICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcKCiBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCgogYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZwoKIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcKCiBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6IEF2b2lkIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGlmIHRoZSBsYXN0IGNoYXIKCiBvZiB0aW1lX3N0cmluZyBpcyBpbiB0aGUgcmFuZ2UgMHg4MC4uMHhmZSBhbmQgY2hhciBpcyBhIHNpZ25lZCB0eXBlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IFJldmVydGVkIHIyMDM4MCBiZWNhdXNlIGl0IGJyZWFrcwoKIGFsbCBzdGF0ZW1lbnRzIHRoYXQgcHJpbnQgYW4gT0lEIHN1Yi1JRCBvbiBhbnkgNjQtYml0IHBsYXRmb3JtLiBUaGUKIGVmZmVjdCBvZiByMjAzODAgb24gYmlnIGVuZGlhbiBhcmNoaXRlY3R1cmVzIHdhcyB0aGF0IGEgIjAiIHdvdWxkIGJlCiBwcmludGVkIGluc3RlYWQgb2YgdGhlIE9JRCBzdWItSUQgKGF0IGxlYXN0IHdpdGggdGhlIExQNjQgYW5kIHRoZQogSUxQNjQgbW9kZWxzKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzogQysrIC0+IEMgY29tbWVudHMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogTkVXUyB1cGRhdGUgZm9yIDUuNyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCB0aGUgb2lkIHR5cGVkZWYgcmVzaXppbmcKCiBmcm9tIHIxNzgwOSBiZWNhdXNlIGl0IGJyb2tlIGJhY2t3YXJkcyBjb21wYXQsIGFzIHBvaW50ZWQgb3V0IGJ5CiB1c2VycyBvbiB0aGUgLWNvZGVycyBsaXN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiB1c2UgcHJvcGVyIGF1dG9jb25mIHZlcnNpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWlicy9VQ0QtU05NUC1NSUIudHh0OiBhZGRlZCBhIG1pc3NpbmcgMCBpbiB0aGUgcmV2aXNpb24gZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKCiBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjogSUFOQSBoYXMgZml4ZWQgdGhlCgogSUFOQS1JUFBNLU1FVFJJQ1MtUkVHSVNUUlktTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvcmZjbWlicy5kaWZmOiBJQU5BIGhhcyBmaXhlZCB0aGUKCiBJQU5BLUlQUE0tTUVUUklDUy1SRUdJU1RSWS1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IGFkZGVkIGEgbmV3IFJFVklTSU9OIGNsYXVzZSB0byBsaXN0IHRoZQoKIGNoYW5nZXMgaW4gdGhlIHRoZSByZWNlbnQgdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogYWRkZWQgcGluZy90cmFjZXJvdXRlIG1pYnMgbm90ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOiB3ZSBhY3R1YWxseSB3YW50IHRvIHVzZSB0aGUgYmFzZQoKIE9JRCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQsIG5vdCB0aGUgcmVnIE9JRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzogZml4ZWQgdGhlIHByb3h5IHN1cHBvcnQgdG8gZG8gYQoKIHByb3BlciBPSUQgbGVzcyB0aGFuIE9JRCBjb21wYXJlLiAgV2UgYWN0dWFsbHkgZG9uJ3QgY2FyZSBhYm91dCB0aGUKIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCwgb25seSB0aGF0IGl0IHdhcyBiZWZvcmUgdGhlCiByZWdpc3RlcmVkIHJlYmFzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6IENIQU5HRVM6IHBhdGNoIDMxNDA4MzM6IGZyb20KCiBqc2FmcmFuZWs6IGZpeCBwcm94eSBHRVRORVhUIHJlcXVlc3RzIFdoZW4gT0lEcyByZXF1ZXN0ZWQgYXJlIGJlbG93CiB0aGUgcHJveHkgcmVxdWVzdCByZW1hcCwgd2UgbmVlZCB0byBub3QgaW5jbHVkZSBhbnkgT0lEcyB0aGF0IG1pZ2h0CiBiZSBpbiB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgb3JpZ2luYWwgT0lEIGFuZCB0aGUgcmVtYXBwZWQgT0lELiAgVGhpcwogcGF0Y2ggZnVkZ2VzIHRoZSByZXF1ZXN0IHNvIHRoYXQgaXQgZml4ZXMgdGhlIHJlcXVlc3QgT0lEIHNvIGl0J3MKIGp1c3QgYmVmb3JlIHRoZSByZW1hcHBlZCBwcm94eSByYW5nZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKICAgICAgTkVXUzoKCiBQQVRDSCAzMTY3MzI1OiBmcm9tIGtyaXN6dG9mb3JvOiBVQ0QtU05NUC9TeXN0ZW1TdGF0czogYWRkIHZhcmlhYmxlcwogdG8gcmVwb3J0IGNwdXN0ZWFsLCBjcHVndWVzdCwgY3B1Z3Vlc3RuaWNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOiBDSEFOR0VTOiBwYXRjaAoKIDMxODQwMjY6IGZyb20gZWl2bmFlczogQXZvaWQgY29uc3RhbnQgcmVmcmVzaCBvZiBpbnRlcmZhY2UKIHN0YXRpc3RpY3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL3NjYXBpLmMsIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYzogRml4ZWQKICAgICAgc2V2ZXJhbAoKIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IHRoZSBNU1ZDIGNvbXBpbGVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYzogV2luMzIvTVNWQzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6IENIQU5HRVM6IGFnZW50OiBGaXhlZCBhCgogeWVhci0yMDM4IGJ1ZyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgaXBSb3V0ZVRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAoKIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KICAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmg6IENIQU5HRVM6IHNubXBkOiBEZWNsYXJlIHRoZSBPSUQKCiBhcmd1bWVudCB0eXBlIG9mIE1JQiByZWdpc3RyYXRpb24gZnVuY3Rpb25zIGFzICdjb25zdCBvaWQgKicgaW5zdGVhZAogb2YgJ29pZCAqJyBzaW5jZSB0aGVzZSBmdW5jdGlvbnMgZG8gbm90IG1vZGlmeSB0aGUgT0lELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOiBVc2UgdGhlIGNvcnJlY3QgZGF0YSB0eXBlIGZvcgoKIHRoZSAnY2FjaGUgZXhwaXJlZCcgdmFyaWFibGU6IGNoYXIgaW5zdGVhZCBvZiBpbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcwoKIGludHJvZHVjZWQgaW4gcjIwMTUxLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5CgogdXNpbmcgTFBDVFNUUiBpbnN0ZWFkIG9mIExQQ1NUUi4gTm90ZTogdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQKIFVuaWNvZGUgYnVpbGRzIGFyZSBzdXBwb3J0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5CgogdXNpbmcgTFBDVFNUUiBpbnN0ZWFkIG9mIExQQ1NUUi4gTm90ZTogdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQKIFVuaWNvZGUgYnVpbGRzIGFyZSBzdXBwb3J0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jOiBBZGQgZmlsZQoKIGZvcmdvdHRlbiBpbiByMjAzNTMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDogUmV2ZXJ0ZWQgYSBjaGFuZ2UgdGhhdCB3YXMKCiBjb21taXR0ZWQgYWNjaWRlbnRhbGx5IGluIHIyMDI3Ni4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBGaXhlZCB0d28gY29tcGlsZXIKCiB3YXJuaW5ncy4gIChCYWNrcG9ydGVkIHIyMDIzNiBmcm9tIHRoZSB0cnVuay4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbgoKIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQgYWJvdXQgaXQuICAoQmFja3BvcnRlZCByMjAyMzcgZnJvbQogdGhlIHRydW5rLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV8KICAgICAgIGFjY2Vzcy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6IENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMTI1OTY6CgogZnJvbSBmYWJsZWQ4MDogbGlzdGVuIGZvciBuZXRsaW5rIGNoYW5nZSBldmVudHMgZm9yIHRoZSBhcnAtcmVsYXRlZAogdGFibGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAoKIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CiBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaDogTkVXUzogUEFUQ0gKCiAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdAogbGVhc3QgY29tcGlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6IE5FV1M6IFBBVENICgogMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKIGxlYXN0IGNvbXBpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAoKIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CiBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBORVdTOiBzbm1wbGliOiBhZGQgb3B0aW9uYWwgc3VwcG9ydCBmb3IgbG9jYWwKCiBETlNTRUMgdmFsaWRhdGlvbiBvZiBob3N0bmFtZXMgIC0gb3B0aW9uYWwgYXQgY29uZmlndXJlIHRpbWU6IC0td2l0aC1sb2NhbC1kbnNzZWMtdmFsaWRhdGlvbiAgLSByZXF1aXJlcyBETlNTRUMtVG9vbCB2YWxpZGF0aW9uIGxpYnJhcmllcyAgLSBpbml0aWFsIHN1cHBvcnQsIGZvciBzeXN0ZW1zIHdpdGggZ2V0YWRkcmluZm8uIHN1cHBvcnQgZm9yCiAgICBhZGRpdGlvbmFsIHJlc29sdmVyIGludGVyZmFjZXMgY29taW5nIHNvb24uICAgLSBhbHNvIFRPRE86IGZsYWcgZm9yIGlnbm9yaW5nIHZhbGlkYXRvaW4gZXJyb3JzIChsb2cgJiBjb250aW51ZSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmg6IG1vdmUgdW51c2VkIChhbmQgdG9vIGdlbmVyaWMpCgogdG9rZW4gd2l0aGluIFVDRF9DT01QQVRJQkxFIGlmZGVmICAgLSBNQVhMQUJFTCBjb25mbGljdHMgd2l0aCA8YXJwYS9uYW1lc2VyLmg+ICAgLSBhZGRlZCBORVRTTk1QX01BWExBQkVMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXBkYXRlIGNvbmZpZ3VyZS9NYWtlZmlsZXMKCiBmb3IgRE5TU0VDIGxvY2FsIHZhbGlkYXRpb24gb3B0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzogcmVtb3ZlZCB0aGUKCiBhY2NpZGVudGFsIGJyb2tlbiBmZWF0dXJlIHJlcXVpcmUgbGluZSB0aGF0IGdvdCBoYWxmIGluc2VydGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwKCiBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCgogY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocwoKIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocwoKIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocwoKIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVwb3J0IEdaaXAgY29tbWFuZCBjb3JyZWN0bHkKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOiBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMKICAgICAgbm90CgogZGVmaW5lIElQX1NFTkRTUkNBRERSKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOiBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMKICAgICAgbm90CgogZGVmaW5lIElQX1NFTkRTUkNBRERSKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDogRml4IHNwZWxsaW5nIG9mCgogU09fUkVDVkRTVEFERFIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOiBGaXggc3BlbGxpbmcgb2YKCiBTT19SRUNWRFNUQUREUiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzogTkVXUzogYXBwczogYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRpbWVvdXRzCgogYW5kIHJldHJpZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvVEVTVENPTkYuc2g6IENIQU5HRVM6IE1pbkdXOiBNYWRlCgogcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQKIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlCiBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4gaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL1RFU1RDT05GLnNoOiBDSEFOR0VTOiBNaW5HVzogTWFkZQoKIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkCiBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0IGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZQogTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6IAoKIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlCiBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0CiBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuCiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOiAKCiBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZQogTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdAogZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbgogaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbiwKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKIFJlbW92ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHNvbHV0aW9uIGFuZCBwcm9qZWN0IGZpbGVzIGFnYWluIHNpbmNlCiBWaXN1YWwgU3R1ZGlvIDIwMTAgcmVmdXNlcyB0byBsb2FkIHRoZXNlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogY2xlYW4gdGhlIHBlcmwvcHl0aG9uIGZlYXR1cmUgbGVmdG92ZXJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBmaXggbWliIG1vZHVsZSBpbnZvY2F0aW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzogZml4IGlmZGVmCgogdHlwbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBmaXggcGVybC9weXRob24gZmVhdHVyZSBkZXBlbmRlbmNpZXMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOiByZXZlcnRlZCBhdXRvX25saXN0IG1hY3JvIHVzYWdlOyB0aGUgZnVuY3Rpb24KCiBpcyB1c2VkIGluIGhlYWRlcnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEFkZCBhIC1UIG9wdGlvbiB0byBydW4gJ21ha2UgdGVzdCcKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9NYWtlZmlsZS5pbjogZml4IHRoZSBlbmNvZGVfa2V5Y2hhbmdlIC5mdCBmaWxlbmFtZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgc25tcGxpYi90b29scy5jOiAKCiBmaXggdGhlIGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBUcmFwUmVjZWl2ZXIgbW9kdWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluOiBBZGQgdGhlIFRyYXBSZWNlaXZlciB0byB0aGUgbGlzdCBvZiBwZXJsIG1vZHVsZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6IHVzZSB0aGUgbmV3ZXIgTmV0LVNOTVAgQVBJcywgcmF0aGVyIHRoYW4gdGhlCgogb2xkZXIgVUNEIG9uZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IHJlbW92ZSBTRVQgY29kZSB3aGVuIHVuZGVyIC0tcmVhZC1vbmx5IG1vZGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOiByZXF1aXJlCgogY2hlY2tfdmJfdWludCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbgogICAgICAgdC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIAogICAgICBweXRob24vbmV0c25tcC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IGxhc3Qgb2YgdGhlIHBlcmwtdXNlZCBmZWF0dXJlIGZ1bmN0aW9ucwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW4KICAgICAgIHQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6Cgogc3RhcnRlZCB0aGUgZmluYWwgc2V0IG9mIGZ1bmN0aW9uIHJlbW92YWxzIGZvciBmZWF0dXJlcyByZXF1aXJlZCBieQogcGVybC9weXRob24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpOiBhZGRlZCB0aGUKCiBuZXQtc25tcC1mZWF0dXJlcy5oIGhlYWRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL09JRC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDogQWRkZWQgcGVybCBmZWF0dXJlCgogcmVxdWlyZW1lbnRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sIAogICAgICBwZXJsL0FTTi9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDogaG9wZWZ1bGx5CiAgICAgIHdvcmtpbmcKCiBydWxlcyB0byBhcHBseSBmZWF0dXJlIHJlcXVpcmVtZW50cyB0byBwZXJsIGFuZCBweXRob24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYzogbW9yZSBjaGFuZ2VzIHRvIHJlbW92ZSB1bm5lZWRlZCBmdW5jdGlvbnMKCiBwcmltYXJpbHkgd2hlbiB3cml0ZSBtb2RlIGlzIHR1cm5lZCBvZmYgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBjaGFuZ2UgdGhlIHdhbnQgaW52b2NhdGlvbiB0byBvbmx5IGRlZmF1bHQKCiB0byBleGNsdWRlIGV4dGVybmFsIGhvb2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBzZWFyY2ggdGhyb3VnaCAueHMgZmlsZXMgZm9yCgogZnVuY3Rpb24gaW52b2NhdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6IGZvcmdvdCBhIHNlbWljb2xvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmM6IGlxdWVyeSBwZHUKICAgICAgc2Vzc2lvbnMKCiBhcmUgb25seSBuZWVkZWQgaW4gd3JpdGUgbW9kZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9NYWtlZmlsZS5pbjogZml4IGZlYXR1cmUgZGV0ZWN0aW9uIG9mIHNvbWV0aW1lcy1idWlsdAoKIGFwcGxpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzogdXNlIHRoZSBmZWF0dXJlX3VudXNlZCBtYWNybyBmb3IgbWFraW5nIGFuCgogZW1wdHkgZmlsZSBmb3IgY29uc2lzdGVuY3kgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRscy5jLCAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBBbm90aGVyIHN3ZWVwIGZvciB1bnVzZWQKCiBmdW5jdGlvbnMgd2hlbiByZWFkX29ubHkgbW9kZSBpcyB0dXJuZWQgb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwogICAgICAgLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLgogICAgICAgYywgc25tcGxpYi9jaGVja192YXJiaW5kLmM6IG1hcmsgYSBzbGV3IG9mIGZ1bmN0aW9ucyBhcyBmZWF0dXJlcwoKIHRoYXQgYXJlIG9ubHkgbmVlZGVkIHdpdGggd3JpdGVfc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZTogcnVuIGdyZXAgd2l0aCAtbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiAKCiBmZWF0dXJpemUgbmV0c25tcF9zb2NrYWRkcl9zaXplIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiByZW1vdmUgYQoKIGZlYXR1cmVfcmVxdWlyZSBub3QgYWN0dWFsbHkgbmVlZGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOiBtYXJrIFNVQkNPTlRBSU5FUl9GSU5ECgogYXMgYSBmZWF0dXJlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB0c20uYzogdGhlIHJvdyBjcmVhdGlvbiBBUEkgaXMKCiBvbmx5IHVzZWQgaW4gdGhlIFRTTSBpbXBsZW1lbnRhdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdHNtLmM6IHRoZSBuZXdlciBjb250ZXh0IGVuZ2luZUlECgogcHJvYmluZyBpcyBvbmx5IG5lZWRlZCBpZmYgVFNNIGlzIGluIHVzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6IGZpeCBhbiBpZmRlZiB0eXBvIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IG1vdmVkIGZldGF1cmUgY2hpbGRfb2Ygc3RhdGVtZW50cyB0byB0aGUKCiB0b3Agb2YgdGhlIGZpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IG1hcmtlZCBhIGNvdXBsZSBvZiByYXJlbHkgdXNlZCBjb250YWluZXIKCiBmdW5jdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6IHNwbGl0IG91dCB0aGUgcHJlZml4X2luZm8gZmVhdHVyZQogICAgICBpbnRvCgogc3ViLWZlYXR1cmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuYzogbWFyayB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIGFzIHVubmVlZGVkIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmM6IGZpeCBhIGNoaWxkX29mIHN0YXRlbWVudAoKIHdpdGggYSBjb3B5L3Bhc3RlIGVycm9yIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiB0aGUgY29udGFpbmVyIHJvdy1yZW1vdmUgaXMgb25seQoKIG5lZWRlZCBpZiB0aGUgdGRhdGEgcmVtb3ZlX3JvdyBpcyBuZWVkZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLgogICAgICAgYzogZmVhdHVyZSBtYXJraW5nIG9mIHVudXNlZCB0ZGF0YSBmdW5jdGlvbnMgICAgCiAgICAgIHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZSAgICAgdGFibGVfdGRhdGFfZXh0cmFjdF90YWJsZSAgICAKICAgICAgdGFibGVfdGRhdGFfcmVtb3ZlX3JvdyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmM6IHJlbW92YWwgb2Ygc29tZSByYXJlbHkgdXNlZAoKIAlmdW5jdGlvbnMgdGFibGVfc2V0X211bHRpX2FkZF9kZWZhdWx0X3JvdyAJdGFibGVfZGF0YXNldF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGRlZCBhIGRlZmluaXRpb24gdG8gaW5jb3Jwb3JhdGUKCiByZWFkX29ubHkvbm90aWZ5X29ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzogYWRkZWQgYSBtaXNzaW5nIGZlYXR1cmUgZGVmaW5pdGlvbgoKIGxpbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjogYWRkZWQgYmFjayBpbiBtaXNzaW5nIG1pYmdyb3VwIGZlYXR1cmUKCiBkZWZpbml0aW9uIGxpc3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogSW5jbHVkZSB0aGUgb3JpZ2luYWwgYmFzZSBmbGFncyB0bwoKIGVuc3VyZSAtLXdpdGgtZGVmYXVsdHMgZ2V0cyBwaWNrZWQgdXAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZml4IHVzYWdlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGRlZCBhIC1iIGZsYWcgZm9yIGJhc2UgYXJndW1lbnRzIHRvCgogc3RhcnQgZnJvbSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBkZWZhdWx0IHRvIGEgbGluZWFyIHNlYWNoIG9mIHNpemUKCiB0ZXN0cywgcmF0aGVyIHRoYW4gZXhwb25lbnRpYWwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzogCgogQ0hBTkdFUzogc25tcGxpYjogR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucwogY29uc2lzdGVudGx5LiAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6CiAgICAgIEd1YXJkCgogbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuICBDSEFOR0VTOgogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6CiAgICAgIEd1YXJkCgogbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuICBDSEFOR0VTOgogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCgogcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKCiByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcwogcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZQoKIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCiByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCgogcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKCiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cKIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZQoKIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVwogZW52aXJvbm1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlCgogPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIE1pbkdXCiBlbnZpcm9ubWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKCiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cKIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOiBXaW4zMiBETEwgYnVpbGQgZml4ZXMuCgogKEJhY2twb3J0ZWQgcjIwMTg0IGZyb20gdHJ1bmsuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOiBXaW4zMiBETEwgYnVpbGQgZml4ZXMuCgogKEJhY2twb3J0ZWQgcjIwMTg0IGZyb20gdHJ1bmsuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UKCiBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCgogY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCgogY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQoKIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBhZGRlZCBub3RlIGFib3V0IHRoZSBuZXcgdGltaW5nIGZ1bmN0aW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBVcGRhdGUgdGhlIG1hbnVhbCBwYWdlIHRvIHJlZmxlY3QgdGhlIG5ldwoKIHRpbWluZyBvcHRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jOiBiZXR0ZXIgZG9jdW1lbnRhdGlvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYzogdXNlIHRoZQoKIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZvciBwYXJzaW5nIGZyZXF1ZW5jaWVzL3RpbWUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jOiBmaXggcGR1CgogYnVpbGRpbmcgdGVzdHMgdW5kZXIgdmFyaW91cyBkaXNhYmxlZCBtb2RlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6IGRvbid0IHRyeSB0bwoKIGJ1aWxkIHRoZSBHRVQgcGR1IHVuZGVyIG5vdGlmeV9vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzogZml4IGEgYnVnIHdpdGgKCiBuby1zdWZmaXggc3RyaW5ncyBhbmQgdXNlIGEgY29uc3QgaW5wdXQgc3RyaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3NfY2xpYi5jOgoKIEEgbmV3IHVuaXQgdGVzdCBmb3IgdGhlIHRpbWUgY29udmVyc2lvbiByb3V0aW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogdXNlIHRoZQoKIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZ1bmN0aW9uIGZvciBjb21wdXRpbmcgaW50ZXJ2YWwKIHBlcmlvZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOiBBZGRlZCBhCgogbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb25zIHRvIGNvbnZlcnQsIGUuZy4sIDFoIHRvIDM2MDAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IHJlbW92ZSBjb2RlIHRvIGJ1aWxkL3BhcnNlIEdFVC9ldGMgcmVxdWVzdHMKCiB3aGVuIE5PVElGWV9PTkxZIGlzIHR1cm5lZCBvbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogdXBkYXRlIHRoZSBORVdTIHRvIHJlZmxlY3QgdGhlIG5ldyAtLWVuYWJsZS1yZWFkLW9ubHkgYW5kCgogLS1lbmFibGUtbm90aWZ5LW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogbWlub3IKCiBpbXByb3ZlbWVudHMgZm9yIHJvbmx5IHZzIHJ3cml0ZSBoYW5kbGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6IHN0aWxsIGVuYWJsZQoKIFJPTkxZIHdoZW4gUldSSVRFIGlzbid0IHBvc3NpYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IGZpeCBHRVQgc3VwcG9ydCB3aGVuIG5vX3dyaXRlIGlzCgogZW5hYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IG1hcmsgYSBmdXR1cmUKCiBtb2RpZmljYXRpb24gbmVlZCBpbiBhIGNvbW1lbnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6IGZpeCBoYW5kbGluZyBvZiBub193cml0ZSBzdXBwb3J0CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYzogCgogZG9uJ3Qgb3BlbiBhbnkgbGlzdGVuaW5nIHRyYW5zcG9ydHMgd2hlbiBub3RpZnktb25seSBpcyBzcGVjaWZpZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBzZXQgdGhlCgogbm8tbGlzdGVuIGFuZCByZWFkLW9ubHkgZmxhZ3Mgd2hlbiAtLWVuYWJsZS1ub3RpZnktb25seSBpcyBzZXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IGltcGxlbWVudCB0aGUKCiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUIGluIHRoZXNlIHRyYW5zcG9ydHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IHJ1biBhdXRvY29uZiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogbW92ZSB0aGUgcmVhZC1vbmx5IGZsYWcKCiBkZWZpbml0aW9uIGJlbG93IHRoZSBub3RpZnktb25seSwgc2luY2Ugbm90aWZ5LW9ubHkgbmVlZHMgdG8gaW1wbHkKIHJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IERlZmluZWQgYSBuZXcKCiAtLWVuYWJsZS1ub3RpZnktb25seSBmbGFnIGZvciBidWlsZGluZyBhIHRvb2xzZXQgdGhhdCBvbmx5IGFsbG93cwogZm9yIG5vdGlmaWNhdGlvbnMgd2l0aCBubyByZWFkL3dyaXRlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBEZWZpbmVkIGEgbmV3CgogLS1uby1saXN0ZW4gZmxhZyB0byByZW1vdmUgbGlzdGVuaW5nIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDogdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seQoKIHVzZWZ1bCB3aGVuIFNFVHMgYXJlIHR1cm5lZCBvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oOiB0aGUgZGlzbWFuIHNjaGVkdWxlIG1pYiBpcyBvbmx5IHVzZWZ1bAoKIHdoZW4gU0VUcyBhcmUgdHVybmVkIG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogZmluaXNoZWQgbm9fd3JpdGUgc3VwcG9ydCBmb3IgY29tbW9uIGluY2x1ZGVkIHRhYmxlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzogQWRkIGJhY2sgaW4KCiAnbmV0c25tcF9zZXRfcm93X2NvbHVtbicgd2hlbiBub193cml0ZSBzdXBwb3J0IGlzIGVuYWJsZWQgVGhpcwogZnVuY3Rpb24gaXMgYSBnZW5lcmljIGRhdGEgbWFuaXB1bGF0aW9uIGZ1bmN0aW9uLCBub3QgU0VUIHNwZWNpZmljIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6IGRvbid0IHVzZSBtYXJrX3Jvd19jb2x1bW5fd3JpdGFibGUKCiB3aGVuIHJlYWQtb25seSBzdXBwb3J0IGlzIGVuYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOiBmaXggbm9fd3JpdGUgc3VwcG9ydAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzogZml4IG5vX3dyaXRlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IERvbid0IGZyZWUKCiB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZ2l0IGJhc2gtc2hlbGwgZnVuY3Rpb25zIHRvIGVuYWJsZQoKIGJyYW5jaCBzd2l0Y2hpbmcgYW5kIGV4dGVybmFsIGJ1aWxkaW5nIFRoZXNlIGxvY2FsIHNoZWxsIGZ1bmN0aW9ucwogKHNubXBjb25maWd1cmUgYW5kIHNubXBtYWtlKSBsZXQgeW91IGNvbmZpZ3VyZSBhbmQgYnVpbGQgdGhlCiBOZXQtU05NUCBzb3VyY2UgY29kZSBpbiBleHRlcm5hbCBkaXJlY3RvcmllcyB0aGF0IGFyZQogYXV0by1jYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBleGlzdGluZyBicmFuY2ggbmFtZSAod2l0aCBhbiBvcHRpb25hbAogc3VmZml4KS4gIFRoaXMgbGV0cyB5b3UgcnVuICdzbm1wbWFrZScgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZQogZGlyZWN0b3J5IGFuZCBoYXZlIGl0IGFjdHVhbGx5IGV4dGVybmFsbHkga2VlcCB0cmFjayBvZiBtb2RpZmllZAogZmlsZXMsIGV0Yywgc28gYnVpbGRpbmcgaW4gbXVsdGlwbGUgYnJhbmNoZXMgY2FuIGJlIGRvbmUgZnJvbSBhCiBzaW5nbGUgZ2l0IGNoZWNrb3V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogY2xlYW4gdXAgdGhlIGl0ZXJhdG9ycwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBmcmVlIHZhcmJpbmRzIGFmdGVyCgogc2VuZGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbgoKIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQgYWJvdXQgaXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBGaXhlZCB0d28gY29tcGlsZXIKCiB3YXJuaW5ncy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IG51bGwgY2hlY2sKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6IE1vdmUgcG9pbnRlciBkZXJlZmVyZW5jZSB0byBhZnRlcgoKIHRoZSBjaGVjayBmb3Igc3VjY2Vzc2Z1bCBhbGxvY2F0aW9uIG9mIHRoZSBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IG1lbnRpb24gd2hpY2ggbW9kdWxlIGlzIHJlcXVpcmVkIHdoZW4KCiBidWlsZGluZyB0byBnZXQgdGhlIGRlbGl2ZXIgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGRlbGV0ZWQgYW4gdW5uZWVkZWQKCiBkZWJ1Z2dpbmcgc3RhdGVtZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcHJvcGVybHkgdXBkYXRlIHRoZSBtYXgKCiBjb3VudCBpbiB0aGUgb3V0Z29pbmcgbm90aWZpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGJldHRlciBwYWNrZXQgZXN0aW1hdGlvbgoKIHRvIGVuc3VyZSB3ZSBkb24ndCBvdmVycnVuLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBlc3RpbWF0ZSB0aGUgcGFja2V0IHNpemUKCiBhbmQgYnJlYWsgdGhlIG5vdGlmaWNhdGlvbiB1cCBiYXNlZCBvbiBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHRyYW5zZm9ybSB0aGUKCiBub3RpZmljYXRpb24gc2VuZGluZyBpbnRvIGEgbGFyZ2VyIGxvb3AgZm9yIGxhdGVyIG11bHRpLW5vdGlmcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBORVdTOiBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGZlYXR1cmUgbWFya2luZy9zZWxlY3Rpb24KICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogbWVudGlvbiB0aGUgbmV3IGRlbGl2ZXJ5IGJ5IG5vdGlmaWNhdGlvbnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogZG9jdW1lbnQgdGhlIG1pbmltYWxpc3Qgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogZG9jdW1lbnQgdGhlIG5ldyBkZWxpdmVyQnlOb3RpZnkgY29uZmlnCgogdG9rZW5zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogYWxsb3cgcnVuIHRpbWUKCiBtb2RpZmljYXRpb25zIG9mIHRoZSBPSURzIHRvIHVzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogYWRkIGNvbmZpZyBmbGFncyB0byBub3QKCiBpbmNsdWRlIHRoZSBwZXJpb2QgY29uZmlnIGFuZCBtc2cgY291bnQgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogaW5jbHVkZSB0aGUgcGVyaW9kaWMKCiBjb3VudCwgdGhlIG1lc3NhZ2UgbnVtYmVyIGFuZCB0aGUgbWF4IG1lc3NhZ2UgbnVtYmVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVsZXRlZCBkZWJ1Z2dpbmcKCiBjb21tZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OiBNb3ZlIHRoZSBub3RpZmljYXRpb24KCiBkZWZpbml0aW9uIHRvIHdpdGhpbiB0aGUgc3ViLW1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGRlbGV0ZSBhbiB1bnVzZWQKCiB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGxvYWQgdGhlIE1JQiBpbnRvIHRoZQoKIGRlZmF1bHQgc2V0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDogQSBuZXcgbWliIHRvIGhvbGQgdGhlCgogcGVyaW9kaWMgbm90aWZ5IG9iamVjdHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBmaWxsIG91dCB0aGUgY29uZmlnIGZyZWUKCiByb3V0aW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcHJvcGVybHkgbW9uaXRvciB0aGUKCiB3aG9sZSBjb250YWluZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IHBhcnNlIHRoZSBjb25mIGZpbGVzIGFuZAoKIGNyZWF0ZSBhbmQgaW5zZXJ0IG9iamVjdHMgaW50byB0aGUgY29udGFpbmVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVmaW5lZCBhIGNvbnRhaW5lciB0bwoKIHN0b3JlIGEgbGlzdCBvZiBkZWxpdmVyIG9iamVjdHMgaW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBhZGRlZCBhIG5leHRfcnVuCgogdGltZXN0YW1wIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogYWN0dWFsbHkgc2VuZCBhCgogbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlc3VsdHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBtYWtlIHRoZSB3YWxrIG9uIHRoZQoKIHRlc3Qgb2JqZWN0IGZ1bmN0aW9uLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBjcmVhdGUgYSBtYXggcGFja2V0IHNpemUKCiBjb25maWcgdG9rZW4gYW5kIHBhcnNlIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBtaW5pbWFsIHN0YXJ0aW5nIHRlc3QKCiBvYmplY3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGFkZGVkIGEgZnVuY3Rpb24gdG8KCiBjYWxjdWxhdGUgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgcnVuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcmVtb3ZlIGxlZnQgaW4gdGVtcGxhdGUKCiBsaW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiB1c2UgYW4gYWxhcm0gY2FsbGJhY2sKCiBwcm90b3R5cGUgZm9yIGV4ZWN1dGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGJlZ2lubmluZyB0ZW1wbGF0ZSBjb2RlCgogZm9yIGRlbGl2ZXJ5IG9mIGRhdGEgYnkgbm90aWZpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuOiBBZGRlZCBWaXN1YWwgU3R1ZGlvCgogMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbiBmaWxlIGZvciBidWlsZGluZyB0aGUgTmV0LVNOTVAgbGlicmFyeSBhcwogYSBzdGF0aWMgbGlicmFyeS4gQm90aCB0aGUgV2luMzIgYW5kIHRoZSB4NjQgY29uZmlndXJhdGlvbnMgYXJlCiBpbmNsdWRlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOiBNb3JlIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0CiAgICAgIGZpbGUKCiBjbGVhbnVwLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOiBDbGVhbmVkIHVwIFdpbjMyIFZTMjAwNSBwcm9qZWN0CgogZmlsZXMgLSByZW1vdmVkIHN1cGVyZmx1b3VzIGxpYnJhcnkgcmVmZXJlbmNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46IEFkZGVkIHg2NAoKIGNvbmZpZ3VyYXRpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjogQWRkZWQKCiB3aW4zMmRsbC1yZWxhdGVkIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbiBmaWxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDogV2luMzIgRExMIGJ1aWxkIGZpeGVzLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE3ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZQoKIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTcgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBkOgogICAgICBQQVRDSEVTOgoKIDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE3ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wZDoKICAgICAgUEFUQ0hFUzoKCiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKCiBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFwcHMvc25tcHRyYXBkX2RzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBDSEFOR0VTOgoKIExpbnV4OiBQQVRDSEVTOiAzMjA1ODExOiBPcHRpb24gdG8gc2tpcCBmZC9sb29wL3JhbSBkZXZpY2VzIGluCiBkaXNrSU9UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYXBwcy9zbm1wdHJhcGRfZHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWY6IENIQU5HRVM6CgogTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtIGRldmljZXMgaW4KIGRpc2tJT1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6CgogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgoKIEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NToKCiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6CgogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2YKCiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAoKIGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCgogY29sdW1ucyBpbiBidWxrIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOiBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuCgogJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCgogKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCgogKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCgogKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcC10Yy5jOiBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wLXRjLmM6IEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIGNvbmZpZ3VyZSwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IEJpbGwgRmVubmVycyBwYXRjaCB0byBtYWtlCgogRElTTUFOIFBJTkcgYW5kIFRSQUNFUk9VVEUgTUlCUyBjb21waWxlIHVuZGVyIExpbnV4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6IFNvbGFyaXMgc3VwcG9ydCBmb3IKCiBTQ1RQLU1JQiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIuYzogU29sYXJpcyBzdXBwb3J0IGZvcgoKIFNDVFAtTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5jOiBTb2xhcmlzIHN1cHBvcnQgZm9yCgogU0NUUC1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZAoKIFNZU1YgKHN1Y2ggaXMgTGludXgpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kCgogU1lTViAoc3VjaCBpcyBMaW51eCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQKCiBTWVNWIChzdWNoIGlzIExpbnV4KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKCiBvdmVyaGF1bCBvZiBkZWJ1ZyAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eSAgICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4gICAtIHByZXZpb3VzIGxldmVsIG9mIGRldGFpbCBhdmFpbGFibGUgYnkgYWRkaW5nIDk6ZHRsc2R1cCB0b2tlbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6Cgogb3ZlcmhhdWwgb2YgZGVidWcgICAtIGRyYXN0aWMgcmVkdWN0aW9uIGluIG51bWJlciBvZiBtZXNzYWdlcyBhbmQgbXNnIGNvbXBsZXhpdHkgICAgIGZvciBiYXNpYyBkdGxzdWRwIHRva2VuICAgLSBwcmV2aW91cyBsZXZlbCBvZiBkZXRhaWwgYXZhaWxhYmxlIGJ5IGFkZGluZyA5OmR0bHNkdXAgdG9rZW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6CgogY2xlYW4gdXAgY2xvc2U7IGNhdGNoICdjb25uZWN0Jy8nZGlzY29ubmVjdCcgICBjb25uZWN0ID0gd2UgZ2V0IHN1Y2Nlc3NmdWxseSBkZWNvZGVkIHNubXAgZGF0YSAgIGRpc2Nvbm5lY3QgPSAwIGJ5dGUgcmVhZCwgc3NoIHNodXRkb3duIGZsYWcgc2V0ICAgYWRkIGJpb19jYWNoZSBmbGFncyBmb3IgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZCAgIGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZyAgIGNsb3NlIGhhbmRsaW5nOiAgIC0gIG9ubHkgc2VuZCBxdWV1ZWQgZGF0YSBpZiB3ZSBnb3QgdG8gY29ubmVjdGVkIHN0YXRlICAgLSAgc2VyaW91c2x5IHJlZHVjZSB0aW1lb3V0IHRvIHdhaXQgZm9yIGp1bmsgcmVhZC4gaSB0aGluayAgICAgIHdlIHNob3VsZG4ndCBldmVuIGJvdGhlciAgIC0gcmV0dXJuIGVhcmx5IGlmIGNhY2hlcCBpcyBOVUxMLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRlc3QgaXQgICAgIHJlcGVhdGVkbHkgICAtIHVzZSBjb3JyZWN0IG5mZHMgdmFsdWUgaW4gc2VsZWN0IGNhbGwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOgoKIGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEgICBkaXNjb25uZWN0ID0gMCBieXRlIHJlYWQsIHNzaCBzaHV0ZG93biBmbGFnIHNldCAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcgICBjbG9zZSBoYW5kbGluZzogICAtICBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZSAgIC0gIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsgICAgICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIgICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0ICAgICByZXBlYXRlZGx5ICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTMxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBtYWtlIHRydW5rIGFuZAoKIHY1LTYtcGF0Y2hlcyBjbG9zZWx5IGFsaWduZWQgICBtb3N0bHkgY2hhbmdlcyBpbiBkZWJ1ZywgY29va2llIHRyYWNraW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogbWFrZSB0cnVuayBhbmQKCiB2NS02LXBhdGNoZXMgY2xvc2VseSBhbGlnbmVkICAgbW9zdGx5IGNoYW5nZXMgaW4gZGVidWcsIGNvb2tpZSB0cmFja2luZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogYWRkIGNvb2tpZSBoYW5kbGluZzsKCiByZW1vdmUgaWZkZWYnZCBjb2RlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogU2ltcGxpZnkgYXJyYXkgcmVzaXppbmcgc29tZXdoYXQKCiBmdXJ0aGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBEbyBub3QgYXNzaWduIG5ld19kYXRhIGlmIHRoZQoKIHZhbHVlIHdvbid0IGJlIHVzZWQuICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2xlYXIgYQoKIGNodW5rIG9mIG1lbW9yeSBpZiB0aGUgbmV4dCBhY3Rpb24gb24gaXQgaXMgdG8gZmlsbCBpdCBzbyB1c2UgbWFsbG9jCiBpbnN0ZWFkIG9mIGNhbGxvYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDb250YWluZXJCaW5hcnlBcnJheSByZWFsbHkKCiBjYW4ndCBob2xkIGFueXRobmcgYnV0IHBvaW50ZXJzIGFuZCB0aGF0IG1lYW5zIHRoZSBkYXRhX3NpemUgZmllbGQKIGlzIHVubmVjZXNzYXJ5IHNvIEkgcmVtb3ZlZCBpdC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLCAKICAgICAgc25tcGxpYi9zbm1wdjMuYzogQWRkIG1pc3NpbmcgaW5jbHVkZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IFVzZSB0aGUgcmlnaHQgZmVhdHVyZQoKIG1hY3JvIGluIG9yZGVyIHRvIG1ha2UgYnVpbGRzIHdpdGggLS1lbmFibGUtaXB2NgogLS13aXRoLW91dC10cmFuc3BvcnRzPVVEUElQdjYgc3VjY2VlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBSZW1vdmUgZHVwbGljYXRlIGNvcGllcyBvZgoKIGZ1bmN0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OiB0d2VhayBkZWJ1ZyBtZXNzYWdlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogdXBkYXRlCgogY2VydCB0b2tlbiBoYW5kbGluZyAgLSByZW1vdmUgZGVmWDUwOSBjZXJ0IHRva2VucyAoc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGJlZm9yZSA1LjYpICAtIHdhcm5pbmdzIGZvciBvdXIvdGhlaXIgdG9rZW5zLCByZWNvbW1lbmQgdXNpbmcgbG9jYWwvcGVlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogbWVyZ2UgbmV0c25tcF9kdGxzdWRwNgogICAgICBpbnRvCgogbmV0c25tcF9kdGxzdWRwICAgIHVzZSBhZGRyIHNpemUgdG8gdGVsbCB0aGVtIGFwYXJ0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzogbG9nIChvbmNlKSB3YXJuaW5nIHdoZW4gZGVwcmVjYXRlZAoKIGZfY3JlYXRlX2Zyb21fdHN0cmluZyB0cmFuc3BvcnQgZnVuY3Rpb24gdXNlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jOiByZWR1Y2UgY2FzdGluZzsgbWFrZSBzdXJlIHRvCgogZnJlZSB0aGUgcmlnaHQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogcmVkdWNlIGNhc3RpbmcgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFJlcGxhY2UgYSB2YXJpYWJsZSB3aXRoIGEKCiBjb25zdGFudC4gTWFrZSBvbmUgbW9yZSBvaWQgY29uc3QuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbgoKIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjogRm9ybWF0dGluZyBib3RjaCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjogRm9ybWF0dGluZyBib3RjaCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL01ha2VmaWxlLmluOiBJbnN0YWxsIHJlcXVpcmVkIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvTWFrZWZpbGUuaW46IEluc3RhbGwgcmVxdWlyZWQgbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL3JmY2xpc3Q6IE5ldyBSRkMgbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9yZmNsaXN0OiBOZXcgUkZDIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCAKICAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgVmVyc2lvbgoKIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU3BlbGxpbmcgZml4OiByZWdpbmVyYXRlZCAtPiByZWdlbmVyYXRlZC4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU3BlbGxpbmcgZml4OiByZWdpbmVyYXRlZCAtPiByZWdlbmVyYXRlZC4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBTaW1wbGlmaWVkIHIxOTU5NCAobGVhay1hdC1leGl0IGZpeCkuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMKCiBpbnRyb2R1Y2VkIGluIHIyMDExMy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcwoKIGludHJvZHVjZWQgaW4gcjIwMTEzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCAKICAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgIFZlcnNpb24KCiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBGaXggbWFpbiBhZ2VudCBzZWxlY3QgY2FsbCB0byB1c2UgdGhlIHJlbmFtZWQgQVBJCgogcm91dGluZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSQoKIHJvdXRpbmUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50byBsaW5lIHdpdGggdGhlCiByZXN0IG9mIHRoZSBBUEkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8gbGluZSB3aXRoIHRoZQogcmVzdCBvZiB0aGUgQVBJLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvIGxpbmUgd2l0aCB0aGUKIHJlc3Qgb2YgdGhlIEFQSS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpIChwbHVzIHR3ZWFrcyB0byBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CgogaW5zdGVhZCBvZiBjYWxsb2MgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IHJlYWxsb2MraW5pdAoKIGluc3RlYWQgb2YgY2FsbG9jICBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQKCiBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oOgoKIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20KIFN0ZXBoZW4gSGVtbWluZ2VyICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOyBzdWJqZWN0ICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlCgogdGFibGVzIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yayBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUKCiB0YWJsZXMgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdCAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZQoKIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yIGxvY2FsIGNlcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZQoKIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yIGxvY2FsIGNlcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IE1pbkdXOiBkc2tUYWJsZTogUmVwb3J0IHplcm8gZm9yCgogdW5pbXBsZW1lbnRlZCBmaWVsZHMgaW5zdGVhZCBvZiByYW5kb20gZGF0YS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IKCiB1bmltcGxlbWVudGVkIGZpZWxkcyBpbnN0ZWFkIG9mIHJhbmRvbSBkYXRhLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDExNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6IENIQU5HRVM6IHNubXBkOiBCdWlsZHMKCiB3aXRoIG1vc3QgcmVjZW50IE1pbkdXIChoYXZpbmcgI2RlZmluZSBsb2NhbHRpbWVfcikuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6IENIQU5HRVM6IHNubXBkOiBCdWlsZHMKCiB3aXRoIG1vc3QgcmVjZW50IE1pbkdXIChoYXZpbmcgI2RlZmluZSBsb2NhbHRpbWVfcikuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBDSEFOR0VTOiBzbm1wbGliOgoKIHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYzogQ0hBTkdFUzogc25tcGxpYjoKCiByZWZpbmUgY2VydCBkZWJ1Z2dpbmc7IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzIwNTc2NTogaGFuZGxlIHJlY29uZmlnCgogZm9yIGNlcnRTZWNOYW1lIHRva2VuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMjA1NzY1OiBoYW5kbGUgcmVjb25maWcKCiBmb3IgY2VydFNlY05hbWUgdG9rZW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+CgogbWVzc2FnZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+CgogbWVzc2FnZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vcgoKIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vcgoKIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluCgogYWdlbnQgcHJvY2Vzc2luZyBsb29wIC0gd2hlbiB1c2luZyBtb3JlIHRoYW4gRkRfU0VUU0laRSBmaWxlCiBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzIwMzgwNjogQXZvaWQgdGhhdCB0aGUgbWFpbgoKIGFnZW50IHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZQogZGVzY3JpcHRvcnMgLSBjYW4gY2F1c2UgbWVtb3J5IGNvcnJ1cHRpb24gYnkgaW52b2tpbmcgc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYzogCgogRml4ZWQgdHdvIGNvbXBpbGVyIHdhcm5pbmdzIChiYWNrcG9ydGVkIHIyMDA5OCBmcm9tIHRoZSB0cnVuaykuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA5bGFyZ2VfZmRfc2V0X2NsaWIuYzogQWRkZWQgYQoKIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX2xhcmdlX2ZkX3NldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOWxhcmdlX2ZkX3NldF9jbGliLmM6IEFkZGVkIGEKCiBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZQoKIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZQoKIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CgogaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogbWFrZQoKIHZhcmlhYmxlIG5hbWVzIG1hdGNoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmM6IAoKIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IGZpeGVkIGluc3RhbGxhdGlvbgoKIHZhcmlhYmxlcyBmb3IgdGhlIG9wdGlvbmFsIFNFVCBwcm9ncmFtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IGNobW9kIGEreCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogcHJpbnQgYW4gZXJyb3IgaWYgdGhlIGVuZCBvZgoKIGEgZmlsZSB3YXMgcmVhY2hlZCBhbmQgd2UncmUgbm90IGJhY2sgaW50byB0aGUgc3RhdGUgd2UgY2FuIHdyaXRlOwogb3RoZXJ3aXNlIGEgY2xvc2luZyAjaWZkZWYgaXMgbWlzc2luZy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IGZpeCBlbmRpZiBjb21tZW50IHRvIG1hdGNoCgogdGhlIG9wZW5pbmcgaWZkZWYgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogcmVzZXQgdGhlIGNhbndyaXRlIGZsYWcgZm9yCgogZXZlcnkgZmlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IHRlbXBvcmFyaWx5IGxlYXZlIGluCgogaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6IGNoYW5nZSB0aGUgdW5pcXVlIGZpbGUgY2hlY2sgdG8gb25lIHRoYXQKCiBpcyBub3QgaW4gdGhlIG1pYmdyb3VwIGRpcmVjdG9yeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seS9UMDE0MXNubXB2MmNzZXRmYWlsX3NpbXBsZTogYSB0ZXN0IGZvcgoKIGVuc3VyaW5nIHRoZSBhZ2VudCByZWplY3RzIFNFVCByZXF1ZXN0cyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogYWRkIGJhY2sgaW4gdGhlCgogc3RvcGFnZW50IGNvbW1hbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAxcGR1X3R5cGVfY2xpYi5jLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwM3BkdV9wYXJzZV9jbGliLmM6IHVuaXQgdGVzdHMKICAgICAgd3JpdGVuCgogZm9yIHRoZSByZWFkLW9ubHkgc3VwcG9ydCBjb252ZXJ0ZWQgdG8gd29yayB3aXRoIG9yIHdpdGhvdXQKIHJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogZG9uJ3QgcnVuIHRoZQoKIHNldCB0ZXN0IGlmIG5vX3dyaXRlX3N1cHBvcnQgaXMgdHVybmVkIG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZTogc2tpcCBpZgoKIG5vX3dyaXRlX3N1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IEEgbmV3IHRlc3QgdG8KCiBjaGVjayB3aGV0aGVyIFNOTVB2MmMgU0VUcyB0byBzeXNDb250YWN0IHdvcmsgYXMgZXhwZWN0ZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnOiBhbGxvdyBmb3IgdjJjIFNFVCBzdXBwb3J0CgogdGVzdGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOiBBbGxvdyBmb3Igc2luZ2xlIHF1b3RlcyBmb3IgdmFjbQoKIGNvbnRleHQgbmFtZSBxdW90aW5nIHRvbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogZml4IHRoZSBjb25maWd1cmUgdGVzdHMgdG8gaW5jbHVkZSB0aGUgd29yZCB0ZXN0IGluIHRoZQoKIHRlc3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IGZpeCB0aGUgY29uZmlndXJlIHRlc3RzIHRvIGluY2x1ZGUKCiB0aGUgd29yZCB0ZXN0IGluIHRoZSB0ZXN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogQWRkZWQgYW4gYW5ub3lpbmdseSBsb25nCgogbGlzdCBvZiBleGNlcHRpb25zIHRoYXQgbmVlZHMgdG8gYmUgYXV0b21hdGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogQSBxdWljayBwZXJsIHNjcmlwdCB0bwoKIHJlbW92ZSB1bm5lZWRlZCBjb2RlIG1vZHVsZXMgZnJvbSB0aGUgbW9kdWxlcyBkaXJlY3RvcnkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzogbW9yZQoKIGltcHJvdmVtZW50cyAocmVtb3ZlbWVudHMpIGZvciBmZWF0dXJpemF0aW9uIGFuZCByZWFkLW9ubHkgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoKCiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHNvcnQgb3B0aW1pemF0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoKCiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHNvcnQgb3B0aW1pemF0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBUYWJzIHRvIHNwYWNlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBUYWJzIHRvIHNwYWNlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDYgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOiBDb25maWd1cmUgY2hlY2sgZm9yIGdldGhvc3RuYW1lMgoKIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kIFdpbmRvd3M/KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDYgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOiBDb25maWd1cmUgY2hlY2sgZm9yIGdldGhvc3RuYW1lMgoKIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kIFdpbmRvd3M/KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6IEFkZCBkcm9wcGVkIHx8J3MgZnJvbSByMjAwNzIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6IENsZWFuIHVwLCBhbmQKCiBjb3NvbGlkYXRlIHJlc3VsdCB0YWJsZSByb3cgY3JlYXRpb24gaW50byBhIG5ldyBmdW5jdGlvbi4gIFNhdmVzIDIwMAogbGluZXMgb2YgY29kZSwgd2l0aCAoaG9wZWZ1bGx5KSBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzogQ2xlYW4gdXAsIGFuZAoKIGNvc29saWRhdGUgcmVzdWx0IHRhYmxlIHJvdyBjcmVhdGlvbiBpbnRvIGEgbmV3IGZ1bmN0aW9uLiAgU2F2ZXMgMjAwCiBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRlc3QuYywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBkb24ndCBidWlsZCBTRVQgcmVsYXRlZCBhcHBzIHdpdGgKCiAtLWVuYWJsZS1yZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6IGZpeAoKIGlzc3VlcyB3aXRoIGNvbWJpbmluZyAtLWVuYWJsZS1taW5pbWFsaXN0IGFuZCAtLWVuYWJsZS1yZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IGJldHRlciBvdXRwdXQgZm9yIGZpbmRpbmcKCiBvYmplY3Qgc3ltYm9scy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiBsYXN0IGNvbW1pdDogY2hhbmdlcyB0byBhbGxvdwoKIHBhcnNpbmcgb2YgZmVhdHVlcnMgZmlsZXMgdG8gZ2V0IGFsbCBtaW5pbWFsaXN0IHRhZ3Mgd2hpY2ggYXJlIHRoZW4KIHByb2Nlc3NlZCBmb3IgcmVtb3ZhbCB0aGlzIGNvbW1pdDogY2hhbmdlZCBjb21tZW50cy93aGl0ZSBzcGFjZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6IGFkZGVkIG5vX3dyaXRlIHN1cHBvcnQgdG8gZXh0ZW5kLmMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzogQWRkZWQgbWlzc2luZyAjZW5kaWYgY29tbWVudCBmb3IgcmVtb3ZlCgogaWZkZWYgY29kZSBzdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiBhZGRlZCBjaGFuZ2VzIHRvIGFsbG93IGNvZGUKCiByZW1vdmFsIGluLXBsYWNlIChpLmUuIGRvZXMgbm90IHJlcXVpcmUgY3JlYXRpbmcgYSBuZXcgZmlsZSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9pZ25vcmUucmVnZXhwOiBhZGRpbmcgYSBpZ25vcmUucmVnZXhwIGZpbGUgdGhhdAoKIGNhbiBiZSB1c2VkIHdpdGggcmVtb3ZlaWZkZWZjb2RlLnBsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBhZGQgYSBvdXRnb2luZyBsaW5rIHRvIHRoZQoKIHBhcmVudCBtYXJraW5nIHBhZ2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBBZGRlZCBhIHdpa2kgb3V0cHV0IG1vZGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBOb3RlIHRoYXQgdGhlIG9yZyBvdXRwdXQgaXMgdGhlCgogZGVmYXVsdCBpbiB0aGUgaGVscCBvdXRwdXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiByZWNsYXNzaWZpY2F0aW9uIG9mIHRoZSByZW1haW5pbmcgZmVhdHVyZXMgaW50byBhIGhpZXJhcmNoeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IGRvbid0IGRvdWJsZS1kZWNsYXJlIGNlcnRfdXRpbHMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiB0aGUKCiBpcGFkZHJlc3NfbGludXggd2FzIGluY29ycmVjdGx5IG1hcmtlZCBhcyBuZWVkaW5nIGNlcnRfZmluZ2VycHJpbnRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogcHV0IHRoZSBhZ2VudF9yZWdpc3RyeSBmZWF0dXJlIGluCgogbGlibmV0c25tcGFnZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjogQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQKCiBsaWJzbm1wLmRlZiAtIGFkZCBORVRTTk1QX0lNUE9SVCB0byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW5zdGVhZCB0bwogZXhwb3J0IGEgZnVuY3Rpb24gZnJvbSBuZXRzbm1wLmRsbC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOiBDSEFOR0VTOiBXaW4zMjogRGVwcmVjYXRlZAoKIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbnN0ZWFkIHRvCiBleHBvcnQgYSBmdW5jdGlvbiBmcm9tIG5ldHNubXAuZGxsLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOiBNb3ZlZCBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCiBzdWNoIHRoYXQgaXQgaXMgYWdhaW4gaW1tZWRpYXRlbHkgYWJvdmUgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpdAogYXBwbGllcyB0by4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOiBBZGRlZCBtaXNzaW5nCiAgICAgIE5FVFNOTVBfSU1QT1JUCgogZGVjbGFyYXRpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDogQWRkZWQgbWlzc2luZwogICAgICBORVRTTk1QX0lNUE9SVAoKIGRlY2xhcmF0aW9ucy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjogCgogUmVtb3ZlZCB0d28gb2Jzb2xldGUgV2luMzIgZmlsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjogCgogUmVtb3ZlZCB0d28gb2Jzb2xldGUgV2luMzIgZmlsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IFRyaXZpYWwgY29tbWVudCBmaXg6Cgogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucwogaW5zdGVhZCBvZiBJUHY0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IFRyaXZpYWwgY29tbWVudCBmaXg6Cgogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucwogaW5zdGVhZCBvZiBJUHY0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvY29uZmlnLmg6IFJlbW92ZWQgYW4gb2Jzb2xldGUgZmlsZS4gIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgd2luMzIvc25tcHNtX3NodXRkb3duLmgsIAogICAgICB3aW4zMi9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDogQnVpbGRzIGFnYWluIHdpdGggVmlzdWFsIFN0dWRpbwoKIGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlICJmZWF0dXJlIiBmZWF0dXJlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9zbm1wc21faW5pdC5oOiBSZW1vdmVkIGEgbWlzbGVhZGluZyBjb21tZW50LiAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBDb3JyZWN0IHRoZSBjaGVjayBvZgoKIHdldGhlciB1c20gc2VjdXJpdHkgaXMgZW5hYmxlZC4gIFJlZ2VuZXJhdGUgY29uZmlndXJlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUmVnZW5lcmF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jOiBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiBJZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tCgogc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6IFNwbGl0IHRoZSBjb250YWluZXJfY29tcGFyZV9mdW5jdGlvbnMgZmVhdHVyZQoKIGludG8gY29udGFpbmVyX2NvbXBhcmVfbWVtLCBjb250YWluZXJfY29tcGFyZV9sb25nLAogY29udGFpbmVyX2NvbXBhcmVfdWxvbmcsIGNvbnRhaW5lcl9jb21wYXJlX2ludDMyIGFuZAogY29udGFpbmVyX2NvbXBhcmVfdWludDMyIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvbXBhcmUKIGZ1bmN0aW9ucyBmdXJ0aGVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXIuYzogQ2hhbmdlIHRoZSBzcGVsbGluZyBvZiB0aGUKCiBjb250YWluZXJfY29tcGFyZV9jc3RyaW5nIGZlYXR1cmUgdG8gY29udGFpbmVyX25jb21wYXJlX2NzdHJpbmcgYXMKIHRoYXQgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaXMgZ3VhcmRlZCBieSB0aGF0IGF0dHJpYnV0ZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOiBBZGQgdGhlIG1pc3NpbmcgcmVwbGFjZW1lbnQKCiBtYWNybyBmb3Igc25tcF9pbml0X3N0YXRpc3RpY3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6IHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieQoKIHRha2VzIHR3byBhcmd1bWVudHMgc28gbGV0IHRoZSByZXBsYWNlbWVudCBtYWNybyB0YWtlIHR3byBhcmd1bWVudHMKIGFzIHdlbGwuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBGaXggdHlwbyBpbgoKIHIxOTk5MCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2s6IFJlbW92ZSBsaW5lcyBzdGFydGluZyB3aXRoICNkZWZpbmUKCiBpbiB0aGUgb3V0cHV0IG9mIHRoZSBwcmVwcm9jZXNzb3IgV2hlbiBnY2MgLUUgaXMgY2FsbGVkIHdpdGggLWdnZGIzCiAob3IgLWREKSB0aGVuIGFsbCB0aGUgbWFjcm8gZGVmaW5pdGlvbnMgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZQogcHJlcHJvY2Vzc29yIGFuZCB0aGF0IG1lc3NlcyB1cCBvdXIgcHJvY2Vzc2luZy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnJ1bGVzOiBQdXQgdGhlIGdlbmVyYXRlZCBmaWxlIGluIHRoZSBidWlsZCB0cmVlLCBub3QgdGhlCgogc291cmNlIHRyZWUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGM6IG1vdmVkIGEgYnVuY2ggb2YgZmVhdHVyZXMgaW50byB0aGUgbGlibmV0c25tcG1pYnMgZmVhdHVyZSBzZXQuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAKICAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cywgc25tcGxpYi9taWIuYzoKCiBjbGFzc2lmaWVkIGxpYm5ldHNubXBhZ2VudCBmZWF0dXJlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgbGlicmFyaWVzCgogKHNubXBsaWIgZmlyc3QpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IG91dHB1dCBjbGVhbnVwIGFuZCBhZGRlZCBhZ2VudC1taWJzCgogYW5kIGxvZ2dpbmcgb3B0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBhZGQgYSBkZWZhdWx0IHNldCBvZiBhcmd1bWVudHMKCiBjYWxjdWxhdGUgcmVzdWx0aW5nIHNpemVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzogQWRkZWQgYSBtaXNzaW5nIDsgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHByZWZpeCB0aGUgb3V0cHV0IGZpbGVzIHdpdGggYSBudW1iZXIKCiB0byBpbmRpY2F0ZSBvcmRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBzYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBzeXN0ZW0KCiBleGVjdXRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGVuYWJsZSBidWlsZGluZyBvZiB0aGUgcmVzdWx0aW5nCgogY29tYmluYXRpb25zIEFkZCBhIC1uIGZsYWcgZm9yIGRyeS1ydW5zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBlbmFibGUgdGhlIC10IHRhZyBmb3IgbGltaXRpbmcgdHlwZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEFkZGVkIGFyZ3VtZW50IHBhcnNpbmcgYW5kIGFyZ3VtZW50cwoKIGZvciBzZWxlY3RpbmcgYW5kIGxpc3RpbmcgdHlwZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZ2VuZXJhdGUgY29uZmlndXJlIHNjcmlwdCBhcmd1bWVudHMKCiBmcm9tIHNwZWNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGFkZGVkIGEgYnVuY2ggb2YgbmV3IGZlYXR1cmUgb3B0aW9ucwoKIGFuZCBjbGVhbmVkIHVwIGEgYml0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGFkZGVkIGEgbmV3IChub3QgeWV0IHdvcmtpbmcpIHNjcmlwdAoKIHRvIHRlc3Qgc2l6aW5nIG9mIHZhcmlvdXMgYXJndW1lbnQgc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBTaW1wbGlmeSB0aGUgY29kZS4gVW5pZnkgc29tZQoKIGRlYnVnIGxvZ3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZWR1Y2UgdGhlIHNjb3BlIG9mIGEgZmV3CgogdmFyaWFibGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZW1vdmUgc29tZSB1bnVzZWQgaW5jbHVkZXMuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogTWFrZSBpdCBwb3NzaWJsZSB0bwoKIGluaXRpYWxpemUvdW5pbml0aWFsaXplIG1vZHVsZXMgd2l0aCA2NCBjaGFyYWN0ZXIgbmFtZXMgYW5kIG5vdAogc3VmZmVyIHdpbGQgd3JpdGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogQ29kZSByZXN0cnVjdHVyaW5nIC0gcHV0IHRoZQoKIG1hbmFnZWQgcm91dGluZXMgYmVmb3JlIHRoZSBtYW5hZ21lbnQgY29kZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6IAoKIENIQU5HRVM6IGxpYm5ldHNubXBtaWJzOiBNYWtlIGFsbCBmdW5jdGlvbnMgaW4gdGhlIGRsbW9kIG1vZHVsZSB0aGF0CiBkb24ndCBoYXZlIHRvIGJlIHB1YmxpYyBzdGF0aWMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogUmVuYW1lIGRlaW5pdF9kbG1vZCB0bwoKIHNodXRkb3duX2RsbW9kIGFzIHRoYXQgaXMgd2hhdCBpdCByZWFsbHkgaXMgYWJvdXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOiBhZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMKCiB0byBuZXQtc25tcC12YWNtIG1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogcHJvcGVybHkgaGFuZGxlIHR3aW4gY2hpbGRyZW47CgogYWxzbyBzb3J0IHRoZSBjaGlsZCBsaXN0IGFscGhhYmV0aWNhbGx5LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBJIHN1cHBvc2UgbG9nZ2luZyBzaG91bGQgcHJvYmFibHkgZGVmYXVsdAoKIHRvIGJlaW5nIGEgd2FudGVkIG9wdGlvbiA6LSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IG9yZy1saW5rIHRoZSBmaWxlcyBpbiB0aGUKCiBvdXRwdXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgCiAgICAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIHNubXBsaWIvTWFrZWZpbGUuaW46IG1ha2UgdGhlCgogZmVhdHVyZXMtY2hlY2sgc2NyaXB0IHRyYWNrIHRoZSBmdWxsIHNvdXJjZSBwYXRoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBjaGFuZ2UgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvCgogbWF0Y2ggdGhhdCBpdCdzIHByaW50aW5nIHRvIG9yZy1tb2RlIGF0IHRoZSBtb21lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90b29scy5jOiBsYXN0CiAgICAgIG9mCgogdGhlIGZlYXR1cmUgY2xhc3NpZmljYXRpb24gaW4gbGlibmV0c25tcCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmM6IG1ha2UgdGhlCgogdXNtX3N1cHBvcnQgdXRpbGl0aWVzIHNlbGYtZGVjbGFyZSB0aGVtc2VsdmVzIGFzIGNoaWxkcmVuIHRvIG1ha2UKIHN1cmUgdGhleSdyZSBwcm9wZXJseSBpbmNsdWRlZCBkdXJpbmcgZGVwZW5kZW5jeSBvcmRlcmluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc25tcHVzbS5jOiBzdXBlcnN0cnVjdHVyYWxpemF0aW9uaXppbmcKCiB0aGUgZmVhdHVyZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3N5c3RlbS5jLCAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdG9vbHMuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiBzaWduaWZpY2FudCBwYXJlbnQvY2hpbGQgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmM6IGNsYXNzaWZ5IGEgZmV3IGNvbXBvbmVudHMKCiBpbnRvIGEgdG9wLWxldmVsIGxpYm5ldHNubXAgY29tcG9uZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogc3RydWN0dXJpemUgdGhlIHVzbSBmZWF0dXJlcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOiBzdHJ1Y3R1cmUgdGhlIGNvbnRhaW5lciBmZWF0dXJlcyBpbnRvIGEKCiBoaWVyYXJjaHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBncm91cCB0aGUgbG9nZ2luZyBoYW5kbGVycyB1bmRlciBhIHBhcmVudAoKIGZlYXR1cmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBmaXggdGhlIGV4cGVjdCBhcmd1bWVudCBjb3VudAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGZpeCB0aGUgbmFtZSBvZiB0aGUgZXhwZWN0ZWQKCiBpbnB1dCBmaWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBhcmd1bWVudCBwYXJzaW5nIGFuZCB1c2FnZSgpCgogb3V0cHV0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgc25tcGxpYi9vaWRfc3Rhc2guYzogLQogICAgICBhZGRlZCB0d28gb2lkX3N0YXNoIGZ1bmN0aW9ucyBhcyBpbmRpdmlkdWFsIGZlYXR1cmVzIC0gY2xlYW5lZCB1cAogICAgICBzb21lIHdhcm5pbmdzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBjb2RlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoICBpbnRvIGxpbmUgd2l0aAogICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCiAgICAgIGJyYW5jaGVzLCByYXRoZXIgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWw6IEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCiAgICAgIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCoKICAgICAgYnJhbmNoZXMsIHJhdGhlciAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaCAgaW50byBsaW5lIHdpdGgKICAgICAgdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKgogICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoICBpbnRvIGxpbmUgd2l0aAogICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCiAgICAgIGJyYW5jaGVzLCByYXRoZXIgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24KCiB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCiAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CgogYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmg6IGFkZGluZyBpZmRlZiBjb2RlCgogZm9yIG1pbmltYWxpc3Qgc3VwcG9ydCBvZiBkaWZmbWFuIG1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmg6CgogQWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzIHRvIGhvc3QgcmVzb3VyY2UgbWliIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jOiBtYXJrIHRoZQoKIGRhdGFfbGlzdCBmdW5jdGlvbiB0aGF0J3Mgb25seSB1c2VkIGluIHN0YWNoX2NhY2hpbmcgYXMgYSBmZWF0dXJlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOiB3aG9vcHMuICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOiBtb3JlIG1pc3Npbmcgc3Rhc2ggcmVmZXJlbmNlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6IGlmZGVmZWQvZmVhdHVyZWQgb3V0IGEgbWlzc2luZwoKIHN0YXNoX2NhY2hlIHNlY3Rpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6IG1ha2UgdGhlIHByZWZpeF9pbmZvIG1vcmUKCiBoaWVyYXJjaGljYWwgYW5kIHN1Yi1mZWF0dXJlIHRoZSB1bnVzZWQgb25lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBkbyBpbmNsdWRlIHRoZSBwZXJsL3B5dGhvbiBjb2RlCgogd2hlbiBzZWFyY2hpbmcgZm9yIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiBtYWtlIHRoZSBzZW1pLXVzZWQgdGFibGVfdGRhdGEKCiBmdW5jdGlvbnMgY2hpbGRyZW4gb2YgdGFibGVfdGRhdGFfYWxsIGluc3RlYWQgb2YganVzdCB0YWJsZV90ZGF0YSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IENvcnJlY3QgdHlwbyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDb3JyZWN0IHR5cG8gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6IHByb3BlciBpbmNsdWRlIG9mIHByb3RvdHlwZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogY29tcGF0IHNvbWUgZmVhdHVyZSBoZWFkZXIKCiBjaGlja2VuIGFuZCBlZ2cgcHJvYmxlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzogSW5jbHVkZSByZXF1aXJlZCBwcm90b3R5cGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IEVuYWJsZSAocHJvYmFibHkgZm9yZ290dGVuKQoKIGlwQWRkcmVzc1ByZWZpeFRhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikKCiBpcEFkZHJlc3NQcmVmaXhUYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3MsCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmUsIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGUsIAogICAgICBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogYWRkZWQgb3RoZXIgbWlzc2luZyAnbmV3JwogICAgICBmaWxlcwoKIG5vdCBpbmNsdWRlZCBpbiB0aGUgbWluaW1hbGlzdCBwYXRjaCBmaWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzogTG9hZGluZwoKIElQdjYgZGF0YSBpcyBhIG5vLW5vIHdoZW4gSVB2NiBub3QgZW5hYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jOiBMb2FkaW5nCgogSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6IEZyZWVCU0QgOCBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg6IGFkZGVkIG1pc3NpbmcKCiBuZXQtc25tcC1mZWF0dXJlcy5oIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBhZ2VudC9NYWtlZmlsZS5pbiwgCiAgICAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjCiAgICAgICBlLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCiAgICAgICBhY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jCiAgICAgICAsIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9pbnRlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KICAgICAgIFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuCiAgICAgICBjLCBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsICBhZ2VudC9zbm1wZC5jLAogICAgICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2FnZW50eHRyYXAuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmFjLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHBlcmwvT0lEL09JRC54cywgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL01ha2VmaWxlLmluLCAKICAgICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsCiAgICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsCiAgICAgIHNubXBsaWIvaW50NjQuYywgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLAogICAgICBzbm1wbGliL21pYi5jLCAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcGtzbS5jLCAgc25tcGxpYi9zbm1wdHNtLmMsCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgc25tcGxpYi9zeXN0ZW0uYywKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdG9vbHMuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGU6IE5FV1M6CgogcGFja2FnaW5nOiBFbmFibGUgbWljcm8tYW5kLW1hY3JvLWZlYXR1cmUgbWFuYWdlbWVudCB3aXRoaW4KIE5ldC1TTk1QOyB0aGlzIGFkZHMgYSBudW1iZXIgb2YgbmV3IGZsYWdzIHRvIGNvbmZpZ3VyZQogKC0tZW5hYmxlLW1pbmltYWxpc3QgYW5kIC0tZW5hYmxlLXJlYWQtb25seSkuICBUaGVzZSBjaGFuZ2VzIGFyZQogZGVzaWduZWQgdG8gcmVtb3ZlIG11Y2ggb2YgdGhlIGlubGluZSBjb2RlIHRoYXQgaXNuJ3QgYWx3YXlzCiBuZWNlc3Nhcnkgb3IgZGVzaXJlZC4gIFNjcmlwdHMgZXhpc3QgKGFuZCB3aWxsIGJlIGltcHJvdmVkKSB0byBzdGlwCiBvdXQgdW51c2VkIGNvbXBvbmVudHMgZnJvbSB0aGUgY29kZSBlbnRpcmVseSB0byBlbmFibGUgYSBzaG9ydGVyCiByZXZpZXcgcHJvY2VzcyBmb3IgdXBncmFkaW5nIHRvIG5ldyByZWxlYXNlcy4gIFRoaXMgd29yayB3YXMgZG9uZSBieQogV2VzIEhhcmRha2VyIGFuZCBNaWNoYWVsIEJhZXIgZnJvbSBTUEFSVEEsIEluYy4gYnV0IGlzIGJlaW5nIGNoZWNrZWQKIGluIGFzIGEgbGFyZ2UgcGF0Y2ggc2luY2UgY29udmVydGluZyB0aGUgbWljcm8gcGF0Y2hlcyBmcm9tIGdpdCB0bwogc3ZuIHR1cmVuZCBvdXQgdG8gYmUgaW1wb3NzaWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIEZBUTogdXNlIHRoZSB3aWtpIFVSTCBpbnN0ZWFkIG9mIHRoZSB0dXRvcmlhbC01IFVSTCBmb3IgdGhlCgogc25tcHRyYXAgdHV0b3JpYWwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFJldmVydCBhIGJvZ3VzIGNoYW5nZSB0aGF0IGNyZXB0CgogaW50byB0aGUgY29kZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEFHRU5ULnR4dCwgQ0hBTkdFUywgQ09QWUlORywgQ2hhbmdlTG9nLCBDb2RpbmdTdHlsZSwgCiAgICAgIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuYW0sIE1ha2VmaWxlLmluLCAKICAgICAgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgTkVXUywgUE9SVElORywgUkVBRE1FLCAKICAgICAgUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dCwgUkVBRE1FLmFnZW50LW1pYnMsIFJFQURNRS5hZ2VudHgsIAogICAgICBSRUFETUUuYWl4LCBSRUFETUUuaHB1eDExLCBSRUFETUUuaXJpeCwgUkVBRE1FLmtyYjUsIFJFQURNRS5vc1gsIAogICAgICBSRUFETUUuc25tcHYzLCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnNxbCwgUkVBRE1FLnRocmVhZCwgCiAgICAgIFJFQURNRS50cnU2NCwgUkVBRE1FLndpbjMyLCBUT0RPLCBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCAKICAgICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvbmxpc3QuaCwgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAKICAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgCiAgICAgIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXgsIGFnZW50L21pYmdyb3VwL1Jtb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vUkVBRE1FLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWxfYXBpLmgsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuaCwgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfYWxhcm0uc2gsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfaGlzdC5zaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlU2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFNjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwX2VudW0uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL29sZC1ldmVudC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYwogICAgICAgZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjCiAgICAgICBlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQKICAgICAgIC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldAogICAgICAgLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0CiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQKICAgICAgIC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9lbnVtcy5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYwogICAgICAgZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYwogICAgICAgZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL01ha2VmaWxlLmRsbW9kLAogICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY29sdW1ucy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rZXJuZGF0YS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rZXJuZGF0YS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9tYWNoLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbnVsbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9udWxsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcHN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcHN0YXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tb3VudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2R5bml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2Rhcndpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9ubGlzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLCAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RlZnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb24KICAgICAgIHN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdAogICAgICAgYW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhXwogICAgICAgYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCiAgICAgICBhY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbgogICAgICAgc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAogICAgICAgZXJmYWNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfZ2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2dldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2VudQogICAgICAgbXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludAogICAgICAgZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfb2lkCiAgICAgICBzLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2dldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfb2lkcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFuCiAgICAgICB0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFuCiAgICAgICB0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VuCiAgICAgICB0LmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbgogICAgICAgdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX29pZHMuaCwgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY29sdW1ucy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsICBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICAgICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcwogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCiAgICAgICAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuaCwKICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMKICAgICAgICwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmgKICAgICAgICwgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCBhZ2VudC9taWJncm91cC9zbXV4LmgsCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0CiAgICAgICBlcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXQKICAgICAgIGVycy5oLAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2dldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2dldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX3NldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX3NldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kb3h5Z2VuLmNvbmYsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfb2lkcy5oLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL01ha2VmaWxlLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9wcml2YXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ublRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9jb25zdGEKICAgICAgIG50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKICAgICAgIGFjZS5oLCBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfY29uc3RhbnRzLgogICAgICAgaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBoLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VkcC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9wcml2YXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy4KICAgICAgIGgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfcGVybC5oLCAKICAgICAgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgCiAgICAgIGFnZW50L3NubXBkLmgsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmluLCAKICAgICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsLCAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9mZnMuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIAogICAgICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsIAogICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguaCwgCiAgICAgIGFwcHMvc25tcHRyYXBkX2RzLmgsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgYXBwcy9zbm1wdXNtLmMsIAogICAgICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zc2h0b3NubXAuYywgY29uZmlnLmd1ZXNzLCAKICAgICAgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHMsIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsIAogICAgICBkaXN0L2F1dG9jb25mLXZlcnNpb24sIGRpc3QvY2hhbmdlbG9nZml4LCBkaXN0L2NoZWNrLWFwaS1jaGFuZ2UsIAogICAgICBkaXN0L2N2c3Nob3csIGRpc3QvY3ZzdXAsIGRpc3QvZXh0cmFjdG5ld3MsIGRpc3QvZmluZC1yZXF1aXJlcywgCiAgICAgIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvREVWRU5WLCAKICAgICAgZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL1JFQURNRSwgCiAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9idWlsZHBhY2thZ2Utc29sYXJpcywgCiAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9lbGZkZXBlbmQuc2gsIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIGRpc3QvbnNiLWNvbmZpZywgZGlzdC9uc2ItZnVuY3Rpb25zLCBkaXN0L25zYi1uaWdodGx5LCAKICAgICAgZGlzdC9uc2ItcGFja2FnZSwgZGlzdC9uc2ItcGxhdGZvcm0sIGRpc3QvcGF0bWUsIAogICAgICBkaXN0L3NjaGVtYS1zbm1wdHJhcGQuc3FsLCBkaXN0L3NubXBkLWluaXQuZCwgCiAgICAgIGRpc3Qvc25tcHRyYXBkLWluaXQuZCwgZGlzdC9zdm51cCwgZG9jL3JmYy9hZ2VudHgvcmZjMjc0MS50eHQsIAogICAgICBkb2MvcmZjL21pc2MvcmZjMzUxMi50eHQsIGRvYy9yZmMvbWlzYy9yZmMzNTg0LnR4dCwgCiAgICAgIGRvYy9yZmMvc21pVjIvcmZjMjU3OC50eHQsIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NtaVYyL3JmYzI1NzkudHh0LCBkb2MvcmZjL3NtaVYyL3JmYzI1ODAudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjEvcmZjMTE1NS50eHQsIGRvYy9yZmMvc25tcFYxL3JmYzExNTcudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjEvcmZjMTIxMi50eHQsIGRvYy9yZmMvc25tcFYxL3JmYzEyMTMudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwMS50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDIudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwMy50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDQudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNS50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDYudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNy50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDgudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMjA4OS50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTAuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMC50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTEudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMi50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTMuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMy50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTQuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNC50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTUuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNS50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTYudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNy50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTguZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxOC50eHQsIGRvdGdkYmluaXQsIGRveHlnZW4uY29uZiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL25ldC1zbm1wLWRhdGEtYWNjZXNzLWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3Njb3Blem9uZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRSwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQWxpYXNEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDYuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q3LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0va2ZyZWVic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzJtc3ZjLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1LmgsCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4zLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi40LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi41LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSwgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oLCBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLCBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmgsIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIGluc3RhbGwtc2gsIGxvY2FsL0ZBUTJIVE1MLCAKICAgICAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL1JFQURNRS5taWIyYywgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbCwgCiAgICAgIGxvY2FsL2NvbnZlcnRjb2RlLCBsb2NhbC9maXhwcm9jLCBsb2NhbC9odG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLAogICAgICAgbG9jYWwvaHRtbC10ZXh0ZmlsZS1maXgucGwsIGxvY2FsL2lwZi1tb2QucGwsIGxvY2FsL21pYjJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LXNldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtY29udGV4dC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtY2hhci5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWxvbmcubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LW9pZC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWhlYWRlci10b3AubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmMtaW50ZXJuYWwtd2FybmluZy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZG94eWdlbi5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmMsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYywKICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmksIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmksCiAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zdG9yYWdlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhbGlkYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpLAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZCwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy12YXJiaW5kLXZhbGlkYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtU3RvcmFnZVR5cGUtZGVwZW5kZW5jaWVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaSwgbG9jYWwvbWliMmMtdXBkYXRlLAogICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZiwKICAgICAgbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jb2x1bW5fZGVmaW5lcy5jb25mLCBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmYsIGxvY2FsL21pYjJjLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mLCBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMubWZkLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZiwgbG9jYWwvbWliMmMub2xkLWFwaS5jb25mLCAKICAgICAgbG9jYWwvbWliMmMucGVybC5jb25mLCBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZiwgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCwgCiAgICAgIGxvY2FsL3Bhc3N0ZXN0LCBsb2NhbC9wYXNzdGVzdC5wbCwgbG9jYWwvc25tcC11Y2Quc2gsIAogICAgICBsb2NhbC9zbm1wY2hlY2suZGVmLCBsb2NhbC9zbm1wY29uZiwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHMsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2RlYnVnZ2luZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvbWlicywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0LCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9zbm1wY29uZi1jb25maWcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9hY2wsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9iYXNpY19zZXR1cCwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2V4dGVuZGluZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9vcGVyYXRpb24sIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW0sIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS90cmFwc2lua3MsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvYXV0aGVudGljYXRpb24sIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3J1bnRpbWUsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGUsIGxvY2FsL3NubXBkdW1wLnBsLCAKICAgICAgbG9jYWwvdGttaWIsIGxvY2FsL3RyYXB0b2VtYWlsLCBsdG1haW4uc2gsIAogICAgICBtNC9hY19hZGRfc2VhcmNoX3BhdGgubTQsIG00L2FjX21zZ19jYWNoZS5tNCwgCiAgICAgIG00L2FjX21zZ19tb2R1bGVfZGJnLm00LCBtNC9hY19wcm9tcHRfdXNlci5tNCwgbTQvbGlidG9vbC5tNCwgCiAgICAgIG00L2x0b3B0aW9ucy5tNCwgbTQvbHRzdWdhci5tNCwgbTQvbHR2ZXJzaW9uLm00LAogICAgICBtNC9sdH5vYnNvbGV0ZS5tNCwgIG00L25ldHNubXBfYXJnLm00LCBtNC9uZXRzbm1wX3NlYXJjaF9saWJzLm00LAogICAgICBtYWtlZGVwZW5kLmluLCAgbWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLAogICAgICBtYWtldGFyZ2V0LCAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLAogICAgICBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgbWFuL2NvbmZpZ19hcGkuMy5kZWYsCiAgICAgIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LCAgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsCiAgICAgIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCAgbWFuL2ZpeHByb2MuMS5kZWYsCiAgICAgIG1hbi9nZXRfbW9kdWxlX25vZGUuMywgbWFuL2luaXRfbWliLjMsICBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsCiAgICAgIG1hbi9tYWtlX2luZGV4LnBsLCBtYW4vbWFuX3NlY3Rpb25zLnR4dCwgIG1hbi9taWIyYy11cGRhdGUuMS5kZWYsCiAgICAgIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgIG1hbi9taWIyYy5leHRyYWN0LnBsLAogICAgICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwgCiAgICAgIG1hbi9uZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xLmRlZiwgCiAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCAKICAgICAgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBtYW4vcGR1X2FwaS4zLmRlZiwgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsCiAgICAgICBtYW4vcHJpbnRfbWliLjMsIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgCiAgICAgIG1hbi9wcmludF92YXJpYWJsZS4zLCBtYW4vcmVhZF9hbGxfbWlicy4zLCBtYW4vcmVhZF9taWIuMywgCiAgICAgIG1hbi9yZWFkX21vZHVsZS4zLCBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLCBtYW4vcmVhZF9vYmppZC4zLCAKICAgICAgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc2h1dGRvd25fbWliLjMsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIAogICAgICBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCAKICAgICAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9jb25maWcuNS5kZWYsCiAgICAgICBtYW4vc25tcF9lcnJvci4zLCBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIAogICAgICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCAKICAgICAgbWFuL3NubXBfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZiwgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsIAogICAgICBtYW4vc25tcF9zZXNzX2Vycm9yLjMsIG1hbi9zbm1wX3Nlc3NfaW5pdC4zLCBtYW4vc25tcF9zZXNzX29wZW4uMywKICAgICAgIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCAKICAgICAgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZXNzX3NlbmQuMywgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfc2Vzc2lvbi4zLCBtYW4vc25tcF9zZXNzX3RpbWVvdXQuMywgCiAgICAgIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIAogICAgICBtYW4vc25tcF90aW1lb3V0LjMsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLAogICAgICBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgICAgbWFuL3NubXBjb25mLjEuZGVmLCAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgICAgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLAogICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCAgbWFuL3NubXBnZXQuMS5kZWYsCiAgICAgIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBpbmZvcm0uMSwgIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwKICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCAgbWFuL3NubXB0YWJsZS4xLmRlZiwKICAgICAgbWFuL3NubXB0ZXN0LjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgIG1hbi9zbm1wdHJhcC4xLmRlZiwKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCAgbWFuL3NubXB1c20uMS5kZWYsCiAgICAgIG1hbi9zbm1wdmFjbS4xLmRlZiwgbWFuL3NubXB3YWxrLjEuZGVmLCAgbWFuL3RrbWliLjEuZGVmLAogICAgICBtYW4vdHJhcHRvZW1haWwuMS5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgCiAgICAgIG1hbi92YXJpYWJsZXMuNS5kZWYsIG1pYnMvQUdFTlRYLU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0LCBtaWJzL0RJU01BTi1FWFBSRVNTSU9OLU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1OU0xPT0tVUC1NSUIudHh0LCBtaWJzL0RJU01BTi1QSU5HLU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1TQ0hFRFVMRS1NSUIudHh0LCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwgCiAgICAgIG1pYnMvRElTTUFOLVRSQUNFUk9VVEUtTUlCLnR4dCwgbWlicy9FdGhlckxpa2UtTUlCLnR4dCwgCiAgICAgIG1pYnMvSENOVU0tVEMudHh0LCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIAogICAgICBtaWJzL0hPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwgCiAgICAgIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIAogICAgICBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dCwgbWlicy9JQU5BLVJUUFJPVE8tTUlCLnR4dCwgCiAgICAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsIAogICAgICBtaWJzL0lGLU1JQi50eHQsIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQsIAogICAgICBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwgbWlicy9JUC1NSUIudHh0LCAKICAgICAgbWlicy9JUFY2LUZMT1ctTEFCRUwtTUlCLnR4dCwgbWlicy9JUFY2LUlDTVAtTUlCLnR4dCwgCiAgICAgIG1pYnMvSVBWNi1NSUIudHh0LCBtaWJzL0lQVjYtVEMudHh0LCBtaWJzL0lQVjYtVENQLU1JQi50eHQsIAogICAgICBtaWJzL0lQVjYtVURQLU1JQi50eHQsIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LCAKICAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQsIAogICAgICBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtVEMudHh0LCBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0LCBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgCiAgICAgIG1pYnMvUkVBRE1FLm1pYnMsIG1pYnMvUkZDLTEyMTUudHh0LCBtaWJzL1JGQzExNTUtU01JLnR4dCwgCiAgICAgIG1pYnMvUkZDMTIxMy1NSUIudHh0LCBtaWJzL1JNT04tTUlCLnR4dCwgbWlicy9TQ1RQLU1JQi50eHQsIAogICAgICBtaWJzL1NNVVgtTUlCLnR4dCwgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0LCBtaWJzL1NOTVAtTVBELU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLVVTTS1BRVMtTUlCLnR4dCwgbWlicy9TTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsIAogICAgICBtaWJzL1NOTVB2Mi1NSUIudHh0LCBtaWJzL1NOTVB2Mi1TTUkudHh0LCBtaWJzL1NOTVB2Mi1UQy50eHQsIAogICAgICBtaWJzL1NOTVB2Mi1UTS50eHQsIG1pYnMvVENQLU1JQi50eHQsIAogICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvVFVOTkVMLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1ERU1PLU1JQi5pbmMsIG1pYnMvVUNELURFTU8tTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELURJU0tJTy1NSUIuaW5jLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELURMTU9ELU1JQi5pbmMsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIuaW5jLCBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtSVBGV0FDQy1NSUIuaW5jLCBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi1PTEQudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi5pbmMsIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQsIG1pYnMvaWFuYWxpc3QsIAogICAgICBtaWJzL21ha2VodG1sLnBsLCBtaWJzL21pYmZldGNoLCBtaWJzL25vZGVtYXAsIG1pYnMvcmZjbGlzdCwgCiAgICAgIG1pYnMvcmZjbWlicy5kaWZmLCBtaWJzL3NtaXN0cmlwLCBta2luc3RhbGxkaXJzLCAKICAgICAgbmV0LXNubXAtY29uZmlnLmluLCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbiwgb3YvTWFrZWZpbGUuaW4sIAogICAgICBvdi9SRUFETUUsIG92L1VDRC1Db21wdXRlciwgb3YvVUNELWZpZWxkcywgb3YvYml0bWFwcy9VQ0QuMjAubSwgCiAgICAgIG92L2JpdG1hcHMvVUNELjIwLnAsIG92L2JpdG1hcHMvVUNELjI2Lm0sIG92L2JpdG1hcHMvVUNELjI2LnAsIAogICAgICBvdi9iaXRtYXBzL1VDRC4zMi5tLCBvdi9iaXRtYXBzL1VDRC4zMi5wLCBvdi9iaXRtYXBzL1VDRC4zOC5tLCAKICAgICAgb3YvYml0bWFwcy9VQ0QuMzgucCwgb3YvYml0bWFwcy9VQ0QuNDQubSwgb3YvYml0bWFwcy9VQ0QuNDQucCwgCiAgICAgIG92L2JpdG1hcHMvVUNELjUwLm0sIG92L2JpdG1hcHMvVUNELjUwLnAsIG92L2JpdG1hcHMvVUNELmZpZWxkcywgCiAgICAgIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluLCBwZXJsL0FTTi9BU04ucG0sIAogICAgICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvQVNOL0NoYW5nZXMsIHBlcmwvQVNOL01BTklGRVNULCAKICAgICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvQVNOL3Rlc3QucGwsIHBlcmwvQW55RGF0YV9TTk1QL0NoYW5nZXMsCiAgICAgICBwZXJsL0FueURhdGFfU05NUC9EQkRfQW55RGF0YS5wYXRjaCwgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLAogICAgICAgcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTCwgcGVybC9BbnlEYXRhX1NOTVAvTUFOSUZFU1QsIAogICAgICBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FLCAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy9zY2xpLCAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4LCBwZXJsL0FueURhdGFfU05NUC9uZXRzaCwgCiAgICAgIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUubWFrZWZpbGVzLCBwZXJsL01ha2VmaWxlLnN1YnMucGwsIAogICAgICBwZXJsL09JRC9DaGFuZ2VzLCBwZXJsL09JRC9NQU5JRkVTVCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsIAogICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvT0lEL09JRC54cywgcGVybC9PSUQvUkVBRE1FLCAKICAgICAgcGVybC9PSUQvdGVzdC5wbCwgcGVybC9PSUQvdHlwZW1hcCwgcGVybC9TTk1QL0JVRywgCiAgICAgIHBlcmwvU05NUC9NQU5JRkVTVCwgcGVybC9TTk1QL01BTklGRVNULlNLSVAsCiAgICAgIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLAogICAgICBwZXJsL1NOTVAvU05NUC54cywgIHBlcmwvU05NUC9UT0RPLCBwZXJsL1NOTVAvZXhhbXBsZXMvYXN5bmMxLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMi5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL2lwZm9yd2FyZC5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL21pYnRyZWUucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvbWlid2Fsay5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvdGFibGV3YWxrLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvdGVzdGxlYWsucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsLCBwZXJsL1NOTVAvaGludHMvaXJpeC5wbCwgCiAgICAgIHBlcmwvU05NUC9oaW50cy9zb2xhcmlzLnBsLCBwZXJsL1NOTVAvcGVybHNubXAuaCwgCiAgICAgIHBlcmwvU05NUC90L1JFQURNRSwgcGVybC9TTk1QL3QvYXN5bmMudCwgcGVybC9TTk1QL3QvYnVsa3dhbGsudCwgCiAgICAgIHBlcmwvU05NUC90L2NvbmYudCwgcGVybC9TTk1QL3QvY29uZnRlc3QuY29uZiwgcGVybC9TTk1QL3QvZ2V0LnQsIAogICAgICBwZXJsL1NOTVAvdC9nZXRuZXh0LnQsIHBlcmwvU05NUC90L21pYi50LCBwZXJsL1NOTVAvdC9taWIudHh0LCAKICAgICAgcGVybC9TTk1QL3QvbWlibG9hZC50LCBwZXJsL1NOTVAvdC9ub3RpZnkudCwKICAgICAgcGVybC9TTk1QL3Qvc2Vzc2lvbi50LCAgcGVybC9TTk1QL3Qvc2V0LnQsCiAgICAgIHBlcmwvU05NUC90L3NubXB0ZXN0LmNvbmYsICBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLAogICAgICBwZXJsL1NOTVAvdHlwZW1hcCwgIHBlcmwvVHJhcFJlY2VpdmVyL0NoYW5nZXMsCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01BTklGRVNULCAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1JFQURNRSwgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9mYWxsYmFjay9jb25zdC1jLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2ZhbGxiYWNrL2NvbnN0LXhzLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL3Blcmxfc25tcHRyYXBkLmgsIHBlcmwvVHJhcFJlY2VpdmVyL3BwcG9ydC5oLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvdC8xLnQsIHBlcmwvVHJhcFJlY2VpdmVyL3R5cGVtYXAsIAogICAgICBwZXJsL2FnZW50L0NoYW5nZXMsIHBlcmwvYWdlbnQvTUFOSUZFU1QsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54cywgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZ2VuLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbCwgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG0sIHBlcmwvYWdlbnQvdGVzdC5wbCwgCiAgICAgIHBlcmwvYWdlbnQvdHlwZW1hcCwgcGVybC9kZWZhdWx0X3N0b3JlL0NoYW5nZXMsIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTUFOSUZFU1QsIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9SRUFETUUsIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW4sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbCwgcGVybC9kZWZhdWx0X3N0b3JlL3R5cGVtYXAsIAogICAgICBwZXJsL21ha2UtcGVybC1tYWtlZmlsZXMsIHBlcmwvbWFuYWdlci9JTlNUQUxMLCAKICAgICAgcGVybC9tYW5hZ2VyL01ha2VmaWxlLlBMLCBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtLCAKICAgICAgcGVybC9tYW5hZ2VyL2dldFZhbHVlcy5wbSwgcGVybC9tYW5hZ2VyL21hbmFnZXIucG0sIAogICAgICBwZXJsL21hbmFnZXIvc2V0dXBhdXRoLCBwZXJsL21hbmFnZXIvc2V0dXBkYiwgCiAgICAgIHBlcmwvbWFuYWdlci9zZXR1cHVzZXIsIHBlcmwvbWFuYWdlci9zbm1wdG9zcWwsIHB5dGhvbi9MSUNFTlNFLCAKICAgICAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvX19pbml0X18ucHksIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnQucHksIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIAogICAgICBweXRob24vbmV0c25tcC90ZXN0cy9fX2luaXRfXy5weSwgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZiwKICAgICAgIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHksIHB5dGhvbi9zZXR1cC5weSwgcmVtb3ZlLWZpbGVzLCAKICAgICAgc2Vkc2NyaXB0LmluLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvY29udGFpbmVyLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9kaXJfdXRpbHMuYywKICAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywKICAgICAgc25tcGxpYi9nZXRvcHQuYywgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsCiAgICAgIHNubXBsaWIvaW50NjQuYywgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywKICAgICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgICAgIHNubXBsaWIvcGtjcy5jLCAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgICAgIHNubXBsaWIvc25tcC10Yy5jLCAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgICAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgc25tcGxpYi9zbm1wX2VudW0uYywKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdHNtLmMsCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbnByaW50Zi5jLAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgICAgc25tcGxpYi9zdHJ0b3VsLmMsICBzbm1wbGliL3N0cnRvdWxsLmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYywgIHNubXBsaWIvdGV4dF91dGlscy5jLAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgCiAgICAgIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi93aW5waXBlLmMsIAogICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYywgc25tcGxpYi93aW5zZXJ2aWNlLm1jLAogICAgICBzbm1wbGliL3dpbnNlcnZpY2UucmMsICBzbm1wbGliL3dpbnNlcnZpY2VyYy5yYywgc3RhbXAtaCwKICAgICAgc3RhbXAtaC5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbiwgIHRlc3RpbmcvUkVBRE1FLAogICAgICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgCiAgICAgIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LCAKICAgICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzLCAKICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9ldGltZXRlc3QuYywgCiAgICAgIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLCB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCAKICAgICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdGVzdGxpc3QsIAogICAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAogICAgICB0ZXN0aW5nL21pc2N0ZXN0LmMsICB0ZXN0aW5nL3JmYzEyMTMvUkVBRE1FLCB0ZXN0aW5nL3JmYzEyMTMvcnVuLCAKICAgICAgdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2gsIHRlc3RpbmcvcmZjMTIxMy90ZXN0X2Z1biwgCiAgICAgIHRlc3RpbmcvcmZjMTIxMy90ZXN0bWliMS5zaCwgdGVzdGluZy9yZmMxMjEzL3Rlc3RtaWIyLnNoLCAKICAgICAgdGVzdGluZy9yZmMxMjEzL3Rlc3RtaWIzLnNoLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLCAKICAgICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudCwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZywgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAwMGNvbmZpZ3VyZSwgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAogICAgICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QzLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCAgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsICB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2LCB3aW4zMi9Db25maWd1cmUsIAogICAgICB3aW4zMi9FWEFNUExFLmNvbmYud2luMzIsIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIAogICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaCwgCiAgICAgIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL2FnZW50X21vZHVsZV9kb3RfY29uZi5oLCAKICAgICAgd2luMzIvYWdlbnRfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL2FnZW50X21vZHVsZV9pbml0cy5oLCAKICAgICAgd2luMzIvYnVpbGQuYmF0LCB3aW4zMi9idWlsZC5wbCwgd2luMzIvY29uZmlnLmgsIAogICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAogICAgICB3aW4zMi9kaXN0L1JFQURNRS50eHQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdCwgCiAgICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0RldmVsb3Blcl9GQVEuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvRkFRLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0hlbHBfQ2F2ZWF0cy5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhocCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL3NubXBkLmNvbmYud2luMzIuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL0FkZDJQYXRoLm5zaSwgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL1NldEVuVmFyLm5zaSwgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvZGlzdC9zY3JpcHRzL2NyZWF0ZS10b2MsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWwsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbmV0LXNubXAtcGVybC10ZXN0LnBsLCAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3BvZGRpcjJodG1sLCB3aW4zMi9kaXN0L3NjcmlwdHMvcmVhZG1lMmh0bWwsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvdHh0Mmh0bWwsIHdpbjMyL2Rpc3QvdG9zb2NrMS5zaCwgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsIAogICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsICB3aW4zMi9sb2NhbC9NYWtlZmlsZS5pbiwKICAgICAgd2luMzIvbG9jYWwvbWliMmMuYmF0LCAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LAogICAgICB3aW4zMi9sb2NhbC90cmFwdG9lbWFpbC5iYXQsICB3aW4zMi9taWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgICAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICAgd2luMzIvbm1ha2VwZXJsLmJhdCwgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIAogICAgICB3aW4zMi9zbm1wc21faW5pdC5oLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJkbGwuZHN3OgoKIEZpeCA1LjUueCBicmFuY2ggc3RydWN0dXJlIChwYXJ0IDIpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzogcHJvcGVyIHByb2Nlc3MKCiBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOiBwcm9wZXIgcHJvY2VzcwoKIHN0YXR1cyB2YWx1ZXMgZm9yIG5ldGJzZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc2NhcGkuYzogY29uZGl0aW9uYWxpemUgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc2NhcGkuYzogY29uZGl0aW9uYWxpemUgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6IHRjcC1taWIvdWRwLW1pYgoKIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDogdGNwLW1pYi91ZHAtbWliCgogc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmM6IFByb3Blcmx5IGVuZCBkZWJ1ZyBtZXNzYWdlIHdpdGggbmV3bGluZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jOiBQcm9wZXJseSBlbmQgZGVidWcgbWVzc2FnZSB3aXRoIG5ld2xpbmUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6IHJlbW92ZSB2YXIKCiB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6IHJlbW92ZSB2YXIKCiB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6IG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZwoKIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUKIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6IG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZwoKIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUKIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOiBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzogZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaDogZW5hYmxlIG5ldyB0Y3AvdWRwIG1pYnMgZm9yIHNvbGFyaXMKICAgICAgZ2l0LXN2bi1pZDoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNyAtPiBWNS43LjEucHJlMQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6CgogNS43LjEucHJlMQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgY2Y0Y2NlNGMxODljZjQ3ZjRjNDg5ZGI0M2I3ZmE1MTBmODkwNmExYSBNZXJnZTogZGY5MWE5ZgoKIDkzZTk3ZGMgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCiBBdWcgOCAyMjoxNToyOCAyMDExICswMTAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAKICAgICAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjogRGVmaW5lCgogX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbiAoYXMgcGVyIEFsZXgnIGJ1aWxkCiBpbnN0cnVjdGlvbnMpCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZGYxNmRjMjIyMWU5OTNkZDNjNjY2NTBkNWU4NzI1NzdmZmU2YzAxYiBNZXJnZTogNzE0YmM4MgoKIDhlNWEyOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMzo1Njo0MyAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZmZhMDViMDUxYWMzZTJiMTk3MTk1YTk5ODljYzdhOTFmZThkOTI4MiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyA4IDEzOjU1OjM4CiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IDcxNGJjODJmYTAxZTIxYTM2NTU4MjQ5NjNmYTU0ZTliODA0MmZmYjAgTWVyZ2U6IDZmZThmZTUKCiAzZWYxZGI1IEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbgogQXVnIDggMjE6MjE6NDYgMjAxMSArMDEwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCBiNDUxNjA3ZGNhMDE1YzExMWU5NmZkZmViMmRkYjA2NjFmYjRmNzI0IEF1dGhvcjogRGF2ZQoKIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjIwOjMyIDIwMTEKICswMTAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNmZlOGZlNTI5NGE0NWJjN2U0ZWEzNzUxYTFhZDdhYTQ3YjVjYWJiMiBNZXJnZTogMzY0ZjhmZgoKIGY2OWFiZTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDIyOjAyOjM4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMjE6NTY6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDM2NGY4ZmZhZWI5MGI0ZWIwMTY1ZmM4NTU2ODhjZDA2MjY2MzI3OTQgTWVyZ2U6IDMyODcyOTUKCiA3YWJiOTI2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTE6MjQ6MjYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGlzcGxheSB0aGUgYnJhbmNoIHdlJ2xsIGNvbW1pdCB0bwoKCjIwMTEtMDgtMDggIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzM4NjYzMzoKCiBmcm9tIHd1bGYyMDAxOiBmaXggaW50ZWdlciBvdmVyZmxvdyBpbiBkaXNrIHBlcmNlbnQgY2FsY3VsYXRpb25zIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDg0YTc3NWQwNTU3ZmVhOTc1NzBlNDE3MTVhMzE2NDk3MGI0YzAzYTIgTWVyZ2U6IDZmZmYxYzEKCiBkMzczYzRmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAyMDoxMjozMiAyMDExICswMjAwCgoyMDExLTA4LTA4ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzODcxMzk6IGZyb20KCiB5YWJlcmF1bmV5YTogQXZvaWQgc2VnZmF1bHQgaWYgdHJhcHNlc3MgdHJhbnNwb3J0IGVsZW1lbnQgY2FudCBiZQogcGFyc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbnNzZnBhdGNoYXBwbHk6IHNwbGl0IHRoZQoKIGRpc3BsYXllZCBnaXQgY29tbWl0IGNvbW1hbmQgaW50byBtdWx0aXBsZSBzZWdtZW50cwoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMzg2OTYxOgoKIE1ha2UgU05NUCBHRVQgd29yayBpbiBhbiBBZ2VudFggc3ViYWdlbnQgaWYgd3JpdGUgc3VwcG9ydCBpcwogZGlzYWJsZWQgdmlhIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAoTWFyayBSdXNrKS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCgogdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QKIGVxdWFsIHRvIC0xLgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDZmZmYxYzFhZTUxYjA2YzlkODBmYWYxNTM3M2E5NjNkMTczZjE0ZTggTWVyZ2U6IDgzN2M1MmUKCiA4Y2M5MDA0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6NTg6NTkgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDhjYTdmZjFlNjkyY2FlYzQxODZiNzg4YzlhZTJkMjdiZTIxMzI5MGYgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMDozMzo1NgogMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGI4ZjUyOWNiYTI3YzAxMTRiNGNiNzM0MGNmZDQ0OTUwNGZhMDc1MDYgTWVyZ2U6IDA4MjJmMmQKCiA1NTZlOTM4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6MDU6MzYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZml4IGZ1bmN0aW9uIG5hbWUgdHlwbwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyOTg4MmEwNzhhOTU5YTBmNzhiMDNlMDE5NjhmMWQxN2I3ZjZhMjk5IE1lcmdlOiA1ZTliZDJmCgogMDQwOWMwYSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjAzOjM0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZSBvZiBwdWxsL3B1c2gKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIG5zcHVsbC9uc3B1c2ggY2hlY2sgZm9yIGEKCiBjbGVhbiByZXBvCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuZXcgZnVuY3Rpb24gIm5zbWFrZWFsbCIgdG8gdGVzdAoKIGJ1aWxkaW5nIG9uIGV2ZXJ5IGJyYW5jaAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGVmYXVsdCB0byBtZXJnZQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8KCiBWNS03LXBhdGNoZXMKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDogQ0hBTkdFUzogV2luZG93czogQXZvaWQgdGhhdCBpZgoKIHRoZSBOZXQtU05NUCBQZXJsIG1vZHVsZXMgaGF2ZSBiZWVuIGJ1aWx0IHdpdGggYW5vdGhlciB2ZXJzaW9uIG9mCiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB0aGFuIEFjdGl2ZVBlcmwgdGhhdCB1c2luZyBvbmUgb2YgdGhlc2UgUGVybAogbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzCiBjYXVzZWQgYnkgY29tbWl0IDNiMTRjNTljZjgyNzhkNDEwMjA3ZmY0MmRlYmRhMjYzNjQyNmE0NjggKHRoZQogbmV0c25tcF9mcmVlKCkgaW50byBTTk1QX0ZSRUUoKSBjaGFuZ2VzIGluIHRoZSAqLnhzIGZpbGVzKS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlMTA5NTM5OTMwNzAzY2IzMDUyZDUyNDFiMThhYzZmYzA2MmZhYWNhIE1lcmdlOiAwYzliNmNiCgogZTQ2YjE3MCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMTg6MzQ6MTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUKCiB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAogZXF1YWwgdG8gLTEuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDA5OjUwOjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwYzliNmNiZTlkYmUyZWM1MjE3YTk1YjY3ODFmZDdkYzFmNmViZGE3IE1lcmdlOiBmYTZjZWY1CgogOTYzMzIwZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMTg6MTQ6MzYgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGEzYjg2NTRhMjMyYzU2M2JjOTdjYzk5MjVjZDk4NTkwYTMwYzViYzUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAxNzoyNDoxOCAyMDExICswMjAwCgoyMDExLTA4LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZmE2Y2VmNWNhOTFkZjNhMGIwMzQ1NWI2ODU1OWQyYmVlMjQ4MTAxYyBNZXJnZTogZjVmZTUzNgoKIDhhZGQwZGEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnCiA3IDEwOjE4OjU0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhMGRkM2NhZjI1OTI2ZTQzNDY1NzE4YmY0MTdhNDY0YzJmYjM2MzY2IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnIDcgMTA6MTc6MDEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IDMyIGlzIHRvbyBsaW1pdGVkIGZvcgoKIGJpZ2dlciB0YWJsZXM7IGluY3JlYXNlIHRoZSBtYXggbXNnIGNvdW50IHRvIDEyOAoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSByb2xsdXAgYW5kIHN5bmMgc3VwcG9ydAoKIC0tcmViYXNlIGFuZCBjaGFuZ2UgdGhlIGRlZmF1bHQgYmFjayB0byBtZXJnZQoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luMzI6IERvY3VtZW50ZWQgaG93IHRvIHVzZSBidWlsZC5iYXQgd2l0aAoKIE9wZW5TU0wgZW5hYmxlZAoKMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIG91dGRhdGVkIGluc3RydWN0aW9ucyBhYm91dAoKIGVkaXRpbmcgd2luMzJcbGlic25tcF9kbGxcbGlic25tcC5kZWYgZnJvbSBSRUFETUUud2luMzIKCjIwMTEtMDctMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudCBob3cgdG8gYnVpbGQgNjQtYml0CgogZXhlY3V0YWJsZXMgZm9yIHRoZSB4NjQvYW1kNjQgYXJjaGl0ZWN0dXJlCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZjVmZTUzNmU4ZmQ2YzQ4ZmUyNDNkZWNkMzFmYWM5Y2YxYzkyZjRjYyBNZXJnZTogNzg1MGVhMQoKIDgwOTI4YTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDE1OjEzOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4MDkyOGE4OTA5Y2ZhYjM3ZjAxYjM5YTA3MWEzZThhZDg1OTU2MjIyIE1lcmdlOiBmMTZhMDk0CgogMGRiYzg2OSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTM6NTc6MzAgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBkYmM4NjlmZWMwN2Q4ZTkwZGJkMWM5NTQ5M2VlN2NiYzYyM2M5NWMgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMjo0MDozMSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkCgogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUuZGVmIGFuZCBwZXJsL1NOTVAvdAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDg2YzFlMmI5Njc5ZmVjMmNkNzk5YmE3NjAwNWMzZDYwZTlkNDc2MzQgTWVyZ2U6IGJjZDg2MzUKCiBmMTZhMDk0IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMjoyMDo1MCAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMmY4ZDRmNTc5NmNiYzFjN2U5NjdhY2RhYTgwMTliMjRmMTUyMGEzNiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjAyOjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyAtIHJldmVydCBjb21taXQKCiBkMmM0NzY4YmQyZWZiNDg2NjQ0MzRhODMxNDI1YzJkZGE4NWQ3MTMzIChDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSAogMzM2MjIzMzogZnJvbSB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUKIG5vaXNlKS4KCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOiAKCiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQKIGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQgKGFnZW50OiBjaGFuZ2UgdHlwZSBvZgogc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nKQoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6IFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcwoKIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0CiAwZTY4NDJmZTA4MGNlYzg1M2IwOGNkMjMyMzAxNWFiYWJjMzgxY2UxIChDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENICiAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YKIGZyZWVkIG1lbW9yeSkuCgoyMDExLTA4LTA1ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogbWlub3IgTkVXUyBwb2xpc2gKCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYmNkODYzNTA3MTM4MjI5NjNkMzc2ZWZmNTgyYTkyZjQzZTQyNmQ2YyBNZXJnZTogOWM4MTBhMwoKIDdhMjBmNzEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEwOjI4OjU1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAzYWE5NDlmYmRmYzFhOTRhODM0MGFkOGJhZjhiMzE0NzU2YTBiYjlkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTA6MjY6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDljODEwYTNiMzdiNjg1NzNjNDAzMzdlMjQ2ZTJmYWYyOTliNzdkMzEgTWVyZ2U6IDcxY2IyZTgKCiA2MTBkNjNmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMTA6NDI6MDggMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDk0MzkzMGUxZTEyNDM4NWZkOTQ3MzhiNmRjZGEzN2QyOWRjN2FjN2YgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgNCAxMDo0MTo0MQogMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDRlZGNiODhkYWU4YjJlNTlkYzY4M2U4MGQ0MTRmYTdlY2VjMzY4ODUgTWVyZ2U6IDY1ZjNlZWYKCiAyZGQ5ZWQwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMTA6MjQ6MTEgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTUtcGF0Y2hlcycgaW50bwoKIFY1LTUtcGF0Y2hlcwoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGJjNWNhMDNhMDRhYjE5YzYzNGEzNGQwNjBiMGIxNmI3NDg0Y2I1MjAgTWVyZ2U6IDg4ZmRkYjcKCiA5MGMwZTc1IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxOToxMzowNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYzogc25tcHVzbTogRml4IHJlY2VudGx5CgogaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wOC0wNCAgU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOiBDSEFOR0VTOiBvcGVuYnNkOgoKIFBBVENIIDMzNTc5MzI6IGZyb20gdDBqdzJmdTBrbWc6IENsZWFuaW5nIGluIG1lbW9yeV9uZXRic2QuYyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzogQ0hBTkdFUzogYWdlbnQ6CgogUEFUQ0ggMzM4NjE0NzogZnJvbSB3dWxmMjAwMTogZml4IFVDRC1TTk1QLU1JQjo6ZHNrVXNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0NzNkN2U1Y2Q0ZDQxMWJiYTIwZWI4NTM1OWQ4NzI4MDYzMzAxY2JkIE1lcmdlOiBhNGU4YjYyCgogODhmZGRiNyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI4OjIyIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyMTAxYmIyZDdhZDZkYjAzOGM3NTVhYTkxOTNjOGFjZTBkYmQ0ZjU4IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMDk6Mjg6MDYKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiBpZ25vcmUgKi5vcmlnIGFuZCAqLnJlagoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGhlbHAgb3V0cHV0IGRlc2NyaWJlcyByZWJhc2UgdnMKCiBtZXJnZSBiZXR0ZXIKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmMTI2YTE3YzZhMzA2MzQ1NWE1MTE5NDBiMDIzMDQ3YWJkOWI0OGVlIE1lcmdlOiBhZDc2NWY0CgogNzdhNDc4NCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI1OjE2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0NTJlMTcwN2YyMDllYzQ1ZTdjN2YyYTMwNDBlZjU5NWZiOWQxYWY2IE1lcmdlOiBkYzc1NWE2CgogYjM3MmU1YSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI1OjAzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2Q0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNS5oOiBDSEFOR0VTOiBvcGVuYnNkOiBQQVRDSAogICAgICAzMzU3OTI3OgoKIGZyb20gdDBqdzJmdTBrbWc6IFJlY29nbmlzZSBvcGVuYnNkNSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCB3aGVyZSBhcmd1bWVudHMgYXJlIHNldAoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHNwbGl0IG5zc2ZwYXRjaGFwcGx5IGludG8gdHdvCgogcGFydHM6IGFwcGx5IGFuZCBjb21taXRpbmcKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHBhdGNoIHVzaW5nIC1OCgoKMjAxMS0wOC0wNCAgRGF2aWQgQXJub2xkIDxkamFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCAKICAgICAgbWFuL2ZpeHByb2MuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsCiAgICAgICBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIAogICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsCiAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLAogICAgICBtYW4vc25tcGQuOC5kZWYsICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAKICAgICAgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgbWFuL3NubXBnZXQuMS5kZWYsIAogICAgICBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwgbWFuL3NubXBzZXQuMS5kZWYsIAogICAgICBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwgbWFuL3NubXB0ZXN0LjEuZGVmLCAKICAgICAgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgCiAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsIG1hbi9zbm1wdmFjbS4xLmRlZiwgCiAgICAgIG1hbi9zbm1wd2Fsay4xLmRlZjogQ0hBTkdFUzogbWFuOiBQQVRDSCAzMzEyODYxOiBmcm9tIGRqYTogTWFuCiAgICAgIHBhZ2VzCgogaHlwaGVuLXZzLW1pbnVzIGNsZWFudXAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IERldGVjdCAoYW5kIHJlamVjdCkgT3BlblNTTAoKIDEuMC4wCgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IENvbW1hbmQtbGluZSBvcHRpb25zIGZvciBzaWxlbnQKCiBpbnN0YWxsCgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEVuc3VyZSBXaW5kb3dzIHBhY2thZ2UKCiB1bmluc3RhbGxzIGNvbXBsZXRlbHkuCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODFjNjNmYjVjNWU0YWJiOWMyOWFjYTg5YmY5ZDY5NDQxMDA4NmU5NyBNZXJnZTogNGE2OTIwYQoKIGRjNzU1YTYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwODozMzozNCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiBhZGRlZCBzcGFjaW5nIHRvIG1hdGNoIHRoZSBsYXRlciBicmFuY2hlcwoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6IHJlbW92ZWQgYWNjaWRlbnRpYWxseSBkdXBsaWNhdGVkIGNvZGUKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzI4OiBmcm9tIHlhYmVyYXVuZXlhOgoKIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKCiBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKIENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSCAzMzgzOTUxOiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggLVd1bnVzZWQKIGNvbXBpbGUgd2FybmluZ3Mgd2l0aCBGcmVlQlNEL05ldEJTRCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgc25tcGxpYi9rZXl0b29scy5jLAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZAogY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGU4NzhhYmJkYjE4MDhlZjgzZTBhODA3NDUzNmZiNTRlMTMyMTlhOGIgTWVyZ2U6IDQwM2RlNDIKCiA4NzhmYmY0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTU6MDAgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI1MGFmYTA2ODkyZmQ4OTdhYzMxZTM4MzZhN2ZmYzllMmI0Y2Y3YjkgTWVyZ2U6IDJjMTRjMWMKCiAzYWZjNWUwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTE6MzMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDU3OGNkN2NjZTM1MWFlOGQ5MDRlYzNkODBiZTliYTZkMWQ0OGE3MTIgTWVyZ2U6IDI1OTg4YmUKCiBmM2JjNTUxIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTA6NTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYXV0b2NvbmYKCgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSAoKIDMzODM5NDk6IGZyb20geWFiZXJhdW5leWE6IEZpeCBhdXRvY29uZiB0ZXN0cyBmb3Igc3lzL21idWYuaCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHByb21wdCBmb3IgcGF0Y2ggYW5kIGFuIGFyZWEsIGFuZAoKIHVzZSB0aGUgcHJvcGVyIENIQU5HRVMgbGluZSBmb3JtYXQKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IFVzZSBmZXRjaCAtLWFsbCBhbmQgcmViYXNlIGFzCgogc3VnZ2VzdGVkIGJ5IEJhcnQgZm9yIHNwZWVkIGltcHJvdmVtZW50cwoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ2YTFhODllNmY2NDg5NTFhOWI4MzE5MzJkM2NjMjMwODIxZjJkMzcgTWVyZ2U6IGRjYjcxMmYKCiA4NzJlMDEzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxMjowNjoxOCAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNDQ5NjliNGU1N2MyNzE5NGU1YmQzNTdiYzQ1Mjc1ZmViODY5NWQyMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzogQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogSW52b2tlCgogU25tcFV0aWxPaWRGcmVlKCkgYmVmb3JlIFNubXBVdGlsT2lkQ3B5KCkuIEl0J3Mgbm90IGNsZWFyIHlldCB3aHkKIHRoZSBvcmlnaW5hbCBjb2RlIGRpZCBub3QgbWFrZSBzbm1wd2FsayB0cmlnZ2VyIGEgbWVtb3J5IGxlYWsuCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZGNiNzEyZmZjODZiMzM1ODMwMDBlZjRhZTlhNTFjZWQyNWNkMTViZiBNZXJnZTogZTg1Y2ZhNQoKIDk4NjIzZWYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDExOjM2OjE3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4YTAxZWM2NDIzZDQwMGM0YTEzY2NhYzY4YTM3OTFkMDIxOGEwODg1IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDQgMTE6MTk6MTcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGU4NWNmYTU5OWIyM2I3NmQ5NzkxM2M5NmI1ZDcwM2JmZjZiYTQ5NDQgTWVyZ2U6IGIwNTZlZTYKCiBlMjFlZWYyIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAwODo0NDo0MyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBDSEFOR0VTOiBhZ2VudDoKCiBBdm9pZCB0aGF0IGEgTUlCIHdhbGsgb24gdGhlIGhvc3QgcmVzb3VyY2VzIE1JQiB0cmlnZ2VycyBhIGNyYXNoIG9uCiBGZWRvcmEgMTUKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiMDU2ZWU2ZWI1MzkwOWFkMDRmMTZlYzI2ZDI2OTBkN2EwODMxOTJhIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDQgMDc6NTk6MDQgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKICAgICAgIGVzcy5jLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCiAgICAgICAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcHRscy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXB1c20uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWIsIHNubXBkOgoKIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGFlOGUzZWNkMmRmNGNmMzc2MjU5NDRhZGVkMWRmZTQ3MzVkNDRlZWEgTWVyZ2U6IDczMTg3Y2UKCiA5MzM1ZTE5IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgQXVnIDMgMTQ6Mzc6MzYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDc5NGY5YTY5ZDdlYjY0MjI2ODIwMGIwYTRiMTk5MTUxZGVmNjZlZDAgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBBdWcgMyAxNDozNjoyNQogMjAxMSAtMDcwMAoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IFJlZW5hYmxlIElQLU1JQjo6aXBEZWZhdWx0Um91dGVyVGFibGUKICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCiAgICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wNy0xOCAgSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzogYWdlbnQ6IGNoYW5nZQoKIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCiBUaGlzIGZpeGVzIHRoZSBidWcgd2l0aCB3cml0aW5nIHRvIHNubXBFbmFibGVBdXRoZW5UcmFwcyBpZiBzZXJ2ZXIKIGlzIGNvbXBpbGVkIGZvciA2NGJpdCAoc25tcHNldCByZXBvcnRzIHdyb25nIGxlbmd0aCkuIFRoaXMgYnVnIHdhcwogaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4gIEFjdHVhbGx5IHRoaXMgaXMgYSAnbGVzcyBlZmZvcnQnIHR5cGUgb2YgZml4IGJ1dCBJIHdvbmRlciB3aHkgd2UKIG5lZWQgYSBsb25nIHRvIHN0b3JlIGFuIElOVEVHRVIgaW4gdGhlIGZpcnN0IHBsYWNlPyBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4gU2lnbmVkLW9mZi1ieTogV2VzCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2YWQ3ZTI4ZmY5ZTVlNGViYzEzNThlZTM5Y2M5Nzk2YTQ0YTFiZWU3IE1lcmdlOiBmMjgzMmUzCgogMWUxNTRjZSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcKIDMgMTk6MTU6MjQgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDYxYjE3OGYxZWU4OTUyYWEwM2FhM2IxYmE1MWY0YTY2NTVlNDdmMDEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcgMyAxODowOTo0NyAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOiBXaGl0ZXNwYWNlLW9ubHkgY2hhbmdlOiBmaXggaW5kZW50YXRpb24KCiBvZiBhbiAjaW5jbHVkZSBkaXJlY3RpdmUKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL05ldFNOTVAueHM6IENIQU5HRVM6IFBlcmw6IFJlbW92ZSBmaWxlIHBlcmwvTmV0U05NUC54cwoKIGJlY2F1c2UgaXQgYnJlYWtzIHRoZSBXaW5kb3dzIGJ1aWxkLiAgVG8gV2VzOiBpZiB5b3UgY2FuIHRlbGwgbWUgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSB5b3Ugb2JzZXJ2ZWQKIEknbGwgdHJ5IHRvIGZpbmQgYSBwb3J0YWJsZSBmaXguICBUaGlzIHJldmVydHMgY29tbWl0IGQ1NDg3MWY1MjkzNjc1YzgwNThlY2NlODhmZWQ1YjY0NmM4MzYzMjMgKCJBZGRlZAogYSBib2d1cyBlbXB0eSAueHMgZmlsZSBmb3IgYnVuZGxpbmcgb24gbmV3ZXIgcGVybCB0aGF0IHdhbnRzCiAic29tZXRoaW5nIiIpLgoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBmNDg5YjE5OWFkYWI0OGIxNjMzZWJjYWY1ZmY1YTdjMjJjNGNiODkgTWVyZ2U6IGY0ZWFhMDIKCiA3MmE1OWJjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZwogMiAxMDoxMTo1MyAyMDExICswMjAwCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgN2ZjYzBiODAzMmY4ZGE1YjdiYzMwMDU5YWYwYmE2NTZlYWU3MTA5MSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyAxIDE0OjExOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW4KCgogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMKCjIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgZmlsZSBuYW1lcyBhbmQgcGF0dGVybnMgZm9yIG91dHB1dAoKIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgdGhlIFdpbmRvd3MgYnVpbGQKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5CgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKCjIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgLmdpdGlnbm9yZSwgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmM6IFJlbW92ZSB0d28gZ2VuZXJhdGVkIFBlcmwgZmlsZXMuCgoKMjAxMS0wOC0wMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGY0ZWFhMDJkOWIwNzZhNjdkNzI3MmRlN2VlZjhlOWRmYmYxODliYmYgTWVyZ2U6IDQwMTI1ZDgKCiBhZGFkY2I5IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDIgMDA6NTc6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczogc3VwcHJlc3MgIm9rIiB0ZXN0IG91dHB1dCBpbiBuc2IKCgoyMDExLTA4LTAxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQwMTI1ZDg1MzljZDg5Zjk1MmZiYzI0NTg4YzVlODFlOWNkODIxZmUgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDEKIDEzOjU4OjMzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1YWNmMGQyY2ViMzk3Nzk2NGVkMzlmMDAzMDczYmE2NDEzOGMyZWJkIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxCiAyMDExICswMjAwCgoyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTc3MjJhODFmOWNiN2FhODY3MGU3YzIzODYwMTM2MmEzMTA4N2FjYyBNZXJnZTogMjQyZTE3OQoKIGFlOWFjNmMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gSnVsCiAzMSAwOToxMTo0NSAyMDExICswMjAwCgoyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zc2h0b3NubXAuYzogRml4IGFuIGluY29ycmVjdCBzb3VyY2UgY29kZSBjb21tZW50OiB0aGVyZSBpcwoKIG5vIHJlcXVpcmVtZW50IGluIHRoZSBBTlNJIEMgc3RhbmRhcmQgdGhhdCBzdGFjayB2YXJpYWJsZXMgc2hvdWxkIGJlCiBpbml0aWFsaXplZCB0byB6ZXJvLgoKMjAxMS0wNy0zMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI0MmUxNzk3YjI2OTRhMDY4OTg1NmFlMzZkMDVkMzQxM2FhZjhkNzcgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMDE6NDQ6MDkKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcKCiBnZXRhZGRyaW5mbygpIGFuZCBFQUlfRkFJTCAoZS5nLiBIUC1VWCAxMC4yMC8xMS4wMCkKCjIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxOGRmNzU5ZjE5Yjk3NWM0NDlkMDEwYmIwYTE2MjExOWJiNjgzNjBkIE1lcmdlOiA1NGE0NGNiCgogNzA1MDcxOCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBKdWwKIDMwIDE2OjM5OjEzIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4MmQ3M2ZiMTFiZTNhZTMxZjM5YzlkNjE4ZDUzODhkYzliMTAwNmQ3IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDI5IDIwOjUxOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgoKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgoKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxMDlmNjY5NGQ3ODhmNDhlYmQ5ZmMwYTFlOTBjNDVhYmMzN2JlYTIwIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTYXQgSnVsIDMwIDE0OjIyOjE5CiAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgN2Q4MTAwZWVkNDU5YTFmZjFhMjBjMDY3MzY0ZmE2Y2I0NzQ5MTMwOSBNZXJnZTogMTE2YzI0ZgoKIDllNDdhYzQgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFNhdCBKdWwgMzAgMDA6MjA6MDEgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucywgZGlzdC9uc2ItbmlnaHRseSwgZGlzdC9uc2ItcGFja2FnZTogbWlub3IgbnNiCgogZml4ZXMvZW5oYW5jZW1lbnRzIGZyb20gbXkgb2xkIHN2biB0cmVlCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTE2YzI0ZjBmN2ZiM2Y5OWJhNjQ2NzMwZjYxYzU2ZDFhZTIzYmE0MSBNZXJnZTogOTgyZmI3ZgoKIDRmYzBiOGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsCiAyOSAxMTozMToyMCAyMDExICswMjAwCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYzQ4MTczYzA2YTllYWFkYmY4MWU2YjQ5NjJkNTVlZjBhNTRkYjI1MSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCAyOSAxMDoyNzozOSAyMDExICswMjAwCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQ6IFJlcnVuIGF1dG9yZWNvbmYKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jOiBGaXggdHdvIGZpbGVuYW1lcyBpbiBob3N0IG1pYgoKIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5ODJmYjdmZDhiYWIyNWM0MzIyYWE2MmM1MDQzNzAzNmNlMjk2ZTNlIE1lcmdlOiAxZWRhNjc1CgogMzQ1ODEyOCBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBKdWwgMjggMTY6MjQ6MDMgMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEZpeCBwb3RlbnRpYWwKCiBzaWdzZWd2IHdoZW4gYW4gaWZUYWJsZSBlbnRyeSBpcyByZW1vdmVkIGFzIHJlc3VsdCBvZiBib3RoCiBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgYW5kIGludGVyZmFjZV9mYWRlb3V0IGF0IHRoZSBzYW1lIHRpbWUuCgoyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zc2h0b3NubXAuYzogTWFrZSBhcHBzL3NzaHRvc25tcC5jIGJ1aWxkIGFnYWluICh3YXMgYnJva2VuIGJ5CgogY29tbWl0IDYxMjI0N2NkZjE0YzFlNzQ1YzM4NGNlZmUxZjNmZGUzZTQ0NWIzNDcgdGhhdCBjaGFuZ2VkCiBNU0dfTk9TSUdOQUwgaW50byBORVRTTk1QX05PU0lHTkFMKQoKMjAxMS0wNy0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFlZGE2NzUzYjdmZTdkM2IzZjIxN2MwOTI1NGVjMDJkMGVlMWQwY2UgTWVyZ2U6IGRiOGI4NjAKCiBhMmY5ZWNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bAogMjggMTU6MzI6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMTogCgogQ0hBTkdFUzogc25tcGQ6IFJlc3RvcmUgc3RvcmFnZSB0YWJsZXMgb24gTGludXgKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IGludGVyZmFjZV9yZXBsYWNlX29sZCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfcmVwbGFjZV9vbGQnIG9wdGlvbiB0byByZW1vdmUgb2xkIGVudHJpZXMgaW4KIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKIGFwcGVhcnMuICBFLmcuIHJlbW92ZSBvbGQgcHBwMCBpbnRlcmZhY2Ugd2hlbiBuZXcgcHBwMCBzaG93cyB1cC4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IHRoZSBpbnRlcmZhY2VfZmFkZW91dCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEFsbG93IGlmVGFibGUKCiBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKIGRpc2FwcGVhcnMgKGkuZS4gaW50ZXJmYWNlX2ZhZGVvdXQgPSAwIHdvcmtzIGFzIGV4cGVjdGVkKS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX2ZhZGVvdXQnIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHNldAogbGlmZXRpbWUgb2YgaWZUYWJsZSBlbnRyaWVzIG9mIHJlbW92ZWQgaW50ZXJmYWNlcy4gIFByZXZpb3VzIGxpZmV0aW1lIHdhcyBoYXJkY29kZWQgNSBtaW51dGVzLCBub3cgaXQncyBjb25maWd1cmFibGUuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGQ2MmEwZWI5MDcwYjRkOGQ5ZmUyYmNmZGI0ZDUzZDM3ZWY4MTRmOWIgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgSnVsIDI4CiAxNDo0OTowOCAyMDExICswMjAwCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgogaWZUYWJsZSB3aGVuIGFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYWxyZWFkeSBleGlzaW5nIG9uZQogYXBwZWFycy4gIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQWxsb3cgaWZUYWJsZQoKIGVudHJpZXMgdG8gYmUgZGVsZXRlZCBpbW1lZGlhdGVseSB3aGVuIGFwcHJvcHJpYXRlIGludGVyZmFjZQogZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfZmFkZW91dCcgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc2V0CiBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCjIwMTEtMDctMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYXBwcy9zc2h0b3NubXAuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkCiAgICAgIGZpeAoKIGZvciBzeXN0ZW1zIGxhY2tpbmcgTVNHX0RPTlRXQUlUCgoyMDExLTA3LTI3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6IENIQU5HRVM6IHNubXBkOiBNYWtlCgogVENQLU1JQjo6dGNwQ3VyckVzdGFiIHdvcmsgYWdhaW4uIFdhcyBicm9rZW4gaW4gNS43IGJ5IHRoZQogaW50cm9kdWN0aW9uIG9mIHRoZSAiZmVhdHVyZXMiIGZlYXR1cmUuCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGZiODgwNzRmYmJjMjY4YzdmMDUwOTQ5MTUzNWFlYzVmZWNiMDU2ODQgTWVyZ2U6IGE3NDNhZTUKCiAzODIxMjczIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEp1bCAyNyAxNDo0NzoyNSAyMDExICswMjAwCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVsIDI3CiAxNDo0NTo0NyAyMDExICswMjAwCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IENIQU5HRVM6IHNubXBkOiBydW4gc2lnbmFsIGhhbmRsZXJzIHdoZW4gc2VsZWN0KCkKCiBpcyBpbnRlcnJ1cHRlZC4gIFRoaXMgYmVoYXZpb3IgaXMgaW5kaWNhdGVkIGluIGNvbW1lbnQgb24gbGluZSAxMjQ0LCBidXQgaXQgd2FzIG5vdAogYWN0dWFsbHkgZG9uZS4KCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZTk0NjZkN2Y1OWQ2NWQwNTAyNzc3MzVlNGVkOWQzMDcxOWZmNzUyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDI2IDEzOjEwOjA0IDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3NzA4Mjk2NzYwZWFmNWE4MGQ4NTQwNzQ2YzljMjQ5ODI2ZmQxYmZlIE1lcmdlOiBlYTExZTVlCgogY2Q2ZTM4MiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDI2IDE2OjIxOjQxIDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IENsYXJpZnkgYW4gSVB2NiBzb3VyY2UgY29kZSBjb21tZW50CgoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgbWFuL25ldHNubXBfaGFuZGxlci4zOiBTcGVsbGluZyBmaXg6CgogZGVmaW5lZHkgLT4gZGVmaW5lZAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMzogU3BlbGxpbmcKCiBmaXg6IGFsZXZpYXRlIC0+IGFsbGV2aWF0ZQoKMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZDJjNDcxMzM0OTNkNWEwMGRlNmIzY2RiY2ZhYzdlOWQ0NGI2ZmZlIE1lcmdlOiBmOWNjYmM3CgogZWExMWU1ZSBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBKdWwgMjYgMTQ6MjU6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjNWE4NDY0YzQyYTk0YzI1MGVlMmRmYTJhNDczMTA5YTczNDIwM2Q4IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAyNgogMTQ6MjQ6NTUgMjAxMSArMDIwMAoKMjAxMS0wNy0yNSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmOWNjYmM3NzI2NjYxMzRkMWQxNzhiNTA1YWY5ZGRjZGQ5ZWQ0MjQ0IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1bCAyNQogMTU6MDI6MTUgMjAxMSArMDIwMAoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGIwYzBhMzU1ZDVmNjAxYTExYmU0OTE0ZmJmNzEzNzE2YWJkMzBhMjkgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKIDE4OjM2OjExIDIwMTEgLTA3MDAKCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjMTRmYzM4NjE0YmFmMTBkNTE3MTM2ZjA0ODA5MDdiN2YwM2Q4ZDc0IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVsIDIwCiAxMzo0NDo1OSAyMDExIC0wNzAwCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKCiBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGViZGQyMTZjMDc0YmY0MWNkM2EwODRiZDE0Njg5Y2YwMWM4ODdiMzEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKIDE4OjM2OjExIDIwMTEgLTA3MDAKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiB1cGRhdGVkIGdpdGlnbm9yZSB0byBpZ25vcmUgYSBudW1iZXIgb2YgYXV0by1nZW5lcmF0ZWQKCiBmaWxlcwoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CgogbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkZjVmNzAwNTVjZjliZTMzZjA1ZmI1MGFiZTJmNWE4MWVhYzA5MmFkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDE5IDExOjA3OjE5IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmNTk2ZjE4MjQyZGNkZmQ2Y2Y0OWM4OGRhMWQ4MzZjMTZlMjYwY2FjIE1lcmdlOiAwZjMwOWI0CgogNzBkZWU0YiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDE5IDExOjMzOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDoKICAgICAgMzM2OTY4MDoKCiBmcm9tIElseWEgWWFub2s6IGNoYW5nZSBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIGZyb20gaW50IHRvIGxvbmcgc3VjaAogdGhhdCBtb2RpZnlpbmcgdGhlIGNvcnJlc3BvbmRpbmcgTUlCIG9iamVjdCBkb2VzIG5vdCBvdmVyd3JpdGUKIG1lbW9yeSBpbiA2NC1iaXQgYnVpbGRzLgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMzNzA2NDU6CgogZnJvbSBCaWxsIEZlbm5lcjogRml4IEFnZW50WCBzdWJhZ2VudCBmb3VyIGJ5dGUgbGVhawoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczogZG8KCiBub3QgaW52b2tlIElTUlVOTklORygpIG9uIE1pbkdXLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczoKCiBjbGVhbnVwIC0gcmVtb3ZlIGNvZGUgdGhhdCBiZWNhbWUgc3VwZXJmbHVvdXMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogTWluR1c6IERvIG5vdAoKIGFzc3VtZSB0aGF0IGtpbGwuZXhlIHJlcG9ydHMgdmlhIGl0cyBleGl0IHN0YXR1cyB3aGV0aGVyIHRoZQogc2lnbmFsbGVkIHByb2Nlc3Mgc3RpbGwgZXhpc3RzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogUmVtb3ZlIHRoZSBmdW5jdGlvbiBXQUlUT1JESUUoKSBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoIHNpbmNlIGl0CiBpcyBuZXZlciBpbnZva2VkLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogU2ltcGxpZnkgV0FJVEZPUigpIGluIHNpbXBsZV9ldmFsX3Rvb2xzLnNoLiBUaGUgY29kZSB0aGF0IGhhbmRsZWQKIGludm9jYXRpb24gb2YgV0FJVEZPUigpIHdpdGggemVybyBvciBvbmUgYXJndW1lbnRzIGhhcyBiZWVuIGRyb3BwZWQKIHNpbmNlIFdBSVRGT1IoKSBpcyBhbHdheXMgaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudHMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOgoKIG1pbm9yIHNpbXBsaWZpY2F0aW9uLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6IENIQU5HRVM6CgogdGVzdGluZzogU2tpcCB0ZXN0IDU5IGlmIFNJR0hVUCBpcyBub3Qgc3VwcG9ydGVkLiBNYWtlcyB0ZXN0IDU5IHBhc3MKIG9uIE1pbkdXLgoKMjAxMS0wNy0wNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXIGZpeAoKCjIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGZyYW1ld29yawoKIHJlZmFjdG9yaW5nOiBJbnRyb2R1Y2UgV0FJVEZPUk5PVENPTkQoKS4KCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIE1ha2UgU1RPUFBST0cgc2VuZCBTSUdURVJNIHJlcGVhdGVkbHkuIFRoaXMgZml4ZXMgYSByYWNlIHdoZXJlCiBTSUdURVJNIGNvdWxkIGJlIHNlbnQgYmVmb3JlIHRoZSBTSUdURVJNIHNpZ25hbCBoYW5kbGVyIHdhcyBzZXQgdXAsCiBlc3BlY2lhbGx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIFNOTVBfVkVSQk9TRT0xIG91dHB1dCBldmVuIG1vcmUgdmVyYm9zZS4KCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3MKCiByZWZhY3RvcmluZzogaW50cm9kdWNlIEVDSE9TRU5EU0lHVEVSTSgpIGFuZCBFQ0hPU0VORFNJR0tJTEwoKQoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IEZpeCBhIGJ1ZyBpbgoKIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2ggdGhhdCB3YXMgaW50cm9kdWNlZAogaW4gY29tbWl0IDkzOGQ3NWMuCgoyMDExLTA3LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIKCiBidWlsZAoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogVGVzdCBvbmx5IG9uY2UgZHVyaW5nIGEgdGVzdCB3aGV0aGVyIHRoZSBzaGVsbCBzdXBwb3J0cyBzdWItc2Vjb25kCiBzbGVlcGluZyBpbnN0ZWFkIG9mIHJlcGVhdGVkbHkuCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOiBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2VkCgogZGVmYXVsdCB0aW1lb3V0IGZyb20gMXMgdG8gMTBzIHdoZW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1bgogdW5kZXIgVmFsZ3JpbmQKCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIEFmdGVyIGhhdmluZyBzZW50IFNJR1RFUk0gdG8gc25tcGQgb3Igc25tcHRyYXBkLCB3YWl0IHVudGlsIHRoZQogcHJvY2VzcyBoYXMgc3RvcHBlZCBiZWZvcmUgc2VuZGluZyBTSUdLSUxMLiBUaGlzIHJhY2UgY29uZGl0aW9uIHdhcwogaGl0IG1vc3QgZWFzaWx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIFBJRCBmaWxlIGV4aXN0ZW5jZSBhZnRlciBoYXZpbmcgcmVhZCBpdAogaW5zdGVhZCBvZiBiZWZvcmUuIFRoaXMgZml4ZXMgdGhlIHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBQSUQgZmlsZQogZGlzYXBwZWFyZWQgYWZ0ZXIgdGhlIGV4aXN0ZW5jZSBjaGVjayBhbmQgYmVmb3JlIGl0IHdhcyByZWFkLgoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCiBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgogdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIFRoaXMgcGF0Y2ggaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgZm9sbG93aW5nIHRvIFY1LjYgU1ZOIHBhdGNoZXM6IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBmMzA5YjQ5M2MyMWQzYzY5MTQ0ODc1MTRiNDE1NjA3NTRmZmNkZjkgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mzc6NTAgMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFiNzQ1NGJjMjgxNTY4NDcwYTEzMDA0NzZkMmVkYjRmNDExZTYwMjkgTWVyZ2U6IDhkOWRjYzgKCiA2OTBlYTdkIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMTkgMDg6MzE6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogQWRkIG1pc3NpbmcgbmV3bGluZQoKIGNoYXJhY3RlciBpbiBhIGxvZyBtZXNzYWdlCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzogQ0hBTkdFUzogc25tcHRyYXBkOiBJbnZva2Ugc2h1dGRvd25fcGVybCgpIHdoZW4KCiBzaHV0dGluZyBkb3duCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOiBTcGVsbGluZyBmaXg6IGJyYW5rZXQgLT4gYnJhY2tldAoKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mLgoKIEZpeGVzIGJ1aWxkIGJyZWFrYWdlIGNhdXNlZCBieSBwYXRjaAogZDU4OGVjODUzYmQwNTMxZjIxMmZjYmY1MWI5NjJiOTZjNjgyOGI1OSAoUlBNIDQuOSBzdXBwb3J0KQoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ2MTdkODRmODNmYTY5ZWQ5ZmE5Zjk4ZWZjNGFmYWY4ODBkMTIxZjIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAoKMjAxMS0wNy0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogTWFrZQoKIG5ldHNubXBfaXB2Nl9mbXRhZGRyKCkgc2hvdyB0aGUgSVB2NiBzY29wZSBJRAoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IEFkZCBzdXBwb3J0CiAgICAgIGZvcgoKIElQdjYgYWRkcmVzcyBzY29wZSBJRAoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYKCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTU2NzIxYTNlNzc1NGUzODlkYWE3ZThhM2Q1NzkyODk5ZWRjOWRlMyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bCAxNCAxNjoxODozMiAyMDExICswMjAwCgoyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODQ0ZDRjZTg2N2JmM2FiZTdiNzUzNmM1ZGJmYmE0MDE5MzdhOGQ0YSBNZXJnZTogZWVkMDE5OAoKIDYxMDM2YTggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIEZyaSBKdWwgMTUgMTU6MzM6MTAgMjAxMSAtMDcwMAoKMjAxMS0wNy0xNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDg1MWJjZjUzZmNkMTNjZGYwYmE5ZjEyZTVkNjAzZTczZjhiYjk2MTEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIEZyaSBKdWwgMTUKIDE1OjMyOjQ5IDIwMTEgLTA3MDAKCjIwMTEtMDctMTQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogZml4IGEgdHlwbwoKCjIwMTEtMDctMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QGxvY2FsaG9zdD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBzbm1wbGliOiAgdHdlYWsgcGF0Y2ggMzA0NDg4OCB0byByZXN0b3JlCgogcHJvcGVyIG5vbi1lcnJvciByZXR1cm4gZHVyaW5nIG1pYiBsb2FkaW5nCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QgYW5kIGZpeCB0aGUgcmVsZWFzZSBmaWxlCgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYWRkZWQgNS43IHBhdGNoZXMgdG8gdGhlIGJyYW5jaCBsaXN0CgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKCiBicmFuY2hlcwoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgNS43IHBhdGNoZXMKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzQzMTIzMWU4ZjBhMzlkMTk1MGJjNzJjMzJlMzQwMmY5MGZhODAzMCBNZXJnZTogNTZmZWU0MAoKIGEyYWMyNGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBKdWwgMTEgMTk6MzM6MTcgMjAxMSAtMDcwMAoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb3B5IG9mIHRoZQoKIHNoZWxsLWZ1bmN0aW9ucyB0byB0aGUgb2xkZXIgYnJhbmNoCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlcgoKIGJyYW5jaGVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMyAtPiBWNS43CgoyMDExLTA3LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcKCgoyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IFJldmVydCAiZml4IGR0bHN1ZHAKCiB0cmFuc3BvcnQgYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24iIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmFiM2E2ZTZmMmZjYzFmZjNlNWYwZmI1ZGM1ZDA1ZTQ5ODgyMGQ4OS4gICAtIGZvciBzb21lIHJlYXNvbiBJIHNhdyAncmMnIGFuZCBteSBicmFpbiBpbnRlcnByZXRlZCBpdCBhcyAgICAncHJlLXJlbGVhc2UnLiBXaGF0IGNhbiBJIHNheSwgaXQgd2FzIGxhdGUuIDotLwoKMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBmaXggZHRsc3VkcCB0cmFuc3BvcnQKCiBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiAgLSB1cGRhdGUgaXB2NCBmbXRhZGRyIHRvIGhhbmRsZSBzb2NrYWRkciBhbmQgdG8gY2hlY2sgICAgc2l6ZSBiZWZvcmUgYXNzdW1pbmcgZGF0YSBpcyBhZGRyIHBhaXIgIC0gbW92ZSBkdGxzdWRwIGZ1bmN0aW9ucyB0byBleHRyYWN0IGFkZHIocykgdG8gdGxzYmFzZQoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggdGFnIHB1c2hpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMyIC0+IFY1LjcucmMzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwKCWRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcucmMzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWlzYyBwdWJsaWNhdGlvbiBmaXhlcyBmb3VuZCB3aGlsZQoJcHVibGlzaGluZwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciB0byBhZGQgdGhlCgltaXNzaW5nIHRlbXBsYXRlIGlmZGVmcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzEgLT4gVjUuNy5yYzIKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSB0aGUgbmV3IHJ1bi1hdXRvY29uZiBzY3JpcHQKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9ydW4tYXV0b2NvbmY6IEEgc2NyaXB0IHRvIGludm9rZSB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIHRoZQoJYXV0b2NvbmYgdG9vbAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtYWluaW5nIGNvbW1hbmQgbGluZSBjaGFuZ2VzIGZvciBzdm4gLT4KCWdpdAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWFrZSB0aGUgYnJhbmNoIGVjaG8gb3V0cHV0IGFuZCBzdm4gdXBkYXRlCgljb252ZXJ0ZWQgdG8gZ2l0IGVxdWl2YWxlbnRzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBwdWxsIHRoZSBicmFuY2ggaW5mbyBmcm9tIGdpdAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L3JlbGVhc2U6IG5vdGVkIHRoYXQgdGhlIG1hc3RlciBicmFuY2ggaXMgaW4gcmMgc3RhdGUKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKCSogRkFROiBNZW50aW9uIHRoZSBHaXQgd2lraSBwYWdlCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIGdpdCBtZXJnZSB3aXRoIHRoZSAtLWxvZwoJb3B0aW9uCgoyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCgkqIC5naXRpZ25vcmU6IEFkZCAuZ2l0aWdub3JlCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCgkqIEZBUTogV2UncmUgbm93IHVzaW5nIGdpdCEKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgcmViYXNlIHRvIHB1dCBsb2NhbCBjaGFuZ2VzIGF0Cgl0aGUgdG9wIG9mIHRoZSByZW1vdGUgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGZlYXR1cmUgdG8gbm90IHJvbGwKCWJyYW5jaGVzIGN1cnJlbmx5IGluIHJjIHBoYXNlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBuc3JvbGx1cCBmdW5jdGlvbiBmb3IKCXJvbGxpbmcgYnJhbmNoZXMgdXB3YXJkLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBjcmVhdGVkIGFuIG5zcGF0Y2hhcHBseSBmdW5jdGlvbgoJdG8gYXBwbHkgYSBwcmV2aW91c2x5IHRlc3RlZCBwYXRjaCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnN0cnlwYXRjaCBmdW5jdGlvbiB0bwoJdGVzdCBwYXRjaCBhcHBsaWNhdGlvbiBhZ2FpbnN0IHZhcmlvdXMgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCB2ZXJib3NlIG91dHB1dCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1vcmUgcHJlZml4IGNoYW5nZXMgYW5kIGJldHRlcgoJc2V0dGluZyBvZiBkZWZhdWx0IHZhbHVlcyBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBucyBwcmVmaXhlcyBpbnN0ZWFkIG9mIGdlbmVyaWMKCXNubXAgcHJlZml4ZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiAKCU1pc3NpbmcgY2hlY2sgZm9yIHJwbXRzLmggZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKCW1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKCW1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsCgltYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCgltYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsCgltYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCgltYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCgltYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAoJbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKCW1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAoJbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAoJbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKCW1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAoJbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAoJbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLAoJbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsCgltYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKCW1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAoJbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAoJbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCgltYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywKCW1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAoJbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKCW1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCglzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCglpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yawoJd2l0aCBsaWJyYXJ5IHZlcnNpb24gNC45IEJhc2VkIG9uIGEgcGF0Y2ggYnkgSmFuIFNhZnJhbmVrIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcKCVJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nCgl0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCglmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWd1cmU6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKCXNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAoJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCWZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CgkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwoJZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsCglhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKCShyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCglmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwKCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCglmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQoJKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKCXRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlCgl0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCWludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCgl0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCWludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCgl0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKCW9mICVsZCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZAoJb2YgJWxkIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5wcmUyIC0+IFY1LjcucmMxCgoyMDExLTA2LTEzIDE2OjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gY29ycmVjdCB2ZXJzaW9uIG9mIGF1dG9jb25mCgoyMDExLTA2LTEzIDE2OjEwICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTEtMDYtMTMgMTY6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJhbiBhdXRvY29uZgoKMjAxMS0wNi0xMCAwNjowMyAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXM6CgogICBGaXggYnVpbGQgb2Ygc25tcHVzbSB3aGVuIGFkZGl0aW9uYWwgc2VjIG1vZHVsZXMgcmVxdWVzdGVkCgoyMDExLTA2LTA5IDIxOjEzICBuYmEKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEluY2x1ZGUgc3Rk4KWG4KSF4KSG4KWG4KSFh2liLmggdG8gbWFrZSBkbWFsbG9jIGhhcHB5CgoyMDExLTA2LTA5IDE0OjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQ0hBTkdFUzogQlVHOiAzMTUxODQ1OiBmaXggbXVsdGlwbGUgcmVnaXN0cmF0aW9ucyBvZiBzbm1wCiAgIHRyYW5zcG9ydCBoYW5kbGVyCgoyMDExLTA2LTA4IDE2OjM0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG1vcmUgZG5zc2VjIHR3ZWFrcwogICAKICAgLSBjcmVhdGUgYW4gYXBwLWdsb2JhbCB2YWxpZGF0b3IgY29udGV4dCBmb3IgdXNlIHdpdGggYWxsCiAgIHZhbGlkYXRpb24gcm91dGluZXMuIG1haW5seSB1c2VmdWwgZm9yIGxvbmctbGl2ZWQgYXBwcy4KICAgLSB1c2UgdGhlIGFwcHR5cGUgYXMgdGhlIHZhbGlkYXRvciAnc2NvcGUnLCBhbGxvd2luZwogICBmb3IgYXBwLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRhdGlvbiB2aWEgbGlidmFsJ3MKICAgZG5zdmFsLmNvbmYKCjIwMTEtMDYtMDcgMTY6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgYWRkIGEgbWF4IGRlZmluZSBmb3IgZWFjaCBkZWZhdWx0IHN0b3JlIHR5cGUKICAgCiAgIG5vdCBhY3R1YWxseSB1c2VkLCBqdXN0IGEgaGVscGZ1bCByZW1pbmRlciBmb3IgdGhvc2UgYWRkaW5nCiAgIG5ldyBpZHMgd2hvIG1pZ2h0IG5vdCB0aGluayB0byBjaGVjayBORVRTTk1QX0RTX01BWF9TVUJJRFMuCiAgICh0aGUgYm9vbCBsaXN0IGlzIHJhcGlkbHkgYXBwcm9hY2hpbmcgdGhlIGN1cnJlbnQgbGltaXQuKQoKMjAxMS0wNi0wNyAxNjo0NiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIG1lbnRpb24gYnVpbGRkaXIgd2hlbiBjb21wbGFpbmluZyBhYm91dCBub3QgYmVpbmcgcnVuIGZyb20gc291cmNlCiAgIHRyZWUKCjIwMTEtMDYtMDEgMjI6MjQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvcgogICBkZWJ1Z2dpbmcgb3V0cHV0IG9mIGFnZW50eAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42IC0+IFY1LjcucHJlMgoKMjAxMS0wNS0xMCAwMDoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDExLTA1LTEwIDAwOjIwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBDKysgLT4gQyBjb21tZW50cwoKMjAxMS0wNS0xMCAwMDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE5FV1MgdXBkYXRlIGZvciA1LjcKCjIwMTEtMDUtMDkgMjM6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDoKCiAgIHJldmVydCB0aGUgb2lkIHR5cGVkZWYgcmVzaXppbmcgZnJvbSByMTc4MDkgYmVjYXVzZSBpdCBicm9rZQogICBiYWNrd2FyZHMgY29tcGF0LCBhcyBwb2ludGVkIG91dCBieSB1c2VycyBvbiB0aGUgLWNvZGVycyBsaXN0CgoyMDExLTA1LTA5IDIyOjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICB1c2UgcHJvcGVyIGF1dG9jb25mIHZlcnNpb24KCjIwMTEtMDUtMDkgMjI6MzggIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAgICBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTEtMDUtMDkgMjI6MzggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDExLTA1LTA5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRlZCBhIG1pc3NpbmcgMCBpbiB0aGUgcmV2aXNpb24gZGF0ZQoKMjAxMS0wNS0wOSAyMDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIFVzZSBzeW1ib2xpYyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcwoKMjAxMS0wNS0wOSAyMDo0MyAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgSUFOQSBoYXMgZml4ZWQgdGhlIElBTkEtSVBQTS1NRVRSSUNTLVJFR0lTVFJZLU1JQgoKMjAxMS0wNS0wOSAxNToyNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkZWQgYSBuZXcgUkVWSVNJT04gY2xhdXNlIHRvIGxpc3QgdGhlIGNoYW5nZXMgaW4gdGhlIHRoZSByZWNlbnQKICAgdXBkYXRlCgoyMDExLTA1LTA5IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgcGluZy90cmFjZXJvdXRlIG1pYnMgbm90ZQoKMjAxMS0wNS0wOSAxNDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHdlIGFjdHVhbGx5IHdhbnQgdG8gdXNlIHRoZSBiYXNlIE9JRCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQsIG5vdAogICB0aGUgcmVnIE9JRC4KCjIwMTEtMDUtMDkgMTQ6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXhlZCB0aGUgcHJveHkgc3VwcG9ydCB0byBkbyBhIHByb3BlciBPSUQgbGVzcyB0aGFuIE9JRCBjb21wYXJlLgogICBXZSBhY3R1YWxseSBkb24ndCBjYXJlIGFib3V0IHRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QsCiAgIG9ubHkKICAgdGhhdCBpdCB3YXMgYmVmb3JlIHRoZSByZWdpc3RlcmVkIHJlYmFzZQoKMjAxMS0wNS0wOSAxNDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IHBhdGNoIDMxNDA4MzM6IGZyb20ganNhZnJhbmVrOiBmaXggcHJveHkgR0VUTkVYVAogICByZXF1ZXN0cwogICBXaGVuIE9JRHMgcmVxdWVzdGVkIGFyZSBiZWxvdyB0aGUgcHJveHkgcmVxdWVzdCByZW1hcCwgd2UgbmVlZCB0bwogICBub3QKICAgaW5jbHVkZSBhbnkgT0lEcyB0aGF0IG1pZ2h0IGJlIGluIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBvcmlnaW5hbAogICBPSUQKICAgYW5kIHRoZSByZW1hcHBlZCBPSUQuIFRoaXMgcGF0Y2ggZnVkZ2VzIHRoZSByZXF1ZXN0IHNvIHRoYXQgaXQKICAgZml4ZXMKICAgdGhlIHJlcXVlc3QgT0lEIHNvIGl0J3MganVzdCBiZWZvcmUgdGhlIHJlbWFwcGVkIHByb3h5IHJhbmdlLgoKMjAxMS0wNS0wOSAxNDoxOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE5FV1M6IFBBVENIIDMxNjczMjU6IGZyb20ga3Jpc3p0b2Zvcm86IFVDRC1TTk1QL1N5c3RlbVN0YXRzOiBhZGQKICAgdmFyaWFibGVzCiAgIHRvIHJlcG9ydCBjcHVzdGVhbCwgY3B1Z3Vlc3QsIGNwdWd1ZXN0bmljZQoKMjAxMS0wNS0wOSAxNDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogcGF0Y2ggMzE4NDAyNjogZnJvbSBlaXZuYWVzOiBBdm9pZCBjb25zdGFudCByZWZyZXNoIG9mCiAgIGludGVyZmFjZSBzdGF0aXN0aWNzCgoyMDExLTA1LTA5IDEwOjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSB0aGUgTVNWQyBjb21waWxlci4KCjIwMTEtMDUtMDkgMTA6MzUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvZ2V0dGltZW9mZGF5LmM6CgogICBXaW4zMi9NU1ZDOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDExLTA1LTA5IDEwOjMzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBhIHllYXItMjAzOCBidWcgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mCiAgIGlwUm91dGVUYWJsZS4KCjIwMTEtMDUtMDggMjA6MDEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzoKCiAgIEZpeCB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuCiAgIFRoZXNlIG1vZHVsZXMgd29yaywgYnV0OgogICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKICAgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5CiAgIGFyZSBwb3B1bGF0ZWQKICAgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290CiAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KICAgLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkKICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKCjIwMTEtMDUtMDcgMTU6MjIgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KCjIwMTEtMDUtMDcgMTQ6NDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBEZWNsYXJlIHRoZSBPSUQgYXJndW1lbnQgdHlwZSBvZiBNSUIgcmVnaXN0cmF0aW9uCiAgIGZ1bmN0aW9ucyBhcyAnY29uc3Qgb2lkIConIGluc3RlYWQgb2YgJ29pZCAqJyBzaW5jZSB0aGVzZQogICBmdW5jdGlvbnMgZG8gbm90IG1vZGlmeSB0aGUgT0lELgoKMjAxMS0wNS0wNyAxNDo0NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBVc2UgdGhlIGNvcnJlY3QgZGF0YSB0eXBlIGZvciB0aGUgJ2NhY2hlIGV4cGlyZWQnIHZhcmlhYmxlOiBjaGFyCiAgIGluc3RlYWQgb2YgaW50LgoKMjAxMS0wNS0wNyAxNDo0MyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIyMDE1MS4KCjIwMTEtMDUtMDcgMTM6MTUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5IHVzaW5nIExQQ1RTVFIgaW5zdGVhZAogICBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IFVuaWNvZGUgYnVpbGRzIGFyZQogICBzdXBwb3J0ZWQuCgoyMDExLTA1LTA3IDEzOjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmM6CgogICBBZGQgZmlsZSBmb3Jnb3R0ZW4gaW4gcjIwMzUzCgoyMDExLTA1LTA2IDIzOjMyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzEyNTk2OiBmcm9tIGZhYmxlZDgwOiBsaXN0ZW4gZm9yIG5ldGxpbmsKICAgY2hhbmdlIGV2ZW50cyBmb3IgdGhlIGFycC1yZWxhdGVkIHRhYmxlcwoKMjAxMS0wNS0wNiAxODozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgb3B0aW9uYWwgc3VwcG9ydCBmb3IgbG9jYWwgRE5TU0VDIHZhbGlkYXRpb24KICAgb2YgaG9zdG5hbWVzCiAgIAogICAtIG9wdGlvbmFsIGF0IGNvbmZpZ3VyZSB0aW1lOiAtLXdpdGgtbG9jYWwtZG5zc2VjLXZhbGlkYXRpb24KICAgLSByZXF1aXJlcyBETlNTRUMtVG9vbCB2YWxpZGF0aW9uIGxpYnJhcmllcwogICAtIGluaXRpYWwgc3VwcG9ydCwgZm9yIHN5c3RlbXMgd2l0aCBnZXRhZGRyaW5mby4gc3VwcG9ydCBmb3IKICAgYWRkaXRpb25hbAogICByZXNvbHZlciBpbnRlcmZhY2VzIGNvbWluZyBzb29uLgogICAtIGFsc28gVE9ETzogZmxhZyBmb3IgaWdub3JpbmcgdmFsaWRhdG9pbiBlcnJvcnMgKGxvZyAmIGNvbnRpbnVlKQoKMjAxMS0wNS0wNiAxODozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oOgoKICAgbW92ZSB1bnVzZWQgKGFuZCB0b28gZ2VuZXJpYykgdG9rZW4gd2l0aGluIFVDRF9DT01QQVRJQkxFIGlmZGVmCiAgIAogICAtIE1BWExBQkVMIGNvbmZsaWN0cyB3aXRoIDxhcnBhL25hbWVzZXIuaD4KICAgLSBhZGRlZCBORVRTTk1QX01BWExBQkVMCgoyMDExLTA1LTA2IDE4OjM2ICByc3RvcnkKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgY29uZmlndXJlL01ha2VmaWxlcyBmb3IgRE5TU0VDIGxvY2FsIHZhbGlkYXRpb24gb3B0aW9uCgoyMDExLTA1LTA2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgcmVtb3ZlZCB0aGUgYWNjaWRlbnRhbCBicm9rZW4gZmVhdHVyZSByZXF1aXJlIGxpbmUgdGhhdCBnb3QgaGFsZgogICBpbnNlcnRlZAoKMjAxMS0wNS0wNiAxMzo1MCAgZHRzMTIKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgRml4IGluY29tcGxldGUgdW5pbnN0YWxsIGNvbmZpZ3VyYXRpb246CiAgIC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTAogICAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzCgoyMDExLTA1LTA2IDEyOjU4ICBkdHMxMgoKICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDoKCiAgIFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocyBjb250YWluaW5nIHNwYWNlcwoKMjAxMS0wNS0wNiAxMjo1NyAgZHRzMTIKCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6CgogICBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQoKMjAxMS0wNS0wNSAyMTo0OCAgbmJhCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcyBub3QgZGVmaW5lIElQX1NFTkRTUkNBRERSKQoKMjAxMS0wNS0wNSAyMDoyOSAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgoKICAgRml4IHNwZWxsaW5nIG9mIFNPX1JFQ1ZEU1RBRERSCgoyMDExLTA1LTA1IDE4OjU0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IGFwcHM6IGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aW1lb3V0cyBhbmQgcmV0cmllcwoKMjAxMS0wNS0wNSAwNjowNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlCiAgIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzCiAgIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKQogICBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuCgoyMDExLTA1LTA1IDA1OjU3ICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbiwgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgUmVtb3ZlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgc29sdXRpb24gYW5kIHByb2plY3QgZmlsZXMgYWdhaW4gc2luY2UKICAgVmlzdWFsIFN0dWRpbyAyMDEwIHJlZnVzZXMgdG8gbG9hZCB0aGVzZS4KCjIwMTEtMDUtMDQgMjM6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gdGhlIHBlcmwvcHl0aG9uIGZlYXR1cmUgbGVmdG92ZXJzCgoyMDExLTA1LTA0IDIzOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGZpeCBtaWIgbW9kdWxlIGludm9jYXRpb24KCjIwMTEtMDUtMDQgMjA6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIGZpeCBpZmRlZiB0eXBvCgoyMDExLTA1LTA0IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBwZXJsL3B5dGhvbiBmZWF0dXJlIGRlcGVuZGVuY2llcwoKMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgcmV2ZXJ0ZWQgYXV0b19ubGlzdCBtYWNybyB1c2FnZTsgdGhlIGZ1bmN0aW9uIGlzIHVzZWQgaW4gaGVhZGVycwoKMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGQgYSAtVCBvcHRpb24gdG8gcnVuICdtYWtlIHRlc3QnCgoyMDExLTA1LTA0IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHRoZSBlbmNvZGVfa2V5Y2hhbmdlIC5mdCBmaWxlbmFtZQoKMjAxMS0wNS0wNCAxNjoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCB0aGUgZmVhdHVyZXMgcmVxdWlyZWQgYnkgdGhlIFRyYXBSZWNlaXZlciBtb2R1bGUKCjIwMTEtMDUtMDQgMTY6MjAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIHRoZSBUcmFwUmVjZWl2ZXIgdG8gdGhlIGxpc3Qgb2YgcGVybCBtb2R1bGVzCgoyMDExLTA1LTA0IDE0OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHVzZSB0aGUgbmV3ZXIgTmV0LVNOTVAgQVBJcywgcmF0aGVyIHRoYW4gdGhlIG9sZGVyIFVDRCBvbmVzCgoyMDExLTA1LTA0IDE0OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBTRVQgY29kZSB3aGVuIHVuZGVyIC0tcmVhZC1vbmx5IG1vZGUKCjIwMTEtMDUtMDQgMTQ6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHJlcXVpcmUgY2hlY2tfdmJfdWludAoKMjAxMS0wNS0wNCAxNDo0MSAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMsCiAgICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgICAKICAgICAgcHl0aG9uL25ldHNubXAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBsYXN0IG9mIHRoZSBwZXJsLXVzZWQgZmVhdHVyZSBmdW5jdGlvbnMKCjIwMTEtMDUtMDQgMTQ6NDAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgc3RhcnRlZCB0aGUgZmluYWwgc2V0IG9mIGZ1bmN0aW9uIHJlbW92YWxzIGZvciBmZWF0dXJlcyByZXF1aXJlZAogICBieSBwZXJsL3B5dGhvbgoKMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaToKCiAgIGFkZGVkIHRoZSBuZXQtc25tcC1mZWF0dXJlcy5oIGhlYWRlcgoKMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKCiAgICogIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oOgoKICAgQWRkZWQgcGVybCBmZWF0dXJlIHJlcXVpcmVtZW50cwoKMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgcGVybC9BU04vbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDoKCiAgIGhvcGVmdWxseSB3b3JraW5nIHJ1bGVzIHRvIGFwcGx5IGZlYXR1cmUgcmVxdWlyZW1lbnRzIHRvIHBlcmwgYW5kCiAgIHB5dGhvbgoKMjAxMS0wNS0wNCAxNDozOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vcmUgY2hhbmdlcyB0byByZW1vdmUgdW5uZWVkZWQgZnVuY3Rpb25zIHByaW1hcmlseSB3aGVuIHdyaXRlCiAgIG1vZGUgaXMgdHVybmVkIG9mZgoKMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGNoYW5nZSB0aGUgd2FudCBpbnZvY2F0aW9uIHRvIG9ubHkgZGVmYXVsdCB0byBleGNsdWRlIGV4dGVybmFsCiAgIGhvb2tzCgoyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBzZWFyY2ggdGhyb3VnaCAueHMgZmlsZXMgZm9yIGZ1bmN0aW9uIGludm9jYXRpb25zCgoyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBmb3Jnb3QgYSBzZW1pY29sb24KCjIwMTEtMDUtMDQgMTQ6MzcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYzoKCiAgIGlxdWVyeSBwZHUgc2Vzc2lvbnMgYXJlIG9ubHkgbmVlZGVkIGluIHdyaXRlIG1vZGUuCgoyMDExLTA1LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGZlYXR1cmUgZGV0ZWN0aW9uIG9mIHNvbWV0aW1lcy1idWlsdCBhcHBsaWNhdGlvbnMKCjIwMTEtMDUtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIHVzZSB0aGUgZmVhdHVyZV91bnVzZWQgbWFjcm8gZm9yIG1ha2luZyBhbiBlbXB0eSBmaWxlIGZvcgogICBjb25zaXN0ZW5jeQoKMjAxMS0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0bHMuYywgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBBbm90aGVyIHN3ZWVwIGZvciB1bnVzZWQgZnVuY3Rpb25zIHdoZW4gcmVhZF9vbmx5IG1vZGUgaXMgdHVybmVkCiAgIG9uCgoyMDExLTA1LTA0IDE0OjM0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBtYXJrIGEgc2xldyBvZiBmdW5jdGlvbnMgYXMgZmVhdHVyZXMgdGhhdCBhcmUgb25seSBuZWVkZWQgd2l0aAogICB3cml0ZV9zdXBwb3J0CgoyMDExLTA1LTA0IDE0OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBydW4gZ3JlcCB3aXRoIC1uCgoyMDExLTA1LTA0IDE0OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmVhdHVyaXplIG5ldHNubXBfc29ja2FkZHJfc2l6ZQoKMjAxMS0wNS0wNCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgcmVtb3ZlIGEgZmVhdHVyZV9yZXF1aXJlIG5vdCBhY3R1YWxseSBuZWVkZWQuCgoyMDExLTA1LTA0IDE0OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgbWFyayBTVUJDT05UQUlORVJfRklORCBhcyBhIGZlYXR1cmUKCjIwMTEtMDUtMDQgMTQ6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICB0aGUgcm93IGNyZWF0aW9uIEFQSSBpcyBvbmx5IHVzZWQgaW4gdGhlIFRTTSBpbXBsZW1lbnRhdGlvbgoKMjAxMS0wNS0wNCAxNDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHRoZSBuZXdlciBjb250ZXh0IGVuZ2luZUlEIHByb2JpbmcgaXMgb25seSBuZWVkZWQgaWZmIFRTTSBpcyBpbgogICB1c2UKCjIwMTEtMDUtMDQgMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBmaXggYW4gaWZkZWYgdHlwbwoKMjAxMS0wNS0wNCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIG1vdmVkIGZldGF1cmUgY2hpbGRfb2Ygc3RhdGVtZW50cyB0byB0aGUgdG9wIG9mIHRoZSBmaWxlCgoyMDExLTA1LTA0IDE0OjMwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIG1hcmtlZCBhIGNvdXBsZSBvZiByYXJlbHkgdXNlZCBjb250YWluZXIgZnVuY3Rpb25zLgoKMjAxMS0wNS0wNCAxNDoyOSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBzcGxpdCBvdXQgdGhlIHByZWZpeF9pbmZvIGZlYXR1cmUgaW50byBzdWItZmVhdHVyZXMKCjIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmM6CgogICBtYXJrIHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMgYXMgdW5uZWVkZWQKCjIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmM6CgogICBmaXggYSBjaGlsZF9vZiBzdGF0ZW1lbnQgd2l0aCBhIGNvcHkvcGFzdGUgZXJyb3IKCjIwMTEtMDUtMDQgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHRoZSBjb250YWluZXIgcm93LXJlbW92ZSBpcyBvbmx5IG5lZWRlZCBpZiB0aGUgdGRhdGEgcmVtb3ZlX3JvdwogICBpcyBuZWVkZWQKCjIwMTEtMDUtMDQgMTQ6MjggIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBmZWF0dXJlIG1hcmtpbmcgb2YgdW51c2VkIHRkYXRhIGZ1bmN0aW9ucwogICB0YWJsZV90ZGF0YV9kZWxldGVfdGFibGUKICAgdGFibGVfdGRhdGFfZXh0cmFjdF90YWJsZQogICB0YWJsZV90ZGF0YV9yZW1vdmVfcm93CgoyMDExLTA1LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmM6CgogICByZW1vdmFsIG9mIHNvbWUgcmFyZWx5IHVzZWQgZnVuY3Rpb25zCiAgIHRhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cKICAgdGFibGVfZGF0YXNldF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZQoKMjAxMS0wNS0wNCAxNDoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGRlZCBhIGRlZmluaXRpb24gdG8gaW5jb3Jwb3JhdGUgcmVhZF9vbmx5L25vdGlmeV9vbmx5CgoyMDExLTA1LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGFkZGVkIGEgbWlzc2luZyBmZWF0dXJlIGRlZmluaXRpb24gbGluZQoKMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGRlZCBiYWNrIGluIG1pc3NpbmcgbWliZ3JvdXAgZmVhdHVyZSBkZWZpbml0aW9uIGxpc3QKCjIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgSW5jbHVkZSB0aGUgb3JpZ2luYWwgYmFzZSBmbGFncyB0byBlbnN1cmUgLS13aXRoLWRlZmF1bHRzIGdldHMKICAgcGlja2VkIHVwCgoyMDExLTA1LTA0IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGZpeCB1c2FnZQoKMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGRlZCBhIC1iIGZsYWcgZm9yIGJhc2UgYXJndW1lbnRzIHRvIHN0YXJ0IGZyb20KCjIwMTEtMDUtMDQgMTQ6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZGVmYXVsdCB0byBhIGxpbmVhciBzZWFjaCBvZiBzaXplIHRlc3RzLCByYXRoZXIgdGhhbiBleHBvbmVudGlhbAoKMjAxMS0wNS0wMyAxODo1NSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBHdWFyZCBuZXRzbm1wX3VkcF9yZWN2ZnJvbSgpIGV0Yy4gZGVjbGFyYXRpb25zCiAgIGNvbnNpc3RlbnRseS4KICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4KCjIwMTEtMDUtMDMgMTU6MjkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQKICAgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KCjIwMTEtMDUtMDIgMTE6MjIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93CiAgIGJlIHVzZWQgaW4gdGhlIE1pbkdXIGVudmlyb25tZW50LgoKMjAxMS0wNC0yOSAxMToxNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGluCiAgIHNubXBsaWIvd2luc2VydmljZS5jLgoKMjAxMS0wNC0yOSAwMDoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG5vdGUgYWJvdXQgdGhlIG5ldyB0aW1pbmcgZnVuY3Rpb24KCjIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgVXBkYXRlIHRoZSBtYW51YWwgcGFnZSB0byByZWZsZWN0IHRoZSBuZXcgdGltaW5nIG9wdGlvbnMKCjIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIGJldHRlciBkb2N1bWVudGF0aW9uCgoyMDExLTA0LTI5IDAwOjE0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6CgogICB1c2UgdGhlIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZvciBwYXJzaW5nCiAgIGZyZXF1ZW5jaWVzL3RpbWUKCjIwMTEtMDQtMjkgMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6CgogICBmaXggcGR1IGJ1aWxkaW5nIHRlc3RzIHVuZGVyIHZhcmlvdXMgZGlzYWJsZWQgbW9kZXMKCjIwMTEtMDQtMjkgMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6CgogICBkb24ndCB0cnkgdG8gYnVpbGQgdGhlIEdFVCBwZHUgdW5kZXIgbm90aWZ5X29ubHkKCjIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggYSBidWcgd2l0aCBuby1zdWZmaXggc3RyaW5ncyBhbmQgdXNlIGEgY29uc3QgaW5wdXQgc3RyaW5nCgoyMDExLTA0LTI5IDAwOjEyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3NfY2xpYi5jOgoKICAgQSBuZXcgdW5pdCB0ZXN0IGZvciB0aGUgdGltZSBjb252ZXJzaW9uIHJvdXRpbmUKCjIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICB1c2UgdGhlIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZ1bmN0aW9uIGZvciBjb21wdXRpbmcKICAgaW50ZXJ2YWwgcGVyaW9kcwoKMjAxMS0wNC0yOSAwMDoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEFkZGVkIGEgbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb25zIHRvIGNvbnZlcnQsIGUuZy4sCiAgIDFoIHRvIDM2MDAKCjIwMTEtMDQtMjkgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSBjb2RlIHRvIGJ1aWxkL3BhcnNlIEdFVC9ldGMgcmVxdWVzdHMgd2hlbiBOT1RJRllfT05MWSBpcwogICB0dXJuZWQgb24uCgoyMDExLTA0LTI3IDIxOjMzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIHRoZSBORVdTIHRvIHJlZmxlY3QgdGhlIG5ldyAtLWVuYWJsZS1yZWFkLW9ubHkgYW5kCiAgIC0tZW5hYmxlLW5vdGlmeS1vbmx5CgoyMDExLTA0LTI3IDIxOjMzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgbWlub3IgaW1wcm92ZW1lbnRzIGZvciByb25seSB2cyByd3JpdGUgaGFuZGxpbmcKCjIwMTEtMDQtMjcgMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICBzdGlsbCBlbmFibGUgUk9OTFkgd2hlbiBSV1JJVEUgaXNuJ3QgcG9zc2libGUKCjIwMTEtMDQtMjcgMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgZml4IEdFVCBzdXBwb3J0IHdoZW4gbm9fd3JpdGUgaXMgZW5hYmxlZAoKMjAxMS0wNC0yNyAyMTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIG1hcmsgYSBmdXR1cmUgbW9kaWZpY2F0aW9uIG5lZWQgaW4gYSBjb21tZW50CgoyMDExLTA0LTI3IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGZpeCBoYW5kbGluZyBvZiBub193cml0ZSBzdXBwb3J0CgoyMDExLTA0LTI3IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmM6CgogICBkb24ndCBvcGVuIGFueSBsaXN0ZW5pbmcgdHJhbnNwb3J0cyB3aGVuIG5vdGlmeS1vbmx5IGlzIHNwZWNpZmllZAoKMjAxMS0wNC0yNyAyMTozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIHNldCB0aGUgbm8tbGlzdGVuIGFuZCByZWFkLW9ubHkgZmxhZ3Mgd2hlbiAtLWVuYWJsZS1ub3RpZnktb25seQogICBpcyBzZXQKCjIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByYW4gYXV0b2hlYWRlcgoKMjAxMS0wNC0yNyAyMTozMCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgaW1wbGVtZW50IHRoZSBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUIGluIHRoZXNlIHRyYW5zcG9ydHMKCjIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBtb3ZlIHRoZSByZWFkLW9ubHkgZmxhZyBkZWZpbml0aW9uIGJlbG93IHRoZSBub3RpZnktb25seSwgc2luY2UKICAgbm90aWZ5LW9ubHkgbmVlZHMgdG8gaW1wbHkgcmVhZC1vbmx5CgoyMDExLTA0LTI3IDIxOjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRGVmaW5lZCBhIG5ldyAtLWVuYWJsZS1ub3RpZnktb25seSBmbGFnIGZvciBidWlsZGluZyBhIHRvb2xzZXQKICAgdGhhdCBvbmx5IGFsbG93cyBmb3Igbm90aWZpY2F0aW9ucyB3aXRoIG5vIHJlYWQvd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERlZmluZWQgYSBuZXcgLS1uby1saXN0ZW4gZmxhZyB0byByZW1vdmUgbGlzdGVuaW5nIHN1cHBvcnQKCjIwMTEtMDQtMjcgMjE6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24KCjIwMTEtMDQtMjcgMjE6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oOgoKICAgdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24KCjIwMTEtMDQtMjcgMjE6MjggIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgZmluaXNoZWQgbm9fd3JpdGUgc3VwcG9ydCBmb3IgY29tbW9uIGluY2x1ZGVkIHRhYmxlcwoKMjAxMS0wNC0yNyAyMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBBZGQgYmFjayBpbiAnbmV0c25tcF9zZXRfcm93X2NvbHVtbicgd2hlbiBub193cml0ZSBzdXBwb3J0IGlzCiAgIGVuYWJsZWQKICAgVGhpcyBmdW5jdGlvbiBpcyBhIGdlbmVyaWMgZGF0YSBtYW5pcHVsYXRpb24gZnVuY3Rpb24sIG5vdCBTRVQKICAgc3BlY2lmaWMKCjIwMTEtMDQtMjcgMjE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZG9uJ3QgdXNlIG1hcmtfcm93X2NvbHVtbl93cml0YWJsZSB3aGVuIHJlYWQtb25seSBzdXBwb3J0IGlzCiAgIGVuYWJsZWQKCjIwMTEtMDQtMjcgMjE6MjYgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggbm9fd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBmaXggbm9fd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgRG9uJ3QgZnJlZSB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24KICAgaXQKCjIwMTEtMDQtMjYgMTg6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL2dpdHRvb2xzLCBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6CgogICBnaXQgYmFzaC1zaGVsbCBmdW5jdGlvbnMgdG8gZW5hYmxlIGJyYW5jaCBzd2l0Y2hpbmcgYW5kIGV4dGVybmFsCiAgIGJ1aWxkaW5nCiAgIFRoZXNlIGxvY2FsIHNoZWxsIGZ1bmN0aW9ucyAoc25tcGNvbmZpZ3VyZSBhbmQgc25tcG1ha2UpIGxldCB5b3UKICAgY29uZmlndXJlIGFuZCBidWlsZCB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgaW4gZXh0ZXJuYWwKICAgZGlyZWN0b3JpZXMKICAgdGhhdCBhcmUgYXV0by1jYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBleGlzdGluZyBicmFuY2ggbmFtZSAod2l0aAogICBhbgogICBvcHRpb25hbCBzdWZmaXgpLiBUaGlzIGxldHMgeW91IHJ1biAnc25tcG1ha2UnIGZyb20gd2l0aGluIHRoZQogICBzb3VyY2UKICAgZGlyZWN0b3J5IGFuZCBoYXZlIGl0IGFjdHVhbGx5IGV4dGVybmFsbHkga2VlcCB0cmFjayBvZiBtb2RpZmllZAogICBmaWxlcywgZXRjLCBzbyBidWlsZGluZyBpbiBtdWx0aXBsZSBicmFuY2hlcyBjYW4gYmUgZG9uZSBmcm9tIGEKICAgc2luZ2xlCiAgIGdpdCBjaGVja291dC4KCjIwMTEtMDQtMjUgMjA6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBjbGVhbiB1cCB0aGUgaXRlcmF0b3JzCgoyMDExLTA0LTI1IDIwOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZnJlZSB2YXJiaW5kcyBhZnRlciBzZW5kaW5nCgoyMDExLTA0LTI1IDE4OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENvbW1lbnRlZCBvdXQgYW4gdW51c2VkIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQKICAgYWJvdXQgaXQuCgoyMDExLTA0LTI1IDE4OjQ2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncy4KCjIwMTEtMDQtMjMgMTQ6MzEgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IG51bGwgY2hlY2sKCjIwMTEtMDQtMjMgMTQ6MDUgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBNb3ZlIHBvaW50ZXIgZGVyZWZlcmVuY2UgdG8gYWZ0ZXIgdGhlIGNoZWNrIGZvciBzdWNjZXNzZnVsCiAgIGFsbG9jYXRpb24gb2YgdGhlIHBvaW50ZXIKCjIwMTEtMDQtMjMgMDg6MjAgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjMgMDg6MTYgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIzIDA4OjA2ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIzIDA3OjU1ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIyIDE5OjM1ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjIgMTk6MzAgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMjIgMTc6MjkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB3aGljaCBtb2R1bGUgaXMgcmVxdWlyZWQgd2hlbiBidWlsZGluZyB0byBnZXQgdGhlIGRlbGl2ZXIKICAgc3VwcG9ydAoKMjAxMS0wNC0yMiAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGRlbGV0ZWQgYW4gdW5uZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudAoKMjAxMS0wNC0yMiAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHByb3Blcmx5IHVwZGF0ZSB0aGUgbWF4IGNvdW50IGluIHRoZSBvdXRnb2luZyBub3RpZmljYXRpb25zCgoyMDExLTA0LTIyIDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgYmV0dGVyIHBhY2tldCBlc3RpbWF0aW9uIHRvIGVuc3VyZSB3ZSBkb24ndCBvdmVycnVuLgoKMjAxMS0wNC0yMiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGVzdGltYXRlIHRoZSBwYWNrZXQgc2l6ZSBhbmQgYnJlYWsgdGhlIG5vdGlmaWNhdGlvbiB1cCBiYXNlZCBvbgogICBpdAoKMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHRyYW5zZm9ybSB0aGUgbm90aWZpY2F0aW9uIHNlbmRpbmcgaW50byBhIGxhcmdlciBsb29wIGZvciBsYXRlcgogICBtdWx0aS1ub3RpZnMKCjIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGZlYXR1cmUgbWFya2luZy9zZWxlY3Rpb24KCjIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoZSBuZXcgZGVsaXZlcnkgYnkgbm90aWZpY2F0aW9ucwoKMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IHRoZSBtaW5pbWFsaXN0IHN1cHBvcnQKCjIwMTEtMDQtMjIgMTY6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIG5ldyBkZWxpdmVyQnlOb3RpZnkgY29uZmlnIHRva2VucwoKMjAxMS0wNC0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGFsbG93IHJ1biB0aW1lIG1vZGlmaWNhdGlvbnMgb2YgdGhlIE9JRHMgdG8gdXNlCgoyMDExLTA0LTIyIDE2OjMwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGFkZCBjb25maWcgZmxhZ3MgdG8gbm90IGluY2x1ZGUgdGhlIHBlcmlvZCBjb25maWcgYW5kIG1zZyBjb3VudAogICB2YWx1ZXMKCjIwMTEtMDQtMjIgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBpbmNsdWRlIHRoZSBwZXJpb2RpYyBjb3VudCwgdGhlIG1lc3NhZ2UgbnVtYmVyIGFuZCB0aGUgbWF4CiAgIG1lc3NhZ2UgbnVtYmVyCgoyMDExLTA0LTIyIDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZGVsZXRlZCBkZWJ1Z2dpbmcgY29tbWVudAoKMjAxMS0wNC0yMiAxNjoyOSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIG1pYnMvTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQi50eHQ6CgogICBNb3ZlIHRoZSBub3RpZmljYXRpb24gZGVmaW5pdGlvbiB0byB3aXRoaW4gdGhlIHN1Yi1taWIKCjIwMTEtMDQtMjIgMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBkZWxldGUgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgbG9hZCB0aGUgTUlCIGludG8gdGhlIGRlZmF1bHQgc2V0CgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OgoKICAgQSBuZXcgbWliIHRvIGhvbGQgdGhlIHBlcmlvZGljIG5vdGlmeSBvYmplY3RzCgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZmlsbCBvdXQgdGhlIGNvbmZpZyBmcmVlIHJvdXRpbmUKCjIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBwcm9wZXJseSBtb25pdG9yIHRoZSB3aG9sZSBjb250YWluZXIKCjIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgcGFyc2UgdGhlIGNvbmYgZmlsZXMgYW5kIGNyZWF0ZSBhbmQgaW5zZXJ0IG9iamVjdHMgaW50byB0aGUKICAgY29udGFpbmVyCgoyMDExLTA0LTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZGVmaW5lZCBhIGNvbnRhaW5lciB0byBzdG9yZSBhIGxpc3Qgb2YgZGVsaXZlciBvYmplY3RzIGluCgoyMDExLTA0LTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgYWRkZWQgYSBuZXh0X3J1biB0aW1lc3RhbXAKCjIwMTEtMDQtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBhY3R1YWxseSBzZW5kIGEgbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlc3VsdHMKCjIwMTEtMDQtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBtYWtlIHRoZSB3YWxrIG9uIHRoZSB0ZXN0IG9iamVjdCBmdW5jdGlvbi4KCjIwMTEtMDQtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBjcmVhdGUgYSBtYXggcGFja2V0IHNpemUgY29uZmlnIHRva2VuIGFuZCBwYXJzZSBpdAoKMjAxMS0wNC0yMiAxNjoyNSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBtaW5pbWFsIHN0YXJ0aW5nIHRlc3Qgb2JqZWN0CgoyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGFkZGVkIGEgZnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHJ1bgoKMjAxMS0wNC0yMiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHJlbW92ZSBsZWZ0IGluIHRlbXBsYXRlIGxpbmUKCjIwMTEtMDQtMjIgMTY6MjUgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgdXNlIGFuIGFsYXJtIGNhbGxiYWNrIHByb3RvdHlwZSBmb3IgZXhlY3V0ZQoKMjAxMS0wNC0yMiAxNjoyNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIsIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBiZWdpbm5pbmcgdGVtcGxhdGUgY29kZSBmb3IgZGVsaXZlcnkgb2YgZGF0YSBieSBub3RpZmljYXRpb25zCgoyMDExLTA0LTIyIDA5OjEzICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjIgMDk6MDcgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMKCjIwMTEtMDQtMjIgMDk6MDMgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMTkgMDg6MzggIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbjoKCiAgIEFkZGVkIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbiBmaWxlIGZvciBidWlsZGluZwogICB0aGUgTmV0LVNOTVAgbGlicmFyeSBhcyBhIHN0YXRpYyBsaWJyYXJ5LiBCb3RoIHRoZSBXaW4zMiBhbmQgdGhlCiAgIHg2NCBjb25maWd1cmF0aW9ucyBhcmUgaW5jbHVkZWQuCgoyMDExLTA0LTE5IDA3OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMS0wNC0xOSAwNzozOSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOgoKICAgTW9yZSBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBmaWxlIGNsZWFudXAuCgoyMDExLTA0LTE5IDA2OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9iaW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDExLTA0LTE4IDE1OjM0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvajoKCiAgIENsZWFuZWQgdXAgV2luMzIgVlMyMDA1IHByb2plY3QgZmlsZXMgLSByZW1vdmVkIHN1cGVyZmx1b3VzCiAgIGxpYnJhcnkgcmVmZXJlbmNlcy4KCjIwMTEtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgQWRkZWQgeDY0IGNvbmZpZ3VyYXRpb25zLgoKMjAxMS0wNC0xOCAxNToxNCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliOgoKICAgQW5vdGhlciBXaW4zMi1yZWxhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QgdXBkYXRlLgoKMjAxMS0wNC0xOCAxNToxMyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46CgogICBBZGRlZCB3aW4zMmRsbC1yZWxhdGVkIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbgogICBmaWxlcy4KCjIwMTEtMDQtMTggMTM6MzcgIGJ2YXNzY2hlCgogICAqICB3aW4zMiwgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgd2luMzIvbGliLCB3aW4zMi9saWJhZ2VudCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLCB3aW4zMi9saWJzbm1wLCB3aW4zMi9saWJzbm1wX2RsbCwgICAKICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbmV0LXNubXAsIHdpbjMyL25ldHNubXBtaWJzLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBnZXQsIHdpbjMyL3NubXBnZXRuZXh0LCAgCiAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKICAgICAgd2luMzIvc25tcHRhYmxlLCB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYXAsIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHVzbSwgd2luMzIvc25tcHZhY20sICAgCiAgICAgIHdpbjMyL3NubXB3YWxrOgoKICAgQWRkZWQgKi52Y3Byb2ouKi51c2VyIGFuZCB4NjQgdG8gdGhlIHdpbjMyIFN1YnZlcnNpb24gaWdub3JlCiAgIGxpc3RzLiBSYW4gdGhlc2UgdGhyb3VnaCBMQ19BTEw9QyBzb3J0IC1mdSB0b28uCgoyMDExLTA0LTE4IDEyOjEwICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIFdpbjMyIERMTCBidWlsZCBmaXhlcy4KCjIwMTEtMDQtMTcgMjA6NTYgIGR0czEyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0CiAgIHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKCjIwMTEtMDQtMTUgMTM6NDIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lECiAgIHByZWZpeCBsZW5ndGgKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQKICAgcHJlZml4IGxlbmd0aAoKMjAxMS0wNC0xNSAxMzoxNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhcHBzL3NubXB0cmFwZF9kcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtCiAgIGRldmljZXMgaW4gZGlza0lPVGFibGUKCjIwMTEtMDQtMTQgMjE6MzEgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwoKMjAxMS0wNC0xNCAyMToxMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mICd3aGlsZSAoZmFsc2UpJwogICBibG9ja3MKCjIwMTEtMDQtMTQgMjA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZiBub24tdGFibGUKICAgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQoKMjAxMS0wNC0xNCAyMDo0NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4KICAgbm90aWZpY2F0aW9uIHZhcmJpbmRzCgoyMDExLTA0LTEyIDIwOjAxICBuYmEKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliCgoyMDExLTA0LTEyIDE5OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlIGNvbHVtbnMgaW4gYnVsawogICByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSBzcGVjaWZpZWQuCgoyMDExLTA0LTEyIDE5OjUwICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4gJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycKCjIwMTEtMDQtMDkgMjE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6CgogICBSZW1vdmUgYm9ndXMgKExpbnV4KSBkZWZpbmVzCgoyMDExLTA0LTA5IDIxOjU2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKCjIwMTEtMDQtMDkgMjA6MDggIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIGNvbmZpZ3VyZSwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEJpbGwgRmVubmVycyBwYXRjaCB0byBtYWtlIERJU01BTiBQSU5HIGFuZCBUUkFDRVJPVVRFIE1JQlMKICAgY29tcGlsZSB1bmRlciBMaW51eAoKMjAxMS0wNC0wOSAyMDowNCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6CgogICBTb2xhcmlzIHN1cHBvcnQgZm9yIFNDVFAtTUlCCgoyMDExLTA0LTA5IDE5OjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kIFNZU1YgKHN1Y2ggaXMgTGludXgpCgoyMDExLTA0LTAxIDAxOjExICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOiBvdmVyaGF1bCBvZiBkZWJ1ZwogICAKICAgLSBkcmFzdGljIHJlZHVjdGlvbiBpbiBudW1iZXIgb2YgbWVzc2FnZXMgYW5kIG1zZyBjb21wbGV4aXR5CiAgIGZvciBiYXNpYyBkdGxzdWRwIHRva2VuCiAgIC0gcHJldmlvdXMgbGV2ZWwgb2YgZGV0YWlsIGF2YWlsYWJsZSBieSBhZGRpbmcgOTpkdGxzZHVwIHRva2VuCgoyMDExLTA0LTAxIDAwOjUzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOiBjbGVhbiB1cCBjbG9zZTsgY2F0Y2gKICAgJ2Nvbm5lY3QnLydkaXNjb25uZWN0JwogICAKICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEKICAgZGlzY29ubmVjdCA9IDAgYnl0ZSByZWFkLCBzc2ggc2h1dGRvd24gZmxhZyBzZXQKICAgYWRkIGJpb19jYWNoZSBmbGFncyBmb3IgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZAogICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKICAgY2xvc2UgaGFuZGxpbmc6CiAgIC0gb25seSBzZW5kIHF1ZXVlZCBkYXRhIGlmIHdlIGdvdCB0byBjb25uZWN0ZWQgc3RhdGUKICAgLSBzZXJpb3VzbHkgcmVkdWNlIHRpbWVvdXQgdG8gd2FpdCBmb3IganVuayByZWFkLiBpIHRoaW5rCiAgIHdlIHNob3VsZG4ndCBldmVuIGJvdGhlcgogICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0CiAgIHJlcGVhdGVkbHkKICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsCgoyMDExLTAzLTMxIDA1OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtYWtlIHRydW5rIGFuZCB2NS02LXBhdGNoZXMgY2xvc2VseSBhbGlnbmVkCiAgIAogICBtb3N0bHkgY2hhbmdlcyBpbiBkZWJ1ZywgY29va2llIHRyYWNraW5nCgoyMDExLTAzLTI3IDExOjA4ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIFNpbXBsaWZ5IGFycmF5IHJlc2l6aW5nIHNvbWV3aGF0IGZ1cnRoZXIKCjIwMTEtMDMtMjcgMTA6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgRG8gbm90IGFzc2lnbiBuZXdfZGF0YSBpZiB0aGUgdmFsdWUgd29uJ3QgYmUgdXNlZC4KICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KCjIwMTEtMDMtMjcgMTA6MTQgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjbGVhciBhIGNodW5rIG9mIG1lbW9yeSBpZiB0aGUgbmV4dCBhY3Rpb24KICAgb24gaXQgaXMgdG8KICAgZmlsbCBpdCBzbyB1c2UgbWFsbG9jIGluc3RlYWQgb2YgY2FsbG9jLgoKMjAxMS0wMy0yNyAxMDowOSAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBDb250YWluZXJCaW5hcnlBcnJheSByZWFsbHkgY2FuJ3QgaG9sZCBhbnl0aG5nIGJ1dCBwb2ludGVycyBhbmQKICAgdGhhdCBtZWFucyB0aGUKICAgZGF0YV9zaXplIGZpZWxkIGlzIHVubmVjZXNzYXJ5IHNvIEkgcmVtb3ZlZCBpdC4KCjIwMTEtMDMtMjYgMTk6NTUgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGUKCjIwMTEtMDMtMjYgMDg6MDcgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgVXNlIHRoZSByaWdodCBmZWF0dXJlIG1hY3JvIGluIG9yZGVyIHRvIG1ha2UgYnVpbGRzIHdpdGgKICAgLS1lbmFibGUtaXB2NiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VURQSVB2NiBzdWNjZWVkLgoKMjAxMS0wMy0yNiAwODowMiAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvcGllcyBvZiBmdW5jdGlvbnMKCjIwMTEtMDMtMjUgMjA6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgdHdlYWsgZGVidWcgbWVzc2FnZQoKMjAxMS0wMy0yNSAyMDozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogdXBkYXRlIGNlcnQgdG9rZW4gaGFuZGxpbmcKICAgCiAgIC0gcmVtb3ZlIGRlZlg1MDkgY2VydCB0b2tlbnMgKHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBiZWZvcmUKICAgNS42KQogICAtIHdhcm5pbmdzIGZvciBvdXIvdGhlaXIgdG9rZW5zLCByZWNvbW1lbmQgdXNpbmcgbG9jYWwvcGVlcgoKMjAxMS0wMy0yNSAyMDozMSAgcnN0b3J5CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBtZXJnZSBuZXRzbm1wX2R0bHN1ZHA2IGludG8gbmV0c25tcF9kdGxzdWRwCiAgIAogICB1c2UgYWRkciBzaXplIHRvIHRlbGwgdGhlbSBhcGFydAoKMjAxMS0wMy0yNSAyMDozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGxvZyAob25jZSkgd2FybmluZyB3aGVuIGRlcHJlY2F0ZWQgZl9jcmVhdGVfZnJvbV90c3RyaW5nCiAgIHRyYW5zcG9ydCBmdW5jdGlvbiB1c2VkCgoyMDExLTAzLTI1IDIwOjMwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIHJlZHVjZSBjYXN0aW5nOyBtYWtlIHN1cmUgdG8gZnJlZSB0aGUgcmlnaHQgcG9pbnRlcgoKMjAxMS0wMy0yNSAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgcmVkdWNlIGNhc3RpbmcKCjIwMTEtMDMtMjQgMDY6MTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBSZXBsYWNlIGEgdmFyaWFibGUgd2l0aCBhIGNvbnN0YW50LiBNYWtlIG9uZSBtb3JlIG9pZCBjb25zdC4KCjIwMTEtMDMtMTcgMjE6MDkgIG5iYQoKICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOgoKICAgRm9ybWF0dGluZyBib3RjaAoKMjAxMS0wMy0xNyAyMTowNyAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHJlcXVpcmVkIG1pYnMKCjIwMTEtMDMtMTcgMjE6MDUgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBOZXcgUkZDIG1pYnMKCjIwMTEtMDMtMTUgMTA6MzEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBTcGVsbGluZyBmaXg6IHJlZ2luZXJhdGVkIC0+IHJlZ2VuZXJhdGVkLgoKMjAxMS0wMy0xNSAxMDoxOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIFNpbXBsaWZpZWQgcjE5NTk0IChsZWFrLWF0LWV4aXQgZml4KS4KCjIwMTEtMDMtMTUgMDk6NTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMjAxMTMuCgoyMDExLTAzLTE0IDA5OjMxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSSByb3V0aW5lLgoKMjAxMS0wMy0xMyAyMDowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8KICAgbGluZSB3aXRoIHRoZSByZXN0IG9mIHRoZSBBUEkuCgoyMDExLTAzLTEyIDA2OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQgaW5zdGVhZCBvZiBjYWxsb2MKICAgCiAgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAxMS0wMy0xMiAwNTo0NyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZSB0YWJsZXMgZnJvbQogICBTdGVwaGVuIEhlbW1pbmdlcgogICAKICAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsKICAgc3ViamVjdAogICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsKCjIwMTEtMDMtMTEgMTQ6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBtb3JlIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yCiAgIGxvY2FsIGNlcnQKCjIwMTEtMDMtMTEgMTI6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIE1pbkdXOiBkc2tUYWJsZTogUmVwb3J0IHplcm8gZm9yIHVuaW1wbGVtZW50ZWQgZmllbGRzIGluc3RlYWQgb2YKICAgcmFuZG9tIGRhdGEuCgoyMDExLTAzLTExIDA4OjQyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQnVpbGRzIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lCiAgIGxvY2FsdGltZV9yKS4KCjIwMTEtMDMtMTEgMDM6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVmaW5lIGNlcnQgZGVidWdnaW5nOyByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDExLTAzLTEwIDIxOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMyMDU3NjU6IGhhbmRsZSByZWNvbmZpZyBmb3IgY2VydFNlY05hbWUKICAgdG9rZW4KCjIwMTEtMDMtMTAgMjA6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+IG1lc3NhZ2VzLgoKMjAxMS0wMy0xMCAxOTo1NSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24KICAgb2YgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkuCgoyMDExLTAzLTEwIDE5OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluIGFnZW50CiAgIHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZQogICBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4KCjIwMTEtMDMtMTAgMTk6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiAgIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuCgoyMDExLTAzLTEwIDE4OjU1ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDlsYXJnZV9mZF9zZXRfY2xpYi5jOgoKICAgQWRkZWQgYSBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuCgoyMDExLTAzLTEwIDE4OjUyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1ha2UKICAgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgY2xlYXIgYWxsIHJlbGV2YW50IGZpbGUKICAgZGVzY3JpcHRvcnMuCgoyMDExLTAzLTEwIDE1OjUxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQgaGFuZGxpbmcgb2YgVFoKICAgb2Zmc2V0cwoKMjAxMS0wMy0xMCAxNTo0MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlOgoKICAgSWdub3JlIG9iamVjdCBmaWxlcyBhbmQgbGlicmFyaWVzCgoyMDExLTAzLTEwIDE1OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHM6CgogICBJZ25vcmUgb2JqZWN0IGZpbGVzIGFuZCBsaWJyYXJpZXMKCjIwMTEtMDMtMTAgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgbWFrZSB2YXJpYWJsZSBuYW1lcyBtYXRjaAoKMjAxMS0wMy0xMCAxNDoyOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmM6CgogICBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuCgoyMDExLTAzLTEwIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIGZpeGVkIGluc3RhbGxhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBvcHRpb25hbCBTRVQgcHJvZ3JhbXMKCjIwMTEtMDMtMDggMDA6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICBjaG1vZCBhK3gKCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgcHJpbnQgYW4gZXJyb3IgaWYgdGhlIGVuZCBvZiBhIGZpbGUgd2FzIHJlYWNoZWQgYW5kIHdlJ3JlIG5vdAogICBiYWNrCiAgIGludG8gdGhlIHN0YXRlIHdlIGNhbiB3cml0ZTsgb3RoZXJ3aXNlIGEgY2xvc2luZyAjaWZkZWYgaXMKICAgbWlzc2luZy4KCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgZml4IGVuZGlmIGNvbW1lbnQgdG8gbWF0Y2ggdGhlIG9wZW5pbmcgaWZkZWYKCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgcmVzZXQgdGhlIGNhbndyaXRlIGZsYWcgZm9yIGV2ZXJ5IGZpbGUKCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICB0ZW1wb3JhcmlseSBsZWF2ZSBpbiBoZWFkZXIgZmlsZXMKCjIwMTEtMDMtMDggMDA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgY2hhbmdlIHRoZSB1bmlxdWUgZmlsZSBjaGVjayB0byBvbmUgdGhhdCBpcyBub3QgaW4gdGhlIG1pYmdyb3VwCiAgIGRpcmVjdG9yeQoKMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcmVhZC1vbmx5L1QwMTQxc25tcHYyY3NldGZhaWxfc2ltcGxlOgoKICAgYSB0ZXN0IGZvciBlbnN1cmluZyB0aGUgYWdlbnQgcmVqZWN0cyBTRVQgcmVxdWVzdHMgd2l0aAogICAtLWVuYWJsZS1yZWFkLW9ubHkKCjIwMTEtMDMtMDggMDA6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZToKCiAgIGFkZCBiYWNrIGluIHRoZSBzdG9wYWdlbnQgY29tbWFuZAoKMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMXBkdV90eXBlX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAzcGR1X3BhcnNlX2NsaWIuYzoKCiAgIHVuaXQgdGVzdHMgd3JpdGVuIGZvciB0aGUgcmVhZC1vbmx5IHN1cHBvcnQgY29udmVydGVkIHRvIHdvcmsKICAgd2l0aCBvciB3aXRob3V0IHJlYWQtb25seQoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOgoKICAgZG9uJ3QgcnVuIHRoZSBzZXQgdGVzdCBpZiBub193cml0ZV9zdXBwb3J0IGlzIHR1cm5lZCBvbgoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZToKCiAgIHNraXAgaWYgbm9fd3JpdGVfc3VwcG9ydAoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOgoKICAgQSBuZXcgdGVzdCB0byBjaGVjayB3aGV0aGVyIFNOTVB2MmMgU0VUcyB0byBzeXNDb250YWN0IHdvcmsgYXMKICAgZXhwZWN0ZWQKCjIwMTEtMDMtMDggMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWc6CgogICBhbGxvdyBmb3IgdjJjIFNFVCBzdXBwb3J0IHRlc3RpbmcKCjIwMTEtMDMtMDggMDA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQWxsb3cgZm9yIHNpbmdsZSBxdW90ZXMgZm9yIHZhY20gY29udGV4dCBuYW1lIHF1b3RpbmcgdG9vCgoyMDExLTAzLTA3IDE5OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlIHRoZSB3b3JkIHRlc3QgaW4gdGhlIHRlc3QKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIGZpeCB0aGUgY29uZmlndXJlIHRlc3RzIHRvIGluY2x1ZGUgdGhlIHdvcmQgdGVzdCBpbiB0aGUgdGVzdAoKMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczoKCiAgIEFkZGVkIGFuIGFubm95aW5nbHkgbG9uZyBsaXN0IG9mIGV4Y2VwdGlvbnMgdGhhdCBuZWVkcyB0byBiZQogICBhdXRvbWF0ZWQKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICBBIHF1aWNrIHBlcmwgc2NyaXB0IHRvIHJlbW92ZSB1bm5lZWRlZCBjb2RlIG1vZHVsZXMgZnJvbSB0aGUKICAgbW9kdWxlcyBkaXJlY3RvcnkKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIG1vcmUgaW1wcm92ZW1lbnRzIChyZW1vdmVtZW50cykgZm9yIGZlYXR1cml6YXRpb24gYW5kIHJlYWQtb25seQogICBzdXBwb3J0CgoyMDExLTAzLTA3IDE3OjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyCiAgIHNvcnQgb3B0aW1pemF0aW9uCgoyMDExLTAzLTA2IDE5OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CgogICBUYWJzIHRvIHNwYWNlcwoKMjAxMS0wMy0wNiAxMToyOCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCiAgIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kCiAgIFdpbmRvd3M/KQoKMjAxMS0wMy0wNSAxOToxNiAgbWFnZnIKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgQWRkIGRyb3BwZWQgfHwncyBmcm9tIHIyMDA3MgoKMjAxMS0wMy0wNSAxMjo1MCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzoKCiAgIENsZWFuIHVwLCBhbmQgY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcKICAgZnVuY3Rpb24uCiAgIFNhdmVzIDIwMCBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlCgoyMDExLTAzLTA1IDA2OjE3ICBoYXJkYWtlcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGVzdC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIGRvbid0IGJ1aWxkIFNFVCByZWxhdGVkIGFwcHMgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkKCjIwMTEtMDMtMDUgMDY6MTYgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IGlzc3VlcyB3aXRoIGNvbWJpbmluZyAtLWVuYWJsZS1taW5pbWFsaXN0IGFuZAogICAtLWVuYWJsZS1yZWFkLW9ubHkKCjIwMTEtMDMtMDUgMDY6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZToKCiAgIGJldHRlciBvdXRwdXQgZm9yIGZpbmRpbmcgb2JqZWN0IHN5bWJvbHMuCgoyMDExLTAzLTA0IDIxOjU2ICBiYWVybQoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIGxhc3QgY29tbWl0OiBjaGFuZ2VzIHRvIGFsbG93IHBhcnNpbmcgb2YgZmVhdHVlcnMgZmlsZXMgdG8gZ2V0CiAgIGFsbCBtaW5pbWFsaXN0IHRhZ3Mgd2hpY2ggYXJlIHRoZW4gcHJvY2Vzc2VkIGZvciByZW1vdmFsCiAgIAogICB0aGlzIGNvbW1pdDogY2hhbmdlZCBjb21tZW50cy93aGl0ZSBzcGFjZQoKMjAxMS0wMy0wNCAxOToyNyAgYmFlcm0KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBhZGRlZCBub193cml0ZSBzdXBwb3J0IHRvIGV4dGVuZC5jCgoyMDExLTAzLTA0IDE5OjI2ICBiYWVybQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBBZGRlZCBtaXNzaW5nICNlbmRpZiBjb21tZW50IGZvciByZW1vdmUgaWZkZWYgY29kZSBzdXBwb3J0CgoyMDExLTAzLTA0IDE5OjI0ICBiYWVybQoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIGFkZGVkIGNoYW5nZXMgdG8gYWxsb3cgY29kZSByZW1vdmFsIGluLXBsYWNlCiAgIChpLmUuIGRvZXMgbm90IHJlcXVpcmUgY3JlYXRpbmcgYSBuZXcgZmlsZSkKCjIwMTEtMDMtMDQgMTk6MjMgIGJhZXJtCgogICAqIGxvY2FsL21pbmltYWxpc3QvaWdub3JlLnJlZ2V4cDoKCiAgIGFkZGluZyBhIGlnbm9yZS5yZWdleHAgZmlsZSB0aGF0IGNhbiBiZSB1c2VkIHdpdGgKICAgcmVtb3ZlaWZkZWZjb2RlLnBsCgoyMDExLTAzLTA0IDE5OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBhZGQgYSBvdXRnb2luZyBsaW5rIHRvIHRoZSBwYXJlbnQgbWFya2luZyBwYWdlCgoyMDExLTAzLTA0IDE5OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBBZGRlZCBhIHdpa2kgb3V0cHV0IG1vZGUKCjIwMTEtMDMtMDQgMTk6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIE5vdGUgdGhhdCB0aGUgb3JnIG91dHB1dCBpcyB0aGUgZGVmYXVsdCBpbiB0aGUgaGVscCBvdXRwdXQKCjIwMTEtMDMtMDQgMTU6MDkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4KICAgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbiBMaW51eAoKMjAxMS0wMy0wNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZWNsYXNzaWZpY2F0aW9uIG9mIHRoZSByZW1haW5pbmcgZmVhdHVyZXMgaW50byBhIGhpZXJhcmNoeQoKMjAxMS0wMy0wNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IGRvdWJsZS1kZWNsYXJlIGNlcnRfdXRpbHMKCjIwMTEtMDMtMDQgMTQ6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHRoZSBpcGFkZHJlc3NfbGludXggd2FzIGluY29ycmVjdGx5IG1hcmtlZCBhcyBuZWVkaW5nCiAgIGNlcnRfZmluZ2VycHJpbnRzCgoyMDExLTAzLTA0IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcHV0IHRoZSBhZ2VudF9yZWdpc3RyeSBmZWF0dXJlIGluIGxpYm5ldHNubXBhZ2VudC4KCjIwMTEtMDMtMDMgMTA6NTYgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQgbGlic25tcC5kZWYgLSBhZGQgTkVUU05NUF9JTVBPUlQgdG8KICAgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluc3RlYWQgdG8gZXhwb3J0IGEgZnVuY3Rpb24gZnJvbQogICBuZXRzbm1wLmRsbC4KCjIwMTEtMDMtMDMgMTA6NDggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBBZGRlZCBtaXNzaW5nIE5FVFNOTVBfSU1QT1JUIGRlY2xhcmF0aW9ucy4KCjIwMTEtMDMtMDMgMTA6MjQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjoKCiAgIFJlbW92ZWQgdHdvIG9ic29sZXRlIFdpbjMyIGZpbGVzLgoKMjAxMS0wMy0wMyAxMDowOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgVHJpdmlhbCBjb21tZW50IGZpeDogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlCiAgIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIElQdjQuCgoyMDExLTAzLTAyIDE5OjEwICBidmFzc2NoZQoKICAgKiBzbm1wbGliOgoKICAgQWRkZWQgc25tcHNtX3NodXRkb3duLmggdG8gdGhlIFN1YnZlcnNpb24gaWdub3JlIGxpc3QgYmVjYXVzZQogICBpdCdzIGEgZ2VuZXJhdGVkIGZpbGUuCgoyMDExLTAzLTAyIDE1OjU4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgZmlsZS4KCjIwMTEtMDMtMDIgMTU6NTIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgd2luMzIvc25tcHNtX3NodXRkb3duLmgsICAKICAgICAgIHdpbjMyL3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOgoKICAgQnVpbGRzIGFnYWluIHdpdGggVmlzdWFsIFN0dWRpbyBhZnRlciB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZQogICAiZmVhdHVyZSIgZmVhdHVyZS4KCjIwMTEtMDMtMDIgMTU6NDggIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBzbV9pbml0Lmg6CgogICBSZW1vdmVkIGEgbWlzbGVhZGluZyBjb21tZW50LgoKMjAxMS0wMy0wMiAwODo0MCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBDb3JyZWN0IHRoZSBjaGVjayBvZiB3ZXRoZXIgdXNtIHNlY3VyaXR5IGlzIGVuYWJsZWQuCiAgIFJlZ2VuZXJhdGUgY29uZmlndXJlLgoKMjAxMS0wMy0wMiAwODozOSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGUKCjIwMTEtMDMtMDIgMDg6MjEgIG1hZ2ZyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcwoKMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBJZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYwoKMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIFNwbGl0IHRoZSBjb250YWluZXJfY29tcGFyZV9mdW5jdGlvbnMgZmVhdHVyZSBpbnRvCiAgIGNvbnRhaW5lcl9jb21wYXJlX21lbSwKICAgY29udGFpbmVyX2NvbXBhcmVfbG9uZywgY29udGFpbmVyX2NvbXBhcmVfdWxvbmcsCiAgIGNvbnRhaW5lcl9jb21wYXJlX2ludDMyIGFuZAogICBjb250YWluZXJfY29tcGFyZV91aW50MzIKICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbnMgZnVydGhlci4KCjIwMTEtMDMtMDIgMDc6MTkgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDaGFuZ2UgdGhlIHNwZWxsaW5nIG9mIHRoZSBjb250YWluZXJfY29tcGFyZV9jc3RyaW5nIGZlYXR1cmUgdG8KICAgY29udGFpbmVyX25jb21wYXJlX2NzdHJpbmcgYXMgdGhhdCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBpcwogICBndWFyZGVkIGJ5IHRoYXQKICAgYXR0cmlidXRlLgoKMjAxMS0wMy0wMiAwNzoxNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBBZGQgdGhlIG1pc3NpbmcgcmVwbGFjZW1lbnQgbWFjcm8gZm9yIHNubXBfaW5pdF9zdGF0aXN0aWNzCgoyMDExLTAzLTAyIDA3OjE2ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieSB0YWtlcyB0d28gYXJndW1lbnRzIHNvIGxldCB0aGUKICAgcmVwbGFjZW1lbnQgbWFjcm8KICAgdGFrZSB0d28gYXJndW1lbnRzIGFzIHdlbGwuCgoyMDExLTAyLTI3IDEzOjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CgogICBGaXggdHlwbyBpbiByMTk5OTAKCjIwMTEtMDItMjYgMTA6NTMgIG1hZ2ZyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjazoKCiAgIFJlbW92ZSBsaW5lcyBzdGFydGluZyB3aXRoICNkZWZpbmUgaW4gdGhlIG91dHB1dCBvZiB0aGUKICAgcHJlcHJvY2Vzc29yCiAgIFdoZW4gZ2NjIC1FIGlzIGNhbGxlZCB3aXRoIC1nZ2RiMyAob3IgLWREKSB0aGVuIGFsbCB0aGUgbWFjcm8KICAgZGVmaW5pdGlvbnMgYXJlCiAgIHBhc3NlZCB0aHJvdWdoIHRoZSBwcmVwcm9jZXNzb3IgYW5kIHRoYXQgbWVzc2VzIHVwIG91cgogICBwcm9jZXNzaW5nLgoKMjAxMS0wMi0yNiAxMDo1MiAgbWFnZnIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBQdXQgdGhlIGdlbmVyYXRlZCBmaWxlIGluIHRoZSBidWlsZCB0cmVlLCBub3QgdGhlIHNvdXJjZSB0cmVlLgoKMjAxMS0wMi0yNiAwMToyMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICBtb3ZlZCBhIGJ1bmNoIG9mIGZlYXR1cmVzIGludG8gdGhlIGxpYm5ldHNubXBtaWJzIGZlYXR1cmUgc2V0LgoKMjAxMS0wMi0yNiAwMToyMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHMsIHNubXBsaWIvbWliLmM6CgogICBjbGFzc2lmaWVkIGxpYm5ldHNubXBhZ2VudCBmZWF0dXJlcwoKMjAxMS0wMi0yNiAwMToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgbGlicmFyaWVzIChzbm1wbGliIGZpcnN0KQoKMjAxMS0wMi0yNiAwMToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBvdXRwdXQgY2xlYW51cCBhbmQgYWRkZWQgYWdlbnQtbWlicyBhbmQgbG9nZ2luZyBvcHRpb25zCgoyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGFkZCBhIGRlZmF1bHQgc2V0IG9mIGFyZ3VtZW50cwogICBjYWxjdWxhdGUgcmVzdWx0aW5nIHNpemVzCgoyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQWRkZWQgYSBtaXNzaW5nIDsKCjIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgcHJlZml4IHRoZSBvdXRwdXQgZmlsZXMgd2l0aCBhIG51bWJlciB0byBpbmRpY2F0ZSBvcmRlcgoKMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBzYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBzeXN0ZW0gZXhlY3V0aW9ucwoKMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBlbmFibGUgYnVpbGRpbmcgb2YgdGhlIHJlc3VsdGluZyBjb21iaW5hdGlvbnMKICAgQWRkIGEgLW4gZmxhZyBmb3IgZHJ5LXJ1bnMKCjIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZW5hYmxlIHRoZSAtdCB0YWcgZm9yIGxpbWl0aW5nIHR5cGVzCgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIEFkZGVkIGFyZ3VtZW50IHBhcnNpbmcgYW5kIGFyZ3VtZW50cyBmb3Igc2VsZWN0aW5nIGFuZCBsaXN0aW5nCiAgIHR5cGVzCgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGdlbmVyYXRlIGNvbmZpZ3VyZSBzY3JpcHQgYXJndW1lbnRzIGZyb20gc3BlY3MKCjIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgYWRkZWQgYSBidW5jaCBvZiBuZXcgZmVhdHVyZSBvcHRpb25zIGFuZCBjbGVhbmVkIHVwIGEgYml0CgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGFkZGVkIGEgbmV3IChub3QgeWV0IHdvcmtpbmcpIHNjcmlwdCB0byB0ZXN0IHNpemluZyBvZiB2YXJpb3VzCiAgIGFyZ3VtZW50IHNldHMKCjIwMTEtMDItMjYgMDA6MjYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBTaW1wbGlmeSB0aGUgY29kZS4gVW5pZnkgc29tZSBkZWJ1ZyBsb2dzLgoKMjAxMS0wMi0yNiAwMDoxOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgYSBmZXcgdmFyaWFibGVzCgoyMDExLTAyLTI2IDAwOjE2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzLgoKMjAxMS0wMi0yNiAwMDoxNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gaW5pdGlhbGl6ZS91bmluaXRpYWxpemUgbW9kdWxlcyB3aXRoIDY0CiAgIGNoYXJhY3RlciBuYW1lcyBhbmQgbm90IHN1ZmZlciB3aWxkIHdyaXRlcy4KCjIwMTEtMDItMjYgMDA6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDb2RlIHJlc3RydWN0dXJpbmcgLSBwdXQgdGhlIG1hbmFnZWQgcm91dGluZXMgYmVmb3JlIHRoZQogICBtYW5hZ21lbnQgY29kZS4KCjIwMTEtMDItMjYgMDA6MTEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICBDSEFOR0VTOiBsaWJuZXRzbm1wbWliczogTWFrZSBhbGwgZnVuY3Rpb25zIGluIHRoZSBkbG1vZCBtb2R1bGUKICAgdGhhdCBkb24ndCBoYXZlIHRvIGJlIHB1YmxpYyBzdGF0aWMKCjIwMTEtMDItMjYgMDA6MDcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBSZW5hbWUgZGVpbml0X2RsbW9kIHRvIHNodXRkb3duX2RsbW9kIGFzIHRoYXQgaXMgd2hhdCBpdCByZWFsbHkKICAgaXMgYWJvdXQuCgoyMDExLTAyLTI1IDE4OjI0ICBiYWVybQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgYWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzIHRvIG5ldC1zbm1wLXZhY20gbWliCgoyMDExLTAyLTI1IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBwcm9wZXJseSBoYW5kbGUgdHdpbiBjaGlsZHJlbjsgYWxzbyBzb3J0IHRoZSBjaGlsZCBsaXN0CiAgIGFscGhhYmV0aWNhbGx5LgoKMjAxMS0wMi0yNSAxNjowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEkgc3VwcG9zZSBsb2dnaW5nIHNob3VsZCBwcm9iYWJseSBkZWZhdWx0IHRvIGJlaW5nIGEgd2FudGVkCiAgIG9wdGlvbiA6LSkKCjIwMTEtMDItMjUgMTY6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIG9yZy1saW5rIHRoZSBmaWxlcyBpbiB0aGUgb3V0cHV0CgoyMDExLTAyLTI1IDE2OjA4ICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgICAKICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSB0aGUgZmVhdHVyZXMtY2hlY2sgc2NyaXB0IHRyYWNrIHRoZSBmdWxsIHNvdXJjZSBwYXRoCgoyMDExLTAyLTI1IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBjaGFuZ2UgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hdGNoIHRoYXQgaXQncyBwcmludGluZyB0byBvcmctbW9kZQogICBhdCB0aGUgbW9tZW50LgoKMjAxMS0wMi0yNSAxNjowOCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGxhc3Qgb2YgdGhlIGZlYXR1cmUgY2xhc3NpZmljYXRpb24gaW4gbGlibmV0c25tcAoKMjAxMS0wMi0yNSAxNjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIG1ha2UgdGhlIHVzbV9zdXBwb3J0IHV0aWxpdGllcyBzZWxmLWRlY2xhcmUgdGhlbXNlbHZlcyBhcwogICBjaGlsZHJlbiB0bwogICBtYWtlIHN1cmUgdGhleSdyZSBwcm9wZXJseSBpbmNsdWRlZCBkdXJpbmcgZGVwZW5kZW5jeSBvcmRlcmluZwoKMjAxMS0wMi0yNSAxNjowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAogICAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvZGF0YV9saXN0LmMsICAgCiAgICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBzdXBlcnN0cnVjdHVyYWxpemF0aW9uaXppbmcgdGhlIGZlYXR1cmVzCgoyMDExLTAyLTI1IDE2OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc3lzdGVtLmMsIAogICAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIHNpZ25pZmljYW50IHBhcmVudC9jaGlsZCBmZWF0dXJlIGNsYXNzaWZpY2F0aW9uCgoyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgY2xhc3NpZnkgYSBmZXcgY29tcG9uZW50cyBpbnRvIGEgdG9wLWxldmVsIGxpYm5ldHNubXAgY29tcG9uZW50CgoyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICBzdHJ1Y3R1cml6ZSB0aGUgdXNtIGZlYXR1cmVzCgoyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIHN0cnVjdHVyZSB0aGUgY29udGFpbmVyIGZlYXR1cmVzIGludG8gYSBoaWVyYXJjaHkKCjIwMTEtMDItMjUgMTY6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBncm91cCB0aGUgbG9nZ2luZyBoYW5kbGVycyB1bmRlciBhIHBhcmVudCBmZWF0dXJlCgoyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBmaXggdGhlIGV4cGVjdCBhcmd1bWVudCBjb3VudAoKMjAxMS0wMi0yNSAxNjowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgZml4IHRoZSBuYW1lIG9mIHRoZSBleHBlY3RlZCBpbnB1dCBmaWxlCgoyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBhcmd1bWVudCBwYXJzaW5nIGFuZCB1c2FnZSgpIG91dHB1dAoKMjAxMS0wMi0yNSAxNjowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIC0gYWRkZWQgdHdvIG9pZF9zdGFzaCBmdW5jdGlvbnMgYXMgaW5kaXZpZHVhbCBmZWF0dXJlcwogICAtIGNsZWFuZWQgdXAgc29tZSB3YXJuaW5ncyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgY29kZQoKMjAxMS0wMi0yNSAxMjo1NSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAKICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaAogICBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cwogICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCogYnJhbmNoZXMsIHJhdGhlcgogICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkKCjIwMTEtMDItMjUgMTE6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QgYXZhaWxhYmxlIG9yIHNldC4KCjIwMTEtMDItMjUgMDA6NDAgIGJhZXJtCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmg6CgogICBhZGRpbmcgaWZkZWYgY29kZSBmb3IgbWluaW1hbGlzdCBzdXBwb3J0IG9mIGRpZmZtYW4gbWliCgoyMDExLTAyLTI0IDE5OjIxICBiYWVybQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaDoKCiAgIEFkZGluZyBtaW5pbWFsaXN0IGlmZGVmcyB0byBob3N0IHJlc291cmNlIG1pYgoKMjAxMS0wMi0yNCAwNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgbWFyayB0aGUgZGF0YV9saXN0IGZ1bmN0aW9uIHRoYXQncyBvbmx5IHVzZWQgaW4gc3RhY2hfY2FjaGluZyBhcwogICBhIGZlYXR1cmUKCjIwMTEtMDItMjQgMDU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHdob29wcy4KCjIwMTEtMDItMjQgMDU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1vcmUgbWlzc2luZyBzdGFzaCByZWZlcmVuY2VzCgoyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBpZmRlZmVkL2ZlYXR1cmVkIG91dCBhIG1pc3Npbmcgc3Rhc2hfY2FjaGUgc2VjdGlvbgoKMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgbWFrZSB0aGUgcHJlZml4X2luZm8gbW9yZSBoaWVyYXJjaGljYWwgYW5kIHN1Yi1mZWF0dXJlIHRoZSB1bnVzZWQKICAgb25lCgoyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBkbyBpbmNsdWRlIHRoZSBwZXJsL3B5dGhvbiBjb2RlIHdoZW4gc2VhcmNoaW5nIGZvciBmaWxlcwoKMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgbWFrZSB0aGUgc2VtaS11c2VkIHRhYmxlX3RkYXRhIGZ1bmN0aW9ucyBjaGlsZHJlbiBvZgogICB0YWJsZV90ZGF0YV9hbGwKICAgaW5zdGVhZCBvZiBqdXN0IHRhYmxlX3RkYXRhCgoyMDExLTAyLTIzIDIyOjAwICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBDb3JyZWN0IHR5cG8KCjIwMTEtMDItMjMgMjE6NTQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENvcnJlY3QgdHlwbwoKMjAxMS0wMi0yMyAyMToxMCAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcHJvcGVyIGluY2x1ZGUgb2YgcHJvdG90eXBlCgoyMDExLTAyLTIzIDIxOjA3ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBjb21wYXQgc29tZSBmZWF0dXJlIGhlYWRlciBjaGlja2VuIGFuZCBlZ2cgcHJvYmxlbXMKCjIwMTEtMDItMjMgMTU6MjcgIG5iYQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncwoKMjAxMS0wMi0yMyAxNToyMyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCgoyMDExLTAyLTIzIDE1OjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMTEtMDItMjMgMTQ6MzAgIGhhcmRha2VyCgogICAqICBsb2NhbC9taW5pbWFsaXN0LCBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssICAgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jcywgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZSwgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlLCAgIAogICAgICBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIGFkZGVkIG90aGVyIG1pc3NpbmcgJ25ldycgZmlsZXMgbm90IGluY2x1ZGVkIGluIHRoZSBtaW5pbWFsaXN0CiAgIHBhdGNoIGZpbGUKCjIwMTEtMDItMjMgMDk6NTQgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzoKCiAgIExvYWRpbmcgSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkCgoyMDExLTAyLTIzIDA5OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6CiAgIGNoYXJhY3RlcgoKMjAxMS0wMi0yMyAwOTozMCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6CgogICBGcmVlQlNEIDggc3VwcG9ydAoKMjAxMS0wMi0yMyAwMTo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oOgoKICAgYWRkZWQgbWlzc2luZyBuZXQtc25tcC1mZWF0dXJlcy5oCgoyMDExLTAyLTIzIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIGFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgIAogICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgIAogICAgICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90ZXh0X3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlOgoKICAgTkVXUzogcGFja2FnaW5nOiBFbmFibGUgbWljcm8tYW5kLW1hY3JvLWZlYXR1cmUgbWFuYWdlbWVudCB3aXRoaW4KICAgTmV0LVNOTVA7IHRoaXMgYWRkcyBhIG51bWJlciBvZiBuZXcgZmxhZ3MgdG8gY29uZmlndXJlCiAgICgtLWVuYWJsZS1taW5pbWFsaXN0IGFuZCAtLWVuYWJsZS1yZWFkLW9ubHkpLiBUaGVzZSBjaGFuZ2VzIGFyZQogICBkZXNpZ25lZCB0byByZW1vdmUgbXVjaCBvZiB0aGUgaW5saW5lIGNvZGUgdGhhdCBpc24ndCBhbHdheXMKICAgbmVjZXNzYXJ5IG9yIGRlc2lyZWQuIFNjcmlwdHMgZXhpc3QgKGFuZCB3aWxsIGJlIGltcHJvdmVkKSB0bwogICBzdGlwIG91dCB1bnVzZWQgY29tcG9uZW50cyBmcm9tIHRoZSBjb2RlIGVudGlyZWx5IHRvIGVuYWJsZSBhCiAgIHNob3J0ZXIgcmV2aWV3IHByb2Nlc3MgZm9yIHVwZ3JhZGluZyB0byBuZXcgcmVsZWFzZXMuIFRoaXMgd29yawogICB3YXMgZG9uZSBieSBXZXMgSGFyZGFrZXIgYW5kIE1pY2hhZWwgQmFlciBmcm9tIFNQQVJUQSwgSW5jLiBidXQKICAgaXMgYmVpbmcgY2hlY2tlZCBpbiBhcyBhIGxhcmdlIHBhdGNoIHNpbmNlIGNvbnZlcnRpbmcgdGhlIG1pY3JvCiAgIHBhdGNoZXMgZnJvbSBnaXQgdG8gc3ZuIHR1cmVuZCBvdXQgdG8gYmUgaW1wb3NzaWJsZQoKMjAxMS0wMi0yMiAyMzo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgdXNlIHRoZSB3aWtpIFVSTCBpbnN0ZWFkIG9mIHRoZSB0dXRvcmlhbC01IFVSTCBmb3IgdGhlIHNubXB0cmFwCiAgIHR1dG9yaWFsCgoyMDExLTAyLTIxIDIyOjQwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOgoKICAgcHJvcGVyIHByb2Nlc3Mgc3RhdHVzIHZhbHVlcyBmb3IgbmV0YnNkCgoyMDExLTAyLTIxIDIyOjM5ICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgY29uZGl0aW9uYWxpemUgdmFyaWFibGUKCjIwMTEtMDItMjEgMjI6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMKCjIwMTEtMDItMjEgMjI6MTYgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzCgoyMDExLTAyLTIxIDIyOjA1ICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgUHJvcGVybHkgZW5kIGRlYnVnIG1lc3NhZ2Ugd2l0aCBuZXdsaW5lCgoyMDExLTAyLTIxIDIyOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICByZW1vdmUgdmFyIHRoYXQgc2hhZG93cyB0aGUgdXNlZnVsIG9uZQoKMjAxMS0wMi0yMSAyMjowMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZyBmb3Igb3BlbmJzZCB0b28uIFRoaXMgc2hvdWxkCiAgIHJlYWxseSBiZSByZXdvcmtlZCB0byB1c2UgdGhlIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcwoKMjAxMS0wMi0yMSAyMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCgoyMDExLTAyLTIxIDIxOjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGVuYWJsZSBuZXcgdGNwL3VkcCBtaWJzIGZvciBzb2xhcmlzCgoyMDExLTAyLTIxIDIxOjUzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jOgoKICAgRG8gbm90IHVzZSBjOTkKCjIwMTEtMDItMjEgMTk6MDggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgVXBkYXRlZCBjb21tZW50IGFib3V0IHdoZXJlIG1ha2VyZWxlYXNlIGNvbWVzIGZyb20gKG5vdyBnaXRodWIpCgoyMDExLTAyLTIwIDA5OjI0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTg1NTI4OiBzaHV0ZG93bl9tYXN0ZXJfYWdlbnQgZG9lc24ndCBjbG9zZQogICBVRFAgc29ja2V0CiAgIChGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIHIxOTUxMS4pCgoyMDExLTAyLTE4IDE0OjQzICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IHNubXBkOiByZXdvcmtlZCBoclN0b3JhZ2VUYWJsZSB0byBzdXBwb3J0IGxhcmdlCiAgIGZpbGVzeXN0ZW1zLgogICAKICAgVGhlIGhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cyBkb2VzIG5vdCByZXBvcnQgcmVhbCBhbGxvY2F0aW9uIHVuaXQKICAgc2l6ZSwKICAgYnV0IHNvbWUgY2FsY3VsYXRlZCB2YWx1ZSBzbyBoclN0b3JhZ2VBbGxvY2F0aW9uVW5pdHMgKgogICBoclN0b3JhZ2VTaXplCiAgIGdpdmVzIHJlYWwgc2l6ZSBvZiB0aGUgZmlsZXN5c3RlbS4KICAgCiAgIFRoaXMgY2FsY3VsYXRpb24gaGFwcGVucyBvbmx5IHdoZW4gaHJTdG9yYWdlU2l6ZSBpcyB0b28gc21hbGwKICAgKDMyYml0cykKICAgZm9yIGZpbGVzeXN0ZW0gc2l6ZSwgZS5nLiBmaWxlc3lzdGVtcyBsYXJnZXIgdGhhbiA4VEIgd2l0aCA0MDk2CiAgIGJ5dGVzCiAgIGJsb2NrIHNpemUuCiAgIAogICBUaGlzIGNhbGN1bGF0aW9uIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5ICdyZWFsU3RvcmFnZVVuaXRzJyBjb25maWcKICAgb3B0aW9uLgoKMjAxMS0wMi0xOCAxNDoyOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIEFkZCBKRlMgYW5kIFhGUyB0byBsaXN0IG9mIGtub3duIGZpbGVzdXN0ZW1zCgoyMDExLTAyLTE3IDExOjI4ICBqc2FmcmFuZWsKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgRml4ZWQgc25tcC1icmlkZ2UtbWliIGluIHN0YW5kYWxvbmUgKGFnZW50eCkgdmVyc2lvbi4KICAgRG9uJ3QgZGVjbGFyZSBsb2NhbCB2YXJpYWJsZXMgaW5zaWRlIGJsb2NrLiBQYXRjaCBwcm92aWRlZCBieQogICBKZW5zIE9zdGVya2FtcC4KCjIwMTEtMDItMTYgMTQ6NTYgIGpzYWZyYW5lawoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBGaXhlZCBzbm1wLWJyaWRnZS1taWIgd2hlbiB3b3JraW5nIGluIHRoZSBlbWJlZGRlZCBwZXJsLgoKMjAxMS0wMi0xNiAxMzoxNiAganNhZnJhbmVrCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIEZpeGVkIEdFVE5FWFQgcHJvY2Vzc2luZyBpbiBzbm1wLWJyaWRnZS1taWIuCgoyMDExLTAyLTE1IDIyOjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIFByb3Blcmx5IHNhdmUgZW50cmllcyBmb3IgTmV0QlNEIGFuZCBEcmFnb25GbHkKCjIwMTEtMDItMTUgMjI6MTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZXMKCjIwMTEtMDItMTUgMjE6NDYgIG5iYQoKICAgKiBjb25maWd1cmU6CgogICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCgoyMDExLTAyLTE1IDIxOjMzICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBpbmNsdWRlIHN5cy90eXBlcy5oIGJlZm9yZSBzeXMvc29ja2V0LmgKCjIwMTEtMDItMTUgMjE6MjYgIG5iYQoKICAgKiBtNC9uZXRzbm1wX3NlYXJjaF9saWJzLm00OgoKICAgVG9vIG11Y2ggcXVvdGluZyBpcyBiYWQKCjIwMTEtMDItMTUgMjE6MTEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICBGaXggSVB2NiBUQ1AgYW5kIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydAoKMjAxMS0wMi0xNSAyMDo0NSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzoKCiAgIEtpbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDItMTUgMjA6NDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgRmlsdGVyIElQdjYgZW50cmllcyBmcm9tIElQdjQgdGFibGUKCjIwMTEtMDItMTUgMjA6NDIgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6CgogICBQcm9wZXIgdXNlIG9mIGdldHByb2MyIGFuZCBkcmFnb25mbHkgc3VwcG9ydAoKMjAxMS0wMi0xNSAyMDo0MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmM6CgogICBnZXR2ZnNzdGF0IGlzIG9ubHkgZm9yIE5ldEJTRAoKMjAxMS0wMi0xNSAyMDozOSAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgRGV0ZWN0IG5lZWQgZm9yIC1sa3ZtIGluIHByb3BlciB0aW1lCgoyMDExLTAyLTE1IDE5OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcmVtb3ZlIHRoZSBzdGF0ZW1lbnQgYWJvdXQgZW5hYmxpbmcgc3RkZXJyIGJ5IGRlZmF1bHQuCgoyMDExLTAyLTE1IDE5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlbW92ZSAzIGZ1bmN0aW9ucyB0aGF0IGFzIGZhciBhcyBJIGNhbiB0ZWxsIGhhdmUgcG9zc2libHkgbmV2ZXIKICAgYmVlbiB1c2VkCgoyMDExLTAyLTE0IDE0OjM4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4ZWQgYSBNaW5HVy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgoKMjAxMS0wMi0xMyAxNjoyOCAgbWFnZnIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBzdGF0aWMgYXBwbGljYXRpb25zIHVzaW5nCiAgIG5ldC1zbm1wLWNvbmZpZyBhbmQgdGhlIC0qbGlicyBmbGFncyBvbmNlIG1vcmUuCgoyMDExLTAyLTEwIDE1OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24KICAgNjQtYml0IHN5c3RlbXMKCjIwMTEtMDItMTAgMTU6MDYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMKICAgcmVhZGluZyAvcHJvYy92bXN0YXQKCjIwMTEtMDItMDkgMDc6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIEJ1aWxkaW5nIERMTCBhbmQgUGVybCBtb2R1bGVzIHdpdGggd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluLgoKMjAxMS0wMi0wOCAxOTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBSZW1vdmUgdGhlIGZ1bmN0aW9ucyBtYXJrZWQgYXMgZGVwcmVjYXRlZCBhbmQgc2FmZSBmb3IgcmVtb3ZhbCBpbgogICA1LjYuCgoyMDExLTAyLTA4IDE3OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIGZyb20gTWFydGluIEJ1Y2s6IGRvbid0IGFsd2F5cyBvcGVuIHN0ZGVycgogICBhcyB0aGUgY2FsbHMgdG8gc25tcF9sb2cgYWxyZWFkeSBkbyB0aGlzIGFuZCBpdCBtZXNzZXMgdXAgdGhlCiAgIGFnZW50IHdoZW4gZW1iZWRkZWQKCjIwMTEtMDItMDggMTc6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXggYSBzdHJsZW4gY2FsY3VsYXRpb24gYXMgcG9pbnRlZCBvdXQgYnkKICAgS29uc3RhbnRpbiBCYXlkYXJvdgoKMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSAzIG5ldyBTU0ggY29uZmlnIHRva2VucwoKMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYzoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXA6IG1hZGUgdGhlIFNTSCB0cmFuc3BvcnQgY29uZmlndXJhYmxlIGFzIGl0CiAgIHNob3VsZCBiZS4KCjIwMTEtMDItMDcgMjA6MDcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBBZGRlZCBkZWZhdWx0X3N0b3JlIHN0cmluZ3MgZm9yIHNzaDogdXNlcm5hbWUsIHB1YmtleSwgcHJpdmtleQoKMjAxMS0wMi0wNiAwNjozNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgU2ltcGxpZnkgdGhlIGNvbnRyb2wgZmxvdyB0byBhbGxvdyBmb3IgbW9yZSBvcHRpbWl6YXRpb24uCgoyMDExLTAyLTAzIDIyOjQyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzE3MTg3ODogVXNpbmcgU05NUHYzIGNvbnRleHQgZG9lcyBub3QKICAgd29yawoKMjAxMS0wMi0wMiAwNzowOSAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEluY2x1ZGUgdGhlIFVTSU5HXyB2YXJpYWJsZXMgZnJvbSB0aGUgYWdlbnQgbGlicmFyeSBhcyB3ZWxsLCBpbgogICBwYXJ0aWN1bGFyIHRoZQogICBVU0lOR19BR0VOVFhfKiB2YXJpYWJsZXMuCgoyMDExLTAyLTAxIDEzOjA3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgRG9uJ3QgY2hlY2sgZm9yIDMyLzY0Yml0IHdyYXAgaW4gY2FsY3VsYXRlZCBlbnRyaWVzLgoKMjAxMS0wMi0wMSAwOTo0MSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB0aGUgYWdlbnQgd3JpdGluZyAnbG9va3MgbGlrZSBhIDY0Yml0IHdyYXAsCiAgIGJ1dCBwcmV2IT1uZXcnIGluIHN5c2xvZyB3aGVuIGNvbXB1dGluZyBpcFN5c3RlbVN0YXRzCiAgIAogICBXaXRob3V0IHRoZSBtZW1jcHksIHByZXZfdmFscy0+c3RhdHMgYW5kIG5ld192YWxzLT5zdGF0cyBjb3VsZAogICBnZXQgZGlmZmVyZW50LAogICB3aGljaCBjb3VsZCBtdWNoIG11Y2ggbGF0ZXIgKHdoZW4gYSBjb3VudGVyIGdldHMgYmlnZ2VyIHRoYW4gMzIKICAgYml0cykgcmVzdWx0CiAgIGluICdwcmV2IT1uZXcnIG1lc3NhZ2UgaW4gc3lzbG9nLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zIGFmdGVyCiAgIGxvbmcgdGltZSBvZgogICB1cHRpbWUgYW5kIGl0IGlzIHZlcnkgaGFyZCB0byByZXByb2R1Y2UuCgoyMDExLTAyLTAxIDA3OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzCgoyMDExLTAxLTMxIDIyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CgogICBhZGRwcm90b3R5cGVzIGFuZCByZW1vdmUgdW51c2VkIHZhcnMKCjIwMTEtMDEtMzEgMjI6MzcgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBjb25zdCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKCjIwMTEtMDEtMzEgMjI6MzAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGRpc2tpbyBmb3IgZHJhZ29uZmx5CgoyMDExLTAxLTMxIDIyOjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jOgoKICAgcHJvcGVybHkgbmFtZSBpbml0YWxpemVyIGZ1bmN0aW9uIGZvciBjcHVfa2luZm8KCjIwMTEtMDEtMzAgMTU6MjEgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgUmVkdWNlIHRoZSBudW1iZXIgb2YgdXNlZCBpbmNsdWRlIGZpbGVzLgoKMjAxMS0wMS0zMCAwOTozNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgoyMDExLTAxLTMwIDAxOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE1MTg5NzogZmQgbGVhayB3LyAvcHJvYy9wYXJ0aXRpb25zCiAgIHJlYWQgaW4gZGlza2lvCgoyMDExLTAxLTI5IDIzOjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAzMTY2NTY4OiBoclN5c3RlbVByb2Nlc3NlcyBtaXNzaW5nIGluIDUuNi81LjYuMQoKMjAxMS0wMS0yNyAwOTozNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFmdGVyIHRlbiB5ZWFycyBpbnRlbnNpdmUgdXNlLCBhbiAiZXhwZXJpbWVudGFsIgogICBmZWF0dXJlIGNhbiBwcm9iYWJseSBiZSByZWxlYXNlZCBmb3IgZ2VuZXJhbCB1c2UuCgoyMDExLTAxLTI2IDE2OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBtYWtlIHRoZSBtaWIyYyBmb3JlYWNoIHJhbmdlcyB3b3JrIGFzIGFkdmVydGlzZWQKICAgaW4gdGhlIGNvbW1lbnRzLgoKMjAxMS0wMS0yNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI3c25tcHYzRGVmYXVsdHNfc2ltcGxlOgoKICAgYSB0ZXN0IHRvIGVuc3VyZSB2My9VU00gc25tcC5jb25mIHNldHRpbmdzIHdvcmsKCjIwMTEtMDEtMjYgMTY6NDkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgcmVtb3ZlIHRlc3RvcHRzCgoyMDExLTAxLTI2IDA5OjEyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiBjb3VudGluZyBwcm9jZXNzZXMKICAgZm9yIFVDRC1TTk1QLU1JQjo6cHJUYWJsZQogICAKICAgVGhlIFhYIHByb2Nlc3MgY2FuIGV4aXQgYWZ0ZXIgZm9wZW4oL3Byb2MvWFgvc3RhdHVzKSBhbmQgYmVmb3JlCiAgIGZnZXRzKCkgZnJvbSBpdC4gc25tcGQgc2hvdWxkIGNvbnRpbnVlIHdpdGggb3RoZXIgcHJvY2Vzc2VzIGFuZAogICBub3QgdG8gc3RvcC4KCjIwMTEtMDEtMTkgMTM6NTcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIE1ha2UgdXMgY29tcGF0aWJsZSB3aXRoIHJwbS00LjksIHJwbUdldEZpbGVzeXN0ZW1MaXN0IGRvZXMgbm90CiAgIGV4aXN0IGFueW1vcmUsIHNvIHRoZSBjb25maWd1cmUgc2NyaXB0IHNob3VsZCBub3QgY2hlY2sgaXQuCgoyMDExLTAxLTE5IDA2OjMxICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOgoKICAgZGlza0lPTEF4IHJlcXVpcmVzIGV4cCB3aGljaCBtYXkgcmVxdWlyZSAtbG0KCjIwMTEtMDEtMTggMjI6MzkgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYXV0b2hlYWRlcgoKMjAxMS0wMS0xOCAyMjozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIEZpbmQgcHJvcGVyIGlmLW1pYiBpbnRlcmZhY2UgZm9yIE5ldEJTRAoKMjAxMS0wMS0xOCAyMjozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIHR5cG8KCjIwMTEtMDEtMTggMjI6MzUgIG5iYQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZGVmaW5lIGRyYWdvbmZseWlkCgoyMDExLTAxLTE0IDEzOjI0ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQWRkIElQdjYgc3VwcG9ydCBmb3IgY3JlYXRpbmcgcm93cyBpbiBpcEFkZHJlc3N0YWJsZS4KICAgCiAgIFVzaW5nIFNOTVAgU0VULCBpdCBpcyBub3cgcG9zc2libGUgdG8gY3JlYXRlIGFuZCBkZXN0cm95IElQdjYKICAgYWRkcmVzc2VzIG9uIGFuIGludGVyZmFjZS4KCjIwMTEtMDEtMTQgMTI6MjggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tIFJvYmVydCBTdG9yeTogZml4ZWQgYWRkaW5nIG5ldyBhZGRyZXNzZXMgdG8KICAgaXBBZGRyZXNzVGFibGUKICAgCiAgIExvbmcgdGltZSBhZ28sIHRoZXJlIHdhcyBhIGJ1Z3JlcG9ydFsxXSByZWdhcmRpbmcgaXBBZGRyZXNzVGFibGUKICAgb24KICAgbmV0LXNubXAtY29kZXJzIGxpc3QgYW5kIHJzdG9yeSdzIGV4cGVyaW1lbnRhbCBwYXRjaCB3aXRob3V0IGFueQogICBmZWVkYmFjay4KICAgTm93IEkndmUgZ290IGZldyBjb21wbGFpbnRzIHRoYXQgU05NUCBTRVQgb24gaXBBZGRyZXNzVGFibGUKICAgcHJvZHVjZXMgdGhlCiAgIHNhbWUgZXJyb3JzIGFuZCBndWVzcyB3aGF0LCB0aGUgcGF0Y2ggZml4ZXMgdGhlbS4KICAgCiAgIFsxXToKICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9tYWlsYXJjaGl2ZS9mb3J1bS5waHA/dGhyZWFkX25hbWU9MjAwNjA5MjAxMzQ5MzUuMzViMzZlZDYlNDBkZXYuZnV0ei5vcmcmZm9ydW1fbmFtZT1uZXQtc25tcC1jb2RlcnMKCjIwMTEtMDEtMTQgMDY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIHJlbW92ZSBjb21wbGV0ZWx5IHVzZWxlc3MgYW5kIG5vbnNlbnNpY2FsIGNvZGUKCjIwMTEtMDEtMTMgMTc6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFsbG9jYXRlIHNwYWNlIGZvciBhcnJheSBOVUxMIHRlcm1pbmF0aW9uCgoyMDExLTAxLTEzIDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIEVuc3VyZSByZWxlYXNlcyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBjb3JyZWN0IHBhdGggd2l0aGluIHRoZQogICAvdGFncyBTVk4gdHJlZQoKMjAxMS0wMS0xMyAxNToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jOgoKICAgUmVtb3ZlIEMrKyBjb21tZW50cwoKMjAxMS0wMS0xMyAxMzoxNyAgZHRzMTIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgRml4IGJyb2tlbiBwYXRjaAoKMjAxMS0wMS0xMyAxMjoxNCAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIENvbmZpZ3VyZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKCjIwMTEtMDEtMTMgMTI6MDQgIGR0czEyCgogICAqICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaDoKCiAgIENvZGUgZml4ZXMgZm9yIERyYWdvbkZseSBzdXBwb3J0CgoyMDExLTAxLTEzIDExOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOgoKICAgRml4IHR5cG8KCjIwMTEtMDEtMTIgMjE6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBtZXJnZSBkdXBsaWNhdGVkIHNodXRkb3duIGZ1bmN0aW9ucwoKMjAxMS0wMS0xMiAyMDoxMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgUmVpbXBsZW1lbnQgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoKSBieSBhZGRpbmcgdGhlIGZsYWcKICAgTkVUU05NUF9JVEVSQVRPUl9PV05TX0lJTkZPIGZvcgogICBuZXRzbm1wX2l0ZXJhdG9yX2luZm8uIFJlbW92ZQogICBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcl9oYW5kbGVyMigpIGJlY2F1c2UgaXQgaXMgbm93CiAgIHN1cGVyZmx1b3VzLgoKMjAxMS0wMS0xMiAxOToyMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvcgogICBuZXRzbm1wX2NlcnRzX2FnZW50X2luaXQoKS4KCjIwMTEtMDEtMTIgMTk6MjAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmM6CgogICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZyBpbgogICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmMuCgoyMDExLTAxLTEyIDE5OjA0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2gpIHRoYXQgd2FzCiAgIGludHJvZHVjZWQKICAgaW4gcjE5ODA4ICgic25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZgogICBjbG9zZWQgc2Vzc2lvbnMiKS4KCjIwMTEtMDEtMTIgMTU6MDMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wOiBwYXRjaDogMzA5NjcyNTogc3lzT1JUYWJsZSByZWdpc3RhdGlvbiBmb3IKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIKICAgCiAgIG9yaWdpbmFsIHBhdGNoIGZpeGVkIHNldmVyYWwgaXNzdWVzLCBvdGhlciBwYXJ0cyBhcHBsaWVkIGVhcmxpZXIKCjIwMTEtMDEtMTEgMTc6MjcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGRvIG5vdCBpbmNsdWRlIGlwdjYgc3RydWN0IGlmIGlwdjYgaXMgbm90IGVuYWJsZWQKCjIwMTEtMDEtMTEgMTY6MDQgIGR0czEyCgogICAqIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluOgoKICAgUmVjb2duaXNlIEFnZW50IE9JRCBmb3IgRHJhZ29uRmx5IHN5c3RlbXMgKGFuZCBnZW5lcmFsIHRpZHlpbmcKICAgdXApCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAKICAgUW46IFNob3VsZCB0aGVzZSBiZSB1cGRhdGVkIHRvIHJlZmVyIHRvIE5ldC1TTk1QIChyYXRoZXIgdGhhbgogICBVQ0QpPwoKMjAxMS0wMS0xMSAxNjowMSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LCAgIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNlZHNjcmlwdC5pbjoKCiAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCiAgIChhbmQgZ2VuZXJhbCB0aWR5aW5nIHVwKQogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTU6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBOZXRCU0QgRHJhZ29uRmx5IHN1cHBvcnQgZm9yIFVEUCAmIFRDUCB0YWJsZXMKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDE0OjQxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBDSEFOR0VTOiBOZXRCU0Q6IERyYWdvbkZseSBzdXBwb3J0CiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxNDozNiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBOZXRCU0QvRHJhZ29uRmx5ICdzdHJ1Y3QgaWZuZXQnIHJlcXVpcmVzIEtFUk5FTCwgYnV0IG5vdCBfS0VSTkVMCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAoSSBob3BlIEkndmUgZ290IHRoaXMgb25lIHJpZ2h0ISkKCjIwMTEtMDEtMTEgMTM6MzQgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gQmlsbCBGZW5uZXI6IGZpeCBzZW5kaW5nIG9mIFVEUCByZXNwb25zZXMKICAgZnJvbSBtdWx0aWhvbWVkIGFnZW50cy4KICAgCiAgIFRyeSB0byBzZW5kIHRoZSByZXNwb25zZSBhcyBpdCB3YXMgYmVmb3JlIE5ldC1TTk1QIDUuNiAoYXNzdW1pbmcKICAgdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3Qgd2FzIHVuaWNhc3QpIGFuZCBvbmx5IGlmIGl0IGZhaWxzIHRyeSB0bwogICBzZXQgaWZfaW5kZXggKHRoZSByZXF1ZXN0IG11c3QgYmUgYnJvYWRjYXN0KS4KCjIwMTEtMDEtMTEgMTM6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFJlYWxseSBoYW5kbGUgc3lzdGVtcyB3aXRoICdzdHJ1Y3QgdGltZXNwZWMgaWZuZXQuaWZfbGFzdGNoYW5nZScKICAgKG1pc3NpbmcgZWxlbWVudCBmcm9tIFNWTiByZXZpc2lvbiAxOTg0MSkKCjIwMTEtMDEtMTEgMTI6MjQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBBZGRpdGlvbmFsIGhlYWRlcnMgd2hlbiB0ZXN0aW5nIGZvciBJUHY2IGhlYWRlcnMKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEyOjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE1pc3NpbmcgdHlwZSB1bmRlciBkYXJ3aW4KICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEyOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE5ldEJTRCBzdXBwb3J0IGZvciBEaXNrIEkvTyBzdGF0cwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTI6MDEgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJyAocmF0aGVyCiAgIHRoYW4gc3RydWN0IHRpbWV2YWwpCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMToyNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oOgoKICAgUHVsbCBpbiBrZXJuZWxfbmV0YnNkIG1vZHVsZSB3aGVuIHJlcXVpcmVkCiAgIFtCYXNlZCBvbiBmaXggZnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTA6MzYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIENIQU5HRVM6IE5ldEJTRDogUmV0cmlldmUgTUlCLUlJIG5ldHdvcmsgc3RhdGlzdGljcyB2aWEgc3lzY3RsCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAwNzowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBmb3IgcGNpX2xvb2t1cF9uYW1lIGFuZCBSSEVMNAoKMjAxMS0wMS0xMCAxNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQogICBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IGNvZGUgZnJvbSB0aGUgT3BlbkJTRCBwYXRjaCBhcmNoaXZlKQoKMjAxMS0wMS0xMCAxNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgZGFyd2luCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMCAxNDo1NSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6CgogICBDSEFOR0VTOiBOZXRCU0Q6IFVwZGF0ZSBtZW1vcnkgYW5kIENQVSBzdGF0aXN0aWNzIGhhbmRsaW5nCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMCAxNDoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBGaXggZGl2aWRlLWJ5LXplcm8gZXJyb3IgaW4gQ1BVIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3MKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA5IDIyOjU0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgQ0hBTkdFUzogT3BlbkJTRDogVXBkYXRlIFNXUnVuIGNvZGUgdG8gdXNlIGt2bV9nZXRwcm9jMgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA5IDIxOjMwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ0hBTkdFUzogYnVpbGQ6IE9wZW5CU0Q6IEZpeCBvcmRlciBvZiBoZWFkZXJzIHdoZW4gY2hlY2tpbmcKICAgPG5ldGluZXQvaW5fcGNiLmg+CiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDkgMTk6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBBbWVuZCBob3cgbXVsdGktQ1BVIHN0YXRpc3RpY3MgYXJlIHJldHJlaXZlZCB1c2luZyBzeXNjdGwgb24KICAgT3BlbkJTRCBzeXN0ZW1zCiAgIChpZiB0aGlzIGJsb2NrIHdhcyBhY3RpdmUsIHdoaWNoIGl0IGlzbid0LCBidXQgdGhhdCdzIG5vdAogICBpbXBvcnRhbnQgcmlnaHQgbm90KQogICBbQmFzZWQgb24gT3BlbkJTRCBwYXRjaCBhcmNoaXZlLCBhbWVuZGVkIChwcm9iYWJseSB3cm9uZ2x5KSBieQogICBEVFNdCgoyMDExLTAxLTA5IDE4OjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmM6CgogICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCgoyMDExLTAxLTA5IDE4OjExICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6CgogICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCgoyMDExLTAxLTA4IDA4OjMwICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXM6CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4IC0td2l0aC1zZWN1cml0eS1tb2R1bGVzIGhhbmRsaW5nCiAgIEFsbG93IHJlcGVhdGVkIG1vZHVsZXMgKHRzbSx0c20pIGFzIHdlbGwgYXMgZGVmYWlsdCBtb2R1bGVzICh1c20pCiAgIE1vdmUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGZpbGVzIGFmdGVyIHRoZSBjaGVja2luZwoKMjAxMS0wMS0wOCAwMDo0NyAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVwZGF0ZSBhY2NvbmZpZy5oIHdpdGggY2hhbmdlcyBmcm9tIHIxOTgxOS4KICAgUmVydW4gYXV0b2hlYWRlci4KCjIwMTEtMDEtMDcgMjA6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBDSEFOR0VTOiBPcGVuQlNEOiBTdXBwb3J0IHVwZGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlCiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMjA6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBTZXQgJ25leHQnIGZpZWxkIGZvciB1ZHAgZW50cnkgbGlua2VkIGxpc3Qgb24gT3BlbkJTRDQKICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAKICAgVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGluIDxuZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oPgoKMjAxMS0wMS0wNyAyMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBVc2UgYSBzdWl0YWJsZSBjb25zdGFudCBmb3IgQ1dEIGJ1ZmZlciBzaXplCiAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDIwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb3ZlIGdsb2JhbCB2YXJpYWJsZSBpbnRvIHRoZSBtZXRob2Qgd2hlcmUgaXQncyB1c2VkLgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxNDozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CgogICBVcGRhdGUgcmV0cmlldmFsIG9mIGNhY2hlIHVzYWdlIHN0YXRpc3RpY3Mgb24gRnJlZUJTRAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE0OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTQ6MDkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZSBkaXJlY3RpdmVzCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIFJURl9MTElORk8gaXMgbm90IGRlZmluZWQKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgSW5jbHVkZSB6ZnMgbW91bnQgcG9pbnRzIGZvciBkaXNrIHJlcG9ydHMgdW5kZXIgRnJlZUJTRAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjM0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg6CgogICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzoyNCAgZHRzMTIKCiAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIva2V5dG9vbHMuYywgIAogICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEluY2x1ZGUgPHVuaXN0ZC5oPgogICBbRnJvbSBCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzoyMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucy4KICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQoKMjAxMS0wMS0wNyAxMjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgRnJlZUJTRCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWluZyBzY2hlbWUgZm9yIHN0cnVjdCBpZnJlcQogICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTI6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcKICAgY29ubmVjdGlvbnMKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNiAxOTozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIEZpeCBkb2N1bWVudGF0aW9uIGJ1ZyBwb2ludGVkIG91dCBpbiBjcGFuIGJ1ZyAjNTI2MTgKCjIwMTEtMDEtMDYgMTQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQKICAgc2Vzc2lvbnMKICAgCiAgIFFuOiBTaG91bGQgdGhpcyBhbHNvIGJlIGFwcGxpZWQgd2hlbiBtYWluIHNlc3Npb24gaXMgTlVMTD8KCjIwMTEtMDEtMDYgMTM6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRml4IG1pc2xlYWRpbmcgaW5kZW50YXRpb24KICAgCiAgIFFuOiBTaG91bGQgdGhpcyBjYWxsICdzdWJhZ2VudF9zdGFydHVwJyByYXRoZXIgdGhhbgogICAnYWdlbnR4X3Jlb3Blbl9zZXNzaW9uJz8KICAgUW46IFdoeSBkb2Vzbid0IHRoaXMgYXR0ZW1wdCB0byByZS1vcGVuIHRoZSBzZXNzaW9uIGlmIGl0IHdhcwogICBvcmlnaW5hbGx5IE5VTEw/CgoyMDExLTAxLTA2IDEyOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk0MTgxMTogSGFuZGxlIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgd2l0aAogICByZXFJRCAwCgoyMDExLTAxLTA2IDA5OjM4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIFNwZWxsaW5nIGZpeDogSW5pdGlhbHppZXMgLT4gSW5pdGlhbGl6ZXMuCgoyMDExLTAxLTA2IDA5OjM1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcjIoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKCkuCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX2hhbmRsZXJfb3duc19pdGVyYXRvcl9pbmZvKCkuCiAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBsZWFrLWF0LWV4aXQgdHJpZ2dlcmVkIGJ5IHNubXBOb3RpZnlUYWJsZS4KICAgQ0hBTkdFUzogYWdlbnQ6IEZpeGVkIGxlYWstYXQtZXhpdCB0cmlnZ2VyZWQgYnkKICAgc25tcFRhcmdldEFkZHJUYWJsZS4KICAgQWxzbywgcmVzdG9yZWQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb2YKICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcigpLgoKMjAxMS0wMS0wNiAwNDo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgaW5jbHVkZSBzeXMvc29ja2V0LmggaWYgYXZhaWxhYmxlCgoyMDExLTAxLTA1IDE0OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTM0MzIzOiBGaXggY3Jhc2ggd2hlbiBjb21wYXJpbmcgaW52YWxpZAogICBPSURzCgoyMDExLTAxLTA1IDE0OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBCVUdTOiAzMTUxMjU0OiBGaXggY3Jhc2ggd2l0aCBpbnZhbGlkCiAgIHRyYXBoYW5kbGUgZGlyZWN0aXZlCgoyMDExLTAxLTA1IDA5OjU1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBFeHBhbmQgdGFiIGNoYXJhY3RlcnMKCjIwMTEtMDEtMDQgMjI6MDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoZWNrIHRoYXQgdGhlIGFyZ3VtZW50IHRvCiAgIG5ldHNubXBfdHJhbnNwb3J0X2NvcHkgaXMgbm9uLU5VTEwKCjIwMTEtMDEtMDQgMTg6MjQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBDb3B5cmlnaHQgdXBkYXRlIGZvciAyMDExCgoyMDExLTAxLTA0IDEyOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFdpbjMyIE1JQi1JSQogICBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDEtMDMgMTk6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmM6CgogICBSZW1vdmVkIHR3byB1bnVzZWQgdmFyaWFibGVzLgoKMjAxMS0wMS0wMyAxOTo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIG1pc21hdGNoIGJldHdlZW4gZm9ybWF0IHNwZWNpZmljYXRpb24KICAgYW5kIGFyZ3VtZW50IGxpc3QuCgoyMDExLTAxLTAzIDE5OjQ3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEdldCByaWQgb2YgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncyBieSBhZGRpbmcgdHdvCiAgICNpbmNsdWRlIGRpcmVjdGl2ZXMgYW5kIGNvbW1lbnRpbmcgb3V0IHR3byB1bnVzZWQgZnVuY3Rpb25zLgoKMjAxMS0wMS0wMiAwNTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBkb24ndCBmcmVlIGNhbGxlcnMgcHRyCgoyMDExLTAxLTAyIDA1OjQ4ICByc3RvcnkKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIGNsZWFuIHVwIFNOTVBfRlJFRSB1c2FnZQoKMjAxMS0wMS0wMiAwNTo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBkZWJ1ZyB0b2tlbgoKMjAxMS0wMS0wMiAwNTo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgZml4IGZ1bmN0aW9uIG5hbWUgaW4gcHJvdG90eXBlCgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMS0wMS0wMiAwNTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlbW92ZSBpbmxpbmUgdmVyc2lvbnMgb2YgY29udGFpbmVyIGZ1bmNzCgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGRvbnQgcmV0dXJuIGVtcHR5IGFycmF5CgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZml4IHR5cG9zL2dyYW1tYXIgaW4gbWFuIHBhZ2VzL2NvbW1lbnRzIChubyBjb2RlIGNoYW5nZXMpCgoyMDExLTAxLTAyIDA1OjQ1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgbmV3IHRyYW5zcG9ydCBjb25maWcgdG9rZW5zCiAgIGxvY2FsQ2VydC9wZWVyQ2VydCwKICAgZGVwcmVjYXRlIG91cl9pZGVudGl0eSwgdGhlaXJfaWRlbnRpdHkKCjIwMTEtMDEtMDIgMDU6NDUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGludHJvZHVjZSBuZXcgbG9jYWxDZXJ0L3BlZXJDZXJ0LCBkZXByZWNhdGUKICAgc2VydmVyQ2VydCwgY2xpZW50Q2VydCwgZGVmWDUwOVNlcnZlclB1YiwgZGVmWDUwOUNsaWVudFB1YgoKMjAxMS0wMS0wMiAwNTo0NCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBJUHY2IHN1cHBvcnQgdG8gRFRMU1VEUCB0cmFuc3BvcnQKICAgQ0hBTkdFUzogc25tcGxpYjogdXNlIG5ldyBuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgaW4KICAgbmV0c25tcF9hZGRyX3BhaXIKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGJhc2VfdHJhbnNwb3J0IHB0ciBmb3IgdHVubmVsZWQgdHJhbnNwb3J0cwoKMjAxMS0wMS0wMiAwNTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBza2lwIG5vbi1BRl9JTkVUIGludGVyZmFjZXMgd2hlbiBsb2FkaW5nIGlwdjQKICAgYWRkcnMKCjIwMTAtMTItMjkgMDE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgTkVXUzogc25tcGQ6IFBhdGNoIDMxNDE0NjI6IGZyb20gZmVubmVyOiBmaXggYWdlbnR4IHN1YmFnZW50CiAgIGlzc3VlcyB3aXRoIG11bHRpcGxlLW9iamVjdCByZXF1ZXN0cwoKMjAxMC0xMi0yOSAwMTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBzbm1wZDogUGF0Y2ggZnJvbSBOaWVscyB0byBmaXggVkFDTSBwZXJzaXN0YW50IHN0b3JhZ2UuCgoyMDEwLTEyLTIxIDExOjI5ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIEJyaW5nIGFsbCB2ZXJzaW9ucyBvZiBtYWtlcmVsZWFzZS54bWwgaW50byBsaW5lCgoyMDEwLTEyLTIxIDA2OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgZml4IGNvbmZpZ3VyaW5nIHdpdGggLS1kaXNhYmxlLWRlYnVnZ2luZwoKMjAxMC0xMi0yMCAyMzoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgUGF0Y2ggZnJvbSBNYWdudXMgdG8gZml4IGlmICEgdGVzdHMgb24gc29sYXJpcwoKMjAxMC0xMi0xNCAyMDoxMCAgcnN0b3J5CgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZml4IHR5cG8gaW4gbWFuIHBhZ2UKCjIwMTAtMTItMTAgMTU6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiB0byBmaXggZW5naW5laWQgZ2VuZXJhdGlvbgogICBvbiBvdXRnb2luZyB2MyB0cmFwcyBmcm9tIHRoZSBhZ2VudAoKMjAxMC0xMi0wOCAxMzoxNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgbmV3bHkgY3JlYXRlZC9kZXN0cm95ZWQgaW50ZXJmYWNlcyB0bwogICBpcHY2SWZUYWJsZQogICAKICAgVGhlIGxpc3Qgb2YgaW50ZXJmYWNlcyB3YXMgbmV2ZXIgcmVmcmVzaGVkLCBub3cgaXQgaXMgcmVsb2FkZWQKICAgZXZlcnkgdGltZSB0aGUKICAgdGFibGUgaXMgYWNjZXNzZWQuIEkndmUgYWxzbyBmaXhlZCBhIG1lbW9yeSBsZWFrIGFuZCBvcHRpbWl6ZWQKICAgdGhlIGxvYWRpbmcKICAgb2YgdGhlIGxpc3QgYSBiaXQuCgoyMDEwLTEyLTA2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUGF0Y2ggZnJvbSBOaWVscyB0byByZW1vdmUgZXh0cmEgaGVhZGVycyBmcm9tIHRoZSBsaW51eCBkb3Qzc3RhdHMKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMTItMDYgMjI6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENoZWNrIGZvciB0aGUgbWluaW11bSByZXF1aXJlZCBmdW5jdGlvbiBpbiBPcGVuU1NMIGZvciBEVExTCiAgIHN1cHBvcnQKCjIwMTAtMTItMDYgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNhbGwgbmV0c25tcF9jZXJ0c19hZ2VudF9pbml0IHNvb25lciwgZml4aW5nIHNubXB0cmFwZCAoRClUTFMKICAgc3VwcG9ydAoKMjAxMC0xMi0wNiAxNjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgZml4IGNvbnRleHRFbmdpbmVJRHMgZm9yIG91dGdvaW5nIGluZm9ybXMgZnJvbSBzbm1waW5mb3JtIHRvIGJlCiAgIHRoZSBsb2NhbCBlbmdpbmVJRAoKMjAxMC0xMi0wMSAyMToxOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBjb25mbGljdGluZyBkZWNsYXJhdGlvbnMKCjIwMTAtMTItMDEgMDE6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUGF0Y2ggZnJvbSBtYWdmciB0byBmaXggYnVpbGRpbmcgd2l0aG91dCBvcGVuc3NsCgoyMDEwLTEyLTAxIDAxOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CgoyMDEwLTExLTMwIDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGltcGxlbWVudCBEVExTIGNvb2tpZXMgc2VtaS1wcm9wZXJseSAoc3RhdGUgaXMgc3RpbGwgc2F2ZWQsIHdoaWNoCiAgIHN0aWxsIG5lZWRzIHRvIGNoYW5nZSkKCjIwMTAtMTEtMzAgMjM6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0OTAyOTogZnJvbSBmZW5uZWM6IGZpeCBhIG1lbW9yeSBsZWFrIHdpdGgKICAgc25tcCBidWxrd2Fsa3MKCjIwMTAtMTEtMzAgMjM6MTYgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQzNjogZnJvbTogdGFrZXZvczogZml4OgogICB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MgaW52YWxpZCBtZW1vcnkgYWNjZXNzCgoyMDEwLTExLTMwIDIzOjEyICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQzNjogZnJvbTogdGFrZXZvczogZml4OgogICB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzIGludmFsaWQgbWVtb3J5IGFjY2VzcwoKMjAxMC0xMS0zMCAyMjoxOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZXZlcnRlZCAxOTcwMSAoZXRodG9vbCkgYXMgaXQgYnJva2UgdGhpbmdzCgoyMDEwLTExLTMwIDIxOjA4ICBuYmEKCiAgICogYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgdV9pbnQzMl90IGlzIGxlc3MgcG9ydGFibGUgdGhhbiB1aW50MzJfdCAoU29sYXJpcyAxMSkKCjIwMTAtMTEtMzAgMjA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgY29tcGlsZSB3YXJuaW5nIGFib3V0IGEgbmVzdGVkIGlmIHdpdGhvdXQgYSBibG9jawoKMjAxMC0xMS0zMCAxOTo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBlcnJvciBjaGVjayB0aGUgcmlnaHQgcG9pbnRlciBhZnRlciBhdHRlbXB0aW5nIGFsbG9jYXRpb24KCjIwMTAtMTEtMzAgMDU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIE5FV1M6IGFwcHM6IFBBVENIIDMwNTQ4MTc6IGZyb20gbmlnaHRjb2Rpbmc6IEFkZHMgcGVyLXZhcmlhYmxlCiAgIHRpbWVkIG91dHB1dCBzdXBwb3J0IHRvIHNubXB3YWxrIHVzaW5nIC1DVAoKMjAxMC0xMS0zMCAwNTo1NiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTcwOTA6IGZyb20gc2hlbW1pbmdlcjogbWFrZSBldGh0b29sCiAgIHN1cHBvcnQgb24gbGludXggdXNlIHRoZSBoaWdoIHNwZWVkIHN0cnVjdCBpbmZvIGZvciAxMDBHKy4KCjIwMTAtMTEtMzAgMDU6NDcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGQ6IFBBVENIIDMwNTcwOTM6IGZyb20gc2hlbW1pbmdlcjogYWxsb3cgbGludXggdG8gdXNlCiAgIGxpYnBjaSBmb3IgY3JlYXRpbmcgdXNlZnVsIGlmRGVzY3Igc3RyaW5ncwoKMjAxMC0xMS0zMCAwNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSCAzMDc0OTE4OiBmcm9tIHdlaXpoZW5nOiBjaGVjayBmb3IgQ09OVEFJTkVSX0lOU0VSVAogICBmYWlsdXJlcyBhbmQgcmVhY3QgYXBwcm9wcmlhdGVseSB0byBhdm9pZCBtZW1vcnkgbGVha3MKCjIwMTAtMTEtMzAgMDQ6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGFkZCBkZWJ1ZyBmb3IgY2VydCBmaW5kIGhpbnQgYXMgc3RyaW5nL2ludAoKMjAxMC0xMS0zMCAwNDozMCAgcnN0b3J5CgogICAqICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGluc3RlYWQgb2YgcmVseWluZyBvbiBORVRTTk1QX0RTX0xJQl9BUFBUWVBFLAogICBicmVhayBvdXQKICAgY2VydCB0YWJsZSBpbml0cyB0byBuZXcgYWdlbnQgY2VydCBpbml0IGZ1bmN0aW9uLCBjYWxsZWQgZnJvbQogICBpbml0X2FnZW50LgoKMjAxMC0xMS0zMCAwNDoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiBlbmZvcmNlIG1heCBsZW5ndGggb24gVExTIHNlY05hbWUgbWFwcwogICBDSEFOR0VTOiBzbm1wZDogYWRkIHByaW9yaXR5IHRvIHNlY25hbWUgZGVidWdnaW5nCgoyMDEwLTExLTI5IDIyOjIwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogYWRkIGRlYnVnIGZvciBzc2wgY2lwaGVycywgY2xhcmlmeSBmaW5nZXJwcmludAogICBtYXRjaCBkZWJ1ZwoKMjAxMC0xMS0yOSAyMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHVzZSBjYWNoZS11bmlxdWUgaWQgaW5zdGVhZCBvZiBoYW5kbGVyIG5hbWUgZm9yCiAgIHNoYXJlZAogICBjYWNoZSByZWxvYWQgcHJvdGVjdGlvbgoKMjAxMC0xMS0xOSAxNToyNSAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmM6CgogICBOaWVscywgTmllbHMsIHlvdSBzaG91bGQga25vdyBiZXR0ZXIgdGhhbiBtYWtpbmcgbGFzdCBtaW51dGUKICAgY2hhbmdlcyB0byBhCiAgIHBhdGNoIGFuZCB0aGVuIGNvbW1pdCBpdCB3aXRob3V0IHRlc3RpbmcgOi0oCgoyMDEwLTExLTE4IDExOjA0ICBidmFzc2NoZQoKICAgKiAgLiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jOgoKICAgQXBwbGllZCByMTk2ODggb24gdGhlIHRydW5rIHRvbyAoZm9sbG93LXVwIGZvciByMTk2ODUpLgoKMjAxMC0xMS0xOCAwMzo0OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBkb24ndCBzZWNvbmQtZ3Vlc3MgY2FjaGUgaGFuZGxlcgogICAKICAgKHdhdmVzIGhhbmQpIHRoaXMgaXMgbm90IHRoZSBmdW5jdGlvbiB5b3UgYXJlIGxvb2tpbmcgZm9yLgogICAKICAgbmV0c25tcF9jYWNoZV9pc192YWxpZCgpIGlzIG5vdCBtZWFudCBmb3IgbWliIG1vZHVsZXMKCjIwMTAtMTEtMTcgMTk6NTkgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzoKCiAgIE1vcmUgcHJvY3Rpb24gYWdhaW5zdCBvdmVyZmxvd2luZyBzbnByaW50ZgoKMjAxMC0xMS0xNyAxOTo1NyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIERvbnQgdXNlIGZpcnN0IGVsZW1lbnQgb2Ygb2lkIHRvIHNhdmUgaWZJbmRleCAtIGl0IGNhbiBvbmx5IGJlCiAgIDAuLjIKICAgU2Vjb25kIGVsZW1lbnQgaXMgb25seSAwLi4zOSwgc28gd2UgaGF2ZSB0byB1c2UgYSB0aGlyZCBlbGVtZW50LgoKMjAxMC0xMS0xNyAxOTozOSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgVGVzdCBnZXRmc3N0YXQvZ2V0dmZzc3RhdCBpbiB0aW1lIGZvciBtb2R1bGUgc2VsZWN0aW9uCgoyMDEwLTExLTE3IDE5OjM3ICBuYmEKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBSZW1vdmUgYm9ndXMgdGVzdCBmb3IgZmxhZ3M9PTAgKE9fUkRPTkxZPT0wKS4gTWFrZXMKICAgdWRwRW5kcG9pbnRUYWJsZSB3b3JrIGFnYWluCgoyMDEwLTExLTE3IDA0OjU1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggZG91YmxlIGZyZWUgaW4gVExTIGVycm9yIGhhbmRsaW5nCgoyMDEwLTExLTE2IDEwOjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGU6CgogICBSZXZlcnRlZCBNaW5HVy1zcGVjaWZpYyBjaGFuZ2VzIGZyb20gcjE5NTQ5IHN1Y2ggdGhhdCB0ZXN0IFQwNjUKICAgcGFzc2VzIGFnYWluIG9uIE1pbkdXLgoKMjAxMC0xMS0xNiAxMDowNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgQ0hBTkdFUzogTGludXg6IGFnZW50OiBpcE5ldFRvUGh5c2ljYWxUYWJsZTogRG8gbm90IGxvZyBhbiBlcnJvcgogICBtZXNzYWdlIGlmIG9uZSBvciBtb3JlIGludGVyZmFjZXMgYXJlIHByZXNlbnQgdGhhdCBkbyBub3QgaGF2ZQogICBzdWNoIGluZm9ybWF0aW9uIChOVURfTk9BUlApLCBlLmcuIHR1bm5lbHMuIFJlcG9ydGVkIGJ5IFN0ZXBoZW4KICAgSGVtbWluZ2VyLiBTZWUgYWxzbyBwYXRjaCAjMzEwNzAwMy4KCjIwMTAtMTEtMTUgMTQ6MTUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYnVncyBpbiBhc25fcGFyc2VfdW5zaWduZWRfaW50NjQoKSwKICAgYXNuX2J1aWxkX3Vuc2lnbmVkX2ludDY0KCksIGFzbl9wYXJzZV9zaWduZWRfaW50NjQoKSBhbmQKICAgYXNuX2J1aWxkX3NpZ25lZF9pbnQ2NCgpLiBNb3N0IGJ1dCBub3QgYWxsIG9mIHRoZXNlIGJ1Z3Mgd2VyZQogICBzcGVjaWZpYyB0byA2NC1iaXQgc3lzdGVtcy4gRml4ZXMgYnVnICMzMDkzMTk5LgoKMjAxMC0xMS0xNSAxMzozMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CgogICBBdm9pZCB0cmlnZ2VyaW5nIHRydW5jYXRpb24gd2FybmluZ3MuCgoyMDEwLTExLTE1IDEzOjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDhhc24xX2NsaWIuYzoKCiAgIFJlc3RyaWN0ZWQgYWxsIGNvbnN0YW50cyB0byAzMiBiaXRzLgoKMjAxMC0xMS0xNSAxMjozNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTY2NS4KCjIwMTAtMTEtMTUgMTI6MzMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgb2YKICAgZGVidWdfcmVnaXN0ZXJfdG9rZW5zKCkgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouCgoyMDEwLTExLTE1IDEwOjU2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDhhc24xX2NsaWIuYzoKCiAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgQVNOLjEgZW5jb2RpbmcgYW5kIGRlY29kaW5nIChvbmx5IDMyLWJpdCBhbmQKICAgNjQtYml0CiAgIGludGVnZXJzIHNvIGZhcikuCgoyMDEwLTExLTExIDIyOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgRml4IHIxOTYzNjogVHJhcE9JRCBpcyBub3QgdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNvbnZlcnRlZCB2MgogICB0cmFwCgoyMDEwLTExLTExIDA4OjM4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIENsZWFudXA6IFJlbW92ZWQgc3VwZXJmbHVvdXMgcmVmZXJlbmNlcyB0byB0aGUgUE9TSVggdGhyZWFkcwogICBsaWJyYXJ5LgoKMjAxMC0xMS0xMSAwODoyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgRm9sbG93LXVwIGZvciByMTk2NjA6IFVzZSBwaWRfdCBjb25zaXN0ZW50bHkuCgoyMDEwLTExLTEwIDE2OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEludHJvZHVjZWQgbmV0c25tcF9waWRfdC4KICAgQ0hBTkdFUzogV2luMzI6IEVsaW1pbmF0ZWQgY2FzdHMgYmV0d2VlbiBpbnQgYW5kIEhBTkRMRSBpbgogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgYW5kCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLgoKMjAxMC0xMS0xMCAxNTo0OSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBGb2xsb3ctdXAgZm9yIHIxOTYwNjogY211X2NvbXBhdCByZW1vdmFsLgoKMjAxMC0xMS0xMCAxMjozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBCVUc6IDMxMDI5MDQ6IEFsbCBOZXQtU05NUCBDIHNvdXJjZSBmaWxlcyBhcmUgbm93CiAgIGNvbXBpbGVkIHdpdGggLWZuby1zdAogICByaWN0LWFsaWFzaW5nLCBhdCBsZWFzdCBpZiB0aGUgY29uZmlndXJlZCBjb21waWxlciBzdXBwb3J0cyB0aGlzCiAgIGZsYWcuCgoyMDEwLTExLTA5IDEzOjQ3ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVGVzdCBUMDMwIGRvZXMgbm93IHBhc3Mgb24gTWluR1cuCgoyMDEwLTExLTA5IDEzOjQwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFJlbW92ZWQgYSBzdXBlcmZsdW91cyBJU0RFRklORUQgaW52b2NhdGlvbi4KCjIwMTAtMTEtMDkgMTI6MDQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZToKCiAgIFBhc3NlcyBub3cgb24gTWluR1cgdG9vLgoKMjAxMC0xMS0wOSAxMTozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgRm9sbG93LXVwIGZvciByMTk2NDYuCgoyMDEwLTExLTA5IDExOjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IElmIHRoZSBhZ2VudCBoYXMgYmVlbiBhc2tlZCB0byBzdG9wLAogICB3YWl0IHVudGlsIHRoZSBzbm1wZCBwcm9jZXNzIGRpc2FwcGVhcmVkIGJlZm9yZSBwcm9jZWVkaW5nLgoKMjAxMC0xMS0wOSAxMDowMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogY29tMnNlYzYgZGlyZWN0aXZlOiBJZiBjb25maWd1cmUgaGFzIG5vdCBmb3VuZAogICBnZXRhZGRyaW5mbygpLCBub24tbnVtZXJpYyBJUHY2IGFkZHJlc3NlcyBkbyBub3cgdHJpZ2dlciBhbiBlcnJvcgogICBtZXNzYWdlLgoKMjAxMC0xMS0wOCAxNTozNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVGVzdCA3MSAoY29tMnNlYzZfc2ltcGxlKSBkb2VzIG5vdyBzdWNjZWVkIGV2ZW4KICAgaWYgSVB2NiBETlMgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlLgoKMjAxMC0xMS0wOCAxNTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgTWluR1csIHRlc3Rpbmc6IGNsaWIgdGVzdHMgYnVpbGQgYWdhaW4gd2l0aG91dCB3YXJuaW5ncy4KCjIwMTAtMTEtMDggMTQ6NTIgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IE1pbkdXOiBjb25maWd1cmU6IERldGVjdGlvbiBvZiB0aGUgZnVuY3Rpb25zCiAgIGdhaV9zdHJlcnJvcigpLCBnZXRhZGRyaW5mbygpLCBnZXRob3N0YnluYW1lKCkgYW5kIGdldGhvc3RuYW1lKCkKICAgZG9lcyBub3cgc3VjY2VlZC4KCjIwMTAtMTEtMDggMTQ6NDggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwN2luZXRfcHRvbl9jbGliLmM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGRlZCBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkgdW5pdCB0ZXN0LgoKMjAxMC0xMS0wOCAxNDo0NyAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgdGVzdGluZzogY2xpYl9idWlsZDogQWRkZWQgI2luY2x1ZGUgZGlyZWN0aXZlcyAoPGFycGEvaW5ldC5oPiBhbmQKICAgPG5ldGluZXQvaXA2Lmg+KS4KCjIwMTAtMTEtMDggMDg6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBXaW4zMjogYWdlbnQ6IGVsaW1pbmF0ZWQgY2FzdHMgZnJvbS90byBpbnQgZm9yIHRocmVhZCBoYW5kbGVzLgoKMjAxMC0xMS0wOCAwNzo1OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBSZW1vdmVkIE5FVFNOTVBfU1RBVElDX0lOTElORSBmcm9tIHRoZSBkZWNsYXJhdGlvbiBvZgogICBfYnVpbGRfY2FjaGVfbmFtZSAtIGF0IGxlYXN0IGdjYyBpcyBiZXR0ZXIgdGhhbiBhIGh1bWFuIGF0CiAgIGRlY2lkaW5nIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5saW5lZCBhbmQgd2hpY2ggb25lcyBub3QuCgoyMDEwLTExLTA4IDA3OjU2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIG5ldHNubXBfdGFibGVfZGF0YV9jbG9uZV9yb3coKTogQWRkZWQgbWlzc2luZyBmcmVlKCkgc3RhdGVtZW50IGluCiAgIGFuIGVycm9yIHBhdGguCgoyMDEwLTExLTA3IDIxOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyMTE5NzI1OiBGaXggc2tpcE5GU0luSG9zdFJlc291cmNlcwogICBoYW5kbGluZyBvZiBoclN0b3JhZ2VUYWJsZQoKMjAxMC0xMS0wNyAyMToxNCAgbWFnZnIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2Ygc3RyZHVwIGluCiAgIG5ldHNubXBfY3JlYXRlX2RhdGFfbGlzdCBhbmQgZmFpbCBpZiBzdHJkdXAgZmFpbHMuCgoyMDEwLTExLTA3IDE5OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzA5NjcyNTogRG9uJ3QgcmVnaXN0ZXIgdjFUcmFwIGNhbGxiYWNrLAogICBpZiBTTk1QdjEgaXMgbm90IHN1cHBvcnRlZAoKMjAxMC0xMS0wNyAxOTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE4NDAyMzA6IERvbid0IGluY2x1ZGUgdGhlIGluZGV4IG9iamVjdCBhcwogICAocHNldWRvLSlhY2Nlc3NpYmxlIGNvbHVtbi4KCjIwMTAtMTEtMDcgMTk6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMDk2NzI1OiBJbmNsdWRlIFNOTVB2MSB0cmFwIE9JRHMgaW4KICAgbmxtTG9nTm90aWZpY2F0aW9uSUQgY29sdW1uCgoyMDEwLTExLTA3IDE2OjM1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZvcmNlIGEgOyBhdCB0aGUgZW5kIG9mIHRoZSBzdGF0aWNfYXNzZXJ0CiAgIG1hY3JvLgoKMjAxMC0xMS0wNSAxNTo0MSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgTWFkZSBzdXJlIHRoYXQgcnBtR2V0UGF0aCgpIGNhbiBiZSBmb3VuZCBieSBjb25maWd1cmUuCgoyMDEwLTExLTA1IDE0OjUwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIFJlbW92ZWQgc3VwZXJmbHVvdXMgLUkvdXNyL2luY2x1ZGUvcnBtLgoKMjAxMC0xMS0wNSAxMjoxOCAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIENIQU5HRVM6IGFnZW50OiBGaW5kIG91dCB3aGV0aGVyIGxpYnJwbSBpcyBhdmFpbGFibGUgYmVmb3JlCiAgIGNvbmZpZ3VyaW5nIHRoZSBhZ2VudCBtb2R1bGVzIGJlY2F1c2UgaG9zdC9kYXRhL2FjY2Vzcy9zd2luc3QKICAgbmVlZHMgc3ltYm9sIEhBVkVfTElCUlBNLiBBcyBhIHJlc3VsdCwgY29uZmlndXJlIGhhcyB0byBiZSBydW4KICAgb25seSBvbmNlIGluc3RlYWQgb2YgdHdpY2UgdG8gZW5hYmxlIHRoZSBoclNXSW5zdGFsbGVkIHRhYmxlIG9uCiAgIHN5c3RlbXMgdGhhdCBoYXZlIGxpYnJwbS4KCjIwMTAtMTEtMDUgMTI6MTEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYzoKCiAgIFN1cHByZXNzIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMTEtMDUgMTA6MDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGhvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbTogRml4ZWQgYSBtZW1vcnkgbGVhawogICBpbiBuZXRzbm1fc3dpbnN0X2FyY2hfaW5pdCgpLgoKMjAxMC0xMS0wNSAwOToyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBQYXNzIGNvcnJlY3QgcGF0aCB0bwogICBycG1kYk9wZW4oKSBzdWNoIHRoYXQgb3BlbmluZyB0aGUgZGF0YWJhc2Ugc3VjY2VlZHMuCiAgIENIQU5HRVM6IGFnZW50OiBob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG06IExvZyBhbiBlcnJvciBtZXNzYWdlCiAgIGlmIHJwbWRiT3BlbigpIGZhaWxzLgoKMjAxMC0xMS0wNSAwODo1MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jOgoKICAgUm1vbiAvIGRpc21hbiBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0xMS0wNSAwODo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBtYWNybyBuZXRzbm1wX3N0YXRpY19hc3NlcnQoKS4KCjIwMTAtMTEtMDUgMDg6NDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRm9sbG93LXVwIGZvciByMTk1NjYuCgoyMDEwLTExLTA1IDA4OjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgUmVtb3ZlZCBhIChoYXJtbGVzcyA/KSBjaXJjdWxhciByZWZlcmVuY2UuCgoyMDEwLTExLTA0IDEzOjA5ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzA4MzAyNzogRml4IFJQTSBzcGVjIGZpbGUgdG8gc3VwcG9ydAogICBDZW50T1MKCjIwMTAtMTEtMDMgMTM6MjIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlOgoKICAgc2tpcCB0bHNpcHY2IHRlc3QgaWYgbm90IHRsc3RjcC90Y3BpcHY2IGRvbWFpbnMKCjIwMTAtMTEtMDEgMjM6MDMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgc3VwcG9ydCBmb3IgQ01VIGNvbXBhdGliaWxpdHkgc2luY2UKICAgdGhlcmUgaXMgbm8gd2F5IHRvIGVuYWJsZSBpdCBhbmQgbm9ib2R5IGhhdmUgbWlzc2VkIGl0LgoKMjAxMC0xMS0wMSAxNjo1MCAgZHRzMTIKCiAgICogbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFJld29yayBkZXNjcmlwdGlvbiBvZiBPSUQgbmFtZSBoYW5kbGluZyB0byBiZQogICBub3QgcXVpdGUgc28gaW5jcmVkaWJseSBvdXQgb2YgZGF0ZS4KCjIwMTAtMTEtMDEgMTY6NDcgIGR0czEyCgogICAqIG1hbi9zbm1wZ2V0LjEuZGVmOgoKICAgRG9jdW1lbnQgLUNmIGluIHRoZSB0d28gbWFuIHBhZ2VzIHNlcGFyYXRlbHkuCgoyMDEwLTEwLTI5IDIyOjMxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBudWxsIG91dCBiaW8gcG9pbnRlcnMgYWZ0ZXIgYmVpbmcgZnJlZWQ7IGJhaWwgb24gY29ubmVjdGlvbgogICB3aXRoIG5vIHNzbCBwb2ludGVyCgoyMDEwLTEwLTI5IDE0OjM1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIFJldmVydGVkIGluY29ycmVjdCBjaGFuZ2VzIGZyb20gcjE5NTc1LgoKMjAxMC0xMC0yOSAxNDoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhIGJ1ZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTUxNS4KCjIwMTAtMTAtMjkgMTQ6MDAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgUmV2ZXJ0ZWQgdGhlIGluY29ycmVjdCBjaGFuZ2VzIGZyb20gcjE5NTkzLgoKMjAxMC0xMC0yOSAxMzozOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIFJlZHVjZWQgbnVtYmVyIG9mIGxlYWstYXQtZXhpdCBjb21wbGFpbnRzIHRyaWdnZXJlZCBieQogICBzbm1wbGliL2NlcnRfdXRpbC5jLgoKMjAxMC0xMC0yOSAxMzozNyAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgTW9yZSBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTI5IDEzOjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmg6CgogICBNb3JlIGxlYWstYXQtZXhpdCBmaXhlcy4KCjIwMTAtMTAtMjkgMTI6MTggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgU3BlbGxpbmcgZml4IGluIGxvZyB0ZXh0czogY29udGFpbnRlciAtPiBjb250YWluZXIuCgoyMDEwLTEwLTI5IDA5OjU4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBSYW4gZmlsbHVwX2VudHJ5X2luZm8oKSB0aHJvdWdoIGluZGVudC4KCjIwMTAtMTAtMjkgMDk6NTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIE5ldGxpbmsgSVB2NiBwcmVmaXggcHJvY2Vzc2luZzogQWRkZWQgbW9yZSBkZWJ1ZyBzdGF0ZW1lbnRzLgoKMjAxMC0xMC0yOSAwOTo1NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgTWFkZSBhcmd1bWVudCBjaGVja2luZyBvZiBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJsZV9pbmZvKCkgbW9yZQogICBzdHJpY3QuCgoyMDEwLTEwLTI5IDA5OjUyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oOgoKICAgTW9yZSBNSUItc3BlY2lmaWMgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yOSAwNzo1NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0xMC0yOCAxODozMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXggY29uc3QgcXVhbGlmaWVyIHdhcm5pbmcKCjIwMTAtMTAtMjggMTc6NTMgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDbGVhbiBvdXQgU29sYXJpcyB3YXJuaW5ncwoKMjAxMC0xMC0yOCAxNzo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgTFZNIGlzIExpbnV4IG9ubHkKCjIwMTAtMTAtMjggMTc6NTEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEF2b2lkIGNoYXIgc3Vic2NyaXB0cyAoc2lnbmVkIGNoYXJzXCEpCgoyMDEwLTEwLTI4IDE3OjQzICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICBjYXN0cyBhbmQgZm9ybWF0IHNwZWNpZmllcnMgaW4gZGVidWcgb3V0cHV0CgoyMDEwLTEwLTI4IDE3OjQxICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDYXN0IHRvIHNvY2thZGRyIHRvIGF2b2lkIHdhcm5pbmcKCjIwMTAtMTAtMjggMTc6NDAgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgVW50YW5nbGUgcGljbCBmcm9tIGtzdGF0IGFjY2VzcyBzbyBpdCBjb21waWxlcyBvbiB4ODYgU29scmFpcwogICAxMC9PcGVuU29sYXJpcwoKMjAxMC0xMC0yOCAxNToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIE1vcmUgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yOCAxNToxMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoKSwKICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIoKSwgbmV0c25tcF9jbG9uZV93YXRjaGVyX2luZm8oKQogICBhbmQgbmV0c25tcF9vd25zX3dhdGNoZXJfaW5mbygpLiBTZWUgYWxzbyB0aGUgRG94eWdlbiBjb21tZW50cwogICBmb3IgbW9yZSBpbmZvLgoKMjAxMC0xMC0yOCAxNDowMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBGaXggbG9naWMgb2YgdGVzdGluZyBmb3Igb3V0LW9mLXJhbmdlIGVudW0gdmFsdWVzLgogICBSZXBvcnRlZCBieSBCb3JpcyBad2VpbXVlbGxlci4KCjIwMTAtMTAtMjggMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgR2V0IHJpZCBvZiBPcGVuU1NMLXJlbGF0ZWQgY29tcGlsYXRpb24gd2FybmluZ3MuIFNob3VsZCB3b3JrIGZvcgogICBib3RoIE9wZW5TU0wgdmVyc2lvbnMgMC45LnggYW5kIDEuMC54LgoKMjAxMC0xMC0yOCAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIGFuZCBhcmd1bWVudCkgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByNjU2Mi4KCjIwMTAtMTAtMjggMTE6NDMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmM6CgogICBHZXQgcmlkIG9mIHJlY2VudGx5IGludHJvZHVjZWQgbWVtZHVwKCkgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTEwLTI4IDExOjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTU1MC4KCjIwMTAtMTAtMjggMTE6MzIgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBSZXZlcnRlZCByMTk1NjUgYmVjYXVzZSBpdCBjYXVzZWQgZ2NjIHRvIHJlcG9ydCBtb3JlIHdhcm5pbmdzCiAgIGluc3RlYWQgb2YgbGVzcy4KCjIwMTAtMTAtMjggMTE6MTggIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTU2Ni4KCjIwMTAtMTAtMjggMTA6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE5NTE1OiByZW1vdmVkIHRoZSBuZXdseSBpbnRyb2R1Y2VkIGZ1bmN0aW9ucwogICBhbmQgZGF0YSBtZW1iZXJzIGFnYWluLCBidXQgd2l0aG91dCByZWludHJvZHVjaW5nIHRoZQogICBsZWFrLWF0LWV4aXQuCgoyMDEwLTEwLTI4IDEwOjMyICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgQ2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgdHdvIGFyZ3VtZW50cyBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeSB0byBjYXN0IHRoZXNlIHR3byBhcmd1bWVudHMgKGhhcyBiZWVuIHJldmVydGVkCiAgIHZpYSByMTk1NjgpLgoKMjAxMC0xMC0yOCAwOTo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciBjcmFzaCBpbiBuZXRzbm1wX2NhY2hlX3JlbW92ZSgpLgoKMjAxMC0xMC0yOCAwODo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE1hZGUgaXQgZWFzaWVyIHRvIGVuYWJsZSB0aGUgbWVtb3J5IGxlYWsgY2hlY2tlciBidWlsdC1pbiBpbgogICBNU1ZDJ3MgQyBydW50aW1lIGxpYnJhcnkuCgoyMDEwLTEwLTI3IDIwOjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIFNpemVvZiBoYXMgdHlwZSBzaXplX3QKCjIwMTAtMTAtMjcgMjA6MzUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdAoKMjAxMC0xMC0yNyAxODo0MCAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIFNwcmlua2xlIHNvbWUgdW5zaWduZWRuZXNzIHNvIHZhcnMgYW5kIHBhcmFtcyBhZ3JlZSBvbiB0eXBlCgoyMDEwLTEwLTI3IDE4OjM4ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIEluaXRpYWxpemUgdmFycyB0aGF0IGdjYyB0aGlua3MgYXJlIHVuaW5pdGlhbGl6ZWQKCjIwMTAtMTAtMjcgMTg6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBBIG1vcmUgbWVhbmluZ2Z1bCB0ZXN0IGZvciBNTERfTElTVEVORVJfUVVFUlkKCjIwMTAtMTAtMjcgMTg6MzUgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzIHdlcmUgbWlzc2luZwoKMjAxMC0xMC0yNyAxODozMyAgbmJhCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0ZXN0LmM6CgogICBDaGVjayBmZ2V0cyByZXR1cm4KCjIwMTAtMTAtMjUgMjA6NTkgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMzA4ODM2MDogRW5zdXJlIHB5dGhvbiBtb2R1bGVzIGFyZSBidWlsdAogICBhZ2FpbnN0IHRoZSBjb3JyZWN0IGxpYnJhcmllcwoKMjAxMC0xMC0yNSAyMDozNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDU4MTAxOiBXcml0ZWFibGUgJ2xvbmcnIGluc3RhbmNlcyB3b3JrIG9uCiAgIDY0LWJpdCBzeXN0ZW1zLCBidXQgbm90IHdyaXRhYmxlICdpbnQncwoKMjAxMC0xMC0yNSAxNjowNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRG9uJ3QgYXR0ZW1wdCB0byBwcm9jZXNzIHVucmVjb2duaXNlZCAiaWdub3JlKiIgZGlyZWN0aXZlcy4KICAgUGFzcyB0aGVzZSB0aHJvdWdoIHRvIHRoZSBhcHByb3ByaWF0ZSByZWdpc3RlcmVkIGNvbmZpZyBoYW5kbGVycwogICAoaWYgYW55KQoKMjAxMC0xMC0yNSAxNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXggYSBzdHVwaWQgdHlwbwoKMjAxMC0xMC0yNSAxNTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDYyNTM4OiBGaXggY29tMnNlYyogaGFuZGxpbmcgb2YKICAgbm9uLWRlZmF1bHQgY29udGV4dHMKCjIwMTAtMTAtMjUgMTI6NTQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZToKCiAgIENIQU5HRVM6IFdpbjMyOiB0ZXN0aW5nOiBBdm9pZCB0aGF0IFQyMDAgZmFpbHMgb24ga25vd24gTWljcm9zb2Z0CiAgIFNOTVAgZXh0ZW5zaW9uIERMTCBidWdzLgoKMjAxMC0xMC0yNSAwODowNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIE5FV1M6IExpbnV4OiBzbm1wZCBpcyBhZ2FpbiBzaW5nbGUtdGhyZWFkZWQuCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjk1OTgxMTogZnJvbSBKYW4gU2FmcmFuZWs6IFJlaW1wbGVtZW50CiAgIExpbnV4IE5ldGxpbmsgSVB2NiBwcmVmaXggbGlzdGVuZXIuCgoyMDEwLTEwLTI1IDA3OjE1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQXZvaWQgdGhhdCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGNhc3RpbmcgYXdheSB0aGUgJ2NvbnN0JwogICBhdHRyaWJ1dGUgZm9yIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBzc2xjdHhfY2xpZW50X3NldHVwKCkgYW5kCiAgIHNzbGN0eF9zZXJ2ZXJfc2V0dXAoKS4KCjIwMTAtMTAtMjUgMDY6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBpbmNsdWRlIG5lZWRlZCBwcm90b3R5cGVzCgoyMDEwLTEwLTI1IDA2OjE2ICBuYmEKCiAgICogIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBBZGp1c3QgdHlwZXMgdG8gYmV0dGVyIG1hdGNoIHVzYWdlCgoyMDEwLTEwLTI1IDA2OjE1ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBSZXZlYWwgaGlkZGVuIC1lIGFuZCAtdSBvcHRpb25zCgoyMDEwLTEwLTI1IDA2OjE0ICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGluY2x1ZGUgbmVlZGVkIHByb3RvdHlwZXMKCjIwMTAtMTAtMjUgMDY6MDEgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIGluY2x1ZGUgbmVlZGVkIHByb3RvdHlwZXMKCjIwMTAtMTAtMjUgMDY6MDAgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhcHBzL3NubXB0cmFwZF9zcWwuYzoKCiAgIGNvbnN0LWp1Z2dsaW5nIC0gd2UgZG9udCBsaWtlIHdhcm5pbmdzCgoyMDEwLTEwLTIzIDExOjU2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFJlZW5hYmxlZCBjYWNoZSByZW1vdmFsIGFuZCBmcmVlaW5nIC8gbW92ZWQgY2FjaGUgcmVmY291bnQKICAgaW5jcmVtZW50aW5nIHRvIG5ldHNubXBfY2FjaGVfb3duc19jYWNoZSgpIC8gY29udmVydGVkIHRhYnMgdG8KICAgc3BhY2VzLgoKMjAxMC0xMC0yMyAxMTowNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhbm90aGVyIGNyYXNoIGluIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkuCgoyMDEwLTEwLTIzIDExOjAwICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBSZW1vdmluZyB0aGUgbGFzdCBjYWNoZSB2aWEKICAgbmV0c25tcF9jYWNoZV9yZW1vdmUoKSBkb2VzIG5vIGxvbmdlciB0cmlnZ2VyIGEgY3Jhc2guCgoyMDEwLTEwLTIzIDEwOjU3ICBidmFzc2NoZQoKICAgKiAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYzoKCiAgIFQwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYjogSW50cm9kdWNlZAogICBuZXRzbm1wX2NhY2hlX2NyZWF0ZSgpLgoKMjAxMC0xMC0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBEaXNhYmxlZCBjYWNoZSBkZWFsbG9jYXRpb24gYmVjYXVzZSBpdCBtYWtlcyB0d28gdW5pdCB0ZXN0cyBmYWlsCiAgIC0gdG8gYmUgYW5hbHl6ZWQgZnVydGhlci4KCjIwMTAtMTAtMjIgMTU6MDMgIGJ2YXNzY2hlCgogICAqIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jOgoKICAgQnVpbGRzIGFnYWluLgoKMjAxMC0xMC0yMiAxNDo0OSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IE1JQi1zcGVjaWZpYyBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTIyIDE0OjQyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBleGFtcGxlIE1JQjogQWRkZWQgc2h1dGRvd24gZnVuY3Rpb24gdGhhdCBmcmVlcwogICBhbGwgbWVtb3J5IG93bmVkIGJ5IHRoaXMgTUlCIGltcGxlbWVudGF0aW9uLgoKMjAxMC0xMC0yMiAxNDo0MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBBdXRvbWF0aWNhbGx5IGZyZWUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUKICAgYWxsb2NhdGVkIGJ5IG5ldHNubXBfY29udGFpbmVyX3RhYmxlX2hhbmRsZXJfZ2V0KCkuCgoyMDEwLTEwLTIyIDE0OjM4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IENvdW50IHRoZSBudW1iZXIgb2YgdXNlcnMgb2YgYSBuZXRzbm1wX2NhY2hlIGRhdGEKICAgc3RydWN0dXJlIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQuCgoyMDEwLTEwLTIyIDE0OjM2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgcmVmZXJlbmNlIGNvdW50IGluIHRoZQogICBuZXRzbm1wX2JhYnlfc3RlcHNfbW9kZXMgZGF0YSBzdHJ1Y3R1cmUgYW5kIG1hZGUgc3VyZSB0aGF0IHRoaXMKICAgZGF0YSBzdHJ1Y3R1cmUgaXMgYXV0b21hdGljYWxseSBmcmVlZCB3aGVuIHRoZSBoYW5kbGVyIHRoYXQgb3ducwogICBpdCBpcyB1bnJlZ2lzdGVyZWQuCgoyMDEwLTEwLTIyIDE0OjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUoKS4KCjIwMTAtMTAtMjIgMDg6NTEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTUxMTogbWFkZSBzdXJlIHRoYXQgY2xlYW5fc3VidHJlZSgpIGRlYWxsb2NhdGVzCiAgIGFsbCBjb250ZXh0IGNhY2hlIG5vZGVzLgoKMjAxMC0xMC0yMiAwODo0OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogbmV0c25tcF9jYWNoZV9mcmVlKCk6IEEgbW9yZSBkZXRhaWxlZCBtZXNzYWdlIGlzCiAgIG5vdyBsb2dnZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGZyZWUgYSBjYWNoZSB0aGF0IGlzIHN0aWxsIGluIHRoZQogICBjYWNoZSBsaXN0LgoKMjAxMC0xMC0yMiAwNjozOSAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgUmV2ZXJ0ZWQgbHRtYWluLnNoIGNoYW5nZXMgZnJvbSByMTk1MjIuCgoyMDEwLTEwLTIyIDA2OjM0ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGx0bWFpbi5zaDoKCiAgIFJlZ2VuZXJhdGVkIGF1dG9jb25mL2F1dG9tYWtlL2xpYnRvb2wtZ2VuZXJhdGVkIGZpbGVzIGJ5IHJ1bm5pbmcKICAgYXV0b3JlY29uZiAtZi4KCjIwMTAtMTAtMjEgMDc6NTEgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIFJlYXBwbGllZCByMTg3MjYrcjE4NzY2OiBtYWtlIGxpYnRvb2wgc3VwcG9ydCAtZnN0YWNrLXByb3RlY3RvciouCiAgIFNlZSBhbHNvCiAgIGh0dHA6Ly9ibG9nLmdtYW5lLm9yZy9nbWFuZS5jb21wLmdudS5saWJ0b29sLmJ1Z3MvbW9udGg9MjAxMDA2MDEKICAgZm9yIHRoZSBjb25maXJtYXRpb24gdGhhdCB0aGlzIGlzIGEgbGlidG9vbCBidWcuCgoyMDEwLTEwLTIwIDIwOjE2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBBdm9pZCB0aGF0IG5ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MoKSB0cmlnZ2VycyBhIGJ1aWxkIGZhaWx1cmUKICAgd2hlbiBjb21waWxlZCBhZ2FpbnN0IG9sZCBWYWxncmluZCBoZWFkZXJzLiBOb3RlOiB0aGUgaW50cm9kdWNlZAogICBjaGVjayBpcyBzdHJpY3RlciB0aGFuIG5lY2Vzc2FyeSAtIFZBTEdSSU5EX1BSSU5URl9CQUNLVFJBQ0UoKQogICB3YXMgaW50cm9kdWNlZCBpbiBWYWxncmluZCAzLjUuMCBvciBiZWZvcmUgKG5vdCBzdXJlIHdoaWNoCiAgIHZlcnNpb24pLgoKMjAxMC0xMC0yMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgYWRkZWQgYSBjb21tZW50IGluIGNvZGUgbm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgYSBmYWlybHkgcmVjZW50CiAgIHZhbGdyaW5kCgoyMDEwLTEwLTIwIDE3OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZXJhbiBhdXRvY29uZiBhZnRlciB1cGRhdGluZyBsaWJ0b29sCgoyMDEwLTEwLTIwIDE2OjU5ICBoYXJkYWtlcgoKICAgKiAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBpbnN0YWxsLXNoLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQsICAgCiAgICAgIG00L2x0b3B0aW9ucy5tNCwgbTQvbHR2ZXJzaW9uLm00LCBtNC9sdH5vYnNvbGV0ZS5tNDoKCiAgIHVwZGF0ZSB0byBsaWJ0b29sIDIuNAoKMjAxMC0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBkaXN0L2F1dG9jb25mLXZlcnNpb246CgogICB1cGRhdGVkIHRvIGF1dG9jb25mIDIuNjgKCjIwMTAtMTAtMjAgMTQ6MjYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYywgICAKICAgICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGUoKQogICBhbmQgbmV0c25tcF9jYWNoZV9oYW5kbGVyX293bnNfY2FjaGUoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IE1lbW9yeSBhbGxvY2F0ZWQgYnkgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKICAgZm9yIHN0b3JpbmcgU05NUCB2YXJpYWJsZXMgaXMgbm93IGZyZWVkIHdoZW4gdGhlIGFzc29jaWF0ZWQKICAgaGFuZGxlciBpcyB1bnJlZ2lzdGVyZWQuCiAgIENIQU5HRVM6IGFnZW50OiBDYWxsYmFjayBmdW5jdGlvbiBkYXRhIGRlYWxsb2NhdGlvbiBkb2VzIG5vCiAgIGxvbmdlciBmcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgQWdlbnRYIHNlc3Npb24gLSB0aGUKICAgbWVtb3J5IHRoYXQgd2FzIGFsbG9jYXRlZCBmb3IgQWdlbnRYIHNlc3Npb25zIGlzIG5vdyBkZWFsbG9jYXRlZAogICBqdXN0IGFzIHRoYXQgZm9yIGFueSBvdGhlciBzZXNzaW9uLiBUaGlzIGZpeGVzIGEgbGVhay1hdC1leGl0LgogICBDSEFOR0VTOiBhZ2VudDogTm90aWZ5IGZpbHRlciB0YWJsZTogQ2FsbGJhY2sgZnVuY3Rpb24gZGF0YQogICBkZWFsbG9jYXRpb24gZG9lcyBubyBsb25nZXIgZnJlZSB0aGUgZGF0YSBpbgogICAqICAgICAqc25tcE5vdGlmeUZpbHRlclRhYmxlX2lmX2N0eC5jb250YWluZXIgLSB0aGlzIGlzIG5vdyBkb25lIGJ5ICAKICAgICAgIHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpLiAgICBDSEFOR0VTOiBXaW4zMjoKICAgICAgc2h1dGRvd25fc25tcE5vdGlmeUZpbHRlclRhYmxlKCkgYW5kCgogICBzaHV0ZG93bl93aW5FeHRETEwoKSBhcmUgbm93IGludm9rZWQgd2hlbiB0aGUgTmV0LVNOTVAgc2VydmljZSBpcwogICBzdG9wcGVkLgoKMjAxMC0xMC0yMCAxMzo0NyAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jYWdlbnRsaWIuYzoKCiAgIFVuaXQtdGVzdGluZywgVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliOiBhZGRlZCBpbml0X2FnZW50KCkgYW5kCiAgIHNodXRkb3duX2FnZW50KCkgY2FsbHMuCgoyMDEwLTEwLTIwIDEzOjEyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIEZpeCBub24tQU5TSSBmdW5jdGlvbiBoZWFkaW5nCgoyMDEwLTEwLTIwIDEyOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIGZpeCBpcENpZHJSb3V0ZVRhYmxlIChtYXNrKSBmb3IgbGl0dGxlIGVuZGlhbiBzeXN0ZW1zCgoyMDEwLTEwLTIwIDEwOjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCiAgIENIQU5HRVM6IGFnZW50OiBDYWxsIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZCBzaHV0ZG93bl9hZ2VudCgpCiAgIGR1cmluZyBzaHV0ZG93bi4KICAgQ0hBTkdFUzogYWdlbnQ6IFRoZSBmdW5jdGlvbiBjbGVhbl9zdWJ0cmVlKCkgZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBkb3VibGUgZnJlZXMgYW5kIGludmFsaWQgbWVtb3J5IHJlYWRzLiBOb3RlOiB0aGlzCiAgIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHdyb25nIGF0IHRoZSB0aW1lIGl0IHdhcyBpbnRyb2R1Y2VkIChwYXRjaAogICAjNzI0OTI1IC8gcjg1MzEsIEp1bHkgMjAwMykuCiAgIENIQU5HRVM6IGFnZW50OiBSZW1vdmVkIGEgY29tbWVudCBpbiBuZXRzbm1wX2hhbmRsZXJfZnJlZSgpIHRoYXQKICAgaXMgbm93IG9ic29sZXRlIGJlY2F1c2Ugb2YgdGhlIGNsZWFuX3N1YnRyZWUoKSBjaGFuZ2VzLgogICBDSEFOR0VTOiBhZ2VudDogTW9kaWZpZWQgbmV0c25tcF9kZXJlZ2lzdGVyX2FnZW50X25zYXAoKSBzdWNoCiAgIHRoYXQgaXQgbmV2ZXIgZXhhbWluZXMgc2Vzc2lvbnMgdGhhdCBhbHJlYWR5IGhhdmUgYmVlbiBjbG9zZWQuIEl0CiAgIGlzIGZvciB0aGlzIGNoYW5nZSB0aGF0IGl0IHdhcyBuZWNlc3NhcnkgdG8gaW50cm9kdWNlIHRoZSBuZXcKICAgZnVuY3Rpb24gc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCgoyMDEwLTEwLTE5IDIzOjQ5ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIG1pc3NpbmcgcHJlY29uZGl0aW9ucwoKMjAxMC0xMC0xOSAyMjoxMSAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGRvbid0IGRlZmF1bHQgdG8gYXBwbHlpbmcgdG8gNS4yCgoyMDEwLTEwLTE5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYWRkZWQgdGhlIDUuNiBicmFuY2gKCjIwMTAtMTAtMTkgMjE6MTMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBCVUcgMzA3OTA3MiBmcm9tIERhdmUgQmVhbDogZml4IGJ1ZmZlciBvdmVyZmxvdyBmcm9tIGJhZCB1c2Ugb2YKICAgc3RybmNhdAoKMjAxMC0xMC0xOSAyMDo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBQQVRDSDogMzA4NTI5NSBmcm9tIEJpbGwgRmVubmVyOiByZWNvZ25pemUgTElTVEVOIHN0YXRlIGFnYWluCgoyMDEwLTEwLTE5IDIwOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBGaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMTAtMTkgMjA6MDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYzoKCiAgIEZpeCByZXR1cm5pbmcgZ2FyYmFnZSBpbiBoclNXSW5zdGFsbGVkTmFtZSAoc2VlIHJldiAxOTQ4NCBmb3IKICAgZnVydGhlciBub3RlcykKCjIwMTAtMTAtMTkgMTk6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdW5zYWZlICglKSBkZXZpY2UgbmFtZXMKCjIwMTAtMTAtMTkgMTk6NTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFNvbGFyaXMgZG9lcyBub3QgdXNlIGdldHN0YXQsIHNvIGRvbnQgZGVjbGFyZSBpdAoKMjAxMC0xMC0xOSAxOTo1NiAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgdWRwL3RjcCBjb25mdXNpb24gaW4gZGVidWcgaGFuZGxlCgoyMDEwLTEwLTE5IDE5OjU0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFib3J0IGFmdGVyIGJhZCAtQz8gb3B0aW9uCgoyMDEwLTEwLTE5IDE5OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERlbGV0ZSByZWR1bmRhbnQgZXh0ZXJuIGRlY2xhcmF0aW9ucwoKMjAxMC0xMC0xOSAxODowOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQXZvaWQgdGhhdCBNU1ZDIDIwMTAgcHJpbnRzIGEgd2FybmluZwogICBtZXNzYWdlIGFib3V0IHJlZGVmaW5pbmcgRUFERFJJTlVTRS4KCjIwMTAtMTAtMTkgMTg6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IE1TVkMgcmVwb3J0cyBhIHdhcm5pbmcgbWVzc2FnZSBhYm91dAogICByZWRlZmluaXRpb24gb2YgdGhlIG1hbGxvYygpIG1hY3JvIGR1cmluZyBidWlsZGluZyB0aGUgTmV0LVNOTVAKICAgc291cmNlIGNvZGUuCgoyMDEwLTEwLTE5IDA3OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBGYWN0b3Igb3V0IGNvbW1vbiBjb25maWdfYWRkX21pYiBzdGF0bWVudHMKCjIwMTAtMTAtMTggMTQ6MjIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgTWFyayB0aGUgcHJvcGVyIGhhbmRsZXIgdGhhdCBvd25zIHRoZSB0YWJsZSByZWdpc3RyYXRpb24KICAgaW5mb3JtYXRpb24uCgoyMDEwLTEwLTE4IDEwOjU0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIGZ1bmN0aW9ucyBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJyZXEoKSwKICAgbmV0c25tcF9yZWdpc3RyYXRpb25fb3duc190YWJyZXEoKSwgbmV0c25tcF9pdGVyYXRvcl9jbG9uZSgpLgogICBFeHBvcnRlZCBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2Nsb25lKCkuCiAgIENIQU5HRVM6IGFnZW50OiBNb2RpZmllZCBuZXRzbm1wX2l0ZXJhdG9yX2RlbGV0ZV90YWJsZSgpIHN1Y2gKICAgdGhhdCBpdCBmcmVlcyB0aGUgdGFibGUgcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uIHN0b3JlZCBpbiBhCiAgIHRhYmxlIGl0ZXJhdG9yIHRvby4KICAgQ0hBTkdFUzogYWdlbnQ6IE1vZGlmaWVkIG5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yX2hhbmRsZXIoKQogICBzdWNoIHRoYXQgdGhlIHRhYmxlIGl0ZXJhdG9yIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGlzIGZyZWVkCiAgIHdoZW4gdGhlIGFzc29jaWF0ZWQgaGFuZGxlciBpcyBmcmVlZC4KICAgCiAgIFJlc3RvcmVkIHRoZSBiZWhhdmlvciBvZiBuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKCkgdG8gdGhhdCBvZgogICByMTk0NDksIHRoYXQgaXMsIG5vdCBzZXR0aW5nIHVwIHRoZSBkYXRhX2ZyZWUgcG9pbnRlciBiZWNhdXNlIG5vdAogICBhbGwgY2FsbGVycyBvZiBuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKCkgZXhwZWN0IHRoYXQgdGFibGUKICAgcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uIGlzIGZyZWVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgaGFuZGxlciBpcwogICBmcmVlZC4KCjIwMTAtMTAtMTggMTA6MzQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0bmVzcy4KCjIwMTAtMTAtMTggMDg6NTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBXaW4zMjogV2hlbiBzbm1wZC5leGUgaXMgc3RhcnRlZCBpbiBhIGNvbW1hbmQgcHJvbXB0CiAgIHdpbmRvdywgdGhlIHNubXBkIHByb2Nlc3Mgbm93IHN0b3BzIHVwb24gdGhlIGZpcnN0IGtleSBwcmVzcy4KICAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gZGVidWcgc25tcGQuZXhlIGZvciBtZW1vcnkgbGVha3MuCgoyMDEwLTEwLTE4IDA2OjI1ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgoKMjAxMC0xMC0xOCAwNjoxNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSB0aGUgc2FtZSBhdXRvY29uZiBzeW1ib2wgdG8gZGVjaWRlIGJvdGggaWYKICAgc3RyY2FzZWNtcCBzaG91bGQgYmUgZGVjbGFyZWQgYW5kIGlmIGl0IHNob3VsZCBiZSBkZWZpbmVkLgoKMjAxMC0xMC0xNyAxODoyOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgYSBkb3VibGUgZnJlZSBhdCBleGl0IHRoYXQgd2FzIHRyaWdnZXJlZCBieQogICBjbGVhbmluZyB1cCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgZm9yIGVtYmVkZGVkIFBlcmwgc3VwcG9ydC4KICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMKICAgdHJpZ2dlcmVkIGJ5IGNsZWFuaW5nIHVwIHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCBmb3IgZW1iZWRkZWQKICAgUGVybCBzdXBwb3J0LgogICAKICAgVmFsZ3JpbmQgcmVwb3J0ZWQgdGhhdCBkb3VibGUgZnJlZSBhcyBmb2xsb3dzOgogICAKICAgSW52YWxpZCByZWFkIG9mIHNpemUgNAogICBhdCAweDU5RDA1MDE6IHBlcmxfZGVzdHJ1Y3QgKGluCiAgIC91c3IvbGliL3Blcmw1LzUuMTIuMS94ODZfNjQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUvbGlicGVybC5zbykKICAgYnkgMHg1NDRERjhFOiBzaHV0ZG93bl9wZXJsIChzbm1wX3BlcmwuYzoxNjYpCiAgIGJ5IDB4NDAzOTY2OiB0ZXJtX2hhbmRsZXIgKHNubXB0cmFwZC5jOjMxOCkKICAgYnkgMHg2RDQzQTVGOiA/Pz8gKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgQWRkcmVzcyAweDc2NjBmODggaXMgNTYgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAyLDkxMiBmcmVlJ2QKICAgYXQgMHg0QzI2NDk2OiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOjM2NikKICAgYnkgMHg1NDRERjlBOiBzaHV0ZG93bl9wZXJsIChzbm1wX3BlcmwuYzoxNjcpCiAgIGJ5IDB4NDAzOTY2OiB0ZXJtX2hhbmRsZXIgKHNubXB0cmFwZC5jOjMxOCkKICAgYnkgMHg2RDQzQTVGOiA/Pz8gKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RERBREYyOiBfX3NlbGVjdF9ub2NhbmNlbCAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDQwNEUyMDogbWFpbiAoc25tcHRyYXBkLmM6MTI1OCkKCjIwMTAtMTAtMTcgMTc6MzMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0CiAgIHVuaW5pdGlhbGl6ZWQgZGF0YSBmb3IgdGhlIGJ1ZmZlcnMgcmV0dXJuZWQgYnkKICAgbmV0c25tcF9jYWxsYmFja19yZWN2KCkgYW5kIG5ldHNubXBfY2FsbGJhY2tfaG9va19idWlsZCgpLgoKMjAxMC0xMC0xNyAxNjo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IHRhYmxlX2hlbHBlcl9oYW5kbGVyKCksIDY0LWJpdCBhcmNoaXRlY3R1cmVzOgogICBhdm9pZCBwYXNzaW5nIGEgcG9pbnRlciB0byBhIDMyLWJpdCB2YWx1ZSB0byBhIGZ1bmN0aW9uIHRoYXQKICAgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYSA2NC1iaXQgdmFsdWUgKHBhcnNlX29uZV9vaWRfaW5kZXgoKSkuIE5vdAogICBzdXJlIHdoYXQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGJ1ZyB3ZXJlLiBJdCBtaWdodCBoYXZlIGNhdXNlZAogICB2ZXJ5IHN0cmFuZ2UgdGFibGUgYmVoYXZpb3Igb24gNjQtYml0IGJpZyBlbmRpYW4gc3lzdGVtcy4KICAgRm91bmQgdGhpcyB2aWEgVmFsZ3JpbmQuCgoyMDEwLTEwLTE3IDE2OjUxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgaHJTV1J1blBhdGggY29udGFpbnMgdHJhaWxpbmcgZ2FyYmFnZQogICBjaGFyYWN0ZXJzIG9uIExpbnV4IHN5c3RlbXMuCiAgIEZvdW5kIHRoaXMgYnkgYW5hbHl6aW5nIGEgVmFsZ3JpbmQgY29tcGxhaW50LiBGb3IgYW55b25lIHdobyBpcwogICB3b25kZXJpbmcgd2h5IHRoaXMgcGF0Y2ggbWFrZXMgc2Vuc2UsIGEgcXVvdGUgZnJvbSB0aGUgZ2xpYmMKICAgc25wcmludGYoKSBkb2N1bWVudGF0aW9uCiAgIChodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliYy9tYW51YWwvaHRtbF9ub2RlL0Zvcm1hdHRlZC1PdXRwdXQtRnVuY3Rpb25zLmh0bWwpOgogICA8cXVvdGU+CiAgIFRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdoaWNoIHdvdWxkIGJlCiAgIGdlbmVyYXRlZCBmb3IgdGhlIGdpdmVuIGlucHV0LCBleGNsdWRpbmcgdGhlIHRyYWlsaW5nIG51bGwuIElmCiAgIHRoaXMgdmFsdWUgaXMgZ3JlYXRlciBvciBlcXVhbCB0byBzaXplLCBub3QgYWxsIGNoYXJhY3RlcnMgZnJvbQogICB0aGUgcmVzdWx0IGhhdmUgYmVlbiBzdG9yZWQgaW4gcy4KICAgPC9xdW90ZT4KICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGRpZmZlcnMgZnJvbSB0aGUgc3RhbmRhcmQgYmVoYXZpb3IuIEEgcXVvdGUKICAgZnJvbSBodHRwOi8vb3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwNzkwODc5OS94c2gvc25wcmludGYuaHRtbDoKICAgPHF1b3RlPgogICBSRVRVUk4gVkFMVUUKICAgVXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRpb24sIHRoZXNlIGZ1bmN0aW9ucyByZXR1cm4gdGhlIG51bWJlciBvZgogICBieXRlcyB0cmFuc21pdHRlZCBleGNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgaW4gdGhlIGNhc2Ugb2YKICAgc3ByaW50ZigpIG9yIHNucHJpbnRmKCkgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBpZiBhbiBvdXRwdXQgZXJyb3IKICAgd2FzIGVuY291bnRlcmVkLgogICA8L3F1b3RlPgoKMjAxMC0xMC0xNyAxNDozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEl0IGlzIGFnYWluIHBvc3NpYmxlIHRvIHJ1biBhbiBpbmRpdmlkdWFsIHRlc3QKICAgdmlhIHRoZSBzY3JpcHQgdGVzdGluZy9SVU5URVNUUy4KCjIwMTAtMTAtMTcgMTQ6MjggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCB0aGUgZnVuY3Rpb24gbmV0c25tcF9jaGVja19kZWZpbmVkbmVzcygpLAogICB3aGljaCBoZWxwcyB0byBmaW5kIHRoZSBjYXVzZSBvZiB1bmRlZmluZWQgdmFsdWUgZXJyb3JzIGFzCiAgIHJlcG9ydGVkIGJ5IFZhbGdyaW5kLgoKMjAxMC0xMC0xNyAxNDoyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmg6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGRlY2xhcmF0aW9uOiB0aGUgZnVuY3Rpb24gYWdlbnR4X2J1aWxkKCkgaGFzCiAgIGJlZW4gcmVtb3ZlZCBhIGxvbmcgdGltZSBhZ28uCgoyMDEwLTEwLTE3IDE0OjA1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciB0aGUgVmFsZ3JpbmQgaGVhZGVyIGZpbGVzLgoKMjAxMC0xMC0xNyAxMjowMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDc3OiBtYWRlIHRoZSBpbnNlcnRlZCB0eXBlY2FzdHMgcG9ydGFibGUuCgoyMDEwLTEwLTE3IDExOjA0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTk0NzY6IGZpeGVkIGEgdHlwby4KCjIwMTAtMTAtMTcgMDk6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgYSBmZXcgY29tcGlsZXIgd2FybmluZ3MgYnkgaW5zZXJ0aW5nIGFwcHJvcHJpYXRlIGNhc3RzLgoKMjAxMC0xMC0xNyAwOToyNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KCjIwMTAtMTAtMTcgMDE6NDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBhZ2VudC9zbm1wZC5jOgoKICAgTkVXUzogc25tcGQ6IFJlbW92ZSB1dGlsX2Z1bmNzL0V4aXQgZnJvbSB0aGUgcmVxdWlyZW1lbnQgc2V0cyBvZgogICB1dGlsX2Z1bmNzIGFuZCBkZWZhdWx0X21vZHVsZXMuCiAgIE5FV1M6IHNubXBkOiBOZXZlciB1c2UgRXhpdCB0byB0ZXJtaW5hdGUgdGhlIGFnZW50LgoKMjAxMC0xMC0xNiAyMjozMiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgc2V0dGluZyBvZiB0aGUgYXJndnJlc3RhcnQqIHZhcmlhYmxlcwogICBvcHRpb25hbCBvbiBVU0lOR19VVElMX0ZVTkNTX1JFU1RBUlRfTU9EVUxFLgogICBORVdTOiBzbm1wZDogUmVtb3ZlIHV0aWxfZnVuY3MvcmVzdGFydCBmcm9tIHRoZSByZXF1aXJlbWVudCBzZXRzCiAgIG9mIHV0aWxfZnVuY3MgYW5kIGRlZmF1bHRfbW9kdWxlcy4KICAgQ0hBTkdFUzogc25tcGQ6IEFkZCB1dGlsX2Z1bmNzL3Jlc3RhcnQgdG8gdGhlIHJlcXVpcmVtZW50IHNldCBvZgogICB1Y2Qtc25tcC92ZXJzaW9uaW5mby4KCjIwMTAtMTAtMTYgMjI6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEV4dGVuZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgZGF0YV9jbG9uZSBhbmQKICAgZGF0YV9mcmVlCgoyMDEwLTEwLTE2IDIyOjAzICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvcHkgd2F0Y2hlZCBkYXRhIGl0ZW1zCiAgIHdpdGhvdXQgbWVtb3J5IGxlYWtzLgoKMjAxMC0xMC0xNiAyMjowMSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBjbXAKCjIwMTAtMTAtMTYgMTk6NDQgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRG8gbm90IGxlYWsgdGhlIGxpbWl0cyBvZiBzY2FsYXJfZ3JvdXAgb2JqZWN0cyBvbgogICBzaHV0ZG93bi4KCjIwMTAtMTAtMTYgMDg6MzcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQ6CgogICBTcGVsbGluZyBmaXg6IGR1bHBpY2F0ZSAtPiBkdXBsaWNhdGUuCgoyMDEwLTEwLTE2IDA4OjM0ICBidmFzc2NoZQoKICAgKiAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYzoKCiAgIEFkZGVkIG1vcmUgdGVzdCBjb2RlLgoKMjAxMC0xMC0xNiAwODozMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDY1OiBoYW5kbGUgb3V0LW9mLW1lbW9yeSBwcm9wZXJseSAvIHJlbW92ZWQgYQogICBkdXBsaWNhdGUgZnVuY3Rpb24uCgoyMDEwLTEwLTE1IDE5OjE3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYWdlbnRsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FnZW50bGliX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYywKICAgICAgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBJbnRyb2R1Y2VkIG5ldyB0ZXN0IHR5cGUgbmV4dCB0byBjYXBwIGFuZCBjbGliOgogICBjYWdlbnRsaWIuCgoyMDEwLTEwLTE1IDE4OjU2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIE5FV1M6IHNubXBsaWI6IEFkZGVkIG5ldHNubXBfbWliX2hhbmRsZXIuZGF0YV9jbG9uZSwgYSBmdW5jdGlvbgogICBwb2ludGVyIHRoYXQgZGVmaW5lcyBob3cgdG8gY2xvbmUgbmV0c25tcF9taWJfaGFuZGxlci5teXZvaWQuCiAgIE11c3QgYmUgZGVmaW5lZCBpZiBhbmQgb25seSBpZiBkYXRhX2ZyZWUgaXMgc2V0LiBUaGUgZnVuY3Rpb24KICAgbmV0c25tcF9oYW5kbGVyX2R1cCgpIGRvZXMgbm93IGNsb25lIE1JQiBoYW5kbGVyIHByaXZhdGUgZGF0YSBpZgogICBkYXRhX2Nsb25lKCkgaXMgc2V0LiBQcmV2aW91c2x5IGFmdGVyIGR1cGxpY2F0aW5nIGEgTUlCIGhhbmRsZXIKICAgYW5kIHVucmVnaXN0ZXJpbmcgb25lIG9mIHRoZSB0d28gTUlCIGhhbmRsZXJzLCB0aGUgcHJpdmF0ZSBkYXRhCiAgIHBvaW50ZXIgKG15dm9pZCkgb2YgdGhlIG90aGVyIGJlY2FtZSBhIGRhbmdsaW5nIHBvaW50ZXIuIE5vdGU6CiAgIGFkZGl0aW9uIG9mIG5ldHNubXBfbWliX2hhbmRsZXIuZGF0YV9jbG9uZSBpcyBhbiBBQkkgY2hhbmdlLgogICBDSEFOR0VTOiB0ZXN0aW5nOiBhZGRlZCBtb3JlIHRlc3QgY2FzZXMgdG8gdGhlIGhhbmRsZXIKICAgcmVnaXN0cmF0aW9uIHRlc3QuCgoyMDEwLTEwLTE1IDE4OjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTEwLTE1IDEyOjMwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIFJldmVydGVkIHIxOTQ2MCBiZWNhdXNlIGl0IG1ha2VzIHNvbWUgcmVncmVzc2lvbiB0ZXN0cyBmYWlsCiAgIChUMTIwcHJveHlnZXRfc2ltcGxlLCBUMTIxcHJveHlzZXRfc2ltcGxlLAogICBUMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSkuIERpc2FibGVkIHRoZQogICBoYW5kbGVyIGR1cGxpY2F0aW9uIHRlc3QgaW4gVDAwNiBiZWNhdXNlIGl0IHRyaWdnZXJzIGEgY3Jhc2gKICAgd2l0aG91dCByMTk0NjAuCgoyMDEwLTEwLTE1IDExOjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBuZXRzbm1wX2hhbmRsZXJfZHVwKCk6IGZyZWVpbmcgdGhlIGR1cGxpY2F0ZWQKICAgaGFuZGxlciBubyBsb25nZXIgY2F1c2VzIGEgY3Jhc2ggKGRvdWJsZSBmcmVlKSB3aGVuCiAgIGhhbmRsZXItPm15dm9pZCBvZiB0aGUgb3JpZ2luYWwgaGFuZGxlciB3YXMgbm9uLU5VTEwuCgoyMDEwLTEwLTE1IDExOjMyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIEFkZGVkIGEgdW5pdCB0ZXN0IGZvciBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBhbmQgZGVyZWdpc3RyYXRpb24uCgoyMDEwLTEwLTE1IDEwOjU2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdAogICBjb21waWxlci4KCjIwMTAtMTAtMTUgMDk6NDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHNubXBfc2h1dGRvd24oKTogYWRkZWQgY2FsbCB0bwogICBuZXRzbm1wX2NlcnRzX3NodXRkb3duKCkuCgoyMDEwLTEwLTE1IDA2OjQ1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDUwOiBsZXQgbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKSBmcmVlCiAgIGFsbCB0YWJsZV9kYXRhc2V0LXJlbGF0ZWQgbWVtb3J5LgoKMjAxMC0xMC0xNCAyMzoxNSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJlZ2VuZXJhdGUgdXNpbmcgYXV0b2NvbmYKICAgMi42OC4KCjIwMTAtMTAtMTQgMjM6MDEgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCZSBjb25zdCBjb3JyZWN0IG92ZXIgY2FsbHMgdG8gc3RyKiBmdW5jdGlvbnMuCgoyMDEwLTEwLTE0IDE1OjE5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NsaWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGZ1bmN0aW9uIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24KICAgbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV90YWJsZSgpIGluIGEgcHVibGljIGFnZW50IGhlYWRlciBmaWxlLgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayBpbgogICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSB1bnJlZ2lzdGVyaW5nIGEKICAgdGFibGUgaGFuZGxlci4KICAgQ0hBTkdFUzogdGVzdGluZzogVW5pdCB0ZXN0cyBjYW4gbm93IGludm9rZSBmdW5jdGlvbnMgZnJvbQogICBsaWJhZ2VudC4KICAgQ0hBTkdFUzogdGVzdGluZzogQWRkZWQgdW5pdCB0ZXN0IGZvciB0YWJsZV9kYXRhc2V0LgoKMjAxMC0xMC0xNCAxNDowNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIFVuaXQgdGVzdCBUMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzogRml4ZWQgbGVha3MtYXQtZXhpdC4KCjIwMTAtMTAtMTQgMDg6NDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfcnVuOgoKICAgQ0hBTkdFUzogdGVzdGluZzogSXQgaXMgbm93IHBvc3NpYmxlIHRvIGFuYWx5emUgdGhlIHVuaXQgdGVzdHMKICAgd2l0aCBWYWxncmluZCBieSBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgU05NUF9TQVZFX1RNUERJUiBhbmQgRFlOQU1JQ19BTkFMWVpFUi4gQW4gZXhhbXBsZTogKGV4cG9ydAogICBTTk1QX1NBVkVfVE1QRElSPXllcyBEWU5BTUlDX0FOQUxZWkVSPSJ2YWxncmluZAogICAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLWxlYWstY2hlY2s9ZnVsbCI7IGNkIHRlc3RpbmcgJiYKICAgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0cykKCjIwMTAtMTAtMTQgMDg6NDAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBVbml0IHRlc3QgVDAwNHNubXBfZW51bV9jbGliLmM6IGFkZGVkIHRlc3QgaGVhZGVyIC8gYWRkZWQgYSB0ZXN0CiAgIGNhc2UuCgoyMDEwLTEwLTE0IDA4OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIEZpeGVkIGxlYWtzLWF0LWV4aXQgaW4gdW5pdCB0ZXN0IFQwMDJjb250YWluZXJzX2NsaWIuYy4KCjIwMTAtMTAtMTQgMDg6MzggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBGaXhlZCBhIGxlYWstYXQtZXhpdCBpbiB1bml0IHRlc3QgVDAwMWRlZmF1bHRzdG9yZV9jbGliLmMuCgoyMDEwLTEwLTE0IDA4OjM2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGNhbGxpbmcKICAgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIHdpdGggYSB2YWx1ZSB0aGF0IGFscmVhZHkgZXhpc3RlZCBpbiB0aGUKICAgbGlzdC4KCjIwMTAtMTAtMTQgMDc6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3Rpbmc6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTEwLTE0IDA3OjEyICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAwY29uZmlndXJlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmVfc2ltcGxlOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHZhcmlhYmxlICRTTk1QX0JBU0VESVIgaXMgYXZhaWxhYmxlIGluIHRoZQogICBUMDAwY29uZmlndXJlIHRlc3QuCgoyMDEwLTEwLTE0IDA2OjE5ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlZAoKMjAxMC0xMC0xNCAwNTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgUXVlbGwgd2FybmluZ3MKCjIwMTAtMTAtMTQgMDM6NTAgIHJzdG9yeQoKICAgKiAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgdGVzdCBmb3Igb3BlbnNzbCBzaGEgMjI0LzI1Ni8zODUvNTEyIHN1cHBvcnQgaW5zdGVhZCBvZgogICBoYXJkY29kaW5nCgoyMDEwLTEwLTE0IDAzOjUwICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIGFkZCBPVVRQVVRFTlZWQVJTIHRvIHNhdmUgaW1wb3J0YW50IGVudmlyb25tZW50IHZhcmlhYmxlczsgd2hlbgogICBTTk1QX1ZFUkJPU0UKICAgaXMgc2V0LCBzYXZlIGVudiB2YXJzIGFuZCBjb21tYW5kIHRvIGluZGl2aWR1YWwgaW52b2tlZCBmaWxlIGZvcgogICBlYWNoIHRlc3Q7CiAgIHNhdmUgZW52IHZhcnMgYW5kIGNvbW1hbmQgZm9yIGVhY2ggU1RBUlRQUk9HCgoyMDEwLTEwLTE0IDAzOjUwICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBhdXRvLWNyZWF0ZSB1c2VyIHNwZWNpZmllZCBTTk1QX1RNUERJUiBhbmQKICAgU05NUF9UTVBfUEVSU0lTVEVOVERJUiB0b287IGRlZmF1bHQgU05NUF9UTVBfUEVSU0lTVEVORElSIGJhc2VkCiAgIG9uIFNOTVBfVE1QRElSCiAgIGZvciB1c2VyIHNwZWNpZmllZCBTTk1QX1RNUERJUgoKMjAxMC0xMC0xNCAwMzo0OSAgcnN0b3J5CgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGNoZWNrIGZvciAvZGV2L2ttZW0gaW5zdGVhZCBvZiBhc3N1bWluZyBpdAogICBleGlzdHMgYW5kIGhhcmRjb2Rpbmcgd2hlbiBpdCBpcyBub3QgdGhlcmUKCjIwMTAtMTAtMTQgMDM6MjggIHJzdG9yeQoKICAgKiAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCB0cmFuc3BvcnRTZWN1cml0eUxldmVsIGJhc2VkIG9uIHNzbCBzZXNzaW9uIGFsZ29yaXRobXMKCjIwMTAtMTAtMTQgMDM6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhZGQgbmV0c25tcF9vcGVuc3NsX251bGxfY2hlY2tzCgoyMDEwLTEwLTE0IDAzOjIzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNsZWFudXAgc3NsL2JpbyBvbiBmYWlsZWQgY29ubmVjdGlvbgoKMjAxMC0xMC0xNCAwMzoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTEwLTE0IDAzOjE4ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDEwLTEwLTE0IDAzOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbwoKMjAxMC0xMC0xNCAwMzoxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBjaGVjayBmb3IgbnVsbCBiZWZvcmUgZGVyZWYKCjIwMTAtMTAtMTMgMjA6MTIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEdlbmVyYXRlIGEgbm9ybWFsICNsaW5lIGRpcmVjdGl2ZSBhcyBwZXIgQzk5CiAgIGluc3RlYWQgb2YgdGhlIGNvbXBpbGVyLXNwZWNpZmljICM8bj4tZGlyZWN0aXZlLgoKMjAxMC0xMC0xMyAxNjo1MyAgaGFyZGFrZXIKCiAgICogZGlzdC9hdXRvY29uZi12ZXJzaW9uLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmU6CgogICBhZGRlZCBhIGF1dG9jb25mIHZlcnNpb24gY2hlY2tpbmcgdGVzdCB0byBjYXRjaCBkZXZlbG9wZXJzIGFuZAogICBzY3JpcHRzIHRoYXQgZmFpbCB0byB1c2UgdGhlIGNvcnJlY3QgYXV0b2NvbmYgdmVyc2lvbgoKMjAxMC0xMC0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBQYXRjaCBmcm9tIEJpbGwgRmVubmVyIHRvIGZpeCBvbmx5IGluY2x1ZGluZyB0aGUgc2Vzc2lvbl9hcGkuaAogICBmaWxlCgoyMDEwLTEwLTEzIDE2OjI5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBGb2xsb3ctdXAgZm9yIHIxOTQyMTogTWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGFnYWluIHJlcG9ydHMKICAgdGhlIHByb3BlciBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gd2hpbGUgY29tcGlsaW5nCiAgIHVuaXQgdGVzdHMuCgoyMDEwLTEwLTEzIDExOjUzICBidmFzc2NoZQoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBiYXRjaCBidWlsZCB3aXRoIE9wZW5TU0wgZW5hYmxlZCBhbmQKICAgd2l0aCByZWNlbnQgT3BlblNTTCBkZXZlbG9wbWVudCBmaWxlcyB3b3JrcyBhZ2Fpbi4KCjIwMTAtMTAtMTMgMDk6NTggIGJ2YXNzY2hlCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX3J1bjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogUnVubmluZyB0aGUgdW5pdCB0ZXN0cyBkb2VzIG5vdyB3b3JrIChjZCB0ZXN0aW5nCiAgICYmIC4vUlVORlVMTFRFU1RTIC1nIHVuaXQtdGVzdHMpLgogICBDSEFOR0VTOiBNaW5HVzogUnVubmluZyB0aGUgdW5pdCB0ZXN0cyBkb2VzIG5vdyB3b3JrIChjZCB0ZXN0aW5nCiAgICYmIC4vUlVORlVMTFRFU1RTIC1nIHVuaXQtdGVzdHMpLgoKMjAxMC0xMC0xMyAwODowMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIEZpeGVkIGEgc3BlbGxpbmcgZXJyb3IgaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0xMC0xMyAwNzo0MyAgYnZhc3NjaGUKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3BlbGxpbmcgZml4ZXMuCgoyMDEwLTEwLTEyIDE0OjAyICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBBZGRlZCBkZWNsYXJhdGlvbiBmb3Igc2VfY2xlYXJfc2xpc3QoKS4KCjIwMTAtMTAtMTIgMTE6MTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBBZGRlZCBtb3JlIHRlc3QgY2FzZXMgdG8KICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYy4KICAgVmVyaWZpZWQgd2l0aCBWYWxncmluZCB0aGF0IGV2ZXJ5dGhpbmcgZG9lcyBub3cgd29yayBjb3JyZWN0bHkKICAgYW5kIHRoYXQgdGhlCiAgIHRlc3QgcHJvZ3JhbSBpcyBmcmVlIG9mIGxlYWtzLWF0LWV4aXQuCgoyMDEwLTEwLTEyIDExOjExICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBJbnZva2luZyBzZV9jbGVhcl9zbGlzdCgpIGRvZXMgbm8gbG9uZ2VyIGNyZWF0ZQogICBhIGRhbmdsaW5nIHBvaW50ZXIuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGxlYWtzLWF0LWV4aXQgdHJpZ2dlcmVkIGJ5IHVzaW5nIHRoZQogICBzbm1wX2VudW0gY29kZS4KICAgQ0hBTkdFUzogc25tcGxpYjogRG9jdW1lbnRlZCBiZWhhdmlvciBvZiBzZV9hZGRfcGFpcigpLAogICBzZV9hZGRfcGFpcl90b19zbGlzdCgpIGFuZCBjbGVhcl9zbm1wX2VudW0oKS4gTWFkZSBzbm1wX2VudW0KICAgZXhhbXBsZSBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvZGUgYnkgYWRkaW5nIHN0cmR1cCgpCiAgIGNhbGxzIGFuZCBhZGRlZCBhIGNhbGwgdG8gc2VfY2xlYXJfYWxsX2xpc3RzKCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbSB0cmlnZ2VyZWQgYnkKICAgdGhlICh1bmRvY3VtZW50ZWQpIHNubXBkLmNvbmYgImVudW0iIGtleXdvcmQgaGFuZGxlciAtIHN0b3JpbmcKICAgcG9pbnRlcnMgdG8gc3RyaW5ncyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrIGluIGEgZ2xvYmFsIGxpc3QgZG9lcwogICBub3Qgd29yay4KICAgQ0hBTkdFUzogc25tcGxpYjoKCjIwMTAtMTAtMTIgMDY6MjcgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL2xpYmhlbHBlcnMsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMwODUxODc6IEJ1aWxkaW5nIHZpYSB0aGUgTWljcm9zb2Z0IFZpc3VhbAogICBTdHVkaW8gcHJvamVjdCBmaWxlICguZHN3Ly5kc3ApIHdvcmtzIGFnYWluLgoKMjAxMC0xMC0xMiAwNTozNSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIGV4dGVybiAiQyIgZGVjbGFyYXRpb25zIHRvIGJlCiAgIGNvbnNpc3RlbnQuIFJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUuCgoyMDEwLTEwLTExIDIxOjQxICBuYmEKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDEwLTEwLTExIDIxOjM5ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2FwdC5jLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBTdXBwb3J0IGZvciBoclNXSW5zdGFsbGVkVGFibGUgZm9yIGRwa2cvYXB0LWJhc2VkIHN5c3RlbXMKCjIwMTAtMTAtMTEgMjA6NDYgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIHNvdXJjZXMgZm9yIFNOTVAtVExTLVRNLU1JQgoKMjAxMC0xMC0xMSAyMDo0MiAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ2hlY2sgZWFybHkgZm9yIHBpY2wuaAoKMjAxMC0xMC0xMSAyMDozMSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL3NlbnNvcnMuaDoKCiAgIEZpeCB3YXJuaW5ncyBmcm9tIGxtc2Vuc29yTWliCgoyMDEwLTEwLTExIDIwOjMwICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmM6CgogICBGaXggbmV3IHN0eWxlIGxtc2Vuc29yTWliIGZvciBTb2xhcmlzICh3YXMgaXQgZXZlciBjb21waWxlZAogICBiZWZvcmUpCgoyMDEwLTEwLTExIDIwOjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBGaXggbG1TZW5zb3JzIGZvciBTb2xhcmlzCgoyMDEwLTEwLTExIDIwOjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmM6CgogICBGaXggYSBTb2xhcmlzIGZpbGUgZGVzY3JpcHRvciBsZWFrCgoyMDEwLTEwLTExIDIwOjI1ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNYWtlIC0tZGlzYWJsZS1kZXZlbG9wZXIgd29yawoKMjAxMC0xMC0xMSAxODoyMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVwZGF0ZSB0aGUgbGVuZ3RoIG9mIHN5c09iamVjdElEIGFzIHdlbGwgYXMgdGhlCiAgIGRhdGEgd2hlbiBpdCBpcyBzZXQgZnJvbSBhIGNvbmZpZ3VyYXRpb24gZmlsZS4KCjIwMTAtMTAtMTEgMTc6NTggIG1hZ2ZyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBmcm9tICJOaWVscyBCYWdnZXNlbiI6IFNvbWUgc3lzdGVtcyBkbyBub3QKICAgc3VwcG9ydCB0aGUgLUUgZmxhZyB0byBncmVwLCB1c2UgYXV0b2NvbmYgdG8gZmluZCB0aGUgcmlnaHQgZWdyZXAKICAgYXQgYWxsIHRpbWVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5SQzMgLT4gVjUuNgoKMjAxMC0xMC0wNyAyMDozMyAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEwLTA2IDExOjMxICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgRml4IGlwdjYgZ2VuZXJpYyBjYXNlIHNvIHRlc3QgbWF0Y2hlcyB2ZXJpZmljYXRpb24KCjIwMTAtMTAtMDEgMTY6NDQgIGR0czEyCgogICAqIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBSZXdvcmsgZGVzY3JpcHRpb24gb2YgT0lEIG5hbWUgaGFuZGxpbmcgdG8gYmUKICAgbm90IHF1aXRlIHNvIGluY3JlZGlibHkgb3V0IG9mIGRhdGUuCgoyMDEwLTA5LTIyIDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBlcmcuLi4gcmVhbGx5IHVzZSB0aGUgcmlnaHQgYXV0b2NvbmYgdmVyc2lvbiBieSBzZXR0aW5nIHRoZSBwYXRoCiAgIHJpZ2h0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnJjMiAtPiBWNS42LnJjMwoKMjAxMC0wOS0yMSAyMzo1MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZWQgd2l0aCBwcm9wZXIgYXV0b2NvbmYgdmVyc2lvbgoKMjAxMC0wOS0yMSAyMzo0OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTIxIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdmVyaWZpZWQgcGF0Y2ggZnJvbSByc3RvcnkgdG8gZml4IGNlcnRpZmljYXRlIGxvYWRpbmcgb2YKICAgaW5jb21wbGV0ZSBjaGFpbnMKCjIwMTAtMDktMjEgMTg6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTgzODg6IGZyb20gY2hyaXNib2x0OiBkb24ndCBwYXJzZQogICBpbmNsdWRlQWxsRGlza3MgaW4gdGhlIG1haW4gc25tcGxpYiByb3V0aW5lcwoKMjAxMC0wOS0yMSAxODowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMwNjI1MjY6IGZyb20gbWFyaW9nODU6IGZpeCBzZWN1cml0eQogICBlbmdpbmVJRCBzZXR0aW5nIGluIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUKCjIwMTAtMDktMjEgMTU6MTMgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgV2luMzIgZG9jdW1lbnRhdGlvbi4KCjIwMTAtMDktMjAgMjM6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIFBhdGNoIGZyb20gRnVsa28gSGV3IHRvIGZpeCBwYXRjaCAyOTAwMDc4IHdoaWNoIGJyb2tlIHN5c09iamVjdElECiAgIGxlbmd0aHMKCjIwMTAtMDktMjAgMjE6MzIgIGR0czEyCgogICAqIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWY6CgogICBEb2N1bWVudCAtQ2YgaW4gdGhlIHR3byBtYW4gcGFnZXMgc2VwYXJhdGVseS4KCjIwMTAtMDktMjAgMjA6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzA2NzU0MDogZnJvbSBqb3ljZWFubWFjaGluZTogRml4IElQdjQKICAgT0lEIGluZGV4ZXMgb24gNjQtYml0IGJpZy1lbmRpYW4gc3lzdGVtcy4KCjIwMTAtMDktMjAgMTk6MjUgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsIHdpbjMyL0NvbmZpZ3VyZSwgICAKICAgICAgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiAgIFVuLWJyZWFrIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wOS0yMCAwOToxOCAgYnZhc3NjaGUKCiAgICogZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsIG1hbiwgdGVzdGluZywgd2luMzI6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAxMC0wOS0xNyAxMDozNCAgZHRzMTIKCiAgICogIG1hbi9hZ2VudHh0cmFwLjEuZGVmLCBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgCiAgICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgICAKICAgICAgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgUmVtb3ZlIENNVSBjb3B5cmlnaHQgbm90aWNlIGZyb20gbWFuIHBhZ2VzIHRoYXQgd2VyZSBub3QKICAgaW5oZXJpdGVkIGZyb20gQ01VLVNOTVAgKGFuZCBxdWFsaWZ5IHRoZSBjb3B5cmlnaHQgZm9yCiAgIHRob3NlIHRoYXQgd2VyZSkuCgoyMDEwLTA5LTE3IDA5OjUxICBkdHMxMgoKICAgKiAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgCiAgICAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgICAKICAgICAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBVcGRhdGUgbWFuIHBhZ2UgcmVmZXJlbmNlcyB0byByZWZsZWN0IG5ldyBBUEkgZG9jdW1lbnRhdGlvbgogICBzdHJ1Y3R1cmUuCgoyMDEwLTA5LTEwIDA0OjIzICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbmV3IHRlc3QqIGVudHJpZXMgZnJvbSB0aGUgdGVzdGluZwogICBNYWtlZmlsZS5pbiB0byB0aGUgdG9wLWxldmVsIE1ha2VmaWxlLmluCgoyMDEwLTA5LTA4IDE1OjQxICBkdHMxMgoKICAgKiAgbWFuL2FnZW50eHRyYXAuMS5kZWYsIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCAgIAogICAgICBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgbWFuL2ZpeHByb2MuMS5kZWYsICAgCiAgICAgIG1hbi9taWIyYy11cGRhdGUuMS5kZWYsIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgICAKICAgICAgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCAKICAgICAgICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wY29uZi4xLmRlZiwgICAKICAgICAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgCiAgICAgICBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMS5kZWYsIG1hbi9zbm1wZGYuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwKICAgICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCAgCiAgICAgICBtYW4vc25tcHRlc3QuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwKICAgICAgbWFuL3NubXB1c20uMS5kZWYsICAgIG1hbi9zbm1wdmFjbS4xLmRlZiwgbWFuL3NubXB3YWxrLjEuZGVmLAogICAgICBtYW4vdGttaWIuMS5kZWYsICAgIG1hbi90cmFwdG9lbWFpbC4xLmRlZiwgbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFVwZGF0ZSBtYW4gcGFnZSBkYXRlc3RhbXBzIHRvIG1hdGNoIHRoZSBsYXRlc3QgKG5vbi10cml2aWFsKQogICBjb250ZW50IGNoYW5nZS4KICAgU3VwcHJlc3MgZm9yY2luZyBvZiAiQmVya2VsZXkgRGlzdHJpYnV0aW9uIiBmb290ZXIKICAgKEFsbG93cyBOZXQtU05NUCB2ZXJzaW9uIGluZm9ybWF0aW9uIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbWFuCiAgIHBhZ2UpCgoyMDEwLTA5LTA4IDA1OjM3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlZAoKMjAxMC0wOS0wNCAwNjozOCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTM1NiBieQogICBjaGFuZ2luZyB0aGUgcmV0dXJuCiAgIHR5cGUgb2YgbmV0c25tcF90bHNiYXNlX2ZyZWVfdGxzZGF0YSgpIGZyb20gdm9pZCogdG8gdm9pZC4KCjIwMTAtMDktMDQgMDY6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTMyMiAocGF0Y2gKICAgMzA0NDUxMikuCiAgIFRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gcmVhZF9vYmppZCgpIHdhcyBhbiBpbnQgaW5zdGVhZCBvZgogICBzaXplX3QuCiAgIFRoaXMgY291bGQgaGF2ZSBjYXVzZWQgbWVtb3J5IGNvcnJ1cHRpb24gb24gNjQtYml0IHN5c3RlbXMuCgoyMDEwLTA5LTA0IDAzOjA5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDktMDQgMDM6MDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA5LTA0IDAxOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDktMDQgMDA6NTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOS0wMyAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0bHN0Y3AgcGFyc2luZyBvZiBob3N0IG5hbWVzLgoKMjAxMC0wOS0wMyAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBjaGVjayB0aGUgcmV0dXJuIGNvZGUgb2YgZmdldHMgYW5kIGZvcGVuIGJlZm9yZSBpbnNlcnRpbmcgdGhlCiAgIHJlc3VsdHMuCgoyMDEwLTA5LTAzIDIyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFBhdGNoIGZyb20gdGFuZGVycyB0byBmaXggYnJva2VuIGFsYXJtcyBhZnRlciB0aGUgcHJldmlvdXMKICAgcmUtZW50cmFudCBwYXRjaAoKMjAxMC0wOS0wMyAyMjowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaCAzMDU4NjQ1OiBmcm9tIGpvcmlzZXNhdHVybnVzOiBtb2RpZmllZAogICB2ZXJzaW9uIG9mIHRoZSBwYXRjaCB0byB1c2UgTVNHX0RPTlRXQUlUIGZvciB0aGUgdW5peCBkb21haW4KICAgc29ja2V0CgoyMDEwLTA5LTAzIDIxOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU4MTQwOiBmcm9tIHRha2V2b3M6IGNoZWNrIHRoYXQgaW5vZGUgaXMKICAgbm9uLXplcm8KCjIwMTAtMDktMDMgMjE6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0Mjg6IGZyb20gdGFrZXZvczogZml4CiAgIGdldF9waWRfZnJvbV9pbm9kZSB3aGVuIHRoZSBpbm9kZSBpcyBub3QgZm91bmQuCgoyMDEwLTA5LTAzIDIwOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIGR1cGxpY2F0ZSByZXR1cm4gYmVmb3JlIHRoZSBlcnJvciBjb2RlcyBnZXQgc2V0LgoKMjAxMC0wOS0wMSAxODowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IExvZyBiZWZvcmUgcmV0dXJuaW5nLgoKMjAxMC0wOS0wMSAwMjo0MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBUTFMgc2VuZF9ub3RpZnkgb24gY2xvc3VyZSBhbmQgc29tZSBtZW1vcnkgY2xlYW4tdXAgcGF0Y2hlcwoKMjAxMC0wOC0zMSAxNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT25seSBwcmludCB0aGUgc2VjdXJpdHkvY29udGV4dCBFbmdpbmVJRCBtaXNtYXRjaCBub3RlIHVuZGVyIFVTTQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIENIQU5HRVM6CgogICByZW1vdmUgcmVmZXJlbmNlIHRvIHJldmVydGVkIHBhdGNoIDMwNDI3NjUKCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG5vdGUgb24gd2hlcmUgdG8gZmluZCBjb250ZW50IHVzZWQgdG8gZ2VuZXJhdGUKICAgbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICByZXZlcnQgcjE5MzQyLCBwYXRjaCAzMDQyNzY1LCB3aGljaCBicm9rZSBjbGllbnQgdGNwIGRpc2Nvbm5lY3QKICAgaGFuZGxpbmcKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IG1vcmUgY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgY2hlY2sgZm9yIGNvbmYgZXJyb3JzIGFmdGVyIGFnZW50IHN0YXJ0dXA7IGVuYWJsZSBsb2dUaW1lc3RhbXA7CiAgIG1ha2Ugc3VyZQogICBhbGwgY2VydCBuYW1lL3RhZ3MgYXJlIHVuaXF1ZQoKMjAxMC0wOC0yNCAyMTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3Igc3RyaW5nIHRvIGRpc2N1c3MgdGhlIHJpZ2h0IGZhaWxlZCBvcGVuc3NsIG5ldwogICBpbnZvY2F0aW9uCgoyMDEwLTA4LTI0IDA1OjM3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IENvcnJlY3QgaWZkZWZzLCByZW1vdmUgZGVhZCB2YXJpYWJsZXMuCgoyMDEwLTA4LTE5IDIxOjIyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDgtMTkgMjE6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA4LTE5IDIxOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA4LTE5IDIxOjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgLy8gLT4gQyBjb21tZW50cwoKMjAxMC0wOC0xOSAyMDozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzMDQyNzY1OiBmcm9tIG1laGFmOiBtYWtlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IoKSByZS1lbnRyYW50CgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHR1cm4gb2ZmIGNvb2tpZSBleGNoYW5nZXMgdW50aWwgYSBjb21wbGV0ZSBjb2RlIHNldCBjYW4gYmUKICAgd3JpdHRlbiB0byBzdXBwb3J0IGl0IGJhc2VkIG9uIHRoZSByZXF1aXJlZCBmdW5jdGlvbiBjYWxsYmFja3MKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWRkIG1pc3NpbmcgY2FsbCB0byBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgYXMgbmVlZGVkCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZGlzcGxheWluZyBhIGJ5dGUgYXMgc2luZ2xlIGRpZ2l0IGhleAogICB2YWx1ZSwgZGVmYXVsdCB0bwogICBwcmVmaXhpbmcgd2l0aCAwIHVubGVzcyB0aGVyZSBpcyBhIHNlcGVyYXRvciBvciBhZGRpdGlvbiBoaW50CiAgIGRhdGEKCjIwMTAtMDgtMTcgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGFuIHVudXNlZCBsYWJlbCB0aGF0IHdhcyB0cmlnZ2VyZWQKICAgd2hlbgogICBjb21waWxpbmcgd2l0aG91dCBTU0wgc3VwcG9ydC4KCjIwMTAtMDgtMTYgMjM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyNzkwMjQ5OiBmcm9tIHdpbGxwd2lsbHA6IHJlZHVjZSBjYWNoZSB0aW1lCiAgIGZvciB0aGUgaWZ0YWJsZSB0byAzc2Vjb25kcyB0byBpbmNyZWFzZSBhY2N1cmFjeQoKMjAxMC0wOC0xNiAxNjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0NjM3MTogZnJvbSBjaHJpc3RvcGhiNDogRml4IG1lbW9yeSBsZWFrCiAgIGluIFNOTVB2MSB0cmFwIGhhbmRsaW5nLgoKMjAxMC0wOC0xNiAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjgyNTY1MzogZnJvbSBicnU1Y2U6IGZpeCBzZW5kbWFpbC5jZgogICBwYXJzaW5nIGluIGNlcnRhaW4gY29uZGl0aW9ucwoKMjAxMC0wOC0xNiAxMDoxNiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQnVpbGQgbmV0c25tcF9hZ2VudF9hcGkuMyBtYW4gcGFnZSBmcm9tIHRlbXBsYXRlCgoyMDEwLTA4LTE2IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBEb2N1bWVudGF0aW9uIChQcm92aWRlZCBieSBUb21hc3oKICAgTGlzKQoKMjAxMC0wOC0xNiAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmUtb3JkZXIgY29kZSB0byBncm91cCByZWxhdGVkCiAgIGZ1bmN0aW9ucyB0b2dldGhlcgoKMjAxMC0wOC0xNiAwNzo0MiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjk5NTA5ODogRml4IGNyZWF0aW9uIG9mIFNOTVB2MyBzZXNzaW9ucwogICB3aXRoIEFQSV9TSU5HTEUKCjIwMTAtMDgtMTQgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGVzCgoyMDEwLTA4LTE0IDE2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MDQ5MDA6IERvY3VtZW50YXRpb24gcGx1cyBhc3NvcnRlZAogICBoYW5kbGVyIGNvZGUgZml4ZXMKCjIwMTAtMDgtMTQgMDk6MjggIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgIFJlc3RvcmUgYWdlbnQgQVBJIG1hbiBwYWdlCiAgIERvbid0IHRyeSB0byBleHRyYWN0IG11bHRpcGxlIG1hbiBwYWdlIGxpbmtzIHBlciBsaW5lCiAgICh3aGljaCBydW5zIGludG8gcHJvYmxlbXMgd2l0aCBPUy1zcGVjaWZpYyBsaW5lIGVuZGluZ3MpLgogICBJbnN0ZWFkLCBlbnN1cmUgdGhlIG1hbiBwYWdlIE5BTUUgc2VjdGlvbiBsaXN0cyBvbmUKICAgcm91dGluZSBwZXIgbGluZQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGJyb2tlbiBNYWtlZmlsZSBhZnRlciBtYW4gcGFnZSBtb3ZlcwoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIFRMUyBNSUIgdG8gY3VycmVudCBjb3B5CgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVwbGFjZWQgUkZDIGNvbW1lbnQgbnVtYmVyCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAzMDQyNzcwOiBmcm9tIG1laGFmOiBNYWRlIHJ1bl9hbGFybXMoKQogICByZWVudHJhbnQKCjIwMTAtMDgtMTMgMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA0NDUxMjogZnJvbSBwaGlsd2Vic3RlcjogZml4IHN5c29iamVjdGlkCiAgIGRpcmVjdGl2ZS4KCjIwMTAtMDgtMTMgMTk6MDAgIHJzdG9yeQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4OgoKICAgdXNlIDEyNy4wLjAuMSBpbnN0ZWFkIG9mIGxvY2FsaG9zdCBhcyBkZWZhdWx0IFNOTVBfVEVTVF9ERVNUIHNvCiAgIFRMUyB0ZXN0cyB3b3JrCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGltcGxlbWVudGVkIGEgZml4IGZvciB0aGUgaXNzdWUgcmVwb3J0ZWQgaW4KICAgcGF0Y2ggIzMwNDI3NzAuIENyZWF0ZWQgYSBzbm1wX3NlbGVjdF9pbmZvX2ZsYWdzIGZ1bmN0aW9uLCBhbmQKICAgc2ltaWxhciwgdGhhdCBhbGxvdyBmb3IgYWxhcm1zIHRvIG5vdCBiZSBydW4uIFRoaXMgaXMgdGhlbiB1c2VkCiAgIGluIHRoZSBzeW5jaF9yZXNwb25zZSBmdW5jdGlvbnMgdG8gYXZvaWQgMTAwJSBDUFUgbG9vcHMKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBtYWtlIHNubXB0cmFwZCByZWdpc3RlciB0aGUgY2VydHRvc2VjbmFtZSB0YWJsZSBpbiB0aGUgYWdlbnR4CiAgIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDgtMTMgMTg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBtaW5vciB3b3JkaW5nIGFkZGl0aW9ucwoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jOgoKICAgQ0hBTkdFUzogYWl4OiBQQVRDSDogMjg4NjU5ODogZnJvbSBleHNuYWZ1OiBIZWFkZXIgZml4ZXMgZm9yCiAgIGNvbXBpbGluZyBvbiBBSVg2CgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICBORVdTOiBwb3J0czogUEFUQ0g6IDI4MzY4OTU6IGZyb20gc2VhbmJvdWRyZWF1OiBzdXBwb3J0IGZvciBRTlg2CgoyMDEwLTA4LTEzIDE0OjMzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgJ2VuZm9yY2UgbmV0c25tcCBwcmVmaXhlcwoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICBEb24ndCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIG1hbiBwYWdlcwoKMjAxMC0wOC0xMyAxNDoxOCAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsICAgCiAgICAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBSZW1vdmUgcmVkdW5kYW50IG1hbiBwYWdlIGxpbmtzCiAgIChTaG91bGQgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBkb24ndCBleGlzdCBhbnkgbW9yZQogICBhbnl3YXkpCgoyMDEwLTA4LTEzIDE0OjEzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLCBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgCiAgICAgICBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLCBtYW4vcHJpbnRfbWliLjMsICAKICAgICAgIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgbWFuL3ByaW50X3ZhcmlhYmxlLjMsICAgCiAgICAgIG1hbi9yZWFkX2FsbF9taWJzLjMsIG1hbi9yZWFkX21pYi4zLCBtYW4vcmVhZF9tb2R1bGUuMywgICAKICAgICAgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywgbWFuL3JlYWRfb2JqaWQuMywgbWFuL3NodXRkb3duX21pYi4zOgoKICAgUmVtb3ZlIERveHlnZW4tZ2VuZXJhdGVkIG1hbiBwYWdlcywgYW5kIHRob3NlIGxpbmtpbmcKICAgaW5kaXZpZHVhbCByb3V0aW5lcyB0byB0aGUgYXBwcm9wcmlhdGUgbWFuIHBhZ2UuCiAgIChUaGVzZSBhcmUgYmV0dGVyIGdlbmVyYXRlZCBkeW5hbWljYWxseSkKCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUHJvbXB0IGZvciB3aGV0aGVyIHRvIGdlbmVyYXRlIGNhY2hpbmcgY29kZSBvciBub3QuCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgUmV3b3JrIGd1aWRhbmNlIHF1ZXN0aW9ucyB3aGVuIHNlbGVjdGluZyB0aGUgYmVzdCB0YWJsZSBmcmFtZXdvcmsKICAgdG8gdXNlLgogICBFbnN1cmUgdGFibGUgaGFuZGxpbmcgY29kZSBkb2Vzbid0IG92ZXJ3cml0ZSBzY2FsYXIgaGFuZGxpbmcKICAgY29kZS4KICAgQ2hlY2sgdGhhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMgc3VpdGFibGUgZm9yIE1mRCBmcmFtZXdvcmsuCgoyMDEwLTA4LTEyIDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0xMiAxNTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgZHVwbGljYXRlIHZhbHVlIGNoZWNrCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgYWRkIGEgdGVzdCB3aGVyZSB3ZSBjYW4gdHJ1c3QgYSBDQS1zaWduZWQgY2VydCBhbmQgd2UgZG9uJ3QgdHJ1c3QKICAgdGhlIENBCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgdGVzdCBhIGRpcmVjdGx5IG1hcHBlZCBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgY2hhbmdlIHRoZSBsYUNvbmZpZyB0byByZWFkLXdyaXRlIHRvIG1hdGNoIHRoZSBwYXRjaAoKMjAxMC0wOC0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyOTMxNDQ2OiBmcm9tIGFobWFrZTogbWFrZSB0aGUgbG9hZCBhdmVyYWdlcwogICB3cml0YWJsZS4KCjIwMTAtMDgtMTEgMDY6NDMgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIENIQU5HRVM6IFNpbGVuY2Ugc29tZSBjb21waWxhdGlvbiB3YXJuaW5ncyBmcm9tIHRlc3QgY2FzZXMuCgoyMDEwLTA4LTA5IDIxOjA5ICBtYWdmcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IEhhbmRsZSBlbWJlZGRlZCAlJ3MgaW4gdGhlIHJlc3VsdCBtZXNzYWdlLgoKMjAxMC0wOC0wOSAyMTowNyAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBDSEFOR0VTOiBEbyBubyBkb3VibGUgZGVjbGFyZSB0aGUgaW5kZXggdmFsdWVzLgoKMjAxMC0wOC0wNSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBVcGRhdGUgImF1dGgqIiB1c2FnZSBtZXNzYWdlIHdpdGggY29udGV4dCBzdXBwb3J0CgoyMDEwLTA4LTAyIDIwOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXggdHdvIHNpbGx5IG1pc3Rha2VzLgoKMjAxMC0wOC0wMiAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgQUlYIGZpbGVzeXN0ZW0gdHlwZXMgYXJlIHRhZ2dlZCBhcyBpbnRlZ2Vycywgbm90IHN0cmluZ3MuCgoyMDEwLTA4LTAyIDEzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgZml4IFBlcmwgc3lzdGVtKCkgY29uZmlndXJlIGNoZWNrIHRvIHdvcmsgcmVsaWFibHkgb24gc3lzdGVtcwogICB0aGF0IGxhY2sKICAgUGVybAoKMjAxMC0wOC0wMiAxMTowOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IG1hZGUgaXQgcG9zc2libGUgdG8gYW5hbHl6ZSBhbGwgY29kZSBjb3ZlcmVkIGJ5CiAgIHRoZSByZWdyZXNzaW9uIHRlc3RzIHdpdGggYSBkeW5hbWljIGFuYWx5emVyLCBhdCBsZWFzdCBpZiB0aGF0CiAgIGFuYWx5emVyIHN1cHBvcnRzIGZvbGxvd2luZyBjaGlsZCBwcm9jZXNzZXMuIEFuIGV4YW1wbGU6CiAgIAogICBybSAtcmYgL3RtcC9zbm1wLXRlc3QtKgogICBtYWtlIC1zCiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tdHJhY2stb3JpZ2lucz15ZXMiIG1ha2UgLXMgdGVzdAogICBncmVwIC1pIHVuaW5pdGlhbGlzZWQgL3RtcC9zbm1wLXRlc3QtKiB8IHhhcmdzIGxlc3MKCjIwMTAtMDgtMDIgMTE6MDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgdHdvIFZhbGdyaW5kIGNvbXBsYWludHM6CiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkQ3MDJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDk5RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDdBNDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZFMTQ0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDVFNUUyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NUU2NTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDVFNTY3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1RTI0NzlBOiBfc2Vzc19wcm9jZXNzX3BhY2tldCAoc25tcF9hcGkuYzo1NDQxKQogICBieSAweDVFMjVFMzc6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NjAzNykKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDVFNjU3Mzk6IG5ldHNubXBfdGNwX2FjY2VwdCAoc25tcFRDUERvbWFpbi5jOjgyKQogICBieSAweDVFMjUzODM6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NTc4NikKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkY3QjJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RkE0RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2Rjg1NDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDcwMUY0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDU2RkEyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NTcwMTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDU2RjI3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1NkYyOTRGOiBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kIChzbm1wX3RyYW5zcG9ydC5jOjI0OCkKICAgYnkgMHg1NkJDNDg3OiBzbm1wX3Nlc3NfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo1MjA0KQogICBieSAweDU2QkM2NTE6IHNubXBfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo0OTk4KQogICBieSAweDU2QkM2Nzc6IHNubXBfc2VuZCAoc25tcF9hcGkuYzo0OTg0KQogICBieSAweDU2OTg0NDA6IHNubXBfc3luY2hfcmVzcG9uc2VfY2IgKHNubXBfY2xpZW50LmM6MTAwNikKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NTcwMUIzRTogbmV0c25tcF90Y3BfdHJhbnNwb3J0IChzbm1wVENQRG9tYWluLmM6MTYzKQogICBieSAweDU3MDFFNkY6IG5ldHNubXBfdGNwX2NyZWF0ZV90c3RyaW5nIChzbm1wVENQRG9tYWluLmM6MzA1KQogICBieSAweDU2RjM4MDQ6IG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbAogICAoc25tcF90cmFuc3BvcnQuYzo2MDEpCiAgIGJ5IDB4NTZGM0FDQzogbmV0c25tcF90cmFuc3BvcnRfb3Blbl9jbGllbnQKICAgKHNubXBfdHJhbnNwb3J0LmM6NjY5KQogICBieSAweDU0MzQ0RjY6IHN1YmFnZW50X29wZW5fbWFzdGVyX3Nlc3Npb24gKHN1YmFnZW50LmM6NzU4KQogICBieSAweDU0MzQ5Qzg6IGFnZW50eF9yZW9wZW5fc2Vzc2lvbiAoc3ViYWdlbnQuYzo4NjkpCiAgIGJ5IDB4NTQzNEQwMDogc3ViYWdlbnRfc3RhcnR1cCAoc3ViYWdlbnQuYzo5OSkKICAgYnkgMHg1NkVBRUI3OiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjMzOCkKICAgYnkgMHg1NkRFNkZCOiByZWFkX2NvbmZpZ3MgKHJlYWRfY29uZmlnLmM6MTAxOCkKICAgYnkgMHg1NkMyODdFOiBpbml0X3NubXAgKHNubXBfYXBpLmM6ODUwKQogICBieSAweDQwNDc3QjogbWFpbiAoc25tcHRyYXBkLmM6MTA0OCkKCjIwMTAtMDgtMDEgMDY6MTEgIGJ2YXNzY2hlCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBGaXhlZCBzcGVsbGluZyBlcnJvcnMgcmVwb3J0ZWQgYnkgaXNwZWxsIC1sLgoKMjAxMC0wOC0wMSAwNjowMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF9lbnVtLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSB0ZXh0IHN0cmluZyBpbiBhIHVuaXQgdGVzdDogcmVzdHVyYW50IC0+CiAgIHJlc3RhdXJhbnQuCgoyMDEwLTA4LTAxIDA1OjUzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkuCgoyMDEwLTA3LTMxIDIzOjUwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxOTI2NjogYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgdG8gc3VwcG9ydCBNYWMgT1MgWAogICAxMC42CiAgIChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQoKMjAxMC0wNy0zMSAyMDozOCAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA3LTMxIDIwOjI0ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjE2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgY2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgcmVhZG1lIHNlY3Rpb24gdG8gY2FsbCBvdXQgTkVXUy10b28KCjIwMTAtMDctMzEgMjA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBtaXNzaW5nIG5ld3MgaXRlbXMKCjIwMTAtMDctMzAgMTM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0ggMzAzNTMyODogZnJvbTogc3dzOiBjaGVjayB0aGUgcmVzdWx0cyBvZgogICBzZXNzaW9uIGNyZWF0aW9uIGZvciBhIGZhaWx1cmUgY2FzZS4KCjIwMTAtMDctMzAgMTM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IHBhdGNoIDMwMzU1Nzg6IGZyb20gc3dzOiBrZWVwIGVycm9yIGNvZGVzIHVwIHRvCiAgIGRhdGUKCjIwMTAtMDctMjkgMTU6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTo0NyAgZHRzMTIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIG9mICd2YV9saXN0JyBmb3IgdmFyYXJncy1iYXNlZCBBUElzCgoyMDEwLTA3LTI5IDE0OjU4ICBkdHMxMgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIEFJWCA3CiAgIChvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgaWRlbnRpY2FsIHRvIEFJWCA2KQoKMjAxMC0wNy0yOSAxNDo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIERpc2FibGUgZW1iZWRkZWQgcGVybCBieSBkZWZhdWx0IG9uIGFyY2hpdGVjdXJlcyB3aGVyZQogICB0aGlzIHNlZW1zIHRvIGNhdXNlIHByb2JsZW1zIChIUC1VWCAmIE1hYyBPUyBYKQoKMjAxMC0wNy0yOSAxMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgR3VhcmQgYWdhaW5zdCBibGFuayAnaW5jbHVkZSonIGxpbmVzLgogICBIYW5kbGUgcmVsYXRpdmUgJ2luY2x1ZGVGaWxlJyBwYXRocwoKMjAxMC0wNy0yOSAxMDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldHVybiBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgY29uZmlnIGZpbGVzIGFyZSBhY3R1YWxseQogICBwcm9jZXNzZWQuCiAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIGZhaWxpbmcgdG8gaW5jbHVkZSBjb25maWcgZmlsZXMuCgoyMDEwLTA3LTI4IDE0OjQ0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgIAogICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBCcmluZyBtYW4gcGFnZSBkb2N1bWVudGF0aW9uLCBoZWFkZXIgZmlsZXMgYW5kIFdpbmRvd3MgRExMCiAgIGRlZmluaXRpb25zCiAgIG9mIHRvcC1sZXZlbCBwdWJsaWMgQVBJIGNhbGxzIGludG8gbGluZSB3aXRoIGVhY2ggb3RoZXIuCgoyMDEwLTA3LTI4IDE0OjQwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbWlzbmFtZWQgY29tbWVudAoKMjAxMC0wNy0yOCAxNDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERvbid0IG1peCBTTUl2MSBhbmQgU01JdjIgTUlCcyBpbiB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQnMgdG8KICAgbG9hZC4KICAgVXNlIG5ld2VyIFNNSXYyIHZlcnNpb25zICh3aGljaCBpbmNsdWRlIHN1aXRhYmxlIGRpc3BsYXkgaGludHMpCiAgIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBSRkMxMjEzIE1JQiAod2hpY2ggZG9lc24ndCkKCjIwMTAtMDctMjggMTQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbmRlbnRhdGlvbiBmb3IgJ2luY2x1ZGVTZWFyY2gnIHByb2Nlc3NpbmcgY29kZS4KCjIwMTAtMDctMjggMTQ6MDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEV4dGVuZCAnaW5jbHVkZScgY29uZmlnIGZpbGUgcHJvY2Vzc2luZyB0byBjb3ZlciB0aHJlZQogICBkaWZmZXJlbnQgbW9kZXMgb2Ygd29ya2luZzoKICAgLSBsb29rIGZvciB0aGUgZmlsZSBvbiB0aGUgY29uZmlnIHNlYXJjaCBwYXRoCiAgIC0gaW5jbHVkZSB0aGUgc3BlY2lmaWVkIGZpbGUgYnkgbmFtZQogICAtIGlvYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5CiAgIFVzZSBkaWZmZXJlbnQgY29uZmlnIHRva2VucyB0byBkaXN0aW5ndWlzaCB0aGVzZSBjYXNlcy4KCjIwMTAtMDctMjcgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjkxMjUyMDogZnJvbSBsaXN0b206IEZyZWUga21lbSByZWZlcmVuY2VzCiAgIG9uIHNodXRkb3duCgoyMDEwLTA3LTI3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NNVVgtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IHBhdGNoIDI5NzQ3MTY6IGZyb20gYnZhc3NjaGU6IGZpeCBpc3N1ZXMgaW4gdGhlCiAgIFNNVVgtTUlCCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBpbmNsdWRlIHRoZSBuZXcgc2VjdXJpdHktaGVkYWVycyBtb2R1bGUKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIHJlbW90ZSBkZWJ1Z2dpbmcvcHJvY2Vzc2luZyBzdGRlcnIgb3V0cHV0CgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDMwMjg5MjM6IGZyb20gamVuc286IG5ldyBjb3B5IG9mIHRoZQogICBicmlkZ2UtbWliIHBlcmwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXNlY3VyaXR5LWhlYWRlcnMuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIHNlY3VyaXR5IGhlYWRlci9pbml0IGdlbmVyYXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHM6CgogICB0cmFuc3BvcnQgY29uZmlndXJlIHBvcnRpb24KCjIwMTAtMDctMjcgMDg6MzAgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi10cmFuc3BvcnQtaGVhZGVycy5pbiwgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXZhcmlhYmxlcy5pbjoKCiAgIG1vdmUgdHJhbnNwb3J0IGhlYWRlciBnZW5lcmF0aW9uIHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgY3JlYXRlIGFuCiAgIGV4dGVybmFsIHNlcGFyYXRlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZyBpdAoKMjAxMC0wNy0yNyAwODoxNCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgZ2ZzIGZpbGVzeXN0ZW1zIGluIGhyU3RvcmFnZVRhYmxlIGFuZAogICBockZTVGFibGUuCgoyMDEwLTA3LTI0IDE1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIHdhcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gcHJvY2Vzc2luZyBhbiBpbmNsdWRlZCBjb25maWcgZmlsZS4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjQgMTU6MzYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgaXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIG9wZW5pbmcgYSBuZXcgU05NUCBzZXNzaW9uLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yMyAwMzoxMiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGQgdGhlIFRMUyBtb2R1bGVzIHRvIHRoZSBsaXN0IG9mIHRlc3QgbW9kdWxlcwoKMjAxMC0wNy0yMSAxOToyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRml4IHR5cG8gaW4gZG94eWdlbiBjb21tZW50CgoyMDEwLTA3LTIxIDE5OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIEZpeCB0eXBvIGluIHNwZWVkIGNvbXB1dGF0aW9uCgoyMDEwLTA3LTIxIDE5OjIxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSW5jbHVkZSBnZW5lcmF0ZWQgc2VjdXJpdHktaW5jbHVkZXMuaAoKMjAxMC0wNy0yMSAxOToyMCAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oOgoKICAgRml4IGluaXQgZnVuYyBuYW1lIChjb3B5LXBhc3RlIGdsaXRjaCkKCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBzZW1pY29sb24KCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIE91dCBvZiBvcmRlciBkZWNsYXJhdGlvbgoKMjAxMC0wNy0yMSAxOToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBMb2cgZXJyb3Igb24gZmlsZSBvcGVuIGVycm9yCgoyMDEwLTA3LTIxIDE5OjE2ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU3BlbGluZyBlcnJvcgoKMjAxMC0wNy0yMSAxODoxMCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmY6CgogICBVcGRhdGUgZm9yIGN1cnJlbnQgUkZDcwoKMjAxMC0wNy0yMSAxODowOCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCB2ZXJzaW9uIGZyb20gSUFOQQoKMjAxMC0wNy0yMSAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcjE3NDk1IGVycm9uZW91c2x5IGRpc2FibGVkIGRpc2tJT0xBeCBmb3IgbGludXgKCjIwMTAtMDctMjAgMTA6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGdlbmVyYXRpbmcKICAgdGVtcC4gZmlsZSBuYW1lcwoKMjAxMC0wNy0yMCAwNzozMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9zbm1wZC5jLCBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgICAKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIERlc2NyaWJlIC1EIHVzYWdlIGFzIC1EW1RPS0VOXSBpbnN0ZWFkIG9mIC1EIFtUT0tFTl0KCjIwMTAtMDctMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICB1cGRhdGUgZGlzcGxheSBoaW50IHRvIHNvbWUgbGVzcyBhbWJpZ3VvdXMgKGFuZCB0aGF0IHdvcmtzIHdpdGgKICAgb3VyIGxpYikKCjIwMTAtMDctMTcgMDQ6MTMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IHRlc3RzaW1wbGUgZm9yIGJ1aWxkZGlyIT1zcmNkaXIKCjIwMTAtMDctMTcgMDQ6MTIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgYWRkIHRlc3RzaW1wbGUgdGFyZ2V0CgoyMDEwLTA3LTE2IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWxlYXNlIGl0ZXJhdG9yIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDEwLTA3LTE1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBpc3N1ZSB3aXRoIFVTTSB1c2luZyBpbmFjdGl2ZSB1c2VycwoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGluY2x1ZGUgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcjsgZGVmaW5lIE5BTUVfTUFYIGlmIG5vdCBhbHJlYWR5CiAgIGRlZmluZWQ7CiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHRoYXQgc29tZSBuZXdlciBvcGVuc3NsIG1hY3JvcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcKICAgdGhlbTsgaW5jbHVkZQogICBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgZHRscyBkb21haW4gaWYgbm8gZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaWZkZWYgcHJvdGVjdGlvbiBmb3IgbGF0ZXIgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBkYXJ3aW4gb3BlbnNzbCBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgcmVjZW50IHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgZml4IHR5cG8gaW4gaWZkZWYgdGVzdAoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBpbmNsdWRlZCBmaWxlIG5hbWUKCjIwMTAtMDctMTQgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZml4IHRoZSBmaXg6IHB1dCBQUkl6IHNwZWMgaW4gY29ycmVjdCBwbGFjZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBzcGVjaWZ5IFNOTVAgdmVyc2lvbiBvbiBjb21tYW5kbGluZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAxMC0wNy0xNCAxNTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbmNsdWRlIHNzbC5oIGJlZm9yZSBjZXJ0X3V0aWwuaAoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZGVidWcgb3V0cHV0IGZvciBmb3VuZCBjZXJ0CgoyMDEwLTA3LTEzIDE2OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbXNnCgoyMDEwLTA3LTEyIDEwOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBXaW4zMiBhbmQgQ3lnd2luOiBtYWRlIHN1cmUgdGhhdCBhY2Nlc3NpbmcgdGhlIG1pYklJCiAgIGludGVyZmFjZXMgdGFibGUgZG9lcyBub3QgdHJpZ2dlciBvdXQtb2YtcmFuZ2UgYXJyYXkgYWNjZXNzZXMKICAgKHdhcyBkZXRlY3RlZCBieSBCb3VuZHNDaGVja2VyKS4KCjIwMTAtMDctMTIgMTA6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4ZWQgYSBkYW5nbGluZy1wb2ludGVyLXJlYWQgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTguIEluCiAgIHIxOTAxOCB0aGUgdHlwZSBvZiBncm91cFN1YnRyZWVMZW4gd2FzIGNoYW5nZWQgZnJvbSBpbnQgdG8KICAgc2l6ZV90LCB3aGljaCBjaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiB0aGUgbG9vcCAid2hpbGUKICAgKGdyb3VwU3VidHJlZUxlbi0tID4gMCkgLi4uIjogaW5zdGVhZCBvZiBub3QgZXhlY3V0aW5nIHRoZSBsb29wCiAgIGJvZHkgd2hlbiBncm91cFN1YnRyZWVMZW4gd2FzIG5lZ2F0aXZlLCByMTkwMTggY2F1c2VkIHRoZSBib2R5IG9mCiAgIHRoYXQgbG9vcCB0byBiZSBleGVjdXRlZC4gRGV0ZWN0ZWQgYnkgcnVubmluZyBzbm1wZCB1bmRlcgogICBCb3VuZHNDaGVja2VyIHdoaWxlIHBlcmZvcm1pbmcgYSBNSUIgd2Fsay4KCjIwMTAtMDctMTIgMTA6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBSZXZlcnRlZCByMTkwNDcgKHdoaWNoIHdhcyB3cm9uZykgYW5kIGltcGxlbWVudGVkIGEgcHJvcGVyIGZpeAogICBmb3IgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzLgoKMjAxMC0wNy0xMiAxMDowOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNy0xMiAxMDowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgU3VwcHJlc3NlZCBtb3JlIE1TVkMgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzOgoKICAgYWRkIGNvbW1lbnQgd2l0aCBvYmplY3QgbmFtZSBmb3IgbnVtZXJpYyBpZHMKCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gZ2V0IHNlcnZlcklkIGZyb20gc25tcFRsc3RtQWRkclRhYmxlIGRhdGE7IHVzZQogICBuZXcgYXBpCiAgIHRvIGNvbmZpZyBzZXJ2aWNlSWQgZm9yIHRyYXAgdHJhbnNwb3J0IHdoZW4gc2VuZGluZyB0cmFwcwoKMjAxMC0wNy0xMSAxMToxOCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ0hBTkdFUzogQlVHOiAzMDI3OTAwOiB3aGVuIGNyb3NzLWNvbXBpbGluZyBpdCBpcyBub3cgYXNzdW1lZAogICB0aGF0IG1lbWNtcCgpIGlzIGF2YWlsYWJsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgaXQgaXMgbm90CiAgIGF2YWlsYWJsZS4KCjIwMTAtMDctMTEgMTA6MzAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHIxOTE5Ny4KCjIwMTAtMDctMTAgMjA6MDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN5bmMgdXAgaGVscCBvdXRwdXQgYW5kIG9wdGlvbnMgcHJvY2Vzc2luZwoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBDeWd3aW4gc2VjdGlvbiBpbiBSRUFETUUud2luMzIuCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBXaW4zMjogU3VwcHJlc3NlZCAiaW1wbGljaXQgY2FzdCBmcm9tIGludCB0byB1X2NoYXIiCiAgIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBNU1ZDLgoKMjAxMC0wNy0wOSAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIFRlc3Rpbmc6IG1hZGUgdGhlIGRlYnVnIG91dHB1dCB0aGF0IGFwcGVhcnMgaW4gdGhlICJpbnZva2VkIiBmaWxlCiAgIGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMC0wNy0wOSAxNToxMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDEwLTA3LTA4IDE5OjMwICBtYXJ6CgogICAqICBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQsICAgCiAgICAgIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGFkZHMgcGVyIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZmlsZSBzdXBwb3J0IHNvIGRlZmF1bHRzIGNhbiBiZQogICBjdXN0b21pc2VkIG9uIGNtZGxpbmUgdyAtaSA8aWRlbnRpdHk+IC0gc2VlIG5ldC1zbm1wLWNlcnQuY29uZgogICBmb3IgZXhhbXBsZXMgYW5kIHNvbWUgaGVscCBpbmZvCgoyMDEwLTA3LTA4IDEyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAwMzk4MTogUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVyZmxvdwoKMjAxMC0wNy0wOCAxMToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDE5MjQzOiBSZWdpc3RlciBleGVjRml4IGNvbXBhdGFiaWxpdHkKICAgZGlyZWN0aXZlIGNvcnJlY3RseS4KCjIwMTAtMDctMDcgMTA6MTkgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGU6CgogICBDSEFOR0VTOiBDeWd3aW4gYW5kIE1pbkdXOiB0ZXN0cyBUMTEwLCBUMTExLCBUMTEyLCBUMTIwLCBUMTIxIGFuZAogICBUMTIyIGRvIG5vdyBwYXNzIHdoZW4gc25tcGQgaXMgYnVpbHQgd2l0aCB3aW5FeHRETEwgc3VwcG9ydAogICBlbmFibGVkLgoKMjAxMC0wNy0wNiAxODo1OSAgYnZhc3NjaGUKCiAgICogIENoYW5nZUxvZywgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBNYWRlIHJlZ3Jlc3Npb24gdGVzdHMgZWFzaWVyIHRvIGRlYnVnIGJ5IGluY2x1ZGluZyBvayAvIG5vdCBvawogICBzdGF0dXMgaW4gdGhlICJpbnZva2VkIiBmaWxlLgogICBTcGVsbGluZyBmaXhlczogcmVtZWJlciAtPiByZW1lbWJlcjsgc2VwZXJhdG9yIC0+IHNlcGFyYXRvci4KCjIwMTAtMDctMDYgMTU6MDQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgVGVzdCBUMDY1IGRvZXMgbm93IHJlYWxseSBwYXNzIG9uIE1pbkdXLgoKMjAxMC0wNy0wNSAxMDowMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGN1cmx5IGJyYWNlcyBzdWNoIHRoYXQgJ3x8JyBhbmQgJyYmJyBhcmUgZXZhbHVhdGVkIGluIHRoZQogICBjb3JyZWN0IG9yZGVyLgoKMjAxMC0wNy0wNCAxMTozNyAgYnZhc3NjaGUKCiAgICogYXBwczoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDctMDQgMTE6MzQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBGYWxsIGJhY2sgZnJvbSBSVU5GVUxMVEVTVFMgdG8gUlVOVEVTVFMgaWYgbmVpdGhlciBUQVA6Okhhcm5lc3MKICAgbm9yIFRlc3Q6Okhhcm5lc3MgaXMgYXZhaWxhYmxlLgoKMjAxMC0wNy0wNCAxMToyMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHRlc3QgbnVtYmVyIGluIC90bXAvc25tcC10ZXN0cy0kdGVzdG51bSBpcyBzZXQKICAgdG8gc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bCB0aGFuIGp1c3QgIjAiLgoKMjAxMC0wNy0wNCAxMToyMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNwbGl0IGEgbG9uZyBjb21tZW50IGxpbmUuCgoyMDEwLTA3LTA0IDEwOjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgc3JjZGlyIGlzIGNvbXB1dGVkIGNvcnJlY3RseSBpZiBgZGlybmFtZQogICAkMGAgPSAuCgoyMDEwLTA3LTAyIDE2OjI3ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgU2ltcGxpZmllZCByMTkxODEgKEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aAogICBub24tZW1wdHkgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cpLgoKMjAxMC0wNy0wMSAxODoxNSAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aCBub24tZW1wdHkKICAgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cuCgoyMDEwLTA3LTAxIDE4OjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDctMDEgMTc6NTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBGaXhlZCB0d28gcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMDEgMDA6MTkgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MDMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ4ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmY6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlzc2VkIHR3byB0b2tlbnMgaW4gdGhlIG1hbiBwZ2FlcwoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWYsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICByZW5hbWUgdGhlIGRlZlg1MDkgdG9rZW5zIHRvIHNvbWV0aGluZyBtb3JlIGZyaWVuZGx5OiBjbGllbnRDZXJ0CiAgIGFuZCBzZXJ2ZXJDZXJ0CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB0b3AtZmlsZSBjb21tZW50IHVwZGF0ZXMKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCBjYWxsIGNlcnRfZmluZCB3aXRoIGEgTlVMTCBhcmd1bWVudAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFsbG93IGRlZiBjZXJ0cyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBmaWxlbmFtZQoKMjAxMC0wNi0zMCAyMzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBmaXggc3ludGF4IGVycm9yCgoyMDEwLTA2LTMwIDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdHVybiBhIGNvdXBsZSBvZiBub24tY3JpdGljYWwgZXJyb3JzIGludG8gZGVidWcgc3RhdGVtZW50cyBwZXIKICAgZGlzY3Vzc2lvbiB3aXRoIHJzdG9yeQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWtlIHRoZSByZWdleHAgcGF0dGVybiBtYXRjaCBmb3IgdGVzdHMgdG8gcnVuIGNhc2UgaW5zZW5zaXRpdmUKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGltcG9ydCBzdGRlcnIgZnJvbSBzeXMsIHBlciBkaXNjdXNzaW9uIG9uIC11c2VycwoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIGJhY2sgaW4gdGhlIGRlZmF1bHQgcG9ydCBzcGVjaWZpZXIKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBlbmFibGUgcHVsbGluZyB0aGUgcHJpdmF0ZSBrZXkgb3ZlciBodHRwCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW92ZSBVUkwgY29sbGVjdGlvbiBpbnRvIGEgc3ViIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYWJpbGl0eSB0byBwdWxsIGEgY2VydCBmcm9tIGEgVVJMCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFyZ3VtZW50IGJ1ZyBpbiB0aGUgaXNfdXJsIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgY29kZQoKMjAxMC0wNi0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3RHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICByZW5hbWUgZmlsZSBmb3IgY29uc2lzdGVuY3kKCjIwMTAtMDYtMzAgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBzbm1wdGxzIGFwcAoKMjAxMC0wNi0zMCAyMDowMCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHJlbW92ZSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbnQgZGVidWcgY29kZQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGRlZmluZSBPSURzIGJhc2VkIG9uIFNOTVBfVExTX1RNX0JBU0UKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NyAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlOyBhZGQKICAgc25tcF9zdG9yZV9uZWVkZWQgb24gY29tbWl0CgoyMDEwLTA2LTMwIDE5OjU2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIG5ldyBmaW5nZXJwcmludCBwYXJzZS9idWlsZCBmdW5jdGlvbnM7IHJlbW92ZSBiYWQgbGVuZ3RoCiAgIGNoZWNrOyBhdXRvCiAgIHRyYW5zaXRpb24gYmV0d2VlbiBub3RSZWFkeSBhbmQgbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU1ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgcmVtb3ZlIHByZS1yZmMgbWliOyBzZWUgU05NUC1UTFMtVE0tTUlCLnR4dCBpbnN0ZWFkCgoyMDEwLTA2LTMwIDE5OjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgY29uc29saWRhdGUgbXVsdGlwbGUgZmlsZXMKCjIwMTAtMDYtMzAgMTk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIGhhc2ggdHlwZSBwYXJzZSByb3V0aW5lIHB1YmxpYzsgYWRkIHJvdXRpbmVzIHRvIGJ1aWxkL3BhcnNlCiAgIFNubXBUTFNGaW5nZXJwcmludAoKMjAxMC0wNi0zMCAxOTo1MSAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGxzLmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogc25tcHRsczogbmV3IGFwcCBmb3IgbWFuYWdpbmcgKEQpVExTIGNvbmZpZyB2aWEKICAgU05NUC1UTFMtVE0tTUlCIHRhYmxlcwoKMjAxMC0wNi0zMCAxOTo1MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBjYWxsIG5ldyBzbm1wX3N0b3JlX25lZWRlZCgpIGZ1bmN0aW9uIGFmdGVyIGEgY29tbWl0IGluIHRhYmxlcwogICB0aGF0CiAgIGhhdmUgcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0zMCAxOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHNpbXBsZSBzdGF0ZSBtYWNoaW5lCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgcm93IGNyZWF0aW9uIEFQSSB3aGljaCB1c2VzIGEKICAgc3RhdGUgbWFjaGluZQogICB0byB0cnkgcmVhbGx5IGhhcmQgdG8gY3JlYXRlIGEgcm93IGZyb20gYSBnaXZlbiB2YXJiaW5kIGxpc3QKCjIwMTAtMDYtMzAgMTk6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGQ6IG5ldyBBUEkgZm9yIGluZGljYXRpbmcgdGhhdCBwZXJzaXN0ZW50IHN0b3JlIG5lZWRzCiAgIHRvIGJlIHNhdmVkIGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgZmluaXNoZXMgcHJvY2Vzc2luZwoKMjAxMC0wNi0zMCAxOTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgYWRkIHNvbWUgbmV3IHdyYXBwZXIgbWFjcm9zCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNDTlNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNUR0bHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTZUbHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMThUbHNDTlNlc3Npb25fc2ltcGxlOgoKICAgYWRkZWQgY2hlY2tzIGZvciBjaGVja2luZyBkaXJlY3QgcGFzc2luZyBvZiBsb2NhbGhvc3QgdG8gdGhlCiAgIGV4cGVjdGVkIG5hbWUKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyOgoKICAgY2hlY2sgZm9yIHdpbGRjYXJkIHN1cHBvcnQKCjIwMTAtMDYtMzAgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3VwcG9ydCBTQU4gYW5kIENOIHdpbGRjYXJkIG1hdGNoaW5nIHBlciBzcGVjCgoyMDEwLTA2LTMwIDE1OjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc05hbWUsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFycywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxRHRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMlRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExRHRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJUbHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNEdGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTRUbHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxRHRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMlRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxRHRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJUbHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFEdGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJUbHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxRHRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJUbHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDBUbHNJcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDBUbHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMUR0bHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFEdGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJUbHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICBtb3ZlZCB0ZXN0IGZpbGVzIGFyb3VuZCBmb3IgYmV0dGVyIG5hbWluZwoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGR0bHMgdHJhbnNwb3J0IGFkZHJlc3MgdG8gdGhlIGV4cGVjdGVkIGhvc3RuYW1lCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdGhlIGV4cGVjdGVkIGhvc3RuYW1lIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJpbmcgaWYgcG9zc2libGUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhIGJpdCBtb3JlIGhlbHAgb3V0cHV0IGJ5IGRlZmF1bHQKCjIwMTAtMDYtMjkgMjI6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgRm9sbG93LXVwIGZvciByMTkxMTY6IG1ha2Ugc3VyZSB3ZSBpbmNsdWRlIGFnZW50IGNvbmZpZwoKMjAxMC0wNi0yOSAyMjoxOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIEFkZCBtaXNzaW5nIGNvbmZpZ19yZXF1aXJlcwoKMjAxMC0wNi0yOSAxNzozMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICByZXdvcmsgdGhlIHNubXBjbWQgbWFudWFsIHBhZ2UgdG8gc2VwYXJhdGUgb3V0IHRoZSBmbGFncyBpbnRvCiAgIHNlY3Rpb25zIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZSB0eXBlCgoyMDEwLTA2LTI5IDE2OjUxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBwb2QgZG9jcywgc29tZSBkZWZhdWx0IHZhbCBmaXhlcywgaW5mbyBvdXRwdXQgbm9ybWFsaXplZAoKMjAxMC0wNi0yOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgYWRkZWQgc3NoLmggaW5jbHVkZQoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICByZW9yZ2FuaXplIHRoZSBtYW51YWwgcGFnZSBhIGJpdCBmb3IgU05NUHYzIGFuZCBUTFMKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggZGVmYXVsdCB0bHMgcmVnaXN0cmF0aW9ucwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgdHJhbnNwb3J0cyBhZnRlciBhbiBvcGVuIGZhaWxzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmluZyBsb2dnaW5nIGFyb3VuZCBzbyB0aGF0IG9wZW5zc2wgZXJyb3JzIGFyZSBwcmludGVkIG9uCiAgIGZhaWx1cmVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXg6CgogICBmaXggc29tZSBub24taW50ZXJhY3RpdmUgaW52b2NhdGlvbiBpc3N1ZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gYSBjb21tb24gZnVuY3Rpb24KCjIwMTAtMDYtMjggMTk6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGU6CgogICBjaXBoZXIgc3VpdGUgc2VsZWN0aW9uIGFuZCB0ZXN0cyBmb3IgaXQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9MSUNFTlNFOgoKICAgbGljZW5zZSB1cGRhdGVzCgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvY2xpZW50LnB5LCAgIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgU05NUHYzIG92ZXIgVExTIHN1cHBvcnQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBiZXR0ZXIgb3V0cHV0IHNob3dpbmcgdGVzdCB0eXBlcwoKMjAxMC0wNi0yOCAwMDo1NCAgdGFuZGVycwoKICAgKiAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgCiAgICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IG1hbjogY2xlYW4gdXAgbWFudWFsIHBhZ2VzCiAgIChmcm9tIERlYmlhbiBwYXRjaCA1Nl9tYW5wYWdlKQoKMjAxMC0wNi0yNyAyMzoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGNhbGwgdmFjbV9zdGFuZGFyZF92aWV3cygpIG9yCiAgIGluaXRfdmFjbV9jb25maWdfdG9rZW5zKCkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbW9kdWxlIHdhcyBub3QKICAgY29tcGlsZWQKICAgKGZyb20gRGViaWFuIHBhdGNoIDYxX3ZhY21fbWlzc2luZ19kZXBlbmRlbmN5X2NoZWNrKQoKMjAxMC0wNi0yNyAwMzoyMyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFwcCB0YWcgY29tcGxldGlvbnMKCjIwMTAtMDYtMjcgMDA6NTYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgaGFuZGxlIGNvbmZpZyBmaWxlIHNldHRpbmcgaW50ZXJhY3RpdmUsIHRydWUvZmFsc2UgdmFsdWVzIGhhbmRsZWQKICAgaW4gY29uZmlnCgoyMDEwLTA2LTI2IDIwOjU4ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggc29tZSBidWdzIHcvIHNwYWNlcyBpbiBuYW1lcyBhbmQgYXBwIHRhZyBoZWxwCgoyMDEwLTA2LTI2IDE5OjM4ICBtYXJ6CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdGVzdHMgdG8gdXNlIG5vbi1pbnRlcmFjdGl2ZSAtSQoKMjAxMC0wNi0yNiAxNzo0NiAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBiZXR0ZXIgaW50ZXJhY3RpdmUsID89aGVscCwgPHRhYj4gY29tcGwsIG1vcmUgaGVscCwgU0FOIGxvb3AKICAgZm9ybWF0IGFuZCB0ZXJtaW5hdGlvbiBmaXgsIHRvbGVyYXRlIHNwYWNlcyBpbiBmaWVsZHMgYW5kCiAgIGZpbGVuYW1lcywgbW9yZSBjb21wbGV0ZSBlcnJvciBvdXRwdXQsIGVtYnJ5b25pYyBpbXBvcnQgZnJvbSB1cmwKCjIwMTAtMDYtMjYgMTM6NDggIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0wNi0yNiAxMzo0NyAgYnZhc3NjaGUKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeGVkIHRoZSBlcnJvcnMgaW4gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZWQKICAgbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTA2LTI2IDEzOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSBTTVVYIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMTAtMDYtMjYgMDA6NDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZToKCiAgIGZpeGVzIGFuZCB0ZXN0aW5nIGZvciBjaGVja2luZyBTQU4gRE5TIG5hbWVzIGZyb20gdGhlIHNlcnZlcgoKMjAxMC0wNi0yNiAwMDo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgZ2VuZXJpY2l6ZSB0aGUgc2VydmVyIG5hbWUgdGVzdHMKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5oLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICB1c2VwcmVmaXggc2NhbGFyIHRlc3RpbmcgYW5kIHN1cHBvcnQKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICByZW1vdmUgZGVidWdnaW5nIGxpbmVzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcHV0IGluIG9ubHkgbWluaW1pYWwgZGVidWcgZmxhZ3MKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZToKCiAgIGNvZGUgYW5kIHRlc3QgY2FzZXMgZm9yIENSTCBoYW5kbGluZwoKMjAxMC0wNi0yNSAxNToyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZToKCiAgIEFkZGVkIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGVhY2ggbGluZSBwcmludGVkIGJ5IHRoZSBQZXJsCiAgIGludGVycHJldGVyLgoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZWR1Y2UgbnVtYmVyIG9mIHJlc2VuZCBhdHRlbXB0cyBhbmQgdGltZW91dAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB3YXJuaW5nIGZpeGVzCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVtb3ZlIGxvZ2ljIHR5cG8gZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGU6CgogICBJUHY2IGZpeGVzIGZvciBUQ1AKCjIwMTAtMDYtMjUgMTM6MDEgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRpbmcgMTkwOTUsIGl0IGJyZWFrcyB0ZXN0cwoKMjAxMC0wNi0yNSAwOTo0MCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFuc2xhdGU6IGZpeGVkIHByaW50aW5nIG9mIHJhbmdlcyB3aXRoIFVOU0lHTkVECiAgIHR5cGUuCgoyMDEwLTA2LTI0IDIzOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBmdW5jdGlvbiBuYW1lcyBmb3Igc3RhdCBpbmNyZWFzZXMKCjIwMTAtMDYtMjQgMjM6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9ycyBpbiBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS40IGZvciBkdGxzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjMuMgoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGllbnQgc2lkZSBjb25uZWN0IGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvdW50ZXIgYW5kIGNvbW1lbnQgaW1wcm92ZW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHVwZGF0ZSBjb3VudGVyIGNhbGxzIGFuZCBjb21tZW50IHRleHQKCjIwMTAtMDYtMjQgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBNb3ZlZCBMRF9MSUJSQVJZX1BBVEggc2V0dXAgZnJvbSBpbmRpdmlkdWFsIHRlc3RzIHNjcmlwdHMgdG8KICAgc2ltcGxlX1RFU1RDT05GLnNoLgoKMjAxMC0wNi0yNCAxOTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgRml4ZWQgYSBjb21tZW50LgoKMjAxMC0wNi0yNCAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBTaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxOTA4NC4KCjIwMTAtMDYtMjQgMTc6NDcgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNi0yNCAxMjozMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgICJ0ZXN0IC1lIiBpc24ndCBwb3J0YWJsZTsgdXNlICJ0ZXN0IC14IiBpbnN0ZWFkIGZvciB0aGUgUGVybAogICBzeXN0ZW0oKQogICBjaGVjawoKMjAxMC0wNi0yMyAxMToxNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgSVAtTUlCOjppcHY2SW50ZXJmYWNlRm9yd2FyZGluZyBvbgogICBMaW51eAogICAKICAgVGhlIHZhbHVlIHdhcyAwIChub3QgZm9yd2FyZGluZykgb3IgMSAoZm9yd2FyZGluZyksIHNob3VsZCBiZSAyCiAgIGFuZCAxCiAgIGluc3RlYWQgLSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeS5mb3J3YXJkaW5nX3Y2IGlzIGJvb2xlYW4sIG5vdAogICBUcnV0aFZhbHVlLgoKMjAxMC0wNi0yMiAyMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgc3VwcG9ydCBmb3IgY2VydFNlY05hbWUgbWFwcGluZyBmcm9tIGEgbG9jYWwgY2VydCBmaWxlIG5hbWUgYW5kIGEKICAgdGVzdCBmb3IgaXQKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbmF0aW9uIHVwZGF0ZSB0byBjbGVhbiB1cCBhbmQgaW5jbHVkZSBUTFMgcGFyYW1ldGVycwoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBmb3IgcGFzc2luZyBpZGVudGl0aWVzIGFuZCBmdWxsIHdvcmtpbmcgdmVyc2lvbgoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudDoKCiAgIHBlcmwgVExTL0RUTFMgdGVzdHMKCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpcnN0IHB0YWNoIG9uIFNOTVAvVExTIGNyZWF0aW5nIGEgbmV3IHNlc3Npb24gZnVuY3Rpb24KCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmlyc3Qgd29ya2luZyBzdXBwb3J0IGZvciBhIGRlbGF5ZWQgY2xvc2UoKSB0byBhdHRlbXB0IHRvIHNlbmRpbmcKICAgb3V0c3RhbmRpbmcgcGFja2V0cyBpbiB0aGUgcXVldWU7IHRoaXMgaXMgcmVxdWlyZWQgZm9yIHNubXB0cmFwCiAgIHRvIHdvcmsgYXQgYWxsIHdoZW4gc2VuZGluZyB0cmFwcyAobm90IGluZm9ybXMpIG92ZXIgRFRMUwoKMjAxMC0wNi0yMiAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdHMgVDA1OXRyYXBoYW5kbGVfc2ltcGxlIGFuZAogICBUMDY1YWdlbnRleHRlbmRfc2ltcGxlIGRvIG5vdyBwYXNzLgoKMjAxMC0wNi0yMiAxOTowMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgVGhlIHdpZHRoIGFyZ3VtZW50IGZvciAlLipkIG11c3QgaGF2ZSB0eXBlIGludCwgbm90IHNpemVfdC4gVGhpcwogICBidWcgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE0LgoKMjAxMC0wNi0yMiAxODo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIE5FV1M6IE1pbkdXOiB0aGUgc25tcGQuY29uZiBrZXl3b3JkIGV4dGVuZCBkb2VzIG5vdyB3b3JrLgogICBORVdTOiBNaW5HVzogdGhlIHNubXB0cmFwZC5jb25mIGtleXdvcmQgdHJhcGhhbmRsZSBkb2VzIG5vdyB3b3JrLgogICBDSEFOR0VTOiBNaW5HVzogcnVuX3NoZWxsX2NvbW1hbmQoKSB3aXRoIGVpdGhlciBpbnB1dCBvciBvdXRwdXQKICAgKGJ1dCBub3QgYm90aCkgZG9lcyBub3cgd29yay4KICAgVGhpcyBkaWQgbm90IHdvcmsgdW50aWwgbm93IGJlY2F1c2Ugb24gTWluR1cgbWtzdGVtcCgpIGdlbmVyYXRlcwogICBhIE1pbkdXLXN0eWxlIHBhdGggKC90bXAvLi4uKSB3aGlsZSBzeXN0ZW0oKSBpbnZva2VzIGNtZC5leGUgYW5kCiAgIGhlbmNlIGV4cGVjdHMgYSBXaW5kb3dzLXN0eWxlIHBhdGggKEM6XC4uLikuCgoyMDEwLTA2LTIyIDE3OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQWxzbyByZXBvcnQgdGhlIHBvcnQgc3BlY2lmaWNhdGlvbiBpZiBbICRTTk1QX1ZFUkJPU0UgLWd0IDAgXS4KCjIwMTAtMDYtMjIgMTc6MzggIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBSZXBsYWNlZCBhbiBleHBsaWNpdCB0ZXN0IGZvciBNaW5HVyBieSBhIHRlc3Qgb24gSEFWRV9TSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM2ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFJlcG9ydCB3aGljaCB0ZXN0cyBmYWlsZWQsIGlmIGFueS4KCjIwMTAtMDYtMjIgMDg6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4ZWQgYW4gZXJyb3IgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxMC0wNi0yMSAxOToyNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIFJlYXJyYW5nZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdGVzdCBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeQogICB0byBpbnZva2Ugc2ltcGxlX2V2YWxfdG9vbHMuc2ggd2hlbiB0aGlzIHNjcmlwdCBpcyBpbnZva2VkIGFzIGEKICAgdHJhcCBoYW5kbGVyCiAgIGJ5IHNubXB0cmFwZC4KCjIwMTAtMDYtMjEgMDg6MDEgIGR0czEyCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBFbnN1cmUgdGhhdCBmZHNldCBzdHJ1Y3R1cmUgaXMgcmVzaXplZCBzdWZmaWNpZW50bHkKICAgdG8gYWNjb21vZGF0ZSB0aGUgc3BlY2lmaWVkIHNvY2tldCBJRC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBTaGl5YWxlaS4KCjIwMTAtMDYtMjAgMTk6MzIgIGR0czEyCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsICAgCiAgICAgIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEF2b2lkIGR1cGxpY2F0ZSAodW51c2VkKSBzeW1ib2xzLgoKMjAxMC0wNi0yMCAxOTozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIENvbW1lbnRlZCBvdXQgZGVidWcgY29kZS4KCjIwMTAtMDYtMjAgMTk6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIFJlc3RvcmVkIHN1bW1hcnkgc3VjY2Vzcy9mYWlsdXJlIGNvdW50IHJlcG9ydGluZy4KICAgQWxzbywgbW92ZWQga2lsbC5leGUgdGVzdCBiYWNrIHRvIFJVTlRFU1RTLgoKMjAxMC0wNi0yMCAxOToyOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZCB0aGUgdGVzdCBuYW1lIHRvIHRoZSBzdGFydCBvZiB0aGUgZmlsZQogICAiaW52b2tlZCIuCgoyMDEwLTA2LTIwIDE5OjI3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IHNraXAgdGhlIHRlc3RzIHRoYXQgcmVxdWlyZSBTSUdIVVAgc2luY2UKICAgTWluR1cgZG9lcyBub3Qgc3VwcG9ydCBTSUdIVVAuCgoyMDEwLTA2LTIwIDE1OjE5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY29uZmlndXJlIHRlc3QgdGhhdCBkZXRlY3RzIHdoZXRoZXIgb3Igbm90IFBlcmwncwogICBzeXN0ZW0oKSBmdW5jdGlvbgogICBpbnZva2VzIGEgUE9TSVggc2hlbGwuICJtYWtlIHRlc3QiIGRvZXMgbm93IGZhbGwgYmFjayB0byBSVU5URVNUUwogICBpZiBub3QuCgoyMDEwLTA2LTIwIDE1OjE2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIG9uIE1pbkdXIC0tIGFkZGVkICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPiB3aGVyZQogICBuZWNlc3NhcnkuCiAgIE5vdGU6IGFsdGhvdWdoIDxuZXQtc25tcC90eXBlcy5oPiBpcyBpbmNsdWRlZCBpbmRpcmVjdGx5IGZyb20gdGhlCiAgICogICAgICp0cmFuc3BvcnQuaCAgICBoZWFkZXIgZmlsZXMsIHRoZXNlICNpbmNsdWRlIHN0YXRlbWVudHMgYXJlCiAgICAgIG5lY2Vzc2FyeSBiZWNhdXNlIG9mICAgIGEgcGVza3kgICAgY2lyY3VsYXIgZGVwZW5kZW5jZSBiZXR3ZWVuCiAgICAgIDxuZXQtc25tcC90eXBlcy5oPiBhbmQgICAgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4uIAogICAgICAyMDEwLTA2LTIwIDE1OjEyICBidmFzc2NoZQoKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgQ0hBTkdFUzogTWluR1c6IHJlZnVzZSB0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaWYga2lsbC5leGUKICAgY2Fubm90IGJlIGZvdW5kLgoKMjAxMC0wNi0yMCAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNob3J0ZW5lZCB0aGUgc3JjZGlyIHBhdGggYnkgbWFraW5nIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluCiAgIC8uLgoKMjAxMC0wNi0xOSAxODozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIFJVTkZVTExURVNUUyB3aXRoIFRlc3Q6Okhhcm5lc3MgaW4KICAgYW5vdGhlciBkaXJlY3RvcnkgdGhhbiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgY29tcGxldGUgcmV3cml0ZSBvZiBwYXJhbXMgdG8gdXNlIHRhYmxlX2RhdGFzZXQgaW5zdGVhZCBvZgogICBjcmVhdGUtZGF0YXNldAoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1c2UgdGV4dCBmb3IgaGFzaCB0eXBlIGluIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggbWlzc2luZyBzcGVjaWZpZXIgaW4gZGVidWcKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgZGVmaW5lIGluc3RlYWQgb2YgY29uc3RhbnQ7IGZpeCBjaGVjayBmb3Igcm93cyB0byBzYXZlCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHJlbW92ZS9maW5kIGZ1bmN0aW9uIGZvciBtYXBzL2FkZHJzL3BhcmFtczsgcmVuYW1lIHBhcmFtcwogICB0YWctPm5hbWU7CiAgIGRlc3Ryb3kgLT4gZnJlZTsgZ3JvdXAgcmVjZW50IHRydXN0IGZ1bmN0aW9ucyB0b2dldGhlciBpbiBzcmM7CiAgIGRvbid0IHN0b3JlCiAgIHBhcmFtcyBmcCBhcyBiaW5hcnk7IGhhbmQgdGV4dCBhcmdzIGZvciBoYXNoIHR5cGUgKGUuZyAtLXNoYTEpCgoyMDEwLTA2LTE4IDE1OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBjb3JyZWN0ZWQgZXJyb3IgaGFuZGxpbmcgaW4gbWliSUkvYXQuCgoyMDEwLTA2LTE4IDA3OjIzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDYtMTggMDE6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIERvIG5vdCBkZWZpbmUgcmV0IHR3aWNlIHdoZW4gTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPIGlzIHNldC4KCjIwMTAtMDYtMTggMDE6MzkgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDb3JyZWN0ZWQgdHlwby4KCjIwMTAtMDYtMTggMDA6MzEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBiZXR0ZXIgTkVXUyBhbmQgQ0hBTkdFUyBmaWxlcwoKMjAxMC0wNi0xNyAyMDozOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0xNyAxODo1OSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICByZS1lbmFibGUgc29tZSBjb21tYW5kcwoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgZm9yZ290IG1pc3NpbmcgcXVvdGVzIGluIFNFVCBvdXRwdXQKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0bHMgdGVzdGluZyBjbGVhbnVwCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBmaXhlcyBmb3IgYWRkcmVzcyBwcmludGluZzsgbW9yZSB0byBjb21lCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9zdGx5IHByb3Blcmx5IHNldCByZW1vdGUvbG9jYWwgdHJhbnNwb3J0IHBhcmFtZXRlcnMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMWR0bHN1ZHBhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlOgoKICAgdGVzdHMgZm9yIGFnZW50cyBzZW5kaW5nIG9mIHRyYXBzIG92ZXIgKEQpVExTCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIG1vdmUgZXhwb3J0IHN0YXRlbWVudHMgdG8gdGhlIHN1cHBvcnQgZmlsZSBmb3Igc2ltcGxpY2l0eQoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRscyBib290c3RyYXBwaW5nIHRvIHBvc3RfcHJlbWliIHNvIG90aGVyIGNvbmZpZyB0b2tlbnMgY2FuCiAgIHVzZSB0aGUgY2VydCBsb2FkaW5nIHJlc3VsdHMKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBhZGRlZCBzbm1wX2VudW0gdGVzdHMgcHVsbGVkIGZyb20gdGhlIG1haW4oKSB0ZXN0IGF0IHRoZSBib3R0b20KICAgb2YgdGhlIG9yaWdpbmFsIC5jIGZpbGUKCjIwMTAtMDYtMTcgMTY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRWxpbWluYXRlICJkaWZmZXIgaW4gc2lnbmVkbmVzcyIgd2FybmluZwoKMjAxMC0wNi0xNyAwMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICByZXZlcnQgVURQIGNoYW5nZXMgZnJvbSByMTg5ODQgc2luY2UgaXQgYnJva2UgdGhlIFVEUCB0cmFuc3BvcnQ7CiAgIHRoZSBzdHJ1Y3QgcHJvYmFibHkgbmVlZHMgdG8gbWF0Y2ggYW5vdGhlciBzdHJ1Y3Qgc29tZXdoZXJlIGVsc2UKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBuZXcgS0VZV09SRCBvdXRwdXQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcwoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGNvbmZpZ19hbmRfb3BlbiBmb3Igb3BlbmluZyB0aGUgdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGV4dHJhIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBleHBsaWNpdGx5IGRlY2xhcmUgdHJ1c3QgY2VydGlmaWNhdGVzIHRvIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNsZWFudXAgc29tZSBsb3N0IG1lbW9yeSBvbiBjbG9zaW5nCgoyMDEwLTA2LTE2IDIxOjU2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG9zCgoyMDEwLTA2LTE2IDIxOjM0ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgYWdlbnQgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDIwOjE2ICBkdHMxMgoKICAgKiAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBsaWJyYXJ5IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxOTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb2xkZXIgbm8tbG9uZ2VyLW5lZWRlZC1kdXBsaWNhdGUtY29uZmlnIGVudHJpZXMKCjIwMTAtMDYtMTYgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRml4IHByb2Nlc3Npbmcgb2YgdmlldyBtYXNrcyAobWlzcGxhY2VkIHBhcmVudGhlc2VzKQoKMjAxMC0wNi0xNiAxODo0NSAgZHRzMTIKCiAgICogIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiBmcm9tIGFwcCBjb2RlCiAgIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHM6CgogICBjaGVjayBmb3IgaW5mb3JtcyBzZW50IG92ZXIgdGxzIHRyYW5zcG9ydHMKCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBvdGhlciB2YWx1c2UgZnJvbSBwYXJlbnQgdGxzYmFzZSBkYXRhCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBhZGRlZCBiYXNpYyB0cmFwIHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0ZXN0cwoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgdGVtcCBmaWxlIHRvdWNoZXMKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIG5ldyBmdW5jdGlvbiBhbmQgdHJhbnNwb3J0IGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGZfb3BlbgogICBjYWxsIGhhcyBiZWVuIGNhbGxlZCB5ZXQKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdW51c2VkIHZhciB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkZWQgdHJ1c3RDZXJ0IGNvbmZpZ3VyYXRpb24gdG9rZW4KCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIG1pbm9yIHR3ZWFrcyBmb3IgdGVzdGluZyBjbGFyaXR5CgoyMDEwLTA2LTE2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlOgoKICAgbW92ZWQgY29tcGxleCAoRClUTFMgdG8gYSBzZXBhcmF0ZSBzZWN0aW9uIGFuZCBtYWRlIHRoZSB0cmFuc3BvcnQKICAgdGVzdHMgb25seSB0ZXN0IG1pbmltYWwgc3VwcG9ydAoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZCBtZWNoYW5pc21zIGZvciBzcGVjaWZ5aW5nIGFuZCBleHBlY3RpbmcgdGhlIGhvc3RuYW1lIG9mIHRoZQogICBmYXIgc2lkZQoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRlc3RzIGZvciB2ZXJpZnlpbmcgc2VydmVyIGNlcnRpZmljYXRlIGNoZWNrIGZhaWx1cmVzCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICB0ZXN0aW5nIGZvciBjaGVja2luZyBjbGllbnQgc2lkZSB2ZXJpZmljYXRpb24gb2Ygc2VydmVyCiAgIGNlcnRpZmljYXRlcwoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGVjayB0byBtYWtlIHN1ZXIgc3NsIHBvaW50ZXIgaGFzIGJlZW4gY3JlYXRlZCB2aWEgZl9vcGVuIGNhbGwKCjIwMTAtMDYtMTYgMTU6MDIgIGR0czEyCgogICAqIGFnZW50L3NubXBfcGVybC5oLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVjbGFyZSAnc2h1dGRvd25fcGVybCcgcHJvcGVybHkuCgoyMDEwLTA2LTE2IDE0OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCB0eXBlIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiAgIHdhcm5pbmdzIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTQ6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIEVsaW1pbmF0ZSAidW51c2VkIHZhcmlhYmxlIiB3YXJuaW5nCgoyMDEwLTA2LTE2IDE0OjIyICBkdHMxMgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlIHZhcmlvdXMgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE2IDEzOjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhcHBzL3NubXB2YWNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgc2lnbmVkLXZzLXVuc2lnbmVkIHdhcm5pbmdzIGZyb20gbnVtZXJpYyBzY2FuZgogICBwcm9jZXNzaW5nIFstcGVkYW50aWNdCgoyMDEwLTA2LTE2IDAzOjI4ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdGhlIGdyZWF0IHVuLW5hbWVkIGNvbnRhaW5lciBodW50CgoyMDEwLTA2LTE2IDAzOjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBzaGFyZSBjYWNoZSBiZXR3ZWVuIHRhYmxlIGFuZCBjb3VudCBzY2FsYXI7IHdoZW4gcmVhZGluZyBjb25maWcsCiAgIGFkZCB0bwogICBsaWJyYXJ5IGNvbnRhaW5lcnMgZm9yIGFjdGl2ZSByb3dzLCB0YWJsZSBjb250YWluZXJzIGZvciBpbmFjdGl2ZQogICByb3dzOwogICB1c2VyIGNlcnRfdXRpbCBhcGlzIGluc3RlYWQgb2YgZGlyZWN0IGNvbnRhaW5lciBtYW5pcHVsYXRpb247CiAgIHdoZW4KICAgc2F2aW5nIGluYWN0aXZlIG1hcCByb3dzLCBza2lwIGFsbCBidXQgbm9uVm9sYXRpbGUKCjIwMTAtMDYtMTYgMDM6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGRlYnVnIHRva2VuIHR5cG8KCjIwMTAtMDYtMTYgMDM6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYXBpIGZvciBhZGRpbmcgZW50cmllcyB0byB0bHRzbSBhZGRyLCBwYXJhbXMgYW5kIGNlcnQgbWFwCiAgIGNvbnRhaW5lcnM7CiAgIHJlZ2lzdGVyIHNlIHNsaXN0IHBhaXIgZWFybGllciBzbyB0aGV5IGFyZSBhdmFpbGFibGUgZHVyaW5nCiAgIGNvbmZpZyBwYXJzaW5nOwogICBtYWtlIHN1cmUgY29uZmlnIHN0cmluZ3MgYXJlIG51bGwgdGVybWluYXRlZAoKMjAxMC0wNi0xNSAyMTo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3M6CiAgICdzdHJ1Y3Qgbmxtc2doZHIgZGVmaW5lZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QnIGFuZAogICAnZnVuY3Rpb24gX2xvYWRfdjYgZGVjbGFyZWQgYnV0IG5ldmVyIGRlZmluZWQnCgoyMDEwLTA2LTE1IDIxOjMwICBkdHMxMgoKICAgKiAgYWdlbnQva2VybmVsLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEVsaW1pbmF0ZSAiZW1wdHkgdHJhbnNsYXRpb24gdW5pdCIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTUgMDc6MDcgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwM2NvcHlfbndvcmRfY2xpYi5jOgoKICAgQWRkIHRlc3Qgb2YgY29weV9ud29yZAoKMjAxMC0wNi0xNCAyMTozMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIEVsaW1pbmF0ZSAib3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lvbiIgd2FybmluZ3MKICAgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTQgMTU6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBFbGltaW5hdGUgInN0cmluZyBsZW5ndGggZ3JlYXRlciB0aGFuIDUwOSIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMTU6MTkgIGR0czEyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlICJpbml0aWFsaXplciBlbGVtZW50IGlzIG5vdCBjb21wdXRhYmxlIiB3YXJuaW5ncwogICBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAwNToyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSBjb3VudCBoYW5kbGVycyB0byBjb3VudCBub24tYWN0aXZlIHJvd3MgdG9vCgoyMDEwLTA2LTE0IDA1OjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgb25seSB0d2VhayBzdG9yYWdlVHlwZSBmb3IgYWN0aXZlIHJvd3M7IHJlc2V0IGVudHJ5IGZsYWdzIHdoZW4KICAgcmVtb3ZpbmcgZnJvbQogICBjZXJ0X3V0aWwgbWFwczsgd2hlbiBjcmVhdGVpbmcgcm93cyBmcm9tIGNlcnRfdXRpbCBtYXBzLCBzZXQKICAgc3RyYWdldFR5cGUgdG8KICAgdm9sYXRpbGUgaWYgbm9uVm9sYXRpbGUgZmxhZyBub3Qgc2V0OyBkb250IGZyZWUgY2FjaGUgaW4KICAgY2FjaGVfbG9hZCBvbiBlcnIKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgbW92ZSB0bHN0bUFkZHIgdGFibGUgY29uZmlnIHBhcnNpbmcgdG8gY2VydF91dGlsOyBhZGQgY2FjaGUgdG8KICAgbWVyZ2UgY2VydF91dGlsCiAgIGFkZHJzIChhY3RpdmUpIGFuZCBub24tYWN0aXZlIHJvd3M7CgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIG5vblZvbGF0aWxlIGZsYWcgdG8gdGxzdG1BZGRyIHRhYmxlOyBzZXQgY29udGFpbmVyIG5hbWU7IHNraXAKICAgJzB4JyBpbiBmcAoKMjAxMC0wNi0xNCAwNTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIExPR19FUlIgdG8gTE9HX0lORk8gZm9yIG5vbi1lcnJvciBsb2cgbXNnCgoyMDEwLTA2LTEzIDIxOjAyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbQogICBNZkQtYmFzZWQgTUlCIG1vZHVsZSBjb2RlLCBhbmQgTWZEIHRlbXBsYXRlIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDIxOjMzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIChub24tTWZEKQogICBNSUIgbW9kdWxlIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDEwOjI2ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSBsaWJyYXJ5LAogICBhcHBzIGFuZCBhZ2VudCBmcmFtZXdvcmsraGVscGVycyBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMCAyMDowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGxvb2t1cCBjZXJ0IGtleXMgZm9yIHRscyBkb21haW5zOyB1c2UgU0VDX01PREVMIGRlZmluZSBpbnN0ZWFkIG9mCiAgIGhhcmRjb2RlZAogICBjb25zdGFudDsgYWRkIFNFQ19NT0RFTF9UU00gdG8gYWxsb3dlZCBzZWMgbW9kZWxzIGZvciBtcE1vZGVsCiAgIFNOTVBfVkVSU0lPTl8zCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZGVmYXVsdCB0byByZWFkT25seS9hY3RpdmUgZm9yIGJhZCBjb25maWcKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZCBkZWJ1Zzsgc3dpdGNoIHRvIFNFQ19NT0RFTF9UU00gYW5kIHdhcm4gaWYgb3RoZXIgc2VjbW9kZSBzZXQsCiAgIGluc3RlYWQKICAgb2Ygc2ltcGx5IGxvZ2dpbmcgdGhhdCBpdCB3b24ndCB3b3JrCgoyMDEwLTA2LTEwIDE5OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjaGVjayBwdHJzIGJlZm9yZSBkZXJlZmVyZW5jZQoKMjAxMC0wNi0xMCAxOTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcFRsc3RtQWRkclRhYmxlIGRhdGEgbWFuYWdlbWVudCB0byBjZXJ0X3V0aWw7IGltcGxlbWVudAogICBUQVJHRVRfQUREUgogICBhbmQgVEFSR0VUX1BBUkFNUyBsb29rdXAgaW4gY2VydCBBUEkKCjIwMTAtMDYtMTAgMTk6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1cGRhdGUgc2VjIG1vZGVsIGRlZmluZSBtaXNzZWQgaW4gZWFybGllciBjaGVja2luCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgY29uZmlnIHRyYXBzZXNzIHRyYW5zcG9ydHMgb24gY3JlYXRpb247IHNpbXBsaWZ5IGlmZGVmcyBmb3IKICAgRElTQUJMRV9TTk1QVjEKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcGtzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhdXRvIHN3aXRjaCB0byB2MyBmb3IgKGQpdGxzIHNlc3Npb25zIGluc3RlYWQgb2YgbG9nZ2luZyB0aGF0CiAgIG90aGVycyB3b250CiAgIHdvcms7IGRlZmluZSBUU00gc2VjIG1vZGVsIHdpdGggb3RoZXIgc2VjIG1vZGVsczsgY29uc2lzdGVudGx5CiAgIHVzZQogICBTTk1QX1NFQ19NT0RFTF8qIGluIHRoZSBjb2RlLCB1c2luZyAjZGVmaW5lcyBmb3IgYmFja3dhcmRzCiAgIGNvbXBhdGliaWxpdHkKICAgdy8qX1NFQ1VSSVRZX01PREVMCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydFRvVFNOOiBtb3ZlIG1pYiByZWxhdGVkIHBlcnNpc3RlbmNlIGJhY2sgaW50byBtaWIgbW9kdWxlOwogICBjZXJ0X3V0aWw6IGFkZCB0bHN0bVBhcmFtcyBwZXJzaXN0ZW5jZTsgdXNlIHNsaXN0IGZvciBjZXJ0IG1hcAogICB0eXBlIG5hbWUKICAgbWFwcGluZzsKCjIwMTAtMDYtMTAgMTk6NDUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcgKGNvbnN0KQoKMjAxMC0wNi0xMCAwNDo1OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQWRkIG1pc3NpbmcgaW5kZW50YXRpb24gb2YgYSBkby13aGlsZSBsb29wIHRvIG1ha2UgdGhlIGNvZGUKICAgcmVhZGFibGUuCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgY29tbWVudCBvdXQga2V5VXNhZ2Ugc28gcHJvcGVyIHNlbGYtc2lnbmVkIGNlcnRzIGFyZSBnZW5lcmF0ZWQKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc29saWRpZnkgY2VydGlmaWNhdGUgYWNjZXB0YW5jZSBmb3IgdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFycmF5IHR5cG8KCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb2cgb3BlbnNzbCBlcnJvcnMgb24gYWNjZXB0IGZhaWx1cmUKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlZ2lzdGVyIGRlZmF1bHQgcG9ydHMgZm9yIHRscy9kdGxzCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG8gcHJvcGVyIFNUT1JFIGxvYWRpbmcgb2YgdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgcmF0aGVyIHRoYW4gZmlsZQogICBiYXNlZCBsb2FkaW5nCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGRlZCB0d28gbmV3IEFQSXM6IG5ldHNubXBfY2VydF90cnVzdCBhbmQgbmV0c25tcF9jZXJ0X3RydXN0X2NhCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ3RscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ2R0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA4IDIxOjA1ICBtYWdmcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgYWdlbnRfcmVhZF9jb25maWcuaCBpbiA1LjYgYXMgd2VsbC4gSXQgZGlzYXBwZWFyZWQgaW4KICAgcjE4ODQzLgoKMjAxMC0wNi0wOCAwOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzoKCiAgIFJlbW92ZSAob3IgYWN0aXZhdGUpIHVudXNlZCB2YXJpYWJsZXMuCiAgIEZpeCBtaXNuYW1lZCBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCjIwMTAtMDYtMDggMDc6MTEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgQVBJIGNoYW5nZXMgZm9yIHByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzawogICBtb2R1bGUuCiAgIChPbWl0dGVkIGZyb20gcmV2aXNpb24gMTg5MzIgY2hlY2tpbikKCjIwMTAtMDYtMDggMDQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBtYWtlZmlsZSBmb3IgbW92ZWQgaGVscGVyIGhlYWRlcnMKCjIwMTAtMDYtMDcgMjA6MTggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFJldmVydGluZyByZXYuIDE3NjE2LCB0aGUgbmVjZXNzYXJ5IGNoZWNrIGlzIGFscmVhZHkgaW4gcmV2LgogICAxNzQxNS4KCjIwMTAtMDYtMDYgMDM6NDUgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHM6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW4gY2FzZSBleGVjX3ByZWZpeCBpcyB1bnNldCB0aGVuIHNldCBpdCB0bwogICAnJHtwcmVmaXh9JyBpbiBvcmRlciB0byBwaWNrIHVwIG92ZXJyaWRlcyBvZiAkcHJlZml4IGluIG1ha2UKICAgaW5zdGFsbC4KCjIwMTAtMDYtMDQgMDQ6MDYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkbyBhIGJldHRlciBqb2Igb2YgdmVyaWZ5aW5nIGZpbmdlcnByaW50cyBvZiByZW1vdGUgc2VydmVycwogICBwdWxsaW5nIGZpbmdlcnByaW50cyBmcm9tIGEgbnVtYmVyIG9mIHBvc3NpYmxlIHBsYWNlcwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIGdvIGFoZWFkIGFuZCBsb2cgb3V0cHV0IGZpbGUgZm9yIGVhc2llciBkZWJ1Z2dpbmcgaW4gZXJyb3JzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0eXBvCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgY29tbWVudCBhYm91dCByYW5kb20gYmVpbmcgaW5hZGVxdWF0ZTsgd2UncmUgZG9pbmcgdGhlCiAgIGJlc3Qgd2UgY2FuIGJhc2VkIG9uIHdoYXQgd2UgaGF2ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgYW5vdGhlciB1c2VyIGZvciB0ZXN0aW5nIHNubXBhcHAgZGVmYXVsdCBjZXJ0aWZpY2F0ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBydW4gYSBkZWZhdWx0IHRlc3Qgd2l0aG91dCBhIGxvY2FsIGtleSB0byBlbnN1cmUgdGhlIHNubXBhcHAgdHlwZQogICBpcyBwaWNrZWQgdXAKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBzcGVjaWFsIGNhc2UgZm9yIHRoZSBsb2NhbCBpZGVudGl0eSBhbmQgcHVsbCBpdCBmcm9tIGEKICAgZmlsZW5hbWUgb2YgdGhlIGluaXRfc25tcCgpIHJlZ2lzdGVyZWQgdHlwZSBuYW1lCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgZG9jIHVwZGF0ZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA1dW5peC50OgoKICAgdW5peCBzb2NrZXQgdGVzdAoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwM3VkcDYudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA0dGNwNi50OgoKICAgaXB2NiB0ZXN0cwoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIG1lbnRpb24gdGVzdCBuYW1lIGlzIElQdjQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBjaGVjayB0aGF0IHRyYW5zcG9ydCB3YXMgY29uZmlndXJlZAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGFkZCBzdXBwb3J0IGZvciBuZXQtc25tcC1jb25maWcuaCBjaGVja3MKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL05ldFNOTVBUZXN0VHJhbnNwb3J0LnBtLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBzb21lIGJhc2ljIHRyYW5zcG9ydCBjaGVja2luZyBmb3IgcGVybDogdWRwIGFuZCB0Y3AKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwsIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDAwMWJhc2ljLnQ6CgogICBiYXNpYyB0ZXN0cyBmb3IgcGVybAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGluZnJhc3RydWN0dXJlIG1vZHVsZSBmb3IgdGVzdGluZyBwZXJsIHN1cHBvcnQKCjIwMTAtMDYtMDMgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgUG9pbnQgTElCe0NVUlJFTlQsQUdFLFJFVklTSU9OfSBkb2N1bWVudGF0aW9uIHRvIHRoZSBjb3JyZWN0CiAgIGZpbGUuCiAgIFdhcm4gYWJvdXQgJ21ha2VkZXBlbmQnIHBpY2tpbmcgdXAgdGVzdGluZyBtb2R1bGUgY29kZS4KICAgRW1waGFzaXMgdXBkYXRlIG9mICdkb3dubG9hZC5odG1sJyBwYWdlCiAgIE1lbnRpb24gdXBkYXRlIG9mIE9mZmljaWFsIFBhdGNoZXMKICAgU3VwcHJlc3MgYnJva2VuIGNvbW1hbmRzCgoyMDEwLTA2LTAzIDE1OjE2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBQcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sgbW9kdWxlLgogICBFbnN1cmVzIGNvbnNpc3RlbnQgcmVwb3J0aW5nIGJldHdlZW4gVUNEIGFuZCBIb3N0UmVzIEZTeXMgdXNhZ2UKICAgYW5kIGV4dGVuZHMgJ3NraXBORlNJbkhvc3RSZXNvdXJjZXMnIGNvbmZpZyB0byBVQ0QgZGlzayBzdGF0cy4KCjIwMTAtMDYtMDMgMTU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jOgoKICAgRml4IGJyb2tlbiBzaXplIGNhbGN1bGF0aW9ucy4KICAgU3VwcG9ydCA2NC1iaXQgc2l6ZS91c2FnZSB2YWx1ZXMuCgoyMDEwLTA2LTAyIDE0OjUyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSAtLXdpdGgtY2EgaW5zdGVhZCBvZiAtLWNhCgoyMDEwLTA2LTAyIDE0OjUxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSB0aGUgbmV3IC1icmllZiBvcHRpb24gZm9yIGZpbmdlcnByaW50IGNhcHR1cmluZwoKMjAxMC0wNi0wMiAxNDo0MCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IC0td2l0aC1jYSBoYW5kbGluZywgZml4IENBIG5ld2NlcnRzIGJvb2trZWVwaW5nCgoyMDEwLTA2LTAyIDEwOjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gcGFyc2luZyBPSURzCiAgIGluIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDYtMDIgMDA6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY2hlY2sgdGhhdCBDQSBjZXJ0aWZpY2F0ZXMgY3JlYXRlZCBhZnRlciBzbm1wZCBzdGFydHMgYXJlIHN0aWxsCiAgIHVzYWJsZTsgY2hlY2sgYWxsIG91dHB1dCBmaW5nZXJwcmludHMgdG8gZW5zdXJlIHRoZXkgd2VyZQogICBwcm9wZXJseSBjcmVhdGVkCgoyMDEwLTA2LTAyIDAwOjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkIG1pc3NpbmcgZGlyZWN0b3J5IGFuZCBmaWxlIHN1ZmZpeCB0byBjYSBpbnZvY2F0aW9ucwoKMjAxMC0wNi0wMiAwMDoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY2hlY2sgdGhhdCBjZXJ0aWZpY2F0ZSBvdXRwdXQgZmluZ2VycHJpbnRzIHdlcmUgZm91bmQKCjIwMTAtMDYtMDIgMDA6MjAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICB0d28gbmV3IGZ1bmN0aW9ucyBmb3IgdmFsdWUgY29tcGFyaXNvbiB0ZXN0IG91dHB1dAoKMjAxMC0wNi0wMiAwMDoxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICByZW1vdmUgbm8tbG9uZ2VyLXVzZWQgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgdG9rZW4gc3BlY2lmaWVyICh3ZQogICByZXF1aXJlIGEgY29weSBvZiB0aGUga2V5KQoKMjAxMC0wNi0wMiAwMDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICAtIGNoYW5nZWQgJ2ZpbmdlcnByaW50JyB0b2tlbiB0byBtb3JlIGdlbmVyaWMgJ2lkZW50aXR5JyBrZXl3b3JkCiAgIC0gYWRkZWQgdGhlIGFiaWxpdHkgZm9yIG5ldHNubXBfY2VydF9maW5kIHRvIHRyeSBtdWx0aXBsZSB0eXBlcwogICAoRlAgJiBmaWxlKQogICAtIGFuZCBwcm92aWRlIHRlc3Qgc3VpdGUgdGVzdCBmb3IgaXQuCgoyMDEwLTA2LTAxIDIwOjEyICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgUGVybCBleHRlbnNpb24gbW9kdWxlcyBjYW4gbG9hZCB0aGUgTmV0LVNOTVAKICAgRExMcyB3aGlsZSBydW5uaW5nIHRoZSBOZXQtU05NUCByZWdyZXNzaW9uIHRlc3RzLgoKMjAxMC0wNi0wMSAxNjo0NyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWpvciB1cGRhdGUgYnVnIGZpeGVzIGFuZCBmZWF0dXJlcyAtIGludGVyYWN0aXZlIG1vZGUsIHNlcGFyYXRlCiAgIENBIGRpcnMsIGdlbiBjc3IgZnJvbSBjZXJ0LCBmaW5nZXJwcmludCBkaXNwbGF5IC0tYnJpZWYsCiAgIGVsaW1pbmF0ZSBzZWQsIG9wZW5zc2wuY29uZiBvdmVyd3JpdGUgYW5kIHRlbXBsYXRpbmcKCjIwMTAtMDYtMDEgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTA2LTAxIDE0OjI1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIElQLU1JQjo6aXBJZlN0YXRzUmVhc21SZXFkcyB2YWx1ZS4KICAgCiAgIEp1c3QgZml4aW5nIGEgc3R1cGlkIHR5cG8uCgoyMDEwLTA1LTMxIDEwOjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogZW5hYmxlZCBVbml4IHRyYW5zcG9ydC4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4NyBmcm9tIHRoZSBWNS41IGJyYW5jaCkuCgoyMDEwLTA1LTMwIDIyOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIHRvIHJ1biB3aXRoIG9sZGVyIFBlcmwgKGUuZy4gUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aAogICBJUklYCiAgIDYuNSkKCjIwMTAtMDUtMzAgMjI6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwb2xpc2ggZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0zMCAyMDoxOSAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW4sIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEbyBub3QgbGluayB3aXRoIGxpYm5ldHNubXBoZWxwZXJzIGFueSBtb3JlIGFzCiAgIGl0IGlzIGVtcHR5LgoKMjAxMC0wNS0zMCAxOToxOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9zbm1wLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgYSB2b2lkIGFyZ3VtZW50IGZvciB0aGUgZGF0YSBhcmd1bWVudCBvZgogICB4ZHVtcC4KCjIwMTAtMDUtMzAgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyMDUxNzQyOiBhZGRlZCBtaXNzaW5nIFBFUkxfU1lTX0lOSVQzKCkgY2FsbCAoc2VlCiAgIGFsc28gbWFuIHBlcmxlbWJlZCkuCgoyMDEwLTA1LTMwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZyZWUoKSBjYWxsZWQgd2l0aG91dCBiZWluZyBkZWNsYXJlZAogICBmaXJzdCkuCgoyMDEwLTA1LTMwIDE2OjU2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IERvIG5vdCByZXF1aXJlIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgaW5jbHVkZWQuCgoyMDEwLTA1LTMwIDEyOjAwICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4gUmVtb3ZlCiAgIHVubmVjZXNzYXJ5IGluY2x1ZGVzLgoKMjAxMC0wNS0zMCAwNjoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9kdW1teS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgbGlibmV0c25tcGhlbHBlcnMgaXMgbm90IGVtcHR5IHN1Y2ggdGhhdCBidWlsZGluZwogICBOZXQtU05NUCBvbiBBSVggYW5kIElSSVggaXMgYWdhaW4gcG9zc2libGUuCgoyMDEwLTA1LTI5IDA5OjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4OTAyOiB3b3JrcyBhZ2FpbiB3aXRob3V0IFRBUDo6SGFybmVzcy4KCjIwMTAtMDUtMjggMjM6MjMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IGxvbmctYWdvIGJyb2tlbiB2ZXJib3NpdHkKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IG1vcmUgcHJldmlvdXNseSBicm9rZW4gb3B0aW9uIHJlbmFtZXM7IGNoYW5nZSAtZCB0bwogICBtYXN0ZXItZGlyZWN0b3J5IGFuZCBhZGQgYXMgYSByZWFsIGFyZ3VtZW50CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICBtb3JlIG1pc3Npbmcgb2xkdWNkIHJlbmFtZXMKCjIwMTAtMDUtMjggMjI6NTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAKICAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICByZW5hbWVkICdvbGR1Y2QnIHRvICdzaW1wbGUnIHRvIHB1dCBhIG1vcmUgcG9zaXRpdmUgc3BpbiBvbiB0aGVtCgoyMDEwLTA1LTI4IDIyOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgdGVzdCBzdWl0ZQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHJldmVydCB1bmludGVudGlvbmFuYWxseSBjb21taXR0ZWQgdGVzdCB0ZXN0CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgZnJlZSB2YXJpYWJsZXMgYWdhaW4KCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa3Mgc28gdGhhdCBtdWx0aXBsZSB3YWxrcyB0ZXJtaW5hdGUgcHJvcGVybHkKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBwYXRjaCB0byBoYW5kbGUgdGVzdGluZyBvZiBsb29waW5nIG9mIG11bHRpcGxlIHZhcmJpbmRzIGluIGEgd2FsawoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGluaXRhbCBwYXRjaCB0byBwcmV2ZW50IGxvb3Bpbmcgd2Fsa3MKCjIwMTAtMDUtMjggMjA6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBpbXBsZW1lbnQgY2VydCBsb29rdXAgYnkgZmlsZW5hbWUKCjIwMTAtMDUtMjggMDc6MDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIGNvbnN0IGRlY2xhcmF0aW9ucyB0byB0aGUgZGlzYWJsZWQgdmVyc2lvbnMKICAgb2YgdGhlIGRlYnVnZ2luZyBjb2RlIGFzIHdlbGwuCgoyMDEwLTA1LTI4IDAyOjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYWRkIHBlcnNpc3RlbmNlOyBjaGVjayBmb3IgY29sIG1vZHMgd2hpbGUgcm93IGFjdGl2ZQoKMjAxMC0wNS0yOCAwMjoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBDSEFOR0VTOiBhZ2VudGxpYjogbmV3IGZ1bmN0aW9ucyB0byBtYWtlIHN0YXNoIHB0ciBhbmQgbmV3cm93CiAgIGF2YWlsYWJsZSB0bwogICB0YWJsZV9kYXRhc2V0IGhhbmRsZXJzCiAgIG5vbmV3czogZml4IHR5cG87IHRhYnMgdG8gc3BhY2VzOyB1c2Ugc2l6ZW9mIGluc3RlYWQgb2YgY29uc3RhbnQKCjIwMTAtMDUtMjcgMTg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcy4KCjIwMTAtMDUtMjcgMTg6MjQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgIm1ha2UgdGVzdCIgd2l0aG91dCBUQVA6Okhhcm5lc3MgKHdhcyBicm9rZW4gYnkgcjE4ODAyKS4KCjIwMTAtMDUtMjcgMTU6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuIE1vc3QgZml4ZXMgaW52b2x2ZWQgYWRkaW5nIHRoZQogICAiY29uc3QiIGtleXdvcmQuCgoyMDEwLTA1LTI3IDEzOjUyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5NzI1Nzk6IGZpeGVkIGNoZWNraW5nIG9mCiAgIHNubXBUYXJnZXRBZGRyUm93U3RhdHVzIFNFVCByZXF1ZXN0cy4KCjIwMTAtMDUtMjcgMTM6NDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgcmV2ZXJ0IHBhcnQgb2YgMTg4ODU6IHRlc3QgZmlsZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgcnVuIGJ5CiAgIHRoZW1zZWx2ZXMgdG9vCgoyMDEwLTA1LTI3IDExOjE5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogY29ycmVjdGx5IGNhbGN1bGF0ZSBpZlhUYWJsZS5pZkhDSW5VY2FzdFBrdHMgb24gMzItYml0CiAgIExpbnV4CiAgIAogICBMaW51eCBkb2VzIG5vdCBwcm92aWRlIHN0YW5kYWxvbmUgY291bnRlciBmb3IgaW5jb21pbmcgdW5pY2FzdAogICBwYWNrZXRzIChpdWNhc3QpCiAgIC0gaXQgcHJvdmlkZXMgY291bnRlciBvZiBhbGwgcGFja2V0cyAoaWFsbCkgKyBzZXBhcmF0ZSBjb3VudGVyCiAgIGZvciB0aGUgbXVsdGljYXN0CiAgIG9uZXMgKGltY2FzdCkuIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIG9mIGlmVGFibGUgcmVhZCB0aGVzZQogICBjb3VudGVycyBhbmQKICAgY2FsY3VsYXRlZCBpdWNhc3QgPSBpYWxsIC0gaW1jYXN0ICpiZWZvcmUqIHRoZXNlIHZhbHVlcyB3ZXJlCiAgIGV4cGFuZGVkIGludG8KICAgNjRiaXRzLiBUaGlzIHByb2R1Y2VkIGVycm9ycyBvbiAzMmJpdCBzeXN0ZW1zIHdoZW4gaWFsbAogICBvdmVyZmxvd2VkIHRvIHplcm8gYW5kCiAgIGltY2FzdCB3YXMgbm96ZXJvIC0+IGl1Y2FzdCBnb3QgbmVnYXRpdmUgYW5kICdjNjQgMzIgYml0IGNoZWNrCiAgIGZhaWxlZCcgZXJyb3IgaW4KICAgc25tcGQgbG9nLiBOb3cgdGhlIGFnZW50IGV4cGFuZHMgdGhlc2UgdmFsdWVzIHRvIDY0Yml0cyBmaXJzdCBhbmQKICAgKiAgICAgKnRoZW4qIHBlcmZvcm1zICAgIHRoZSBjYWxjdWxhdGlvbiwgdXNpbmcgYSBuZXcgZmxhZy4gCiAgICAgIDIwMTAtMDUtMjcgMDg6MTggIG1hZ2ZyCgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvUlVOVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNb3ZlIHRoZSBzZXR0aW5nIG9mIE1JQkRJUlMgZnJvbSB0aGUgc3VwcG9ydAogICBzY3JpcHQgdG8gdGhlIGRyaXZlcnMgc2luY2UgaXQgaXMgbmVlZGVkIGZvciB0aGUgQyB0ZXN0cyBhcyB3ZWxsLgoKMjAxMC0wNS0yNyAwODowOSAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFVzZSBvbGR1Y2RfcnVuLCBub3QgcnVuX29sZHVjZC4gQ2hhbmdlIHNyY2RpcgogICB0byByZWZlciB0byB0aGUgdG9wIGRpcmVjdG9yeSBhbmQgbm90IHRoZSB0ZXN0aW5nIHN1YmRpcmVjdG9yeSBhcwogICB0aGF0IGlzIHdoYXQgaXMgZXhwZWN0ZWQgaW4gdGhlIHRlc3Qgc2NyaXB0cy4KCjIwMTAtMDUtMjcgMDU6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI3IDA1OjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCBzbm1wbGliL2tleXRvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIG1vcmUgY29uc3QgY29ycmVjdG5lc3MKCjIwMTAtMDUtMjcgMDQ6MTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdHMgZm9yIGFnZW50LW5vdC1rbm93bi11c2VyLWNlcnRpZmljYXRlcwoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHJlZmVyZW5jZSB0aGUgaXRuZXJuYWwgc3VwcG9ydCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2wvT1BFTlNTTC1MSUNFTlNFLCBzbm1wbGliL29wZW5zc2wvUkVBRE1FOgoKICAgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBORVdTOiBsaWJuZXRzbm1wOiBTdXBwb3J0IGZvciBhIHN0cmVhbS1saW5lIHN0cmlwcGVkIGRvd24gdmVyc2lvbgogICBvZiBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgdXNpbmcgLS13aXRoLW9wZW5zc2w9aW50ZXJuYWwKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIAogICAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBtb3JlIGRlcGVuZGVuY2llcyBmb3IgZXh0ZXJuYWwgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9vcGVuc3NsLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jb3JlLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1X2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhLmgsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBtb3ZlIG9wZW5zc2wgY29kZSBpbnRvIGEgc3ViZGlyZWN0b3J5CgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZDoKCiAgIGZpeCB0ZXN0aW5nIHNvIGl0IHVzZXMgbXVsdGlwbGUgdHlwZXMgb2YgY3J5cHRvCgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluaXRpb25zIGFuZCBmaWxlcyBmb3IgZG9pbmcgaW50ZXJuYWwgY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGluY2x1ZGUgaW50ZXJuYWwgYWVzL2RlcyBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaDoKCiAgIGluaXRhbCBjb3BpZXMgb2YgY2ZiMTI4IG1vZGVzIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMgb2YgYWVzX2NvcmUuYyBhbmQgYWVzX2xvY2wuaAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmg6CgogICBpbml0aWFsIGNvcHkgb2YgYWVzLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jOgoKICAgaW5pdGlhbCBjb3B5IG9mIHRoZSBvcGVuc3NsIGFlc19jZmIuYyBmaWxlCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgaW5jbHVkZSBsb2NhbGl6ZWQgY29waWVzIG9mIHRoZSBmaWxlcwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXNlIGludGVybmFsIERFUwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYzoKCiAgIGxvY2FsaXplZCBjb3B5IG9mIHRoZSBjYmNfZW5jLmMgZmlsZSBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIGRlcy9zcHIuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBhZGRlZCBkZXNfZW5jLmMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX21kNS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9zaGEuaDoKCiAgIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBvcGVuc3NsJ3MgZGVzLmgKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgbG9jYWxpemVkIGhlYWRlciBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBpbml0YWwgY29waWVzIG9mIHNvbWUgb2YgdGhlIG9wZW5zc2wgREVTIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpbmlzaGluZyBwb3J0aW5nIG9mIGludGVybmFsIGF1dGggc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBpbnRlcm5hbCBjcnlwdG8gZmlsZXMgdG8gdGhlIGNoZWNrL3VzZSBsaXN0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBsb2NhbGl6ZWQgZmlsZSBuYW1lcyB3aXRoIG9wZW5zc2wgcHJlZml4ZXMKCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNS5jOgoKICAgbG9jYWxpemUgdGhlIG1kNSBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgY29tcGxldGVseSBsb2NhbGl6ZSB0aGUgb3BlbnNzbCBTSEEgc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3NoYS5oOgoKICAgaW5pdGlhbCB2ZXJpc29uIG9mIHNoYS5oIGNvcHkKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAKICAgICAgICBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBhZGRlZCBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgY3J5cHRvIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgbWFrZSB1c2Ugb2YgaW50ZXJuYWwgY3J5cHRvIGhhc2ggZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGludGVybmFsLWNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI2IDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcHJvcGVybHkgdmVyaWZ5IGV4cGVjdGVkIHNlcnZlciBjZXJ0aWZpY2F0ZXMgdW5kZXIgRFRMUzsgYWRkIGEKICAgbmV3IGZsYWcgaW4gdGxzYmFzZSB0byBpbmRpY2F0ZSB2ZXJpZmljYXRpb24gaGFzIG9jY3VycmVkCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBjb21waWxlciB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogICBhZGQgY29uc3QgcXVhbGlmaWVycyB0byBhIGZldyBwbGFjZXMKCjIwMTAtMDUtMjYgMTk6NDYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcG1pYnMsIGxpYm5ldHNubXBoZWxwZXJzIGFuZAogICBsaWJuZXRzbm1wYWdlbnQgZG8gbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4gY29uZmlndXJlZCB3aXRoCiAgIC0tZW5hYmxlLXNoYXJlZC4KCjIwMTAtMDUtMjYgMTc6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgTkVXUzogbW92ZWQgYWxsIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGxpYm5ldHNubXBoZWxwZXJzIHRvCiAgIGxpYm5ldHNubXBhZ2VudC4gbGlibmV0c25tcGhlbHBlcnMgaXMgbm93IGFuIGVtcHR5IGxpYnJhcnkuCgoyMDEwLTA1LTI2IDE3OjIwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4ODI5IGluIG9yZGVyIHRvIG1pbmltaXplIGRpZmZzIHdpdGggb2xkZXIgYnJhbmNoZXMuCgoyMDEwLTA1LTI1IDA3OjIzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBUZWxsIG5ldC1zbm1wLWNlcnQgd2hlcmUgbmV0LXNubXAtY29uZmlnIGlzIGxvY2F0ZWQKCjIwMTAtMDUtMjUgMDc6MTQgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENvcnJlY3QgdGhlIHNpZ25hdHVyZSBvZiBtYWluLiBVc2UgI2luY2x1ZGUgaW5zdGVhZCBvZiBzb3VyY2luZwogICB0byBnZXQgdGhlIGNvZGUgdW5kZXIgdGVzdCBpbiBvcmRlciB0byBnZXQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzCgoyMDEwLTA1LTI1IDA3OjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgQWRkIGFyZ3VtZW50cyB0byBzcHJpbnRmIHN0YXRlbWVudHMgdG8gbWFrZSB0aGUgdGVzdCB3b3JrCgoyMDEwLTA1LTI1IDA3OjA3ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgZGlzYWJsZWQgY29kZQoKMjAxMC0wNS0yNSAwNToyMCAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBTcGxpdCBzbm1wSVBCYXNlRG9tYWluIGFuZCBtb3ZlIHRoZSBJUHY0IHBhcnRzCiAgIHRvIElQdjRCYXNlIGFuZCB0aGUgc29ja2V0IGdlbmVyaWMgcGFydHMgdG8gU29ja2V0QmFzZS4KCjIwMTAtMDUtMjQgMjA6MjQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaW5pc2ggdGxzdG1QYXJhbXNUYWJsZSBsYXN0Q2hhbmdlZCBzY2FsYXIKCjIwMTAtMDUtMjQgMTk6MjggIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIEFkZCAtLWV4dGVybmFsLWxpYnMgaW4gb3JkZXIgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGVzdHMgb24KICAgc29sYXJpcwoKMjAxMC0wNS0yNCAxMzozMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYXJnaC4uIGZpeCBmYWxsb3V0IGZyb20gbWFudWFsbHkgKG1pcylhcHBseWluZyBwYXRjaAoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBmaXJzdCBwYXNzIGF0IHRsc3RtUGFyYW1zVGFibGUKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgZGVmaW5lcyB0byBtYXRjaCBNSUIgbmFtZXMsIHBlciBncmFuZC1wb29iYWgKCjIwMTAtMDUtMjQgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmM6CgogICB1cGRhdGUgT0lEIHRvIG1hdGNoIHVwY29taW5nIFJGQwoKMjAxMC0wNS0yNCAxMTo0OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXBhZ2VudCwgbGlibmV0c25tcGhlbHBlcnM6IG1vdmVkIHRoZSBmdW5jdGlvbnMKICAgbmV0c25tcF9idWxrX3RvX25leHRfZml4X3JlcXVlc3RzKCksCiAgIG5ldHNubXBfZ2V0X2J1bGtfdG9fbmV4dF9oYW5kbGVyKCksIG5ldHNubXBfcmVnaXN0ZXJfbnVsbCgpLAogICBuZXRzbm1wX3JlZ2lzdGVyX251bGxfY29udGV4dCgpIGFuZCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQogICBmcm9tIGxpYm5ldHNubXBoZWxwZXJzIHRvIGxpYm5ldHNubXBhZ2VudC4KICAgTm90ZXM6CiAgIC0gVGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcGxpY2F0aW9ucwogICB0aGF0IGxpbmsgd2l0aCAkKG5ldC1zbm1wLWNvbmZpZyAtLWFnZW50LWxpYnMpIHNpbmNlIHRoaXMKICAgaW52b2x2ZXMgbGlua2luZyB3aXRoIGJvdGggbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudC4KICAgLSBGdW5jdGlvbnMgaGF2ZSBiZWVuIG1vdmVkIGJldHdlZW4gbGlicmFyaWVzIGJ5IG1vdmluZyBlbnRpcmUKICAgc291cmNlIGZpbGVzLgoKMjAxMC0wNS0yNCAxMDoxMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBVc2UgcHJvcGVyIHN0cmluZyBzaXplcyBhbmQgbWFrZSBzdXJlIHN0cmluZ3MgYXJlCiAgIHplcm8tdGVybWluYXRlZC4KCjIwMTAtMDUtMjQgMDg6MDEgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgbmV0LXNubXAtY29uZmlnLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wIGRvZXMgbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4KICAgY29uZmlndXJlZCB3aXRoIC0tZW5hYmxlLXNoYXJlZC4KICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsIG1vZHVsZXMgZG8gbm93IGJ1aWxkICgtLXdpdGgtcGVybC1tb2R1bGVzKS4KICAgTm90ZTogdGhlIFQwNjB0cmFwZHBlcmxfb2xkdWNkLCBUMDYxYWdlbnRwZXJsX29sZHVjZCBhbmQKICAgVDExNWFnZW50eHBlcmxfb2xkdWNkIHRlc3RzIHN0aWxsIGZhaWwuCgoyMDEwLTA1LTIzIDIzOjA2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVwZGF0ZSBmaWxlbmFtZXMvcGF0c2ggZm9yIHJlY2VudCBmaWxlIHJlbmFtZXM7IGZpeCB0eXBvcwoKMjAxMC0wNS0yMyAyMjowOCAgbWFnZnIKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIHRoZSBzYW1lIGNvbXBpbGVyIGNvbW1hbmQgYW5kIGZsYWdzIGZvcgogICBidWlsZGluZyBvZiB0ZXN0cyBhcyBmb3IgYnVpbGRpbmcgb2YgdGhlIGNvZGUsIHRodXMgZW5hYmxpbmcgdGVzdAogICBvZiBlLmcuIDMyLWJpdCBjb2RlIGNvbXBpbGVkIG9uIGEgNjQtYml0IHBsYXRmb3JtLgoKMjAxMC0wNS0yMyAyMTo0MSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBpbmNsdWRlL2NvbmZpZyBmaWxlL3BhdGhzIGZvciByZWNlbnQgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMTozMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgcmVuYW1lIGZpbGVzIGZvciBNSUIgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMToyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGU6CgogICByZW5hbWUgZGlyZWN0b3JpZXMgdG8gbWF0Y2ggcmVuYW1lcyBpbiBNSUIKCjIwMTAtMDUtMjAgMDg6NDggIGJ2YXNzY2hlCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN3YXBwZWQgbGluayBvcmRlciBvZiAtbG5ldHNubXBoZWxwZXJzIC1sbmV0c25tcG1pYnM6IG5ldHNubXBtaWJzCiAgIGRlcGVuZHMgb24gbmV0c25tcGhlbHBlcnMgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTAtMDUtMjAgMDg6NDIgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xOSAxODoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2hpbmcKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBvdXRwdXQgZmlsZW5hbWVzIG9mIGZhaWxlZCB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICB3aXBlIHRyYWlsaW5nIGNvbW1lbnQgQyBtYXJrZXIgaWYgaXQgZXhpc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHRpdGxlIHRoZSBTTk1QdjMgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRlc3Rpbmcgb2YgYnVpbHQgdGl0bGVzCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG9ubHkgcHJpbnQgZmFpbHVyZSBoZWFkZXIgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9uZQoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2Q6CgogICBtYWtlIGRlc2NyaXB0aXZlIHRpdGxlcyB3b3JrIGFnYWluCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICByZW5hbWUgZmlsZXMgc28gcHJlZml4aW5nIGlzIGJhc2VkIG9uIHRoZSBzdWl0ZSBuYW1lLCBub3QgZmlsZQogICB0eXBlCgoyMDEwLTA1LTE5IDE3OjUyICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuc3Vicy5wbCwgICAKICAgICAgcGVybC9PSUQvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmw6IGJ1aWxkaW5nIHRoZSBQZXJsIG1vZHVsZXMgd2l0aCB0aGUgQ3lnd2luCiAgIFBlcmwgcGFja2FnZSBpcyBub3cgcG9zc2libGUuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODggZnJvbSB0aGUgVjUuNSBicmFuY2guKQoKMjAxMC0wNS0xOSAxNzo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTkgMTI6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpcnN0LWRyYWZ0IHN1cHBvcnQgZm9yIEFJWCBmaWxlc3lzdGVtIEhBTCBtb2R1bGUgKHVudGVzdGVkKQoKMjAxMC0wNS0xOSAxMToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgU3VwcG9ydCBmb3IgU29sYXJpcy1zdHlsZSAnZ2V0bW50ZW50JyBBUEkuCgoyMDEwLTA1LTE5IDA5OjU3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBTaW1wbGlmeSB0aGUgaGFuZGxpbmcgb2YgdW5rbm93bi91bndhbnRlZCBmaWxlIHN5c3RlbXMuCgoyMDEwLTA1LTE5IDA5OjMwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgRml4IG1pc3NpbmcvYnJva2VuIEFQSSBkZWNsYXJhdGlvbnMuCgoyMDEwLTA1LTE5IDA4OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBNYWRlIGVycm9yIG1lc3NhZ2VzIG1vcmUgY2xlYXIgaW4gY2FzZSBvZiBmYWlsdXJlIG9yIHdyb25nCiAgIGludm9jYXRpb24uCgoyMDEwLTA1LTE5IDAwOjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3QgZm9yIHVzaW5nIGEgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IGEgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDUtMTggMjM6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSB3ZSBjYWxsIHRoZSByaWdodCBQZXJsCgoyMDEwLTA1LTE4IDIwOjM5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaW5jbHVkZSBsb2NhbCBwb3J0IG51bWJlciBpbiBwYWNrZXQgZHVtcHMuIEFuCiAgIGV4YW1wbGU6CiAgIAogICBSZWNlaXZlZCAzNiBieXRlIHBhY2tldCBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgMjIgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTEgMTUgMDIKICAgMCIuLi4uLnB1YmxpYy4uLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCAwNyAzMCAwNSAwNgogICAuNy4uLi4uLi4uLjAuMC4uCiAgIDAwMzI6IDAxIDAxIDA1IDAwIC4uLi4KICAgCiAgIFJlY2VpdmVkIFNOTVAgcGFja2V0KHMpIGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICBHRVRORVhUIG1lc3NhZ2UKICAgLS0gY2NpdHQuMQogICAKICAgU2VuZGluZyAxMTggYnl0ZXMgdG8gVURQOiBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCA3NCAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMiA2NyAwMgogICAwdC4uLi4ucHVibGljLmcuCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDU5IDMwIDU3IDA2CiAgIC43Li4uLi4uLi4uMFkwVy4KICAgMDAzMjogMDggMkIgMDYgMDEgMDIgMDEgMDEgMDEgMDAgMDQgNEIgNEMgNjkgNkUgNzUgNzgKICAgLisuLi4uLi4uLktMaW51eAogICAwMDQ4OiAyMCA2MSA3MyA3NSA3MyAyMCAzMiAyRSAzNiAyRSAzMyAzMyAyRSAzMiAyRCA3MyBhc3VzCiAgIDIuNi4zMy4yLXMKICAgMDA2NDogNjMgNzMgNzQgMjAgMjMgMzEgMjAgNTMgNEQgNTAgMjAgNTAgNTIgNDUgNDUgNEQgY3N0ICMxIFNNUAogICBQUkVFTQogICAwMDgwOiA1MCA1NCAyMCA1MyA2MSA3NCAyMCA0MSA3MCA3MiAyMCAzMyAyMCAzMiAzMSAzQSBQVCBTYXQgQXByCiAgIDMgMjE6CiAgIDAwOTY6IDMxIDMwIDNBIDM1IDM4IDIwIDQzIDQ1IDUzIDU0IDIwIDMyIDMwIDMxIDMwIDIwIDEwOjU4IENFU1QKICAgMjAxMAogICAwMTEyOiA3OCAzOCAzNiA1RiAzNiAzNCB4ODZfNjQKCjIwMTAtMDUtMTggMTk6NDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1BZGRyVGFibGUKICAgLSBkZWFsIHdpdGggaGFzaCB0eXBlIHByb3Blcmx5IGZvciBnZXQvc2V0IGFuZCBwZXJzaXN0ZW5jZQogICAtIGFkZCBjb3VudCBhbmQgbGFzdCBjaGFuZ2VkIHNjYWxhcnMKCjIwMTAtMDUtMTggMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2FsIE9JRCBmcm9tIHVwY29taW5nIHJmYwoKMjAxMC0wNS0xOCAxNjoxNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljaWFsIE9JRHMgZnJvbSB1cGNvbWluZyBSRkM7IGFkZCBjb3VudC9sYXN0IGNoYW5nZWQKICAgc2NhbGFycwoKMjAxMC0wNS0xOCAxNDo1NiAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIwMDE2NTY6IEhhbmRsZSBudWxsLXRlcm1pbmF0aW9uIG9mCiAgIHN0cmluZyB2YWx1ZXMgcHJvcGVybHkuCiAgIEJhc2VkIG9uIHRoZSBwcmluY2lwbGVzIG9mIHRoZSBwYXRjaCBmcm9tIFRvbW15IEJlYWRsZS4KCjIwMTAtMDUtMTggMTQ6MzggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFdvcmtpbmcoPykgSEFMLWJhc2VkIHZlcnNpb24gb2YgaHJGU1RhYmxlLgoKMjAxMC0wNS0xOCAxNDoxMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xNyAyMTowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICB1c2UgcHJvcGVyIFRTTSBzZWN1cml0eSBjb2RlICg0KSBub3cgdGhhdCBpdCdzIG9mZmljaWFsCgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIGJlZ2lubmluZyBvZiBhIGNvbnRhaW5lciB1bml0IHRlc3QKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXN0aW5nLmg6CgogICBhIGJhc2ljIEMtY29kZSBiYXNlZCB0ZXN0IHJlcG9ydGluZyBtZWNoYW5pc20KCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgYmFzaWMgZGVmYXVsdF9zdG9yZSB0ZXN0cwoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliOgoKICAgYSBidWlsZCBzeXN0ZW0gZm9yIGJhc2ljIGxpYm5ldHNubXAgdGVzdHMKCjIwMTAtMDUtMTcgMTg6MTQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBmaXggZmluZ2VycHJpbnQgYmluL2hleCBjb252ZXJzaW9uOyBhZGQvcmVtb3ZlIGNlcnQgc2VjIG1hcHMgdmlhCiAgIG1pYiBub3cgd29ya3MKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmluYXJ5X3RvX2hleAoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZnByaW50ZihzdGRlcnIgLT4gREVCVUdNU0dUTCgoCgoyMDEwLTA1LTE3IDE4OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgY2hlY2sgZm9yIGhhc2ggdHlwZQoKMjAxMC0wNS0xNyAxNjozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIG1ha2UgUlVOVEVTVFMgd29yayBvdXRzaWRlIHRoZSBzb3VyY2VkaXIKCjIwMTAtMDUtMTcgMTU6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWRlIGEgbGltaXRlZCBydW4gdGVzdCBwb3NzaWJsZSBhZ2FpbiB3aXRob3V0IHBlcmwKCjIwMTAtMDUtMTcgMTU6MzIgIGR0czEyCgogICAqICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFVzZSBuZXdlciBEaXNNYW4gRXZlbnQgTUlCIGNvZGUgZm9yIE1TVkMtYmFzZWQgYnVpbGRzCiAgIChpbiBsaW5lIHdpdGggYWxsIGNvbmZpZ3VyZS1iYXNlZCBidWlsZHMpCgoyMDEwLTA1LTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGhlIHJldHVybiBvdXRzaWRlIHRoZSBpZiBzdGF0ZW1lbnQKCjIwMTAtMDUtMTcgMTU6MTggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBQcm92aWRlIG1pc3NpbmcgcHVibGljIGludGVyZmFjZSB0byBIQUwtYmFzZWQgZmlsZXN0b3JlIG1vZHVsZS4KCjIwMTAtMDUtMTcgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzU0IChyZXZlcnQgcjE4NzM4KTogcjE4NzU0IG9ubHkgcGFydGlhbGx5CiAgIHJldmVydGVkIHIxODczOAogICBhbmQgaGVuY2UgYnJva2UgdGhlIFdpbjMyLWJ1aWxkLiBGaW5pc2hlZCByZXZlcnNhbCBvZiByMTg3MzggYnkKICAgcmVzdG9yaW5nCiAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KCjIwMTAtMDUtMTYgMTg6MTcgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzI2OiBvbmx5IHBhc3MgLWZzdGFjay1wcm90ZWN0b3IqIGZsYWdzIHRvIHRoZQogICBsaW5rZXIgaW5zdGVhZCBvZiBhbGwgLWYqIGZsYWdzIHN1Y2ggdGhhdCBpdCBiZWNvbWVzIGxlc3MgbGlrZWx5CiAgIHRoYXQgdGhpcyBtb2RpZmljYXRpb24gY2F1c2VzIHRyb3VibGUgd2l0aCBub24tR05VIHRvb2xjaGFpbnMuCgoyMDEwLTA1LTE2IDE4OjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSBzaGVsbCBjb2RlIGZvciBjb252ZXJ0aW5nIGEgcmVsYXRpdmUgcGF0aCB0byBhbiBhYnNvbHV0ZQogICBwYXRoIG1vcmUKICAgcm9idXN0IGFuZCBjb252ZXJ0ZWQgIiR7Li4uIy4uLn0iIGNvbnN0cnVjdCBpbnRvIGVjaG8gKyBjdXQuCgoyMDEwLTA1LTE2IDE4OjEyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIE1vcmUgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgdG8KICAgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFIHN1YnN0aXR1dGlvbnMsIG5lY2Vzc2FyeSB0byBtYWtlCiAgIHRlc3QgMDU5IGFuZCAwNjUgcGFzcy4KCjIwMTAtMDUtMTYgMTc6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBmaXggdGVzdHMgZm9yIGNoZWNraW5nIHNodXRkb3duIG9mIGFwcGxpY2F0aW9ucyB0byBub3QgcmVwb3J0CiAgIGZhbHNlIG5lZ2F0aXZlcwoKMjAxMC0wNS0xNiAxMjoxNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgdGVzdCBUMDU5IHBhc3MgYWdhaW4uIFRoaXMgdGVzdCB3YXMgcmVjZW50bHkgYnJva2VuIGJ5CiAgIHBhc3NpbmcgYXJndW1lbnRzIHRvIGl0IHdpdGggYWJzb2x1dGUgcGF0aHMgaW5zdGVhZCBvZiByZWxhdGl2ZQogICBwYXRocy4KCjIwMTAtMDUtMTYgMTI6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZDoKCiAgIEFkZGVkICdTS0lQSUZOT1QgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFJy4KCjIwMTAtMDUtMTYgMTE6NDIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNiAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhcHBzL3NzaHRvc25tcC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiBvbGQgY29kZS4KCjIwMTAtMDUtMTYgMDk6NTkgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZG9uJ3QgdHJpZ2dlciBhIG5ldHNubXBfYXNzZXJ0KCkgd2hlbgogICBubyBleHRlbnNpb24gRExMcyBoYXZlIGJlZW4gbG9hZGVkLgoKMjAxMC0wNS0xNSAxNzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN0b3AtZ2FwIGZpeCB0byB1bmJyZWFrICJtYWtlIHRlc3QiIGZvciB0aGUgbmlnaHRseSBidWlsZHMKCjIwMTAtMDUtMTUgMTA6NTkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFJldmVydGVkIHIxODcyNyBiZWNhdXNlIGl0IGNhdXNlZCBidWlsZCBlcnJvcnMgb24gU29sYXJpcywgQUlYCiAgIGFuZCBIUC1VWC4KCjIwMTAtMDUtMTUgMDA6NDIgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsOgoKICAgcmV2ZXJ0IHIxODczOCBzaW5jZSBuZXcgdHJhbnNwb3J0IHJlcXVpcmUgZHluYW1pY2x5IGJ1aWx0IGhlYWRlcgogICBmaWxlcwoKMjAxMC0wNS0xNSAwMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGxvZyBlbnYgdmFyaWFibGVzIHVzZWQgdG8gdGhlIGludm9rZWQgZmlsZQoKMjAxMC0wNS0xNCAyMToyOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZml4IHNjcmlwdCBzbyBpdCBjYW4gYmUgaW52b2tlZCBvdXRzaWRlIHRoZSB0ZXN0IGVudmlyb25tZW50CiAgIGFnYWluCgoyMDEwLTA1LTE0IDIxOjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICBhZGRlZCB0aGUgU05NUC1UTFMtVE0tTUlCIHdpdGggZmluYWwgSUFOQSBhc3NpZ25tZW50IHNsb3RzCgoyMDEwLTA1LTE0IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIFRTTSBwcmVmaXhlcwoKMjAxMC0wNS0xNCAyMToyNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgRG9tYWluIG51bWJlcnMKCjIwMTAtMDUtMTQgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXQgZGVmYXVsdCB2ZXJzaW9uIGFuZCBzZWNsZXZlbCBpZiB0bHMvZHRscwoKMjAxMC0wNS0xNCAxNToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgcmMgZnJvbSBzZWNuYW1lIG1hcHBpbmc7IGNsYXJpZnkgY29tbWVudAoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCB1c2UgdW5zb3J0ZWQgY29udGFpbmVyOyBkb24ndCBmcmVlIGNhbGxlcidzIGNvbnRhaW5lcgoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGxpbmVhcl9zZWFyY2ggZm9yIHVuc29ydGVkIGNvbnRhaW5lcnMKCjIwMTAtMDUtMTQgMTE6NTYgIGJ2YXNzY2hlCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBieSByZW1vdmluZyB0aGUgZ2VuZXJhdGVkIGZpbGUKICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCiAgIENvbW1lbnRlZCBvdXQgdGhlIGNvZGUgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZm9yIGdlbmVyYXRpbmcKICAgdGhpcyBoZWFkZXIgZmlsZS4KICAgQWRkZWQgY29uZmlndXJlLXRpbWUgY29kZSBmb3IgY2hlY2tpbmcgd2hldGhlciB0aGUgY29uc3RydWN0b3JzCiAgIGZvciBhbGwgY29uZmlndXJlZAogICB0cmFuc3BvcnRzIGFyZSBpbnZva2VkIGZyb20gc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLgoKMjAxMC0wNS0xNCAxMTowMCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbjogdXBkYXRlZCBDeWd3aW4gYnVpbGQgaW5zdHJ1Y3Rpb25zLgoKMjAxMC0wNS0xNCAwOToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgIAogICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE0IDA4OjUwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBBZGRlZCAtbm8tdW5kZWZpbmVkIGZsYWcgdG8gbGlicmFyeSBsaW5rIGNvbW1hbmRzIHN1Y2ggdGhhdAogICBsaWJ0b29sIGNhbiBidWlsZCBETExzIG9uIFdpbjMyLgogICBOb3RlOiBidWlsZGluZyBETExzIG9uIFdpbjMyIGRvZXMgbm90IHlldCB3b3JrIGJlY2F1c2Ugb2YgdGhlCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbgogICBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50CiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy93aWtpL2luZGV4LnBocC9MaWJyYXJ5X2xheWVyaW5nKS4KCjIwMTAtMDUtMTQgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIGxpYnRvb2wgYnVnIGZpeDogYWxzbyBwYXNzIGZsYWdzIHN0YXJ0aW5nIHdpdGggLWYgdG8gdGhlIGxpbmtlcgogICBzaW5jZSB0aGVzZSBjYW4gYWZmZWN0IGxpbmtpbmcuIFRoZSBmbGFnIC1mc3RhY2stcHJvdGVjdG9yIGUuZy4KICAgdHJpZ2dlcnMgaW5jbHVzaW9uIG9mIGxpYnNzcC4KCjIwMTAtMDUtMTQgMDg6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFib3J0IGlmIHRoZSBmaWxlIHByb2dyYW0gY291bGQgbm90IGJlIGZvdW5kLAogICBzaW5jZSB0aGlzIGlzIGVzc2VudGlhbCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBsaWJ0b29sLgogICBDSEFOR0VTOiBDeWd3aW46IG5laXRoZXIgY29tcGlsZSBub3IgbGluayB3aW5waXBlLmMuCgoyMDEwLTA1LTEzIDA4OjU4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSYW4gYXV0b3JlY29uZi4KCjIwMTAtMDUtMTIgMjA6MTYgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBMaW51eDogYnVpbGRzIGFnYWluIHdpdGggZW1iZWRkZWQgUGVybCBkaXNhYmxlZCAoYnVnCiAgIDI5ODU5MTUpLgoKMjAxMC0wNS0xMiAxOTo0NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgRm9sbG93LXVwIGZvciByMTg2ODQ6IHVuLWJyZWFrIHRoZSBXaW4zMiBNU1ZDIGJ1aWxkLgoKMjAxMC0wNS0xMiAxOTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgV2luMzI6IGZpeGVkIGEgdHlwbyBhbmQgbWFkZSBpbmRlbnRhdGlvbiBjb25zaXN0ZW50LgoKMjAxMC0wNS0xMiAxOToxMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjb25zdHJ1Y3QgdGVtcCBidWlsZCBmaWxlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeQoKMjAxMC0wNS0xMiAxOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggcmVjZW50bHkgYnJva2VuIG9sZCBwZXJsIGZ1bmN0aW9uYWxpdHkKCjIwMTAtMDUtMTIgMTg6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhIC0tc2hvcnQgb3B0aW9uIHRvIHNob3J0ZW4gdGhlIHNob3cgb3V0cHV0IHRvIG1pbmltYWxpc3RpYwoKMjAxMC0wNS0xMiAxNDoxNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIuCgoyMDEwLTA1LTEyIDEzOjAyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBtZW1vcnkgbGVhayB3aGVuIHJlYWRpbmcgc2Vuc29ycyBmb3IKICAgTE0tU0VOU09SUy1NSUIuCgoyMDEwLTA1LTEyIDEyOjU3ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmV2ZXJ0IHJldmlzaW9uIDE4Njg5CiAgIExhdGVzdCBXaW4zMiBidWlsZHMgaW5jbHVkZSBzdXBwb3J0IGZvciBzdHJ0b3VsbC4KCjIwMTAtMDUtMTIgMTI6MDUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFkZGVkIGRldGVjdGlvbiBvZiBsbV9zZW5zb3JzIHZlcnNpb24uCiAgIEkgYW0gbm90IEF1dG9jb25mIGd1cnUsIHNvIEkgaG9wZSBJIGdvdCBpdCByaWdodC4gVGhlIGdvYWwgaXMgdG8KICAgZGVmaW5lIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMgKmJlZm9yZSogY29uZmlnX21vZHVsZXNfYWdlbnQKICAgcHJvY2Vzc2VzIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaC4KCjIwMTAtMDUtMTIgMDc6MDMgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4KCjIwMTAtMDUtMTIgMDM6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRpdGxlIGdlbmVyYXRpb24gYWZ0ZXIgY2hhbmdlIHRvIHdoYXQgc3JjZGlyIG1lYW50CgoyMDEwLTA1LTEyIDAyOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgdW5kbyBsYXN0IGNoYW5nZSB3aGljaCB0dXJuZWQgb3V0IHRvIG9ubHkgY2F1c2UgZXJyb3JzIGlmIHlvdSBoYWQKICAgYSBvbGQgLmNvbmYgZmlsZSBhcm91bmQKCjIwMTAtMDUtMTIgMDI6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggdjNfY2EgY3JlYXRpb24gZXh0ZW5zaW9uIG5hbWUKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAga2VlcCBmb3JtYXQgdmVyc2lvbiAjIGluIGNlcnQgaW5kZXhlczsgZG9uJ3Qgc3RvcmUgaGFzaCB0eXBlCiAgIHN0cmluZyBpbiBpbmRleDsKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGludmVydGVkIGNvbnZlcnNpb24gY2FsbDsgbGVzcyB2ZXJib3NlIGRlZmF1bHQgZGVidWcKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHBhcnNpbmcgb2YgLVQgbmFtZS92YWx1ZSBwYWlycwoKMjAxMC0wNS0xMSAyMzozMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGJ1ZyBmaXhpbmcgYW5kIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgIm1ha2UgdGVzdCIgd2l0aAogICBUZXN0OjpIYXJuZXNzCiAgIChzdGlsbCBkb2Vzbid0IHdvcmsgZm9yIG1lLCB0aG91Z2gpCgoyMDEwLTA1LTExIDIyOjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRG8gTk9UIGhhcmRjb2RlIC91c3IvYmluL3BlcmwgYXMgdGhlIFBlcmwgcGF0aAoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2ggZmlsZSBoYW5kbGluZwoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBsb25nIG9wdGlvbnMgc3VjayA7LSkuIHByZWZlciBkb3VibGUgZGFzaGVzIGZvciBsb25nIG9wdGlvbnMgdG8KICAgbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIE5ldC1TTk1QIGNvZGUgYmFzZQoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhZGRlZCBhYmlsaXR5IHRvIHJ1biBvbmx5IHRoZSBmYWlsZWQgdGVzdHMgZnJvbSB0aGUgbGFzdCBydW4KCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9uJ3QgZm9yY2UgY29sb3IKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY2xlYW51cCBvZiBvbGRlcgoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBNaW5pbWFsbHkgc3VwcG9ydCB0aGUgb2xkZXIgVGVzdDo6SGFybmVzcyBwZXJsIG1vZHVsZSBmb3IgcnVubmluZwogICB0aGUgb2xkZXIgdGVzdHMgYXQgbGVhc3QKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IGEgZGVmYXVsdCBzZWN1cml0eU5hbWUgYW5kIHNlY3VyaXR5TW9kZWwgaWYgVExTIG9yIERUTFMgaXMgaW4KICAgdXNlIG9uIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYWxsb3cgc2VjdXJpdHkgbW9kZWxzIHRvIHBlcmZvcm0gbW9yZSBvZiB0aGUgc2Vzc2lvbiBzZXR1cDsgbW92ZWQKICAgbW9yZSBVU00gc3BlY2lmaWMgc2V0dXAgaW50byBpdCdzIHNldHVwIHJvdXRpbmUKCjIwMTAtMDUtMTEgMTg6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBwYXJhbSB0byBsb29rdXAgcGVlciBjZXJ0CgoyMDEwLTA1LTExIDE2OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWxsb3cgJy0nIGluIGZxZG47IGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGhvc3Qgc3BlY2lmaWMgY29uZmlnCgoyMDEwLTA1LTExIDE1OjQ2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEVuc3VyZSAnbmV0c25tcF9yZWFkX21vZHVsZScgaXMgYXZhaWxhYmxlIGZvciBwZXJsIGJ1aWxkLgoKMjAxMC0wNS0xMSAxNTo0NCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeCBwZXJsIGJ1aWxkIHVuZGVyIFdpbmRvd3MgKHN0cnRvdWxsIG5vdCBhdmFpbGFibGUpCgoyMDEwLTA1LTEwIDA3OjA3ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIHN5bWJvbCBuZXRzbm1wX3NubXBTU0hEb21haW5fbGVuLAogICBtYWtlIG5ldHNubXBfc25tcFNTSERvbWFpbiBjb25zdC4KCjIwMTAtMDUtMDkgMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIERvIG5vdCByZXF1aXJlIHF1b3RlcyBhcm91bmQgdGhlIENQVSBzdHJpbmcgYXMgdGhhdCBkZXBlbmRzIG9uCiAgIGhvdyB0aGUgYWdlbnQgaXMgY29uZmlndXJlZC4KCjIwMTAtMDUtMDkgMjE6NDMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEV4dHJhY3QgdGhlIEV4aXQgYW5kIHJlc3RhcnQqIHN1YnJvdXRpbmVzIGZyb20KICAgdXRpbF9mdW5jIGluIG9yZGVyIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgbGVzcyBjb2RlIGZvciB0aGUKICAgbWluaW1hbCBjYXNlLgoKMjAxMC0wNS0wOSAxNjo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24KICAgZ2V0X2V4ZWNfb3V0cHV0KCkgcmV0dXJucyBhIHZhbHVlIHdoZW4gdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTA1LTA5IDE2OjQ1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBidWlsZHMgbm93IGFsc28gd2hlbiB0aGUgc291cmNlIGZpbGVzIGFyZQogICBsb2NhdGVkIG9uIGEgU2FtYmEgZmlsZXN5c3RlbSBpbnN0ZWFkIG9mIGEgbG9jYWwgZmlsZXN5c3RlbS4KCjIwMTAtMDUtMDkgMTM6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDb3JyZWN0IHRoZSBpZiB0aGF0IHRyaWVzIHRvIGZpZ3VyZSBvdXQgaWYgYSBzdWZmaWNpZW50bHkgbmV3IGdjYwogICBpcyBpbiB1c2UuCgoyMDEwLTA1LTA5IDEyOjUwICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ2hlY2sgZm9yIHRoZSBuZWVkZWQgbW9kdWxlIGFuZCBub3Qgc29tZSBvdGhlciBvbmUuCiAgIExvZyB0aGUgY29ycmVjdCBtaXNzaW5nIHN5bWJvbC4KCjIwMTAtMDUtMDkgMDk6MjEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHV0aWxpdGllcy9leGVjdXRlIGRvIG5vdCBuZWVkIGFueXRoaW5nIGZyb20KICAgdXRpbF9mdW5jcywgc28gc3RvcCBkZXBlbmRpbmcgb24gaXQuCgoyMDEwLTA1LTA5IDA5OjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgTkVXUzogc25tcGQ6IFJlbW92ZWQgdGhlIHVudXNlZCBmdW5jdGlvbiB4eF90b2tlbml6ZV9leGVjX2NvbW1hbmQKICAgZnJvbSB1dGlsaXRpZXMvZXhlY3V0ZS4KCjIwMTAtMDUtMDkgMDk6MDEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVwbGFjZSB0aGUgZGVidWdnaW5nIGZ1bmN0aW9ucyB3aXRoIGR1bW1pZXMKICAgd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQuCgoyMDEwLTA1LTA5IDA4OjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkOgoKICAgQ2hlY2sgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBlbmFibGVkCgoyMDEwLTA1LTA5IDA4OjAxICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgRmFjdG9yIG91dCBjaGVjayBmb3IgbWliSUkvc3lzdGVtX21pYgoKMjAxMC0wNS0wOSAwNzo1OSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGVzCgoyMDEwLTA1LTA4IDIzOjE2ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGl0aW9uYWxseSBmaXggbWFrZSB0ZXN0IGZvciB0aGUgdW5jb21tb24gY2FzZSB3aGVyZSBidWlsZGRpcgogICA9PSBzcmNkaXIKCjIwMTAtMDUtMDggMjI6NTUgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byBydW4gdGhlIHRlc3Qgc3VpdGUgZnJvbQogICBhbnl3aGVyZS4KICAgQ2hhbmdlIHRoZSAtRCBvcHRpb24gdG8gZXhwZWN0IHRoZSBwYXRoIG9mIHRoZSB0b3Agc291cmNlCiAgIGRpcmVjdG9yeS4KICAgQWRkIGFuIC1zcmNkaXIgb3B0aW9uIHRoYXQgaXMgYW4gYWxpYXMgZm9yIC1ELgogICBBZGQgYW4gLWJ1aWxkZGlyIG9wdGlvbiB0byBkZXNpZ25hdGUgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgdGVzdAogICBvYmplY3QgaXMuCiAgIFB1dCBzcmNkaXIgYW5kIGJ1aWxkZGlyIGluIHRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHRlc3Qgc2NyaXB0cwogICBGYWN0b3Igb3V0IHRoZSBncmVwIHBhcnQgb2YgU0tJUElGIGFuZCBTS0lQSUZOT1QgdG8gSVNERUZJTkVECiAgIFVzZSBtb3JlIHJlYWRhYmxlIGtleXMgaW4gdGhlIG9wdHMgaGFzaCBpbiBSVU5GVUxMVEVTVFMKICAgQWRqdXN0IGV2ZXJ5dGhpbmcgdG8gdXNlIHNyY2RpciBhbmQgYnVpbGRkaXIKCjIwMTAtMDUtMDggMjI6NDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowNyAgbWFnZnIKCiAgICogTWFrZWZpbGUuaW46CgogICBDb25zb2xpZGF0ZSB0aGUgdGVzdCBhbmQgdGVzdC1taWJzIHRhcmdldHMuCiAgIEV4cG9zZSB0aGUgdGVzdGFsbCB0YXJnZXQgaW4gdGhlIHRvcCBtYWtlZmlsZS4KCjIwMTAtMDUtMDggMjI6MDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvIG5vdCBhYm9ydCB3aGVuIHN0ciBpcyBOVUxMIGFzIHRoYXQgaXMgYSBwZXJmZWN0bHkgdmFsaWQgaW5wdXQuCgoyMDEwLTA1LTA4IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgbmV3bGluZQoKMjAxMC0wNS0wNyAyMToxMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5hYwoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIGZpeCBoYW5kbGluZyBvZiBjZXJ0IGFsZ29yaXRobSBpbiBmaW5nZXJwcmludHM7IGNvbnZlcnQgaW4vb3V0CiAgIGZpbmdlcnBpbnRzCiAgIGZyb20vdG8gaGV4CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkb250IHNwZWNpZnkgaGFzaCB0eXBlIGZvciBmaW5nZXJwcmludAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGhhbmRsZSBmaW5nZXJwcmludCB0eXBlczsgZHJvcCBzYW4gZmllbGRzIGZyb20gY2VydCBzdHJ1Y3Q7CiAgIGNvbnNpZGVyIGRpcmVjdG9yeQogICB3aGVuIHBhcnRuZXJpbmcga2V5cy9jZXJ0cwoKMjAxMC0wNS0wNyAxOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIG1vdmUgZGVmYXVsdCBwcm9tcHRzIGVhcmxpZXIKCjIwMTAtMDUtMDYgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYmV0dGVyIFNBTiBleHRyYWN0aW9uOyB0d2VhayBkdWJndXMgbWVzc2FnZXM7IHF1aWV0IGNvbXBpbGVyCiAgIHdhcm5pbmdzCgoyMDEwLTA1LTA2IDE1OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHJlZHVjZSBjZXJ0IGRlYnVnIG91dHB1dDsgZGVidWcgaW5zdGVhZCBvZiBsb2dfaW5mbyBpbiBkdW1wcwoKMjAxMC0wNS0wNiAxNDo0OSAgZHRzMTIKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIERvbid0IGFzc3VtZSB0aGUgcHJlc2VuY2Ugb2YgPHN0cmluZy5oPgogICAoYnJpbmcgaW50byBsaW5lIHdpdGggYWxsIG90aGVyIG9jY3VyYW5jZXMpCgoyMDEwLTA1LTA2IDE0OjQxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgQ0hBTkdFUzogV2luZG93czogRml4IGJ1aWxkIHVuZGVyIE1pbkdXCiAgIGJhY2svZm9yd2FyZCBwb3J0IG9mIHJldmlzaW9uIDE4NjMxCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBlIGluIGxvZyBtc2cKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGltcG9ydCBmb3IgdW51c2VkIGZ1bmN0aW9uCgoyMDEwLTA1LTA0IDA3OjEyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgTmVnYXRlIHJlYXNvbiBnaXZlbiBmcm9tIFNLSVBJRgoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggbGVuIGluIGVtYWlsIGNtcDsgbW9yZSBleHRyYWN0IGRlYnVnZ2luZwoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjb3B5IG9jZXJ0IHRvIGFkZGlvbmFsIG1hcHMKCjIwMTAtMDUtMDMgMTQ6MjAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBkZXBlbmRlbmN5IG9uIHBlcmwgbW9kdWxlIG5vdCBwcmVzZW50IGluIENlbnRPUwoKMjAxMC0wNS0wMyAwMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBkb24ndCBhY2Nlc3Mgc3RydWN0IGludGVybmFscyBkaXJlY3RseQoKMjAxMC0wNS0wMyAwMzo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZml4IGNvbXBpbGluZyB3aXRoLW91dC1taWJtb2R1bGVzPXV0aWxpdGllcy9leGVjdXRlCgoyMDEwLTA1LTAxIDE5OjA4ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBDb3JyZWN0IHRoZSBzb3VnaHQgc3RyaW5nIHRvIG1ha2UgdGhlIHRlc3QgcGFzcyB3aGVuIG9rLgoKMjAxMC0wNS0wMSAxNzoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW9yZSBjb25zaXN0ZW50IHRyZWF0bWVudCBvZiBrZXlVc2FnZSwgYmFzaWNDb25zdHJhaW50cywgb3RoZXIKICAgeDUwOXYzIG9wdGlvbnMKCjIwMTAtMDQtMzAgMjM6MzcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsOgoKICAgbGFtZSB0ZXN0IHNjcmlwdCBidXQgY292ZXJzIGEgY2h1bmsgb2YgdGhlIGNvZGUKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWtpbnN0YWxsZGlycyBpbnN0ZWFkIGluc3RlYWQgb2YgRmlsZTo6UGF0aAoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBlbnN1cmUgbmV0LXNubXAtY29uZmlnIHNjcmlwdCBjYW4gYmUgcnVuIGZyb20gdGhlIGJ1aWxkIGRpcgoKMjAxMC0wNC0zMCAyMTozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIGdlbmNlcnQgLS1jYQoKMjAxMC0wNC0zMCAyMTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgaGVscCBmb3IgY2VydFNlY05hbWU7IGNvbnRpbnVlIGJ1aWxkaW5nIGNlcnQgaW5kZXhlcyBldmVuIGlmCiAgIHdlIGNhbnQgc2F2ZQogICB0byBwZXJzaXN0ZW50IGRpcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggY2hlY2sgY291bnQgZm9yIDgyMiBuYW1lcyBpbiB0aGUgc25tcGQubG9nCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBtYWxsb2MgdW5uZGVybGVuZ3RoIGJ5IDEgZXJyb3IKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY29tbWVudCBvdXQgdGhlIDgyMiB0ZXN0czsgdGhleSdyZSBicm9rZW4gYXQgdGhlIG1vbWVudAoKMjAxMC0wNC0zMCAxOTozNiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZG9uJ3QgbG9zZSBTQU4gd2hlbiBzaWduaW5nIHcvIENBCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFrZSBuYW1lIGNoYW5nZSB0byByZmM4MjIgZnJvbSB0eXBvZWQgODIyMAoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0cyB0byBkbyBvdGhlciBzdWJqZWN0QWx0TmFtZSBtYXBwaW5nCgoyMDEwLTA0LTMwIDE3OjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggaXNzdWVzIDEsMiw0IGFuZCAtQyBoYW5kbGluZwoKMjAxMC0wNC0yOSAwMzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUNlcnRUb1RTTlRhYmxlIHRvIHVzZSBjYWNoZSArIGNlcnRfdXRpbCBtYXBzCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIGluc2VydCByZXR1cm4KCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCByZW1vdmUgZnVuY3Rpb24gdG8gY29udGFpbmVyIGl0ZXJhdG9yOwogICBpbXBsZW1lbnQgaXQgZm9yCiAgIGJpbmFyeV9hcnJheQoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgbWFrZSBzdXJlIGNvbnRhaW5lciBzeW5jIGluY3JlbWVudGVkIG9uIHNvcnQsIGluc2VydCBhbmQgcmVtb3ZlCgoyMDEwLTA0LTI4IDA3OjIwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlZmlsZSBmb3IgdGVzdCB0YXJnZXQKCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgbWFrZSB0aGUgdGVzdCBzdWl0ZSBydW4gb3V0c2lkZSB0aGUgc291cmNlIGRpcmVjdG9yeSBhZ2Fpbi4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGRlYWwgd2l0aCBvdXQtb2Ytc291cmNlIHRyZWUgYnVpbGRpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdGluZyB0byBjaGVjayBjZXJ0aWZpY2F0ZSB0byBzZWN1cml0eW5hbWUgbWFwcGluZ3MgYW5kIGRlbmlhbHMKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNyZWF0ZWQgYSBtYXBwZWQgdXNlcgoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgZ2VuZXJhdGUgb2JqZWN0IGNvZGUgd2l0aCAtZyBkZWJ1Z2dpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIG1vcmUgYWNjdXJhdGUgY3VycmVudCBBUEkgdXNhZ2UgZm9yIHNjYXBpIGNvZGUKCjIwMTAtMDQtMjcgMjE6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNlcnQgaW5pdCBkdXBsaWNhdGUgY2FsbCBjaGVjawoKMjAxMC0wNC0yNyAyMDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvbnZlcnQgdXNlciBmaW5nZXJwcmludCB0byBsb3dlciBhbmQgc3RyaXAgY29sb25zOyBhZGQgZXh0ZXJuCiAgIHByb3RvdHlwZQogICBmb3IgY2VydCBpbml0IHNvIHdlIGRvbid0IG5lZWQgaGVhZGVyCgoyMDEwLTA0LTI3IDIwOjE1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXBhcmF0ZSBjZXJ0IGluaXQgYW5kIGNlcnQgbG9hZGluZzsgYWRkIGNlcnRTZWNOYW1lIGNvbmZpZyB0b2tlbgoKMjAxMC0wNC0yNyAwMzoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWVyZ2UgTkVUU05NUF9GVU5DVElPTiBhbmQgIU5FVFNOTVBfRlVOQ1RJT04gYXNzZXJ0IGNhc2VzCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb3RzIG9mIG5ldyBjZXJ0IGZ1bmN0aW9uYWxpdHkKICAgLSBhZGQgc3NsIGZ1bmNzIGZvciBjZXJ0IGV4dGVuc2lvbnMgYW5kIHNzbCBjZXJ0IGNoYWlucwogICAtIGZ1bmN0aW9ucyBhbmQgbmV3IG5ldHNtcF9jZXJ0X21hcCBzdHJ1Y3QgZm9yIGxvb2tpbmcgdXAgY2VydAogICBtYXBwaW5ncwogICAtIGFkZCBjZXJ0aWZpY2F0ZSBtYXBwaW5nIGZvciBzZWNuYW1lCiAgIC0gYWRkIGNvZGUgdG8gYnVpbGQgY2VydCBjaGFpbnMKICAgLSBhZGQgc3ViamVjdCB0byBjZXJ0IGluZGV4IGNhY2hlCiAgIC0gcmVidWlsZCBpbmRleGVzIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4CiAgIC0gcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0IGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIGNlcnQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBtb3ZlIGlwdjYgc3BlY2lmaWMgdmFyIGRlY2wgaW5zaWRlIGlmZGVmCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IHRkYXRhIGhlbHBlciBub3cgc2F2ZXMgZmxhZ3MgcGFzc2VkIGR1cmluZwogICBjcmVhdGlvbjsgYWRkIHRkYXRhCiAgIGZsYWcgdG8gTk9UIGNyZWF0ZSB0aGUgdGFibGUgY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgaW50ZXJmYWNlIGZvciBkdXBsaWNhdGluZyBhIGNvbnRhaW5lcgogICBDSEFOR0VTOiBzbm1wbGliOiBjb250YWluZXIgY2hhbmdlczogYWRkIGZsYWdzIGZpZWxkIHRvIGNvbnRhaW5lcgogICBtZXRhLWRhdGE7CiAgIGNoZyBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHRvIHVzZSBjb250YWluZXIgbWV0YS1kYXRhIGZsYWdzCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCB3aGVuIHRoZSB0cmFuc3BvcnQgaXMgY29uZmlndXJlZCB3aXRoCiAgIGEgcmVtb3RlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50IHRoZSBjb25uZWN0aW9uIGlzIGRlbmllZAoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgYWRkZWQgdGVzdHMgZm9yIC1UIGZsYWcgdXNhZ2UgYW5kIGludmFsaWQgdXNlciB1c2FnZQoKMjAxMC0wNC0yNiAyMDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkOgoKICAgaGF2ZSB0aGUgYWxpYXMgdHJhbnNwb3J0IHNvdXJjZSB0aGUgcmlnaHQgU3YzY29uZmlnIGZpbGUKCjIwMTAtMDQtMjYgMjA6NTAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIHdvcmtpbmcgc3VwcG9ydCBvZiBUTFMvRFRMUyB0ZXN0aW5nIGluY2x1ZGluZyBjZXJ0IGdlbmVyYXRpb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBob25vciB0aGUgY29uZmlnIGRpciBpZiBzcGVjaWZpZWQgdmlhIC1DCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCByZWFsbG9jIGNhbGwgZm9yIGJ1ZmZlcmVkIHBhY2tldHMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBwcm9wZXIgc2tpcCBvdXRwdXQgZm9yIHJlcG9ydGluZyByZWFzb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFmdGVyIGJhY2tzbGFzaCBpbiBtYWNybwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIucHJpdjoKCiAgIHRlc3RzIGZvciBtaW5pbWFsbHkgdGVzdGluZyBhbGwgdGhlIHRyYW5zcG9ydHMKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgbWluaW1hbGx5IGRvY3VtZW50IG5ldyBSVU5GVUxMVEVTVFMgc2NyaXB0CgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LCAgIAogICAgICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsIHRlc3RpbmcvbWlzY3Rlc3QuYywgIAogICAgICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaDoKCiAgIGRlbGV0ZWQgb2xkIGZpbGVzIG5vdCB3b3J0aCByZXN0b3JpbmcKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIHJlbW92ZSBvYnNvbHV0ZSB0ZXN0IGxpc3QKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYzoKCiAgIGEgaGFzaC10ZXN0aW5nIC5jIGZpbGUgSSBoYWQgbGF5aW5nIGFyb3VuZAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgdGVzdGFsbCB0YXJnZXQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9ldGltZXRlc3QuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIG1vdmUgb2xkIEMtY29kZSB0ZXN0cyBpbiBwbGFjZQoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkOgoKICAgc2tpcCBzb2xhcmlzIGNvbW1lbnRzCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IGludm9jYXRpb24gb2YgUlVORlVMTFRFU1RTCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YyY2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYWdlbnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWd0cmFwZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QzLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4LCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgTkVXUzogdGVzdGluZzogQnJhbmQgbmV3IHRlc3Qgc3VpdGUgZGVzaWdlbmVkIHRvIGV2ZW50dWFsbHkgdGVzdAogICBtb3JlIGZ1bmN0aW9uYWxpdHksIHByb3ZpZGUgZm9yIHN1cHBvcnQgb2YgdW5pdC10ZXN0cyBhbmQgc3VwcG9ydAogICBvZiBBUEkgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICByZW1vdmVkIGEgZGVidWdnaW5nIGVjaG8KCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtb3JlIGJ1ZyBmaXhlcyBmb3Igc3RyaW5nIHNlYXJjaGVzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgYWRkZWQgYSBuZXcgbWFjcm8gdG8gY2hlY2sgYSB0cmFwZCBjb3VudAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHVzZSBpbmRpdmlkdWFsIG91dHB1dCBmaWxlcyBhbmQgZml4IHNvbWUgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1hZGUgZXhpc3RpbmcgdGVzdCBzdWl0ZSBwdXQgb3V0IFRBUCBvdXRwdXQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvZnVsbHRlc3RzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgYmVnaW5uaW5nIG9mIG1vdmluZyBVQ0QgdGVzdCBzdWl0ZSBpbnRvIGEgbGFyZ2VyIHN1YmRpcmVjdG9yeQoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhbGxvdyBydW5uaW5nIHRlc3RzIHRoYXQgbWF0Y2ggYSByZWdleHAKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VtbWFyaXplIHRlc3RzIHRoYXQgZmFpbGVkCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0ZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBydW5fIHNjcmlwdHMgZm9yIGV4ZWN1dGluZyBjZXJ0YWluCiAgIHR5cGVzCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1hZGUgdGhlIGJ1aWxkLXNjcmlwdC1jaGVjayByb3V0aW5lIGdlbmVyaWMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCBmb3IgYnVpbGQgc2NyaXB0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwcm92aWRlIGluZnJhc3RydWN0dXJlIGZvciBidWlsZGluZyBhbmQgcmVuYW1pbmcgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbW9yZSB0ZXN0IGluZnJhc3RydWN0dXJlIHNldHVwCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgdGhlIGtleXdvcmQgJ2FsbCcKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIGdyb3VwIGdhdGhlcmluZwoKMjAxMC0wNC0yNiAyMDozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGlubyBvZiBhIG5ldyB0ZXN0aW5nIGhhcm5lc3MKCjIwMTAtMDQtMjUgMTc6MzcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAxMC0wNC0yNSAxNToyMSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiByZXZlcnRlZCBhIHJlY2VudCB1bm5lY2Vzc2FyeSBtb2RpZmljYXRpb24uCgoyMDEwLTA0LTI1IDE1OjAwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgbXVsdGlwbGUgLS1zYW4gYXJncywgY2hlY2sgZXJyb3IgY29kZXMgb24gb3BlbnNzbCBjbWRzIGFuZAogICBkaWUgb24gZmFpbHVyZQoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IHJlc3RvcmVkIGNvbnNpc3RlbmN5IGJldHdlZW4gd29ya3NwYWNlLWJ1aWxkIGFuZCBiYXRjaAogICBidWlsZCAtLSBtYWRlIHN1cmUgdGhhdCBub3RpZmljYXRpb25fbG9nLmMgaXMgb25seSBpbmNsdWRlZCBpbgogICB0aGUgbmV0c25tcG1pYnMgcHJvamVjdC4KCjIwMTAtMDQtMjUgMTM6NTggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBmaXhlcyBmb3IgcmVjZW50bHkgaW50cm9kdWNlZCBidWlsZCBicmVha2FnZS4KCjIwMTAtMDQtMjUgMTM6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxMzo0OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9jbG9zZWRpci5jLCBzbm1wbGliL29wZW5kaXIuYywgIAogICAgICAgc25tcGxpYi9yZWFkZGlyLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFdpbjMyIE1TVkMgNiBub24tU0RLIGJ1aWxkIHdvcmtzIGFnYWluLgoKMjAxMC0wNC0yNSAxMzo0MiAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSB0cmFuc2Zvcm1hdGlvbiBydWxlLgoKMjAxMC0wNC0yNSAxMjowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWRlIGl0IGFnYWluIHBvc3NpYmxlIHRvIGRpc2FibGUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsgd2hlbgogICBidWlsZGluZyB2aWEgd2luMzIvYnVpbGQuYmF0LgoKMjAxMC0wNC0yMyAxMzoxNCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgLS1zYW4gRE5TOmEuYi5jIGhhbmRsaW5nLCBoZWxwIHRleHQgZml4ZXMsIG90aGVyIGJ1ZyBmaXhlcy4KICAgTm90ZSBtdWx0aXBsZSAtLXNhbiBub3Qgc3VwcG9ydGVkIHlldAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBidWlsZCB0aGUgLm1hZGUgdmVyc2lvbiBvZiBuZXQtc25tcC1jZXJ0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQgYWZ0ZXIgbW92aW5nIGFsbCB0aGUgZmlsZXMgYXJvdW5kCgoyMDEwLTA0LTIxIDIwOjE2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGJ1aWxkIHRydXN0IGNoYWluIGZvciBjbGllbnQgY2VydDsgYWRkIHN1YmplY3QgdG8gaW5kZXggY2FjaGU7CiAgIHJlYnVpbGQgaW5kZXhlcwogICBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleDsgcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0VG9UU05fZW50cnkgdG8gY2VydF91dGlsIGhlYWRlcgogICAtIG1vdmUgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgogICAtIGFkZCBuZXRzbm1wX29wZW5zc2xfY2VydF9kdW1wX2V4dGVuc2lvbnMsCiAgIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2lzc3VlZF9ieQoKMjAxMC0wNC0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgc2luZ2xlLWRhc2ggLyBzbm1wLmNvbmYgLyBkb3VibGUtZGFzaCBwcmVjaWRlbmNlCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRoYXQgdGhlIHRva2VucyBjYW4gYmUgdXNlZCBmb3IKICAgY29tbWFuZCBsaW5lIGFwcGxpY2F0aW9ucyB0b28KCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZmlsZSBsb2FkaW5nIG9yZGVyIGFuZCBob3cgdG8gdHVybiBvZmYgaG9zdC1zcGVjaWZpYwogICBjb25maWcKCjIwMTAtMDQtMjEgMTU6NTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiBHZW5lcmljIGhvc3Qtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzbm1wLmNvbmYgZmlsZXMKICAgYXJlIG5vdyByZWFkLiBTZWUgdGhlIEhPU1QtU1BFQ0lGSUMgRklMRVMgc2VjdGlvbiBvZiB0aGUKICAgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKMjAxMC0wNC0yMCAxMjo0NCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI5NzEyNzA6IHJlZnVzZSB0byBwYXJzZSBBU04uMSB0b2tlbnMKICAgd2l0aCB3cm9uZyB0eXBlIGZpZWxkLgogICBUaGlzIG1heSB5aWVsZCB0byBwcm9ibGVtcyB3aXRoIHRoaXJkLXBhcnR5IGFwcGxpY2F0aW9ucyB3aGljaAogICBtYXkgZGVwZW5kIG9uIHBhcnNpbmcgdWdseSBBU04uMSBkYXRhIC0gd2UnbGwgc2VlLi4uCgoyMDEwLTA0LTIwIDAwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbWJpbmUgcmVtb3RlIGZpbmdlcnByaW50IGNoZWNraW5nIGFuZCBjaGVjayBib3RoIHNpZGVzCgoyMDEwLTA0LTIwIDAwOjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGlmIHRoZSByZW1vdGUgZmluZ2VycHJpbnQgaXMgc3BlY2lmaWVkLCByZXF1aXJlIGFuIGV4YWN0IG1hdGNoCgoyMDEwLTA0LTE5IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdmFyaW91cyBtaW5vciBidWdzLCBlc3BlY2lhbGx5IGluIG91dHB1dCBtZXNzYWdlcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgcHJvdG90eXBpbmcgb2YgbmVlZGVkIFJGQyBzdGVwcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNvbnZlcnQgaWYgZXJyb3IgY2hlY2sgdG8gcmV0dXJuIGltbWVkaWF0ZWx5IHNvIG90aGVyIGNvZGUgY2FuIGJlCiAgIG91dGRlbnRlZAoKMjAxMC0wNC0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgUkZDIHRleHQKCjIwMTAtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3RyYW5zcG9ydHMsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4uCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY3JlYXRlZCBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIHNlY3VyaXR5TmFtZSBmcm9tIHRoZSBjZXJ0CgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZG9uJ3QgbmVlZCB0byBzZXQgdGhlIGFjY2VwdCBzdGF0ZSBmb3IgVExTIChqdXN0IERUTFMpCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBUTFMgY29tbWVudCBkb2N1bWVudGF0aW9uIGFuZCBzdGVwcyB0YWtlbiBmcm9tIHRoZSBSRkMKCjIwMTAtMDQtMTYgMTM6NTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG51bWVyb3VzIGZpeGVzLCBtb3JlIHZlcmJvc2UgZGVmYXVsdCBvdXRwdXQsIGFkZGl0aXZlIHNob3cgZmxhZ3MsCiAgIGFyYml0cmFyeSBjb25maWcgcGFyYW0gaGFuZGxpbmcsIGJldHRlciBoZWxwIHRleHQKCjIwMTAtMDQtMTYgMTM6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgZG9uJ3QgZG91YmxlIGRlY2xhcmUgYSBzdHJ1Y3QKCjIwMTAtMDQtMTYgMDM6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydCB1dGlsIGZpeGVzCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzIGFuZCBkdXBsaWNhdGUgY29kZQogICAtIGNoZWNrIHBydCBiZWZvcmUgZnJlZQogICAtIG5ldyBmdW5jIGZvciB0eXBlIGZyb20gZmlsZW5hbWUKICAgLSBuZXcgZnVuY3Rpb25zIGZvciBmaW5kaW5nIHN1YnNldHMgZnJvbSBmaWxlbmFtZQogICAtIGZpeCB0eXBlcyBpbiBrZXkgc2VhcmNoIGZ1bmN0aW9uIGJ1dCB0aGVuIGlmZGVmIGlmICh1bnVzZWQKICAgZnVuY3Rpb24pCgoyMDEwLTA0LTE1IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHVzZSBhIHN0cnVjdHVyZSByZWZlcmVuY2UgdG8gcHJlZGVjbGFyZSB0aGUgc3RydWN0dXJlCgoyMDEwLTA0LTE1IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGNvcnJlY3QgZGVjbGFyYXRpb24gb2YgdGhlIGZfb3BlbiBjb21tYW5kIG5vdyByZXF1aXJpbmcgcmV0dXJuaW5nCiAgIGEgdHJhbnNwb3J0CgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNvbmZpZyBjb250YWluZXIKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBmaW5nZXJwcmludCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gaW50byBuZXcgdGxzIHN0cnVjdHVyZQogICB3aXRoaW4gRFRMU1VEUCBzbyBwZXItdHJhbnNwb3J0IGZpbmdlcnByaW50cyBjYW4gYmUgc3BlY2lmaWVkCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3Blcmx5IGNoZWNrIGZvciB0bHNiYXNlIHBvaW50ZXJzIGluIGR0bHN1ZHBfc2VuZCgpCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGdyZXAgdGhlIHRyYW5zcG9ydCBsaXN0IGZvciBUTFMgbm90IGp1c3QgRFRMUyBmb3IgY2hlY2tpbmcgZm9yCiAgIC1sc3NsCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgYnVnIGZpeGVzIGFuZCBtYWRlIFRMU1RDUCB3b3JrIHdpdGggdGhlIC1UIGZsYWcKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1ha2UgdGhlIGZfb3BlbiBjYWxsIGFzc2lnbiB0aGUgbmV3IHRyYW5zcG9ydCBwb2ludGVyIHRvIHVzZSAoYW5kCiAgIGNoZWNrIGlmIE5VTEwgYXMgYSBmYWlsdXJlIGNvbmRpdGlvbgoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2luIHdvcmsgbW92aW5nIERUTFMgY29uZmlnIHJvdXRpbmUgaW4gcGxhY2UKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBwYXNzIHRoZSBlbnRpcmUgdGxzYmFzZSB0byB0aGUgY2xpZW50X3NldHVwCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHN0YXJ0aW5nIHRoZSBzdG9yaW5nIG9mIGNvbmZpZyBkYXRhIGludG8gdGhlIHRsc2Jhc2UKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIGNsaWVudCBzc2wgc2V0dXAgdG8gYWxsb3cgZm9yIGRpcmVjdCBmaW5nZXJwcmludAogICBzcGVjaWZpY2F0aW9uIG9mIG15L3RoZWlyIGNlcnRzCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc3BsaXQgVExTIGludG8gY3JlYXRpb24vY2xvc2UgZnVuY3Rpb25zIGZvciBldmVudHVhbCBjb25maWcKICAgcGFzc2luZyBzdXBwb3J0CgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGFzcyB0cmFuc3BvcnQgY29uZmlnIGRhdGEgdG8gdGhlIHRyYW5zcG9ydCBmX2NvbmZpZygpIGZ1bmN0aW9uCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXR1cm4gTlVMTCBvbiB0cmFuc3BvcnQgY29uZmlnIGVycm9yCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IC1UIGNvbW1hbmQgbGluZSBmbGFnIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZQogICB0cmFuc3BvcnRzCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjaGVjayB0cmFuc3BvcnQgTlVMTG5lc3MgYmVmb3JlIHVzaW5nCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJlZ2lubmluZyBvZiB3b3JrIHRvIG1ha2UgdHJhbnNwb3J0cyBjb25maWd1cmFibGUgd2l0aAogICBzdXBwbGltZW50YWwgY29uZmlndXJhdGlvbiBkYXRhIGFuZCBuZXcgY2FsbHMgZm9yIGZfb3Blbi9mX2NvbmZpZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHRleHQgaW4gY29tbWVudHMgZnJvbSBmdXR1cmUgUkZDIHRvIGRvY3VtZW50IHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNC0xNSAxODo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYXJrIHBlbSB3L2tleSBhcyBpZGVudGl0eTsgdHdlYWsgcGFydG5lciBkZWJ1ZzsgY29tcGFyZSBmaWxlCiAgIGN0aW1lIGFnYWluc3QgaW5kZXggdG9vCgoyMDEwLTA0LTE1IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBsb2NhbCBzcGFjZSB0byByZWZvcm1hdCBjZXJ0IGZvciBzZWFyY2gKCjIwMTAtMDQtMTUgMTY6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE4NDk2OgogICAtIENvbW1lbnRlZCBvdXQgI2RlZmluZSBORVRTTk1QX1VTRV9ETEwgYWdhaW4gaW4gZmlsZQogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBvbiB0aGUgNS40IGJyYW5jaC4gVGhpcyBjaGFuZ2UKICAgaGFkIGJlZW4gY29tbWl0dGVkIHVuaW50ZW50aW9uYWxseS4KICAgLSBSZS1lbmFibGVkICNkZWZpbmUKICAgVVNJTkdfTk9USUZJQ0FUSU9OX0xPR19NSUJfTk9USUZJQ0FUSU9OX0xPR19NT0RVTEUgaW4KICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCBvbiB0aGUgdHJ1bmsgYW5kIHRoZQogICBWNS41IGJyYW5jaC4gV2hpbGUgYnVpbGQuYmF0IHJlcG9ydHMgYW4gZXJyb3Igb24gZWFybGllciBicmFuY2hlcwogICB3aXRoIHRoaXMgc3ltYm9sIGVuYWJsZWQsIHRoZXJlIGlzIG5vIHN1Y2ggcHJvYmxlbSBvbiB0aGUgdHJ1bmsKICAgb3IgVjUuNSBicmFuY2hlcyBhbmQgaGVuY2UgdGhlcmUgd2FzIG5vIHJlYXNvbiB0byBkaXNhYmxlIHRoaXMKICAgcHJlcHJvY2Vzc29yIHN5bWJvbC4KCjIwMTAtMDQtMTUgMTU6MDggIG1hcnoKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBhZGQgbmV0LXNubXAtY2VydCB0byBtYWtlL2luc3RhbGwKCjIwMTAtMDQtMTUgMTA6NTIgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQ6CgogICBUZXN0cyBub3Qgd29ya2luZyBmb3IgVENQIHNob3VsZCBiZSBza2lwcGVkIGFsc28gZm9yIFRDUDYuCgoyMDEwLTA0LTE0IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCB2YXJzL3RleHQgZnJvbSBjdXQtbi1wYXN0ZQoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggY29tbWVudHMKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbG90cyBvZiBjZXJ0IHVwZGF0ZXMKICAgLSBjaGFuZ2UgY2VydCBzdWJkaXIgc2VhcmNoaW5nIHRvIG1hdGNoIG5ldC1zbm1wLWNlcnQKICAgLSB1cGRhdGUga2V5IHR5cGUgaGFuZGxpbmcKICAgLSBpZ25vcmUgd29ybGQgcmVhZGFibGUga2V5cwogICAtIGtlZXAgdHlwZSBpbiBpbmRleGVzCiAgIC0gdHdlYWsgY2VydC9rZXkgcHJpbnQgZm9ybWF0CgoyMDEwLTA0LTE0IDE3OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ha2UgbmV0LXNubXAtY2VydCBleGVjdXRhYmxlCgoyMDEwLTA0LTE0IDEzOjEyICBqc2FmcmFuZWsKCiAgICogIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgRml4ZWQgdGVzdHMgJ1Byb3h5IEdFVC9TRVQgc3VwcG9ydCcgYW5kICdTTk1QdjIgdmFjbSBkZW5pYWwKICAgc3VwcG9ydCcgd2l0aCB1ZHA2IHRyYW5zcG9ydC4KCjIwMTAtMDQtMTQgMDk6NDcgIGR0czEyCgogICAqICB3aW4zMiwgd2luMzIvYmluLCB3aW4zMi9kaXN0LCB3aW4zMi9kaXN0L2h0bWxoZWxwLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlciwgd2luMzIvZGlzdC9zY3JpcHRzLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAKICAgICAgICB3aW4zMi9saWIsIHdpbjMyL2xpYmFnZW50LCB3aW4zMi9saWJoZWxwZXJzLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQsIHdpbjMyL2xpYnNubXAsIHdpbjMyL2xpYnNubXBfZGxsLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLCB3aW4zMi9sb2NhbCwgd2luMzIvbmV0LXNubXAsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50LCB3aW4zMi9uZXQtc25tcC9saWJyYXJ5LCB3aW4zMi9uZXRzbm1wbWlicywgIAogICAgICAgd2luMzIvc25tcGJ1bGtnZXQsIHdpbjMyL3NubXBidWxrd2Fsaywgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YSwgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZ2V0LCB3aW4zMi9zbm1wZ2V0bmV4dCwgIAogICAgICAgd2luMzIvc25tcG5ldHN0YXQsIHdpbjMyL3NubXBzZXQsIHdpbjMyL3NubXBzdGF0dXMsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwLCB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB1c20sIHdpbjMyL3NubXB2YWNtLCAgIAogICAgICB3aW4zMi9zbm1wd2FsazoKCiAgIERvbid0IHRyeSB0byBTVk4tbWFuYWdlIHRoZSBXaW5kb3dzIGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlCiAgIChhZGQgcmVsZWFzZSwgZGVidWcsIE1ha2VmaWxlIHRvIHRoZSBwcmV2aW91cyBpZ25vcmUgbGlzdCkKCjIwMTAtMDQtMTQgMDg6MTYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IFdpbmRvd3MgYmF0Y2ggYnVpbGQgdXNpbmcgVmlzdWFsIFN0dWRpbyB3aXRoIGR5bmFtaWMgbGlua2luZy4KICAgVW5yZWZlcmVuY2VkIHN5bWJvbCBpbnRyb2R1Y2VkIGJ5IFNWTiByZXZpc2lvbiAxODM5MwoKMjAxMC0wNC0xNCAwODowOCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBGaXggYmF0Y2ggYnVpbGQgdXNpbmcgcmVjZW50IHZlcnNpb25zIG9mIFZpc3VhbAogICBTdHVkaW8uCiAgIFBhcnRpYWwgYmFjayBwb3J0IG9mIFNWTiByZXZpc2lvbnMgMTc1NzMgYW5kIDE3Njk2LgoKMjAxMC0wNC0xNCAwMTo0NyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHBlcm1zIG9uIGNyZWF0ZWQgZmlsZXMgLXJ3LS0tLS0tLSwgdW1hc2soMDc3KQoKMjAxMC0wNC0xMyAyMjoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBmaXggcGVybXMsIGFkZCAtLWNuLy1jLCBiZXR0ZXIgZGF0ZXMgZGVmYXVsdHMsIHNubXAtdGxzIG9yZ191bml0LAogICBhZGRlZCBpbml0aWFsIGR1bW15IGNvbmZpZyBmaWxlCgoyMDEwLTA0LTEzIDE0OjIxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXhlcyBmb3Igc2hvdyBjbWRzLCBjbWRsaW5lLCBoZWxwCgoyMDEwLTA0LTEzIDAyOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBrZXkrY2VydCBpbiAucGVtIGZpbGVzOyBtaXNjIHR3ZWFrcwoKMjAxMC0wNC0xMCAyMzoyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBidWlsZCBmaXggZm9yIEM4OSBjb21waWxlcnMgKGUuZy4gb24gSFAtVVggMTAuMjApCgoyMDEwLTA0LTEwIDIyOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICBpbml0aWFsIGN1dCBhdCB0bHN0bUNlcnRUb1RTTlRhYmxlCgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgYWRkIGRlZmluZSBvZiBtYXggaGFzaCBjb25zdGFudAoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXNlIGNlcnQgdXRpbCBjaGVjayBmb3IgZmluZ2VycHJpbnQgbGVuL2FsZ29yaXRobQoKMjAxMC0wNC0xMCAxMjo1OSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgc2hvdyBjbWQgZml4ZXMKCjIwMTAtMDQtMDkgMjE6MzIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZhaXJseSBmdW5jdGlvbmFsIChub24taW50ZXJhY3RpdmUpIC0gYmUgaXQga25vd246IHRoZXJlIGFyZSBidWdzCgoyMDEwLTA0LTA5IDIwOjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmg6CgogICBtZXJnZSBzb21lIHRhYmxlX2RhdGEuY29uZiBjaGFuZ2VzOyByZW1vdmUgdW51c2VkIGNvZGUgYW5kIGEKICAgYnVuY2ggb2YgdmVyYm9zZSBjb21tZW50cwoKMjAxMC0wNC0wOCAxNDo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGgKCjIwMTAtMDQtMDggMTA6NTUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENoZWNrIHJlc3VsdHMgb2YgY2FsbHMgdG8gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlIGFuZCBsb2cKICAgYW4gZXJyb3IuCiAgIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHJlbGF0ZSB2YXJpb3VzICdjNjQgMzIgYml0IGNoZWNrIGZhaWxlZCcKICAgZXJyb3JzIHdpdGggc3BlY2lmaWMgY291bnRlci4KCjIwMTAtMDQtMDggMDE6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXcgZnVuY3Rpb24KCjIwMTAtMDQtMDggMDE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogdHJhbnNsYXRlIE5PU1VDSCovRU5ET0ZNSUIgZXJyb3JzIGR1cmluZyBSRVNFUlZFMQogICB0byBOT0NSRUFUSU9OCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgTkVXUzogc25tcGQ6IHRhYmxlX2RhdGEvdGRhdGEgbmV4dCBoYW5kbGVyIHdpbGwgbm90IGJlIGNhbGxlZAogICBkdXJpbmcgZ2V0CiAgIHByb2Nlc3NpbmcgaWYgbm8gdmFsaWQgcm93cyBhcmUgZm91bmQgZm9yIHRoZSBoYW5kbGVyCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IGFnZW50IHdpbGwgbm8gbG9uZ2VyIGNhbGwgdGFibGUgaGFuZGxlcnMgaWYgYSBzZXQKICAgcmVxdWVzdCBmb3IKICAgdGhlIGhhbmRsZXIgaGFzIGludmFsaWQgaW5kZXhlcwogICBDSEFOR0VTOiBzbm1wZDogZG9uJ3QgY2FsbCBjbGVhbnVwIG9uIGZpcnN0IHJlcXVlc3Qgb24gYmFkCiAgIGluZGV4ZXMuIGluc3RlYWQsCiAgIHNldCBhY3R1YWwgZXJyb3IgbGF0ZXIsIGFuZCBmcmVlIHJlcXVlc3QgZGF0YSBzZXRzIG9uIGZpcnN0CiAgIHJlcXVlc3QgZm9yIHNldHMKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgZmluZ2VycHJpbnQgdmFyYmluZAoKMjAxMC0wNC0wNyAyMjo1NiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTb2xhcmlzIHRyIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIgcmFuZ2VzIHJlbGlhYmx5IChzZWUgdGhlCiAgIGF1dG9jb25mIG1hbnVhbCksIGNoYW5nZSB0aGUgZXhwcmVzc2lvbiB0byBvbmUgdGhhdCBpcyBzaW1wbGUKICAgZW5vdWdoIHRvIGIgc3VwcG9ydGVkLgoKMjAxMC0wNC0wNyAxNDowNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5zZXJ0IHRoZSBjYWNoZSBoZWxwZXIgY29ycmVjdGx5LgoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9ucyB0byByZW1vdmUgbGlzdC9yb3cgZGF0YSBmcm9tCiAgIHJlcXVlc3QgbGlzdAoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGlmZGVmIHZhciBkZWNsIGZvciB2YXJzIG9ubHkgdXNlZCBpbiBsYXRlciBpZmRlZiBibG9jawoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgUm93U3RhdHVzIGFuZAogICBTdG9yYWdlVHlwZSB2YXJiaW5kcwogICAtIGFsc28gcmVtb3ZlIHNvbWUgZHVwbGljYXRlIGNvZGUgYW5kIGZpeCBjb21tZW50cyBpbmRlbnQgbWFuZ2xlZAoKMjAxMC0wNC0wNyAxMDozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZSwgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZjoKCiAgIHVwZGF0ZSBtYW4gcGFnZTsgZml4IHNoZWxsIHJlZGlyZWN0OyBjcmVhdGUgZXhhbXBsZSByY2ZpbGUgaWYKICAgbWlzc2luZwoKMjAxMC0wNC0wNyAwNzoxNSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBVc2UgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HIGluc3RlYWQgb2YgRElTQUJMRV9NSUJfTE9BRElORwoKMjAxMC0wNC0wNyAwMDozOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBPbmx5IGVuYWJsZSBob3N0U3dJbnN0IHJwbSBzdXBwb3J0IG9uIGxpbnV4IGhvc3RzCiAgIHdpdGggbGlicnBtLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIG5vbi1ycG0gbGludXgKICAgZGlzdHJpYnV0aW9ucy4KCjIwMTAtMDQtMDcgMDA6MTQgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWw6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2UgdGhlIHRlc3Qgc3VpdGUgdG8gd29yayBldmVuIGlmIG1pYgogICBsb29rdXAgaXMgZGlzYWJsZWQuCgoyMDEwLTA0LTA3IDAwOjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNjoKCiAgIENoZWNrIGZvciBjb20yc2VjNiwgbm90IGNvbTJzZWMuCgoyMDEwLTA0LTA2IDIyOjUxICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIE1vdmUgZGlyZWN0b3J5IGNyZWF0aW9uIGJlZm9yZSB0aGUgZGlyZWN0b3JpZXMgYXJlIHVzZWQuCgoyMDEwLTA0LTA2IDExOjAzICBkdHMxMgoKICAgKiBGQVE6CgogICBQeXRob24gaXMgYXBwYXJlbnRseSBjbGllbnQtc2lkZSBvbmx5LgoKMjAxMC0wNC0wNiAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNldCBzdXBwbGVtZW50YXJ5IGdyb3VwcyBiZWZvcmUgY2hhbmdpbmcgVUlECiAgICh3aGljaCBwcm9iYWJseSBpbnZvbHZlcyBnaXZpbmcgdXAgcHJpdmlsZWdlcykKCjIwMTAtMDQtMDYgMDg6NTcgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIERvY3VtZW50IGxhcmdlLWRpc2sgc3RhdGlzdGljcyBhcyBsYXRjaGluZyBhdCAyVGIgKHJhdGhlciB0aGFuCiAgIHdyYXBwaW5nKS4KCjIwMTAtMDQtMDYgMDE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLjEuZGVmOgoKICAgTkVXUzogbWliMmM6IG1pYjJjIGNhbiBub3cgb3B0aW9uYWxseSBydW4gc2VkIG9uIGdlbmVyYXRlZCBjb2RlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb252ZXJ0IEMrKyBjb21tZW50cyB0byBDIGNvbW1lbnRzCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIHB0ciBjaGVjayBiZWZvcmUgcHJ0IHVzZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZmlsZW5hbWUgdG8gZGVidWcgb24gbmV3IGNlcnRzOyBtYWtlIHN0YXRpYyBmdW5jIHRvIHJldHVybgogICBtb2RlIG5hbWVzCgoyMDEwLTA0LTA2IDAwOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFsbG93IGEgZm91bmQgZmluZ2VycHJpbnQgc2VsZi1zaWduZWQgY2VydCBmb3Igbm93OyBldmVudHVhbGx5CiAgIG5lZWQgdG8gcmVzcGVjdCB0aGUgTUlCIGNvbmZpZyB0YWJsZQoKMjAxMC0wNC0wNiAwMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBta2RpciBzbm1wbGliL3RyYW5zcG9ydHMgd2hlbiBETkUgZm9yIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNvdXJjZQogICBkaXIKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBlcnJvciBjb2RlIGNsZWFudXAgZm9yIHRsc2Jhc2Vfd3JhcHVwX3JlY3YKCjIwMTAtMDQtMDUgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3JlIGJldHRlciBlcnJvci9kZWJ1ZyBjb2RlcwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIGZ1dHVyZS1SRkMgYWJvdXQgdGhlIGltcGxlbWVudGF0aW9uOyB1c2UKICAgZmxhZ3MgZm9yIHNlcnZlci9jbGllbnQgc3BlY2lmaWNhdGlvbiBmb3IgZXhwYW5zaW9uCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciB1c2FnZSBjb25zdHJhaW50cwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgZnVuY3Rpb24gcHJvdGVjdGlvbiBsb2dpYyBpbiBhIHRvcC1sZXZlbCBjaGVjawoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggaW5pdCBvcmRlcmluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG12IHRsc2Jhc2UgaW5pdCBmdW5jdGlvbiB0byBhIHByb3BlciBjdG9yIGZvciBhdXRvLWNhbGxpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogZ2VuZXJhdGUgdGhlIHRyYW5zcG9ydCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBsaXN0CiAgIGR5bmFtaWNhbGx5IGFuZCB1c2UgaXQKCjIwMTAtMDQtMDIgMTY6MzUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBtb3ZlZCB0cmFuc3BvcnQgY29kZSBpbnRvIGEgc2VwYXJhdGUgc3ViZGlyZWN0b3J5IGluCiAgIHNubXBsaWIKCjIwMTAtMDQtMDIgMDk6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRG8gbm90IGF0dGVtcHQgdG8gY2hlY2sgc2l6ZW9mIHZvaWQgdG8gb2J0YWluIHRoZSBhbW91bnQgb2YKICAgbWVtb3J5IHRvIGNvcHkuCgoyMDEwLTA0LTAxIDE3OjExICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbnN0ZWFkIG9mIGZ3ZCBkZWNsYXJlcywgcmVxdWlyZSBvdGhlciBoZWFkZXIKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG91dGRhdGVkIGRlYnVnIG1zZwoKMjAxMC0wNC0wMSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjZXJ0YXBpIHRvIGZpbmQgY2VydHMva2V5cwoKMjAxMC0wNC0wMSAxNDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlZ2lzdGVyIGV4dHJhWDUwOVN1YkRpciB0b2tlbgoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTM6MTMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBhZGQgcGVyc2lzdGVudCBzdG9yYWdlOyB0b2tlbiBmb3IgY3JlYXRpbmcgZW50cmllcyBpbiBzbm1wZC5jb25mOwogICBmaXggaW5kZXgKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgY2VydGlmaWNhdGUgYXBpIHRvIHN1cHBvcnQgdGxzL2R0bHMKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBhZGQgZnVuY3Rpb25zIHRvIGdldCBmaW5nZXJwcmludCBmcm9tIGNlcnQgYW5kIGxvZwogICBvcGVuc3NsIGVycnMKCjIwMTAtMDQtMDEgMTI6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IHR5cG8KCjIwMTAtMDQtMDEgMTA6MzMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wNC0wMSAxMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiB0YWJsZV9kYXRhIHRlbXBsYXRlIGVuaGFuY2VtZW50cwogICAtIGFkZCBlcnJvciBjaGVja3MgZHVyaW5nIHRhYmxlIGluaXQKICAgLSBjcmVhdGUgY2FjaGUgZWFybGllciBzbyB3ZSBjYW4gYmFpbCBvbiBmYWlsdXJlCiAgIC0gYWRkIG9wdGlvbiB0byBjcmVhdGUvZGVsZXRlIHJvdyB3L291dCBhZGRpbmcvcmVtb3ZpbmcgZnJvbQogICBjb250YWluZXIKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmg6CgogICBhZGQgaGVscGZ1bCBwYXJhbSBuYW1lcyBhcyBoaW50cyBpbiBwcm90b3R5cGUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBzZWFyY2ggZm9yIGNvbnRhaW5lciBzcGVjaWZpYyBjb250YWluZXIgYmVmb3JlIGdlbmVyaWMKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGVuaGFuY2UgZmlsZSB1dGlscyBhbmQgZGlyIHV0aWxzCiAgIC0gYWRkIG9wdGlvbmFsIHN0YXRzIHN0cnVjdCB0byBuZXRzbm1wX2ZpbGUKICAgLSBnZW5lcmFsaXplIGRpciBjb250YWluZXIgZmlsdGVyLCBhZGQgY29udGV4dCB0byBjYWxsYmFjawogICAtIGFkZCBvcHRpb24gdG8gc3RvcmUgbmV0c25tcF9maWxlcyAody9zdGF0cykgaW4gY29udGFpbmVyCiAgIGluc3RlYWQgb2YganVzdCBuYW1lCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgcHJvdG90eXBlIHRvIGhlYWRlcjsgY2hlY2sgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDEwLTAzLTMxIDE1OjM0ICBqc2FmcmFuZWsKCiAgICogIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9zbm1wLWJyaWRnZS1taWIsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL3NubXAtYnJpZGdlLW1pYi4xLCBtaWJzL0JSSURHRS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAyOTUyNzA4OiBmcm9tIEplbnMgT3N0ZXJrYW1wOiBBZGRlZCBQZXJsCiAgIGltcGxlbWVudGF0aW9uIG9mIEJSSURHRS1NSUIKCjIwMTAtMDMtMzEgMDI6MTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVyIHBhY2tldCBsYWJlbGluZyBmb3IgRFRMU1VEUAoKMjAxMC0wMy0zMSAwMjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY29tbW9uIGNvbnRleHQgY3JlYXRpb24gY29kZQoKMjAxMC0wMy0zMCAyMzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgVExTIG1ldGhvZCB0byBUTFN2MSBmcm9tIFNTTHYyMwoKMjAxMC0wMy0zMCAyMzoyMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIG1vcmUgY29tbW9uIGRhdGEgYW5kIGZ1bmN0aW9uYWxpdHkgaW50byB0aGUgVExTIGJhc2UKCjIwMTAtMDMtMzAgMjM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWlub3IgVExTIGNvZGUgY2xlYW51cAoKMjAxMC0wMy0zMCAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmV3b3JrIGlmKCkgd3JhcHBpbmcgZm9yIGxlc3MgY29uZnVzaW9uIGluIGVycm9yIGhhbmRsaW5nCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb2RlIGNvbnNvbGlkYXRpb24gaW4gc3RhcnRfbmV3X2NhY2hlZF9jb25uZWN0aW8KCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtZSBnZW5lcmljICdiaW8nIHBvaW50ZXIgdG8gJ3JlYWRfYmlvJyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5CgoyMDEwLTAzLTMwIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIGJ1ZmZlcmVkIGRhdGEgY3JlYXRpb24gdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UKCjIwMTAtMDMtMzAgMTc6NTIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCBnZW4gd3JhcHBlciBzY3JpcHQgLSBub3Qgd29ya2luZwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2xlYW4gdXAgZXJyb3Igb3V0cHV0IHNvIGl0IGRvZXNuJ3QgcmVwb3J0IHdhbnRfcmVhZCBhbmQKICAgd2FudF93cml0ZSBlcnJvcnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtaW5nIG9mIHNlbmRpbmcgZnVuY3Rpb24gZm9yIGNsYXJpdHkgYW5kIGNoZWNrIG9uZSBtb3JlCiAgIGxvY2F0aW9uIGZvciBuZWVkZWQgb3V0Z29pbmcgcGFja2V0cwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgZHRsc3VkcCB0cmFjaW5nIHRva2VucwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENIQU5HRVM6IGFkZGVkIGEgbmV3IERFQlVHVFJBQ0VUT0soKSBtYWNybwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmV0dGVyIGNvbW1lbnRzIGFuZCBtb3JlIHdvcmsgb24gc2VuZGluZyBidWZmZXJlZCBkYXRhIGluIHRoZQogICByaWdodCBzcG90cwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJndW1lbnRzIHRvIGdldF9jb21tb25OYW1lCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgb2YgY2FjaGluZyBvZiBwYWNrZXRzIGJlZm9yZSB0aGV5IGNhbiBiZSBzZW50IHZpYSBEVExTCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBoYW5kbGUgU1NMX1dBTlRfUkVBRC9XUklURSBiZXR0ZXI7IHN0aWxsIG5lZWQgdG8gYnVmZmVyIG91dGdvaW5nCiAgIHdyaXRlIGRhdGEKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1pbm9yIGNoYW5nZSB0byBvdXRwdXQgZXJyb3IgcHJpbnRpbmcKCjIwMTAtMDMtMjkgMTU6MjAgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogc25tcGQ6IEZpeCBoYW5kbGluZyBvZiBtdWx0aXBsZSBtYXRjaGluZyBWQUNNIGVudHJpZXMuCiAgIChVc2UgdGhlICJiZXN0IiBtYXRjaCwgcmF0aGVyIHRoYW4gdGhlIGZpcnN0IG9uZSkuCiAgIFJlcG9ydGVkIGJ5IEFkYW0gTGV3aXMuCiAgIE5vdGUgdGhhdCB0aGlzIGNvdWxkIHBvdGVudGlhbGx5IGFmZmVjdCB0aGUgYmVoYXZpb3VyIG9mCiAgIGV4aXN0aW5nIGFjY2VzcyBjb250cm9sIGNvbmZpZ3VyYXRpb25zLgoKMjAxMC0wMy0yOSAxNToxNiAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6Z2V0VmFsdWUoKTogZG9uJ3QgcmV0dXJuCiAgIGEgcG9pbnRlciB0byBhIGJ1ZmZlciBvbiB0aGUgc3RhY2suIEhvdyBjYW4gdGhpcyBoYXZlIHdvcmtlZAogICByZWxpYWJseSA/PwogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OnNldFZhbHVlKCksCiAgIEFTTl9DT1VOVEVSNjQ6IGZpeGVkIGJ1ZyB0aGF0IGNvdWxkIGNhdXNlIHRoaXMgbWV0aG9kIHRvIGZhaWwKICAgZXZlbiB3aGVuIGEgdmFsaWQgbnVtYmVyIHdhcyBwcm92aWRlZC4KCjIwMTAtMDMtMjkgMTU6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGFnZW50IGNyYXNoIHdoZW4gc2VuZGluZyBlbmNyeXB0ZWQgU05NUHYzCiAgIHRyYXBzLgogICBSZXBvcnRlZCBieSBTcmlrYXBpbGFuIEdhbmRoaQoKMjAxMC0wMy0yOSAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENhdGNoIHN0ZGVyciBvbiBXaW5kb3dzIHRvby4KCjIwMTAtMDMtMjkgMTE6NDggIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDMtMjkgMTE6MTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGRlc3Ryb3lpbmcgYQogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGZhaWx1cmUgb2YKICAgY3JlYXRpbmcgYSBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSB0aGUKICAgTmV0U05NUDo6T0lEOjpnZXR0YWJsZSgpIHN1YnJvdXRpbmUuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIHRyaWdnZXJlZCBieQogICB0aGUgaW1wbGVtZW50YXRpb24gb2YgTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgYSBQRFUgcHJvY2Vzc2luZwogICBlcnJvciBpbiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBtZW1vcnkgbGVha3MgdHJpZ2dlcmVkIGJ5IGNyZWF0aW5nIGFuIFNOTVB2MwogICBzZXNzaW9uIHZpYSBOZXRTTk1QOjpTTk1QLgogICAKICAgQWxzbyBmaXhlZCB0aGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBhY2Nlc3NlcyB0cmlnZ2VyZWQgYnkKICAgYWRkaW5nIGEgdmFyYmluZCB0byBhIFBEVSB2aWEgTmV0U05NUDo6U05NUCBpbnRyb2R1Y2VkIGEgZmV3IGRheXMKICAgYWdvLgogICAKICAgVGhlIGJ1Z3MgbWVudGlvbmVkIGFib3ZlIGhhdmUgYmVlbiBmb3VuZCBieSBpbnNwZWN0aW5nIHRoZSBvdXRwdXQKICAgb2YgdGhlIGZvbGxvd2luZyBzaGVsbCBjb21tYW5kOgogICBjZCBwZXJsICYmIHZhbGdyaW5kIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIG1ha2UKICAgdGVzdAoKMjAxMC0wMy0yOSAxMDo1OSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFN3aXRjaGVkIGJhY2sgdG8gdGhlIHByZXZpb3VzIHdheSBvZiBzdGFydGluZyBwcm9jZXNzZXMKICAgYXN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCBpcyBtb3JlIHJlbGlhYmxlLgoKMjAxMC0wMy0yOSAwOToyNyAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIERvIG5vdCBvbmx5IHNhdmUgc25tcGQgLyBzbm1wdHJhcGQgbG9ncyBidXQgYWxzbyB0aGUgc3Rkb3V0IC8KICAgc3RkZXJyIG91dHB1dCBnZW5lcmF0ZWQgYnkgdGhlc2UgcHJvY2Vzc2VzLgoKMjAxMC0wMy0yOCAxNjowOSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENoYW5nZXMgaW4gcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKICAgLSBBZGRlZCBjb21tYW5kLWxpbmUgb3B0aW9uIC1kIGZvciBzbm1wZCBhbmQgc25tcHRyYXBkLgogICAtIHNubXBkIGFuZCBzbm1wdHJhcGQgb3V0cHV0IGlzIG5vdyBzYXZlZCB0byBhIGxvZyBmaWxlIChvbmUgcGVyCiAgIHRlc3QpLgogICAtIFJld3JvdGUgUGVybCBjb2RlIGZvciBzdGFydGluZyB0aGUgc25tcGQvc25tcHRyYXBkIHByb2Nlc3NlcwogICBzdWNoIHRoYXQgdGhlIHNhbWUgY29kZSB3b3JrcyBvbiBVbml4IGFuZCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yOCAxMzozNyAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9tYWxsb2MoKSwKICAgbmV0c25tcF9jYWxsb2MoKSwgbmV0c25tcF9yZWFsbG9jKCksIG5ldHNubXBfc3RyZHVwKCkgYW5kCiAgIG5ldHNubXBfZnJlZSgpLgogICBDSEFOR0VTOiBXaW4zMjogc25tcGxpYjogcmVtb3ZlZCB0aGUgdHJvdWJsZXNvbWUgI2RlZmluZSBtYWxsb2MKICAgbmV0c25tcF9tYWxsb2MgZXRjLiBUaGlzIG1lYW5zIHRoYXQgd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucyBmcm9tCiAgIHRoZSBOZXQtU05NUCBETEwgZnJvbSBDIG9yIEMrKyBjb2RlIHRoYXQgaXMgYmVpbmcgbGlua2VkIGFnYWluc3QKICAgYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBNU1ZDIHJ1bnRpbWUgRExMIHRoYW4gdGhlIE5ldC1TTk1QIERMTCwKICAgYW5kIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkgdGhhdCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBOZXQtU05NUAogICBETEwsIHlvdSB3aWxsIGVpdGhlciBoYXZlIHRvIGNhbGwgdGhlIE5ldC1TTk1QIG1lbW9yeSBhbGxvY2F0aW9uCiAgIGZ1bmN0aW9ucyBleHBsaWNpdGx5IG9yIHJlZGVmaW5lIG1hbGxvYygpIGV0Yy4geW91cnNlbGYuCgoyMDEwLTAzLTI4IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeGVkIGEgcmVjZW50bHkgcmVpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAzLTI3IDE4OjQyICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIGludm9jYXRpb24gb2YgY2FsbG9jKCkgZnJvbSBYU1VCcy4KCjIwMTAtMDMtMjYgMTk6MTYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgRm9sbG93LXVwIGZvciByMTgzNjggYW5kIHIxODM2OTogbWFkZSBzdXJlIHRoYXQgdGhlIE5ldC1TTk1QIFBlcmwKICAgZXh0ZW5zaW9ucyBjb21waWxlIHdpdGhvdXQgdHJpZ2dlcmluZyBwcmVwcm9jZXNzb3Igd2FybmluZ3MgYWJvdXQKICAgcmVkZWZpbmluZyBtYWxsb2MgZXRjLiBub3IgdHJpZ2dlciAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMgb24KICAgV2luZG93cy4KCjIwMTAtMDMtMjYgMTQ6NDQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIFJlZmFjdG9yaW5nOiBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uOgogICBuZXRzbm1wX3NldF9ub25fYmxvY2tpbmdfbW9kZSgpLgoKMjAxMC0wMy0yNiAxMTo1OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAKICAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCB1c2luZyB2YXJpYWJsZXMgb2YgdHlwZSBjaGFyIGFzIGFuCiAgIGFycmF5IHN1YnNjcmlwdC4gTm90ZTogYXMgZmFyIGFzIEkga25vdyB0aGVzZSB3YXJuaW5ncyBhcmUgb25seQogICByZXBvcnRlZCB3aGVuIHVzaW5nIHRoZSBDeWd3aW4gZ2xpYmMgaGVhZGVycy4KCjIwMTAtMDMtMjYgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlIChvbiBXaW5kb3dzIE1TVkMgd2FzIGNvbXBsYWluaW5nCiAgIGFib3V0IHNpemVfdCB3aGlsZSBwcm9jZXNzaW5nIDxuZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oPikuCgoyMDEwLTAzLTI1IDIwOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogYWdlbnR4OiBjaGFuZ2VkIGRlZmF1bHQgVENQIHRhcmdldCBmcm9tIDAuMC4wLjA6NzA1IHRvCiAgIGxvY2FsaG9zdDo3MDUuIFRoaXMgaXMgbm90IG9ubHkgYSBtb3JlIHNlY3VyZSBjaG9pY2UgYnV0IGl0IGFsc28KICAgbWFrZXMgaXQgcG9zc2libGUgb24gV2luZG93cyBzeXN0ZW1zIHRvIGxldCBhbiBBZ2VudFggc3ViYWdlbnQKICAgY29ubmVjdCB0byBhbiBBZ2VudFggbWFzdGVyIGFnZW50IHJ1bm5pbmcgb24gdGhlIHNhbWUgc3lzdGVtCiAgIHdpdGhvdXQgaGF2aW5nIHRvIHNldCB0aGUgdmFyaWFibGUgTkVUU05NUF9EU19BR0VOVF9YX1NPQ0tFVC4KCjIwMTAtMDMtMjUgMTY6MTEgIGJ2YXNzY2hlCgogICAqICBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBXaW4zMjogcGVybDogZml4ZWQgc2V2ZXJhbCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMuCiAgIE5vdGU6IHNpbmNlIGNhbGxvYygpIGlzIG5vdCByZWRlZmluZWQgaW4gPENPUkUvWFNVQi5oPiB1c2luZwogICBjYWxsb2MoKSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGxlYWRzIHRvICJGcmVlIHRvIHdyb25nIHBvb2wiCiAgIGVycm9ycywgYXQgbGVhc3Qgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTY6MDQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbW9yZSBzaWxlbnQgYnkgbm90CiAgIHJlZGVmaW5pbmcgbWFsbG9jKCkgb3IgZnJlZSgpIGR1cmluZyBjb21waWxhdGlvbiBvZiBQZXJsCiAgIGV4dGVuc2lvbnMgKHJlc3VsdGVkIGluIHdhcm5pbmdzIGFib3V0IG1hbGxvYygpIC8gZnJlZSgpCiAgIHJlZGVmaW5pdGlvbiBpbiB0aGUgUGVybCBoZWFkZXIgQ09SRS9YU1VCLmgpLgoKMjAxMC0wMy0yNSAxNTowNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBCVUc6IDI5Njk4NzI6IG1hZGUgc3VyZSB0aGF0IFNPQ0tfU1RBUlRVUCBpcyBpbnZva2VkCiAgIGJlZm9yZSBpbml0X2FnZW50KCkgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTM6MzkgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgbWFjcm9zIGluc3RlYWQgb2YgbWFnaWMgbnVtYmVycyBhcyBuZXRzbm1wX3BhcnNlX2FyZ3MgcmV0dXJuCiAgIGNvZGVzLgoKMjAxMC0wMy0yNSAxMzozMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBidWlsZCBwcm9jZXNzIGJ5CiAgIHJlbW92aW5nIHRoZSBmaWxlIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLiBXaGljaCBJUHY2CiAgIGZ1bmN0aW9ucyBhcmUgZXhwb3J0ZWQgZnJvbSBuZXRzbm1wLmRsbCBpcyBub3cgZGV0ZXJtaW5lZCBieQogICB3aGljaCBvZiB0aGUgZnVuY3Rpb25zIGluIHRoaXMgRExMIGhhdmUgYmVlbiBkZWNsYXJlZCBhcwogICBORVRTTk1QX0lNUE9SVC4KCjIwMTAtMDMtMjQgMjA6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgZG9uJ3QgdXNlIHBhc3NlZCBwdHIgYXMgdGVtcCB2YXI7IHVzZSBzbm1wX2VudW1fbGlzdHMgaW4gaW5pdAogICB0ZXN0CgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIGFkZCBORVRTTk1QX0RTX0xJQl9DRVJUX0VYVFJBX1NVQkRJUgoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgZWFybGllciAoaGF2ZSB0bHNfYm9vdHN0cmFwIGNhbGwgaXQpCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzOyBhZGQgY2VydCBkZWJ1ZyBtc2dzIGluIHNlcnZlciBzZXR1cDsgZnJlZQogICBzc2wgbG9nIGRhdGEKCjIwMTAtMDMtMjQgMTA6NDcgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDSEFOR0VTOiBhcHBzOiByZXR1cm4gbm96ZXJvIGV4aXQgY29kZSB3aGVuIHBhcnNpbmcgb2YgY2VydGFpbgogICBwYXJhbWV0ZXIgZmFpbHMuCiAgIEUuZy4gJy1BJyBwYXJhbWV0ZXIgd2l0aCB0b28gc2hvcnQgcGFzc3BocmFzZSBvciBLdSBrZXkKICAgZ2VuZXJhdGlvbiBpbiBnZW5lcmFsLgoKMjAxMC0wMy0yNCAwNzoxMSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBDb3JyZWN0IHRoZSB0eXBlIG9mIHRoZSBpZC9kZXNjcmlwdGlvbiBvZiB0aGUgT3Blbi1QRFUuCgoyMDEwLTAzLTIyIDE4OjI5ICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFVwZGF0ZXMgZm9yICJtYWtlIGNoZWNrcyI6CiAgIC0gTWFkZSBzdXJlIHRoYXQgZXhpdCBjb2RlIDAgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGlzCiAgIHN1Y2Nlc3NmdWwgYW5kIHRoYXQKICAgZXhpdCBjb2RlIDEgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGZhaWxlZC4KICAgLSBNYWRlICJtYWtlZmlsZWNoZWNrIiBza2lwIFN1YnZlcnNpb24gYm9va2tlZXBpbmcgZmlsZXMgYW5kIGFsc28KICAgdGhlIG1ha2VmaWxlCiAgIHRoYXQgY29udGFpbnMgIm1ha2VmaWxlY2hlY2siLgoKMjAxMC0wMy0yMiAxNjoxMCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQ6CgogICBGaXggdHlwbyBpbiBkZWZhdWx0IElwQWRkcmVzcyB2YWx1ZQogICAoU2VlIEJ1ZyAjMjk3MjE0MSkKCjIwMTAtMDMtMjIgMTU6NDQgIHJzdG9yeQoKICAgKiAgTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvY2FsbGJhY2suYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIGNoYW5nZSBhbGwgYXNzZXJ0KCkgdG8gbmV0c25tcF9hc3NlcnQoKTsgYWRkIGFzc2VydGNoZWNrIHRvIHRvcAogICBsZXZlbCBtYWtlZmlsZQoKMjAxMC0wMy0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogbWlicy9VQ0QtRElTS0lPLU1JQi50eHQ6CgogICBGb2xsb3ctdXAgZm9yIHIxODM0OTogYWRkZWQgbWlzc2luZyBjb21tYSBzdWNoIHRoYXQgaXQgaXMgYWdhaW4KICAgcG9zc2libGUgdG8gY29tcGlsZSBVQ0QtRElTS0lPLU1JQi4KCjIwMTAtMDMtMjIgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBGaXggYnVpbGQgd2hlbiBNSUIgbG9hZGluZyBpcyBkaXNhYmxlZCAoYnJva2VuIGJ5IFNWTiByZXZpc2lvbgogICAxODM0MSkKICAgUmVwb3J0IGRlZmF1bHQgTUlCIHBhdGggZm9yIGNsaWVudCBhcHBzIHRvby4KCjIwMTAtMDMtMjIgMTM6NTkgIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBDSEFOR0VTOiBtYW46IEJVRzogMjk3Mjg2MDogVXBkYXRlIGJyb2tlbiByZWZlcmVuY2VzCgoyMDEwLTAzLTIyIDEzOjQ5ICBkdHMxMgoKICAgKiAgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsICAgCiAgICAgIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IEJVRzogMjk3Mzg5MDogRml4IGltcG9ydHMsIERpc2tJT0VudHJ5IGxpc3QgYW5kCiAgIHJldmlzaW9uIGhpc3RvcmllcwoKMjAxMC0wMy0yMiAxMTo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgV2luMzIsIHdpbkV4dERMTDogc29sdmVkIHRoZSBteXN0ZXJ5IG9mICJBU04gdHlwZSB6ZXJvIi4gVGhlCiAgIHdpbkV4dERMTCBjb2RlIGRvZXMgbm93IG5vIGxvbmdlciB0cmlnZ2VyIGNvbnZlcnNpb25zIG9mIFdpbmRvd3MKICAgQVNOIHZhcmJpbmRzIHdpdGggQVNOIHR5cGUgemVyby4gTm90ZTogdGhpcyBjb2RlIGNoYW5nZSBkb2VzIG5vdAogICBjaGFuZ2UgdGhlIGFnZW50IGJlaGF2aW9yLgoKMjAxMC0wMy0yMCAyMDoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmg6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgoKMjAxMC0wMy0yMCAyMDoyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgQWRkZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggKHNob3VsZCBoYXZlIGJlZW4gYWRkZWQgaW4gdGhlCiAgIHByZXZpb3VzIGNvbW1pdCkuCgoyMDEwLTAzLTIwIDE5OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgCiAgICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBjaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmb3VydGggYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIGZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaAogICB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4gcGFzc2luZyBhbm90aGVyIGRhdGF0eXBlIHRoZW4KICAgY2hhciogb3IgY29uc3QgY2hhciouCiAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQKICAgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqCiAgIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCgoyMDEwLTAzLTIwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBnY2MgKE1pbkdXKS4KCjIwMTAtMDMtMjAgMTk6MDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3Igc2lncHJvY21hc2suCgoyMDEwLTAzLTIwIDA5OjE0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFJlZmFjdG9yaW5nOiBtb3ZlZCBkdXBsaWNhdGVkIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbi4KCjIwMTAtMDMtMTkgMjI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBvcnQgTUlCIGFuZCBjb25maWcgZGlyZWN0b3JpZXMgc2VhcmNoIHBhdGhzIG9uIGVycm9ycwogICAoYW5kIGluIHRoZSBoZWxwIG1lc3NhZ2UpCgoyMDEwLTAzLTE5IDEzOjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBpcyBsb2dnZWQgd2hlbgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGlzIGF0dGVtcHRlZCBtb3JlIGRldGFpbGVkLgogICAKICAgQW4gZXhhbXBsZToKICAgKGJlZm9yZSkKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAobWliSUkvc25tcCwKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCkKICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgogICAoYWZ0ZXIpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb246IE1JQiBtb2R1bGVzIG1pYklJL3NubXAgYW5kCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwgKG9pZCAuMS4zLjYuMS4yLjEuMTEpLgogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCgoyMDEwLTAzLTE5IDEyOjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG11bHRpcGxlIHZhcmJpbmQgc2V0IHJlcXVlc3RzIGFyZSBub3cKICAgcHJvY2Vzc2VkIGNvcnJlY3RseS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbWFkZSBlcnJvciBjb2RlcyBpbiBTTk1QIHJlc3BvbnNlIFBEVXMKICAgYXMgUkZDLWNvbXBsaWFudCBhcyBwb3NzaWJsZS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogaWYgbG9hZGluZyBhbiBleHRlbnNpb24gRExMIGZhaWxzLCB0aGUKICAgcmVhc29uIHdoeSBsb2FkaW5nIGZhaWxlZCBpcyBub3cgbG9nZ2VkLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRoYXQgb2NjdXJyZWQgd2hlbgogICBTbm1wRXh0ZW5zaW9uUXVlcnkoRXgpIGZhaWxlZC4gVGhpcyBtZW1vcnkgbGVhayBoYXMgYmVlbiBmb3VuZAogICB2aWEgc291cmNlIHJlYWRpbmcuIE5vdGU6IGl0IGlzIG5vdCBjbGVhciB3aGV0aGVyIGl0IHdhcyBwb3NzaWJsZQogICB0byB0cmlnZ2VyIHRoaXMgbWVtb3J5IGxlYWsuIFRoaXMgbGVhayBpcyBjZXJ0YWlubHkgbm90IHRyaWdnZXJlZAogICBieSBldmVyeSByZXF1ZXN0IGZvciB3aGljaCBhIHJlc3BvbnNlIHdpdGggbm9uLXplcm8gZXJyb3Igc3RhdHVzCiAgIGlzIHNlbnQgYmFjay4KCjIwMTAtMDMtMTggMTY6MjkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGtlZXAgY291bnQgb2YgZW5hYmxlZCBsb2dzOyB1c2UgdGhpcyBjb3VudCB0byBkZXRlcm1pbmUgd2hlbiB0bwogICBsb2cgdG8gc3RkZXJyCgoyMDEwLTAzLTE4IDE2OjI4ICByc3RvcnkKCiAgICogIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IHNubXAgdG9rZW4gbG9nT3B0aW9uIGFsbG93cyBzcGVjaWZ5aW5nIGxvZwogICBkZXN0aW5hdGlvbnMgdmkgY29uZiBmaWxlcwogICAtIGlmIHN0ZGVyciBsb2cgZW5hYmxlZCBiZWNhdXNlIG9mIG5vIGxvZyBkZXN0aW5hdGlvbiwgdHVybiBpdAogICBvZmYgd2hlbiBhCiAgIGxvZyBkZXN0aW5hdGlvbiBpcyBlbmFibGVkCiAgIC0gZG9uJ3QgY2FsbCBuZXRzbm1wX2VuYWJsZV9zdGRlcnJsb2coKSBmcm9tIGFwcHMgYW55bW9yZQoKMjAxMC0wMy0xOCAxNTozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgdWRwIHRyYW5zcG9ydCBpbmhlcml0YW5jZSB0d2Vha3MKICAgLSBtb3ZlIGJhc2ljIHVkcCByZWN2ZnJvbS9zZW5kdG8gY29kZSBmcm9tIFVEUERvbWFpbiB0bwogICBVRFBCYXNlRG9tYWluCiAgIC0gdHdlYWsgdXBkIHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc3Rpb24KICAgLSB0d2VhayB1ZHBpcHY0IHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc2lvbgogICAtIGFsc28gZml4ZWQgbmV0c25tcF9pcHY0XyogLT4gbmV0c25tcF91ZHBpcHY0XyoKICAgLSB0d2VhayBEVExTVURQRG9tYWluIG90IHVzZSB1ZHBiYXNlXyogaW5zdGVhZCBvZiB1ZHBfKgoKMjAxMC0wMy0xOCAxNToyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvdGVjdCBjZXJ0IGhlYWRlciBhbmQgaW5pdCBjYWxsIHdpdGggaWZkZWZzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHVzZSBuZXcgdXRpbGl0eSByb3V0aW5lIGZvciBjZXJ0IG5hbWVzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcF9vcGVuc3NsIGhlYWRlciBhZnRlciBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhZGQgcm91dGluZXMgdG8gcHVsbC9kdW1wIG5hbWVzIGZyb20gWDUwOSBjZXJ0cwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgZW51bSBsaXN0cyB0byBtYW5hZ2UgZGlyZWN0b3J5IGluZGV4ZXMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgaW5pdGlhbGl6ZSBzdGF0aWMgc3RvcmFnZSBiZWZvcmUgdXNlOyBwcm90ZWN0IGVudW0gaW5pdCBmcm9tCiAgIG11bHRpcGxlIGNhbGxzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgaW5mbyBhYm91dCBuZXcgdHNtL3RscyBtaWJzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCB0byBzbm1wIGluaXQKCjIwMTAtMDMtMTcgMTM6MzcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgTUlCIHJldmlzaW9uIGhpc3RvcnkuCgoyMDEwLTAzLTE3IDEzOjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgb25lIGxlYWstYXQtZXhpdC4KCjIwMTAtMDMtMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyOTcxMjU3OiBGaXhlZCB3aW5FeHRETEwgaGFuZGxpbmcgb2YgbXVsdGktdmFyYmluZAogICBnZXROZXh0IHJlcXVlc3RzIHdpdGggT0lEcyBpbiByZXZlcnNlIGxleGljb2dyYXBoaWNhbCBvcmRlci4KCjIwMTAtMDMtMTcgMTA6MjUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTW9yZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IHR1bmluZy4KCjIwMTAtMDMtMTYgMTk6MzEgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIENvbXBpbGVzIG5vdyB3aXRoIE1JQiBjb21waWxlcnMgdGhhdCBkbyBub3QgcmVjb2duaXplIGEgZG91YmxlCiAgIGRhc2ggYXMgdGhlIGVuZCBvZiBhIE1JQiBjb21tZW50LgoKMjAxMC0wMy0xNiAxOToyNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeGVkIHR3byBzeW50YXggZXJyb3JzLgoKMjAxMC0wMy0xNiAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIGJ1ZyBpbiBnZXROZXh0IGhhbmRsaW5nIHRoYXQKICAgY291bGQgY2F1c2UgdGhlIE1JQiBvdXRwdXQgdG8gYmUgdHJ1bmNhdGVkLgoKMjAxMC0wMy0xNiAxODo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNYWRlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgbW9yZSBkZXRhaWxlZC4KCjIwMTAtMDMtMTYgMTU6MjQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg6CgogICBNYWRlIHN1cmUgdGhhdCBDKysgcHJvZ3JhbXMgdGhhdCBpbmNsdWRlIE5ldC1TTk1QIGhlYWRlciBmaWxlcwogICBjb21waWxlIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoyMCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggLS1kaXNhYmxlLWRlcHJlY2F0ZWQgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIERpc2FibGUgYWxsIHRoZSBwcmludGluZyBpZiBkZWJ1ZyBvdXRwdXQgaXMgb2ZmLgoKMjAxMC0wMy0xNSAwMDoxNyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTUgMDA6MDcgIHRhbmRlcnMKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTQgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIG1ha2Ugc3VyZSBoZWFkZXIgaWZkZWYgbmFtZSBpcyB1bmlxdWUKCjIwMTAtMDMtMTQgMjE6MDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgYWRkIG1pc3NpbmcgaW5pdC9zaHV0ZG93biBwcm90b3R5cGVzIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wMy0xNCAyMTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBtb3ZlIGRlYnVnIG1lc3NhZ2UgZWFybGllcgoKMjAxMC0wMy0xNCAyMTowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF9pbml0X2NvbnRhaW5lcjsgZml4IGNvbXBsZXIgd2FybmluZwoKMjAxMC0wMy0xNCAyMDo1MSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDb3JyZWN0IG5ldHNubXBfYXNzZXJ0X29yX3JldHVybiBhbmQgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCiAgIGZvciB0aGUgTkVUU05NUF9OT19ERUJVR0dJTkcgY2FzZQoKMjAxMC0wMy0xNCAxOToxMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbmFtZSBjZXJ0IGluaXQvc2h1dGRvd24gZnVuY3M7IG9ubHkgY29tcGlsZSBjZXJ0X3V0aWxzIGlmCiAgIHVzaW5nL2hhdmUgU1NMOyBpbml0IGNlcnRzIGZyb20gdGxzIGJhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2FsbCBuZXRzbm1wX2luaXRfb3BlbnNzbCBpbnN0ZWFkIG9mIG5ldHNubXBfaW5pdF90bHNiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgb2JqZWN0cyBpbiB2ZXJzaW9uIDA4IG9mIHRoZSBkdGxzIGRyYWZ0CgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliLCBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBpbXBvcnQgaW5pdGlhbCBjb2RlIGZvciBkdGxzIG1pYnMKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICBUTFNUTS1NSUIgZnJvbSBkcmFmdC1pZXRmLWlzbXMtZHRscy10bS0wOS50eHQKCjIwMTAtMDMtMTQgMTc6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgZmV3IG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDE0OjEwICBidmFzc2NoZQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3Mzg0OiBjaGFuZ2VkIE5FVFNOTVBfRFNfTUFYX1NVQklEUyBmcm9tIDQwIHRvCiAgIDQ4LgoKMjAxMC0wMy0xNCAxMzo1MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDaGFuZ2VzOgogICAtIFJlbW92ZWQgLVduby1jaGFyLXN1YnNjcmlwdHMgZnJvbSBERVZGTEFHUy4gVXNpbmcgYSB2YXJpYWJsZSBvcgogICBleHByZXNzaW9uIG9mCiAgIHR5cGUgY2hhciBhcyBhbiBhcnJheSBpbmRleCBpcyBhbG1vc3QgYWx3YXlzIGFuIGVycm9yLgogICBGdXJ0aGVybW9yZSwKICAgLVdjaGFyLXN1YnNjcmlwdCBkb2VzIG5vdCB0cmlnZ2VyIGFueSB3YXJuaW5ncyBvbiB0aGUgTmV0LVNOTVAKICAgY29kZSBiYXNlLgogICAtIFJlbW92ZWQgLVdpbmxpbmUgZnJvbSBERVZGTEFHUy4gTm90IG9ubHkgd2FzIG5vYm9keSBwYXlpbmcKICAgYXR0ZW50aW9uIHRvIHRoZQogICBtZXNzYWdlcyB0cmlnZ2VyZWQgYnkgLVdpbmxpbmUsIGJ1dCByZWNlbnQgdmVyc2lvbnMgb2YgdGhlIGdjYwogICBjb21waWxlciBhcmUKICAgYmV0dGVyIHRoYW4gaHVtYW5zIGF0IGRlY2lkaW5nIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5saW5lZAogICBhbmQgd2hpY2gKICAgb25lcyBub3QuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVyYW4gYXV0b3JlY29uZi4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTM6MzYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVtb3ZlZCB0aGUgJzB4JyBwcmVmaXggYWdhaW4gZnJvbSBhIGRlYnVnIHN0YXRlbWVudCB0aGF0IHdhcwogICBpbnRyb2R1Y2VkIGluIHIxODI4Mi4KCjIwMTAtMDMtMTMgMTk6MDcgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9UcmFwUmVjZWl2ZXIvcHBwb3J0LmgsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlCiAgIHBlcmwgc3ViZGlyZWN0b3J5LgogICBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuCgoyMDEwLTAzLTEzIDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmUgdGhlIFRMU1RDUCBET01BSU4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCBpZmRlZiB0eXBvCgoyMDEwLTAzLTEyIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgZGVidWdnaW5nIHN5bWJvbCBuYW1lcyB0byBhIGdlbmVyaWMgdGxzIHN0cmluZwoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBpbml0aWFsIHdvcmtpbmcgU05NUCBvdmVyIFRMUyBvdmVyIFRDUCBjb25uZWN0aW9uCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBwcmludCBhIG1vcmUgY29tcGxldGUgT3BlblNTTCBzdGFjawoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggYXNzZXJ0IHN0YXRlbWVudHMKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgYWRkZWQgYW4gYWNjZXB0ZWRfYmlvIHBvaW50ZXIgZm9yIHRoZSBiaW8gYWZ0ZXIgU1NMX2FjY2VwdAoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIHRoZSBhYmlsaXR5IGZvciBmX2NvcHkgYW5kIGZfY29uZmlnCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIG1pc3NpbmcgOwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGQgYSBmX2NvcHkgcG9pbnRlcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICByZXR1cm4gaW50IG5vdCBpbnQgKiBvbiBlcnJvcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBhIGZfY29uZmlnIGZ1bmN0aW9uIGZvciB0cmFuc3BvcnRzCgoyMDEwLTAzLTEyIDExOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBQQVRDSDogMjg1MDA2NzogU3VwcHJlc3MgZXh0cmFuZW91cyAiaW5kZXgiCiAgIGhlYWRlciB0b2tlbgogICBQYXRjaCBzdXBwbGllZCBieSBEYW4gTmVsc29uCgoyMDEwLTAzLTEyIDExOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mCiAgIGdldHVsb25nZnJvbXN5c2NsYXNzbmV0c3RhdGlzdGljcygpCgoyMDEwLTAzLTExIDE2OjUyICBkdHMxMgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSBmb3JtYXQgb2YgdGhlIC1lLy1FIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKMjAxMC0wMy0xMSAxNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKGFiYW5kb25lZCkgJ2RhdGFzZXQyJyBoZWxwZXIuCgoyMDEwLTAzLTExIDE1OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgRG9uJ3QgaW5pdGlhbGlzZSB0aGUgVExTIHRyYW5zcG9ydCB1bmxlc3MgaXQncyBhY3R1YWxseSBiZWVuCiAgIGNvbmZpZ3VyZWQgaW4uCgoyMDEwLTAzLTExIDE1OjQ3ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgdXNlIFNOTVBfVE1QRElSIGluc3RlYWQgb2YgVE1QRElSCgoyMDEwLTAzLTExIDE1OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBxdWVyeSByaWdodCBib29sICh0c20gcHJlZml4IGlzIGxpYiBib29sLCBub3QgYXBwKQoKMjAxMC0wMy0xMSAxNTowOCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5NTIwMzQ6IFJldHVybiBvZiB0aGUgR3JlYXQgU3VTRSAnc3ByaW50ZicKICAgSHVudC4uLgogICBQYXRjaCBzdXBwbGllZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTQ6NTUgIGR0czEyCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5Mzc5OTY6IEFkZCBEYXRlOiBoZWFkZXIgdG8gZW1haWwgc2VuZCBieQogICB0cmFwdG9lbWFpbAoKMjAxMC0wMy0xMSAxNDo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2NzQwMDogUmV0cmlldmUgZXJyb3IgY291bnRlcnMgZm9yIHRoZQogICBFdGhlckxpa2UtTUlCCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzLgoKMjAxMC0wMy0xMSAxNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY4NjQyOiBDYXRjaCBvdmVyZmxvdyBvZiBwYXNzLXRocm91Z2gKICAgY29tbWFuZCBidWZmZXIuCiAgIFBhdGNoIGZyb20gQW5kcmVhcyBKYWVnZXIvTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDEyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1NjY1NzogSGFuZGxlIG92ZXItbGVuZ3RoIEFnZW50WCBPSURzLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2IgV2VzdAoKMjAxMC0wMy0xMSAxMjoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVidWcgcGFyYW1ldGVyLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIChkdW1teSkgcmV0dXJuIHZhbHVlLCB0byBzdXBwcmVzcyBjb21waWxlcgogICB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzIG9mIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdy4KICAgVGhpcyBkb2Vzbid0IF9hY3R1YWxseV8gcHJvdGVjdCBhZ2FpbnN0IHN1Y2ggYW4gb3ZlcmZsb3csCiAgIHNpbmNlIHRoZSB0YXJnZXQgYnVmZmVyIGlzIG5vbi1lbXB0eSwgc28gc3RybmNhdCBjYW4ndAogICB1c2UgaXQgYWxsIGFueXdheS4gQnV0IHRoaXMgc2hvdWxkIGF0IGxlYXN0IG1pc2xlYWQgdGhlCiAgIGNvbXBpbGVyIHN1ZmZpY2llbnRseSB0byBzaHV0IGl0IHVwIQogICAKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDExOjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIFJlcGxhY2UgYmFja3F1b3RlIHdpdGggc2luZ2xlIHF1b3RlIGluIGNvbmZpZ3VyZSBvdXRwdXQgbWVzc2FnZS4KICAgV2hpbGUgdGhpcyBjaGFuZ2UgaXMgcHJvYmFibHkgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgaXQgZmVlbHMKICAgc2Vuc2libGUgdG8gYXZvaWQgdGhpcyBwYXJ0aWN1bGFyIHVzZSBvZiBiYWNrcXVvdGVzLCBKdXN0IEluCiAgIENhc2UuCiAgIFNlZSBkaXNjdXNzaW9uIGluIFBhdGNoICMyOTUyMTY5CgoyMDEwLTAzLTExIDExOjQzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDI5NTIxNDA6IE92ZXJmbG93IGNvdW50ZXIzMiBhbmQgZ2F1Z2UzMgogICBvbiA2NGJpdCBzeXN0ZW1zIGNvcnJlY3RseQogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjk1MjAyMDogRXhwbGljaXRseSBzZXQgcGVybWlzc2lvbiBvbgogICB0ZW1wb3JhcnkgdGVzdGluZyBvdXRwdXQgZGlyZWN0b3JpZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0by4KCjIwMTAtMDMtMTEgMTE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTUwODQ1OiBGaXggaWZIaWdoU3BlZWQgY2FsY3VsYXRpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDA4OjI2ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL09JRC54cywgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgTWFkZSBjb21waWxhdGlvbiBvZiB0aGUgUGVybCBtb2R1bGUgTmV0U05NUC5wbSBvbiBXaW5kb3dzIG1vcmUKICAgc2lsZW50OiBhZGRlZCBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIGFuZCBtYWRlIHN1cmUgdGhhdCAjaW5jbHVkZQogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IG9jY3VycyBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGUgZmlsZQogICB0aGF0IGRlZmluZXMgX1dJTjMyX1dJTk5ULgoKMjAxMC0wMy0xMCAyMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBjcmVhdGUgaW5kZXhlcyBmb3IgY2VydGlmaWNhdGVzIGluIGNvbmZpZyBwYXRoCgoyMDEwLTAzLTEwIDE4OjQ4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBBZGRlZCAiI2luY2x1ZGUgPHVuaXN0ZC5oPiIgc3VjaCB0aGF0IG9uIFVuaXggc3lzdGVtcyB0aGUKICAgY29tcGlsZXIgZG9lcyBub3QgcHJpbnQgYSB3YXJuaW5nIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IKICAgdGhlIGZ1bmN0aW9uIGNsb3NlKCkuCgoyMDEwLTAzLTEwIDE4OjMwICByc3RvcnkKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuNi5kZXYKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHVwZGF0ZSBWZXJzaW9uLU11bmdlIGZvciByZW5hbWVkIGNvbmZpZ3VyZS5hYwoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBzYXZlIGNvbmZpZ3VyZSBjYWNoZSBldmVyeSBvbmNlIGluIHdoaWxlCgoyMDEwLTAzLTEwIDE2OjEyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgUmVvcmRlcmVkIHNvbWUgb2YgdGhlIE1ha2VmaWxlIHJ1bGVzIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZQogICBkaWZmcyB3aXRoIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLgoKMjAxMC0wMy0xMCAxNjoxMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMiwgYmF0Y2ggYnVpbGRpbmc6IERMTCBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTEwIDE2OjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIGEgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nIGJ5IGFkZGluZyBhIGZvcndhcmQKICAgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbiBfY2FjaGVfZnJlZSgpLgoKMjAxMC0wMy0xMCAxNjowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBXaW4zMi4KCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgbWlzc2luZyBjb250cmlidXRvcnMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggcG90ZW50aWFsIGRvdWJsZSBmcmVlIGluIENPTlRBSU5FUl9GUkVFCiAgIC0gYWxzbyBhZGRlZCBzZXZlcmFsIGNvbXBhcmUgcm91dGluZXMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBmcmVlaW5nIGEgY2FjaGUsIHN0b3AgdGltZXIgYW5kIGNhbGwgY2FjaGUKICAgZnJlZSBmdW5jCiAgIC0gYWxzbyBhZGQgbmV0c25tcF9jYWNoZV9yZW1vdmUKCjIwMTAtMDMtMTAgMDM6NTIgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdW5kbyBjb21taXQgMTgyMzQKCjIwMTAtMDMtMTAgMDM6NDEgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTWVyZ2UgYnJhbmNoICdwdWxsbWUnIG9mIC4uL3RydW5rLXN0YWdpbmcKCjIwMTAtMDMtMDkgMTc6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfcmVhZF9tb2R1bGUoKSBmcm9tIG5ldHNubXAuZGxsCiAgIHN1Y2ggdGhhdCBOZXRTTk1QLnBtIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMDkgMTc6NDcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFNpbXBsaWZpZWQgdHdvIG1ha2VmaWxlcyB1c2VkIGJ5IGJ1aWxkLmJhdCAoV2luMzIpLgoKMjAxMC0wMy0wOSAxNzoyNCAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJ1aWxkaW5nIE5ldFNOTVAucG0gZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBjb21waWxlciB3YXJuaW5ncyBhYm91dCByZWRlZmluaW5nIF9XSU4zMl9XSU5OVCBub3IKICAgTlRERElfVkVSU0lPTi4KCjIwMTAtMDMtMDkgMTc6MjIgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBOZXRTTk1QLnBtIG1vcmUgc2lsZW50IGJ5CiAgIGFkZGluZyB0aGUgTVNWQyBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTLgoKMjAxMC0wMy0wOSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSBkZWJ1ZyBtc2cgdXNlZCBkdXJpbmcgZGVidWdnaW5nCgoyMDEwLTAzLTA5IDE3OjAyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgd3JhcHBlciAtIHRlc3RpbmcgcmVwbyB3cml0ZSBwcml2cwoKMjAxMC0wMy0wOSAxMDoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBidWlsZCBydWxlcy4gVGhlc2UgZHVwbGljYXRlIHJ1bGVzIHdlcmUKICAgaGFybWxlc3MgYnV0IHRyaWdnZXJlZCBhIHdhcm5pbmcuCgoyMDEwLTAzLTA5IDAyOjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZGlyZWN0b3J5IGNvbnRhaW5lciBlbmhhbmNlbWVudHMKICAgLSBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrCiAgIC0gYWRkIGZpbHRlciBjYWxsYmFjayB0byBmaWx0ZXIgZmlsZXMgcmV0dXJuZWQKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiByZWxhdGl2ZSBhbmQgbm90IGZ1bGwgcGF0aHMKICAgLSBhZGQgb3B0aW9uIHRvIHNvcnQgcmV0dXJuZWQgbGlzdAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIGVtcHR5IGNvbnRhaW5lciBpbnN0ZWFkIG9mIE5VTEwgaWYgbm8KICAgZmlsZXMgZm91bmQKICAgLSBjaGFuZ2UgZGVmYXVsdCBjb250YWluZXIgbmFtZSB0byBkaXJlY3RvcnkgdGhhdCB3YXMgc2Nhbm5lZAogICAtIHR3ZWFrIGRlYnVnL2xvZyBtZXNzYWdlcwoKMjAxMC0wMy0wOCAyMzowNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBkZWZpbmUgYW5kIHVzZSBuZXcgTkVUU05NUF9MT0dPTkNFIG1hY3JvCgoyMDEwLTAzLTA4IDIyOjQ0ICByc3RvcnkKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBjb25mIGZpbGVzIGNhbiBub3cgaW5jbHVkZSBvdGhlciBjb25mIGZpbGVzCiAgIC0gYWxzbyB0d2Vha2VkIGRlYnVnIHRva2VucyBoZXJlIGFuZCB0aGVyZQoKMjAxMC0wMy0wOCAyMjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0eXBvIChjYXVzZWQgZXh0ZXJuYWwgcmVmZXJlbmNlIHdoZW4gRFRMU1VEUCBjb25maWd1cmVkCiAgIHdpdGhvdXQgZHRsc3RjcCkKCjIwMTAtMDMtMDYgMDI6MjcgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXRzbm1wX2NvbnRhaW5lciBlbmhhbmNlbWVudHM6CiAgIC0gYWRkIGZyZWVfaXRlbSBmdW5jdGlvbjsgZGVmYXVsdHMgdG8KICAgbmV0c25tcF9jb250YWluZXJfc2ltcGxlX2ZyZWUKICAgLSBhZGQgQ09OVEFJTkVSX0ZSRUVfQUxMIG1hY3JvL2Z1bmN0aW9uIChsaWtlIENPTlRBSU5FUl9DTEVBUiBidXQKICAgY2FsbHMgY29udGFpbmVyIGZyZWVfaXRlbSBmb3IgZWFjaCBpdGVtIGluIHByaW1hcnkgY29udGFpbmVyKQogICAtIGFkZCBhYmlsaXR5IHRvIHNldCBvcHRpb25zIG9uIGJpbmFyeV9hcnJheSBjb250YWluZXJzCgoyMDEwLTAzLTAyIDE3OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgTWFkZSBzdXJlIHRoYXQgd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluIGJ5IGFkZGluZyBtaXNzaW5nCiAgIHNvdXJjZSBmaWxlIG5hbWVzLiBTb3J0ZWQgc291cmNlIGZpbGUgbmFtZXMgYWxwaGFiZXRpY2FsbHkgdG9vLgoKMjAxMC0wMy0wMiAxNjo1NCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiB0aGUgYmF0Y2ggZmlsZSB3aW4zMi9idWlsZC5iYXQKICAgd29ya3MgYWdhaW4gd2l0aCB0aGUgUGxhdGZvcm0gU0RLIGVuYWJsZWQuCgoyMDEwLTAzLTAyIDE2OjUyICBidmFzc2NoZQoKICAgKiB3aW4zMi9NYWtlZmlsZS1hcHBzLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgyMTUgKHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSBjbC5leGUgb3B0aW9uIC9HWCBieQogICB0aGUgZXF1aXZhbGVudCAvRUhzYzsgYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIiwgYWRkZWQKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgYW5kIHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVgpLgoKMjAxMC0wMi0yOCAxNTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBXaW4zMjogZml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHJlZGVmaW5pdGlvbiBvZgogICBfV0lOMzJfV0lOTlQgYnkgbWFraW5nIHN1cmUgdGhhdCA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGlzCiAgIGluY2x1ZGVkIGJlZm9yZSA8d2luZG93cy5oPi4KCjIwMTAtMDItMjggMTU6MjQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZXBsYWNlZCB0aGUgb2Jzb2xldGUgL0dYIGJ5IHRoZQogICBlcXVpdmFsZW50IC9FSHNjLgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgdG8gbWFrZSBidWlsZGluZyB3aXRoIE1TVkMgMjAwOAogICBtb3JlIHNpbGVudC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIC9GcC4uLiBhbmQgL1lYLiBUaGVzZQogICBvcHRpb25zIGluZmx1ZW5jZSBob3cgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzIGFyZSBnZW5lcmF0ZWQsCiAgIHdoaWNoIGFyZSBub3QgdXNlZCBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QuIC9ZWCBpcyBub3QKICAgc3VwcG9ydGVkIGJ5IE1TVkMgMjAwOC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIGEgZHVwbGljYXRlIG9jY3VycmVuY2Ugb2YKICAgc3RydG91bGwub2JqLgoKMjAxMC0wMi0yOCAxNDoxMSAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlLCB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogYXBwbGllZCB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgdG8KICAgdGhlIHdpbjMyL0NvbmZpZ3VyZSBzY3JpcHQgYW5kIHdpbjMyL01ha2VmaWxlLmluLgoKMjAxMC0wMi0yNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCAgIAogICAgICBzbm1wbGliL2dldG9wdC5jLCBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgc25tcGxpYi93aW5waXBlLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBkZWNsYXJlZCBhbGwgZnVuY3Rpb25zIHRoYXQgYXJlIGV4cG9ydGVkIGZyb20gdGhlCiAgIE5ldC1TTk1QIERMTCBhcyBORVRTTk1QX0lNUE9SVC4gVGhlIHJlc3VsdCBpcyBhIG1pbm9yCiAgIG9wdGltaXphdGlvbjogY29kZSB0aGF0IHVzZXMgdGhlIE5ldC1TTk1QIERMTCB3aWxsIG5vdyBjYWxsIHRoZQogICBETEwtZXhwb3J0ZWQgZnVuY3Rpb25zIGRpcmVjdGx5IGluc3RlYWQgb2YgaW5kaXJlY3RseSB2aWEgdGhlCiAgIHN0dWIgaW4gdGhlIGltcG9ydCBsaWJyYXJ5LgoKMjAxMC0wMi0yNyAxMTo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgUmVtb3ZlZCBhIHJlZHVuZGFudCBzdHJuY2FzZWNtcCgpIGRlY2xhcmF0aW9uLgoKMjAxMC0wMi0yNyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDItMjcgMDk6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg5IChyc3RvcnkpOiBidWlsZHMgYWdhaW4gb24gV2luZG93cy4KCjIwMTAtMDItMjUgMTc6NTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIFJldmVydGVkIHIxODIwNyAoZHNwL2RzdyB0byB2Y3Byb2ovc2xuIGNvbnZlcnNpb24pIGV4Y2VwdCB0aGUKICAgc3VwcHJlc3Npb24KICAgbGlzdCBjaGFuZ2VzLiBUaGUgZ29hbCBvZiB0aGlzIGNvbnZlcnNpb24gd2FzIHR3b2ZvbGQ6IG5vdCBvbmx5CiAgIHRvIGJlIGFibGUKICAgdG8gbG9hZCB0aGUgcHJvamVjdCBmaWxlcyBpbiBNU1ZDIDIwMDIgLSAyMDA4IGJ1dCBhbHNvIHRvIGJlIGFibGUKICAgdG8gY29tbWl0CiAgIGNoYW5nZXMgbWFkZSBmcm9tIGluc2lkZSB0aGUgTVNWQyAyMDA4IElERS4gVW5mb3J0dW5hdGVseQogICBjb252ZXJ0aW5nIGRzcC9kc3cKICAgZmlsZXMgdG8gdmNwcm9qL3NsbiBmaWxlcyB3aXRoIE1TVkMgMjAwOCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvCiAgIGxvYWQgdGhlCiAgIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBlYXJsaWVyIE1TVkMgdmVyc2lvbnMuIFdoeSBvbiBlYXJ0aCBkaWQKICAgTWljcm9zb2Z0CiAgIGRlY2lkZSB0byBwdXQgYSB2ZXJzaW9uIG51bWJlciBpbiBYTUwgZmlsZXMgPwoKMjAxMC0wMi0yNCAxOTo0MSAgYnZhc3NjaGUKCiAgICogIHdpbjMyLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCB3aW4zMi9saWJhZ2VudCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9saWJzbm1wLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIHdpbjMyL25ldHNubXBtaWJzLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgd2luMzIvc25tcGJ1bGtnZXQsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCB3aW4zMi9zbm1wYnVsa3dhbGssICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEsIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwKICAgICAgICAgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0LCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgd2luMzIvc25tcG5ldHN0YXQsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0LCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCB3aW4zMi9zbm1wdGFibGUsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCB3aW4zMi9zbm1wdHJhcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9zbm1wdXNtLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbSwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIHdpbjMyL3NubXB3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgKHJldmVydGVkKSBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGNvbnZlcnRlZCAuZHNwLy5kc3cgZmlsZXMgdG8KICAgLnZjcHJvai8uc2xuIGZpbGVzLiBUaGlzIGltcGxpZXMgdGhhdCBzdXBwb3J0IGZvciBNU1ZDIDYuMCBoYXMKICAgYmVlbiBkcm9wcGVkIGFuZCB0aGUgbWluaW11bSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB2ZXJzaW9uCiAgIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBpcyBNaWNyb3NvZnQgVmlzdWFsCiAgIFN0dWRpbyAuTkVUICgyMDAyKS4KCjIwMTAtMDItMjMgMTk6MDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHdoZW4gZ2VuZXJhdGluZyBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBzeXN0ZW0KICAgbG9jYXRpb24gYW5kIG5vIGRvbWFpbiBuYW1lIGlzIGZvdW5kIGluIC9ldGMvcmVzb2x2LmNvbmYsIHVzZQogICAiQG5vLndoZXJlIiBpbnN0ZWFkIG9mICIiLgoKMjAxMC0wMi0yMyAxODo1MCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBtNC9hY19wcm9tcHRfdXNlci5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMyAxODo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgUmVtb3ZlZCBhbGwgdHJhbnNwb3J0IHRlc3RzIHNpbmNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUKICAgd2hlcmUgdGhleSBjYW4gc2FmZWx5IG9wZXJhdGUgKHdhcyBzdG9wcGluZyB0YW5kZXJzJyBuaWdodGx5CiAgIHRlc3RzIGZyb20gc3VjY2VlZGluZykKCjIwMTAtMDItMjMgMTg6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBlcnJvciBhbmQgZGVidWdnaW5nIG91dHB1dAoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHRoZSBzZXJ2ZXIgY29udGV4dCBnZW5lcmF0b3IgdG8gYWN0dWFsbHksIHVtLCByZXR1cm4gdGhlCiAgIGNvbnRleHQuCgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbml0aWFsaXplIHRoZSAncmVzJyB2YXJpYWJsZSBzaW5jZSBpdCdzIGNoZWNrZWQKCjIwMTAtMDItMjMgMTg6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBwcm9ncmVzcyB0b3dhcmQgYSByZWFsIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB0bHN0Y3AgY3RvciBpbnZvY2F0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgcmVxdWlyZSBUTFNCYXNlCgoyMDEwLTAyLTIzIDE4OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGhvc3QgaWRlbnRpZmllciBhcyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6MzUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBzaWduaWZpY2FudCBtb3JlIHdvcmsgb24gdGhlIFRMUyBUQ1AgZG9tYWluCgoyMDEwLTAyLTIzIDE3OjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE5MyAoanNhZnJhbmVrKTogcmVyYW4gYXV0b3JlY29uZiBmb3IgdGhlIHRydW5rCiAgIGFuZCB0aGUgNS41IGJyYW5jaC4KCjIwMTAtMDItMjMgMTQ6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgTkVUU05NUF9QUkl6IGluc3RlYWQgb2YgJXoKCjIwMTAtMDItMjMgMTI6MjcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXhlZCBjb21waWxhdGlvbiB3aXRoIHJwbS00LjYuCiAgIFR1cm4gb24gdGhlIGxlZ2FjeSBBUEkgd2hlbiBycG0tNC42IGlzIGRldGVjdGVkLgoKMjAxMC0wMi0yMyAwNzozOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODAwMCAoZGlzYWJsaW5nIFNJR0FMUk0gc3VwcG9ydCkgYmVjYXVzZSB0aGlzIGludm9sdmVzCiAgIGEgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2UuCgoyMDEwLTAyLTIzIDAwOjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTAyLTIzIDAwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVidWcgbXNnIHR3ZWFrczsgdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMKICAgLSBhZGQgZGVidWcgaGVhZGVyIGZvciBzbm1wIHZlcnNpb24KICAgLSBhZGQgbGVuZ3RoIHRvIGRlYnVnIHNlbmQvcmVjZWl2ZSBtZXNzYWdlcwogICAtIHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zIGZvciBzZW5kL3JlY3YvZmluZGluZyBwZWVyIGFkZHJlc3MKCjIwMTAtMDItMjMgMDA6MjUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZywgbmV0c25tcF90cmFuc3BvcnRfc2VuZCAmCiAgIG5ldHNubXBfdHJhbnNwb3J0X3JlY3YKICAgLSBtb3ZlcyB0cmFuc3BvcnQgbWFuaXB1bGF0aW9uIGludG8gdHJhbnNwb3J0IGNvZGUKICAgLSBjZW50cmFsIHBsYWNlIGZvciBsb2dnaW5nL2RlYnVnZ2luZyBzZW50L3JlY2VpdmVkIGRhdGEKCjIwMTAtMDItMjIgMTk6MzMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjIgMTk6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4Ni4gUmVncmVzc2lvbiB0ZXN0IDM0ICh3aGV0aGVyIGF1dGhlbnRpY2F0aW9uCiAgIGZhaWx1cmUgdHJhcHMgYXJlIHNlbnQgYnkgc25tcGQpIHBhc3NlcyBub3cgYWdhaW4uCgoyMDEwLTAyLTIyIDA5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgc3VyZSB0aGF0IGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWx1cmUgZG9lcwogICBub3QgY3JlYXRlIGRhbmdsaW5nIHBvaW50ZXJzIGluIHRoZSBNSUIgc3VidHJlZSByZWdpc3RyeS4KCjIwMTAtMDItMjIgMDk6MTEgIGJ2YXNzY2hlCgogICAqIGFnZW50LCBhcHBzLCBhcHBzL3NubXBuZXRzdGF0OgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0yMiAwODo0MiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODoxMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNaW5HVyB3aGVuIElQdjYgc3VwcG9ydCBpcyBlbmFibGVkLgoKMjAxMC0wMi0yMSAxODo1OCAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbGlic2RsbC5kc3csICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgd2luMzIvd2luMzJkbGwuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiByZW5hbWVkIGxpYnNkbGwuZHN3IGludG8gd2luMzJkbGwuZHN3LgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgbGlua2luZyB0aGUgTmV0LVNOTVAKICAgYXBwbGljYXRpb25zIHdpdGggbmV0c25tcC5kbGwgYnkgYWRkaW5nIGFsbCBhcHBsaWNhdGlvbiBwcm9qZWN0cwogICB0byB0aGUgc2FtZSB3b3Jrc3BhY2UgdGhhdCBpcyB1c2VkIGZvciBidWlsZGluZyB0aGUgRExMLgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbmV0c25tcC5kbGwgbGVzcyBlcnJvcgogICBwcm9uZSBieSBsZXR0aW5nIHRoZSBjb21waWxlciBwcmludCBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZQogICBwcmVwcm9jZXNzb3Igc3ltYm9sIE5FVFNOTVBfVVNFX0RMTCBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDItMjEgMTg6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQWRkZWQgbGlic25tcC5kZWYgdG8gdGhlIGxpc3Qgb2YKICAgbGlic25tcF9kbGwuZHNwIHNvdXJjZSBmaWxlcyBzdWNoIHRoYXQgdGhlIERMTCBpcyByZWJ1aWx0IHdoZW4KICAgdGhlIC5kZWYgZmlsZSBoYXMgYmVlbiBtb2RpZmllZC4KCjIwMTAtMDItMjEgMTg6NDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3NldF9saW5lX2J1ZmZlcmluZygpIGZyb20KICAgbmV0c25tcC5kbGwuCgoyMDEwLTAyLTIxIDE3OjM5ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3JlIFdpbjMyIElQdjYgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnRzOgogICAtIE1vdmVkICN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYIGZyb20gc25tcGxpYi8qLmMgdG8KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguCiAgIC0gQ2hhbmdlZCB0aGUgZ2xvYmFsIGluNmFkZHJfYW55IHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgc3VjaCB0aGF0CiAgIG11bHRpcGxlIGRlZmluaXRpb25zIGRvIG5vdCB0cmlnZ2VyIGEgbGlua2VyIGVycm9yLgogICAtIEFkZGVkIHR5cGVkZWZzIGZvciB1aW50OF90LCBpbnQ4X3QsIHVpbnQxNl90IGFuZCBpbnQxNl90LgogICAtIFJlcGxhY2VkICcjaWYgTkVUU05NUF9FTkFCTEVfSVBWNicgYnkgJyNpZmRlZgogICBORVRTTk1QX0VOQUJMRV9JUFY2Jy4KCjIwMTAtMDItMjEgMDg6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmM6CgogICBtYWtlIHN1cmUgdGhhdCBJTkFERFJfTk9ORSBpcyBkZWZpbmVkIChmaXhlcyBidWlsZCBlcnJvciBvbgogICBTb2xhcmlzKQoKMjAxMC0wMi0xOSAxOTozOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBTeW5jaHJvbml6ZWQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0wMi0xOSAxNDoxOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGxpYnNubXAgYnVpbGRzIGFnYWluIGFzIGEgRExMIHdoZW4gSVB2NiBpcwogICBlbmFibGVkLgoKMjAxMC0wMi0xOSAxMzoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3cgdXAgZm9yIHIxODE2NDogc3luY2hyb25pemVkIGxpYnNubXAuZGVmLmluIHdpdGgKICAgbGlic25tcC5kZWYKCjIwMTAtMDItMTkgMDk6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGFkZGVkICNpbmNsdWRlIDxtYWxsb2MuaD4gaW4KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0IHRoZSBNU1ZDIGNvbXBpbGVyCiAgIGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIGJ5IHRoZSBtYWxsb2MgcmVkZWZpbml0aW9uIHdoZW4gYnVpbGRpbmcKICAgbGlic25tcCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0ZWQgbmV0c25tcF9wYXJzZV9hcmdzKCkgc3VjaCB0aGF0IHRoZSBOZXQtU05NUCBhcHBsaWNhdGlvbnMKICAgYnVpbGQgYWdhaW4gd2hlbiBsaWJzbm1wIGlzIGJ1aWx0IGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbW92ZWQgTVNWQyBPcGVuU1NMIGxpbmtlciBzZXR0aW5ncyBmcm9tCiAgIHNubXBsaWIva2V5dG9vbHMuYyB0byB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQKICAgdGhlc2Ugc2V0dGluZ3MgYXJlIG5vdCBvbmx5IGVmZmVjdGl2ZSB3aGVuIGJ1aWxkaW5nIHNubXBsaWIgYXMgYQogICBzdGF0aWMgbGlicmFyeSBidXQgYWxzbyB3aGVuIGFueSBOZXQtU05NUCBhcHBsaWNhdGlvbiBpcyBidWlsdAogICB0aGF0IGxpbmtzIHdpdGggc25tcGxpYiBhcyBhIHN0YXRpYyBsaWJyYXJ5IG9yIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODozMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgV2luMzIgY2xlYW51cDogTVNWQyAvIERMTCB0ZXN0cyBub3cgdXNlIHRoZSBvZmZpY2lhbGx5IGVuZG9yc2VkCiAgIG1hY3JvIG5hbWVzLgoKMjAxMC0wMi0xOSAwNzo1MCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQnVpbGRzIGFnYWluLgoKMjAxMC0wMi0xOSAwNjo0NyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDI5NDI5NDA6IGZyb20gIkJpbGwgRmVubmVyIjogQWRkIGEgbmV3CiAgIGZ1bmN0aW9uLCBuZXRzbm1wX3BhcnNlX2FyZ3MsIHRoYXQgaXMgbGlrZSBzbm1wX3BhcnNlX2FyZ3MgYnV0CiAgIHRha2VzIGFuIGFkZGl0aW9uYWwgYml0bWFzaywgZmxhZ3MsIHRvIGFmZmVjdCB0aGUgYmVoYXZpb3VyLiBBbHNvCiAgIHJlbW92ZSB0aGUgbWFnaWMgaGFuZGxpbmcgb2Ygc29tZSBhcHBsaWNhdGlvbiBuYW1lcy4KCjIwMTAtMDItMTggMTQ6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2JpbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMTggMTQ6MjAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgU29ydGVkIG5hbWVzIG9mIHNvdXJjZSBmaWxlcyBhbHBoYWJldGljYWxseS4KCjIwMTAtMDItMTggMTM6MDMgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHNubXBsaWIvd2luc2VydmljZS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCB3aW4zMi9uZXRzbm1wbWlic3NkaywgICAKICAgICAgd2luMzIvc25tcGRzZGssIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogZHJvcHBlZCBzdXBwb3J0IGZvciBidWlsZGluZyBOZXQtU05NUCB3aXRoCiAgIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCB3aXRob3V0IHBsYXRmb3JtIFNESy4gQnVpbGRpbmcKICAgTmV0LVNOTVAgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgKyBQU0RLIG9yIGFueSBsYXRlcgogICB2ZXJzaW9uIG9mIE1TVkMgaXMgc3RpbGwgcG9zc2libGUgaG93ZXZlci4KICAgCiAgIE5vdGU6IGlmIGluIHRoZSBmdXR1cmUgZm9yIHdoYXRldmVyIHJlYXNvbiBpdCBzaG91bGQgYmVjb21lCiAgIG5lY2Vzc2FyeSBhZ2FpbiB0byBiZSBhYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIHdpdGggTVNWQyB3aXRob3V0CiAgIHJlbHlpbmcgb24gdGhlIHBsYXRmb3JtIFNESyBoZWFkZXJzLCBwbGVhc2UgI2lmZGVmIG91dCB0aGUgTUlCCiAgIGNvZGUgdGhhdCByZWxpZXMgb24gdGhlIFBTREsgaGVhZGVycyBpbnN0ZWFkIG9mIHNwbGl0dGluZyB0aGUKICAgd29ya3NwYWNlIGZpbGVzIGFnYWluLgoKMjAxMC0wMi0xOCAxMjo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIGRvczJ1bml4LgoKMjAxMC0wMi0xOCAwOTo0NSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBTb3VyY2UgY29kZSBjbGVhbnVwOgogICAtIE1vdmVkIGRvY3VtZW50YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXQgbWVtYmVycyB0byB0aGUKICAgY29tbWVudAogICBibG9jayBqdXN0IGFib3ZlIHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgdHlwZS4KICAgLSBSZW1vdmVkIHN1cGVyZmx1b3VzICdleHRlcm4gIkMiJyBzcGVjaWZpZXI6IHRoaXMgbGlua2FnZQogICBzcGVjaWZpZXIKICAgb25seSBoYXMgYW4gZWZmZWN0IG9uIGRlY2xhcmF0aW9ucyBvZiB2YXJpYWJsZXMgb2YgZnVuY3Rpb25zIGFuZAogICBub3QKICAgb24gdHlwZWRlZnMgb3Igc3RydWN0IGRlZmluaXRpb25zLgogICAtIFJhbiB0aGlzIGhlYWRlciBmaWxlIHRocm91Z2ggaW5kZW50LgoKMjAxMC0wMi0xOCAwOToyNiAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBDaGFuZ2VzOgogICAtIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCiAgIC0gRml4ZWQgYSBmZXcgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgTVNWQyAocGFzc2luZyBpbnQKICAgaW5zdGVhZCBvZiB1X3Nob3J0IHRvIGh0b25zKCkgLyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdGhhdCB3ZXJlCiAgIG1pc3NpbmcgYmVjYXVzZSBvZiBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZXMpLgoKMjAxMC0wMi0xNiAxNzoxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IFRoZSBoZWFkZXIgZmlsZSA8c3lzL3RpbWViLmg+IGlzIG5vIGxvbmdlcgogICBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4gT3I6IHRoZSBoZWFkZXIgZmlsZQogICA8c3lzL3RpbWViLmg+IHdpbGwgaGF2ZSB0byBiZSBpbmNsdWRlZCBleHBsaWNpdGx5IGluIHNvdXJjZSBmaWxlcwogICB0aGF0IG5lZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBmdGltZSgpLgogICAKICAgTm90ZTogY29tcGFyZWQgdG8gcjE4MDI0IGFuZCBiZWZvcmUsIHRoaXMgY2hhbmdlIGRvZXMgbm90IGFmZmVjdAogICBCU0Qgc3lzdGVtcyAtLSA8c3lzL3RpbWViLmg+IHdhcyBvbmx5IGluY2x1ZGVkIGZyb20KICAgPG5ldC1zbm1wL3R5cGVzLmg+IG9uIEJTRCBzeXN0ZW1zIGluIHJldmlzaW9ucyByMTgwMjUuLnIxODE1Mi4KCjIwMTAtMDItMTQgMTk6MjkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6CgogICBCdWlsZHMgbm93IG9uIEZyZWVCU0QgdmVyc2lvbiA4LjAuCgoyMDEwLTAyLTEzIDIwOjU5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIEFkanVzdCB0aGUgcGxhY2VtZW50IG9mIDsncyBpbiBvcmRlciB0bwogICBhKSBBdm9pZCB3YXJuaW5ncyBhYm91dCBzcHVyaW91cyBzZW1pY29sb25zCiAgIGIpIE5vdCBoYXZlIHVudGVybWluYXRlZCBkZWNsYXJhdGlvbnMgaW4gaGVhZGVycwoKMjAxMC0wMi0xMiAwMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IHVwZGF0ZSBpbmxpbmUgZG9jdW1lbnRhdGlvbjsgYWRkIHN0b3JhZ2V0eXBlIHRlc3QKICAgZm9yIGNvbHVtbnMKCjIwMTAtMDItMTIgMDE6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCB0eXBvIGluIGRlZmluZQoKMjAxMC0wMi0xMiAwMTowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggc2VkIHByb2Nlc3Npbmcgb24gd2hpdGUtc3BhY2UgYWRkaW5nIHNvbGFyaXMgbWFjaGluZXMKCjIwMTAtMDItMTAgMjM6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYWRkIHRvcCBzcmNkaXIgdG8gY3BwIHNlYXJjaCBwYXRoCgoyMDEwLTAyLTEwIDIzOjUyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBmcmVlYnNkIG5lZWRzIHRpbWUuaCBhYm92ZSB0aW1lYi5oCgoyMDEwLTAyLTEwIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIHVzZSBzZWQgd2l0aCBtdWx0aXJlcGxhY2Ugb24gYSBsaW5lIHRvIGZpeCBwb3NzaWJsZSB3aGl0ZXNwYWNlCiAgIGlzc3VlIG9uIHNvbGFyaXMKCjIwMTAtMDItMTAgMjM6MjIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIHdvcmsgZm9yIFRMUyBzZXBhcmF0aW9uIGludG8gc2VwYXJhdGUgZmlsZXMgd2l0aCBhIGJhc2UKICAgZmlsZQoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgoKICAgbW92ZSBiYXNlIHRyYW5zcG9ydCBjcmVhdGlvbiBmdW5jdGlvbiBvdXQgb2YgbGludXggaWZkZWZzCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgYW5vdGhlciBlcnJvciBsb2dnaW5nIGZ1bmN0aW9uCgoyMDEwLTAyLTEwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZGVkIFRMUyBvdmVyIFRDUAoKMjAxMC0wMi0xMCAxNjozOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBJbXByb3ZlZCBFdGhlckxpa2UtTUlCIHN1cHBvcnQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMKCjIwMTAtMDItMTAgMTA6MDQgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFN1cHBvcnQgbnVsbC1ieXRlcyBpbiBvY3RldCBzdHJpbmdzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRvbW15IEJlYWRsZQoKMjAxMC0wMi0xMCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBUTFMgaW5mcmFzdHJ1Y3R1cmUgaW50byBhIGJhc2UgZG9tYWluIGZpbGUKCjIwMTAtMDItMTAgMDA6MDQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQ2IGZ1bmN0aW9ucyB0byB0aGUgaXB2NiBiYXNlCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3aGl0ZSBzcGFjZSBmb3JtYXR0aW5nCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCB1ZHBfc2VuZC9yZWN2IHRvIHVkcGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmUgbmV0c25tcF9zb2NrX2J1ZmZlcl9zZXQgaW50byBzb2NrZXRiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgbW92ZSBpcHY0IHNwZWNpZmljIFVEUCB0cmFuc3BvcnQgY3JlYXRpb24gdG8gdWRwaXB2NCBiYXNlCgoyMDEwLTAyLTEwIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1hZGUgY29tbW9uIGZ1bmN0aW9ucyBiZSByZWZlcmVuY2VkIGRpcmVjdGx5IGJ5IHRoZSB0cmFuc3BvcnRzCiAgIGFuZCByZW1vdmVkIG9yaWdpbmFsIGZ1bmN0aW9uYWxpdHk7IHRoZXkgd2VyZSBzdGF0aWMgc28gdGhlcmUgaXMKICAgbm8gYmFja3dhcmRzIGNvbXBhdCBpc3N1ZXMKCjIwMTAtMDItMTAgMDA6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQgYmFzZWQgY2xvc2UgdG8gYSBzb2NrZXQgYmFzZWQgZG9tYWluIGNvbW1vbiB0byBtYW55CiAgIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgbW92ZSBUQ1AgY29tbW9uIGZ1bmN0aW9ucyB0byBhIFRDUEJhc2UgZG9tYWluIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTA5IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdG1TdGF0ZVJlZmVyZW5jZSBzaG91bGQgYmUgdXNpbmcgdGhlIGluZGV4ZWQgYWRkcl9wYWlyCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtYWtlIG5ldHNubXBfZHRsc3VkcF9jbG9zZSBtYWtlIHVzZSBvZiBuZXRzbm1wX2Jhc2V1ZHBfY2xvc2UKCjIwMTAtMDItMDkgMjM6NTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgYmFzZSBVRFAgc29ja2V0IGNyZWF0aW9uIGludG8gYSBjb21tb24gYmFzZSBmdW5jdGlvbiBhbmQKICAgbWFkZSB1c2Ugb2YgaXQKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmg6CgogICBwcm9wZXIgX0ggaWZkZWYgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBhZGRlZCBhIHJhdyBVRFAgYmFzZSBkb21haW4KCjIwMTAtMDItMDkgMjM6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBVRFAgSVB2NCBiYXNlOyBtb3ZlZCBhbmQgcmV1c2VkIG1vcmUgaW5mcmFzdHJ1Y3R1cmUKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGlwdjQgYWRkcmVzcyBmb3JtYXR0aW5nIGludG8gc25tcElQdjRCYXNlRG9tYWluCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTAgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTmV3IElQdjQgYW5kIElQIGJhc2UgdHJhbnNwb3J0IGZpbGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBkb24ndCBkb3VibGUgaW5jbHVkZSB0cmFuc3BvcnQgbW9kdWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgYW5kIHJlcG9ydCBjb25maWdfZXJyb3JzIGluIHRyYW5zcG9ydCBoZWFkZXJzCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIGFsbG93IGEgTkVUU05NUF9RVUlDS19DSEVDSyBlbnYgdmFyaWFibGUgdG8gYnlwYXNzIGhlYWRlciBjaGVja3MKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGJldHRlciBjb21tZW50cwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBpbiB0cmFuc3BvcnQgaGVhZGVycyBmb3IKICAgZm9yY2UtaW5jbHVkaW5nIG9mIG90aGVyIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo0MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRlZmluZSBhIHN0YW5kYXJkaXplZCBpbmRleGVkIGFkZHJfcGFpciBpbnN0ZWFkIG9mIHVzaW5nIG9uZQogICBsYWJlbGVkIG9ubHkgZm9yIFVEUCBldmVyeXdoZXJlCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCB0cmFuc3BvcnQgcHJlZml4IGxpc3QgZm9yIGluY29taW5nIG1lc3NhZ2VzCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSB0aGUgc2VjdXJpdHkgbGV2ZWwgZnJvbSB0aGUgVFNNIGNhY2hlOyBwcmV2aW91cyBleGlzdGVuY2UKICAgZnJvbSBmcm9tIGEgZHJhZnQgY29weSBvZiB0aGUgVFNNIFJGQyBhbmQgaXMgbm93IHN0b3JlZCBlbnRpcmVseQogICBpbiB0aGUgdG0gcmVmZXJlbmNlCgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBpbmNvbWluZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IG91dGdvaW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBjcmVhdGUgZGVmaW5lZCBzaXplZCBhcnJheSBhbmQgbGVuZ3RoIHZhcmlhYmxlCgoyMDEwLTAyLTA1IDA5OjUyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGZpbGVkZXNjcmlwdGlvciBsZWFrIGluIEV0aGVybGlrZS1NSUIgYW5kCiAgIFJNT04tTUlCCgoyMDEwLTAyLTA0IDE1OjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCByZWFsIGlmU3BlZWQgb2YgbmV0d29yayBpbnRlcmZhY2UgZXZlbiBpdAogICBpcyBkb3duLgogICBTb21lIGludGVyZmFjZXMgY2FuIHJlcG9ydCB0aGVpciByZWFsIHNwZWVkLCBldmVuIHRoZXkgYXJlIGRvd24uCiAgIEFuZCBpZiB0aGV5IGNhbid0LCB0aGUgZmFsbGJhY2sgdG8gMTBNYnBzIGlzIHN0aWxsIHRoZXJlLgoKMjAxMC0wMi0wMSAxNDo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGZpbGUKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLgoKMjAxMC0wMi0wMSAxNDo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBzbm1wbGliL2tleXRvb2xzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIHByb2NlZHVyZSBmb3IgYnVpbGRpbmcKICAgd2l0aCBTTk1QdjMgc3VwcG9ydCBlbmFibGVkIChPcGVuU1NMKS4KCjIwMTAtMDItMDEgMTQ6MzQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNYWRlIHN1cmUgdGhhdCBhbGwgY2FsbHMgdG8gZnJlZSgpIGFyZSBpbnRlcmNlcHRlZCB3aGVuIGJ1aWxkaW5nCiAgIHdpdGggZG1hbGxvYwogICBzdXBwb3J0IGVuYWJsZWQuIEluY2x1ZGVkIDxkbWFsbG9jLmg+IGluIHRob3NlIHNvdXJjZSBmaWxlcyB3aGVyZQogICBpdCB3YXMgbm90CiAgIHlldCBpbmNsdWRlZCwgYW5kIHByb3ZpZGVkIGEgd3JhcHBlciBmdW5jdGlvbiBmb3IgZnJlZSgpIHdoZXJlCiAgIHRoZSBhZGRyZXNzIG9mCiAgIHRoaXMgZnVuY3Rpb24gd2FzIHRha2VuIChEbWFsbG9jIGNhbiBvbmx5IGludGVyY2VwdCBmcmVlKCkgd2hlbgogICBpdCBpcyBjYWxsZWQKICAgZGlyZWN0bHkgYnV0IG5vdCB3aGVuIGl0IGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlcikuCgoyMDEwLTAyLTAxIDEwOjQ5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBORVdTOiBidWlsZGluZzogQnVpbGRpbmcgTmV0LVNOTVAgd2l0aCBkbWFsbG9jIHN1cHBvcnQgZW5hYmxlZCBpcwogICBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDItMDEgMDE6MDUgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBidWlsZGluZzogJ21ha2UgdGVzdCBURVNUT1BUUz0iLVAgdGNwIicgd29ya3MgZmluZSBub3cKCjIwMTAtMDEtMzEgMDg6MDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGFuIHNoIHN5bnRheCBlcnJvciBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdAogICB0aGF0IHdhcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aXRob3V0IGxpYmNyeXB0byBhbmQgd2l0aG91dAogICBsaWJlYXkzMi4KICAgVGhlIGZvbGxvd2luZyBlcnJvciB3YXMgcmVwb3J0ZWQ6CiAgIGNvbmZpZ3VyZVszMzEzNl06IHg6IHVua25vd24gdGVzdCBvcGVyYXRvcgoKMjAxMC0wMS0yOSAyMDowNyAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEVsYWJvcmF0ZSBvbiByZXYuIDE4MDg5IGFuZCBhZGp1c3QgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGhlCiAgICogICAgKnJlYWxseSB3b3JraW5nIG9uZSouICAyMDEwLTAxLTI5IDE5OjExICBqc2FmcmFuZWsKCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEZpeCB0ZXN0IDM1IHdoZW4gY29uZmlndXJlIG9wdGlvbiAnLS13aXRoLXRlbXAtZmlsZS1wYXR0ZXJuJyB3YXMKICAgdXNlZCBhbmQgdGhlIGRpcmVjdG9yeSBmb3IgdGVtcC4gZmlsZXMgZG9lcyBub3QgZXhpc3QgeWV0LgoKMjAxMC0wMS0yOSAxNTowNyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2Nsb3NlZGlyLmMsICAgCiAgICAgIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvb3BlbmRpci5jLCBzbm1wbGliL3JlYWRkaXIuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIE1vdmVkIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgb3BlbmRpcigpLCByZWFkZGlyKCksIGNsb3NlZGlyKCkgYW5kCiAgIGdldHRpbWVvZmRheSgpIHJlcGxhY2VtZW50cyBmb3IgTVNWQyBmcm9tIHNubXBsaWIvc3lzdGVtLmMgdG8KICAgc2VwYXJhdGUgc291cmNlIGZpbGVzIGluIHNubXBsaWIuCgoyMDEwLTAxLTI5IDA4OjU3ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ29uZmlndXJlIHNjcmlwdCBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudDogcmVuYW1lZCB0aGUgdmFyaWFibGUKICAgInNhdmVkX0xJQlMiIGludG8gIm5ldHNubXBfc2F2ZV9MSUJTIi4KCjIwMTAtMDEtMjkgMDY6MzkgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayB0aGUgc2l6ZSBvZiBzdW5fcGF0aCBhbmQgdXNlIHRoYXQgdG8KICAgZ2VuZXJhdGUgdGhlIG1heGltYWwgc2l6ZSBzdHJpbmdzIGZvciBzdHJlc3NpbmcgY29tMnNlY3VuaXguCgoyMDEwLTAxLTI3IDE1OjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBORVdTOiBNaW5HVzogcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0IHN1aXRlIGlzIGFnYWluIHBvc3NpYmxlCiAgICgnbWFrZSB0ZXN0JykuCgoyMDEwLTAxLTI3IDE0OjQzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogQ3lnd2luOiBidWlsZGluZyB3aXRoIGFub3RoZXIgT3BlblNTTCBwYWNrYWdlIHRoYW4gdGhlCiAgIEN5Z3dpbi1wcm92aWRlZCBwYWNrYWdlcyBvcGVuc3NsIGFuZCBvcGVuc3NsLWRldmVsIGlzIGFnYWluCiAgIHBvc3NpYmxlLgogICBORVdTOiBNaW5HVzogYnVpbGRpbmcgd2l0aCBPcGVuU1NMIHdvcmtzIGFnYWluLgoKMjAxMC0wMS0yNiAyMToyNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIGNvbnRleHQgYXJndW1lbnQgb2Ygc2VuZF92M3RyYXAsCiAgIHNlbmRfdHJhcF92YXJzX3dpdGhfY29udGV4dCBhbmQgbmV0c25tcF9zZW5kX3RyYXBzIHJlZmVyIHRvIGEKICAgY29uc3QgY2hhciouCgoyMDEwLTAxLTI2IDIxOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6CgogICBDb3JyZWN0IG1pc3NwZWxsaW5nIC0gI2Vsc2lmIHRvICNlbGlmCgoyMDEwLTAxLTI2IDIxOjIxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEFwcGFyZW50bHkgbm90IGFsbCBzeXN0ZW1zIGRlZmluZSBJTkVUX0FERFJTVFJMRU4gc28gYWRkIGl0IGlmIGl0CiAgIGlzIG1pc3NpbmcuCgoyMDEwLTAxLTI2IDE1OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWRkZWQgbmV0c3RhdCBwYXRoIGZvciBNaW5HVy4KCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHN0YXQgbmFtZXMKCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXBkYXRlIGNvbW1lbnRzIHRvIHJlZmxlY3QgUkZDNTU5MSBhcyB0aGUgZG9jdW1lbnQgZGVzY3JpYmluZyB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDEtMjYgMTE6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGJ5dGUgb3JkZXIgb2YgdWRwTG9jYWxQb3J0IGlzIG5vdwogICBjb3JyZWN0LgoKMjAxMC0wMS0yNiAxMDo0NiAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGZpeGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgKCJtYWtlCiAgIHRlc3QiKS4gVGhpcyBoYXMgYmVlbiBmaXhlZCBieSB1c2luZyB0aGUgcHJvcGVyIGVudmlyb25tZW50CiAgIHNlcGFyYXRvciBjaGFyYWN0ZXIgYW5kIGJ5IGFkZGluZyB0aGUgcGF0aCBvZiB0aGUgbmV0c3RhdAogICBleGVjdXRhYmxlIGZvciBDeWd3aW4gaW4gdGVzdGluZy9URVNUQ09ORi5zaC4KCjIwMTAtMDEtMjYgMDk6MjcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gcmVhZGluZyBSUE0KICAgZGF0YWJhc2UuCiAgIE9sZCBycG0gdmVyc2lvbnMgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBIZWFkZXIgd2hlbiBhbm90aGVyIFJQTQogICBpbnN0YW5jZSBob2xkcwogICBkYXRhYmFzZSBsb2Nrcy4gSS5lLiBzbm1wZCBzb21ldGltZXMgY3Jhc2hlcyB3aGVuIHJlYWRpbmcKICAgaHJfc3dJbnN0IGFuZCBycG0gaXMKICAgaW5zdGFsbGluZy91cGRhdGluZy9yZW1vdmluZyBhbm90aGVyIHBhY2thZ2UuIEFzIGEgc29sdXRpb24sCiAgIHdob2xlIFJQTSBjYWNoZQogICBpcyB0aHJvd24gYXdheSBhbmQgcmUtcmVhZCB3aGVuIHdlIGdvdCBhbiBlcnJvciBmcm9tIGxpYnJwbS4gVGhlCiAgIHdob2xlIHByb2Nlc3MKICAgaXMgcmVzdGFydGVkIG9ubHkgdGhyZWUgdGltZXMsIHRvIHByZXZlbnQgZW5kbGVzcyBsb29wLgoKMjAxMC0wMS0yNSAyMjoxNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IERvIG5vdCBjaGVjayBpZiB2YWx1ZXMgb2YgdHlwZSBzaXplX3QKICAgYXJlIGxlc3MgdGhhbiAwLgoKMjAxMC0wMS0yNSAyMjoxMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQ2hlY2sgdGhlIHJhbmdlIG9mIG9pZCB2YWx1ZXMgdG93YXJkcyB0aGUgbWF4aW11bQogICBvaWQgdmFsdWUsIG5vdFVMT05HX01BWAoKMjAxMC0wMS0yNSAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBvbmx5IGJhaWwgb24gbWlzc2luZyBsaWJpcGhscGFwaSBmb3IgeHdpbnNvY2syCgoyMDEwLTAxLTI1IDE5OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbmFtZSBNQVhfU1RBVFMgdG8gTkVUU05NUF9TVEFUX01BWF9TVEFUUwoKMjAxMC0wMS0yNSAxOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmM6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3M7IGNoZWNrIGZvciBpbmRleAogICBvdmVyZmxvdwoKMjAxMC0wMS0yNSAxOTo0NCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81Lmg6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3MKCjIwMTAtMDEtMjUgMTY6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXNlICpjdXJyZW50KiBjb3B5IG9mIHRoZSBNSUIgd2hlbiBnZW5lcmF0aW5nIHN0YXRzCgoyMDEwLTAxLTI1IDE2OjAxICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmg6CgogICBtb3ZlIHNubXBfZ2V0X3N0YXRpc3RpYyBoZWxwZXIgdG8gaGVscGVycyBkaXI7IHVwZGF0ZSBhbGxfaGVscGVycwogICBoZWFkZXIKCjIwMTAtMDEtMjUgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgUmVwbGFjZWQgZXhwbGljaXQgZGVjbGFyYXRpb25zIG9mIG9wdGluZCwgb3B0b3B0IGFuZCBvcHRhcmcgYnkKICAgI2luY2x1ZGUgPHVuaXN0ZC5oPiBiZWNhdXNlIGV4cGxpY2l0bHkgZGVjbGFyaW5nIHRoZXNlIHZhcmlhYmxlcwogICBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEN5Z3dpbi4KCjIwMTAtMDEtMjUgMTQ6MjUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogQ3lnd2luOiBJUHY2IGlzIG9ubHkgc3VwcG9ydGVkIHVuZGVyIEN5Z3dpbiAxLjcgb3IgbGF0ZXIuCiAgIFRoZSBvbGQgaW1wbGVtZW50YXRpb24gb2YgSVB2NiBzdXBwb3J0IGluIE5ldC1TTk1QIHVuZGVyIEN5Z3dpbgogICBpbnZvbHZlZCBhIHN0cmFuZ2UgbWl4dHVyZSBvZiBDeWd3aW4gYW5kIFdpbnNvY2syIHNvY2tldCBjYWxscywKICAgd2hpY2ggd2FzIHRvbyBoYXJkIHRvIG1haW50YWluLgogICBORVdTOiBDeWd3aW46IGJ1aWxkcyBhZ2FpbiB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkCiAgICgtLWVuYWJsZS1pcHY2KS4gQXQgbGVhc3QgTmV0LVNOTVAgNS41IGRvZXNuJ3QgYnVpbGQgdW5kZXIgQ3lnd2luCiAgIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQuIFRoZSBjb25maWd1cmUgc2NyaXB0IHJlcG9ydGVkCiAgICJjaGVja2luZyBpcHY2IHN0YWNrIHR5cGUgLi4uIHJlc3VsdDogInVua25vd24sIG5vIiAuLi4gZXJyb3I6CiAgIElQdjYgdHJhbnNwb3J0cyBub3QgYXZhaWxhYmxlIGlmIElQdjYgc3VwcG9ydCBpcyBub3QgZW5hYmxlZCIuCgoyMDEwLTAxLTI1IDE0OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSA8c3RyaW5nLmg+LgoKMjAxMC0wMS0yNSAxNDoxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHRoZSBJUHY2IHN0YWNrIGluY2x1ZGVkIGluIEN5Z3dpbgogICB2ZXJzaW9uIDEuNy4KICAgSVB2NiBzdXBwb3J0IGlzIG9uZSBvZiB0aGUgbmV3IGZlYXR1cmVzIG9mIEN5Z3dpbiAxLjcuIEZvciBtb3JlCiAgIGluZm9ybWF0aW9uLAogICBzZWUgYWxzbyBodHRwOi8vY3lnd2luLmNvbS9jeWd3aW4tdWctbmV0L292LW5ldzEuNy5odG1sLgoKMjAxMC0wMS0yNSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogQ3lnd2luOiB0aGUgbWVzc2FnZSAiY29uZmlndXJlOiBXQVJOSU5HOiB3aW5zb2NrLmg6CiAgIHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgZG9lcyBubyBsb25nZXIgYXBwZWFyIHdoZW4KICAgcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdC4KICAgRm9sbG93LXVwIGZvciByMTgwNTA6IHJlLWVuYWJsZWQgbGliaXBobHBhcGkgYW5kIGlwaGxwYXBpLmggdGVzdHMKICAgZm9yIG5vbi1NaW5HVyBwbGF0Zm9ybXMgc2luY2UgdGhlIEN5Z3dpbiBidWlsZCBuZWVkcyB0aGVzZS4KCjIwMTAtMDEtMjUgMDc6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIHNubXBsaWIvaW5ldF9udG9wLmMsICAKICAgICAgIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIGF1dG9jb25mIHRvIGRlY2lkZSBpZiBpbmV0X250b3AuYyBhbmQKICAgaW5ldF9wdG9uLmMgYXJlIHRvIGJlIGNvbXBpbGVkLgoKMjAxMC0wMS0yNSAwNzowOSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBDSEFOR0VTOiBNaW5HVzogc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNvbmZpZ3VyZSB0ZXN0CiAgIGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTI1IDA1OjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFRMU1RNIGNvdW50ZXIgc3RhdHMKCjIwMTAtMDEtMjUgMDU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGluIFRTTSBuZWVkZWQgY291bnRlciBkZWZpbml0aW9ucwoKMjAxMC0wMS0yNSAwNToxMiAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRTTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICBhZGRlZCB0aGUgU05NUC1UU00tTUlCCgoyMDEwLTAxLTI0IDE0OjQzICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBORVdTOiBzbm1wZDogTWFkZSBzdWJ0cmVlX2NvbnRleHRfY2FjaGU6OmNvbnRleHRfbmFtZSBhIGNvbnN0CiAgIGNoYXIqLgoKMjAxMC0wMS0yNCAxNDoyNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QKCjIwMTAtMDEtMjQgMTM6MjcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogUHJlZmVyIHRvIHVzZSBhIHZhcmlhYmxlIG9mIHRoZSByaWdodCB0eXBlIG92ZXIKICAgYW4gdWdseSBjYXN0LiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBhcyB3ZWxsLgoKMjAxMC0wMS0yNCAxMjo1OSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW50cm9kdWNlZCB0aGUgdmFyaWFibGUgJ3dpdGhfc29ja2xpYicgaW4gdGhlCiAgIGNvbmZpZ3VyZSBzY3JpcHQuIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgZm9yIE1pbkdXCiAgIGFuZCB0byAiZGVmYXVsdCIgZm9yIGFsbCBvdGhlciBzeXN0ZW1zLiBXaW5zb2NrMiB0ZXN0cyBhcmUgb25seQogICBydW4gaWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiAoTWluR1cpLgoKMjAxMC0wMS0yNCAxMjo1MyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIGRlYnVnIGxvZ3MuCgoyMDEwLTAxLTI0IDEyOjQ1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXM6IGZpeGVkIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvCiAgIHVuc2lnbmVkIGNoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFrZSBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkKICAgZGVjbGFyYXRpb25zCiAgIGF2YWlsYWJsZSB0byB0aGUgY29tcGlsZXIuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1hZGUgc3VyZSB0aGF0IDx3czJ0Y3BpcC5oPiB3aWxsCiAgIGJlIGluY2x1ZGVkCiAgIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCBjb21wbGFpbgogICBhYm91dCBzdHJ1Y3QKICAgc29ja2FkZHJfaW42IGJlaW5nIHVzZWQgYmVmb3JlIGJlaW5nIGRlZmluZWQuCgoyMDEwLTAxLTI0IDExOjQyICBidmFzc2NoZQoKICAgKiBtYW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAxLTI0IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGtnZXQuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgICAKICAgICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsICAgCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ2xlYW51cCAoV2luZG93cyk6IHJlbW92ZWQgc3VwZXJmbHVvdXMgI2luY2x1ZGUgPHN5cy90aW1lYi5oPgogICBkaXJlY3RpdmVzLiBUaGlzIGhlYWRlciBmaWxlCiAgIGhhcyBvbmx5IHRvIGJlIGluY2x1ZGVkIGZyb20gc25tcGxpYi9zeXN0ZW0uYyBiZWNhdXNlIG9mIHRoZQogICBfZnRpbWUoKSBjYWxsIGluIHRoYXQgZmlsZS4KCjIwMTAtMDEtMjQgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgVGhlIG1hY3JvICdDKCknIG5vdyBjYXN0cyBpdHMgcmVzdWx0IGZyb20gdW5zaWduZWQgbG9uZyB0bwogICB1bnNpZ25lZCBpbnQuCiAgIFRoaXMgY2hhbmdlIGZpeGVzIGEgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZm9ybWF0IHNwZWNpZmljYXRpb24KICAgbWlzbWF0Y2hlcwogICBhbmQgZml4ZXMgYSBidWcgKGluY29ycmVjdCBzbm1wbmV0c3RhdCBvdXRwdXQpIG9uIGJpZyBlbmRpYW4KICAgc3lzdGVtcy4KCjIwMTAtMDEtMjQgMTA6MzMgIGJ2YXNzY2hlCgogICAqIG1hbi9jb25maWdfYXBpLjM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzk0NjogcmVtb3ZlZCBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20KICAgcmVwb3NpdG9yeS4KCjIwMTAtMDEtMjQgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTW92ZWQgdHdvIGRlY2xhcmF0aW9ucyBvZiBzdGF0aWMgZnVuY3Rpb25zIGZyb20gLmggdG8gLmMuCgoyMDEwLTAxLTI0IDEwOjIxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCgoyMDEwLTAxLTI0IDEwOjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBidWlsZHMgYWdhaW4gd2hlbiBIQVZFX0dFVEFERFJJTkZPIGlzIG5vdAogICBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMDowMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9pbmV0X250b3AuYywgICAKICAgICAgc25tcGxpYi9pbmV0X250b3AuaCwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9pbmV0X3B0b24uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBjb25maWd1cmUgdGVzdHMgZm9yIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKS4KICAgLSBBZGRlZCBoZWFkZXIgZmlsZXMgc25tcGxpYi9pbmV0X250b3AuaCBhbmQgc25tcGxpYi9pbmV0X3B0b24uaC4KICAgLSBSZXBsYWNlZCAiZXh0ZXJuIGluZXRfbnRvcCguLi4pOyIgYW5kICJleHRlcm4gaW5ldF9wdG9uKC4uLik7IgogICBieSAjaW5jbHVkZSAiaW5ldF9udG9wL3B0b24uaCIuCiAgIC0gQ29udmVydGVkIHNubXBsaWIvaW5ldF9udG9wLmMgYW5kIHNubXBsaWIvaW5ldF9wdG9uLmMgZnJvbSBLJlIKICAgQyB0byBBTlNJIEMuCiAgIC0gUmVwbGFjZWQgdGhlIGluZXRfYXRvbigpIGNhbGxzIHRoYXQgd2VyZSBpbnRyb2R1Y2VkIGluIHIxODAzMwogICBpbiBzbm1wbGliL3NubXBVRFBEb21haW4uYyBieSBpbmV0X3B0b24oKSBjYWxscyBzdWNoIHRoYXQgaXQgaXMKICAgYWdhaW4gcG9zc2libGUgdG8gYnVpbGQgTmV0LVNOTVAgb24gV2luZG93cy4KCjIwMTAtMDEtMjQgMDY6MDggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIGRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMgdGhhdCBkb24ndAogICBleGlzdCBvciBhcmUgZGVjbGFyZWQgZWxzZXdoZXJlLgoKMjAxMC0wMS0yNCAwNTo0OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlZCB0aGUgdW51c2VkIHZhcmlhYmxlcyB3YXJtX3N0YXJ0X29pZCwKICAgbGlua19kb3duX29pZCwgbGlua191cF9vaWQsIGF1dGhfZmFpbF9vaWQgYW5kIGVncF94eHhfb2lkLgoKMjAxMC0wMS0yMyAyMjowNiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJldHRlciBzZXQgb2YgU0tJUElGL1NLSVBJRk5PVFMKCjIwMTAtMDEtMjMgMjA6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJlIGNvcnJlY3QgaW4gd2hhdCBpdCBpcyB0aGF0IGlzIHRlc3RlZCBpbiB0aGUgaGVhZGVyLgoKMjAxMC0wMS0yMyAyMDoyNyAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGNvbTJzZWMgZGlyZWN0aXZlcyB0byBmYWlsIGlmIHRoZXJlCiAgIGFyZSB0b28gZmV3IGFyZ3VtZW50cy4gQWRkaXRpb25hbGx5IGNoYW5nZWQgdGhlIHN0b3JhZ2Ugc3RydWN0dXJlCiAgIHRvIG5vdCBhbGxvY2F0ZSBtb3JlIHNwYWNlIHRoYW4gbmVjZXNzYXJ5LgoKMjAxMC0wMS0yMyAyMDoyMiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIG5ldyB0ZXN0cyBjaGVja2luZyB0aGUgZXJyb3IgaGFuZGxpbmcgb2YgdGhlIGNvbTJzZWMqIGRpcmVjdGl2ZXMKCjIwMTAtMDEtMjMgMTk6MTcgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODAyNTogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIzIDE3OjUxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBPUyBoZWFkZXIgZGV0ZWN0aW9uIGNoZWNrIGlzIG5vdyBydW4gYmVmb3JlCiAgIElQdjYgc3RhY2sgZGV0ZWN0aW9uLgogICBDSEFOR0VTOiBTb2xhcmlzOiBzb2NrYWRkcl9pbjYuc2luNl9hZGRyIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93CiAgIHdvcmsuCgoyMDEwLTAxLTIzIDE3OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgRml4ZWQgYSBTb2xhcmlzLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAxLTIzIDE3OjAwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBNaW5HVzogYWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIDxzeXMvdGltZWIuaD4gYW5kIGFsc28gZm9yIHN0cnVjdAogICB0aW1lem9uZS4KCjIwMTAtMDEtMjMgMTY6MzIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE1pbkdXOiBtYWRlIHN1cmUgdGhhdCB0aGUgSVB2Ni1yZWxhdGVkIGRhdGF0eXBlcyBhcmUgYXZhaWxhYmxlCiAgIGJlZm9yZSBiZWluZyB1c2VkLgoKMjAxMC0wMS0yMyAxNjozMCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkICN1bmRlZiBIQVZFX1dJTkRPV1NfSC4KCjIwMTAtMDEtMjMgMTY6MjggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IGEgbWlzc2luZwogICBwcm90b3R5cGUgZm9yIGlzZGlnaXQoKS4KCjIwMTAtMDEtMjMgMTY6MjQgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBNaW5HVzogaXBobHBhcGkuaCBjb25maWd1cmUgdGVzdCBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yMyAxNToxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgUmVuYW1lZCB0aGUgV2luc29jazIgSVB2NiBzdGFjayBmcm9tICdtaW5ndycgaW50byAnd2luc29jazInLgoKMjAxMC0wMS0yMyAxNTowNyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYmV0d2VlbiB0aGUgc3VwcG9ydGVkIFdpbjMyIGNvbXBpbGF0aW9uCiAgIGVudmlyb25tZW50cyBhcyBmb2xsb3dzOgogICAtIE1hZGUgc3VyZSB0aGF0IHRoZSA8d2luc29jazIuaD4gYW5kIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZXMKICAgYXJlIG9ubHkgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciA8aXBobHBhcGkuaD4uCiAgIC0gUmVwbGFjZWQgc2V2ZXJhbCBXSU4zMiAvIGN5Z3dpbiB0ZXN0cyBieSBhIEhBVkVfSVBITFBBUElfSAogICB0ZXN0LgogICAtIERvY3VtZW50ZWQgdGhhdCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpcyBvbmx5IHVzZWQKICAgZm9yIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wMS0yMiAxNjo0NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTA6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCiAgIDYuCgoyMDEwLTAxLTIyIDE2OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaDoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MDE2OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjIgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODAxNjogbWFkZSBNaW5HVyBsaWJpcGhscGFwaSBjaGVjayBtb3JlIHJvYnVzdC4KCjIwMTAtMDEtMjIgMTM6MzIgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIGFjbG9jYWwubTQsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgCiAgICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgd2luMzIvU25tcC13aW5FeHRETEwuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogTWluR1c6IHdpbkV4dERMTCBjb21waWxlcyBub3cgdW5kZXIgTWluR1cuCiAgIENIQU5HRVM6IE1pbkdXOiBidWlsZGluZyBOZXQtU05NUCB3b3JrcyBhZ2Fpbi4KICAgCiAgIERldGFpbGVkIG92ZXJ2aWV3OgogICAqIENoYW5nZXMgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQ6CgogICAtIHNvY2tldCgpIGxpYnJhcnkgY2hlY2sgcGFzc2VzIGFnYWluIG9uIE1pbkdXLgogICAtIEFkZGVkIGxpYnJhcnkgY2hlY2tzIGZvciBsaWJ3czJfMzIsIGxpYnJlZ2V4IGFuZCBsaWJzbm1wYXBpLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgd2luc29jazIuaCBhbmQgd3MydGNwaXAuaCBoZWFkZXIgZmlsZXMuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSBjaG93bigpIGFuZCBsb2NhbHRpbWVfcigpIGZ1bmN0aW9ucy4KICAgLSBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjaGVjayBkb2VzIG5vdyB3b3JrIG9uIE1pbkdXLgogICAtIEFkZGVkIElQdjYgc3RhY2sgdHlwZSBjYWxsZWQgIm1pbmd3Ii4KICAgKiBTb3VyY2UgY29kZSBjaGFuZ2VzOgoKICAgLSBJbmNsdWRlIDx3aW5zb2NrMi5oPiBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBpbnN0ZWFkIG9mCiAgIDx3aW5zb2NrLmg+CiAgIHVuZGVyIE1pbkdXIHN1Y2ggdGhhdCBJUHY2IHN1cHBvcnQgaXMgYXZhaWxhYmxlLgogICAtIE1vdmVkICNpbmNsdWRlIDx3aW5zb2NrLmg+IGZyb20gLmMgZmlsZXMgdG8gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGEgY29weSBvZiB0aGUgTWluR1cgaGVhZGVyIGZpbGUgPHNubXAuaD4gKHdoaWNoIGlzIG5vdAogICBjb3B5cmlnaHRlZCkKICAgYXMgd2luMzIvU25tcC13aW5FeHRETEwuaC4KICAgLSBhZ2VudDogb25seSBjYWxsIGNob3duKCkgd2hlbiBhdmFpbGFibGUgKEhBVkVfQ0hPV04pLgogICAqIERvY3VtZW50YXRpb24gY2hhbmdlczogdXBkYXRlZCBSRUFETUUud2luMzIuCgoKMjAxMC0wMS0yMiAwODozNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNhc3QgZnJvbSBjaGFyKiB0byBjaGFyKgoKMjAxMC0wMS0yMiAwMDozOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIENvcHlyaWdodCBmaWxlIHVwZGF0ZSBmb3IgU1BBUlRBLCBJbmMuCgoyMDEwLTAxLTIyIDAwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGFkZCBwcm9wZXIgcHJlZml4ZXMgaW4gVFNNIGZvciBTU0gsIERUTFMsIGV0YywgYmFzZWQgb24gdGhlCiAgIGRvbWFpbgoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGFkZGVkIDUuNSBicmFuY2gKCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbWlub3IgZWNobyBvdXRwdXQgY2hhbmdlCgoyMDEwLTAxLTIxIDIwOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjb21tZW50IG5leHQgdG8gY29kZSBpdCBpcyB0YWxraW5nIGFib3V0OyBObyBjb2RlIGNoYW5nZQoKMjAxMC0wMS0yMSAxNDo1NSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTI2Mzc0OiBmcm9tIEVkIFN3aWVyazogZml4ZWQgcmVhZGluZyBvZgogICBpcEFkZHJlc3NUYWJsZSBmcm9tIC9wcm9jL25ldC9pZl9pbmV0NiBvbiBMaW51eAogICAKICAgVGhlIGtlcm5lbCBtaWdodCBwcm92aWRlIGxvbmdlciBmaWVsZHMsIGVzcGVjaWFsbHkgb24gNjQtYml0CiAgIHN5c3RlbXMuCgoyMDEwLTAxLTIwIDEyOjQyICBidmFzc2NoZQoKICAgKiBQT1JUSU5HLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRml4ZWQgdHlwbzogcmVwbGFjZWQgJ25lY2lzc2FyeScgYnkgJ25lY2Vzc2FyeScuCgoyMDEwLTAxLTIwIDA4OjUzICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgRml4IG1pbm9yIHR5cG8gaW4gbWFuIHBhZ2UsIGl0J3Mgc25tcG5ldHN0YXQgLUNwLCBub3QgLUNQLgoKMjAxMC0wMS0xNCAxMjozNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGZpeGVkIG1lbW9yeSBsZWFrIGluIFJNT04tTUlCIGFuZCBFVEhFUkxJS0UtTUlCIHdoZW4KICAgdGhlcmUgYXJlIG11bHRpcGxlIGFsaWFzZXMgb2YgYW4gbmV0d29yayBpbnRlcmZhY2UKICAgUmF0aW9uYWxlOiB0aGUgYWxpYXNlZCBpbnRlcmZhY2VzIGhhdmUgdGhlIHNhbWUgaWZJbmRleCAtPgogICBDT05UQUlORVJfSU5TRVJUIGZhaWxzLCBidXQgdGhlIHJlamVjdGVkIGVudHJ5IHdhcyBub3QgZnJlZWQuCgoyMDEwLTAxLTEzIDExOjIxICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBtZW1vcnkgbGVhayBpbiBpcEFkZHJlc3NQcmVmaXhUYWJsZQogICAtIG5ldF9zbm1wX3NlYXJjaF91cGRhdGVfcHJlZml4X2luZm8gcmV0dXJucyBkaWZmZXJlbnQgY29kZSwgd2hlbgogICB0aGUgZW50cnkgd2FzIG5vdCBpbnNlcnRlZCB0byBsaXN0IGFuZCBjYW4gYmUgZnJlZWQuCgoyMDEwLTAxLTEyIDAwOjUyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZDogcnVuIHJwbSBjb25maWd1cmUgY2hlY2tzIGZvciBocl9zd2luc3QgcmV3cml0ZQogICAocnBtCiAgIHZlcnNpb24gb25seSkKCjIwMTAtMDEtMTEgMjM6NTggIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBQRVJMTERPUFRTX0ZPUl9BUFBTIHRvIGFnZW50eHRyYXAgbGluayBsaW5lIChmaXhlcwogICAibGlicGVybC5zbyBub3QKICAgZm91bmQiIGVycm9ycykKCjIwMTAtMDEtMTEgMDA6MTEgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBnZXQgcmlkIG9mIHVzaW5nIGRlcHJlY2F0ZWQgc3ludGF4IGZvciB0cmFwL2luZm9ybSBzaW5rcwoKMjAxMC0wMS0wOCAwODo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IG9ic29sZXRlZCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcuCiAgIEZyb20gbm93IG9uIHVzaW5nIFNJR0FMUk0gdG8gdHJpZ2dlciBOZXQtU05NUCBhbGFybSBoYW5kbGVycyBpcwogICBubyBsb25nZXIgc3VwcG9ydGVkLgogICAKICAgTW90aXZhdGlvbjogYXMga25vd24gbGlibmV0c25tcCBzdXBwb3J0cyB0aW1lLWJhc2VkIGFsYXJtcyB2aWEKICAgdGhlIGZ1bmN0aW9ucwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCksIHJ1bl9hbGFybXMoKSBhbmQgb3RoZXIgZnVuY3Rpb25zLiBUd28KICAgZGlmZmVyZW50IHdheXMgdG8KICAgdHJpZ2dlciB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpIGFyZSBzdXBwb3J0ZWQgaW5zaWRlCiAgIGxpYm5ldHNubXA6CiAgIDEuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIHRpbWVvdXQgYXJndW1lbnQgb2Ygc2VsZWN0KCkgaXMgc21hbGwKICAgZW5vdWdoIHN1Y2gKICAgdGhhdCBzZWxlY3QoKSByZXR1cm5zIGJlZm9yZSB0aGUgbmV4dCBhbGFybSBtdXN0IGJlIGhhbmRsZWQgKHdoZW4KICAgdGhlCiAgIHZhcmlhYmxlIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQgdG8gb25lLCB3aGljaAogICBpcyB0aGUKICAgZGVmYXVsdCkuCiAgIDIuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIGtlcm5lbCBmaXJlcyBTSUdBTFJNIGF0IHRoZSB0aW1lIHdoZW4KICAgcnVuX2FsYXJtcygpCiAgIHNob3VsZCBiZSBjYWxsZWQgKHdoZW4gdGhlIHZhcmlhYmxlCiAgIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQKICAgdG8gemVybywgd2hpY2ggaGFzIHRvIGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSkuCiAgIAogICBUaGUgZm9sbG93aW5nIGlzc3VlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWNvbmQgYXBwcm9hY2g6CiAgIDEuIEFsYXJtIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbnNpZGUgTmV0LVNOTVAgdG8gZS5nLiByZWZyZXNoCiAgIGNhY2hlZCB0YWJsZQogICBjb250ZW50cy4gQXMgZmFyIGFzIEkgY2FuIHNlZSB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBOZXQtU05NUAogICBzb3VyY2UgY29kZQogICB0aGF0IHByZXZlbnRzIHRoZSBmb2xsb3dpbmcgZnJvbSBoYXBwZW5pbmc6IGEgdGFibGUgcmVmcmVzaAogICB0cmlnZ2VyZWQgdmlhCiAgIFNJR0FMUk0gd2hpbGUgYSByb3cgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIGEgY2FjaGVkIHRhYmxlLiBUaGlzCiAgIGNhbiByZXN1bHQKICAgaW4gZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGV2ZW4gYSBjcmFzaC4KICAgMi4gUE9TSVggcmVzdHJpY3RzIHNpZ25hbCBoYW5kbGVycyB0byBjYWxsaW5nIGZ1bmN0aW9ucyB0aGF0IGFyZQogICBlaXRoZXIgcmVlbnRyYW50CiAgIG9yIG5vbi1pbnRlcnJ1cHRpYmxlCiAgIChodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3hzaF9jaGFwMDJfMDQuaHRtbCN0YWdfMDJfMDQpLgogICBTdGFuZGFyZCBJL08gZnVuY3Rpb25zIGxpa2UgcHJpbnRmKCkgYW5kIGZwcmludGYoKSBhcmUgbmVpdGhlcgogICByZWVudHJhbnQgbm9yCiAgIG5vbi1pbnRlcnJ1cHRpYmxlLiBydW5fYWxhcm1zKCkgaXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgc2lnbmFsCiAgIGhhbmRsZXIsIHdoaWNoCiAgIG1lYW5zIHRoYXQgdGhpcyByZXN0cmljdGlvbiBhcHBsaWVzIHRvIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkKICAgaXRzZWxmIGFuZAogICBhbGwgZnVuY3Rpb25zIGNhbGxlZCBieSBpdCAod2hpY2ggaW5jbHVkZXMgdGhlIGFsYXJtIGNhbGxiYWNrCiAgIGZ1bmN0aW9ucykuCiAgIE9yOiBlLmcuIHNubXBfbG9nKCkgYW5kIGl0cyBjYWxsZXJzIG11c3Qgbm90IGJlIGNhbGxlZCBmcm9tCiAgIGluc2lkZSBydW5fYWxhcm1zKCkKICAgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwgaGFuZGxlci4gVGhpcwogICBpcyBhIHNldmVyZQogICByZXN0cmljdGlvbiwgYW5kIG9uZSB0aGF0IGlzIGhhcmQgdG8gd29yayB3aXRoLgogICAzLiBOb3QgYWxsIHNvZnR3YXJlIGRldmVsb3BlcnMga25vdyBob3cgdG8gbWFrZSBzdXJlIHRoYXQgc2lnbmFsCiAgIGRlbGl2ZXJ5IHdvcmtzCiAgIGNvcnJlY3RseSBpbiBhIG11bHRpdGhyZWFkZWQgY29udGV4dC4gUE9TSVggZG9lcyBub3QgZ3VhcmFudGVlIHRvCiAgIHdoaWNoIHRocmVhZAogICBhIHNpZ25hbCBsaWtlIFNJR0FMUk0gd2lsbCBiZSBkZWxpdmVyZWQsIHVubGVzcyB0aGF0IHNpZ25hbCBoYXMKICAgYmVlbiBibG9ja2VkCiAgIGJlZm9yZSB0aHJlYWQgY3JlYXRpb24gYW5kIGlzIHVuYmxvY2tlZCBhZnRlciB0aHJlYWQgY3JlYXRpb24KICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvcHRocmVhZF9zaWdtYXNrLmh0bWwpLgogICBUaGlzIGlzIHJlbGV2YW50IGZvciB0aGUgTmV0LVNOTVAgcHJvamVjdCBub3Qgb25seSBiZWNhdXNlIGEKICAgd29ya2VyIHRocmVhZCBpcwogICBjcmVhdGVkIGluc2lkZQogICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMgYnV0IGFsc28KICAgYmVjYXVzZSBsaWJuZXRzbm1wIGlzIG9mdGVuIHVzZWQgaW5zaWRlIG11bHRpdGhyZWFkZWQgc29mdHdhcmUuCiAgIEN1cnJlbnRseSBubwogICBhdHRlbXB0IGlzIG1hZGUgdG8gbWFrZSBzdXJlIHRoYXQgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgdGhlCiAgIE5ldC1TTk1QIGV2ZW50CiAgIHByb2Nlc3NpbmcgbG9vcCB0aHJlYWQuIElmIFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IGFub3RoZXIKICAgdGhyZWFkLCB0aGlzIHdpbGwKICAgcmVzdWx0IGluIG9uZSBvciBtb3JlIGRhdGEgcmFjZXMuCiAgIAogICBCZWNhdXNlIGFsbCB0aGUgZGlmZmljdWx0aWVzIGFzc29jaWF0ZWQgd2l0aCBwcm9jZXNzaW5nIGFsYXJtcwogICBmcm9tIGluc2lkZSBhCiAgIHNpZ25hbCBoYW5kbGVyIGZ1bmN0aW9uLCBhbmQgYmVjYXVzZSBmaXhpbmcgdGhlc2Ugd291bGQgcmVxdWlyZQogICBtb3JlIGVmZm9ydCB0aGFuCiAgIGl0IGlzIHdvcnRoLCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaGFzIGJlZW4KICAgZGVwcmVjYXRlZCBhbmQgZnJvbSBub3cKICAgb24gYXBwcm9hY2ggKDEpIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBhcHByb2FjaCB0byB0cmlnZ2VyIGFsYXJtCiAgIGhhbmRsZXJzLgoKMjAxMC0wMS0wNyAxOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFBhdGNoIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgdG8gZml4IGEgbWlub3IgbWVtbGVhayBpbiBjcHUKICAgc3lzY3RybCBmZXRjaGluZwoKMjAxMC0wMS0wNyAxNjoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFJlbW92ZWQgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgYW5kIG1hZGUgc3VyZSB0aGF0CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgJ1wwJy10ZXJtaW5hdGVzIHRoZSBvdXRwdXQgYnVmZmVyCiAgIGluIGFsbCBjYXNlcy4KICAgVXBkYXRlZCBkb2N1bWVudGF0aW9uIGFuZCB1bml0IHRlc3RzLgoKMjAxMC0wMS0wNyAxNDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBSZW1vdmVkIHRocmVlIHN1cGVyZmx1b3VzIGNhc3RzIGJlY2F1c2UgdGhlc2UgdHJpZ2dlcmVkIGEKICAgY29tcGlsZXIgd2FybmluZwogICB3aGVuIGNvbXBpbGVkIHdpdGggTVNWQy4KCjIwMTAtMDEtMDcgMTM6MjggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHRoZSByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGNoYW5nZXMgZnJvbSByMTc5OTIKICAgYmVjYXVzZSB0aGVzZQogICBjYXVzZWQgdGhlIGZvbGxvd2luZyBWYWxncmluZCBjb21wbGFpbnQgZHVyaW5nIHNubXBkIHN0YXJ0dXA6CiAgIAogICA9PTI1MjAxPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZAogICB2YWx1ZShzKQogICA9PTI1MjAxPT0gYXQgMHg0MDQ3QjE0OiBuZXRzbm1wX3NlbmRfdHJhcHMgKGFnZW50X3RyYXAuYzo3OTgpCiAgID09MjUyMDE9PSBieSAweDQwNDgxMjg6IHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMKICAgKGFnZW50X3RyYXAuYzo4NTMpCiAgID09MjUyMDE9PSBieSAweDQwNDgxOUQ6IHNlbmRfdHJhcF92YXJzIChhZ2VudF90cmFwLmM6OTYzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MjVCOiBzZW5kX2Vhc3lfdHJhcCAoYWdlbnRfdHJhcC5jOjEwMTEpCiAgID09MjUyMDE9PSBieSAweDgwNEI1RDI6IG1haW4gKHNubXBkLmM6Mzk0KQoKMjAxMC0wMS0wNyAxMjozMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNyAxMjoxOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBEZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGFzc2lnbmluZyBhIGNoYXIgKiBwb2ludGVyIHRvCiAgIHN5c09SVGFibGU6Ok9SX2Rlc2NyIGRvZXMgb3IgZG9lcyBub3QgdHJhbnNmZXIKICAgb3duZXJzaGlwLiBTbyB3aGV0aGVyIE9SX2Rlc2NyIGlzIGRlY2xhcmVkIGFzIGNoYXIgKiBvciBhcyBjb25zdAogICBjaGFyICosIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0CiAgIGxlYXN0IG9uZSBzdGF0ZW1lbnQgb24gd2hpY2ggdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGNoYXIKICAgKiAgLyBjb25zdCBjaGFyICogbWlzbWF0Y2guIFRoZSBvbmx5ICAgIHNvbHV0aW9uIGlzIHRvIGNhc3QgYXdheQogICAgICBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZSB0byBtYWtlIHN1cmUgICAgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgICAgY29tcGxhaW4sICAgIGFzIGltcGxlbWVudGVkIGluIHRoaXMgcGF0Y2guICAyMDEwLTAxLTA3IDExOjQ2IAogICAgICBidmFzc2NoZQoKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICB1c21fc2F2ZV91c2VyKCk6IHdoZW4gd3JpdGluZyB1c2VyLT5uYW1lIGFuZCB1c2VyLT5zZWNOYW1lLCBvbmx5CiAgIHdyaXRlIHRoZSBBU0NJSSBkYXRhIGFuZCBub3QgdGhlCiAgIHRlcm1pbmF0aW5nICdcMCcuIFNpbmNlIGJvdGggaXRlbXMgYXJlIHJlYWQgYnkgY2FsbGluZwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCB3cml0aW5nCiAgIHRoZSB0ZXJtaW5hdGluZyAnXDAnIGlzIG5vdCBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEKICAgcmVhZCBiYWNrIGlzIHRlcm1pbmF0ZWQgcHJvcGVybHkuCgoyMDEwLTAxLTA3IDA5OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpOiB1bnRpbAogICBub3cgdGhpcwogICBmdW5jdGlvbiB0ZXJtaW5hdGVkIHRoZSBvdXRwdXQgYnVmZmVyIGluIHNvbWUgY2FzZXMgd2l0aCAnXDAnCiAgICh3aGVuIHRoZQogICBpbnB1dCB3YXMgaW4gdGhlIGZvcm1hdCAweC4uLiBhbmQgYSBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQgYW5kCiAgIGFsc28KICAgd2hlbiB0aGUgaW5wdXQgd2FzIGluIEFTQ0lJIGZvcm1hdCwgYnV0IG5vdCB3aGVuIHRoZSBpbnB1dCB3YXMgaW4KICAgZm9ybWF0CiAgIDB4Li4uIGFuZCBubyBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQpLiBDaGFuZ2VkIHRoaXMgc3VjaCB0aGF0CiAgIHRoaXMKICAgZnVuY3Rpb24gZG9lcyBubyBsb25nZXIgdGVybWluYXRlIHRoZSBpbnB1dCBidWZmZXIgd2l0aCAnXDAnLgogICBUaGlzCiAgIGNoYW5nZSB3YXMgcG9zc2libGUgYmVjYXVzZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgYWxsCiAgIGNhbGxlcnMgdGhhdAogICBuZWVkZWQgYSAnXDAnIHRlcm1pbmF0ZWQgc3RyaW5nIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgaW5zdGVhZC4KCjIwMTAtMDEtMDYgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFJldmVydGVkIHIxNzk2OCBhbmQgcjE3OTcyLgoKMjAxMC0wMS0wNiAxNTo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgdGhlIGNvbnN0CiAgIGtleXdvcmQuCgoyMDEwLTAxLTA2IDE1OjM4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDYgMTU6MzYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQgaW4gcjE3OTc1LgoKMjAxMC0wMS0wNiAxNTozMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE1OjMxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdGhlIGZ1bmN0aW9ucyByZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpIGFuZAogICBzbm1wZF9yZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpLCB3aGljaAogICBhY2NlcHQgYSBwYXJzZXIgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHN0cmluZyB0aGF0IGl0CiAgIHBhcnNlcy4gVXNpbmcgdGhlc2UgZnVuY3Rpb25zIHJlc3VsdHMKICAgaW4gZWFzaWVyIHRvIHJlYWQgY29kZSB0aGFuIHVzaW5nIHRoZSBub24tY29uc3QgaGFuZGxlcgogICByZWdpc3RyYXRpb24gZnVuY3Rpb25zIGFuZCBjYXN0aW5nIHRoZSBwYXJzZXIKICAgZnVuY3Rpb24gZXhwbGljaXRseSBmcm9tICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikpIHRvCiAgICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjaGFyKikpLgoKMjAxMC0wMS0wNiAxNToyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHJlYWRfY29uZmlnX3JlYWRfb2JqaWRfY29uc3QoKS4KCjIwMTAtMDEtMDYgMTQ6NDIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgRm9yIHRob3NlIFZBQ00gZnVuY3Rpb25zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgc3RyaW5ncyBwYXNzZWQgYXMKICAgYXJndW1lbnRzLAogICBjaGFuZ2VkIHRoZSBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIHRvIGNvbnN0IGNoYXIgKi4KCjIwMTAtMDEtMDYgMTQ6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmM6CgogICBSZW1vdmVkIGFuIHVudXNlZCB2YXJpYWJsZS4KCjIwMTAtMDEtMDYgMTQ6MTQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjA4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdAogICBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNDowNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgbmV3IGZ1bmN0aW9ucyBza2lwX3doaXRlX2NvbnN0KCksIHNraXBfbm90X3doaXRlX2NvbnN0KCksCiAgIHNraXBfdG9rZW5fY29uc3QoKSwgY29weV9ud29yZF9jb25zdCgpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpLgogICAtIENoYW5nZWQgcmV0dXJuIHR5cGUgb2YgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBmcm9tCiAgIGNoYXIgKiB0bwogICBjb25zdCBjaGFyICouIE5vdGU6IHRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgIHNpbmNlIHRoaXMKICAgZnVuY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBpbmNsdWRlZCBpbiBhbnkgcmVsZWFzZS4KICAgLSBGaXhlZCBkb2N1bWVudGF0aW9uIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCiAgIC0gUmVkdWNlZCBudW1iZXIgb2YgY2FzdC1hd2F5LWNvbnN0IGNvbnN0cnVjdHMgaW4gcmVhZF9jb25maWcuYy4KCjIwMTAtMDEtMDYgMTM6MzUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgUmVmaW5lZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCk6CiAgIHdoZW4gdXNpbmcKICAgdGhlIGdjYyBjb21waWxlciwgaXQgaXMgbm93IHZlcmlmaWVkIHdoZXRoZXIgdGhlIHR5cGVzIChjb25zdCB0KQogICBhbmQgdHlwZW9mKGUpCiAgIGFyZSBjb21wYXRpYmxlLCB3aGVyZSB0IGlzIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgZSB0aGUgc2Vjb25kCiAgIGFyZ3VtZW50IG9mCiAgIHRoaXMgbWFjcm8uCgoyMDEwLTAxLTA2IDEzOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaDoKCiAgIEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MgYmlnZ2VyIHRoYW4gNgogICBieXRlcyB0byBhdFRhYmxlLiBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzCiAgIHdpdGggOSBhbmQgbW9yZSBieXRlcy4KCjIwMTAtMDEtMDYgMTI6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTI0MTQwOiBGaXggdGVybWluYXRpb24gb2YgQ1BVL0ZQVSB0eXBlcwoKMjAxMC0wMS0wNiAxMjozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkyMjM5MDogRml4IHRlc3QgZm9yIG1pc3NpbmcgY29udGV4dE5hbWUKICAgcGFyYW1ldGVyCgoyMDEwLTAxLTA2IDExOjU3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIENoYW5nZXM6CiAgIC0gSW50cm9kdWNlZCBhIG5ldyBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpIHRoYXQgYWxsb3dzIHRvCiAgIGNhc3QKICAgYXdheSBjb25zdG5lc3Mgd2l0aG91dCB0aGF0IGdjYyAtV2Nhc3QtcXVhbCByZXBvcnRzIGEgd2FybmluZy4KICAgLSBNYWRlIGNhc3RpbmcgYXdheSBjb25zdG5lc3MgZXhwbGljaXQgYnkgaW50cm9kdWNpbmcgdGhlCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgbWFjcm8uIFRoaXMgc3VwcHJlc3NlcyB0aGUgd2FybmluZwogICBnY2MgLVdjYXN0LXF1YWwgcHJpbnRlZCBmb3IgdGhlc2Ugc3RhdGVtZW50cy4KCjIwMTAtMDEtMDYgMTE6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAwOToxNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL2FnZW50eHRyYXAuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG8gbm90IHVzZSAwIHdoZW4gcmVmZXJyaW5nIHRvIE5VTEwuCgoyMDEwLTAxLTA2IDA4OjI2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGVzIG9mIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQKICAgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCiAgIGZyb20gc3RydWN0IHRpbWV2YWwgKiB0byBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqLiBOb3RlOiB0aGlzIGRvZXMKICAgbm90IGFmZmVjdAogICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMTAtMDEtMDYgMDg6MjMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ2hhbmdlcyAobm8gZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb2RpZmllZCk6CiAgIC0gUmVtb3ZlZCBkaXNraW9fcGFyc2VfY29uZmlnKCkgZGVjbGFyYXRpb24gYmVjYXVzZSB0aGF0IGZ1bmN0aW9uCiAgIGlzIG5laXRoZXIgY2FsbGVkIG5vciBkZWZpbmVkIGluIHRoZSBzb3VyY2UgZmlsZSBkaXNraW8uYy4KICAgLSBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgZ2V0c3RhdHMoKSBzdWNoIHRoYXQgZ2NjIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbi4KICAgLSBMaW51eDogY2hhbmdlZCB2aXNpYmlsaXR5IG9mIGdldHN0YXRzKCkgZnJvbSBnbG9iYWwgdG8gc3RhdGljCiAgIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBCU0QgYW5kIERhcndpbiBpbXBsZW1lbnRhdGlvbnMgb2YKICAgZ2V0c3RhdHMoKS4KCjIwMTAtMDEtMDYgMDg6MDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKiBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAwMjoxOCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIG1hbi9NYWtlZmlsZS5pbiwgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGFwcHM6IE9ubHkgYnVpbGQgYWdlbnR4dHJhcCBpZiB0aGUgYWdlbnR4IGxpYnJhcmllcyBhcmUKICAgYnVpbHQuIEFkZCBhIHRlc3QgY2FzZSBmb3IgYWdlbnR4dHJhcC4KICAgCiAgIFRoZSBlbmFibGVtZW50L2Rpc2FibGVtZW50IGlzIGluc3BpZXJlZCBieSBhdXRvbWFrZSBjb25kaXRpb25hbHMKCjIwMTAtMDEtMDYgMDE6NTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RhcnR0aW1lLgoKMjAxMC0wMS0wNSAyMjo1NCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmg6CgogICBDSEFOR0VTOiBIaWRlIG1vc3QgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgaW4gdGhlIGxvZ21hdGNoCiAgIG1vZHVsZS4gQ2xlYW5lZCB1cCB0aGUgaGVhZGVyIGFjY29yZGluZ2x5LiBSZW1vdmUgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zIGJ5IHJlb3JkZXJpbmcgdGhlIGZ1bmN0aW9ucy4KCjIwMTAtMDEtMDUgMjI6MzMgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVR1M6IDI5MTkzNzk6IEluaXRpYWxpc2UgU05NUCBzZXNzaW9ucyBwcm9wZXJseQogICBQcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAxMC0wMS0wNSAyMjoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MTkzMjA6IEF2b2lkIGFjY2Vzc2luZyBmcmVlZCBtZW1vcnkKICAgUmVwb3J0ZWQgYnkgVG9tYXN6IExpcwoKMjAxMC0wMS0wNSAxODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MTQ0MTA6IEZpeCBjcmFzaCBvbiBlbXB0eSBjb21tYW5kIGxpbmVzCgoyMDEwLTAxLTA1IDE1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMjU4NDogRml4IG51bGwgT0lEIGhhbmRsaW5nIGluIEFnZW50eAogICBvbiA2NGJpdAogICBQYXRjaCBzdXBwbGllZCBieSBMdXR6IEphZW5pY2tlCgoyMDEwLTAxLTA1IDEwOjExICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIENIQU5HRVM6IGhwdXg6IGZpeCBidWlsZCBlcnJvciBvbiBIUC1VWCAxMC4yMAoKMjAxMC0wMS0wNSAwODo0MiAganNhZnJhbmVrCgogICAqIG1hbiwgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgUmVtb3ZlIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbSByZXBvc2l0b3J5LgoKMjAxMC0wMS0wNCAxNjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZCB0aGF0IG9jY3VycmVkIHdoZW4gYW4gQVNDSUkKICAgc3RyaW5nIHdhcwogICBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgLwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGFuZCB0aGUgdGhpcmQgYXJndW1lbnQgKCpsZW4pCiAgIGVxdWFscyAwLgoKMjAxMC0wMS0wNCAxNjo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5ICdjb25zdCcuCgoyMDEwLTAxLTA0IDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB1bml0IHRlc3QgZm9yIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCgoyMDEwLTAxLTA0IDEwOjQ1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBjb3JyZWN0IG9pZCBsZW5ndGggaW4gdGFibGUgaW5kZXhlcy4KCjIwMTAtMDEtMDQgMDg6MTAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgc25tcF9hbGFybS5jIGNhbiBiZSBjb21waWxlZCBhZ2FpbiB3aXRoIEM4OQogICBjb21waWxlcnM6IGZvciBDODkKICAgaXQgaXMgcmVxdWlyZWQgdGhhdCBpbml0aWFsaXplcnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zLgoKMjAxMC0wMS0wMyAxNjoyOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jOgoKICAgUmVuYW1lIG5ldHNubXBfYXJjaF90Y3Bjb25uX2RlbGV0ZSB0bwogICBuZXRzbm1wX2FyY2hfdGNwY29ubl9lbnRyeV9kZWxldGUgaW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoCiAgIHRoZSBoZWFkZXIgZmlsZSBhbmQgYWxsIHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZS4KCjIwMTAtMDEtMDMgMTY6MjYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBBZGQgbWlzc2luZyBkZWNsYXJhdGlvbnMuCgoyMDA5LTEyLTMwIDEyOjQ5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgRm9sbG93LXVwIGZvciByMTc5MzM6IGZpeGVkIHRoZSBpc3N1ZSB0aGF0IGluY2x1ZGluZyB0aGUgaGVhZGVyCiAgIGZpbGUKICAgPG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaD4gZnJvbSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgogICB0cmlnZ2VycwogICBjb21waWxlciBlcnJvcnMgZHVyaW5nIHRoZSBjb25maWd1cmUgcHJvY2VzcyAoY29tcGxhaW50cyBhYm91dAogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gbm90IGJlaW5nIGluY2x1ZGVkIGJlZm9yZQogICA8bmV0LXNubXAvdHlwZXMuaD4pLgogICBOb3RlOiB0aGlzIGRvZXMgbm90IHNvbHZlIHRoZSB1bmRlcmx5aW5nIHByb2JsZW0gdGhhdCBNSUIgY29kZQogICBtdXN0IG5vdAogICBpbmNsdWRlIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvdHlwZXMuaD4gYmVjYXVzZSBkb2luZyBzbyB3b3VsZAogICB0cmlnZ2VyIGEKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBzdGVwIChNSUIgY29kZSBpcwogICBjb21waWxlZCBkdXJpbmcKICAgdGhlIGNvbmZpZ3VyZSBzdGVwLCB3aGlsZSB0aGUgY29uZmlndXJlIHN0ZXAgZ2VuZXJhdGVzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBhbmQgPG5ldC1zbm1wL3R5cGVzLmg+IG5lZWRzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCgoyMDA5LTEyLTMwIDExOjQ4ICBidmFzc2NoZQoKICAgKiBhcHBzLCBtYW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxOTogdXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0cy4KCjIwMDktMTItMjggMTg6MDMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkLiBGb3VuZCB0aGlzIGJ5IGFuYWx5emluZyBjb21waWxlcgogICB3YXJuaW5ncy4KICAgTm90ZTogdGhlIGFmZmVjdGVkIGZ1bmN0aW9uLCByZWdpc3Rlcl9zdHJpbmdfaW5kZXgoKSwgaXNuJ3QKICAgY2FsbGVkIGZyb20KICAgYW55d2hlcmUgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGl0c2VsZi4KCjIwMDktMTItMjMgMDk6NDkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIEZpeCBpbnZhbGlkIHJlYWQgcmVwb3J0ZWQgYnkgdmFsZ3JpbmQ6CiAgIEludmFsaWQgcmVhZCBvZiBzaXplIDEKICAgbWVtY3B5IChtY19yZXBsYWNlX3N0cm1lbS5jOjQwMikKICAgX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkX3Y0CiAgIChpcGFkZHJlc3NfaW9jdGwuYzoyNDApCiAgIG5ldHNubXBfYXJjaF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19saW51eC5jOjE1OCkKICAgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfY29tbW9uLmM6MTEyKQogICAKICAgUmV0dXJuaW5nIHN0cnVjdHVyZSB3aXRoIHBvaW50ZXJzIGluc2lkZSBpcyBub3QgdGhlIGJlc3QgdGhpbmcgdG8KICAgZG8uCgoyMDA5LTEyLTIyIDE2OjA1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCgoyMDA5LTEyLTIyIDEyOjAyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAKICAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFJldmVydGVkIHRoZSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZXMgb2YgcjE3OTEzOgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvLgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUgZnVuY3Rpb25zCiAgIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwKICAgdWF0aW1lX3JlYWR5KCksIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KICAgLSBzdGFydHRpbWUgaXMgYWdhaW4gYSBnbG9iYWwgdmFyaWFibGUgaW5zdGVhZCBvZiBhIHN0YXRpYyBvbmUuCiAgIEFsc28gaW1wbGVtZW50ZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIE1vdmVkIHRoZSBtYXJrZXJfdCB0eXBlZGVmIGZyb20gbmV0LXNubXAvbGlicmFyeS90b29scy5oIHRvCiAgIG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaC4KICAgLSBBZGRlZCBhIG5ldyB0eXBlZGVmLCBjb25zdF9tYXJrZXJfdC4KICAgLSBGb3IgdGhvc2UgYXRpbWVfKigpIC8gdWF0aW1lXyooKSAvICpfdHRpY2tzKCkgZnVuY3Rpb25zIHRoYXQgZG8KICAgbm90IGNoYW5nZQogICB0aGVpciBhcmd1bWVudHMsIGRlY2xhcmVkIHRoZXNlIGFyZ3VtZW50cyBjb25zdF9tYXJrZXJfdCBpbnN0ZWFkCiAgIG9mIG1hcmtlcl90LgogICAtIFJlbmFtZWQgbmV0c25tcF9nZXRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIHRvCiAgIG5ldHNubXBfZ2V0X2FnZW50X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9hZ2VudF9zdGFydHRpbWUoKQogICByZXNwZWN0aXZlbHkuIE1vdmVkIHRoZXNlIGZ1bmN0aW9ucyBmcm9tIHRvb2xzLmMgdG8gc3lzdGVtLmMuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb24gYXRpbWVfaHN1YnRyYWN0KCkgKHdhcyBpbnRyb2R1Y2VkIGluCiAgIHIxNzkxMykgYW5kCiAgIGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb24sIG5ldHNubXBfc2V0X2FnZW50X3VwdGltZSgpLgoKMjAwOS0xMi0yMiAwNzo1OSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTI2LCB3aGljaCBtYWRlIHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZWQuIEEgbmV3IHBhdGNoIHdpbGwKICAgZm9sbG93CiAgIHRoYXQgZml4ZXMgdGhlIGNhbGxlcnMgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB0aGF0CiAgIHdlcmUKICAgYXNzdW1pbmcgdGhhdCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlcyB0aGUKICAgc3RyaW5nCiAgIHJlYWQgYnkgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMjEgMTQ6MjkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IGNyYXNoIGluIElGLU1JQiBhbmQgSVAtTUlCIHdoZW4gdGhlcmUgYXJlCiAgIHNvbWUgaW50ZXJmYWNlcyB3aXRoIGJyb2FkY2FzdCBJUCBhZGRyZXNzIGFuZCBzb21lIHdpdGhvdXQuCiAgIAogICBSZXNldCB0aGUgYmNhc3RlbnRyeSBpbiB0aGUgbG9vcCwgc28gaXQgY2Fubm90IGJlIGluc2VydGVkIHRvIHRoZQogICBjb250YWluZXIKICAgdHdpY2UuCiAgIAogICBXaXRob3V0IHRoaXMgcGF0Y2gsIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGhvdXQgYnJvYWRjYXN0IGFkZHJlc3MKICAgaXMgcHJvY2Vzc2VkLAogICB0aGUgYmNhc3RhZGRyZXNzIGZyb20gcHJldmlvdXMgbG9vcCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICBjb250YWluZXIuIFRoaXMKICAgb2J2aW91c2x5IGZhaWxzIGFuZCB0aGUgYmNhc3RlbnRyeSBpcyBmcmVlZCwgYnV0IHRoZSBjb250YWluZXIKICAgc3RpbGwgY29udGFpbnMKICAgcmVmZXJlbmNlIHRvIGl0IC0+IFNJR1NFR1YuCgoyMDA5LTEyLTIxIDEzOjUyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyODogd2hpbGUgcjE3OTI4IGZpeGVkIGEgZGFuZ2xpbmcgcG9pbnRlcgogICBkZXJlZmVyZW5jZQogICBkZXRlY3RlZCBieSBydW5uaW5nIHRoZSBOZXQtU05NUCBzb2Z0d2FyZSBvbiBXaW5kb3dzLCB0aGF0IHBhdGNoCiAgIGludHJvZHVjZWQKICAgYSBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlIGFib3V0IHdoaWNoIG9ubHkgVmFsZ3JpbmQgb24gTGludXgKICAgY29tcGxhaW5lZC4KICAgVGhpcyBmb2xsb3ctdXAgcGF0Y2ggZml4ZXMgYm90aCBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcwogICB0cmlnZ2VyZWQgYnkKICAgcGFyc2luZyB0aGUgcGVyc2lzdGVudERpciBrZXl3b3JkLgoKMjAwOS0xMi0yMSAxMzozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkwMTEyMi4gQ2hhbmdlczoKICAgLSBOZXcgZmVhdHVyZTogc3BlY2lmeWluZyBBU04gdHlwZSBTTk1QX05PU1VDSElOU1RBTkNFIGFzIHRoZQogICB0aGlyZCBhcmd1bWVudAogICBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgd2lsbCBjYXVzZSBhbiBTTk1QIEdldFJlcXVlc3QgLwogICBHZXROZXh0UmVxdWVzdCB0bwogICByZXR1cm4gdGhlIGVycm9yIGNvZGUgbm9TdWNoSW5zdGFuY2UgKFNOTVB2Mikgb3Igbm9TdWNoTmFtZQogICAoU05NUHYxKS4gVGhpcwogICBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIGEgY2FjaGVkIHRhYmxlIHdpdGggb25lIG9yIG1vcmUKICAgImhvbGVzIi4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIHZhbHVlIGhhcyBub3QgYmVlbiBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuCiAgIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogaWYgdGhlIHNpemUgb2YgdGhlIGNhY2hlZCB2YWx1ZQogICBzaHJ1bmssIHVzZQogICByZWFsbG9jKCkgaW5zdGVhZCBvZiBmcmVlKCkgYW5kIG1hbGxvYygpLgoKMjAwOS0xMi0yMSAxMjoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MTIwNTU6IG1ha2Ugc3VyZQogICB0aGF0CiAgIHBhcnNpbmcgdGhlICJwZXJzaXN0ZW50RGlyIiBrZXl3b3JkIGluIHNubXAuY29uZiBkb2VzIG5vdCB0cmlnZ2VyCiAgIGEKICAgZGFuZ2xpbmcgcG9pbnRlci4gVG8gbXkgc3VycHJpc2UgQm91bmRzQ2hlY2tlciBjb21wbGFpbmVkIGFib3V0CiAgIHRoaXMKICAgKG9uIFdpbmRvd3MpLCBidXQgVmFsZ3JpbmQgZGlkIG5vdCByZXBvcnQgdGhpcyBpc3N1ZSAob24gTGludXgpLgoKMjAwOS0xMi0yMSAxMjowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MjUgKGZpeCBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cCk6IHdoaWxlCiAgIHIxNzkyNSBmaXhlZAogICBvbmx5IHRoZSBsZWFrIHRyaWdnZXJlZCBmcm9tIGluc2lkZSB0aGUgZm9yLWxvb3AsIHRoaXMgcGF0Y2ggZG9lcwogICBub3cgYWxzbwogICBmaXggdGhlIGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZSBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfYWRkX3JvdygpCiAgIGNhbGwgbmVhcgogICB0aGUgZW5kIG9mIGxvZ19ub3RpZmljYXRpb24oKS4KCjIwMDktMTItMjEgMTI6MDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjI6IG1ha2Ugc3VyZSB0aGF0IHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBpcyBwcm9wZXJseSB0ZXJtaW5hdGVkLCBzdWNoIHRoYXQKICAgdGhlCiAgIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiBkbyBub3QgdHJpZ2dlciBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCiAgIEZvdW5kCiAgIHRoaXMgaXNzdWUgdmlhIEJvdW5kc0NoZWNrZXIuCgoyMDA5LTEyLTIxIDExOjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDY4LCB3aGljaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwLgogICBUaGUKICAgZnVuY3Rpb24gbG9nX25vdGlmaWNhdGlvbigpIGFkZHMgYSByb3cgdG8gdGhlIHRhYmxlCiAgIG5sbUxvZ1ZhclRhYmxlLCBidXQKICAgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJlZm9yZSB0aGF0IHRhYmxlIGhhcyBiZWVuCiAgIGluaXRpYWxpemVkLiBJZgogICB0aGF0IGhhcHBlbnMsIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZm9yIGEgcm93IGJ1dCB0aGF0IG1lbW9yeSBpcwogICBuZXZlcgogICBhZGRlZCB0byB0aGUgY2FjaGVkIHRhYmxlIGRhdGEuIFRoZSBCb3VuZHNDaGVja2VyIHRvb2wgcmVwb3J0ZWQKICAgdGhpcyBhcwogICBhICJtZW1vcnkgbGVhayBsZWF2aW5nIHNjb3BlIi4KCjIwMDktMTItMjEgMTA6NTQgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIHRoZSBmb2xsb3dpbmcgdGV4dCB0byB0aGUgIkxpbWl0YXRpb25zIiBzZWN0aW9uIG9mCiAgIFJFQURNRS53aW4zMjoKICAgIldoZW4gdXNpbmcgd2luRXh0RExMLCB0aGVyZSBpcyBhbiBvZmZzZXQgb2YgdXAgdG8gb25lIHNlY29uZAogICBiZXR3ZWVuIHRoZQogICB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lIHZhcmJpbmQgaW5jbHVkZWQgaW4gdGhlIHRyYXBzIGdlbmVyYXRlZCBieQogICBTTk1QCiAgIGV4dGVuc2lvbiBETExzIChlLmcuIGxpbmtVcCBhbmQgbGlua0Rvd24pIGFuZCB0aGUgdmFsdWUgb2YgdGhlCiAgIHN5c1VwVGltZQogICB2YXJiaW5kIGluY2x1ZGVkIGluIHRyYXBzIGdlbmVyYXRlZCBieSBOZXQtU05NUCBpdHNlbGYgKGUuZy4KICAgY29sZFN0YXJ0KS4iCgoyMDA5LTEyLTIxIDEwOjA5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgU3BlbGxpbmcgZml4OiByZXBsYWNlZCBhbGwgb2NjdXJyZW5jZXMgb2YgJ3NwZWNpZmMnIGJ5CiAgICdzcGVjaWZpYycuCgoyMDA5LTEyLTIxIDEwOjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFJlZmFjdG9yaW5nOiBlbGltaW5hdGVkIGR1cGxpY2F0ZWQgY29kZSBieSByZWltcGxlbWVudGluZwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgdXNpbmcgc25tcF9hbGFybV9yZWdpc3Rlcl9ocigpLiBOZWl0aGVyIHRoZQogICBOZXQtU05NUCBBUEkgbm9yIHRoZSBiZWhhdmlvciBvZiBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgaGFzIGJlZW4KICAgY2hhbmdlZC4KCjIwMDktMTItMjAgMTE6MTAgIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2FnZW50eHRyYXAuYywgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vYWdlbnR4dHJhcC4xLmRlZjoKCiAgIE5FV1M6IGFwcHM6IEFkZCBjb21tYW5kIHRvIHNlbmQgQWdlbnRYIG5vdGlmeSByZXF1ZXN0cyB0byBhCiAgIG1hc3RlciBhZ2VudC4KCjIwMDktMTItMTcgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE3IC0tIGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTE3IDE2OjAzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MDMgLyBwYXRjaCAyOTExMzIzICJGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZwogICBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uIiAoc3VibWl0dGVkIGJ5IG15c2VsZikuIFRoYXQgcGF0Y2gKICAgZGlkIG5vdCBvbmx5CiAgIGZpeCB0aGUgbG9ja3VwIGJ1dCBhbHNvIG1hZGUgc25tcGQgcHJpbnQgYSB3YXJuaW5nIGR1cmluZyBzdGFydHVwCiAgIHdoZW4KICAgaXF1ZXJ5U2VjTmFtZSB3YXMgbm90IGNvbmZpZ3VyZWQuIFRoaXMgd2FybmluZyB3YXMgcHJpbnRlZCBldmVuCiAgIHdoZW4gbm8KICAgaW50ZXJuYWwgcXVlcmllcyB3ZXJlIHBlcmZvcm1lZC4gVGhpcyB3YXJuaW5nIGlzIG5vdyBvbmx5IHByaW50ZWQKICAganVzdCBiZWZvcmUKICAgdGhlIGZpcnN0IGludGVybmFsIHF1ZXJ5IGlzIG1hZGUgKGR1cmluZyB0aGUgZmlyc3QgY2FsbCBvZgogICBuZXRzbm1wX3F1ZXJ5X2dldF9kZWZhdWx0X3Nlc3Npb24oKSBpbnN0ZWFkIG9mIGR1cmluZyBjcmVhdGlvbiBvZgogICB0aGUgaW50ZXJuYWwKICAgc2Vzc2lvbikuCgoyMDA5LTEyLTE3IDEzOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jOgoKICAgUk1PTiBNSUIgc291cmNlIGNvZGUgY29tcGlsZXMgYWdhaW4gLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKSBhbmQKICAgQUdVVElMX3N5c191cF90aW1lKCkgc3VjaCB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBub3JtYWxpemUgdGhlCiAgIHR2X3VzZWMgZmllbGQgb2YKICAgc3RydWN0IHRpbWV2YWwgcHJvcGVybHkuIE5vdGU6IHRoaXMgc291cmNlIGNvZGUgbW9kaWZpY2F0aW9uIGRvZXMKICAgbm90IGFmZmVjdAogICB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhZm9yZW1lbnRpb25lZCB0d28gZnVuY3Rpb25zLgoKMjAwOS0xMi0xNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogbWFuL25ldHNubXBfdXRpbC4zOgoKICAgUmVtb3ZlZCBkb2N1bWVudGF0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvIC0tIHNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzowNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENvbnZlcnRlZCBzdGFydHRpbWUgZnJvbSBhIGdsb2JhbCB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIGFuZCBhcHBsaWVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBBZGRlZCB0d28gbmV3IG1hY3JvczogTkVUU05NUF9USU1FUkFERCgpIGFuZAogICBORVRTTk1QX1RJTUVSU1VCKCkuCiAgIC0gQWRkZWQgdGhyZWUgbmV3IGZ1bmN0aW9uczogbmV0c25tcF9nZXRfc3RhcnR0aW1lKCksCiAgIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIGFuZCBhdGltZV9oc3VidHJhY3QoKS4KICAgLSBSZXBsYWNlZCBnZXR0aW1lb2ZkYXkoKSArIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBjYWxscyBieSBhIGNhbGwKICAgdG8gbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkuCiAgIC0gUmVtb3ZlZCB0aGUgbWFjcm8gRElGRlRJTUVWQUwoKSBiZWNhdXNlIGl0IHdhcyBub3QgdXNlZCBpbnNpZGUKICAgdGhlIE5ldC1TTk1QIHByb2plY3QgYW5kIGJlY2F1c2UgaXQgY29udGFpbmVkIGEgYnVnLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9ucyBjYWxjdWxhdGVfdGltZV9kaWZmKCksIHVhdGltZV9yZWFkeSgpLAogICBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCgoyMDA5LTEyLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBCdWcgZml4OiBhY2NvcmRpbmcgdG8gUkZDIDI1NzEgdGhlIHVuaXQgb2Ygc25tcEVuZ2luZVRpbWUgaXMgb25lCiAgIHNlY29uZCwKICAgbm90IG9uZSBodW5kcmVkdGggb2YgYSBzZWNvbmQuCgoyMDA5LTEyLTE3IDEwOjAzICBkdHMxMgoKICAgKiBtYW4vc25tcHRlc3QuMS5kZWY6CgogICBGaXggdHlwby4KCjIwMDktMTItMTYgMTI6MzAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3Mtb25seSBidWcgZml4ZXM6CiAgIC0gRml4ZWQgdGhlIHN0cmFuZ2UgYnVpbGQgZXJyb3JzIHRoYXQgb2NjdXJyZWQgd2hlbiBjb21waWxpbmcKICAgbGlibmV0c25tcCBhcyBhIERMTCBhbmQgd2hlbiBlaXRoZXIgPHN0ZGxpYi5oPiBvciA8c3RyaW5nLmg+IHdhcwogICBpbmNsdWRlZCBhZnRlciA8bmV0LXNubXAtY29uZmlnLmg+IGluc3RlYWQgb2YgYmVmb3JlLgogICAtIEZvciBkZWJ1ZyBidWlsZHMgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbywgZml4ZWQgdGhlCiAgIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgX21hbGxvY19kYmcoKSBjYWxsIGludm9rZWQgYnkgc3RyZHVwKCkgYW5kCiAgIGZyZWUoKS1pbmcgc3RyZHVwKCktZWQgbWVtb3J5IGJ5IGluY2x1ZGluZyB0aGUgPGNydGRiZy5oPiBoZWFkZXIKICAgaW4gdG9vbHMuYyBhbmQgYnkgZGVmaW5pbmcgdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgX0NSVERCR19NQVBfQUxMT0MuIERldGVjdGVkIHZpYSB0aGUgbWVtb3J5IGNoZWNrZXIgaW5jbHVkZWQgaW4KICAgSW50ZWwgUGFyYWxsZWwgU3R1ZGlvLgoKMjAwOS0xMi0xNCAxNzoyMyAgdGFuZGVycwoKICAgKiAgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgc3luYyBkZWZpbml0aW9uIG9mIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBQZXJsIHdpdGggdGhlIGNoYW5nZXMKICAgaW4KICAgcjE3ODU1IGFuZCByMTc5MDgKCjIwMDktMTItMTQgMTM6NTUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeCBUQ1AgdHJhbnNwb3J0IGJyb2tlbiBieSByZXYuIDE3ODU1IC0gY29waWVzIG9mCiAgIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBzbm1wVENQRG9tYWluLmMgYW5kIHNubXBVRFBEb21haW4uYyBtdXN0CiAgIGJlIHRoZSBzYW1lLgoKMjAwOS0xMi0xMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgQ0hBTkdFUzogc25tcHVzbTogcGF0Y2ggZnJvbSBNYXJ0aW4gQmpvcmtsdW5kIHRvIGFkZCBhIC1DdyBvcHRpb24KICAgdG8gdXNlIGNyZWF0ZUFuZFdhaXQgZm9yIGFnZW50cyB0aGF0IGFyZSBzdHJpY3QgYWJvdXQgbm90CiAgIGFsbG93aW5nIGEgcm93IHRvIGJlIHNldCB0byBhY3RpdmUgdW50aWwgdGhlIGF1dGhlbnRpY2F0aW9uCiAgIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWQ7IHBsdXMgd2hpdGUtc3BhY2UgY2xlYW4gdXAsIG1hbnVhbAogICBhZGRpdGlvbnMgYW5kIGhlbHAgb3V0cHV0IG1vZGlmaWNhdGlvbnMgYnkgaGFyZGFrZXIKCjIwMDktMTItMTEgMTQ6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhIGZvcm1hdCBzcGVjaWZpZXIgbWlzbWF0Y2guCgoyMDA5LTEyLTExIDE0OjA2ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgd2luRXh0RExMIGJ1Z3MgZml4ZWQ6CiAgIC0gc3lzVXBUaW1lLjAgZG9lcyBub3cgcmVwb3J0IHRoZSBjb3JyZWN0IHZhbHVlLgogICAtIGEgbGlua1VwIG9yIGxpbmtEb3duIHRyYXAgaXMgbm93IHNlbnQgYWZ0ZXIgdGhlIHN0YXR1cyBvZiBhCiAgIG5ldHdvcmsgaW50ZXJmYWNlCiAgIGhhcyBjaGFuZ2VkLgogICAtIHRoZSB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lLjAgdmFyYmluZCBpbiBsaW5rVXAgYW5kIGxpbmtEb3duCiAgIHRyYXBzIGlzIG5vdwogICBjb3JyZWN0LgoKMjAwOS0xMi0xMCAxNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0hFUzogMjkxMTk3MDogUHJvcGVybHkgdGVybWluYXRlIGxpbmtlZCBsaXN0CiAgIG9mIHJlZ2lzdHJhdGlvbnMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pcmtvIERlY2tlcnQuCgoyMDA5LTEyLTEwIDE1OjQzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjkxMTMyMzogRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbgoKMjAwOS0xMi0xMCAxMzo1OSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZgogICBoclN5c3RlbVVwdGltZS4wLgogICAtIEZpeGVkIGEgZmV3IHR5cG9zLgoKMjAwOS0xMi0xMCAxMzowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFkZGVkIG1pc3NpbmcgbmV3bGluZSBpbiBhIGxvZ2dpbmcgc3RhdGVtZW50LgoKMjAwOS0xMi0xMCAxMjo1NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHdpbkV4dERMTCBidWdzOgogICAtIEZpeGVkIGJ1ZyBpbiB0cmFwIGZvcndhcmRpbmc6IGxpbmtEb3duIHRyYXBzIHdlcmUgc2VudCBhcwogICB3YXJtU3RhcnQgdHJhcHMKICAgYW5kIGxpbmtVcCB0cmFwcyB3ZXJlIHNlbnQgYXMgbGlua0Rvd24gdHJhcHMuCiAgIC0gRml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZXh0ZW5zaW9uIERMTCBsb2FkaW5nLgogICAtIEEgZGVidWcgdHJhY2Ugc3RhdGVtZW50IGlzIG5vdyBpbnZva2VkIHdoZW5ldmVyIGEgc2VyaW91cyBlcnJvcgogICBoYXMgYmVlbgogICBkZXRlY3RlZC4KCjIwMDktMTItMTAgMTI6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT0lEcyBpbiBkZWJ1ZyBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgdGhlIHdpbkV4dERMTCBtb2R1bGUgYXJlIG5vdwogICBwcmludGVkIGluCiAgIHN5bWJvbGljIGZvcm0gaW5zdGVhZCBvZiBudW1lcmljIGZvcm0uCgoyMDA5LTEyLTEwIDA4OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBQcm9qZWN0IGRlcGVuZGVuY2llcyBzaG91bGQgbm93IHJlYWxseSBiZSBjb3JyZWN0LiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzg3My4KCjIwMDktMTItMTAgMDg6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ2hhbmdlcyAob25seSBzb3VyY2UgY29kZSBjb21tZW50cyBoYXZlIGJlZW4gY2hhbmdlZCk6CiAgIC0gUmVtb3ZlZCBhIG5vdGUgdGhhdCBjb250cmFkaWN0ZWQgdGhlIGluc3RydWN0aW9ucyBpbgogICBSRUFETUUud2luMzIuCiAgIC0gVXBkYXRlZCBidWlsZCBpbnN0cnVjdGlvbnMgYWZ0ZXIgdGhlIGFkZGl0aW9uIG9mIHRoZSBmaWxlCiAgIHdpbjMyL1NubXAtd2luRXh0RExMLmggaW4gcjE3ODMwLgoKMjAwOS0xMi0xMCAwODoxNyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wc3RhdHVzLmM6CgogICBNYWRlIGZpbGUgaGVhZGVyIGNvbW1lbnRzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZGVzY3JpcHRpb25zIGluIHRoZQogICByZXNwZWN0aXZlIG1hbiBwYWdlcy4KCjIwMDktMTItMTAgMDM6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnRfc3lzT1JfY2FsbGJhY2sgd29uJ3QgdHJpZ2dlciBhIHdhcm5pbmcgd2hlbgogICByZWdpc3RlcmVkIGFzIGEgY2FsbGJhY2suIENoYW5nZSBhZ2VudHhfcmVvcGVuX3N5c09SVGFibGUgaW4KICAgb3JkZXIgdG8gYXZvaWQgd2FybmluZ3Mgb2YgY29uc3QgcmVtb3ZhbC4KCjIwMDktMTItMDkgMTU6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIE1vdmVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnIGluc2lkZSB0aGUKICAgZnVuY3Rpb24KICAgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIG9ubHkgdXNlZCBieQogICB0aGF0IGZ1bmN0aW9uLgogICAtIERvY3VtZW50ZWQgdGhlIHB1cnBvc2Ugb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJy4KICAgLSBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCB0aGUgY2FsbCBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBkb2VzCiAgIG5vdCB0cmlnZ2VyIGFuCiAgIGludmFsaWQgbWVtb3J5IGFjY2VzcyAoc3RyWy0xXSkgd2hlbiBhbiBlbXB0eSBzdHJpbmcgaXMgcGFzc2VkIHRvCiAgIHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTA5IDE0OjM3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzCiAgIGJpZ2dlciB0aGFuIDYgYnl0ZXMgdG8gaXBOZXRUb01lZGlhVGFibGUgYW5kCiAgIGlwTmV0VG9QaHlzaWNhbFRhYmxlLgogICBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzIHdpdGggOSBhbmQgbW9yZQogICBieXRlcy4gU25tcGQgb24gTGludXggd2FzIG5vdCBhYmxlIHRvIHBhcnNlIC9wcm9jL25ldC9hcnAgdGhlbgogICBhbmQgcHJvZHVjZWQgdWdseSAnaW9jdGwgMzUxMjMgcmV0dXJuZWQgLTEnIHRvIGxvZy4KCjIwMDktMTItMDkgMTI6MjcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIG1pc3NpbmcgLUxvIGluIGEgY29tbWFuZCBsaW5lIGV4YW1wbGUuCgoyMDA5LTEyLTA5IDEyOjE2ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBBZGRlZCBzbm1wYXBpLmxpYiB0byB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2Ygc25tcGQuZXhlLgogICBBcHBhcmVudGx5IFZpc3VhbAogICBTdHVkaW8gMjAwNSBhbmQgMjAwOCBuZWVkIHRoaXMgbGlicmFyeSBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3QKICAgd2hlbiBsaW5raW5nCiAgIHRoZSBleGUsIHdoaWxlIGZvciBWaXN1YWwgU3R1ZGlvIDYgaXQgaXMgc3VmZmljaWVudCB3aGVuIHRoaXMKICAgbGlicmFyeSBpcwogICBwcmVzZW50IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBuZXRzbm1wbWlicy5saWIuCgoyMDA5LTEyLTA5IDA4OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODQgYW5kIHIxNzg3MywgdGhlIGJ1aWxkCiAgIHByb2Nlc3MgYmVjYW1lIHNpbXBsZXIuCgoyMDA5LTEyLTA5IDA4OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEV4cG9ydCBzdHJ0b3VsbCAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxNzg4Ni4KCjIwMDktMTItMDkgMDg6MjEgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJldmVydGVkIHIxNzcwMCBmb3IgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NiwgbW9kaWZ5aW5nCiAgIHRoZQogICBzdHJ0b3VsbCBsaW5lIGluIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIGlzIG5vIGxvbmdlcgogICBuZWNlc3NhcnkuCgoyMDA5LTEyLTA5IDA4OjEyICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3M6IHN3aXRjaGVkIGZyb20gX3N0cnRvdWk2NCgpIHRvIHN0cnRvdWxsKCkgZm9yIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvCiAgIDIwMDIgYW5kIGxhdGVyIGJlY2F1c2UgdGhlIGZvcm1lciBpcyBub3QgZnVsbHkgUE9TSVggY29tcGxpYW50LgogICBUaGUgc3RydG91bGwoKQogICB1bml0IHRlc3QgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBvdXRwdXQgZm9yIF9zdHJ0b3VpNjQoKSB3aXRoCiAgIE1TVkMgMjAwODoKICAgdGVzdCAxNCBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCiAgIHRlc3QgMTYgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAoKMjAwOS0xMi0wOCAyMTo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IGEgbWFzayBpcyBnaXZlbiB0byBvcGVuCiAgIHdoZW4gT19DUkVBVCBpcyBzcGVjaWZpZWQKCjIwMDktMTItMDggMTY6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIHRoaXMgb3V0LgoKMjAwOS0xMi0wOCAxNTo0NyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBVbml4IHN5c3RlbXMgKGZpeGVkIGEgdHlwbyBpbnRyb2R1Y2VkIGluIHIxNzg4MSkuCgoyMDA5LTEyLTA4IDE1OjM3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuIFdpdGhvdXQgdGhpcwogICBkZWZpbmUgdGhlIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGJlbmlnbiByZWRlZmluaXRpb24gb2YKICAgdHlwZSBzb2NrbGVuX3QuCgoyMDA5LTEyLTA4IDE1OjI4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENsZWFuZWQgdXAgdGhlIGNvZGUgZm9yIHNldHRpbmcgbGluZSBidWZmZXJpbmc6CiAgIC0gSW5zdGVhZCBvZiBoYXZpbmcgY2FsbHMgdG8gc2V0dmJ1ZigpIGluIG11bHRpcGxlIGZpbGVzLCB0aGVyZQogICBpcyBub3cgb25lIGNhbGwKICAgdG8gc2V0dmJ1ZigpIGZyb20gdGhlIG5ldyBmdW5jdGlvbiBuZXRzbm1wX3NldF9maWxlbG9nLiBUaGVzZQogICBzb3VyY2UgZmlsZXMKICAgYXJlOiBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0YWJsZS5jCiAgIGFuZCBhZ2VudFxtaWJncm91cFxkaXNtYW5cdHJhY2Vyb3V0ZVx0cmFjZVJvdXRlQ3RsVGFibGUuYy4KICAgLSBVc2luZyAtTG8gLyAtTGUgZG9lcyBub3cgZW5hYmxlIGxpbmUgYnVmZmVyaW5nIGZvciBzdGRvdXQgLwogICBzdGRlcnIgcmVzcGVjdGl2ZWx5LgogICAtIFJlbW92ZWQgY29kZSBpbiBzbm1wZC5jIGFuZCBzbm1wdHJhcGQuYyBmb3Igc2V0dGluZyBsaW5lCiAgIGJ1ZmZlcmluZyBvbiBzdGRvdXQKICAgc2luY2Ugc2V0dGluZyBsaW5lIGJ1ZmZlcmluZyBvbiBzdGRvdXQgaXMgbm93IHRyaWdnZXJlZCBieSB0aGUKICAgY29tbWFuZC1saW5lCiAgIG9wdGlvbiAtTG8uCiAgIEJ1Z3MgZml4ZWQ6CiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgYWxzbyBzZXQgZm9yIHN0ZGVyciB3aGVuIHRoZQogICBjb21tYW5kLWxpbmUgb3B0aW9uCiAgIC1MZSBoYXMgYmVlbiBzcGVjaWZpZWQuCiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgc2V0IGNvcnJlY3RseSBmb3Igc3Rkb3V0IG9uIFdpbmRvd3MKICAgc3lzdGVtcwogICAoY29tbWFuZC1saW5lIG9wdGlvbiAtTG8pLgoKMjAwOS0xMi0wOCAxMjozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGxvY2FsIHZhcmlhYmxlcyB0aGF0IHdlcmUgZGVmaW5lZAogICBidXQKICAgbm90IHVzZWQgYnkgb25seSBlbmFibGluZyB0aGUgbG9jYWwgdmFyaWFibGUgZGVmaW5pdGlvbnMgb24gdGhlCiAgIHBsYXRmb3JtIHRoYXQgdXNlcyB0aGVzZSB2YXJpYWJsZXMgKExpbnV4KS4KCjIwMDktMTItMDggMTI6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEFkZGVkICNpbmNsdWRlICJtaWJncm91cC91dGlsX2Z1bmNzLmgiLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA5LTEyLTA4IDEyOjI1ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEluY2x1ZGUgdGhlIGdldGhvc3RlbnQoKSAvIHNldGhvc3RlbnQoKSBkZWNsYXJhdGlvbnMgYmVmb3JlIHVzaW5nCiAgIHRoZXNlCiAgIGZ1bmN0aW9ucy4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMDggMTI6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXhlZCBhbiBpbmNvbnNpc3RlbmN5ICh3aGljaCBpcyBhbGxvd2VkIGJ5IHRoZSBBTlNJIEMgc3RhbmRhcmQpCiAgIGJldHdlZW4KICAgZnVuY3Rpb24gZGVjbGFyYXRpb24gYW5kIGZ1bmN0aW9uIGRlZmluaXRpb24gb2YKICAgbmV0c25tcF9hZGRfZ2xvYmFsX3RyYXBoYW5kbGVyIGFuZAogICBuZXRzbm1wX2FkZF9kZWZhdWx0X3RyYXBoYW5kbGVyIHN1Y2gKICAgdGhhdCB0aGUgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgZG9lcyBubyBsb25nZXIgY29tcGxhaW4KICAgYWJvdXQKICAgdGhpcy4KCjIwMDktMTItMDggMTI6MDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBpbXBsaWNpdGx5IGNhc3RpbmcgYXdheSBjb25zdG5lc3MuCgoyMDA5LTEyLTA4IDEyOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9ubHkgY29tcGlsZSB0aGUgd2luRXh0RExMIHNvdXJjZSBjb2RlIGlmIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8KICAgVVNJTkdfV0lORVhURExMX01PRFVMRSBoYXMgYmVlbiBkZWZpbmVkLgoKMjAwOS0xMi0wOCAxMjowMyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4KCjIwMDktMTItMDggMTI6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIG91dCB0aGUgYnVpbGQgb3JkZXIuCgoyMDA5LTEyLTA4IDA5OjQ2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cyAvIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvOiBkaXNhYmxlZCB0aGUgY29tcGlsZXIgd2FybmluZwogICBhYm91dAogICBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2hlcyAoNDAxOCkgYmVjYXVzZSB0aGlzIHdhcm5pbmcgZG9lcyBub3QKICAgeWllbGQKICAgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbi4KCjIwMDktMTItMDggMDk6MTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc2MzkgKHBhdGNoIDI3ODA0MTEgLS0gZml4IGNvbXBpbGVyIHdhcm5pbmdzKToKICAgYXBwbGllZAogICB0aGlzIHBhdGNoIHRvIG5ldC1zbm1wLWNvbmZpZy5oLmluIHRvbyBzdWNoIHRoYXQKICAgbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluIG1hdGNoIGFnYWluLgoKMjAwOS0xMi0wOCAwODoxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudHhfc3lzT1JfY2FsbGJhY2soKSBkb2VzIG5vdCB0cmlnZ2VyIGEKICAgY29tcGlsZXIKICAgd2FybmluZyB3aGVuIHRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBoYXMgYmVlbgogICBkZWNsYXJlZCBjb25zdC4KCjIwMDktMTItMDggMDg6MTQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9mIHN0cnRvdWxsKCkgZnJvbSAndW5zaWduZWQgbG9uZyBsb25nJwogICAod2hpY2gKICAgaXMgbm90IHZhbGlkIEM4OSkgdG8gJ3VpbnQ2NF90JyAoZGVjbGFyZWQgaW4KICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCiAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBjb21waWxlIGFnYWluIHdpdGgKICAgTVNWQyA2LjAuCgoyMDA5LTEyLTA3IDEwOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgVHdlYWsgbWlzc2luZyBzdWJpZGVudGlmaWVyIHByb2Nlc3NpbmcgdG8gYmUgbW9yZSB0eXBlLWF3YXJlLgogICAoQW4gaXNzdWUgd2l0aCBBSVgsIGF0IGxlYXN0KQoKMjAwOS0xMi0wNiAxODozOCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IE1ha2UgdGhlIGxpc3RzIG9mIGNvbTJTZWMqRW50cmllcyBzdGF0aWMKCjIwMDktMTItMDYgMTg6MzQgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNYWtlIHRoZSBpdGVyYXRvciB2YXJpYWJsZSBpbiBuZXRzbm1wXypfZ2V0U2VjTmFtZSBjb25zdAoKMjAwOS0xMi0wNiAxODoyOSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IENoYW5nZSB0aGUgdHlwZXMgb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YKICAgbmV0c25tcF8qX2dldFNlY05hbWUgZnJvbSBjaGFyKiB0byBjb25zdCBjaGFyKiBzaW5jZSB0aGV5IHBvaW50CiAgIGludG8gaW50ZXJuYWwgc3RydWN0dXJlcy4KCjIwMDktMTItMDUgMjA6MTkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgZml4IGRlY2xhcmF0aW9uIG9mIHN0cnRvdWxsCgoyMDA5LTEyLTA1IDE3OjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2FsbCBuZXRzbm1wX3JlYWRfbW9kdWxlIGluc3RlYWQgb2YgcmVhZF9tb2R1bGUgdG8gbWFrZSBpdAogICBjb21waWxlIHdpdGgKICAgTkVUU05NUF9DTEVBTl9OQU1FU1BBQ0UKCjIwMDktMTItMDIgMTU6MzkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGludmFsaWQgYWNjZXNzIHRvIG1lbW9yeSBpbiBUQ1AtTUlCCiAgIFRoaXMgcGFydGx5IHJldmVydHMgcGF0Y2ggMTc3MTkgLSB0aGUgZW50cmllcyAqYXJlKiB1c2VkIGFmdGVyCiAgIHJhd19kYXRhIGNvbnRhaW5lciBpcyBmcmVlZC4gVGhlc2UgZW50cmllcyBzaG91bGQgYmUgZnJlZWQgd2hlbgogICBhc3NvY2lhdGVkIHJvd3JlcV9jdHggaXMgZnJlZWQuCgoyMDA5LTEyLTAyIDA4OjMwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCB1ZHBUYWJsZSBpbmRleGVzIG9uIGJpZy1lbmRpYW4gNjRiaXQgTGludXguCiAgIFRoZSBpbmRleCB3YXMgYWx3YXlzICcwLjAuMC4wJyBpbnN0ZWFkIG9mIHJlYWwgbG9jYWwgSVAgYWRkcmVzcy4KCjIwMDktMTItMDEgMTI6MzYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFVwZGF0ZSBhIHJlZHVuZGFudCAoYW5kIHByb2JhYmx5IGluYWNjdXJhdGUpIGNvbW1lbnQuCgoyMDA5LTEyLTAxIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjgyMjM2MDogRml4IG1lbW9yeSBsZWFrIHdoZW4gYnVpbGRpbmcKICAgdGFibGUgT0lEcwoKMjAwOS0xMi0wMSAxMjowOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogQlVHUzogMjgzNzk5ODogSGFuZGxlIG1pc3NpbmcgaW5zdGFuY2UKICAgc3ViaWRlbnRpZmllcnMgaW4gcmVzdWx0cwoKMjAwOS0xMi0wMSAxMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NDEwMDg6IFByb3RlY3QgYWdhaW5zdCBjcmFzaCBmb2xsb3dpbmcKICAgZmFpbGVkIEFnZW50WCByZXNwb25zZQoKMjAwOS0xMi0wMSAwNzozNCAganNhZnJhbmVrCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IHJlc3BvbmRpbmcgdG8gYnJvYWRjYXN0IHJlcXVlc3RzLgogICBVRFAgcmVzcG9uc2VzIGFyZSBzZW50IHdpdGggc291cmNlIElQIGFkZHJlc3Mgd2hpY2ggd2FzCiAgIGRlc3RpbmF0aW9uIG9mCiAgIGFwcHJvcHJpYXRlIHJlcXVlc3RzIChpbXBsZW1lbnRlZCBpbiBTVk4gcmV2LiAxNTIxNSkuIEJ1dCBpZiB0aGUKICAgZGVzdGluYXRpb24KICAgb2YgYSByZXF1ZXN0IGlzIGJyb2FkY2FzdCBJUCBhZGRyZXNzLCB0aGUgcmVxdWVzdCB3YXMgc2VudCB3aXRoCiAgIHRoZSBicm9hZGNhc3QKICAgYWRkcmVzcyBhcyBzb3VyY2UuIHNlbmRtc2coKSBvbiBMaW51eCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYW5kCiAgIHJldHVybnMgZXJyb3IKICAgLT4gcmVzcG9uc2UgaXMgbm90IHNlbnQuIEluIG9yZGVyIHRvIHNlbmQgcmVzcG9uc2VzIGZyb20gdGhlIHNhbWUKICAgaW50ZXJmYWNlLAogICBpbnRlcmZhY2UgaW5kZXggb2YgdGhlIGFwcHJvcHJpYXRlIGludGVyZmFjZSBtdXN0IGJlIHVzZWQuCgoyMDA5LTEyLTAxIDAwOjI5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NTIuCgoyMDA5LTEyLTAxIDAwOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NDIuCgoyMDA5LTExLTMwIDE2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg3Mzg1ODogRml4IGhhbmRsaW5nIG9mIHNjaGVkT3duZXIgaW5kZXguCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBTY2h1YmVydC4KCjIwMDktMTEtMzAgMTY6NDYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUdTOiAyODg4NTY5OiBGaXggZ2VuZXJhdGlvbiBvZiB0YWJsZSBjb2x1bW5zCiAgIGFycmF5CgoyMDA5LTExLTMwIDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg5NDA1OTogSGFuZGxlIGVycm9ycyB3aGVuIGNvdW50aW5nCiAgIGludGVyZmFjZXMKCjIwMDktMTEtMzAgMTY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMjg5NzAwMDogU3VwcHJlc3MgMzItYml0IGNvdW50ZXIgdHJ1bmNhdGlvbgogICB3YXJuaW5ncy4KCjIwMDktMTEtMzAgMTU6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMzA5MjogRml4IGJyb2tlbiBoYW5kbGluZyBvZiBicm9hZGNhc3QKICAgZW50cmllcy4KCjIwMDktMTEtMzAgMTU6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAxMDI5OiBGaXggY29tcGlsZXIgd2FybmluZyBvbgogICBDbG9zZUhhbmRsZSgpCiAgIEVuZGlhbiBwcm9ibGVtcyBhbHJlYWR5IGFkZHJlc3NlZCBieSBwYXRjaCAjMjgzNTU3NgoKMjAwOS0xMS0zMCAxNToxMyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyODkwOTMxOiBCZXR0ZXIgaGFuZGxpbmcgb2YgQ291bnRlcjY0CiAgIHZhbHVlcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFJvbWFub3YuCgoyMDA5LTExLTMwIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4NzgxNjogUHJvdGVjdCBhZ2FpbnN0IGRpdmlzaW9uLWJ5LXplcm8KICAgY3Jhc2gKCjIwMDktMTEtMzAgMTU6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzIyMDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4KICAgaWZYVGFibGUgaXMgbm90IGluY2x1ZGVkLgoKMjAwOS0xMS0zMCAxNDo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzE1NTogRml4IG1lbW9yeSBsZWFrIGluIHByb3h5CiAgIGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBHb3d0aGFtIFRob21tYW5kcmEuCgoyMDA5LTExLTMwIDE0OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMDkyOiBTdXBwb3J0IG1vbml0b3JpbmcgcHJvY2Vzc2VzIHRoYXQKICAgc2hvdWxkIG5vdCBiZSBydW5uaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBDaHJpc3RpYW4gKGNnNzUpLgogICAKICAgUW46IFNob3VsZCB0aGlzIGZ1bmN0aW9uYWxpdHkgYmUgYmFjay1wb3J0ZWQgdG8gZWFybGllciBsaW5lcz8KCjIwMDktMTEtMzAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODc3NTE4OiBGaXggaGFuZGxpbmcgb2Ygc2NvcGVkIEFnZW50WAogICB2YXJpYWJsZXMKCjIwMDktMTEtMzAgMTQ6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODM1NTc2OiBGaXggZW5kaWFubmVzcyBpc3N1ZXMgaW4KICAgcGFzcy9wYXNzX3BlcnNpc3QKCjIwMDktMTEtMjcgMDg6NTQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jOgoKICAgUmVtb3ZlIGV4ZWN1dGFibGUgYXR0cmlidXRlIGZyb20gc291cmNlIGZpbGVzLgoKMjAwOS0xMS0yNSAyMDozNSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGFsbCB0aGUgb2lkcyBhbmQgb2lkIGxlbmd0aHMgaW4gYWdlbnRfdHJhcC5jCiAgIGNvbnN0IGFuZCB1c2UgdGhlbSBmcm9tIGV2ZXJ5d2hlcmUuCgoyMDA5LTExLTI1IDIwOjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogSW5zdGFsbCBsaWJyYXJ5L29pZC5oLiBUaGFua3MgdG8gIlRvbWFzeiBMaXMiCiAgIHdobyBzcG90dGVkIHRoZSBidWcuCgoyMDA5LTExLTI1IDA5OjQ3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBDb21tZW50LW9ubHkgY2hhbmdlOiBjaGFuZ2VkIHRoZSBuYW1lIGluIHRoZSBmaWxlIGhlYWRlciBmcm9tCiAgIHRlc3RoYW5kbGVyLmgKICAgdG8gaW5zdGFuY2UuaCBzdWNoIHRoYXQgaXQgbm93IG1hdGNoZXMgdGhlIGZpbGVuYW1lLgoKMjAwOS0xMS0yNCAwNzo0OSAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QKCjIwMDktMTEtMjMgMDc6MDcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgZW50ZXJwcmlzZSBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NlbmRfdHJhcHMgYW5kIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgY29uc3QKCjIwMDktMTEtMjMgMDc6MDIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBuYW1lIGFyZ3VtZW50IHRvIGZpbmRfdmFyYmluZF9pbl9saXN0CiAgIGNvbnN0CgoyMDA5LTExLTIyIDIzOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgUmVtb3ZlIHNvbWUgbG9jYWwgcmVkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zCgoyMDA5LTExLTIyIDAxOjAzICBtYWdmcgoKICAgKiAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmcsIFdpbjMyOiBSZW1vdmUgYSBmZXcgdW51c2VkIGNvbmZpZ3VyZSBzeW1ib2xzCgoyMDA5LTExLTIxIDA4OjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgUmVwbGFjZWQgYW4gYWNjaWRlbnRhbGx5IGNvbW1pdHRlZCBmaWxlIGJ5IHRoZSBwcm9wZXIgY29udGVudHMuCgoyMDA5LTExLTIwIDE2OjI5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFJldmVydGVkIGFjY2lkZW50YWxseSBtZXJnZWQgY2hhbmdlcy4KCjIwMDktMTEtMjAgMTY6MjYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAwOS0xMS0yMCAxNjoxOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTcGVsbGluZyBmaXggaW4gQyBzb3VyY2UgY29kZSBjb21tZW50czogcmVwbGFjZWQgJ3JldHJpdmFsJyBieQogICAncmV0cmlldmFsJy4KCjIwMDktMTEtMjAgMTY6MTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgYSBuYW1pbmcgaW5jb25zaXN0ZW5jeTogcmVwbGFjZWQgdHdvIG9jY3VycmVuY2VzIHdpbkV4dERsbAogICBieSB3aW5FeHRETEwgaW4gc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDA5LTExLTE5IDIyOjUyICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTAwMDc4OiBBZGQgc3VwcG9ydCBmb3IgT0lEIHZhcmlhYmxlcyB3aXRoCiAgIHNpemUgaW4gZWxlbWVudHMgaW5zdGVhZCBvZiBieXRlcywgY29ycmVjdCBzeXNPYmplY3RJRCB0byB1c2UKICAgdGhpcy4KCjIwMDktMTEtMTMgMTI6NTkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBsb2dnaW5nIG9mICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMgogICBiaXRzJyBpbiBJUC1NSUIgYW5kIFRDUC1NSUIKICAgVGhlIGNvdW50ZXJzLCB3aGljaCBncm93IGZhc3QgYXJlIG5vdyBjdXQgdG8gMzJiaXRzLgoKMjAwOS0xMS0xMiAwODoyNiAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFVzZSBiaWcgcHJpbnRmJ3MgaW5zdGVhZCBvZiBtYW55IHNtYWxsIG9uZXMgdG8gc2F2ZSBhIGZldyBodW5kcmVkCiAgIGJ5dGVzIG9uIHRoZSBmaW5hbCBleGVjdXRhYmxlIHNpemUuCgoyMDA5LTExLTEyIDAyOjI0ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvbC5jLCAgIAogICAgICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBBQ19SRVBMQUNFX0ZVTkNTIHRvIGhhbmRsZSBjb2RlIHRoYXQgaXMKICAgbWlzc2luZyBvbiBzb21lIHBsYXRmb3Jtcy4KCjIwMDktMTEtMTEgMDk6MDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IGNhY2hlIGZyZWUgcm91dGluZSB0byBtYXRjaCBoZWFkZXIgZGVjbGFyYXRpb24uCiAgIFJldHVybiBzdWNjZXNzL2ZhaWx1cmUgdmFsdWVzIGZyb20gY2FjaGUgbG9hZCByb3V0aW5lLgogICBQcm9ibGVtIGlkZW50aWZpZWQgYnkgWHVhbi4KCjIwMDktMTAtMzAgMDk6NTEgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJldmVydCAxNzgwOCwgaW5zdGVhZCBmYWN0b3Igb3V0IHRoZSBkZWNsYXJhdGlvbgogICBvZiBvaWQgdG8gaXQncyBvd24gZmlsZSBhbmQgaW5jbHVkZSB0aGF0IGZpbGUgZnJvbSBib3RoIHR5cGVzLmgKICAgYW5kIGFzbjEuaAoKMjAwOS0xMC0zMCAwODoyOCAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBzbm1wbmV0c3RhdDogQWRkIGNvcnJlY3Qgc2l6ZSBwcmVmaXhlcwogICB3aGVuIHByaW50aW5nIHZhcmlhYmxlcyBvZiB0eXBlIG9pZC4KCjIwMDktMTAtMzAgMDg6MDcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSBvaWQgdG8gYmUgYSAzMi1iaXQgdHlwZSBvbiBJTFA2NCBhbmQKICAgTFA2NCBwbGF0Zm9ybXMuCgoyMDA5LTEwLTMwIDA4OjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSBvaWQgdHlwZWRlZiBmcm9tCiAgIDxuZXQtc25tcC9saWJyYXJ5L2FzbjEuaD4uIEl0IGlzIHN0aWxsIHByZXNlbnQgaW4KICAgPG5ldC1zbm1wL3R5cGVzLmg+LCB1c2UgdGhhdCBmaWxlLgoKMjAwOS0xMC0yOCAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBkb24ndCByZXF1aXJlIHN1YmFnZW50X2luaXQoKSBpZiBub3Qgb25seSBidWlsZGluZyBtYXN0ZXIgYWdlbnQKICAgY29kZQoKMjAwOS0xMC0yNyAwNjo0NCAgbWFnZnIKCiAgICogIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMgdG8gdV9jaGFyKgoKMjAwOS0xMC0xNCAyMzoxMiAgbWFnZnIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbgogICBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KCjIwMDktMTAtMTIgMjA6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHJwIHZhcmlhYmxlIHRvIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBvbmUuCgoyMDA5LTEwLTA5IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6Mjg3MTc0NzogcGx1ZyBtZW1vcnkgbGVhayBpbiBPSUQKICAgcHJvY2Vzc2luZy4KICAgVGhlIG1lbW9yeSBsZWFrZWQgd2hlbiBzbWFsbCBPSUQsIHdoaWNoIGNvdWxkIGZpdCBwcmUtYWxsb2NhdGVkCiAgIHZwLT5uYW1lX2xvYywgd2FzIHBsYWNlZCBpbiBkaWZmZXJlbnQgKGFsbG9jYXRlZCkgb25lLgoKMjAwOS0xMC0wOSAwNTozMSAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogQlVHOiAyODM4MjQzOiBDb3JyZWN0IHRoZSBvdXRwdXQgb2YgdW5zaWduZWQgdmFsdWVzLgogICBUaGFua3MgdG8gSmFjayBIdWFuZyBvZiBRdWFsY29tbSB3aG8gcG9pbnRlZCBvdXQgdGhpcyBidWcuCgoyMDA5LTEwLTA5IDA1OjAwICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIHBhcnNpbmcgb2YgcmFuZ2VzIHRvIGFjY2VwdCBhbGwKICAgdmFsaWQgdmFsdWVzLgoKMjAwOS0xMC0wNyAyMjoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IG1pc2M6IFBBVENIOiAyODM2MTEyOiBVc2UgdGhlIHJpZ2h0IG1vZGlmaWVyIHdoZW4KICAgcHJpbnRpbmcgc2l6ZV90IGFuZCBzc2l6ZV90IHZhcmlhYmxlcy4KCjIwMDktMTAtMDcgMTI6NTAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBjcmVhdGlvbiBvZiB2aWV3cyB1c2luZyBzbm1wdXNtLCBPSURzIHdpdGgKICAgaW5kZXhlcyA+IDI1NSBhcmUgYWxsb3dlZCBub3cuCiAgIFRoaXMgcmV2ZXJ0cyBTVk4gY29tbWl0ICM3NDkyLgoKMjAwOS0xMC0wNSAxOToxOSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIHNwZWxsaW5nIG9mIF9fY3BsdXNwbHVzIHdoZW4KICAgY2hlY2tpbmcgaWYgdGhlIGZpbGUgc2hvdWxkIGJlIHdyYXBwZWQgaW4gZXh0ZXJuICJDIi4KCjIwMDktMTAtMDUgMDY6MTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIENIQU5HRVM6IHNubXB3YWxrOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiB0aGUgZW5kIG9pZCBpcyBsb25nZXIKICAgdGhhbiB0aGUgY3VycmVudCBvaWQgY29ycmVjdGx5CgoyMDA5LTA5LTMwIDEwOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUHJvdGVjdCBhZ2FpbnN0IG1pc3NpbmcgcGFja2FnZSB2ZXJzaW9uCiAgIGluZm9ybWF0aW9uIGNyYXNoaW5nIHRoZSBhZ2VudC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBJbnlhdmVuIFNha2FyYWkuCgoyMDA5LTA5LTI3IDE0OjU5ICBhbGV4X2IKCiAgICogIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyOiBCaW5hcnkgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFuZCBzY3JpcHQgdXBkYXRlcy4KCjIwMDktMDktMjQgMDA6MDggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo1NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHJlbW92ZSBTVk4gYnJhbmNoIHdvcmRpbmcKCjIwMDktMDktMjMgMjM6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHByb3BlciBwcm9qZWN0IGNhcGl0YWxpemF0aW9uCgoyMDA5LTA5LTIzIDIzOjM1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDktMjMgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIyIDIxOjUxICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHR5cG9zCgoyMDA5LTA5LTE0IDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6NDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFpeCwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFBhdGNoIGZyb20gbWFnZnIgZm9yIDUuNSBzcGVjaWZpYyBhaXggYnVpbGQgZml4ZXMKCjIwMDktMDktMDIgMDc6MTIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZW5hbWUgTUlCIG1hY3JvIHRvIE5FVFNOTVBfTUlCMl9PSUQsIE1JQiBpcwogICB0b28gZ2VuZXJpYyBhbmQgbWF5IGNvbmZsaWN0IHdpdGggYXBwbGljYXRpb25zLgogICAKICAgVGhlIG9sZCBNSUIgbWFjcm8gaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdW5sZXNzCiAgIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TIGlzIGRlZmluZWQuCgoyMDA5LTA4LTMxIDE5OjM4ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkaXRpb25hbCBSRkMgbWlicwoKMjAwOS0wOC0zMSAxOTozNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgSUFOQSBmaXhlZCBhIGJ1ZwoKMjAwOS0wOC0yOSAwNzoyOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOS0wOC0yOSAwNzoyOCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogcmV0IGlzIG9ubHkgdXNlZCBpbiBzZXR0YWJsZSB0YWJsZXMgc28gb25seSBkZWNsYXJlIGl0CiAgIHRoZW4uCgoyMDA5LTA4LTI5IDA3OjI0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZXBsYWNlIHRoZSBfb2lkX2xlbiB2YXJpYWJsZSB3aXRoIGFuIGV4cGxpY2l0IGNhbGwgb2YKICAgT0lEX0xFTkdUSC4KCjIwMDktMDgtMjkgMDc6MjEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IE1ha2UgZXZlcnkgZnVuY3Rpb24gdGhhdCBjYW4gYmUgc3RhdGljIHN0YXRpYy4gUmVtb3ZlIHRoZQogICBkZWNsYXJhdGlvbnMgb2YgdGhlIHN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoZSBwcml2YXRlIGRlZmluZXMgZnJvbQogICB0aGUgaGVhZGVyLgoKMjAwOS0wOC0yOSAwNzoxOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVvcmRlciB0aGUgZnVuY3Rpb25zIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KCjIwMDktMDgtMjkgMDc6MTYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IG5ldHNubXBfdGFibGVfcmVnaXN0ZXIgc2hvdWxkIGJlIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUKICAgYW5kIHRha2Ugb25seSB0d28gYXJnbWVudHMuCgoyMDA5LTA4LTI5IDA3OjE0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBidWlsZF9vaWQgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYWxsb2NhdGVkIG9pZC4gQ2hhbmdlIHRvCiAgIHVzZSBidWlsZF9vaWRfbm9hbGxvYyBhbmQgcmVtb3ZlIG9uZSBjb3B5IG9mIHRoZSBpbmRpY2VzLgoKMjAwOS0wOC0yOSAwNzoxMCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogVGhlcmUgaXMgbm8gaW5kZXhfb2lkX2xlbiBtZW1iZXIgaW4gc3RydWN0IGVudHJ5LiBVc2UgdGhlCiAgIGludGVuZGVkIGxvY2FsIHZhcmlhYmxlIGluZGV4X29pZF9sZW4uCgoyMDA5LTA4LTI5IDA3OjA2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBDb3JyZWN0IHRoZSByZXR1cm4gdHlwZSBvZiAke2l9X2dldCplbnRyeSB0byBtYXRjaCB0aGUKICAgcmV0dXJuZWQgdHlwZS4KCjIwMDktMDgtMjYgMjI6MzcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHdod29vcHM7IGJsZXcgdGhlIGNoYW5nZWxvZyBmb3IgcmMyCgoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlZCBiYXNlZCBvbiBuZXcgU0YgdXBsb2FkIG1ldGhvZHM7IG5vIGxvbmdlciBhcyBhdXRvbWF0YWJsZQoKMjAwOS0wOC0yNiAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIEphbiB0byBlbmRsZXNzIGxvb3AgaW4gZGVmYXVsdCByb3V0ZXMKICAgb24gbGludXgKCjIwMDktMDgtMjYgMTc6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBKYW4gdG8gZml4IEMrKyB3cmFwcGVyCgoyMDA5LTA4LTI2IDE0OjUzICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBJbml0aWFsIHN0YWIgYXQgYSBtaW5pbWFsLWhlbHBlciAocmF3KSB0YWJsZSB0ZW1wbGF0ZSwKICAgbGVhdmluZyBtb3N0IG9mIHRoZSB3b3JrIHRvIHRoZSB1c2VyLXByb3ZpZGVkIE1JQiBoYW5kbGVyLgoKMjAwOS0wOC0yNiAxNDo1MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJvZ3VzIGZhaWx1cmVzIChyZXR1cm5pbmcgMCkgYW5kIHN1YnNlcXVlbnQKICAgZG91YmxlLWZyZWVzLAogICBkdWUgdG8gMTUtLzMxLWJpdCBtYXNraW5nIHdoZW4gc2VsZWN0aW5nIHJlcXVlc3QgSURzLiBJZGVudGlmaWVkCiAgIGJ5IGtyb21lc2t5LgoKMjAwOS0wOC0yMCAxMzozMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBsdWcgbGVha3MgaW4gaXBJZlN0YXRzVGFibGUsCiAgIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlLCBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlLgogICAKICAgSXQgc2VlbXMgdG8gbWUgdGhlIHRhYmxlcyB3ZXJlIHdyb25nbHkgZ2VuZXJhdGVkIHdpdGgKICAgbTJjX2RhdGFfYWxsb2NhdGUgb3IKICAgc29tZW9uZSBmb3Jnb3QgdG8gcmVsZWFzZSB0aGUgdXNlciBwcm92aWRlZCBkYXRhLgoKMjAwOS0wOC0xMiAxNTowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IGxpYnRvb2wgdmVyc2lvbiBpbiBORVdTCgoyMDA5LTA4LTExIDAwOjQyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6CgogICB3aG9vcHM7IGFkZCByZWFsIGNoYW5nZWxvZyBlbnRlcmllcyBmb3IgLnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0xMCAyMToyMSAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMDcgMTA6MzIgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBDb3JyZWN0LCBjb25zb2xpZGF0ZSwgY2xhcmlmeSBhbmQgY2xlYW51cCB0aGUgY2F0YWxvZyBvZiBjdXJyZW50CiAgIGNoYW5nZXMuCgoyMDA5LTA4LTA2IDA3OjU3ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgb24gZXhlYyB2cyBleHRlbmQuCgoyMDA5LTA4LTA1IDIwOjA3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyODIyMzU1OiBGaXggbWVtb3J5IGxlYWtzIG9uCiAgIHVkcEVuZHBvaW50VGFibGUgKGxpbnV4KQogICBQYXRjaCBzdXBwbGllZCBieSBGcmFuayBMaWNodGVuaGVsZAoKMjAwOS0wOC0wNSAxOTowNSAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI4MjIzMzc6IEZpeCBtZW1vcnkgbGVhayBpbgogICBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAwOS0wOC0wNSAxNToxNiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFdoZW4gZGVsZXRpbmcgcm93IGNvbnRleHQsIGRlbGV0ZSBhbHNvIGFzc29jaWF0ZWQgZGF0YS4KCjIwMDktMDgtMDUgMTU6MTUgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgVGhlIGNvbnRhaW5lciB1c2VkIHRvIHRyYWNrIGVudHJpZXMgdG8gZGVsZXRlIGZyb20gY2FjaGUgc2hvdWxkCiAgIGJlIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgbmVlZGVkLgoKMjAwOS0wOC0wNSAxNToxMiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBVRFAtIGFuZCBUQ1AtTUlCLgogICBUaGUgZGF0YSBmcm9tIHJhd19kYXRhIGFyZSBjb3BpZWQgdG8gY2FjaGUsIHNvIGl0IHNob3VsZCBiZQogICBmcmVlZC4KCjIwMDktMDgtMDUgMTA6MTYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDI4MTE1Nzc6IEZpeCBidWcgaW4gR2V0QnVsayBoYW5kbGluZy4KICAgRG9uJ3QgZ2V0IGNvbmZ1c2VkIGJ5IGluZGV4IHZhbHVlcyB0aGF0IGNvbnRhaW4gYSAnOicgY2hhcmFjdGVyLgoKMjAwOS0wOC0wNCAyMTo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAyODI3MjY5OiBTdXBwcmVzcyBub24tb3JkZXJlZCBUT0RPIGNvbW1lbnRzLgoKMjAwOS0wOC0wNCAyMTozNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgY29kZSBmb3IgYSBzaW5nbGUgdGFibGUsCiAgIGFzIHdlbGwgYXMgYSBsYXJnZXIgZ3JvdXAuCiAgIEFsc28gYWRkcmVzc2VzIGJ1ZyAyMTUwMjg1CgoyMDA5LTA4LTA0IDIxOjE2ICBtYWdmcgoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBzbm1wbGliOiBmcm9tICJCYXJ0IHZhbiBBc3NjaGUgJiBNYWdudXMgRnJvbXJlaWRlIjogTW9yZSB1cGRhdGVzCiAgIHRvIHN0cnRvdWxsLmMKCjIwMDktMDgtMDQgMTA6NTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFLgpYbgpIXgpIbgpYbgpIWeY2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCgoyMDA5LTA4LTAzIDE5OjI3ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI4Mjc3MjI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IEltcHJvdmUKICAgc3RydG91bGwgdG8gYmUgbGVzcyBNU1ZDLXNwZWNpZmljCgoyMDA5LTA4LTAzIDE4OjM4ICBtYWdmcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UgZnJvbSB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgc2hvdWxkCiAgIGJlIGluc3RhbGxlZAoKMjAwOS0wNy0yNyAxMjo0MSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA3LTI3IDEyOjExICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMzoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZQoKMjAwOS0wNy0yNyAxMjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IGZyZWVic2Q6IHBhdGNoIGZyb20gQ2V6YXJ5IE1vcmdhIHRvIGZpeCBhIG1ha2UgdGVzdCBvbgogICBmcmVlYnNkCgoyMDA5LTA3LTI3IDEyOjAyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA3LTI3IDExOjUyICBoYXJkYWtlcgoKICAgKiAgRkFRLCBORVdTLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDctMjcgMDg6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICByZXZlcnQgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHBhdGNoCgoyMDA5LTA3LTI3IDA4OjM3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgdWRwL2R0bHMKCjIwMDktMDctMjcgMDg6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGNhcnJ5IGEgc2VjTmFtZQoKMjAwOS0wNy0yNiAyMTozNCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIGZvciBXb3Jrc3BhY2UgYnVpbGQuCgoyMDA5LTA3LTI2IDE4OjIwICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLUFkZGVkIHN0cnRvdWxsIGZ1bmN0aW9uIGFuZCBjb25maWd1cmUgY2hlY2sgZm9yIHN5c3RlbXMgd2l0aG91dAogICBpdCBzdWNoIGFzIFdpbjMyIE1TVkMgNgogICAtV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIC0gcmVxdWlyZXMgbmV3IHN0cnRvdWxsLmMgZmlsZQogICAtV2luMzI6IE5ldyBidWlsZC1iaW5hcnkgc2NyaXB0IHRvIHNpbXBsaWZ5IGJ1aWxkaW5nIHRoZSBXaW5kb3dzCiAgIGJpbmFyeSBwYWNrYWdlLgoKMjAwOS0wNy0yNSAwNTozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBNYWtlIHN1cmUgYSBtZXNzYWdlIGlzIHdyaXR0ZW4gaWYgdGhlIHJlbGV2YW50IHRhYmxlIGlzIG1pc3NpbmcuCgoyMDA5LTA3LTIzIDIxOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIGFkZHJlc3MgaW4gUkVBRE1FLgoKMjAwOS0wNy0yMyAwMTowNyAgYWxleF9iCgogICAqICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwOCsgZml4ZXMuCgoyMDA5LTA3LTIzIDAwOjU1ICBhbGV4X2IKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwNSsgYnVpbGQgZml4ZXMuIFRoYW5rcyB0byBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA3LTIxIDEyOjIyICBkdHMxMgoKICAgKiAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMucm93LmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEFkZCBzaW1wbGUgZGVidWcgb3V0cHV0IHRvIG1pYjJjIHRlbXBsYXRlcy4KCjIwMDktMDctMjEgMTI6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBtaXNzaW5nIHNlbWljb2xvbiB0eXBvcy4KCjIwMDktMDctMjEgMDk6MTUgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBzdWdnZXN0ZWQgZW50cmllcy4KCjIwMDktMDctMjAgMTk6MjQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09ESU5HIHNlY3Rpb24uCgoyMDA5LTA3LTIwIDExOjA5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oOgoKICAgQWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgZnJvbSBwYXRjaCAjMjA1MzI3My4KCjIwMDktMDctMTkgMTU6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA5LTA3LTE2IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBBZGQgSVB2NiBvY3RldCBjb3VudGVycy4KICAgTmV3IExpbnV4IGtlcm5lbHMgKGUuZy4gMi42LjMxLXJjMiwgbWF5YmUgc29tZSBlYXJsaWVyKSBwcm92aWRlCiAgIGNvdW50ZXJzIGZvcgogICBpbmNvbWluZy9vdXRnb2luZyBJUHY2IHRyYWZmaWMgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBJZlN0YXRzVGFibGUuCgoyMDA5LTA3LTE1IDIyOjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBwdXQgdGVtcG9yYXJ5IGRhdGEgdG8gd2hlcmUgdGhleSBiZWxvbmcKCjIwMDktMDctMTEgMjE6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZSBjb25maWd1cmUKCjIwMDktMDctMTEgMjE6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIEZyZWVCU0QpOiBhZGp1c3Qga3ZtIGNvbmZpZ3VyZSB0ZXN0cwoKMjAwOS0wNy0xMCAxMjozNSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoZWNrIElQdjYgcG9ydCByYW5nZXMgaW4gdGhlIHNhbWUgd2F5IGFzIElQdjQgcG9ydHMgYXJlIGNoZWNrZWQuCgoyMDA5LTA3LTEwIDA3OjQ2ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmM6CgogICBGaXggYW5vdGhlciBJUHY0IGFkZHJlc3Mgc2l6ZSAtIGxvbmcgaGFzIDggYnl0ZXMgb24gNjRiaXQgTGludXguCiAgIEFsc28gZml4IHRoZSBkZWZhdWx0IHR5cGUgZm9eQ0FTTl9JUEFERFJFU1MgaW4gbWliMmMsIHNvIHRoZQogICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGNhbiBiZSBzYWZlbHkgcmVnZW5lcmF0ZWQuCgoyMDA5LTA3LTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIGNsZWFudXAgb2YgdGVzdGluZyBjYXNlcyB0byByZW1vdmUgZG91YmxlIGluY2x1ZGUgYW5kIGRvdWJsZQogICBleHBvcnRzCgoyMDA5LTA3LTA5IDIzOjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDMwMHVkcDoKCiAgIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgVENQL0lQdjQgdGVzdAoKMjAwOS0wNy0wOSAyMjoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgZGVmaW5lZCB0cmFuc3BvcnRzCgoyMDA5LTA3LTA5IDIyOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhIENPTkZJR0FQUCBtYWNybyBmb3IgYWRkaW5nIHN0dWZmIHRvIHNubXAuY29uZgoKMjAwOS0wNy0wOCAxNToxMiAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGdldGhvc3RieWFkZHIgcGFyYW1ldGVyLCBuZXRzbm1wX3VkcF9mbXRhZGRyIG5ldmVyIHJldHVybmVkIGEKICAgaG9zdG5hbWUuCgoyMDA5LTA3LTA3IDE1OjQ2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBGaXggSVAgYWRkcmVzcyBsZW5ndGggb24gNjQgYml0IHN5c3RlbXMgaW4gbWliSUksIHBhc3MgYW5kCiAgIHBhc3NfcGVyc2lzdCBtb2R1bGVzLgoKMjAwOS0wNy0wNyAxNToyNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBVc2UgY29ycmVjdGx5IHNpemVkIElQIGFkZHJlc3NlcyBpbiBhZGRyZXNzIHRyYW5zbGF0aW9uIHRhYmxlCiAgIHByb2Nlc3NpbmcgLSB1X2xvbmcgY2FuIG1ha2UgcHJvYmxlbXMgb24gYmluIGVuZGlhbiA2NCBiaXQKICAgc3lzdGVtcwoKMjAwOS0wNi0yOSAxMzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSBlbnRyeSBmb3IgYSBwYXRjaCB0aGF0IGdvdCByZXZlcnRlZAoKMjAwOS0wNi0yNSAxNToyNCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE1vdmUgbm9uLWNvcmUgZGF0YSB0eXBlcyBpbnRvIGEgc2VwYXJhdGUgKGxpYnJhcnkgaW50ZXJuYWxzKQogICBoZWFkZXIgZmlsZS4KICAgTW92ZSB0aGUgbGFyZ2VfZmRfc2V0IGRhdGEgc3RydWN0dXJlIGludG8gdGhpcyBoZWFkZXIgZmlsZS4KCjIwMDktMDYtMTggMjI6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWxsb3cgYnVpbGRpbmcgd2l0aCBQZXJsIHZlcnNpb25zIHRoYXQgbGFjawogICBQRVJMX0VYSVRfREVTVFJVQ1RfRU5ECgoyMDA5LTA2LTE4IDIyOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBidWlsZCBmaXggZm9yIFRydTY0IFVuaXggYW5kIElSSVg6IG1vdmUgX1hPUEVOKgogICBkZWZpbml0aW9ucyB0byB3aGVyZSB0aGV5IGFyZSBpbiA1LjQueCBhbmQgZWFybGllcgoKMjAwOS0wNi0xOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2xlYW4gdXAgLS13aXRoLW5sIGNvbmZpZ3VyYXRpb24KICAgKiAgTW92ZSB0aGUgX0FSR19XSVRIIHRvIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlICAyMDA5LTA2LTE2IDE1OjE3CiAgICAgICByc3RvcnkKCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGJlZm9yZSBkZXJlZgoKMjAwOS0wNi0xNSAyMzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IGV4cGxhaW5pbmcgbm90IHF1aXRlIG9idmlvdXMgbGFjayBvZiBtZW1tb3ZlCgoyMDA5LTA2LTE1IDE5OjMyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBSZW1vdmUgI2lmIDAgY29tbWVudGVkIGNvZGUKCjIwMDktMDYtMTUgMTU6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQUdFTlQgc2VjdGlvbi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5yYzEgLT4gVjUuNi5yYzIKCjIwMTAtMDktMDQgMDE6NTcgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wOS0wNCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTAzIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHRsc3RjcCBwYXJzaW5nIG9mIGhvc3QgbmFtZXMuCgoyMDEwLTA5LTAzIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYzoKCiAgIGNoZWNrIHRoZSByZXR1cm4gY29kZSBvZiBmZ2V0cyBhbmQgZm9wZW4gYmVmb3JlIGluc2VydGluZyB0aGUKICAgcmVzdWx0cy4KCjIwMTAtMDktMDMgMjI6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgUGF0Y2ggZnJvbSB0YW5kZXJzIHRvIGZpeCBicm9rZW4gYWxhcm1zIGFmdGVyIHRoZSBwcmV2aW91cwogICByZS1lbnRyYW50IHBhdGNoCgoyMDEwLTA5LTAzIDIyOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTg2NDU6IGZyb20gam9yaXNlc2F0dXJudXM6IG1vZGlmaWVkCiAgIHZlcnNpb24gb2YgdGhlIHBhdGNoIHRvIHVzZSBNU0dfRE9OVFdBSVQgZm9yIHRoZSB1bml4IGRvbWFpbgogICBzb2NrZXQKCjIwMTAtMDktMDMgMjE6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTgxNDA6IGZyb20gdGFrZXZvczogY2hlY2sgdGhhdCBpbm9kZSBpcwogICBub24temVybwoKMjAxMC0wOS0wMyAyMTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQyODogZnJvbSB0YWtldm9zOiBmaXgKICAgZ2V0X3BpZF9mcm9tX2lub2RlIHdoZW4gdGhlIGlub2RlIGlzIG5vdCBmb3VuZC4KCjIwMTAtMDktMDMgMjA6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgZHVwbGljYXRlIHJldHVybiBiZWZvcmUgdGhlIGVycm9yIGNvZGVzIGdldCBzZXQuCgoyMDEwLTA5LTAxIDE4OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmM6CgogICBDSEFOR0VTOiBzbm1wZDogTG9nIGJlZm9yZSByZXR1cm5pbmcuCgoyMDEwLTA5LTAxIDAyOjQzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIFRMUyBzZW5kX25vdGlmeSBvbiBjbG9zdXJlIGFuZCBzb21lIG1lbW9yeSBjbGVhbi11cCBwYXRjaGVzCgoyMDEwLTA4LTMxIDE3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPbmx5IHByaW50IHRoZSBzZWN1cml0eS9jb250ZXh0IEVuZ2luZUlEIG1pc21hdGNoIG5vdGUgdW5kZXIgVVNNCgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSByZWZlcmVuY2UgdG8gcmV2ZXJ0ZWQgcGF0Y2ggMzA0Mjc2NQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbm90ZSBvbiB3aGVyZSB0byBmaW5kIGNvbnRlbnQgdXNlZCB0byBnZW5lcmF0ZQogICBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIHJldmVydCByMTkzNDIsIHBhdGNoIDMwNDI3NjUsIHdoaWNoIGJyb2tlIGNsaWVudCB0Y3AgZGlzY29ubmVjdAogICBoYW5kbGluZwoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggbW9yZSBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0yNSAwMjo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBjaGVjayBmb3IgY29uZiBlcnJvcnMgYWZ0ZXIgYWdlbnQgc3RhcnR1cDsgZW5hYmxlIGxvZ1RpbWVzdGFtcDsKICAgbWFrZSBzdXJlCiAgIGFsbCBjZXJ0IG5hbWUvdGFncyBhcmUgdW5pcXVlCgoyMDEwLTA4LTI0IDIxOjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvciBzdHJpbmcgdG8gZGlzY3VzcyB0aGUgcmlnaHQgZmFpbGVkIG9wZW5zc2wgbmV3CiAgIGludm9jYXRpb24KCjIwMTAtMDgtMjQgMDU6MzcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogQ29ycmVjdCBpZmRlZnMsIHJlbW92ZSBkZWFkIHZhcmlhYmxlcy4KCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5wcmUzIC0+IFY1LjYucmMxCgoyMDEwLTA4LTE5IDIxOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA4LTE5IDIxOjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgLy8gLT4gQyBjb21tZW50cwoKMjAxMC0wOC0xOSAyMDozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzMDQyNzY1OiBmcm9tIG1laGFmOiBtYWtlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IoKSByZS1lbnRyYW50CgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHR1cm4gb2ZmIGNvb2tpZSBleGNoYW5nZXMgdW50aWwgYSBjb21wbGV0ZSBjb2RlIHNldCBjYW4gYmUKICAgd3JpdHRlbiB0byBzdXBwb3J0IGl0IGJhc2VkIG9uIHRoZSByZXF1aXJlZCBmdW5jdGlvbiBjYWxsYmFja3MKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWRkIG1pc3NpbmcgY2FsbCB0byBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgYXMgbmVlZGVkCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZGlzcGxheWluZyBhIGJ5dGUgYXMgc2luZ2xlIGRpZ2l0IGhleAogICB2YWx1ZSwgZGVmYXVsdCB0bwogICBwcmVmaXhpbmcgd2l0aCAwIHVubGVzcyB0aGVyZSBpcyBhIHNlcGVyYXRvciBvciBhZGRpdGlvbiBoaW50CiAgIGRhdGEKCjIwMTAtMDgtMTcgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGFuIHVudXNlZCBsYWJlbCB0aGF0IHdhcyB0cmlnZ2VyZWQKICAgd2hlbgogICBjb21waWxpbmcgd2l0aG91dCBTU0wgc3VwcG9ydC4KCjIwMTAtMDgtMTYgMjM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyNzkwMjQ5OiBmcm9tIHdpbGxwd2lsbHA6IHJlZHVjZSBjYWNoZSB0aW1lCiAgIGZvciB0aGUgaWZ0YWJsZSB0byAzc2Vjb25kcyB0byBpbmNyZWFzZSBhY2N1cmFjeQoKMjAxMC0wOC0xNiAxNjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0NjM3MTogZnJvbSBjaHJpc3RvcGhiNDogRml4IG1lbW9yeSBsZWFrCiAgIGluIFNOTVB2MSB0cmFwIGhhbmRsaW5nLgoKMjAxMC0wOC0xNiAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjgyNTY1MzogZnJvbSBicnU1Y2U6IGZpeCBzZW5kbWFpbC5jZgogICBwYXJzaW5nIGluIGNlcnRhaW4gY29uZGl0aW9ucwoKMjAxMC0wOC0xNiAxMDoxNiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQnVpbGQgbmV0c25tcF9hZ2VudF9hcGkuMyBtYW4gcGFnZSBmcm9tIHRlbXBsYXRlCgoyMDEwLTA4LTE2IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBEb2N1bWVudGF0aW9uIChQcm92aWRlZCBieSBUb21hc3oKICAgTGlzKQoKMjAxMC0wOC0xNiAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmUtb3JkZXIgY29kZSB0byBncm91cCByZWxhdGVkCiAgIGZ1bmN0aW9ucyB0b2dldGhlcgoKMjAxMC0wOC0xNiAwNzo0MiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjk5NTA5ODogRml4IGNyZWF0aW9uIG9mIFNOTVB2MyBzZXNzaW9ucwogICB3aXRoIEFQSV9TSU5HTEUKCjIwMTAtMDgtMTQgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGVzCgoyMDEwLTA4LTE0IDE2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MDQ5MDA6IERvY3VtZW50YXRpb24gcGx1cyBhc3NvcnRlZAogICBoYW5kbGVyIGNvZGUgZml4ZXMKCjIwMTAtMDgtMTQgMDk6MjggIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgIFJlc3RvcmUgYWdlbnQgQVBJIG1hbiBwYWdlCiAgIERvbid0IHRyeSB0byBleHRyYWN0IG11bHRpcGxlIG1hbiBwYWdlIGxpbmtzIHBlciBsaW5lCiAgICh3aGljaCBydW5zIGludG8gcHJvYmxlbXMgd2l0aCBPUy1zcGVjaWZpYyBsaW5lIGVuZGluZ3MpLgogICBJbnN0ZWFkLCBlbnN1cmUgdGhlIG1hbiBwYWdlIE5BTUUgc2VjdGlvbiBsaXN0cyBvbmUKICAgcm91dGluZSBwZXIgbGluZQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGJyb2tlbiBNYWtlZmlsZSBhZnRlciBtYW4gcGFnZSBtb3ZlcwoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIFRMUyBNSUIgdG8gY3VycmVudCBjb3B5CgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVwbGFjZWQgUkZDIGNvbW1lbnQgbnVtYmVyCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAzMDQyNzcwOiBmcm9tIG1laGFmOiBNYWRlIHJ1bl9hbGFybXMoKQogICByZWVudHJhbnQKCjIwMTAtMDgtMTMgMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA0NDUxMjogZnJvbSBwaGlsd2Vic3RlcjogZml4IHN5c29iamVjdGlkCiAgIGRpcmVjdGl2ZS4KCjIwMTAtMDgtMTMgMTk6MDAgIHJzdG9yeQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4OgoKICAgdXNlIDEyNy4wLjAuMSBpbnN0ZWFkIG9mIGxvY2FsaG9zdCBhcyBkZWZhdWx0IFNOTVBfVEVTVF9ERVNUIHNvCiAgIFRMUyB0ZXN0cyB3b3JrCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGltcGxlbWVudGVkIGEgZml4IGZvciB0aGUgaXNzdWUgcmVwb3J0ZWQgaW4KICAgcGF0Y2ggIzMwNDI3NzAuIENyZWF0ZWQgYSBzbm1wX3NlbGVjdF9pbmZvX2ZsYWdzIGZ1bmN0aW9uLCBhbmQKICAgc2ltaWxhciwgdGhhdCBhbGxvdyBmb3IgYWxhcm1zIHRvIG5vdCBiZSBydW4uIFRoaXMgaXMgdGhlbiB1c2VkCiAgIGluIHRoZSBzeW5jaF9yZXNwb25zZSBmdW5jdGlvbnMgdG8gYXZvaWQgMTAwJSBDUFUgbG9vcHMKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBtYWtlIHNubXB0cmFwZCByZWdpc3RlciB0aGUgY2VydHRvc2VjbmFtZSB0YWJsZSBpbiB0aGUgYWdlbnR4CiAgIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDgtMTMgMTg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBtaW5vciB3b3JkaW5nIGFkZGl0aW9ucwoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jOgoKICAgQ0hBTkdFUzogYWl4OiBQQVRDSDogMjg4NjU5ODogZnJvbSBleHNuYWZ1OiBIZWFkZXIgZml4ZXMgZm9yCiAgIGNvbXBpbGluZyBvbiBBSVg2CgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICBORVdTOiBwb3J0czogUEFUQ0g6IDI4MzY4OTU6IGZyb20gc2VhbmJvdWRyZWF1OiBzdXBwb3J0IGZvciBRTlg2CgoyMDEwLTA4LTEzIDE0OjMzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgJ2VuZm9yY2UgbmV0c25tcCBwcmVmaXhlcwoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICBEb24ndCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIG1hbiBwYWdlcwoKMjAxMC0wOC0xMyAxNDoxOCAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsICAgCiAgICAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBSZW1vdmUgcmVkdW5kYW50IG1hbiBwYWdlIGxpbmtzCiAgIChTaG91bGQgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBkb24ndCBleGlzdCBhbnkgbW9yZQogICBhbnl3YXkpCgoyMDEwLTA4LTEzIDE0OjEzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLCBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgCiAgICAgICBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLCBtYW4vcHJpbnRfbWliLjMsICAKICAgICAgIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgbWFuL3ByaW50X3ZhcmlhYmxlLjMsICAgCiAgICAgIG1hbi9yZWFkX2FsbF9taWJzLjMsIG1hbi9yZWFkX21pYi4zLCBtYW4vcmVhZF9tb2R1bGUuMywgICAKICAgICAgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywgbWFuL3JlYWRfb2JqaWQuMywgbWFuL3NodXRkb3duX21pYi4zOgoKICAgUmVtb3ZlIERveHlnZW4tZ2VuZXJhdGVkIG1hbiBwYWdlcywgYW5kIHRob3NlIGxpbmtpbmcKICAgaW5kaXZpZHVhbCByb3V0aW5lcyB0byB0aGUgYXBwcm9wcmlhdGUgbWFuIHBhZ2UuCiAgIChUaGVzZSBhcmUgYmV0dGVyIGdlbmVyYXRlZCBkeW5hbWljYWxseSkKCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUHJvbXB0IGZvciB3aGV0aGVyIHRvIGdlbmVyYXRlIGNhY2hpbmcgY29kZSBvciBub3QuCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgUmV3b3JrIGd1aWRhbmNlIHF1ZXN0aW9ucyB3aGVuIHNlbGVjdGluZyB0aGUgYmVzdCB0YWJsZSBmcmFtZXdvcmsKICAgdG8gdXNlLgogICBFbnN1cmUgdGFibGUgaGFuZGxpbmcgY29kZSBkb2Vzbid0IG92ZXJ3cml0ZSBzY2FsYXIgaGFuZGxpbmcKICAgY29kZS4KICAgQ2hlY2sgdGhhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMgc3VpdGFibGUgZm9yIE1mRCBmcmFtZXdvcmsuCgoyMDEwLTA4LTEyIDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0xMiAxNTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgZHVwbGljYXRlIHZhbHVlIGNoZWNrCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgYWRkIGEgdGVzdCB3aGVyZSB3ZSBjYW4gdHJ1c3QgYSBDQS1zaWduZWQgY2VydCBhbmQgd2UgZG9uJ3QgdHJ1c3QKICAgdGhlIENBCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgdGVzdCBhIGRpcmVjdGx5IG1hcHBlZCBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgY2hhbmdlIHRoZSBsYUNvbmZpZyB0byByZWFkLXdyaXRlIHRvIG1hdGNoIHRoZSBwYXRjaAoKMjAxMC0wOC0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyOTMxNDQ2OiBmcm9tIGFobWFrZTogbWFrZSB0aGUgbG9hZCBhdmVyYWdlcwogICB3cml0YWJsZS4KCjIwMTAtMDgtMTEgMDY6NDMgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIENIQU5HRVM6IFNpbGVuY2Ugc29tZSBjb21waWxhdGlvbiB3YXJuaW5ncyBmcm9tIHRlc3QgY2FzZXMuCgoyMDEwLTA4LTA5IDIxOjA5ICBtYWdmcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IEhhbmRsZSBlbWJlZGRlZCAlJ3MgaW4gdGhlIHJlc3VsdCBtZXNzYWdlLgoKMjAxMC0wOC0wOSAyMTowNyAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBDSEFOR0VTOiBEbyBubyBkb3VibGUgZGVjbGFyZSB0aGUgaW5kZXggdmFsdWVzLgoKMjAxMC0wOC0wNSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBVcGRhdGUgImF1dGgqIiB1c2FnZSBtZXNzYWdlIHdpdGggY29udGV4dCBzdXBwb3J0CgoyMDEwLTA4LTAyIDIwOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXggdHdvIHNpbGx5IG1pc3Rha2VzLgoKMjAxMC0wOC0wMiAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgQUlYIGZpbGVzeXN0ZW0gdHlwZXMgYXJlIHRhZ2dlZCBhcyBpbnRlZ2Vycywgbm90IHN0cmluZ3MuCgoyMDEwLTA4LTAyIDEzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgZml4IFBlcmwgc3lzdGVtKCkgY29uZmlndXJlIGNoZWNrIHRvIHdvcmsgcmVsaWFibHkgb24gc3lzdGVtcwogICB0aGF0IGxhY2sKICAgUGVybAoKMjAxMC0wOC0wMiAxMTowOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IG1hZGUgaXQgcG9zc2libGUgdG8gYW5hbHl6ZSBhbGwgY29kZSBjb3ZlcmVkIGJ5CiAgIHRoZSByZWdyZXNzaW9uIHRlc3RzIHdpdGggYSBkeW5hbWljIGFuYWx5emVyLCBhdCBsZWFzdCBpZiB0aGF0CiAgIGFuYWx5emVyIHN1cHBvcnRzIGZvbGxvd2luZyBjaGlsZCBwcm9jZXNzZXMuIEFuIGV4YW1wbGU6CiAgIAogICBybSAtcmYgL3RtcC9zbm1wLXRlc3QtKgogICBtYWtlIC1zCiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tdHJhY2stb3JpZ2lucz15ZXMiIG1ha2UgLXMgdGVzdAogICBncmVwIC1pIHVuaW5pdGlhbGlzZWQgL3RtcC9zbm1wLXRlc3QtKiB8IHhhcmdzIGxlc3MKCjIwMTAtMDgtMDIgMTE6MDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgdHdvIFZhbGdyaW5kIGNvbXBsYWludHM6CiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkQ3MDJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDk5RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDdBNDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZFMTQ0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDVFNUUyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NUU2NTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDVFNTY3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1RTI0NzlBOiBfc2Vzc19wcm9jZXNzX3BhY2tldCAoc25tcF9hcGkuYzo1NDQxKQogICBieSAweDVFMjVFMzc6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NjAzNykKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDVFNjU3Mzk6IG5ldHNubXBfdGNwX2FjY2VwdCAoc25tcFRDUERvbWFpbi5jOjgyKQogICBieSAweDVFMjUzODM6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NTc4NikKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkY3QjJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RkE0RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2Rjg1NDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDcwMUY0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDU2RkEyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NTcwMTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDU2RjI3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1NkYyOTRGOiBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kIChzbm1wX3RyYW5zcG9ydC5jOjI0OCkKICAgYnkgMHg1NkJDNDg3OiBzbm1wX3Nlc3NfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo1MjA0KQogICBieSAweDU2QkM2NTE6IHNubXBfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo0OTk4KQogICBieSAweDU2QkM2Nzc6IHNubXBfc2VuZCAoc25tcF9hcGkuYzo0OTg0KQogICBieSAweDU2OTg0NDA6IHNubXBfc3luY2hfcmVzcG9uc2VfY2IgKHNubXBfY2xpZW50LmM6MTAwNikKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NTcwMUIzRTogbmV0c25tcF90Y3BfdHJhbnNwb3J0IChzbm1wVENQRG9tYWluLmM6MTYzKQogICBieSAweDU3MDFFNkY6IG5ldHNubXBfdGNwX2NyZWF0ZV90c3RyaW5nIChzbm1wVENQRG9tYWluLmM6MzA1KQogICBieSAweDU2RjM4MDQ6IG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbAogICAoc25tcF90cmFuc3BvcnQuYzo2MDEpCiAgIGJ5IDB4NTZGM0FDQzogbmV0c25tcF90cmFuc3BvcnRfb3Blbl9jbGllbnQKICAgKHNubXBfdHJhbnNwb3J0LmM6NjY5KQogICBieSAweDU0MzQ0RjY6IHN1YmFnZW50X29wZW5fbWFzdGVyX3Nlc3Npb24gKHN1YmFnZW50LmM6NzU4KQogICBieSAweDU0MzQ5Qzg6IGFnZW50eF9yZW9wZW5fc2Vzc2lvbiAoc3ViYWdlbnQuYzo4NjkpCiAgIGJ5IDB4NTQzNEQwMDogc3ViYWdlbnRfc3RhcnR1cCAoc3ViYWdlbnQuYzo5OSkKICAgYnkgMHg1NkVBRUI3OiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjMzOCkKICAgYnkgMHg1NkRFNkZCOiByZWFkX2NvbmZpZ3MgKHJlYWRfY29uZmlnLmM6MTAxOCkKICAgYnkgMHg1NkMyODdFOiBpbml0X3NubXAgKHNubXBfYXBpLmM6ODUwKQogICBieSAweDQwNDc3QjogbWFpbiAoc25tcHRyYXBkLmM6MTA0OCkKCjIwMTAtMDgtMDEgMDY6MTEgIGJ2YXNzY2hlCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBGaXhlZCBzcGVsbGluZyBlcnJvcnMgcmVwb3J0ZWQgYnkgaXNwZWxsIC1sLgoKMjAxMC0wOC0wMSAwNjowMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF9lbnVtLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSB0ZXh0IHN0cmluZyBpbiBhIHVuaXQgdGVzdDogcmVzdHVyYW50IC0+CiAgIHJlc3RhdXJhbnQuCgoyMDEwLTA4LTAxIDA1OjUzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkuCgoyMDEwLTA3LTMxIDIzOjUwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxOTI2NjogYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgdG8gc3VwcG9ydCBNYWMgT1MgWAogICAxMC42CiAgIChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnByZTIgLT4gVjUuNi5wcmUzCgoyMDEwLTA3LTMxIDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDctMzEgMjA6MjQgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDoxMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBjaGFuZ2VkIHRoZSBuYW1lIG9mIHRoZSByZWFkbWUgc2VjdGlvbiB0byBjYWxsIG91dCBORVdTLXRvbwoKMjAxMC0wNy0zMSAyMDoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG1pc3NpbmcgbmV3cyBpdGVtcwoKMjAxMC0wNy0zMCAxMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSCAzMDM1MzI4OiBmcm9tOiBzd3M6IGNoZWNrIHRoZSByZXN1bHRzIG9mCiAgIHNlc3Npb24gY3JlYXRpb24gZm9yIGEgZmFpbHVyZSBjYXNlLgoKMjAxMC0wNy0zMCAxMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogcGF0Y2ggMzAzNTU3ODogZnJvbSBzd3M6IGtlZXAgZXJyb3IgY29kZXMgdXAgdG8KICAgZGF0ZQoKMjAxMC0wNy0yOSAxNTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjQ3ICBkdHMxMgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBBZGQgc3VwcG9ydCBmb3IgTWFjIE9TIFggMTAuNiAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKICAgKE9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyBNYWMgT1MgWCAxMC41CiAgIChMZW9wYXJkIC0gImRhcndpbjkiKSkKCjIwMTAtMDctMjkgMTU6MDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gb2YgJ3ZhX2xpc3QnIGZvciB2YXJhcmdzLWJhc2VkIEFQSXMKCjIwMTAtMDctMjkgMTQ6NTggIGR0czEyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3lzdGVtLmM6CgogICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgQUlYIDcKICAgKG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyBpZGVudGljYWwgdG8gQUlYIDYpCgoyMDEwLTA3LTI5IDE0OjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgRGlzYWJsZSBlbWJlZGRlZCBwZXJsIGJ5IGRlZmF1bHQgb24gYXJjaGl0ZWN1cmVzIHdoZXJlCiAgIHRoaXMgc2VlbXMgdG8gY2F1c2UgcHJvYmxlbXMgKEhQLVVYICYgTWFjIE9TIFgpCgoyMDEwLTA3LTI5IDExOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBHdWFyZCBhZ2FpbnN0IGJsYW5rICdpbmNsdWRlKicgbGluZXMuCiAgIEhhbmRsZSByZWxhdGl2ZSAnaW5jbHVkZUZpbGUnIHBhdGhzCgoyMDEwLTA3LTI5IDEwOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV0dXJuIGFuIGluZGljYXRpb24gb2Ygd2hldGhlciBjb25maWcgZmlsZXMgYXJlIGFjdHVhbGx5CiAgIHByb2Nlc3NlZC4KICAgUmVwb3J0IHByb2JsZW1zIHdpdGggZmFpbGluZyB0byBpbmNsdWRlIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDctMjggMTQ6NDQgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBtYW4vY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmLCAgCiAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEJyaW5nIG1hbiBwYWdlIGRvY3VtZW50YXRpb24sIGhlYWRlciBmaWxlcyBhbmQgV2luZG93cyBETEwKICAgZGVmaW5pdGlvbnMKICAgb2YgdG9wLWxldmVsIHB1YmxpYyBBUEkgY2FsbHMgaW50byBsaW5lIHdpdGggZWFjaCBvdGhlci4KCjIwMTAtMDctMjggMTQ6NDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBtaXNuYW1lZCBjb21tZW50CgoyMDEwLTA3LTI4IDE0OjM2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRG9uJ3QgbWl4IFNNSXYxIGFuZCBTTUl2MiBNSUJzIGluIHRoZSBsaXN0IG9mIGRlZmF1bHQgTUlCcyB0bwogICBsb2FkLgogICBVc2UgbmV3ZXIgU01JdjIgdmVyc2lvbnMgKHdoaWNoIGluY2x1ZGUgc3VpdGFibGUgZGlzcGxheSBoaW50cykKICAgcmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIFJGQzEyMTMgTUlCICh3aGljaCBkb2Vzbid0KQoKMjAxMC0wNy0yOCAxNDoxMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGluZGVudGF0aW9uIGZvciAnaW5jbHVkZVNlYXJjaCcgcHJvY2Vzc2luZyBjb2RlLgoKMjAxMC0wNy0yOCAxNDowOSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRXh0ZW5kICdpbmNsdWRlJyBjb25maWcgZmlsZSBwcm9jZXNzaW5nIHRvIGNvdmVyIHRocmVlCiAgIGRpZmZlcmVudCBtb2RlcyBvZiB3b3JraW5nOgogICAtIGxvb2sgZm9yIHRoZSBmaWxlIG9uIHRoZSBjb25maWcgc2VhcmNoIHBhdGgKICAgLSBpbmNsdWRlIHRoZSBzcGVjaWZpZWQgZmlsZSBieSBuYW1lCiAgIC0gaW9hZCB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkKICAgVXNlIGRpZmZlcmVudCBjb25maWcgdG9rZW5zIHRvIGRpc3Rpbmd1aXNoIHRoZXNlIGNhc2VzLgoKMjAxMC0wNy0yNyAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyOTEyNTIwOiBmcm9tIGxpc3RvbTogRnJlZSBrbWVtIHJlZmVyZW5jZXMKICAgb24gc2h1dGRvd24KCjIwMTAtMDctMjcgMTA6NTQgIGhhcmRha2VyCgogICAqIG1pYnMvU01VWC1NSUIudHh0OgoKICAgQ0hBTkdFUzogbWliczogcGF0Y2ggMjk3NDcxNjogZnJvbSBidmFzc2NoZTogZml4IGlzc3VlcyBpbiB0aGUKICAgU01VWC1NSUIKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGluY2x1ZGUgdGhlIG5ldyBzZWN1cml0eS1oZWRhZXJzIG1vZHVsZQoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgcmVtb3RlIGRlYnVnZ2luZy9wcm9jZXNzaW5nIHN0ZGVyciBvdXRwdXQKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMzAyODkyMzogZnJvbSBqZW5zbzogbmV3IGNvcHkgb2YgdGhlCiAgIGJyaWRnZS1taWIgcGVybCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tc2VjdXJpdHktaGVhZGVycy5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgc2VjdXJpdHkgaGVhZGVyL2luaXQgZ2VuZXJhdGlvbgoKMjAxMC0wNy0yNyAwODozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0czoKCiAgIHRyYW5zcG9ydCBjb25maWd1cmUgcG9ydGlvbgoKMjAxMC0wNy0yNyAwODozMCAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXRyYW5zcG9ydC1oZWFkZXJzLmluLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tdmFyaWFibGVzLmluOgoKICAgbW92ZSB0cmFuc3BvcnQgaGVhZGVyIGdlbmVyYXRpb24gdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBjcmVhdGUgYW4KICAgZXh0ZXJuYWwgc2VwYXJhdGUgc2NyaXB0IGZvciBnZW5lcmF0aW5nIGl0CgoyMDEwLTA3LTI3IDA4OjE0ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCBnZnMgZmlsZXN5c3RlbXMgaW4gaHJTdG9yYWdlVGFibGUgYW5kCiAgIGhyRlNUYWJsZS4KCjIwMTAtMDctMjQgMTU6NDIgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgd2FzIGJlaW5nIHBhcnNlZCwKICAgd2hlbiBwcm9jZXNzaW5nIGFuIGluY2x1ZGVkIGNvbmZpZyBmaWxlLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yNCAxNTozNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSBpcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gb3BlbmluZyBhIG5ldyBTTk1QIHNlc3Npb24uCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTIzIDAzOjEyICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZCB0aGUgVExTIG1vZHVsZXMgdG8gdGhlIGxpc3Qgb2YgdGVzdCBtb2R1bGVzCgoyMDEwLTA3LTIxIDE5OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmM6CgogICBGaXggdHlwbyBpbiBkb3h5Z2VuIGNvbW1lbnQKCjIwMTAtMDctMjEgMTk6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgRml4IHR5cG8gaW4gc3BlZWQgY29tcHV0YXRpb24KCjIwMTAtMDctMjEgMTk6MjEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICBJbmNsdWRlIGdlbmVyYXRlZCBzZWN1cml0eS1pbmNsdWRlcy5oCgoyMDEwLTA3LTIxIDE5OjIwICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmg6CgogICBGaXggaW5pdCBmdW5jIG5hbWUgKGNvcHktcGFzdGUgZ2xpdGNoKQoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIHNlbWljb2xvbgoKMjAxMC0wNy0yMSAxOToxOCAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgT3V0IG9mIG9yZGVyIGRlY2xhcmF0aW9uCgoyMDEwLTA3LTIxIDE5OjE3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIExvZyBlcnJvciBvbiBmaWxlIG9wZW4gZXJyb3IKCjIwMTAtMDctMjEgMTk6MTYgIG5iYQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTcGVsaW5nIGVycm9yCgoyMDEwLTA3LTIxIDE4OjEwICBuYmEKCiAgICogbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIFVwZGF0ZSBmb3IgY3VycmVudCBSRkNzCgoyMDEwLTA3LTIxIDE4OjA4ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IHZlcnNpb24gZnJvbSBJQU5BCgoyMDEwLTA3LTIxIDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByMTc0OTUgZXJyb25lb3VzbHkgZGlzYWJsZWQgZGlza0lPTEF4IGZvciBsaW51eAoKMjAxMC0wNy0yMCAxMDozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHdoZW4gZ2VuZXJhdGluZwogICB0ZW1wLiBmaWxlIG5hbWVzCgoyMDEwLTA3LTIwIDA3OjMyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L3NubXBkLmMsIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCAgIAogICAgICBtYW4vc25tcHRyYXBkLjguZGVmLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRGVzY3JpYmUgLUQgdXNhZ2UgYXMgLURbVE9LRU5dIGluc3RlYWQgb2YgLUQgW1RPS0VOXQoKMjAxMC0wNy0xNyAxNToxMCAgcnN0b3J5CgogICAqIG1pYnMvU05NUC1UTFMtVE0tTUlCLnR4dDoKCiAgIHVwZGF0ZSBkaXNwbGF5IGhpbnQgdG8gc29tZSBsZXNzIGFtYmlndW91cyAoYW5kIHRoYXQgd29ya3Mgd2l0aAogICBvdXIgbGliKQoKMjAxMC0wNy0xNyAwNDoxMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggdGVzdHNpbXBsZSBmb3IgYnVpbGRkaXIhPXNyY2RpcgoKMjAxMC0wNy0xNyAwNDoxMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBhZGQgdGVzdHNpbXBsZSB0YXJnZXQKCjIwMTAtMDctMTYgMTk6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbGVhc2UgaXRlcmF0b3Igd2hlbiBkb25lIHdpdGggaXQKCjIwMTAtMDctMTUgMTg6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGlzc3VlIHdpdGggVVNNIHVzaW5nIGluYWN0aXZlIHVzZXJzCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW5jbHVkZSBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyOyBkZWZpbmUgTkFNRV9NQVggaWYgbm90IGFscmVhZHkKICAgZGVmaW5lZDsKICAgZG9uJ3QgdXNlIHN0cm5kdXAgKHBvcnRhYmlsaXR5KQoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgdGhhdCBzb21lIG5ld2VyIG9wZW5zc2wgbWFjcm9zIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZwogICB0aGVtOyBpbmNsdWRlCiAgIGFwcHJvcHJpYXRlIHN0cmluZyBoZWFkZXIKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZG9uJ3QgY29tcGlsZSBkdGxzIGRvbWFpbiBpZiBubyBkdGxzIHN1cHBvcnQgaW4gb3BlbnNzbAoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBpZmRlZiBwcm90ZWN0aW9uIGZvciBsYXRlciBzaGEgYWxnb3JpdGhtcwoKMjAxMC0wNy0xNSAwMTozNCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjkuaDoKCiAgIGRhcndpbiBvcGVuc3NsIGRvZXMgbm90IHN1cHBvcnQgbW9yZSByZWNlbnQgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBmaXggdHlwbyBpbiBpZmRlZiB0ZXN0CgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIGluY2x1ZGVkIGZpbGUgbmFtZQoKMjAxMC0wNy0xNCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBmaXggdGhlIGZpeDogcHV0IFBSSXogc3BlYyBpbiBjb3JyZWN0IHBsYWNlCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIHNwZWNpZnkgU05NUCB2ZXJzaW9uIG9uIGNvbW1hbmRsaW5lCgoyMDEwLTA3LTE0IDE1OjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDEwLTA3LTE0IDE1OjAyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgYXBwcy9zbm1wdGxzLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGluY2x1ZGUgc3NsLmggYmVmb3JlIGNlcnRfdXRpbC5oCgoyMDEwLTA3LTEzIDIwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGZvdW5kIGNlcnQKCjIwMTAtMDctMTMgMTY6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvIGluIGxvZyBtc2cKCjIwMTAtMDctMTIgMTA6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENIQU5HRVM6IFdpbjMyIGFuZCBDeWd3aW46IG1hZGUgc3VyZSB0aGF0IGFjY2Vzc2luZyB0aGUgbWliSUkKICAgaW50ZXJmYWNlcyB0YWJsZSBkb2VzIG5vdCB0cmlnZ2VyIG91dC1vZi1yYW5nZSBhcnJheSBhY2Nlc3NlcwogICAod2FzIGRldGVjdGVkIGJ5IEJvdW5kc0NoZWNrZXIpLgoKMjAxMC0wNy0xMiAxMDoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXhlZCBhIGRhbmdsaW5nLXBvaW50ZXItcmVhZCB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTAxOC4gSW4KICAgcjE5MDE4IHRoZSB0eXBlIG9mIGdyb3VwU3VidHJlZUxlbiB3YXMgY2hhbmdlZCBmcm9tIGludCB0bwogICBzaXplX3QsIHdoaWNoIGNoYW5nZWQgdGhlIGJlaGF2aW9yIG9mIHRoZSBsb29wICJ3aGlsZQogICAoZ3JvdXBTdWJ0cmVlTGVuLS0gPiAwKSAuLi4iOiBpbnN0ZWFkIG9mIG5vdCBleGVjdXRpbmcgdGhlIGxvb3AKICAgYm9keSB3aGVuIGdyb3VwU3VidHJlZUxlbiB3YXMgbmVnYXRpdmUsIHIxOTAxOCBjYXVzZWQgdGhlIGJvZHkgb2YKICAgdGhhdCBsb29wIHRvIGJlIGV4ZWN1dGVkLiBEZXRlY3RlZCBieSBydW5uaW5nIHNubXBkIHVuZGVyCiAgIEJvdW5kc0NoZWNrZXIgd2hpbGUgcGVyZm9ybWluZyBhIE1JQiB3YWxrLgoKMjAxMC0wNy0xMiAxMDoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFJldmVydGVkIHIxOTA0NyAod2hpY2ggd2FzIHdyb25nKSBhbmQgaW1wbGVtZW50ZWQgYSBwcm9wZXIgZml4CiAgIGZvciB0aGUgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMuCgoyMDEwLTA3LTEyIDEwOjA5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCgoyMDEwLTA3LTEyIDEwOjA4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmg6CgogICBTdXBwcmVzc2VkIG1vcmUgTVNWQyBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1ZhcnM6CgogICBhZGQgY29tbWVudCB3aXRoIG9iamVjdCBuYW1lIGZvciBudW1lcmljIGlkcwoKMjAxMC0wNy0xMiAwNDo0NSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBnZXQgc2VydmVySWQgZnJvbSBzbm1wVGxzdG1BZGRyVGFibGUgZGF0YTsgdXNlCiAgIG5ldyBhcGkKICAgdG8gY29uZmlnIHNlcnZpY2VJZCBmb3IgdHJhcCB0cmFuc3BvcnQgd2hlbiBzZW5kaW5nIHRyYXBzCgoyMDEwLTA3LTExIDExOjE4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBDSEFOR0VTOiBCVUc6IDMwMjc5MDA6IHdoZW4gY3Jvc3MtY29tcGlsaW5nIGl0IGlzIG5vdyBhc3N1bWVkCiAgIHRoYXQgbWVtY21wKCkgaXMgYXZhaWxhYmxlIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCBpdCBpcyBub3QKICAgYXZhaWxhYmxlLgoKMjAxMC0wNy0xMSAxMDozMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgcjE5MTk3LgoKMjAxMC0wNy0xMCAyMDowMCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3luYyB1cCBoZWxwIG91dHB1dCBhbmQgb3B0aW9ucyBwcm9jZXNzaW5nCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIEN5Z3dpbiBzZWN0aW9uIGluIFJFQURNRS53aW4zMi4KCjIwMTAtMDctMDkgMTU6MTMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBTdXBwcmVzc2VkICJpbXBsaWNpdCBjYXN0IGZyb20gaW50IHRvIHVfY2hhciIKICAgd2FybmluZ3MgZ2VuZXJhdGVkIGJ5IE1TVkMuCgoyMDEwLTA3LTA5IDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgVGVzdGluZzogbWFkZSB0aGUgZGVidWcgb3V0cHV0IHRoYXQgYXBwZWFycyBpbiB0aGUgImludm9rZWQiIGZpbGUKICAgZXZlbiBtb3JlIHZlcmJvc2UuCgoyMDEwLTA3LTA5IDE1OjEwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcy4KCjIwMTAtMDctMDggMTk6MzAgIG1hcnoKCiAgICogIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydCwgICAKICAgICAgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgYWRkcyBwZXIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmaWxlIHN1cHBvcnQgc28gZGVmYXVsdHMgY2FuIGJlCiAgIGN1c3RvbWlzZWQgb24gY21kbGluZSB3IC1pIDxpZGVudGl0eT4gLSBzZWUgbmV0LXNubXAtY2VydC5jb25mCiAgIGZvciBleGFtcGxlcyBhbmQgc29tZSBoZWxwIGluZm8KCjIwMTAtMDctMDggMTI6MTcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDAzOTgxOiBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJmbG93CgoyMDEwLTA3LTA4IDExOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMTkyNDM6IFJlZ2lzdGVyIGV4ZWNGaXggY29tcGF0YWJpbGl0eQogICBkaXJlY3RpdmUgY29ycmVjdGx5LgoKMjAxMC0wNy0wNyAxMDoxOSAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZToKCiAgIENIQU5HRVM6IEN5Z3dpbiBhbmQgTWluR1c6IHRlc3RzIFQxMTAsIFQxMTEsIFQxMTIsIFQxMjAsIFQxMjEgYW5kCiAgIFQxMjIgZG8gbm93IHBhc3Mgd2hlbiBzbm1wZCBpcyBidWlsdCB3aXRoIHdpbkV4dERMTCBzdXBwb3J0CiAgIGVuYWJsZWQuCgoyMDEwLTA3LTA2IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgQ2hhbmdlTG9nLCBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIE1hZGUgcmVncmVzc2lvbiB0ZXN0cyBlYXNpZXIgdG8gZGVidWcgYnkgaW5jbHVkaW5nIG9rIC8gbm90IG9rCiAgIHN0YXR1cyBpbiB0aGUgImludm9rZWQiIGZpbGUuCiAgIFNwZWxsaW5nIGZpeGVzOiByZW1lYmVyIC0+IHJlbWVtYmVyOyBzZXBlcmF0b3IgLT4gc2VwYXJhdG9yLgoKMjAxMC0wNy0wNiAxNTowNCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBUZXN0IFQwNjUgZG9lcyBub3cgcmVhbGx5IHBhc3Mgb24gTWluR1cuCgoyMDEwLTA3LTA1IDEwOjAxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgY3VybHkgYnJhY2VzIHN1Y2ggdGhhdCAnfHwnIGFuZCAnJiYnIGFyZSBldmFsdWF0ZWQgaW4gdGhlCiAgIGNvcnJlY3Qgb3JkZXIuCgoyMDEwLTA3LTA0IDExOjM3ICBidmFzc2NoZQoKICAgKiBhcHBzOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wNy0wNCAxMTozNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEZhbGwgYmFjayBmcm9tIFJVTkZVTExURVNUUyB0byBSVU5URVNUUyBpZiBuZWl0aGVyIFRBUDo6SGFybmVzcwogICBub3IgVGVzdDo6SGFybmVzcyBpcyBhdmFpbGFibGUuCgoyMDEwLTA3LTA0IDExOjIxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgdGVzdCBudW1iZXIgaW4gL3RtcC9zbm1wLXRlc3RzLSR0ZXN0bnVtIGlzIHNldAogICB0byBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsIHRoYW4ganVzdCAiMCIuCgoyMDEwLTA3LTA0IDExOjIwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU3BsaXQgYSBsb25nIGNvbW1lbnQgbGluZS4KCjIwMTAtMDctMDQgMTA6NTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCBzcmNkaXIgaXMgY29tcHV0ZWQgY29ycmVjdGx5IGlmIGBkaXJuYW1lCiAgICQwYCA9IC4KCjIwMTAtMDctMDIgMTY6MjcgIGJ2YXNzY2hlCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBTaW1wbGlmaWVkIHIxOTE4MSAoRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoCiAgIG5vbi1lbXB0eSAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVykuCgoyMDEwLTA3LTAxIDE4OjE1ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRml4ZWQgVExTVENQLWVuYWJsZWQgYnVpbGQgZm9yIHBsYXRmb3JtcyB3aXRoIG5vbi1lbXB0eQogICAkKEVYRUVYVCksIGkuZS4gQ3lnd2luIGFuZCBNaW5HVy4KCjIwMTAtMDctMDEgMTg6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNy0wMSAxNzo1MyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEZpeGVkIHR3byByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNy0wMSAwMDoxOSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTAxIDAwOjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDowMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMzAgMjM6NTUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucHJlMSAtPiBWNS42LnByZTIKCjIwMTAtMDYtMzAgMjM6NTUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDggIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZjoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaXNzZWQgdHdvIHRva2VucyBpbiB0aGUgbWFuIHBnYWVzCgoyMDEwLTA2LTMwIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wZC44LmRlZiwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ2lwaGVyVGVzdHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ3JsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0FnZW50VHJhcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHJlbmFtZSB0aGUgZGVmWDUwOSB0b2tlbnMgdG8gc29tZXRoaW5nIG1vcmUgZnJpZW5kbHk6IGNsaWVudENlcnQKICAgYW5kIHNlcnZlckNlcnQKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHRvcC1maWxlIGNvbW1lbnQgdXBkYXRlcwoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvbid0IGNhbGwgY2VydF9maW5kIHdpdGggYSBOVUxMIGFyZ3VtZW50CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWxsb3cgZGVmIGNlcnRzIHRvIGJlIHNwZWNpZmllZCB1c2luZyBhIGZpbGVuYW1lCgoyMDEwLTA2LTMwIDIzOjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMTAtMDYtMzAgMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB0dXJuIGEgY291cGxlIG9mIG5vbi1jcml0aWNhbCBlcnJvcnMgaW50byBkZWJ1ZyBzdGF0ZW1lbnRzIHBlcgogICBkaXNjdXNzaW9uIHdpdGggcnN0b3J5CgoyMDEwLTA2LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1ha2UgdGhlIHJlZ2V4cCBwYXR0ZXJuIG1hdGNoIGZvciB0ZXN0cyB0byBydW4gY2FzZSBpbnNlbnNpdGl2ZQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgaW1wb3J0IHN0ZGVyciBmcm9tIHN5cywgcGVyIGRpc2N1c3Npb24gb24gLXVzZXJzCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgYmFjayBpbiB0aGUgZGVmYXVsdCBwb3J0IHNwZWNpZmllcgoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGVuYWJsZSBwdWxsaW5nIHRoZSBwcml2YXRlIGtleSBvdmVyIGh0dHAKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtb3ZlIFVSTCBjb2xsZWN0aW9uIGludG8gYSBzdWIgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhYmlsaXR5IHRvIHB1bGwgYSBjZXJ0IGZyb20gYSBVUkwKCjIwMTAtMDYtMzAgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXJndW1lbnQgYnVnIGluIHRoZSBpc191cmwgZnVuY3Rpb24KCjIwMTAtMDYtMzAgMjA6NDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRscy5jOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlCgoyMDEwLTA2LTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdEdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZToKCiAgIHJlbmFtZSBmaWxlIGZvciBjb25zaXN0ZW5jeQoKMjAxMC0wNi0zMCAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IHNubXB0bHMgYXBwCgoyMDEwLTA2LTMwIDIwOjAwICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgcmVtb3ZlIGFjY2lkZW50YWxseSBjaGVja2VkIGludCBkZWJ1ZyBjb2RlCgoyMDEwLTA2LTMwIDE5OjU5ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgZGVmaW5lIE9JRHMgYmFzZWQgb24gU05NUF9UTFNfVE1fQkFTRQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU3ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGF1dG8tdHJhbnNpc3Rpb24gYmV0d2VlbiBub3RSZWFkeS9ub3RJblNlcnZpY2U7IGFkZAogICBzbm1wX3N0b3JlX25lZWRlZCBvbiBjb21taXQKCjIwMTAtMDYtMzAgMTk6NTYgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgbmV3IGZpbmdlcnByaW50IHBhcnNlL2J1aWxkIGZ1bmN0aW9uczsgcmVtb3ZlIGJhZCBsZW5ndGgKICAgY2hlY2s7IGF1dG8KICAgdHJhbnNpdGlvbiBiZXR3ZWVuIG5vdFJlYWR5IGFuZCBub3RJblNlcnZpY2UKCjIwMTAtMDYtMzAgMTk6NTUgIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICByZW1vdmUgcHJlLXJmYyBtaWI7IHNlZSBTTk1QLVRMUy1UTS1NSUIudHh0IGluc3RlYWQKCjIwMTAtMDYtMzAgMTk6NTQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBjb25zb2xpZGF0ZSBtdWx0aXBsZSBmaWxlcwoKMjAxMC0wNi0zMCAxOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgaGFzaCB0eXBlIHBhcnNlIHJvdXRpbmUgcHVibGljOyBhZGQgcm91dGluZXMgdG8gYnVpbGQvcGFyc2UKICAgU25tcFRMU0ZpbmdlcnByaW50CgoyMDEwLTA2LTMwIDE5OjUxICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0bHMuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBORVdTOiBzbm1wdGxzOiBuZXcgYXBwIGZvciBtYW5hZ2luZyAoRClUTFMgY29uZmlnIHZpYQogICBTTk1QLVRMUy1UTS1NSUIgdGFibGVzCgoyMDEwLTA2LTMwIDE5OjUwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGNhbGwgbmV3IHNubXBfc3RvcmVfbmVlZGVkKCkgZnVuY3Rpb24gYWZ0ZXIgYSBjb21taXQgaW4gdGFibGVzCiAgIHRoYXQKICAgaGF2ZSBwZXJzaXN0ZW50IHN0b3JlCgoyMDEwLTA2LTMwIDE5OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgc2ltcGxlIHN0YXRlIG1hY2hpbmUKICAgTkVXUzogc25tcGxpYjogbmV3IGV4cGVyaW1lbnRhbCByb3cgY3JlYXRpb24gQVBJIHdoaWNoIHVzZXMgYQogICBzdGF0ZSBtYWNoaW5lCiAgIHRvIHRyeSByZWFsbHkgaGFyZCB0byBjcmVhdGUgYSByb3cgZnJvbSBhIGdpdmVuIHZhcmJpbmQgbGlzdAoKMjAxMC0wNi0zMCAxOTo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wZDogbmV3IEFQSSBmb3IgaW5kaWNhdGluZyB0aGF0IHBlcnNpc3RlbnQgc3RvcmUgbmVlZHMKICAgdG8gYmUgc2F2ZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgcmVxdWVzdCBmaW5pc2hlcyBwcm9jZXNzaW5nCgoyMDEwLTA2LTMwIDE5OjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBhZGQgc29tZSBuZXcgd3JhcHBlciBtYWNyb3MKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0NOU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW5TZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE1RHRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNlRsc1NhblNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN2R0bHNDTlNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExOFRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICBhZGRlZCBjaGVja3MgZm9yIGNoZWNraW5nIGRpcmVjdCBwYXNzaW5nIG9mIGxvY2FsaG9zdCB0byB0aGUKICAgZXhwZWN0ZWQgbmFtZQoKMjAxMC0wNi0zMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXI6CgogICBjaGVjayBmb3Igd2lsZGNhcmQgc3VwcG9ydAoKMjAxMC0wNi0zMCAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdXBwb3J0IFNBTiBhbmQgQ04gd2lsZGNhcmQgbWF0Y2hpbmcgcGVyIHNwZWMKCjIwMTAtMDYtMzAgMTU6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzTmFtZSwgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTYW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1RyYXBkVXNlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFEdGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxZHRsc3VkcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAyVGxzVXNlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAydGxzdGNwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFEdGxzU2VydmVyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMlRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM0R0bHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM2R0bHN1ZHBzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNFRsc1Nhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFEdGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIyVGxzVHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFEdGxzQWdlbnRUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMlRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MUR0bHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MWR0bHN1ZHBjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MlRsc0NybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFEdGxzQ2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxZHRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MlRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MnRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMHRsc2lwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMFRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxRHRsc1BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMUR0bHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMlRsc1RzbVByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIG1vdmVkIHRlc3QgZmlsZXMgYXJvdW5kIGZvciBiZXR0ZXIgbmFtaW5nCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZHRscyB0cmFuc3BvcnQgYWRkcmVzcyB0byB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCB0aGUgZXhwZWN0ZWQgaG9zdG5hbWUgZnJvbSB0aGUgdHJhbnNwb3J0IHN0cmluZyBpZiBwb3NzaWJsZQoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGEgYml0IG1vcmUgaGVscCBvdXRwdXQgYnkgZGVmYXVsdAoKMjAxMC0wNi0yOSAyMjoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTExNjogbWFrZSBzdXJlIHdlIGluY2x1ZGUgYWdlbnQgY29uZmlnCgoyMDEwLTA2LTI5IDIyOjE4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgQWRkIG1pc3NpbmcgY29uZmlnX3JlcXVpcmVzCgoyMDEwLTA2LTI5IDE3OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIHJld29yayB0aGUgc25tcGNtZCBtYW51YWwgcGFnZSB0byBzZXBhcmF0ZSBvdXQgdGhlIGZsYWdzIGludG8KICAgc2VjdGlvbnMgYXBwcm9wcmlhdGUgZm9yIHRoZWlyIHVzYWdlIHR5cGUKCjIwMTAtMDYtMjkgMTY6NTEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHBvZCBkb2NzLCBzb21lIGRlZmF1bHQgdmFsIGZpeGVzLCBpbmZvIG91dHB1dCBub3JtYWxpemVkCgoyMDEwLTA2LTI5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBhZGRlZCBzc2guaCBpbmNsdWRlCgoyMDEwLTA2LTI5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHJlb3JnYW5pemUgdGhlIG1hbnVhbCBwYWdlIGEgYml0IGZvciBTTk1QdjMgYW5kIFRMUwoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBkZWZhdWx0IHRscyByZWdpc3RyYXRpb25zCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBmb3IgTlVMTCB0cmFuc3BvcnRzIGFmdGVyIGFuIG9wZW4gZmFpbHMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92aW5nIGxvZ2dpbmcgYXJvdW5kIHNvIHRoYXQgb3BlbnNzbCBlcnJvcnMgYXJlIHByaW50ZWQgb24KICAgZmFpbHVyZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeDoKCiAgIGZpeCBzb21lIG5vbi1pbnRlcmFjdGl2ZSBpbnZvY2F0aW9uIGlzc3VlcwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgaW50byBhIGNvbW1vbiBmdW5jdGlvbgoKMjAxMC0wNi0yOCAxOToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NpcGhlclRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZToKCiAgIGNpcGhlciBzdWl0ZSBzZWxlY3Rpb24gYW5kIHRlc3RzIGZvciBpdAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL0xJQ0VOU0U6CgogICBsaWNlbnNlIHVwZGF0ZXMKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqICBweXRob24vUkVBRE1FLCBweXRob24vbmV0c25tcC9jbGllbnQucHksICAgCiAgICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBTTk1QdjMgb3ZlciBUTFMgc3VwcG9ydAoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGJldHRlciBvdXRwdXQgc2hvd2luZyB0ZXN0IHR5cGVzCgoyMDEwLTA2LTI4IDAwOjU0ICB0YW5kZXJzCgogICAqICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogbWFuOiBjbGVhbiB1cCBtYW51YWwgcGFnZXMKICAgKGZyb20gRGViaWFuIHBhdGNoIDU2X21hbnBhZ2UpCgoyMDEwLTA2LTI3IDIzOjI5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBEbyBub3QgY2FsbCB2YWNtX3N0YW5kYXJkX3ZpZXdzKCkgb3IKICAgaW5pdF92YWNtX2NvbmZpZ190b2tlbnMoKSBpZiB0aGUgY29ycmVzcG9uZGluZyBtb2R1bGUgd2FzIG5vdAogICBjb21waWxlZAogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNjFfdmFjbV9taXNzaW5nX2RlcGVuZGVuY3lfY2hlY2spCgoyMDEwLTA2LTI3IDAzOjIzICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggYXBwIHRhZyBjb21wbGV0aW9ucwoKMjAxMC0wNi0yNyAwMDo1NiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBoYW5kbGUgY29uZmlnIGZpbGUgc2V0dGluZyBpbnRlcmFjdGl2ZSwgdHJ1ZS9mYWxzZSB2YWx1ZXMgaGFuZGxlZAogICBpbiBjb25maWcKCjIwMTAtMDYtMjYgMjA6NTggIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBzb21lIGJ1Z3Mgdy8gc3BhY2VzIGluIG5hbWVzIGFuZCBhcHAgdGFnIGhlbHAKCjIwMTAtMDYtMjYgMTk6MzggIG1hcnoKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0ZXN0cyB0byB1c2Ugbm9uLWludGVyYWN0aXZlIC1JCgoyMDEwLTA2LTI2IDE3OjQ2ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbCwgbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGJldHRlciBpbnRlcmFjdGl2ZSwgPz1oZWxwLCA8dGFiPiBjb21wbCwgbW9yZSBoZWxwLCBTQU4gbG9vcAogICBmb3JtYXQgYW5kIHRlcm1pbmF0aW9uIGZpeCwgdG9sZXJhdGUgc3BhY2VzIGluIGZpZWxkcyBhbmQKICAgZmlsZW5hbWVzLCBtb3JlIGNvbXBsZXRlIGVycm9yIG91dHB1dCwgZW1icnlvbmljIGltcG9ydCBmcm9tIHVybAoKMjAxMC0wNi0yNiAxMzo0OCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMuCgoyMDEwLTA2LTI2IDEzOjQ3ICBidmFzc2NoZQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4ZWQgdGhlIGVycm9ycyBpbiBhY2NvbmZpZy5oIGFuZCByZWdlbmVyYXRlZAogICBuZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDYtMjYgMTM6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IFNNVVggTUlCIGltcGxlbWVudGF0aW9uLgoKMjAxMC0wNi0yNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzYW50ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTR0bHN0Y3BzYW5fc2ltcGxlOgoKICAgZml4ZXMgYW5kIHRlc3RpbmcgZm9yIGNoZWNraW5nIFNBTiBETlMgbmFtZXMgZnJvbSB0aGUgc2VydmVyCgoyMDEwLTA2LTI2IDAwOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNuYW1ldGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICBnZW5lcmljaXplIHRoZSBzZXJ2ZXIgbmFtZSB0ZXN0cwoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3RzbS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmgsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxZHRsc3RzbXByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAydGxzdHNtcHJlZml4X3NpbXBsZToKCiAgIHVzZXByZWZpeCBzY2FsYXIgdGVzdGluZyBhbmQgc3VwcG9ydAoKMjAxMC0wNi0yNSAyMzowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0czoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgbGluZXMKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICBwdXQgaW4gb25seSBtaW5pbWlhbCBkZWJ1ZyBmbGFncwoKMjAxMC0wNi0yNSAyMzowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJ0bHN0Y3Bjcmxfc2ltcGxlOgoKICAgY29kZSBhbmQgdGVzdCBjYXNlcyBmb3IgQ1JMIGhhbmRsaW5nCgoyMDEwLTA2LTI1IDE1OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlOgoKICAgQWRkZWQgYSBuZXdsaW5lIGF0IHRoZSBlbmQgb2YgZWFjaCBsaW5lIHByaW50ZWQgYnkgdGhlIFBlcmwKICAgaW50ZXJwcmV0ZXIuCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlZHVjZSBudW1iZXIgb2YgcmVzZW5kIGF0dGVtcHRzIGFuZCB0aW1lb3V0CgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsIHNubXBsaWIvY2VydF91dGlsLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHdhcm5pbmcgZml4ZXMKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZW1vdmUgbG9naWMgdHlwbyBmcm9tIHByZXZpb3VzIGNvbW1pdAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZToKCiAgIElQdjYgZml4ZXMgZm9yIFRDUAoKMjAxMC0wNi0yNSAxMzowMSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGluZyAxOTA5NSwgaXQgYnJlYWtzIHRlc3RzCgoyMDEwLTA2LTI1IDA5OjQwICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcHRyYW5zbGF0ZTogZml4ZWQgcHJpbnRpbmcgb2YgcmFuZ2VzIHdpdGggVU5TSUdORUQKICAgdHlwZS4KCjIwMTAtMDYtMjQgMjM6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGZ1bmN0aW9uIG5hbWVzIGZvciBzdGF0IGluY3JlYXNlcwoKMjAxMC0wNi0yNCAyMzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3JzIGluIGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjQgZm9yIGR0bHMKCjIwMTAtMDYtMjQgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29tbWVudHMgZm9yIDUuMy4yCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsaWVudCBzaWRlIGNvbm5lY3QgY29tbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY291bnRlciBhbmQgY29tbWVudCBpbXByb3ZlbWVudHMKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdXBkYXRlIGNvdW50ZXIgY2FsbHMgYW5kIGNvbW1lbnQgdGV4dAoKMjAxMC0wNi0yNCAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIE1vdmVkIExEX0xJQlJBUllfUEFUSCBzZXR1cCBmcm9tIGluZGl2aWR1YWwgdGVzdHMgc2NyaXB0cyB0bwogICBzaW1wbGVfVEVTVENPTkYuc2guCgoyMDEwLTA2LTI0IDE5OjAyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBGaXhlZCBhIGNvbW1lbnQuCgoyMDEwLTA2LTI0IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIFNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gcjE5MDg0LgoKMjAxMC0wNi0yNCAxNzo0NyAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA2LTI0IDEyOjMwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgInRlc3QgLWUiIGlzbid0IHBvcnRhYmxlOyB1c2UgInRlc3QgLXgiIGluc3RlYWQgZm9yIHRoZSBQZXJsCiAgIHN5c3RlbSgpCiAgIGNoZWNrCgoyMDEwLTA2LTIzIDExOjE0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB2YWx1ZSBvZiBJUC1NSUI6OmlwdjZJbnRlcmZhY2VGb3J3YXJkaW5nIG9uCiAgIExpbnV4CiAgIAogICBUaGUgdmFsdWUgd2FzIDAgKG5vdCBmb3J3YXJkaW5nKSBvciAxIChmb3J3YXJkaW5nKSwgc2hvdWxkIGJlIDIKICAgYW5kIDEKICAgaW5zdGVhZCAtIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LmZvcndhcmRpbmdfdjYgaXMgYm9vbGVhbiwgbm90CiAgIFRydXRoVmFsdWUuCgoyMDEwLTA2LTIyIDIzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBzdXBwb3J0IGZvciBjZXJ0U2VjTmFtZSBtYXBwaW5nIGZyb20gYSBsb2NhbCBjZXJ0IGZpbGUgbmFtZSBhbmQgYQogICB0ZXN0IGZvciBpdAoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVuYXRpb24gdXBkYXRlIHRvIGNsZWFuIHVwIGFuZCBpbmNsdWRlIFRMUyBwYXJhbWV0ZXJzCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGZvciBwYXNzaW5nIGlkZW50aXRpZXMgYW5kIGZ1bGwgd29ya2luZyB2ZXJzaW9uCgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1MzMDB0bHNwZXJsLnBsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMHRsc3RjcHBlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFkdGxzcGVybC50OgoKICAgcGVybCBUTFMvRFRMUyB0ZXN0cwoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZmlyc3QgcHRhY2ggb24gU05NUC9UTFMgY3JlYXRpbmcgYSBuZXcgc2Vzc2lvbiBmdW5jdGlvbgoKMjAxMC0wNi0yMiAyMjo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXJzdCB3b3JraW5nIHN1cHBvcnQgZm9yIGEgZGVsYXllZCBjbG9zZSgpIHRvIGF0dGVtcHQgdG8gc2VuZGluZwogICBvdXRzdGFuZGluZyBwYWNrZXRzIGluIHRoZSBxdWV1ZTsgdGhpcyBpcyByZXF1aXJlZCBmb3Igc25tcHRyYXAKICAgdG8gd29yayBhdCBhbGwgd2hlbiBzZW5kaW5nIHRyYXBzIChub3QgaW5mb3Jtcykgb3ZlciBEVExTCgoyMDEwLTA2LTIyIDE5OjAzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0cyBUMDU5IGFuZCBUMDY1IGRvIG5vdyBwYXNzLgoKMjAxMC0wNi0yMiAxOTowMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgVGhlIHdpZHRoIGFyZ3VtZW50IGZvciAlLipkIG11c3QgaGF2ZSB0eXBlIGludCwgbm90IHNpemVfdC4gVGhpcwogICBidWcgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE0LgoKMjAxMC0wNi0yMiAxODo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIENIQU5HRVM6IE1pbkdXOiBydW5fc2hlbGxfY29tbWFuZCgpIHdpdGggZWl0aGVyIGlucHV0IG9yIG91dHB1dAogICAoYnV0IG5vdCBib3RoKSBkb2VzIG5vdyB3b3JrLgogICBUaGlzIGRpZCBub3Qgd29yayB1bnRpbCBub3cgYmVjYXVzZSBvbiBNaW5HVyBta3N0ZW1wKCkgZ2VuZXJhdGVzCiAgIGEgTWluR1ctc3R5bGUgcGF0aCAoL3RtcC8uLi4pIHdoaWxlIHN5c3RlbSgpIGludm9rZXMgY21kLmV4ZSBhbmQKICAgaGVuY2UgZXhwZWN0cyBhIFdpbmRvd3Mtc3R5bGUgcGF0aCAoQzpcLi4uKS4KCjIwMTAtMDYtMjIgMTc6MzkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBBbHNvIHJlcG9ydCB0aGUgcG9ydCBzcGVjaWZpY2F0aW9uIGlmIFsgJFNOTVBfVkVSQk9TRSAtZ3QgMCBdLgoKMjAxMC0wNi0yMiAxNzozOCAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIFJlcGxhY2VkIGFuIGV4cGxpY2l0IHRlc3QgZm9yIE1pbkdXIGJ5IGEgdGVzdCBvbiBIQVZFX1NJR0hVUC4KCjIwMTAtMDYtMjIgMTc6MzYgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciBTSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM1ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgUmVwb3J0IHdoaWNoIHRlc3RzIGZhaWxlZCwgaWYgYW55LgoKMjAxMC0wNi0yMiAwODozNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXhlZCBhbiBlcnJvciBpbiBhIGNvbW1lbnQgYmxvY2suCgoyMDEwLTA2LTIxIDE5OjI2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgUmVhcnJhbmdlZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyB0ZXN0IHN1Y2ggdGhhdCBpdCBpcyBubwogICBsb25nZXIgbmVjZXNzYXJ5CiAgIHRvIGludm9rZSBzaW1wbGVfZXZhbF90b29scy5zaCB3aGVuIHRoaXMgc2NyaXB0IGlzIGludm9rZWQgYXMgYQogICB0cmFwIGhhbmRsZXIKICAgYnkgc25tcHRyYXBkLgoKMjAxMC0wNi0yMSAwODowMSAgZHRzMTIKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEVuc3VyZSB0aGF0IGZkc2V0IHN0cnVjdHVyZSBpcyByZXNpemVkIHN1ZmZpY2llbnRseQogICB0byBhY2NvbW9kYXRlIHRoZSBzcGVjaWZpZWQgc29ja2V0IElELgogICBQcm9ibGVtIHJlcG9ydGVkIGJ5IFNoaXlhbGVpLgoKMjAxMC0wNi0yMCAxOTozMiAgZHRzMTIKCiAgICogIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL3BrY3MuYywgICAKICAgICAgc25tcGxpYi9zbnByaW50Zi5jOgoKICAgQXZvaWQgZHVwbGljYXRlICh1bnVzZWQpIHN5bWJvbHMuCgoyMDEwLTA2LTIwIDE5OjMxICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlOgoKICAgQ29tbWVudGVkIG91dCBkZWJ1ZyBjb2RlLgoKMjAxMC0wNi0yMCAxOTozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgUmVzdG9yZWQgc3VtbWFyeSBzdWNjZXNzL2ZhaWx1cmUgY291bnQgcmVwb3J0aW5nLgogICBBbHNvLCBtb3ZlZCBraWxsLmV4ZSB0ZXN0IGJhY2sgdG8gUlVOVEVTVFMuCgoyMDEwLTA2LTIwIDE5OjI5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogYWRkIHRoZSB0ZXN0IG5hbWUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlCiAgICJpbnZva2VkIi4KCjIwMTAtMDYtMjAgMTk6MjcgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogc2tpcCB0aGUgdGVzdHMgdGhhdCByZXF1aXJlIFNJR0hVUCBzaW5jZQogICBNaW5HVyBkb2VzIG5vdCBzdXBwb3J0IFNJR0hVUC4KCjIwMTAtMDYtMjAgMTU6MTkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgQWRkZWQgYSBjb25maWd1cmUgdGVzdCB0aGF0IGRldGVjdHMgd2hldGhlciBvciBub3QgUGVybCdzCiAgIHN5c3RlbSgpIGZ1bmN0aW9uCiAgIGludm9rZXMgYSBQT1NJWCBzaGVsbC4gIm1ha2UgdGVzdCIgZG9lcyBub3cgZmFsbCBiYWNrIHRvIFJVTlRFU1RTCiAgIGlmIG5vdC4KCjIwMTAtMDYtMjAgMTU6MTYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gb24gTWluR1cgLS0gYWRkZWQgI2luY2x1ZGUgPG5ldC1zbm1wL3R5cGVzLmg+IHdoZXJlCiAgIG5lY2Vzc2FyeS4KICAgTm90ZTogYWx0aG91Z2ggPG5ldC1zbm1wL3R5cGVzLmg+IGlzIGluY2x1ZGVkIGluZGlyZWN0bHkgZnJvbSB0aGUKICAgKiAgICAgKnRyYW5zcG9ydC5oICAgIGhlYWRlciBmaWxlcywgdGhlc2UgI2luY2x1ZGUgc3RhdGVtZW50cyBhcmUKICAgICAgbmVjZXNzYXJ5IGJlY2F1c2Ugb2YgICAgYSBwZXNreSAgICBjaXJjdWxhciBkZXBlbmRlbmNlIGJldHdlZW4KICAgICAgPG5ldC1zbm1wL3R5cGVzLmg+IGFuZCAgICA8bmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oPi4gCiAgICAgIDIwMTAtMDYtMjAgMTU6MTIgIGJ2YXNzY2hlCgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBDSEFOR0VTOiBNaW5HVzogcmVmdXNlIHRvIHJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0cyBpZiBraWxsLmV4ZQogICBjYW5ub3QgYmUgZm91bmQuCgoyMDEwLTA2LTIwIDE1OjExICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgU2hvcnRlbmVkIHRoZSBzcmNkaXIgcGF0aCBieSBtYWtpbmcgc3VyZSB0aGF0IGl0IGRvZXMgbm90IGNvbnRhaW4KICAgLy4uCgoyMDEwLTA2LTE5IDE4OjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIHJ1bm5pbmcgUlVORlVMTFRFU1RTIHdpdGggVGVzdDo6SGFybmVzcyBpbgogICBhbm90aGVyIGRpcmVjdG9yeSB0aGFuIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBjb21wbGV0ZSByZXdyaXRlIG9mIHBhcmFtcyB0byB1c2UgdGFibGVfZGF0YXNldCBpbnN0ZWFkIG9mCiAgIGNyZWF0ZS1kYXRhc2V0CgoyMDEwLTA2LTE5IDE2OjQxICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVzZSB0ZXh0IGZvciBoYXNoIHR5cGUgaW4gcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0xOSAxNjo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBtaXNzaW5nIHNwZWNpZmllciBpbiBkZWJ1ZwoKMjAxMC0wNi0xOSAxNjozOSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVzZSBkZWZpbmUgaW5zdGVhZCBvZiBjb25zdGFudDsgZml4IGNoZWNrIGZvciByb3dzIHRvIHNhdmUKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgcmVtb3ZlL2ZpbmQgZnVuY3Rpb24gZm9yIG1hcHMvYWRkcnMvcGFyYW1zOyByZW5hbWUgcGFyYW1zCiAgIHRhZy0+bmFtZTsKICAgZGVzdHJveSAtPiBmcmVlOyBncm91cCByZWNlbnQgdHJ1c3QgZnVuY3Rpb25zIHRvZ2V0aGVyIGluIHNyYzsKICAgZG9uJ3Qgc3RvcmUKICAgcGFyYW1zIGZwIGFzIGJpbmFyeTsgaGFuZCB0ZXh0IGFyZ3MgZm9yIGhhc2ggdHlwZSAoZS5nIC0tc2hhMSkKCjIwMTAtMDYtMTggMTU6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBDSEFOR0VTOiBDeWd3aW46IGNvcnJlY3RlZCBlcnJvciBoYW5kbGluZyBpbiBtaWJJSS9hdC4KCjIwMTAtMDYtMTggMDc6MjMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNi0xOCAwMTo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgRG8gbm90IGRlZmluZSByZXQgdHdpY2Ugd2hlbiBORVRTTk1QX1VTRV9JTlRFUk5BTF9DUllQVE8gaXMgc2V0LgoKMjAxMC0wNi0xOCAwMTozOSAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIENvcnJlY3RlZCB0eXBvLgoKMjAxMC0wNi0xOCAwMDozMSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIGJldHRlciBORVdTIGFuZCBDSEFOR0VTIGZpbGVzCgoyMDEwLTA2LTE3IDIwOjM5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTE3IDE4OjU5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUgLT4gVjUuNi5wcmUxCgoyMDEwLTA2LTE3IDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMTcgMTg6NTkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6NTUgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMTg6MzkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgcmUtZW5hYmxlIHNvbWUgY29tbWFuZHMKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIGZvcmdvdCBtaXNzaW5nIHF1b3RlcyBpbiBTRVQgb3V0cHV0CgoyMDEwLTA2LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgdGxzIHRlc3RpbmcgY2xlYW51cAoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZml4ZXMgZm9yIGFkZHJlc3MgcHJpbnRpbmc7IG1vcmUgdG8gY29tZQoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vc3RseSBwcm9wZXJseSBzZXQgcmVtb3RlL2xvY2FsIHRyYW5zcG9ydCBwYXJhbWV0ZXJzCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNhZ2VudHRyYXB0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzFkdGxzdWRwYWdlbnR0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZToKCiAgIHRlc3RzIGZvciBhZ2VudHMgc2VuZGluZyBvZiB0cmFwcyBvdmVyIChEKVRMUwoKMjAxMC0wNi0xNyAxNzo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBtb3ZlIGV4cG9ydCBzdGF0ZW1lbnRzIHRvIHRoZSBzdXBwb3J0IGZpbGUgZm9yIHNpbXBsaWNpdHkKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSB0bHMgYm9vdHN0cmFwcGluZyB0byBwb3N0X3ByZW1pYiBzbyBvdGhlciBjb25maWcgdG9rZW5zIGNhbgogICB1c2UgdGhlIGNlcnQgbG9hZGluZyByZXN1bHRzCgoyMDEwLTA2LTE3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDRzbm1wX2VudW1fY2xpYi5jOgoKICAgYWRkZWQgc25tcF9lbnVtIHRlc3RzIHB1bGxlZCBmcm9tIHRoZSBtYWluKCkgdGVzdCBhdCB0aGUgYm90dG9tCiAgIG9mIHRoZSBvcmlnaW5hbCAuYyBmaWxlCgoyMDEwLTA2LTE3IDE2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEVsaW1pbmF0ZSAiZGlmZmVyIGluIHNpZ25lZG5lc3MiIHdhcm5pbmcKCjIwMTAtMDYtMTcgMDA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgcmV2ZXJ0IFVEUCBjaGFuZ2VzIGZyb20gcjE4OTg0IHNpbmNlIGl0IGJyb2tlIHRoZSBVRFAgdHJhbnNwb3J0OwogICB0aGUgc3RydWN0IHByb2JhYmx5IG5lZWRzIHRvIG1hdGNoIGFub3RoZXIgc3RydWN0IHNvbWV3aGVyZSBlbHNlCgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGEgbmV3IEtFWVdPUkQgb3V0cHV0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBjb25maWdfYW5kX29wZW4gZm9yIG9wZW5pbmcgdGhlIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBleHRyYSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgZXhwbGljaXRseSBkZWNsYXJlIHRydXN0IGNlcnRpZmljYXRlcyB0byB0cmFuc3BvcnQKCjIwMTAtMDYtMTYgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjbGVhbnVwIHNvbWUgbG9zdCBtZW1vcnkgb24gY2xvc2luZwoKMjAxMC0wNi0xNiAyMTo1NiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0eXBvcwoKMjAxMC0wNi0xNiAyMTozNCAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiB3YXJuaW5ncyBmcm9tCiAgIGFnZW50IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAyMDoxNiAgZHRzMTIKCiAgICogIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3RleHRfdXRpbHMuYywgc25tcGxpYi92YWNtLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgbGlicmFyeSBjb2RlIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTk6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG9sZGVyIG5vLWxvbmdlci1uZWVkZWQtZHVwbGljYXRlLWNvbmZpZyBlbnRyaWVzCgoyMDEwLTA2LTE2IDE5OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeCBwcm9jZXNzaW5nIG9mIHZpZXcgbWFza3MgKG1pc3BsYWNlZCBwYXJlbnRoZXNlcykKCjIwMTAtMDYtMTYgMTg6NDUgIGR0czEyCgogICAqICBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmM6CgogICBFbGltaW5hdGUgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgZnJvbSBhcHAgY29kZQogICBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE3OjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzOgoKICAgY2hlY2sgZm9yIGluZm9ybXMgc2VudCBvdmVyIHRscyB0cmFuc3BvcnRzCgoyMDEwLTA2LTE2IDE3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgb3RoZXIgdmFsdXNlIGZyb20gcGFyZW50IHRsc2Jhc2UgZGF0YQoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlOgoKICAgYWRkZWQgYmFzaWMgdHJhcCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgdGVzdHMKCjIwMTAtMDYtMTYgMTc6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIHRlbXAgZmlsZSB0b3VjaGVzCgoyMDEwLTA2LTE2IDE3OjIwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkZWQgYSBuZXcgZnVuY3Rpb24gYW5kIHRyYW5zcG9ydCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSBmX29wZW4KICAgY2FsbCBoYXMgYmVlbiBjYWxsZWQgeWV0CgoyMDEwLTA2LTE2IDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVudXNlZCB2YXIgd2FybmluZyBjbGVhbnVwCgoyMDEwLTA2LTE2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZGVkIHRydXN0Q2VydCBjb25maWd1cmF0aW9uIHRva2VuCgoyMDEwLTA2LTE2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBtaW5vciB0d2Vha3MgZm9yIHRlc3RpbmcgY2xhcml0eQoKMjAxMC0wNi0xNiAxNzoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZToKCiAgIG1vdmVkIGNvbXBsZXggKEQpVExTIHRvIGEgc2VwYXJhdGUgc2VjdGlvbiBhbmQgbWFkZSB0aGUgdHJhbnNwb3J0CiAgIHRlc3RzIG9ubHkgdGVzdCBtaW5pbWFsIHN1cHBvcnQKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGQgbWVjaGFuaXNtcyBmb3Igc3BlY2lmeWluZyBhbmQgZXhwZWN0aW5nIHRoZSBob3N0bmFtZSBvZiB0aGUKICAgZmFyIHNpZGUKCjIwMTAtMDYtMTYgMTc6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0ZXN0cyBmb3IgdmVyaWZ5aW5nIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGVjayBmYWlsdXJlcwoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RscywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgdGVzdGluZyBmb3IgY2hlY2tpbmcgY2xpZW50IHNpZGUgdmVyaWZpY2F0aW9uIG9mIHNlcnZlcgogICBjZXJ0aWZpY2F0ZXMKCjIwMTAtMDYtMTYgMTc6MTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgc2V0dXAgZm9yIGEgaG9zdG5hbWUgY29uZmlnIG9wdGlvbgoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hlY2sgdG8gbWFrZSBzdWVyIHNzbCBwb2ludGVyIGhhcyBiZWVuIGNyZWF0ZWQgdmlhIGZfb3BlbiBjYWxsCgoyMDEwLTA2LTE2IDE1OjAyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuaCwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERlY2xhcmUgJ3NodXRkb3duX3BlcmwnIHByb3Blcmx5LgoKMjAxMC0wNi0xNiAxNDozNyAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmM6CgogICBFbGltaW5hdGUgInNpZ25lZCBhbmQgdW5zaWduZWQgdHlwZSBpbiBjb25kaXRpb25hbCBleHByZXNzaW9uIgogICB3YXJuaW5ncyBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDE0OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBFbGltaW5hdGUgInVudXNlZCB2YXJpYWJsZSIgd2FybmluZwoKMjAxMC0wNi0xNiAxNDoyMiAgZHRzMTIKCiAgICogIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIEVsaW1pbmF0ZSB2YXJpb3VzICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xNiAxMzoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYXBwcy9zbm1wdmFjbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBFbGltaW5hdGUgKG1vc3QpIHNpZ25lZC12cy11bnNpZ25lZCB3YXJuaW5ncyBmcm9tIG51bWVyaWMgc2NhbmYKICAgcHJvY2Vzc2luZyBbLXBlZGFudGljXQoKMjAxMC0wNi0xNiAwMzoyOCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHRoZSBncmVhdCB1bi1uYW1lZCBjb250YWluZXIgaHVudAoKMjAxMC0wNi0xNiAwMzoyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgc2hhcmUgY2FjaGUgYmV0d2VlbiB0YWJsZSBhbmQgY291bnQgc2NhbGFyOyB3aGVuIHJlYWRpbmcgY29uZmlnLAogICBhZGQgdG8KICAgbGlicmFyeSBjb250YWluZXJzIGZvciBhY3RpdmUgcm93cywgdGFibGUgY29udGFpbmVycyBmb3IgaW5hY3RpdmUKICAgcm93czsKICAgdXNlciBjZXJ0X3V0aWwgYXBpcyBpbnN0ZWFkIG9mIGRpcmVjdCBjb250YWluZXIgbWFuaXB1bGF0aW9uOwogICB3aGVuCiAgIHNhdmluZyBpbmFjdGl2ZSBtYXAgcm93cywgc2tpcCBhbGwgYnV0IG5vblZvbGF0aWxlCgoyMDEwLTA2LTE2IDAzOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBkZWJ1ZyB0b2tlbiB0eXBvCgoyMDEwLTA2LTE2IDAzOjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGFwaSBmb3IgYWRkaW5nIGVudHJpZXMgdG8gdGx0c20gYWRkciwgcGFyYW1zIGFuZCBjZXJ0IG1hcAogICBjb250YWluZXJzOwogICByZWdpc3RlciBzZSBzbGlzdCBwYWlyIGVhcmxpZXIgc28gdGhleSBhcmUgYXZhaWxhYmxlIGR1cmluZwogICBjb25maWcgcGFyc2luZzsKICAgbWFrZSBzdXJlIGNvbmZpZyBzdHJpbmdzIGFyZSBudWxsIHRlcm1pbmF0ZWQKCjIwMTAtMDYtMTUgMjE6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzOgogICAnc3RydWN0IG5sbXNnaGRyIGRlZmluZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0JyBhbmQKICAgJ2Z1bmN0aW9uIF9sb2FkX3Y2IGRlY2xhcmVkIGJ1dCBuZXZlciBkZWZpbmVkJwoKMjAxMC0wNi0xNSAyMTozMCAgZHRzMTIKCiAgICogIGFnZW50L2tlcm5lbC5jLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvcGtjcy5jLCBzbm1wbGliL3NucHJpbnRmLmM6CgogICBFbGltaW5hdGUgImVtcHR5IHRyYW5zbGF0aW9uIHVuaXQiIHdhcm5pbmdzIFstcGVkYW50aWNdCgoyMDEwLTA2LTE1IDA3OjA3ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDNjb3B5X253b3JkX2NsaWIuYzoKCiAgIEFkZCB0ZXN0IG9mIGNvcHlfbndvcmQKCjIwMTAtMDYtMTQgMjE6MzIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBFbGltaW5hdGUgIm92ZXJmbG93IGluIGltcGxpY2l0IGNvbnN0YW50IGNvbnZlcnNpb24iIHdhcm5pbmdzCiAgIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE0IDE1OjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRWxpbWluYXRlICJzdHJpbmcgbGVuZ3RoIGdyZWF0ZXIgdGhhbiA1MDkiIHdhcm5pbmdzIFstcGVkYW50aWNdCgoyMDEwLTA2LTE0IDE1OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIEVsaW1pbmF0ZSAiaW5pdGlhbGl6ZXIgZWxlbWVudCBpcyBub3QgY29tcHV0YWJsZSIgd2FybmluZ3MKICAgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMDU6MjcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgY291bnQgaGFuZGxlcnMgdG8gY291bnQgbm9uLWFjdGl2ZSByb3dzIHRvbwoKMjAxMC0wNi0xNCAwNToxMiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIG9ubHkgdHdlYWsgc3RvcmFnZVR5cGUgZm9yIGFjdGl2ZSByb3dzOyByZXNldCBlbnRyeSBmbGFncyB3aGVuCiAgIHJlbW92aW5nIGZyb20KICAgY2VydF91dGlsIG1hcHM7IHdoZW4gY3JlYXRlaW5nIHJvd3MgZnJvbSBjZXJ0X3V0aWwgbWFwcywgc2V0CiAgIHN0cmFnZXRUeXBlIHRvCiAgIHZvbGF0aWxlIGlmIG5vblZvbGF0aWxlIGZsYWcgbm90IHNldDsgZG9udCBmcmVlIGNhY2hlIGluCiAgIGNhY2hlX2xvYWQgb24gZXJyCgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIG1vdmUgdGxzdG1BZGRyIHRhYmxlIGNvbmZpZyBwYXJzaW5nIHRvIGNlcnRfdXRpbDsgYWRkIGNhY2hlIHRvCiAgIG1lcmdlIGNlcnRfdXRpbAogICBhZGRycyAoYWN0aXZlKSBhbmQgbm9uLWFjdGl2ZSByb3dzOwoKMjAxMC0wNi0xNCAwNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBub25Wb2xhdGlsZSBmbGFnIHRvIHRsc3RtQWRkciB0YWJsZTsgc2V0IGNvbnRhaW5lciBuYW1lOyBza2lwCiAgICcweCcgaW4gZnAKCjIwMTAtMDYtMTQgMDU6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoYW5nZSBMT0dfRVJSIHRvIExPR19JTkZPIGZvciBub24tZXJyb3IgbG9nIG1zZwoKMjAxMC0wNi0xMyAyMTowMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20KICAgTWZELWJhc2VkIE1JQiBtb2R1bGUgY29kZSwgYW5kIE1mRCB0ZW1wbGF0ZSBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMiAyMTozMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0Q29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSAobm9uLU1mRCkKICAgTUlCIG1vZHVsZSBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMiAxMDoyNiAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIGZyb20gbGlicmFyeSwKICAgYXBwcyBhbmQgYWdlbnQgZnJhbWV3b3JrK2hlbHBlcnMgY29kZS4gWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTAgMjA6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBsb29rdXAgY2VydCBrZXlzIGZvciB0bHMgZG9tYWluczsgdXNlIFNFQ19NT0RFTCBkZWZpbmUgaW5zdGVhZCBvZgogICBoYXJkY29kZWQKICAgY29uc3RhbnQ7IGFkZCBTRUNfTU9ERUxfVFNNIHRvIGFsbG93ZWQgc2VjIG1vZGVscyBmb3IgbXBNb2RlbAogICBTTk1QX1ZFUlNJT05fMwoKMjAxMC0wNi0xMCAyMDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGRlZmF1bHQgdG8gcmVhZE9ubHkvYWN0aXZlIGZvciBiYWQgY29uZmlnCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhZGQgZGVidWc7IHN3aXRjaCB0byBTRUNfTU9ERUxfVFNNIGFuZCB3YXJuIGlmIG90aGVyIHNlY21vZGUgc2V0LAogICBpbnN0ZWFkCiAgIG9mIHNpbXBseSBsb2dnaW5nIHRoYXQgaXQgd29uJ3Qgd29yawoKMjAxMC0wNi0xMCAxOTo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2hlY2sgcHRycyBiZWZvcmUgZGVyZWZlcmVuY2UKCjIwMTAtMDYtMTAgMTk6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIHNubXBUbHN0bUFkZHJUYWJsZSBkYXRhIG1hbmFnZW1lbnQgdG8gY2VydF91dGlsOyBpbXBsZW1lbnQKICAgVEFSR0VUX0FERFIKICAgYW5kIFRBUkdFVF9QQVJBTVMgbG9va3VwIGluIGNlcnQgQVBJCgoyMDEwLTA2LTEwIDE5OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXBkYXRlIHNlYyBtb2RlbCBkZWZpbmUgbWlzc2VkIGluIGVhcmxpZXIgY2hlY2tpbgoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvbmZpZyB0cmFwc2VzcyB0cmFuc3BvcnRzIG9uIGNyZWF0aW9uOyBzaW1wbGlmeSBpZmRlZnMgZm9yCiAgIERJU0FCTEVfU05NUFYxCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBrc20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYXV0byBzd2l0Y2ggdG8gdjMgZm9yIChkKXRscyBzZXNzaW9ucyBpbnN0ZWFkIG9mIGxvZ2dpbmcgdGhhdAogICBvdGhlcnMgd29udAogICB3b3JrOyBkZWZpbmUgVFNNIHNlYyBtb2RlbCB3aXRoIG90aGVyIHNlYyBtb2RlbHM7IGNvbnNpc3RlbnRseQogICB1c2UKICAgU05NUF9TRUNfTU9ERUxfKiBpbiB0aGUgY29kZSwgdXNpbmcgI2RlZmluZXMgZm9yIGJhY2t3YXJkcwogICBjb21wYXRpYmlsaXR5CiAgIHcvKl9TRUNVUklUWV9NT0RFTAoKMjAxMC0wNi0xMCAxOTo0NiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNlcnRUb1RTTjogbW92ZSBtaWIgcmVsYXRlZCBwZXJzaXN0ZW5jZSBiYWNrIGludG8gbWliIG1vZHVsZTsKICAgY2VydF91dGlsOiBhZGQgdGxzdG1QYXJhbXMgcGVyc2lzdGVuY2U7IHVzZSBzbGlzdCBmb3IgY2VydCBtYXAKICAgdHlwZSBuYW1lCiAgIG1hcHBpbmc7CgoyMDEwLTA2LTEwIDE5OjQ1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nIChjb25zdCkKCjIwMTAtMDYtMTAgMDQ6NTggIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIEFkZCBtaXNzaW5nIGluZGVudGF0aW9uIG9mIGEgZG8td2hpbGUgbG9vcCB0byBtYWtlIHRoZSBjb2RlCiAgIHJlYWRhYmxlLgoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGNvbW1lbnQgb3V0IGtleVVzYWdlIHNvIHByb3BlciBzZWxmLXNpZ25lZCBjZXJ0cyBhcmUgZ2VuZXJhdGVkCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNvbGlkaWZ5IGNlcnRpZmljYXRlIGFjY2VwdGFuY2UgZm9yIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNi0wOSAyMjo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBhcnJheSB0eXBvCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbG9nIG9wZW5zc2wgZXJyb3JzIG9uIGFjY2VwdCBmYWlsdXJlCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZWdpc3RlciBkZWZhdWx0IHBvcnRzIGZvciB0bHMvZHRscwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGRvIHByb3BlciBTVE9SRSBsb2FkaW5nIG9mIHRydXN0ZWQgY2VydGlmaWNhdGVzIHJhdGhlciB0aGFuIGZpbGUKICAgYmFzZWQgbG9hZGluZwoKMjAxMC0wNi0wOSAyMjo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkZWQgdHdvIG5ldyBBUElzOiBuZXRzbm1wX2NlcnRfdHJ1c3QgYW5kIG5ldHNubXBfY2VydF90cnVzdF9jYQoKMjAxMC0wNi0wOSAyMjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHN0cmFpZ2h0ICd0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFkZGVkIHN0cmFpZ2h0ICdkdGxzJyB0cmFuc3BvcnQgbmFtZQoKMjAxMC0wNi0wOCAyMTowNSAgbWFnZnIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGFnZW50X3JlYWRfY29uZmlnLmggaW4gNS42IGFzIHdlbGwuIEl0IGRpc2FwcGVhcmVkIGluCiAgIHIxODg0My4KCjIwMTAtMDYtMDggMDk6MjUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6CgogICBSZW1vdmUgKG9yIGFjdGl2YXRlKSB1bnVzZWQgdmFyaWFibGVzLgogICBGaXggbWlzbmFtZWQgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDEwLTA2LTA4IDA3OjExICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIEFQSSBjaGFuZ2VzIGZvciBwcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sKICAgbW9kdWxlLgogICAoT21pdHRlZCBmcm9tIHJldmlzaW9uIDE4OTMyIGNoZWNraW4pCgoyMDEwLTA2LTA4IDA0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgbWFrZWZpbGUgZm9yIG1vdmVkIGhlbHBlciBoZWFkZXJzCgoyMDEwLTA2LTA3IDIwOjE4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBSZXZlcnRpbmcgcmV2LiAxNzYxNiwgdGhlIG5lY2Vzc2FyeSBjaGVjayBpcyBhbHJlYWR5IGluIHJldi4KICAgMTc0MTUuCgoyMDEwLTA2LTA2IDAzOjQ1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEluIGNhc2UgZXhlY19wcmVmaXggaXMgdW5zZXQgdGhlbiBzZXQgaXQgdG8KICAgJyR7cHJlZml4fScgaW4gb3JkZXIgdG8gcGljayB1cCBvdmVycmlkZXMgb2YgJHByZWZpeCBpbiBtYWtlCiAgIGluc3RhbGwuCgoyMDEwLTA2LTA0IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZG8gYSBiZXR0ZXIgam9iIG9mIHZlcmlmeWluZyBmaW5nZXJwcmludHMgb2YgcmVtb3RlIHNlcnZlcnMKICAgcHVsbGluZyBmaW5nZXJwcmludHMgZnJvbSBhIG51bWJlciBvZiBwb3NzaWJsZSBwbGFjZXMKCjIwMTAtMDYtMDQgMDQ6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBnbyBhaGVhZCBhbmQgbG9nIG91dHB1dCBmaWxlIGZvciBlYXNpZXIgZGVidWdnaW5nIGluIGVycm9ycwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdHlwbwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgcmVtb3ZlIGNvbW1lbnQgYWJvdXQgcmFuZG9tIGJlaW5nIGluYWRlcXVhdGU7IHdlJ3JlIGRvaW5nIHRoZQogICBiZXN0IHdlIGNhbiBiYXNlZCBvbiB3aGF0IHdlIGhhdmUKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdXNlIGFub3RoZXIgdXNlciBmb3IgdGVzdGluZyBzbm1wYXBwIGRlZmF1bHQgY2VydGlmaWNhdGUKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcnVuIGEgZGVmYXVsdCB0ZXN0IHdpdGhvdXQgYSBsb2NhbCBrZXkgdG8gZW5zdXJlIHRoZSBzbm1wYXBwIHR5cGUKICAgaXMgcGlja2VkIHVwCgoyMDEwLTA2LTA0IDA0OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGEgc3BlY2lhbCBjYXNlIGZvciB0aGUgbG9jYWwgaWRlbnRpdHkgYW5kIHB1bGwgaXQgZnJvbSBhCiAgIGZpbGVuYW1lIG9mIHRoZSBpbml0X3NubXAoKSByZWdpc3RlcmVkIHR5cGUgbmFtZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGRvYyB1cGRhdGUKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwNXVuaXgudDoKCiAgIHVuaXggc29ja2V0IHRlc3QKCjIwMTAtMDYtMDQgMDQ6MDMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDN1ZHA2LnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwNHRjcDYudDoKCiAgIGlwdjYgdGVzdHMKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBtZW50aW9uIHRlc3QgbmFtZSBpcyBJUHY0CgoyMDEwLTA2LTA0IDA0OjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgY2hlY2sgdGhhdCB0cmFuc3BvcnQgd2FzIGNvbmZpZ3VyZWQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBhZGQgc3VwcG9ydCBmb3IgbmV0LXNubXAtY29uZmlnLmggY2hlY2tzCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9OZXRTTk1QVGVzdFRyYW5zcG9ydC5wbSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAxdWRwLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMnRjcC50OgoKICAgc29tZSBiYXNpYyB0cmFuc3BvcnQgY2hlY2tpbmcgZm9yIHBlcmw6IHVkcCBhbmQgdGNwCgoyMDEwLTA2LTA0IDA0OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QwMDFiYXNpYy50OgoKICAgYmFzaWMgdGVzdHMgZm9yIHBlcmwKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvTmV0U05NUFRlc3QucG06CgogICBpbmZyYXN0cnVjdHVyZSBtb2R1bGUgZm9yIHRlc3RpbmcgcGVybCBzdXBwb3J0CgoyMDEwLTA2LTAzIDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIFBvaW50IExJQntDVVJSRU5ULEFHRSxSRVZJU0lPTn0gZG9jdW1lbnRhdGlvbiB0byB0aGUgY29ycmVjdAogICBmaWxlLgogICBXYXJuIGFib3V0ICdtYWtlZGVwZW5kJyBwaWNraW5nIHVwIHRlc3RpbmcgbW9kdWxlIGNvZGUuCiAgIEVtcGhhc2lzIHVwZGF0ZSBvZiAnZG93bmxvYWQuaHRtbCcgcGFnZQogICBNZW50aW9uIHVwZGF0ZSBvZiBPZmZpY2lhbCBQYXRjaGVzCiAgIFN1cHByZXNzIGJyb2tlbiBjb21tYW5kcwoKMjAxMC0wNi0wMyAxNToxNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgUHJlbGltaW5hcnkgSEFMX2Jhc2VkIGltcGxlbWVudGF0aW9uIG9mIFVDRCBkaXNrIG1vZHVsZS4KICAgRW5zdXJlcyBjb25zaXN0ZW50IHJlcG9ydGluZyBiZXR3ZWVuIFVDRCBhbmQgSG9zdFJlcyBGU3lzIHVzYWdlCiAgIGFuZCBleHRlbmRzICdza2lwTkZTSW5Ib3N0UmVzb3VyY2VzJyBjb25maWcgdG8gVUNEIGRpc2sgc3RhdHMuCgoyMDEwLTA2LTAzIDE1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYzoKCiAgIEZpeCBicm9rZW4gc2l6ZSBjYWxjdWxhdGlvbnMuCiAgIFN1cHBvcnQgNjQtYml0IHNpemUvdXNhZ2UgdmFsdWVzLgoKMjAxMC0wNi0wMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgLS13aXRoLWNhIGluc3RlYWQgb2YgLS1jYQoKMjAxMC0wNi0wMiAxNDo1MSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgdGhlIG5ldyAtYnJpZWYgb3B0aW9uIGZvciBmaW5nZXJwcmludCBjYXB0dXJpbmcKCjIwMTAtMDYtMDIgMTQ6NDAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCAtLXdpdGgtY2EgaGFuZGxpbmcsIGZpeCBDQSBuZXdjZXJ0cyBib29ra2VlcGluZwoKMjAxMC0wNi0wMiAxMDo1NyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIHBhcnNpbmcgT0lEcwogICBpbiBjb25maWcgZmlsZXMuCgoyMDEwLTA2LTAyIDAwOjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGNoZWNrIHRoYXQgQ0EgY2VydGlmaWNhdGVzIGNyZWF0ZWQgYWZ0ZXIgc25tcGQgc3RhcnRzIGFyZSBzdGlsbAogICB1c2FibGU7IGNoZWNrIGFsbCBvdXRwdXQgZmluZ2VycHJpbnRzIHRvIGVuc3VyZSB0aGV5IHdlcmUKICAgcHJvcGVybHkgY3JlYXRlZAoKMjAxMC0wNi0wMiAwMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZCBtaXNzaW5nIGRpcmVjdG9yeSBhbmQgZmlsZSBzdWZmaXggdG8gY2EgaW52b2NhdGlvbnMKCjIwMTAtMDYtMDIgMDA6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNoZWNrIHRoYXQgY2VydGlmaWNhdGUgb3V0cHV0IGZpbmdlcnByaW50cyB3ZXJlIGZvdW5kCgoyMDEwLTA2LTAyIDAwOjIwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgdHdvIG5ldyBmdW5jdGlvbnMgZm9yIHZhbHVlIGNvbXBhcmlzb24gdGVzdCBvdXRwdXQKCjIwMTAtMDYtMDIgMDA6MTYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgcmVtb3ZlIG5vLWxvbmdlci11c2VkIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRva2VuIHNwZWNpZmllciAod2UKICAgcmVxdWlyZSBhIGNvcHkgb2YgdGhlIGtleSkKCjIwMTAtMDYtMDIgMDA6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgLSBjaGFuZ2VkICdmaW5nZXJwcmludCcgdG9rZW4gdG8gbW9yZSBnZW5lcmljICdpZGVudGl0eScga2V5d29yZAogICAtIGFkZGVkIHRoZSBhYmlsaXR5IGZvciBuZXRzbm1wX2NlcnRfZmluZCB0byB0cnkgbXVsdGlwbGUgdHlwZXMKICAgKEZQICYgZmlsZSkKICAgLSBhbmQgcHJvdmlkZSB0ZXN0IHN1aXRlIHRlc3QgZm9yIGl0LgoKMjAxMC0wNi0wMSAyMDoxMiAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFBlcmwgZXh0ZW5zaW9uIG1vZHVsZXMgY2FuIGxvYWQgdGhlIE5ldC1TTk1QCiAgIERMTHMgd2hpbGUgcnVubmluZyB0aGUgTmV0LVNOTVAgcmVncmVzc2lvbiB0ZXN0cy4KCjIwMTAtMDYtMDEgMTY6NDcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbWFqb3IgdXBkYXRlIGJ1ZyBmaXhlcyBhbmQgZmVhdHVyZXMgLSBpbnRlcmFjdGl2ZSBtb2RlLCBzZXBhcmF0ZQogICBDQSBkaXJzLCBnZW4gY3NyIGZyb20gY2VydCwgZmluZ2VycHJpbnQgZGlzcGxheSAtLWJyaWVmLAogICBlbGltaW5hdGUgc2VkLCBvcGVuc3NsLmNvbmYgb3ZlcndyaXRlIGFuZCB0ZW1wbGF0aW5nCgoyMDEwLTA2LTAxIDE0OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0wNi0wMSAxNDoyNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBJUC1NSUI6OmlwSWZTdGF0c1JlYXNtUmVxZHMgdmFsdWUuCiAgIAogICBKdXN0IGZpeGluZyBhIHN0dXBpZCB0eXBvLgoKMjAxMC0wNS0zMSAxMDo0MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBDSEFOR0VTOiBDeWd3aW46IGVuYWJsZWQgVW5peCB0cmFuc3BvcnQuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODcgZnJvbSB0aGUgVjUuNSBicmFuY2gpLgoKMjAxMC0wNS0zMCAyMjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGVuYWJsZSB0byBydW4gd2l0aCBvbGRlciBQZXJsIChlLmcuIFBlcmwgNS4wMDQwNSBhcyBzaGlwcGVkIHdpdGgKICAgSVJJWAogICA2LjUpCgoyMDEwLTA1LTMwIDIyOjQ5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgcG9saXNoIGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMzAgMjA6MTkgIG1hZ2ZyCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgICAKICAgICAgbmV0LXNubXAtY29uZmlnLmluLCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbiwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBidWlsZGluZzogRG8gbm90IGxpbmsgd2l0aCBsaWJuZXRzbm1waGVscGVycyBhbnkgbW9yZSBhcwogICBpdCBpcyBlbXB0eS4KCjIwMTAtMDUtMzAgMTk6MTggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIGEgdm9pZCBhcmd1bWVudCBmb3IgdGhlIGRhdGEgYXJndW1lbnQgb2YKICAgeGR1bXAuCgoyMDEwLTA1LTMwIDE5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IEJVRzogMjA1MTc0MjogYWRkZWQgbWlzc2luZyBQRVJMX1NZU19JTklUMygpIGNhbGwgKHNlZQogICBhbHNvIG1hbiBwZXJsZW1iZWQpLgoKMjAxMC0wNS0zMCAxOToxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChmcmVlKCkgY2FsbGVkIHdpdGhvdXQgYmVpbmcgZGVjbGFyZWQKICAgZmlyc3QpLgoKMjAxMC0wNS0zMCAxNjo1NiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wbGliOiBEbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBVRFAgdHJhbnNwb3J0IGlzIGluY2x1ZGVkLgoKMjAxMC0wNS0zMCAxMjowMCAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRyYW5zcG9ydHMuIFJlbW92ZQogICB1bm5lY2Vzc2FyeSBpbmNsdWRlcy4KCjIwMTAtMDUtMzAgMDY6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvZHVtbXkuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGxpYm5ldHNubXBoZWxwZXJzIGlzIG5vdCBlbXB0eSBzdWNoIHRoYXQgYnVpbGRpbmcKICAgTmV0LVNOTVAgb24gQUlYIGFuZCBJUklYIGlzIGFnYWluIHBvc3NpYmxlLgoKMjAxMC0wNS0yOSAwOTo1MiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBGb2xsb3ctdXAgZm9yIHIxODkwMjogd29ya3MgYWdhaW4gd2l0aG91dCBUQVA6Okhhcm5lc3MuCgoyMDEwLTA1LTI4IDIzOjIzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBsb25nLWFnbyBicm9rZW4gdmVyYm9zaXR5CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCBtb3JlIHByZXZpb3VzbHkgYnJva2VuIG9wdGlvbiByZW5hbWVzOyBjaGFuZ2UgLWQgdG8KICAgbWFzdGVyLWRpcmVjdG9yeSBhbmQgYWRkIGFzIGEgcmVhbCBhcmd1bWVudAoKMjAxMC0wNS0yOCAyMzowNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAwMXNubXB2MWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNjBzbm1wdjJjYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMHNubXB2M2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMnNubXB2M2dldE1ENV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyM3NubXB2M2dldE1ENURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfc2ltcGxlOgoKICAgbW9yZSBtaXNzaW5nIG9sZHVjZCByZW5hbWVzCgoyMDEwLTA1LTI4IDIyOjU3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X29sZHVjZCwgCiAgICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNHNubXB2MmNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTVzbm1wdjJjZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMXNubXB2M2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjIwc25tcHYzYnVsa2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNHNubXB2M2dldFNIQTFfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjVzbm1wdjNnZXRTSEFERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTZhZ2VudHYyY21pbnRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0Ml9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OGFnZW50YXV0aHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MGNvbTJzZWNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzFzbm1wdjJjdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMnNubXB2M3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTFzb2xhcmlzaG9zdGRpc2tfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNjBzbm1wbmV0c3RhdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfc2ltcGxlOgoKICAgcmVuYW1lZCAnb2xkdWNkJyB0byAnc2ltcGxlJyB0byBwdXQgYSBtb3JlIHBvc2l0aXZlIHNwaW4gb24gdGhlbQoKMjAxMC0wNS0yOCAyMjo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SRUFETUUsIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHRlc3Qgc3VpdGUKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICByZXZlcnQgdW5pbnRlbnRpb25hbmFsbHkgY29tbWl0dGVkIHRlc3QgdGVzdAoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIGZyZWUgdmFyaWFibGVzIGFnYWluCgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgZml4IHdhbGtzIHNvIHRoYXQgbXVsdGlwbGUgd2Fsa3MgdGVybWluYXRlIHByb3Blcmx5CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgcGF0Y2ggdG8gaGFuZGxlIHRlc3Rpbmcgb2YgbG9vcGluZyBvZiBtdWx0aXBsZSB2YXJiaW5kcyBpbiBhIHdhbGsKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBpbml0YWwgcGF0Y2ggdG8gcHJldmVudCBsb29waW5nIHdhbGtzCgoyMDEwLTA1LTI4IDIwOjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgaW1wbGVtZW50IGNlcnQgbG9va3VwIGJ5IGZpbGVuYW1lCgoyMDEwLTA1LTI4IDA3OjAyICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBjb25zdCBkZWNsYXJhdGlvbnMgdG8gdGhlIGRpc2FibGVkIHZlcnNpb25zCiAgIG9mIHRoZSBkZWJ1Z2dpbmcgY29kZSBhcyB3ZWxsLgoKMjAxMC0wNS0yOCAwMjoxMiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGFkZCBwZXJzaXN0ZW5jZTsgY2hlY2sgZm9yIGNvbCBtb2RzIHdoaWxlIHJvdyBhY3RpdmUKCjIwMTAtMDUtMjggMDI6MTEgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgQ0hBTkdFUzogYWdlbnRsaWI6IG5ldyBmdW5jdGlvbnMgdG8gbWFrZSBzdGFzaCBwdHIgYW5kIG5ld3JvdwogICBhdmFpbGFibGUgdG8KICAgdGFibGVfZGF0YXNldCBoYW5kbGVycwogICBub25ld3M6IGZpeCB0eXBvOyB0YWJzIHRvIHNwYWNlczsgdXNlIHNpemVvZiBpbnN0ZWFkIG9mIGNvbnN0YW50CgoyMDEwLTA1LTI3IDE4OjU5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgYnVpbGQgZml4ZXMuCgoyMDEwLTA1LTI3IDE4OjI0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgICJtYWtlIHRlc3QiIHdpdGhvdXQgVEFQOjpIYXJuZXNzICh3YXMgYnJva2VuIGJ5IHIxODgwMikuCgoyMDEwLTA1LTI3IDE1OjE1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL21kNS5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLiBNb3N0IGZpeGVzIGludm9sdmVkIGFkZGluZyB0aGUKICAgImNvbnN0IiBrZXl3b3JkLgoKMjAxMC0wNS0yNyAxMzo1MiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTcyNTc5OiBmaXhlZCBjaGVja2luZyBvZgogICBzbm1wVGFyZ2V0QWRkclJvd1N0YXR1cyBTRVQgcmVxdWVzdHMuCgoyMDEwLTA1LTI3IDEzOjQxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1bjoKCiAgIHJldmVydCBwYXJ0IG9mIDE4ODg1OiB0ZXN0IGZpbGVzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHJ1biBieQogICB0aGVtc2VsdmVzIHRvbwoKMjAxMC0wNS0yNyAxMToxOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IGNvcnJlY3RseSBjYWxjdWxhdGUgaWZYVGFibGUuaWZIQ0luVWNhc3RQa3RzIG9uIDMyLWJpdAogICBMaW51eAogICAKICAgTGludXggZG9lcyBub3QgcHJvdmlkZSBzdGFuZGFsb25lIGNvdW50ZXIgZm9yIGluY29taW5nIHVuaWNhc3QKICAgcGFja2V0cyAoaXVjYXN0KQogICAtIGl0IHByb3ZpZGVzIGNvdW50ZXIgb2YgYWxsIHBhY2tldHMgKGlhbGwpICsgc2VwYXJhdGUgY291bnRlcgogICBmb3IgdGhlIG11bHRpY2FzdAogICBvbmVzIChpbWNhc3QpLiBQcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBvZiBpZlRhYmxlIHJlYWQgdGhlc2UKICAgY291bnRlcnMgYW5kCiAgIGNhbGN1bGF0ZWQgaXVjYXN0ID0gaWFsbCAtIGltY2FzdCAqYmVmb3JlKiB0aGVzZSB2YWx1ZXMgd2VyZQogICBleHBhbmRlZCBpbnRvCiAgIDY0Yml0cy4gVGhpcyBwcm9kdWNlZCBlcnJvcnMgb24gMzJiaXQgc3lzdGVtcyB3aGVuIGlhbGwKICAgb3ZlcmZsb3dlZCB0byB6ZXJvIGFuZAogICBpbWNhc3Qgd2FzIG5vemVybyAtPiBpdWNhc3QgZ290IG5lZ2F0aXZlIGFuZCAnYzY0IDMyIGJpdCBjaGVjawogICBmYWlsZWQnIGVycm9yIGluCiAgIHNubXBkIGxvZy4gTm93IHRoZSBhZ2VudCBleHBhbmRzIHRoZXNlIHZhbHVlcyB0byA2NGJpdHMgZmlyc3QgYW5kCiAgICogICAgICp0aGVuKiBwZXJmb3JtcyAgICB0aGUgY2FsY3VsYXRpb24sIHVzaW5nIGEgbmV3IGZsYWcuIAogICAgICAyMDEwLTA1LTI3IDA4OjE4ICBtYWdmcgoKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL1JVTlRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTW92ZSB0aGUgc2V0dGluZyBvZiBNSUJESVJTIGZyb20gdGhlIHN1cHBvcnQKICAgc2NyaXB0IHRvIHRoZSBkcml2ZXJzIHNpbmNlIGl0IGlzIG5lZWRlZCBmb3IgdGhlIEMgdGVzdHMgYXMgd2VsbC4KCjIwMTAtMDUtMjcgMDg6MDkgIG1hZ2ZyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBVc2Ugb2xkdWNkX3J1biwgbm90IHJ1bl9vbGR1Y2QuIENoYW5nZSBzcmNkaXIKICAgdG8gcmVmZXIgdG8gdGhlIHRvcCBkaXJlY3RvcnkgYW5kIG5vdCB0aGUgdGVzdGluZyBzdWJkaXJlY3RvcnkgYXMKICAgdGhhdCBpcyB3aGF0IGlzIGV4cGVjdGVkIGluIHRoZSB0ZXN0IHNjcmlwdHMuCgoyMDEwLTA1LTI3IDA1OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNyAwNToxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgc25tcGxpYi9rZXl0b29scy5jLCAgIAogICAgICBzbm1wbGliL2xjZF90aW1lLmM6CgogICBtb3JlIGNvbnN0IGNvcnJlY3RuZXNzCgoyMDEwLTA1LTI3IDA0OjE4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHRlc3RzIGZvciBhZ2VudC1ub3Qta25vd24tdXNlci1jZXJ0aWZpY2F0ZXMKCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICByZWZlcmVuY2UgdGhlIGl0bmVybmFsIHN1cHBvcnQgYW5kIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsL09QRU5TU0wtTElDRU5TRSwgc25tcGxpYi9vcGVuc3NsL1JFQURNRToKCiAgIGludGVybmFsIE9wZW5TU0wgc3VwcG9ydCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTkVXUzogbGlibmV0c25tcDogU3VwcG9ydCBmb3IgYSBzdHJlYW0tbGluZSBzdHJpcHBlZCBkb3duIHZlcnNpb24KICAgb2YgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IHVzaW5nIC0td2l0aC1vcGVuc3NsPWludGVybmFsCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zZXRfa2V5LmMsIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCAKICAgICAgICBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgbW9yZSBkZXBlbmRlbmNpZXMgZm9yIGV4dGVybmFsIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDoxNSAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIHNubXBsaWIvb3BlbnNzbCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY29yZS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jZmIxMjguYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQzMl9jb21tb24uaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21kNV9sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tb2Rlcy5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9uY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zZXRfa2V5LmMsIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYS5oLCAKICAgICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYV9sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9zcHIuaCwgc25tcGxpYi9vcGVuc3NsX2Flc19jZmIuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2hhLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGFfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3Nwci5oOgoKICAgbW92ZSBvcGVuc3NsIGNvZGUgaW50byBhIHN1YmRpcmVjdG9yeQoKMjAxMC0wNS0yNyAwNDoxMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2Q6CgogICBmaXggdGVzdGluZyBzbyBpdCB1c2VzIG11bHRpcGxlIHR5cGVzIG9mIGNyeXB0bwoKMjAxMC0wNS0yNyAwNDoxMyAgaGFyZGFrZXIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbml0aW9ucyBhbmQgZmlsZXMgZm9yIGRvaW5nIGludGVybmFsIGNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBpbmNsdWRlIGludGVybmFsIGFlcy9kZXMgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jOgoKICAgbG9jYWxpemUKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jZmIxMjguYywgc25tcGxpYi9vcGVuc3NsX21vZGVzLmg6CgogICBpbml0YWwgY29waWVzIG9mIGNmYjEyOCBtb2RlcyBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jOgoKICAgbG9jYWxpemUKCjIwMTAtMDUtMjcgMDQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9hZXNfY29yZS5jLCBzbm1wbGliL29wZW5zc2xfYWVzX2xvY2FsLmg6CgogICBpbml0aWFsIHZlcnNpb25zIG9mIGFlc19jb3JlLmMgYW5kIGFlc19sb2NsLmgKCjIwMTAtMDUtMjcgMDQ6MTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Flcy5oOgoKICAgaW5pdGlhbCBjb3B5IG9mIGFlcy5oIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jZmIuYzoKCiAgIGluaXRpYWwgY29weSBvZiB0aGUgb3BlbnNzbCBhZXNfY2ZiLmMgZmlsZQoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Rlc19lbmMuYzoKCiAgIGluY2x1ZGUgbG9jYWxpemVkIGNvcGllcyBvZiB0aGUgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIHVzZSBpbnRlcm5hbCBERVMKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9jYmNfZW5jLmM6CgogICBsb2NhbGl6ZWQgY29weSBvZiB0aGUgY2JjX2VuYy5jIGZpbGUgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBkZXMvc3ByLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgYWRkZWQgZGVzX2VuYy5jIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX2Rlcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfc2hhLmg6CgogICBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgaGVhZGVycwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmg6CgogICBpbml0aWFsIGNvcHkgb2Ygb3BlbnNzbCdzIGRlcy5oCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfbmNiY19lbmMuYywgc25tcGxpYi9vcGVuc3NsX3NldF9rZXkuYzoKCiAgIGxvY2FsaXplZCBoZWFkZXIgZmlsZXMKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL29wZW5zc2xfZGVzX2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgaW5pdGFsIGNvcGllcyBvZiBzb21lIG9mIHRoZSBvcGVuc3NsIERFUyBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBmaW5pc2hpbmcgcG9ydGluZyBvZiBpbnRlcm5hbCBhdXRoIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgaW50ZXJuYWwgY3J5cHRvIGZpbGVzIHRvIHRoZSBjaGVjay91c2UgbGlzdAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvbWQzMl9jb21tb24uaCwgc25tcGxpYi9tZDVfbG9jbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQzMl9jb21tb24uaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfbWQ1X2xvY2FsLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGFfbG9jYWwuaCwgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgbG9jYWxpemVkIGZpbGUgbmFtZXMgd2l0aCBvcGVuc3NsIHByZWZpeGVzCgoyMDEwLTA1LTI3IDA0OjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9vcGVuc3NsX21kNS5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDUuYzoKCiAgIGxvY2FsaXplIHRoZSBtZDUgaW1wbGVtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL29wZW5zc2xfc2hhLmgsIHNubXBsaWIvb3BlbnNzbF9zaGExLmMsICAgCiAgICAgIHNubXBsaWIvc2hhX2xvY2wuaDoKCiAgIGNvbXBsZXRlbHkgbG9jYWxpemUgdGhlIG9wZW5zc2wgU0hBIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zaGEuaDoKCiAgIGluaXRpYWwgdmVyaXNvbiBvZiBzaGEuaCBjb3B5CgoyMDEwLTA1LTI3IDA0OjA0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgCiAgICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgYWRkZWQgbG9jYWwgY29waWVzIG9mIHRoZSBvcGVuc3NsIGNyeXB0byBmdW5jdGlvbnMKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIG1ha2UgdXNlIG9mIGludGVybmFsIGNyeXB0byBoYXNoIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowMyAgaGFyZGFrZXIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjb25maWd1cmUgY2hlY2tzIGZvciBpbnRlcm5hbC1jcnlwdG8gc3VwcG9ydAoKMjAxMC0wNS0yNiAyMjoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHByb3Blcmx5IHZlcmlmeSBleHBlY3RlZCBzZXJ2ZXIgY2VydGlmaWNhdGVzIHVuZGVyIERUTFM7IGFkZCBhCiAgIG5ldyBmbGFnIGluIHRsc2Jhc2UgdG8gaW5kaWNhdGUgdmVyaWZpY2F0aW9uIGhhcyBvY2N1cnJlZAoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgY29tcGlsZXIgd2FybmluZyBzcXVhc2hpbmcKCjIwMTAtMDUtMjYgMjE6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgYWRkIGNvbnN0IHF1YWxpZmllcnMgdG8gYSBmZXcgcGxhY2VzCgoyMDEwLTA1LTI2IDE5OjQ2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBDeWd3aW46IGxpYm5ldHNubXBtaWJzLCBsaWJuZXRzbm1waGVscGVycyBhbmQKICAgbGlibmV0c25tcGFnZW50IGRvIG5vdyBidWlsZCBhcyBhIERMTCB3aGVuIGNvbmZpZ3VyZWQgd2l0aAogICAtLWVuYWJsZS1zaGFyZWQuCgoyMDEwLTA1LTI2IDE3OjQ3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IG1vdmVkIGFsbCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBsaWJuZXRzbm1waGVscGVycyB0bwogICBsaWJuZXRzbm1wYWdlbnQuIGxpYm5ldHNubXBoZWxwZXJzIGlzIG5vdyBhbiBlbXB0eSBsaWJyYXJ5LgoKMjAxMC0wNS0yNiAxNzoyMCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODgyOSBpbiBvcmRlciB0byBtaW5pbWl6ZSBkaWZmcyB3aXRoIG9sZGVyIGJyYW5jaGVzLgoKMjAxMC0wNS0yNSAwNzoyMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgVGVsbCBuZXQtc25tcC1jZXJ0IHdoZXJlIG5ldC1zbm1wLWNvbmZpZyBpcyBsb2NhdGVkCgoyMDEwLTA1LTI1IDA3OjE0ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDb3JyZWN0IHRoZSBzaWduYXR1cmUgb2YgbWFpbi4gVXNlICNpbmNsdWRlIGluc3RlYWQgb2Ygc291cmNpbmcKICAgdG8gZ2V0IHRoZSBjb2RlIHVuZGVyIHRlc3QgaW4gb3JkZXIgdG8gZ2V0IGJldHRlciBlcnJvciBtZXNzYWdlcwoKMjAxMC0wNS0yNSAwNzoxMSAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIEFkZCBhcmd1bWVudHMgdG8gc3ByaW50ZiBzdGF0ZW1lbnRzIHRvIG1ha2UgdGhlIHRlc3Qgd29yawoKMjAxMC0wNS0yNSAwNzowNyAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIGRpc2FibGVkIGNvZGUKCjIwMTAtMDUtMjUgMDU6MjAgIG1hZ2ZyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU29ja2V0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogU3BsaXQgc25tcElQQmFzZURvbWFpbiBhbmQgbW92ZSB0aGUgSVB2NCBwYXJ0cwogICB0byBJUHY0QmFzZSBhbmQgdGhlIHNvY2tldCBnZW5lcmljIHBhcnRzIHRvIFNvY2tldEJhc2UuCgoyMDEwLTA1LTI0IDIwOjI0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZmluaXNoIHRsc3RtUGFyYW1zVGFibGUgbGFzdENoYW5nZWQgc2NhbGFyCgoyMDEwLTA1LTI0IDE5OjI4ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBBZGQgLS1leHRlcm5hbC1saWJzIGluIG9yZGVyIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRlc3RzIG9uCiAgIHNvbGFyaXMKCjIwMTAtMDUtMjQgMTM6MzMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGFyZ2guLiBmaXggZmFsbG91dCBmcm9tIG1hbnVhbGx5IChtaXMpYXBwbHlpbmcgcGF0Y2gKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgZmlyc3QgcGFzcyBhdCB0bHN0bVBhcmFtc1RhYmxlCgoyMDEwLTA1LTI0IDEyOjU5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgdXBkYXRlIGRlZmluZXMgdG8gbWF0Y2ggTUlCIG5hbWVzLCBwZXIgZ3JhbmQtcG9vYmFoCgoyMDEwLTA1LTI0IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5jOgoKICAgdXBkYXRlIE9JRCB0byBtYXRjaCB1cGNvbWluZyBSRkMKCjIwMTAtMDUtMjQgMTE6NDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvbnVsbC5jLCAgIAogICAgICBhZ2VudC9vbGRfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJuZXRzbm1wYWdlbnQsIGxpYm5ldHNubXBoZWxwZXJzOiBtb3ZlZCB0aGUgZnVuY3Rpb25zCiAgIG5ldHNubXBfYnVsa190b19uZXh0X2ZpeF9yZXF1ZXN0cygpLAogICBuZXRzbm1wX2dldF9idWxrX3RvX25leHRfaGFuZGxlcigpLCBuZXRzbm1wX3JlZ2lzdGVyX251bGwoKSwKICAgbmV0c25tcF9yZWdpc3Rlcl9udWxsX2NvbnRleHQoKSBhbmQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKICAgZnJvbSBsaWJuZXRzbm1waGVscGVycyB0byBsaWJuZXRzbm1wYWdlbnQuCiAgIE5vdGVzOgogICAtIFRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBhcHBsaWNhdGlvbnMKICAgdGhhdCBsaW5rIHdpdGggJChuZXQtc25tcC1jb25maWcgLS1hZ2VudC1saWJzKSBzaW5jZSB0aGlzCiAgIGludm9sdmVzIGxpbmtpbmcgd2l0aCBib3RoIGxpYm5ldHNubXBoZWxwZXJzIGFuZCBsaWJuZXRzbm1wYWdlbnQuCiAgIC0gRnVuY3Rpb25zIGhhdmUgYmVlbiBtb3ZlZCBiZXR3ZWVuIGxpYnJhcmllcyBieSBtb3ZpbmcgZW50aXJlCiAgIHNvdXJjZSBmaWxlcy4KCjIwMTAtMDUtMjQgMTA6MTAgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgVXNlIHByb3BlciBzdHJpbmcgc2l6ZXMgYW5kIG1ha2Ugc3VyZSBzdHJpbmdzIGFyZQogICB6ZXJvLXRlcm1pbmF0ZWQuCgoyMDEwLTA1LTI0IDA4OjAxICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIG5ldC1zbm1wLWNvbmZpZy5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcCBkb2VzIG5vdyBidWlsZCBhcyBhIERMTCB3aGVuCiAgIGNvbmZpZ3VyZWQgd2l0aCAtLWVuYWJsZS1zaGFyZWQuCiAgIENIQU5HRVM6IEN5Z3dpbjogcGVybCBtb2R1bGVzIGRvIG5vdyBidWlsZCAoLS13aXRoLXBlcmwtbW9kdWxlcykuCiAgIE5vdGU6IHRoZSBUMDYwdHJhcGRwZXJsX29sZHVjZCwgVDA2MWFnZW50cGVybF9vbGR1Y2QgYW5kCiAgIFQxMTVhZ2VudHhwZXJsX29sZHVjZCB0ZXN0cyBzdGlsbCBmYWlsLgoKMjAxMC0wNS0yMyAyMzowNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1cGRhdGUgZmlsZW5hbWVzL3BhdHNoIGZvciByZWNlbnQgZmlsZSByZW5hbWVzOyBmaXggdHlwb3MKCjIwMTAtMDUtMjMgMjI6MDggIG1hZ2ZyCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSB0aGUgc2FtZSBjb21waWxlciBjb21tYW5kIGFuZCBmbGFncyBmb3IKICAgYnVpbGRpbmcgb2YgdGVzdHMgYXMgZm9yIGJ1aWxkaW5nIG9mIHRoZSBjb2RlLCB0aHVzIGVuYWJsaW5nIHRlc3QKICAgb2YgZS5nLiAzMi1iaXQgY29kZSBjb21waWxlZCBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KCjIwMTAtMDUtMjMgMjE6NDEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgaW5jbHVkZS9jb25maWcgZmlsZS9wYXRocyBmb3IgcmVjZW50IHJlbmFtZXMKCjIwMTAtMDUtMjMgMjE6MzEgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHJlbmFtZSBmaWxlcyBmb3IgTUlCIHJlbmFtZXMKCjIwMTAtMDUtMjMgMjE6MjUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlOgoKICAgcmVuYW1lIGRpcmVjdG9yaWVzIHRvIG1hdGNoIHJlbmFtZXMgaW4gTUlCCgoyMDEwLTA1LTIwIDA4OjQ4ICBidmFzc2NoZQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBTd2FwcGVkIGxpbmsgb3JkZXIgb2YgLWxuZXRzbm1waGVscGVycyAtbG5ldHNubXBtaWJzOiBuZXRzbm1wbWlicwogICBkZXBlbmRzIG9uIG5ldHNubXBoZWxwZXJzIGFuZCBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuCgoyMDEwLTA1LTIwIDA4OjQyICBidmFzc2NoZQoKICAgKiAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTkgMTg6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHN0YXNoaW5nCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMmNvbnRhaW5lcnNfY2xpYi5jOgoKICAgb3V0cHV0IGZpbGVuYW1lcyBvZiBmYWlsZWQgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgd2lwZSB0cmFpbGluZyBjb21tZW50IEMgbWFya2VyIGlmIGl0IGV4aXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICB0aXRsZSB0aGUgU05NUHYzIHRlc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCB0ZXN0aW5nIG9mIGJ1aWx0IHRpdGxlcwoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBvbmx5IHByaW50IGZhaWx1cmUgaGVhZGVyIGlmIHRoZXJlIHdhcyBhdCBsZWFzdCBvbmUKCjIwMTAtMDUtMTkgMTg6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkOgoKICAgbWFrZSBkZXNjcmlwdGl2ZSB0aXRsZXMgd29yayBhZ2FpbgoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2J1aWxkX2NhcHAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2xpYiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgcmVuYW1lIGZpbGVzIHNvIHByZWZpeGluZyBpcyBiYXNlZCBvbiB0aGUgc3VpdGUgbmFtZSwgbm90IGZpbGUKICAgdHlwZQoKMjAxMC0wNS0xOSAxNzo1MiAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLlBMLCBwZXJsL01ha2VmaWxlLnN1YnMucGwsICAgCiAgICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsOiBidWlsZGluZyB0aGUgUGVybCBtb2R1bGVzIHdpdGggdGhlIEN5Z3dpbgogICBQZXJsIHBhY2thZ2UgaXMgbm93IHBvc3NpYmxlLgogICAoRm9yd2FyZC1wb3J0ZWQgcjE4Njg4IGZyb20gdGhlIFY1LjUgYnJhbmNoLikKCjIwMTAtMDUtMTkgMTc6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA1LTE5IDEyOjA1ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXJzdC1kcmFmdCBzdXBwb3J0IGZvciBBSVggZmlsZXN5c3RlbSBIQUwgbW9kdWxlICh1bnRlc3RlZCkKCjIwMTAtMDUtMTkgMTE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgIFN1cHBvcnQgZm9yIFNvbGFyaXMtc3R5bGUgJ2dldG1udGVudCcgQVBJLgoKMjAxMC0wNS0xOSAwOTo1NyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oOgoKICAgU2ltcGxpZnkgdGhlIGhhbmRsaW5nIG9mIHVua25vd24vdW53YW50ZWQgZmlsZSBzeXN0ZW1zLgoKMjAxMC0wNS0xOSAwOTozMCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIEZpeCBtaXNzaW5nL2Jyb2tlbiBBUEkgZGVjbGFyYXRpb25zLgoKMjAxMC0wNS0xOSAwODo0NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgTWFkZSBlcnJvciBtZXNzYWdlcyBtb3JlIGNsZWFyIGluIGNhc2Ugb2YgZmFpbHVyZSBvciB3cm9uZwogICBpbnZvY2F0aW9uLgoKMjAxMC0wNS0xOSAwMDowMSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0IGZvciB1c2luZyBhIGNlcnRpZmljYXRlIHNpZ25lZCBieSBhIENBIGNlcnRpZmljYXRlCgoyMDEwLTA1LTE4IDIzOjMxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgd2UgY2FsbCB0aGUgcmlnaHQgUGVybAoKMjAxMC0wNS0xOCAyMDozOSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGluY2x1ZGUgbG9jYWwgcG9ydCBudW1iZXIgaW4gcGFja2V0IGR1bXBzLiBBbgogICBleGFtcGxlOgogICAKICAgUmVjZWl2ZWQgMzYgYnl0ZSBwYWNrZXQgZnJvbSBVRFA6CiAgIFsxMjcuMC4wLjFdOjUzOTA5LT5bMTI3LjAuMC4xXToxMTYxCiAgIDAwMDA6IDMwIDIyIDAyIDAxIDAxIDA0IDA2IDcwIDc1IDYyIDZDIDY5IDYzIEExIDE1IDAyCiAgIDAiLi4uLi5wdWJsaWMuLi4KICAgMDAxNjogMDQgMzcgRjIgRDQgOUIgMDIgMDEgMDAgMDIgMDEgMDAgMzAgMDcgMzAgMDUgMDYKICAgLjcuLi4uLi4uLi4wLjAuLgogICAwMDMyOiAwMSAwMSAwNSAwMCAuLi4uCiAgIAogICBSZWNlaXZlZCBTTk1QIHBhY2tldChzKSBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgR0VUTkVYVCBtZXNzYWdlCiAgIC0tIGNjaXR0LjEKICAgCiAgIFNlbmRpbmcgMTE4IGJ5dGVzIHRvIFVEUDogWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgNzQgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTIgNjcgMDIKICAgMHQuLi4uLnB1YmxpYy5nLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCA1OSAzMCA1NyAwNgogICAuNy4uLi4uLi4uLjBZMFcuCiAgIDAwMzI6IDA4IDJCIDA2IDAxIDAyIDAxIDAxIDAxIDAwIDA0IDRCIDRDIDY5IDZFIDc1IDc4CiAgIC4rLi4uLi4uLi5LTGludXgKICAgMDA0ODogMjAgNjEgNzMgNzUgNzMgMjAgMzIgMkUgMzYgMkUgMzMgMzMgMkUgMzIgMkQgNzMgYXN1cwogICAyLjYuMzMuMi1zCiAgIDAwNjQ6IDYzIDczIDc0IDIwIDIzIDMxIDIwIDUzIDREIDUwIDIwIDUwIDUyIDQ1IDQ1IDREIGNzdCAjMSBTTVAKICAgUFJFRU0KICAgMDA4MDogNTAgNTQgMjAgNTMgNjEgNzQgMjAgNDEgNzAgNzIgMjAgMzMgMjAgMzIgMzEgM0EgUFQgU2F0IEFwcgogICAzIDIxOgogICAwMDk2OiAzMSAzMCAzQSAzNSAzOCAyMCA0MyA0NSA1MyA1NCAyMCAzMiAzMCAzMSAzMCAyMCAxMDo1OCBDRVNUCiAgIDIwMTAKICAgMDExMjogNzggMzggMzYgNUYgMzYgMzQgeDg2XzY0CgoyMDEwLTA1LTE4IDE5OjQyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRsc3RtQWRkclRhYmxlCiAgIC0gZGVhbCB3aXRoIGhhc2ggdHlwZSBwcm9wZXJseSBmb3IgZ2V0L3NldCBhbmQgcGVyc2lzdGVuY2UKICAgLSBhZGQgY291bnQgYW5kIGxhc3QgY2hhbmdlZCBzY2FsYXJzCgoyMDEwLTA1LTE4IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmM6CgogICB1cGRhdGUgdG8gb2ZmaWNhbCBPSUQgZnJvbSB1cGNvbWluZyByZmMKCjIwMTAtMDUtMTggMTY6MTYgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2lhbCBPSURzIGZyb20gdXBjb21pbmcgUkZDOyBhZGQgY291bnQvbGFzdCBjaGFuZ2VkCiAgIHNjYWxhcnMKCjIwMTAtMDUtMTggMTQ6NTYgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMDAxNjU2OiBIYW5kbGUgbnVsbC10ZXJtaW5hdGlvbiBvZgogICBzdHJpbmcgdmFsdWVzIHByb3Blcmx5LgogICBCYXNlZCBvbiB0aGUgcHJpbmNpcGxlcyBvZiB0aGUgcGF0Y2ggZnJvbSBUb21teSBCZWFkbGUuCgoyMDEwLTA1LTE4IDE0OjM4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCBhZ2VudC9taWJncm91cC9ob3N0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBXb3JraW5nKD8pIEhBTC1iYXNlZCB2ZXJzaW9uIG9mIGhyRlNUYWJsZS4KCjIwMTAtMDUtMTggMTQ6MTIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTcgMjE6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgdXNlIHByb3BlciBUU00gc2VjdXJpdHkgY29kZSAoNCkgbm93IHRoYXQgaXQncyBvZmZpY2lhbAoKMjAxMC0wNS0xNyAxODo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBiZWdpbm5pbmcgb2YgYSBjb250YWluZXIgdW5pdCB0ZXN0CgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGVzdGluZy5oOgoKICAgYSBiYXNpYyBDLWNvZGUgYmFzZWQgdGVzdCByZXBvcnRpbmcgbWVjaGFuaXNtCgoyMDEwLTA1LTE3IDE4OjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIGJhc2ljIGRlZmF1bHRfc3RvcmUgdGVzdHMKCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2xpYjoKCiAgIGEgYnVpbGQgc3lzdGVtIGZvciBiYXNpYyBsaWJuZXRzbm1wIHRlc3RzCgoyMDEwLTA1LTE3IDE4OjE0ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgZml4IGZpbmdlcnByaW50IGJpbi9oZXggY29udmVyc2lvbjsgYWRkL3JlbW92ZSBjZXJ0IHNlYyBtYXBzIHZpYQogICBtaWIgbm93IHdvcmtzCgoyMDEwLTA1LTE3IDE4OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2JpbmFyeV90b19oZXgKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZwcmludGYoc3RkZXJyIC0+IERFQlVHTVNHVEwoKAoKMjAxMC0wNS0xNyAxODoxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIGNoZWNrIGZvciBoYXNoIHR5cGUKCjIwMTAtMDUtMTcgMTY6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWtlIFJVTlRFU1RTIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlZGlyCgoyMDEwLTA1LTE3IDE1OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgbWFkZSBhIGxpbWl0ZWQgcnVuIHRlc3QgcG9zc2libGUgYWdhaW4gd2l0aG91dCBwZXJsCgoyMDEwLTA1LTE3IDE1OjMyICBkdHMxMgoKICAgKiAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBVc2UgbmV3ZXIgRGlzTWFuIEV2ZW50IE1JQiBjb2RlIGZvciBNU1ZDLWJhc2VkIGJ1aWxkcwogICAoaW4gbGluZSB3aXRoIGFsbCBjb25maWd1cmUtYmFzZWQgYnVpbGRzKQoKMjAxMC0wNS0xNyAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRoZSByZXR1cm4gb3V0c2lkZSB0aGUgaWYgc3RhdGVtZW50CgoyMDEwLTA1LTE3IDE1OjE4ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgUHJvdmlkZSBtaXNzaW5nIHB1YmxpYyBpbnRlcmZhY2UgdG8gSEFMLWJhc2VkIGZpbGVzdG9yZSBtb2R1bGUuCgoyMDEwLTA1LTE3IDEwOjQxICBidmFzc2NoZQoKICAgKiB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxODc1NCAocmV2ZXJ0IHIxODczOCk6IHIxODc1NCBvbmx5IHBhcnRpYWxseQogICByZXZlcnRlZCByMTg3MzgKICAgYW5kIGhlbmNlIGJyb2tlIHRoZSBXaW4zMi1idWlsZC4gRmluaXNoZWQgcmV2ZXJzYWwgb2YgcjE4NzM4IGJ5CiAgIHJlc3RvcmluZwogICB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCgoyMDEwLTA1LTE2IDE4OjE3ICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBGb2xsb3ctdXAgZm9yIHIxODcyNjogb25seSBwYXNzIC1mc3RhY2stcHJvdGVjdG9yKiBmbGFncyB0byB0aGUKICAgbGlua2VyIGluc3RlYWQgb2YgYWxsIC1mKiBmbGFncyBzdWNoIHRoYXQgaXQgYmVjb21lcyBsZXNzIGxpa2VseQogICB0aGF0IHRoaXMgbW9kaWZpY2F0aW9uIGNhdXNlcyB0cm91YmxlIHdpdGggbm9uLUdOVSB0b29sY2hhaW5zLgoKMjAxMC0wNS0xNiAxODoxNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgc2hlbGwgY29kZSBmb3IgY29udmVydGluZyBhIHJlbGF0aXZlIHBhdGggdG8gYW4gYWJzb2x1dGUKICAgcGF0aCBtb3JlCiAgIHJvYnVzdCBhbmQgY29udmVydGVkICIkey4uLiMuLi59IiBjb25zdHJ1Y3QgaW50byBlY2hvICsgY3V0LgoKMjAxMC0wNS0xNiAxODoxMiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBNb3JlIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFIHRvCiAgIFVTSU5HX1VUSUxJVElFU19FWEVDVVRFX01PRFVMRSBzdWJzdGl0dXRpb25zLCBuZWNlc3NhcnkgdG8gbWFrZQogICB0ZXN0IDA1OSBhbmQgMDY1IHBhc3MuCgoyMDEwLTA1LTE2IDE3OjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgZml4IHRlc3RzIGZvciBjaGVja2luZyBzaHV0ZG93biBvZiBhcHBsaWNhdGlvbnMgdG8gbm90IHJlcG9ydAogICBmYWxzZSBuZWdhdGl2ZXMKCjIwMTAtMDUtMTYgMTI6MTUgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2Q6CgogICBNYWRlIHRlc3QgVDA1OSBwYXNzIGFnYWluLiBUaGlzIHRlc3Qgd2FzIHJlY2VudGx5IGJyb2tlbiBieQogICBwYXNzaW5nIGFyZ3VtZW50cyB0byBpdCB3aXRoIGFic29sdXRlIHBhdGhzIGluc3RlYWQgb2YgcmVsYXRpdmUKICAgcGF0aHMuCgoyMDEwLTA1LTE2IDEyOjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9vbGR1Y2Q6CgogICBBZGRlZCAnU0tJUElGTk9UIFVTSU5HX1VUSUxJVElFU19FWEVDVVRFX01PRFVMRScuCgoyMDEwLTA1LTE2IDExOjQyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDUtMTYgMTE6NDEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYXBwcy9zc2h0b3NubXAuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gb2xkIGNvZGUuCgoyMDEwLTA1LTE2IDA5OjU5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGRvbid0IHRyaWdnZXIgYSBuZXRzbm1wX2Fzc2VydCgpIHdoZW4KICAgbm8gZXh0ZW5zaW9uIERMTHMgaGF2ZSBiZWVuIGxvYWRlZC4KCjIwMTAtMDUtMTUgMTc6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdG9wLWdhcCBmaXggdG8gdW5icmVhayAibWFrZSB0ZXN0IiBmb3IgdGhlIG5pZ2h0bHkgYnVpbGRzCgoyMDEwLTA1LTE1IDEwOjU5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBSZXZlcnRlZCByMTg3MjcgYmVjYXVzZSBpdCBjYXVzZWQgYnVpbGQgZXJyb3JzIG9uIFNvbGFyaXMsIEFJWAogICBhbmQgSFAtVVguCgoyMDEwLTA1LTE1IDAwOjQyICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICB3aW4zMi9idWlsZC5wbDoKCiAgIHJldmVydCByMTg3Mzggc2luY2UgbmV3IHRyYW5zcG9ydCByZXF1aXJlIGR5bmFtaWNseSBidWlsdCBoZWFkZXIKICAgZmlsZXMKCjIwMTAtMDUtMTUgMDA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBsb2cgZW52IHZhcmlhYmxlcyB1c2VkIHRvIHRoZSBpbnZva2VkIGZpbGUKCjIwMTAtMDUtMTQgMjE6MjkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGZpeCBzY3JpcHQgc28gaXQgY2FuIGJlIGludm9rZWQgb3V0c2lkZSB0aGUgdGVzdCBlbnZpcm9ubWVudAogICBhZ2FpbgoKMjAxMC0wNS0xNCAyMToyOCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0OgoKICAgYWRkZWQgdGhlIFNOTVAtVExTLVRNLU1JQiB3aXRoIGZpbmFsIElBTkEgYXNzaWdubWVudCBzbG90cwoKMjAxMC0wNS0xNCAyMToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgZmluYWwgSUFOQSBhc3NpZ25lZCBUU00gcHJlZml4ZXMKCjIwMTAtMDUtMTQgMjE6MjYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaDoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIERvbWFpbiBudW1iZXJzCgoyMDEwLTA1LTE0IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2V0IGRlZmF1bHQgdmVyc2lvbiBhbmQgc2VjbGV2ZWwgaWYgdGxzL2R0bHMKCjIwMTAtMDUtMTQgMTU6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHJjIGZyb20gc2VjbmFtZSBtYXBwaW5nOyBjbGFyaWZ5IGNvbW1lbnQKCjIwMTAtMDUtMTQgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG9uJ3QgdXNlIHVuc29ydGVkIGNvbnRhaW5lcjsgZG9uJ3QgZnJlZSBjYWxsZXIncyBjb250YWluZXIKCjIwMTAtMDUtMTQgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBsaW5lYXJfc2VhcmNoIGZvciB1bnNvcnRlZCBjb250YWluZXJzCgoyMDEwLTA1LTE0IDExOjU2ICBidmFzc2NoZQoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYnkgcmVtb3ZpbmcgdGhlIGdlbmVyYXRlZCBmaWxlCiAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wX3RyYW5zcG9ydF9pbml0cy5oLgogICBDb21tZW50ZWQgb3V0IHRoZSBjb2RlIGluIHRoZSBjb25maWd1cmUgc2NyaXB0IGZvciBnZW5lcmF0aW5nCiAgIHRoaXMgaGVhZGVyIGZpbGUuCiAgIEFkZGVkIGNvbmZpZ3VyZS10aW1lIGNvZGUgZm9yIGNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbnN0cnVjdG9ycwogICBmb3IgYWxsIGNvbmZpZ3VyZWQKICAgdHJhbnNwb3J0cyBhcmUgaW52b2tlZCBmcm9tIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYy4KCjIwMTAtMDUtMTQgMTE6MDAgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb246IHVwZGF0ZWQgQ3lnd2luIGJ1aWxkIGluc3RydWN0aW9ucy4KCjIwMTAtMDUtMTQgMDk6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsICAKICAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNCAwODo1MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQWRkZWQgLW5vLXVuZGVmaW5lZCBmbGFnIHRvIGxpYnJhcnkgbGluayBjb21tYW5kcyBzdWNoIHRoYXQKICAgbGlidG9vbCBjYW4gYnVpbGQgRExMcyBvbiBXaW4zMi4KICAgTm90ZTogYnVpbGRpbmcgRExMcyBvbiBXaW4zMiBkb2VzIG5vdCB5ZXQgd29yayBiZWNhdXNlIG9mIHRoZQogICBjaXJjdWxhciBkZXBlbmRlbmN5IGJldHdlZW4KICAgbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudAogICAoc2VlIGFsc28KICAgaHR0cDovL3d3dy5uZXQtc25tcC5vcmcvd2lraS9pbmRleC5waHAvTGlicmFyeV9sYXllcmluZykuCgoyMDEwLTA1LTE0IDA4OjQyICBidmFzc2NoZQoKICAgKiBsdG1haW4uc2g6CgogICBsaWJ0b29sIGJ1ZyBmaXg6IGFsc28gcGFzcyBmbGFncyBzdGFydGluZyB3aXRoIC1mIHRvIHRoZSBsaW5rZXIKICAgc2luY2UgdGhlc2UgY2FuIGFmZmVjdCBsaW5raW5nLiBUaGUgZmxhZyAtZnN0YWNrLXByb3RlY3RvciBlLmcuCiAgIHRyaWdnZXJzIGluY2x1c2lvbiBvZiBsaWJzc3AuCgoyMDEwLTA1LTE0IDA4OjQwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBhYm9ydCBpZiB0aGUgZmlsZSBwcm9ncmFtIGNvdWxkIG5vdCBiZSBmb3VuZCwKICAgc2luY2UgdGhpcyBpcyBlc3NlbnRpYWwgZm9yIHByb3BlciBvcGVyYXRpb24gb2YgbGlidG9vbC4KICAgQ0hBTkdFUzogQ3lnd2luOiBuZWl0aGVyIGNvbXBpbGUgbm9yIGxpbmsgd2lucGlwZS5jLgoKMjAxMC0wNS0xMyAwODo1OCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmFuIGF1dG9yZWNvbmYuCgoyMDEwLTA1LTEyIDIwOjE2ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogTGludXg6IGJ1aWxkcyBhZ2FpbiB3aXRoIGVtYmVkZGVkIFBlcmwgZGlzYWJsZWQgKGJ1ZwogICAyOTg1OTE1KS4KCjIwMTAtMDUtMTIgMTk6NDcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuYywgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4Njg0OiB1bi1icmVhayB0aGUgV2luMzIgTVNWQyBidWlsZC4KCjIwMTAtMDUtMTIgMTk6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFdpbjMyOiBmaXhlZCBhIHR5cG8gYW5kIG1hZGUgaW5kZW50YXRpb24gY29uc2lzdGVudC4KCjIwMTAtMDUtMTIgMTk6MTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY29uc3RydWN0IHRlbXAgYnVpbGQgZmlsZXMgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnkKCjIwMTAtMDUtMTIgMTk6MTAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHJlY2VudGx5IGJyb2tlbiBvbGQgcGVybCBmdW5jdGlvbmFsaXR5CgoyMDEwLTA1LTEyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYSAtLXNob3J0IG9wdGlvbiB0byBzaG9ydGVuIHRoZSBzaG93IG91dHB1dCB0byBtaW5pbWFsaXN0aWMKCjIwMTAtMDUtMTIgMTQ6MTQgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgYSBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCLgoKMjAxMC0wNS0xMiAxMzowMiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgbWVtb3J5IGxlYWsgd2hlbiByZWFkaW5nIHNlbnNvcnMgZm9yCiAgIExNLVNFTlNPUlMtTUlCLgoKMjAxMC0wNS0xMiAxMjo1NyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFJldmVydCByZXZpc2lvbiAxODY4OQogICBMYXRlc3QgV2luMzIgYnVpbGRzIGluY2x1ZGUgc3VwcG9ydCBmb3Igc3RydG91bGwuCgoyMDEwLTA1LTEyIDEyOjA1ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBhZGRlZCBkZXRlY3Rpb24gb2YgbG1fc2Vuc29ycyB2ZXJzaW9uLgogICBJIGFtIG5vdCBBdXRvY29uZiBndXJ1LCBzbyBJIGhvcGUgSSBnb3QgaXQgcmlnaHQuIFRoZSBnb2FsIGlzIHRvCiAgIGRlZmluZSBORVRTTk1QX1VTRV9TRU5TT1JTX1YzICpiZWZvcmUqIGNvbmZpZ19tb2R1bGVzX2FnZW50CiAgIHByb2Nlc3NlcyBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmguCgoyMDEwLTA1LTEyIDA3OjAzICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRyYW5zcG9ydHMuCgoyMDEwLTA1LTEyIDAzOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGZpeCB0aXRsZSBnZW5lcmF0aW9uIGFmdGVyIGNoYW5nZSB0byB3aGF0IHNyY2RpciBtZWFudAoKMjAxMC0wNS0xMiAwMjozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHVuZG8gbGFzdCBjaGFuZ2Ugd2hpY2ggdHVybmVkIG91dCB0byBvbmx5IGNhdXNlIGVycm9ycyBpZiB5b3UgaGFkCiAgIGEgb2xkIC5jb25mIGZpbGUgYXJvdW5kCgoyMDEwLTA1LTEyIDAyOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHYzX2NhIGNyZWF0aW9uIGV4dGVuc2lvbiBuYW1lCgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGtlZXAgZm9ybWF0IHZlcnNpb24gIyBpbiBjZXJ0IGluZGV4ZXM7IGRvbid0IHN0b3JlIGhhc2ggdHlwZQogICBzdHJpbmcgaW4gaW5kZXg7CgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGZpeCBpbnZlcnRlZCBjb252ZXJzaW9uIGNhbGw7IGxlc3MgdmVyYm9zZSBkZWZhdWx0IGRlYnVnCgoyMDEwLTA1LTEyIDAyOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBwYXJzaW5nIG9mIC1UIG5hbWUvdmFsdWUgcGFpcnMKCjIwMTAtMDUtMTEgMjM6MzMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBidWcgZml4aW5nIGFuZCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yICJtYWtlIHRlc3QiIHdpdGgKICAgVGVzdDo6SGFybmVzcwogICAoc3RpbGwgZG9lc24ndCB3b3JrIGZvciBtZSwgdGhvdWdoKQoKMjAxMC0wNS0xMSAyMjozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIERvIE5PVCBoYXJkY29kZSAvdXNyL2Jpbi9wZXJsIGFzIHRoZSBQZXJsIHBhdGgKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHN0YXNoIGZpbGUgaGFuZGxpbmcKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbG9uZyBvcHRpb25zIHN1Y2sgOy0pLiBwcmVmZXIgZG91YmxlIGRhc2hlcyBmb3IgbG9uZyBvcHRpb25zIHRvCiAgIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBOZXQtU05NUCBjb2RlIGJhc2UKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYWRkZWQgYWJpbGl0eSB0byBydW4gb25seSB0aGUgZmFpbGVkIHRlc3RzIGZyb20gdGhlIGxhc3QgcnVuCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGRvbid0IGZvcmNlIGNvbG9yCgoyMDEwLTA1LTExIDIwOjE2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNsZWFudXAgb2Ygb2xkZXIKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgTWluaW1hbGx5IHN1cHBvcnQgdGhlIG9sZGVyIFRlc3Q6Okhhcm5lc3MgcGVybCBtb2R1bGUgZm9yIHJ1bm5pbmcKICAgdGhlIG9sZGVyIHRlc3RzIGF0IGxlYXN0CgoyMDEwLTA1LTExIDIwOjE1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCBhIGRlZmF1bHQgc2VjdXJpdHlOYW1lIGFuZCBzZWN1cml0eU1vZGVsIGlmIFRMUyBvciBEVExTIGlzIGluCiAgIHVzZSBvbiB0aGUgY2xpZW50IHNpZGUKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYzoKCiAgIGFsbG93IHNlY3VyaXR5IG1vZGVscyB0byBwZXJmb3JtIG1vcmUgb2YgdGhlIHNlc3Npb24gc2V0dXA7IG1vdmVkCiAgIG1vcmUgVVNNIHNwZWNpZmljIHNldHVwIGludG8gaXQncyBzZXR1cCByb3V0aW5lCgoyMDEwLTA1LTExIDE4OjAyICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggcGFyYW0gdG8gbG9va3VwIHBlZXIgY2VydAoKMjAxMC0wNS0xMSAxNjoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFsbG93ICctJyBpbiBmcWRuOyBhZGQgZGVidWcgb3V0cHV0IGZvciBob3N0IHNwZWNpZmljIGNvbmZpZwoKMjAxMC0wNS0xMSAxNTo0NiAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFbnN1cmUgJ25ldHNubXBfcmVhZF9tb2R1bGUnIGlzIGF2YWlsYWJsZSBmb3IgcGVybCBidWlsZC4KCjIwMTAtMDUtMTEgMTU6NDQgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXggcGVybCBidWlsZCB1bmRlciBXaW5kb3dzIChzdHJ0b3VsbCBub3QgYXZhaWxhYmxlKQoKMjAxMC0wNS0xMCAwNzowNyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbWlzc2luZyBzeW1ib2wgbmV0c25tcF9zbm1wU1NIRG9tYWluX2xlbiwKICAgbWFrZSBuZXRzbm1wX3NubXBTU0hEb21haW4gY29uc3QuCgoyMDEwLTA1LTA5IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBEbyBub3QgcmVxdWlyZSBxdW90ZXMgYXJvdW5kIHRoZSBDUFUgc3RyaW5nIGFzIHRoYXQgZGVwZW5kcyBvbgogICBob3cgdGhlIGFnZW50IGlzIGNvbmZpZ3VyZWQuCgoyMDEwLTA1LTA5IDIxOjQzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9FeGl0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL3Jlc3RhcnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBFeHRyYWN0IHRoZSBFeGl0IGFuZCByZXN0YXJ0KiBzdWJyb3V0aW5lcyBmcm9tCiAgIHV0aWxfZnVuYyBpbiBvcmRlciB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIGxlc3MgY29kZSBmb3IgdGhlCiAgIG1pbmltYWwgY2FzZS4KCjIwMTAtMDUtMDkgMTY6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGZ1bmN0aW9uCiAgIGdldF9leGVjX291dHB1dCgpIHJldHVybnMgYSB2YWx1ZSB3aGVuIHRoZSBwcmVwcm9jZXNzb3Igc3ltYm9sCiAgIFVTSU5HX1VDRF9TTk1QX0VYVEVOU0lCTEVfTU9EVUxFIGhhcyBub3QgYmVlbiBkZWZpbmVkLgoKMjAxMC0wNS0wOSAxNjo0NSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogYnVpbGRzIG5vdyBhbHNvIHdoZW4gdGhlIHNvdXJjZSBmaWxlcyBhcmUKICAgbG9jYXRlZCBvbiBhIFNhbWJhIGZpbGVzeXN0ZW0gaW5zdGVhZCBvZiBhIGxvY2FsIGZpbGVzeXN0ZW0uCgoyMDEwLTA1LTA5IDEzOjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgQ29ycmVjdCB0aGUgaWYgdGhhdCB0cmllcyB0byBmaWd1cmUgb3V0IGlmIGEgc3VmZmljaWVudGx5IG5ldyBnY2MKICAgaXMgaW4gdXNlLgoKMjAxMC0wNS0wOSAxMjo1MCAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENoZWNrIGZvciB0aGUgbmVlZGVkIG1vZHVsZSBhbmQgbm90IHNvbWUgb3RoZXIgb25lLgogICBMb2cgdGhlIGNvcnJlY3QgbWlzc2luZyBzeW1ib2wuCgoyMDEwLTA1LTA5IDA5OjIxICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiB1dGlsaXRpZXMvZXhlY3V0ZSBkbyBub3QgbmVlZCBhbnl0aGluZyBmcm9tCiAgIHV0aWxfZnVuY3MsIHNvIHN0b3AgZGVwZW5kaW5nIG9uIGl0LgoKMjAxMC0wNS0wOSAwOToxMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIE5FV1M6IHNubXBkOiBSZW1vdmVkIHRoZSB1bnVzZWQgZnVuY3Rpb24geHhfdG9rZW5pemVfZXhlY19jb21tYW5kCiAgIGZyb20gdXRpbGl0aWVzL2V4ZWN1dGUuCgoyMDEwLTA1LTA5IDA5OjAxICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlcGxhY2UgdGhlIGRlYnVnZ2luZyBmdW5jdGlvbnMgd2l0aCBkdW1taWVzCiAgIHdoZW4gZGVidWdnaW5nIGlzIGRpc2FibGVkLgoKMjAxMC0wNS0wOSAwODowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZDoKCiAgIENoZWNrIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgZW5hYmxlZAoKMjAxMC0wNS0wOSAwODowMSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIEZhY3RvciBvdXQgY2hlY2sgZm9yIG1pYklJL3N5c3RlbV9taWIKCjIwMTAtMDUtMDkgMDc6NTkgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlcwoKMjAxMC0wNS0wOCAyMzoxNiAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRpdGlvbmFsbHkgZml4IG1ha2UgdGVzdCBmb3IgdGhlIHVuY29tbW9uIGNhc2Ugd2hlcmUgYnVpbGRkaXIKICAgPT0gc3JjZGlyCgoyMDEwLTA1LTA4IDIyOjU1ICBtYWdmcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gcnVuIHRoZSB0ZXN0IHN1aXRlIGZyb20KICAgYW55d2hlcmUuCiAgIENoYW5nZSB0aGUgLUQgb3B0aW9uIHRvIGV4cGVjdCB0aGUgcGF0aCBvZiB0aGUgdG9wIHNvdXJjZQogICBkaXJlY3RvcnkuCiAgIEFkZCBhbiAtc3JjZGlyIG9wdGlvbiB0aGF0IGlzIGFuIGFsaWFzIGZvciAtRC4KICAgQWRkIGFuIC1idWlsZGRpciBvcHRpb24gdG8gZGVzaWduYXRlIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHRlc3QKICAgb2JqZWN0IGlzLgogICBQdXQgc3JjZGlyIGFuZCBidWlsZGRpciBpbiB0aGUgZW52aXJvbm1lbnQgZm9yIHRoZSB0ZXN0IHNjcmlwdHMKICAgRmFjdG9yIG91dCB0aGUgZ3JlcCBwYXJ0IG9mIFNLSVBJRiBhbmQgU0tJUElGTk9UIHRvIElTREVGSU5FRAogICBVc2UgbW9yZSByZWFkYWJsZSBrZXlzIGluIHRoZSBvcHRzIGhhc2ggaW4gUlVORlVMTFRFU1RTCiAgIEFkanVzdCBldmVyeXRoaW5nIHRvIHVzZSBzcmNkaXIgYW5kIGJ1aWxkZGlyCgoyMDEwLTA1LTA4IDIyOjQyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgVXNlIGNvcnJlY3QgYXJndW1lbnQgdHlwZXMKCjIwMTAtMDUtMDggMjI6MDcgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ29uc29saWRhdGUgdGhlIHRlc3QgYW5kIHRlc3QtbWlicyB0YXJnZXRzLgogICBFeHBvc2UgdGhlIHRlc3RhbGwgdGFyZ2V0IGluIHRoZSB0b3AgbWFrZWZpbGUuCgoyMDEwLTA1LTA4IDIyOjA1ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBEbyBub3QgYWJvcnQgd2hlbiBzdHIgaXMgTlVMTCBhcyB0aGF0IGlzIGEgcGVyZmVjdGx5IHZhbGlkIGlucHV0LgoKMjAxMC0wNS0wOCAyMjowMyAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jOgoKICAgVXNlIGNvcnJlY3QgYXJndW1lbnQgdHlwZXMKCjIwMTAtMDUtMDggMjI6MDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIG5ld2xpbmUKCjIwMTAtMDUtMDcgMjE6MTEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuYWMKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBmaXggaGFuZGxpbmcgb2YgY2VydCBhbGdvcml0aG0gaW4gZmluZ2VycHJpbnRzOyBjb252ZXJ0IGluL291dAogICBmaW5nZXJwaW50cwogICBmcm9tL3RvIGhleAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZG9udCBzcGVjaWZ5IGhhc2ggdHlwZSBmb3IgZmluZ2VycHJpbnQKCjIwMTAtMDUtMDcgMTk6MjEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBoYW5kbGUgZmluZ2VycHJpbnQgdHlwZXM7IGRyb3Agc2FuIGZpZWxkcyBmcm9tIGNlcnQgc3RydWN0OwogICBjb25zaWRlciBkaXJlY3RvcnkKICAgd2hlbiBwYXJ0bmVyaW5nIGtleXMvY2VydHMKCjIwMTAtMDUtMDcgMTk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuYWM6CgogICBtb3ZlIGRlZmF1bHQgcHJvbXB0cyBlYXJsaWVyCgoyMDEwLTA1LTA2IDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGJldHRlciBTQU4gZXh0cmFjdGlvbjsgdHdlYWsgZHViZ3VzIG1lc3NhZ2VzOyBxdWlldCBjb21waWxlcgogICB3YXJuaW5ncwoKMjAxMC0wNS0wNiAxNTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICByZWR1Y2UgY2VydCBkZWJ1ZyBvdXRwdXQ7IGRlYnVnIGluc3RlYWQgb2YgbG9nX2luZm8gaW4gZHVtcHMKCjIwMTAtMDUtMDYgMTQ6NDkgIGR0czEyCgogICAqIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBEb24ndCBhc3N1bWUgdGhlIHByZXNlbmNlIG9mIDxzdHJpbmcuaD4KICAgKGJyaW5nIGludG8gbGluZSB3aXRoIGFsbCBvdGhlciBvY2N1cmFuY2VzKQoKMjAxMC0wNS0wNiAxNDo0MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IFdpbmRvd3M6IEZpeCBidWlsZCB1bmRlciBNaW5HVwogICBiYWNrL2ZvcndhcmQgcG9ydCBvZiByZXZpc2lvbiAxODYzMQoKMjAxMC0wNS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdHlwZSBpbiBsb2cgbXNnCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBpbXBvcnQgZm9yIHVudXNlZCBmdW5jdGlvbgoKMjAxMC0wNS0wNCAwNzoxMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIE5lZ2F0ZSByZWFzb24gZ2l2ZW4gZnJvbSBTS0lQSUYKCjIwMTAtMDUtMDMgMjI6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGxlbiBpbiBlbWFpbCBjbXA7IG1vcmUgZXh0cmFjdCBkZWJ1Z2dpbmcKCjIwMTAtMDUtMDMgMjI6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY29weSBvY2VydCB0byBhZGRpb25hbCBtYXBzCgoyMDEwLTA1LTAzIDE0OjIwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICByZW1vdmUgZGVwZW5kZW5jeSBvbiBwZXJsIG1vZHVsZSBub3QgcHJlc2VudCBpbiBDZW50T1MKCjIwMTAtMDUtMDMgMDM6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgYWNjZXNzIHN0cnVjdCBpbnRlcm5hbHMgZGlyZWN0bHkKCjIwMTAtMDUtMDMgMDM6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGZpeCBjb21waWxpbmcgd2l0aC1vdXQtbWlibW9kdWxlcz11dGlsaXRpZXMvZXhlY3V0ZQoKMjAxMC0wNS0wMSAxOTowOCAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkOgoKICAgQ29ycmVjdCB0aGUgc291Z2h0IHN0cmluZyB0byBtYWtlIHRoZSB0ZXN0IHBhc3Mgd2hlbiBvay4KCjIwMTAtMDUtMDEgMTc6MTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1vcmUgY29uc2lzdGVudCB0cmVhdG1lbnQgb2Yga2V5VXNhZ2UsIGJhc2ljQ29uc3RyYWludHMsIG90aGVyCiAgIHg1MDl2MyBvcHRpb25zCgoyMDEwLTA0LTMwIDIzOjM3ICBtYXJ6CgogICAqIGxvY2FsL2NlcnRnZW4tdGVzdC5wbDoKCiAgIGxhbWUgdGVzdCBzY3JpcHQgYnV0IGNvdmVycyBhIGNodW5rIG9mIHRoZSBjb2RlCgoyMDEwLTA0LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1raW5zdGFsbGRpcnMgaW5zdGVhZCBpbnN0ZWFkIG9mIEZpbGU6OlBhdGgKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZW5zdXJlIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgY2FuIGJlIHJ1biBmcm9tIHRoZSBidWlsZCBkaXIKCjIwMTAtMDQtMzAgMjE6MzEgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGhhbmRsZSBnZW5jZXJ0IC0tY2EKCjIwMTAtMDQtMzAgMjE6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGhlbHAgZm9yIGNlcnRTZWNOYW1lOyBjb250aW51ZSBidWlsZGluZyBjZXJ0IGluZGV4ZXMgZXZlbiBpZgogICB3ZSBjYW50IHNhdmUKICAgdG8gcGVyc2lzdGVudCBkaXIKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IGNoZWNrIGNvdW50IGZvciA4MjIgbmFtZXMgaW4gdGhlIHNubXBkLmxvZwoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYywgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggbWFsbG9jIHVubmRlcmxlbmd0aCBieSAxIGVycm9yCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGNvbW1lbnQgb3V0IHRoZSA4MjIgdGVzdHM7IHRoZXkncmUgYnJva2VuIGF0IHRoZSBtb21lbnQKCjIwMTAtMDQtMzAgMTk6MzYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGRvbid0IGxvc2UgU0FOIHdoZW4gc2lnbmluZyB3LyBDQQoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1ha2UgbmFtZSBjaGFuZ2UgdG8gcmZjODIyIGZyb20gdHlwb2VkIDgyMjAKCjIwMTAtMDQtMzAgMTg6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgYWRkZWQgdGVzdHMgdG8gZG8gb3RoZXIgc3ViamVjdEFsdE5hbWUgbWFwcGluZwoKMjAxMC0wNC0zMCAxNzozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGlzc3VlcyAxLDIsNCBhbmQgLUMgaGFuZGxpbmcKCjIwMTAtMDQtMjkgMDM6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1DZXJ0VG9UU05UYWJsZSB0byB1c2UgY2FjaGUgKyBjZXJ0X3V0aWwgbWFwcwogICBjb250YWluZXIKCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBjaGVjayBpbnNlcnQgcmV0dXJuCgoyMDEwLTA0LTI5IDAzOjMxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgcmVtb3ZlIGZ1bmN0aW9uIHRvIGNvbnRhaW5lciBpdGVyYXRvcjsKICAgaW1wbGVtZW50IGl0IGZvcgogICBiaW5hcnlfYXJyYXkKCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIG1ha2Ugc3VyZSBjb250YWluZXIgc3luYyBpbmNyZW1lbnRlZCBvbiBzb3J0LCBpbnNlcnQgYW5kIHJlbW92ZQoKMjAxMC0wNC0yOCAwNzoyMCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X250b3AuYzoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaXggbWFrZWZpbGUgZm9yIHRlc3QgdGFyZ2V0CgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcDoKCiAgIG1ha2UgdGhlIHRlc3Qgc3VpdGUgcnVuIG91dHNpZGUgdGhlIHNvdXJjZSBkaXJlY3RvcnkgYWdhaW4uCgoyMDEwLTA0LTI4IDAwOjMzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBkZWFsIHdpdGggb3V0LW9mLXNvdXJjZSB0cmVlIGJ1aWxkaW5nCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHRlc3RpbmcgdG8gY2hlY2sgY2VydGlmaWNhdGUgdG8gc2VjdXJpdHluYW1lIG1hcHBpbmdzIGFuZCBkZW5pYWxzCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBjcmVhdGVkIGEgbWFwcGVkIHVzZXIKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcDoKCiAgIGdlbmVyYXRlIG9iamVjdCBjb2RlIHdpdGggLWcgZGVidWdnaW5nCgoyMDEwLTA0LTI4IDAwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBtb3JlIGFjY3VyYXRlIGN1cnJlbnQgQVBJIHVzYWdlIGZvciBzY2FwaSBjb2RlCgoyMDEwLTA0LTI3IDIxOjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjZXJ0IGluaXQgZHVwbGljYXRlIGNhbGwgY2hlY2sKCjIwMTAtMDQtMjcgMjA6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb252ZXJ0IHVzZXIgZmluZ2VycHJpbnQgdG8gbG93ZXIgYW5kIHN0cmlwIGNvbG9uczsgYWRkIGV4dGVybgogICBwcm90b3R5cGUKICAgZm9yIGNlcnQgaW5pdCBzbyB3ZSBkb24ndCBuZWVkIGhlYWRlcgoKMjAxMC0wNC0yNyAyMDoxNSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc2VwYXJhdGUgY2VydCBpbml0IGFuZCBjZXJ0IGxvYWRpbmc7IGFkZCBjZXJ0U2VjTmFtZSBjb25maWcgdG9rZW4KCjIwMTAtMDQtMjcgMDM6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1lcmdlIE5FVFNOTVBfRlVOQ1RJT04gYW5kICFORVRTTk1QX0ZVTkNUSU9OIGFzc2VydCBjYXNlcwoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbG90cyBvZiBuZXcgY2VydCBmdW5jdGlvbmFsaXR5CiAgIC0gYWRkIHNzbCBmdW5jcyBmb3IgY2VydCBleHRlbnNpb25zIGFuZCBzc2wgY2VydCBjaGFpbnMKICAgLSBmdW5jdGlvbnMgYW5kIG5ldyBuZXRzbXBfY2VydF9tYXAgc3RydWN0IGZvciBsb29raW5nIHVwIGNlcnQKICAgbWFwcGluZ3MKICAgLSBhZGQgY2VydGlmaWNhdGUgbWFwcGluZyBmb3Igc2VjbmFtZQogICAtIGFkZCBjb2RlIHRvIGJ1aWxkIGNlcnQgY2hhaW5zCiAgIC0gYWRkIHN1YmplY3QgdG8gY2VydCBpbmRleCBjYWNoZQogICAtIHJlYnVpbGQgaW5kZXhlcyBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleAogICAtIHJlZm9ybWF0IGR1bXAgb3V0cHV0CiAgIC0gYWRkIE5TX0NFUlRfQ0EgYWxsb3dlZF91c2UgZmxhZwogICAtIGFkZCBzdWJqZWN0LCBpc3N1ZXIgYW5kIGlzc3Vlcl9jZXJ0IHRvIG5ldHNubXBfY2VydAogICAtIG1vdmUgY2VydCBjb250YWluZXIgc2V0dXAgdG8gaXRzIG93biBmdW5jdGlvbgogICAtIGFkZCBjZXJ0IHN1YmplY3QgbmFtZSBzdWJjb250YWluZXIKCjIwMTAtMDQtMjcgMDM6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgbW92ZSBpcHY2IHNwZWNpZmljIHZhciBkZWNsIGluc2lkZSBpZmRlZgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIENIQU5HRVM6IGFnZW50OiB0ZGF0YSBoZWxwZXIgbm93IHNhdmVzIGZsYWdzIHBhc3NlZCBkdXJpbmcKICAgY3JlYXRpb247IGFkZCB0ZGF0YQogICBmbGFnIHRvIE5PVCBjcmVhdGUgdGhlIHRhYmxlIGNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkIGludGVyZmFjZSBmb3IgZHVwbGljYXRpbmcgYSBjb250YWluZXIKICAgQ0hBTkdFUzogc25tcGxpYjogY29udGFpbmVyIGNoYW5nZXM6IGFkZCBmbGFncyBmaWVsZCB0byBjb250YWluZXIKICAgbWV0YS1kYXRhOwogICBjaGcgYmluYXJ5X2FycmF5IGNvbnRhaW5lciB0byB1c2UgY29udGFpbmVyIG1ldGEtZGF0YSBmbGFncwoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCBhIHRlc3QgdG8gdmVyaWZ5IHRoYXQgd2hlbiB0aGUgdHJhbnNwb3J0IGlzIGNvbmZpZ3VyZWQgd2l0aAogICBhIHJlbW90ZSBjZXJ0aWZpY2F0ZSBmaW5nZXJwcmludCB0aGUgY29ubmVjdGlvbiBpcyBkZW5pZWQKCjIwMTAtMDQtMjYgMjI6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIGFkZGVkIHRlc3RzIGZvciAtVCBmbGFnIHVzYWdlIGFuZCBpbnZhbGlkIHVzZXIgdXNhZ2UKCjIwMTAtMDQtMjYgMjA6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZDoKCiAgIGhhdmUgdGhlIGFsaWFzIHRyYW5zcG9ydCBzb3VyY2UgdGhlIHJpZ2h0IFN2M2NvbmZpZyBmaWxlCgoyMDEwLTA0LTI2IDIwOjUwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2Q6CgogICB3b3JraW5nIHN1cHBvcnQgb2YgVExTL0RUTFMgdGVzdGluZyBpbmNsdWRpbmcgY2VydCBnZW5lcmF0aW9uCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaG9ub3IgdGhlIGNvbmZpZyBkaXIgaWYgc3BlY2lmaWVkIHZpYSAtQwoKMjAxMC0wNC0yNiAyMDo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggcmVhbGxvYyBjYWxsIGZvciBidWZmZXJlZCBwYWNrZXRzCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgcHJvcGVyIHNraXAgb3V0cHV0IGZvciByZXBvcnRpbmcgcmVhc29uCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSBhZnRlciBiYWNrc2xhc2ggaW4gbWFjcm8KCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0cmFuc3BvcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMwMHVkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMxMHRjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMyMHVkcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYwZHRsc3VkcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MXRsc3RjcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM5OWFsaWFzX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LnByaXYsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC11c2VyLmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC11c2VyLnByaXY6CgogICB0ZXN0cyBmb3IgbWluaW1hbGx5IHRlc3RpbmcgYWxsIHRoZSB0cmFuc3BvcnRzCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRToKCiAgIG1pbmltYWxseSBkb2N1bWVudCBuZXcgUlVORlVMTFRFU1RTIHNjcmlwdAoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL1QyLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwgICAKICAgICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzLCAgIAogICAgICB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLCB0ZXN0aW5nL21pc2N0ZXN0LmMsICAKICAgICAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICBkZWxldGVkIG9sZCBmaWxlcyBub3Qgd29ydGggcmVzdG9yaW5nCgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdGVzdGxpc3Q6CgogICByZW1vdmUgb2Jzb2x1dGUgdGVzdCBsaXN0CgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmM6CgogICBhIGhhc2gtdGVzdGluZyAuYyBmaWxlIEkgaGFkIGxheWluZyBhcm91bmQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIHRlc3RhbGwgdGFyZ2V0CgoyMDEwLTA0LTI2IDIwOjQ3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2MywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICBtb3ZlIG9sZCBDLWNvZGUgdGVzdHMgaW4gcGxhY2UKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZDoKCiAgIHNraXAgc29sYXJpcyBjb21tZW50cwoKMjAxMC0wNC0yNiAyMDo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnZvY2F0aW9uIG9mIFJVTkZVTExURVNUUwoKMjAxMC0wNC0yNiAyMDo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YxY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2MmNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2FnZW50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlndHJhcGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdmFueWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N0cmFuc3BvcnQsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2FnZW50LCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQsIHRlc3RpbmcvdGVzdHMvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1QUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI2c25tcHYzZ2V0U0hBQUVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtYXV0aCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QyLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybCwgdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgdGVzdGluZy90ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgIAogICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdjoKCiAgIE5FV1M6IHRlc3Rpbmc6IEJyYW5kIG5ldyB0ZXN0IHN1aXRlIGRlc2lnZW5lZCB0byBldmVudHVhbGx5IHRlc3QKICAgbW9yZSBmdW5jdGlvbmFsaXR5LCBwcm92aWRlIGZvciBzdXBwb3J0IG9mIHVuaXQtdGVzdHMgYW5kIHN1cHBvcnQKICAgb2YgQVBJIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgcmVtb3ZlZCBhIGRlYnVnZ2luZyBlY2hvCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgbW9yZSBidWcgZml4ZXMgZm9yIHN0cmluZyBzZWFyY2hlcwoKMjAxMC0wNC0yNiAyMDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGFkZGVkIGEgbmV3IG1hY3JvIHRvIGNoZWNrIGEgdHJhcGQgY291bnQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICB1c2UgaW5kaXZpZHVhbCBvdXRwdXQgZmlsZXMgYW5kIGZpeCBzb21lIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtYWRlIGV4aXN0aW5nIHRlc3Qgc3VpdGUgcHV0IG91dCBUQVAgb3V0cHV0CgoyMDEwLTA0LTI2IDIwOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsICAgCiAgICAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2Z1bGx0ZXN0cywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvcnVuX29sZHVjZDoKCiAgIGJlZ2lubmluZyBvZiBtb3ZpbmcgVUNEIHRlc3Qgc3VpdGUgaW50byBhIGxhcmdlciBzdWJkaXJlY3RvcnkKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgYWxsb3cgcnVubmluZyB0ZXN0cyB0aGF0IG1hdGNoIGEgcmVnZXhwCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1bW1hcml6ZSB0ZXN0cyB0aGF0IGZhaWxlZAoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgcnVuXyBzY3JpcHRzIGZvciBleGVjdXRpbmcgY2VydGFpbgogICB0eXBlcwoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWRlIHRoZSBidWlsZC1zY3JpcHQtY2hlY2sgcm91dGluZSBnZW5lcmljCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgZm9yIGJ1aWxkIHNjcmlwdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgcHJvdmlkZSBpbmZyYXN0cnVjdHVyZSBmb3IgYnVpbGRpbmcgYW5kIHJlbmFtaW5nIHRlc3RzCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1vcmUgdGVzdCBpbmZyYXN0cnVjdHVyZSBzZXR1cAoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzdXBwb3J0IHRoZSBrZXl3b3JkICdhbGwnCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGVuYWJsZSBncm91cCBnYXRoZXJpbmcKCjIwMTAtMDQtMjYgMjA6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY3JlYXRpbm8gb2YgYSBuZXcgdGVzdGluZyBoYXJuZXNzCgoyMDEwLTA0LTI1IDE3OjM3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZS4KCjIwMTAtMDQtMjUgMTU6MjEgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogcmV2ZXJ0ZWQgYSByZWNlbnQgdW5uZWNlc3NhcnkgbW9kaWZpY2F0aW9uLgoKMjAxMC0wNC0yNSAxNTowMCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIG11bHRpcGxlIC0tc2FuIGFyZ3MsIGNoZWNrIGVycm9yIGNvZGVzIG9uIG9wZW5zc2wgY21kcyBhbmQKICAgZGllIG9uIGZhaWx1cmUKCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBXaW4zMjogYnVpbGRzIGFnYWluIHdpdGggU0RLIHN1cHBvcnQgZGlzYWJsZWQuCgoyMDEwLTA0LTI1IDE0OjE4ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgCiAgICAgICAgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiByZXN0b3JlZCBjb25zaXN0ZW5jeSBiZXR3ZWVuIHdvcmtzcGFjZS1idWlsZCBhbmQgYmF0Y2gKICAgYnVpbGQgLS0gbWFkZSBzdXJlIHRoYXQgbm90aWZpY2F0aW9uX2xvZy5jIGlzIG9ubHkgaW5jbHVkZWQgaW4KICAgdGhlIG5ldHNubXBtaWJzIHByb2plY3QuCgoyMDEwLTA0LTI1IDEzOjU4ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAKICAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBXaW4zMjogZml4ZXMgZm9yIHJlY2VudGx5IGludHJvZHVjZWQgYnVpbGQgYnJlYWthZ2UuCgoyMDEwLTA0LTI1IDEzOjUxICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTM6NDggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvY2xvc2VkaXIuYywgc25tcGxpYi9vcGVuZGlyLmMsICAKICAgICAgIHNubXBsaWIvcmVhZGRpci5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBXaW4zMiBNU1ZDIDYgbm9uLVNESyBidWlsZCB3b3JrcyBhZ2Fpbi4KCjIwMTAtMDQtMjUgMTM6NDIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgdHJhbnNmb3JtYXRpb24gcnVsZS4KCjIwMTAtMDQtMjUgMTI6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTWFkZSBpdCBhZ2FpbiBwb3NzaWJsZSB0byBkaXNhYmxlIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLIHdoZW4KICAgYnVpbGRpbmcgdmlhIHdpbjMyL2J1aWxkLmJhdC4KCjIwMTAtMDQtMjMgMTM6MTQgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIC0tc2FuIEROUzphLmIuYyBoYW5kbGluZywgaGVscCB0ZXh0IGZpeGVzLCBvdGhlciBidWcgZml4ZXMuCiAgIE5vdGUgbXVsdGlwbGUgLS1zYW4gbm90IHN1cHBvcnRlZCB5ZXQKCjIwMTAtMDQtMjEgMjI6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYnVpbGQgdGhlIC5tYWRlIHZlcnNpb24gb2YgbmV0LXNubXAtY2VydAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kIGFmdGVyIG1vdmluZyBhbGwgdGhlIGZpbGVzIGFyb3VuZAoKMjAxMC0wNC0yMSAyMDoxNiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBidWlsZCB0cnVzdCBjaGFpbiBmb3IgY2xpZW50IGNlcnQ7IGFkZCBzdWJqZWN0IHRvIGluZGV4IGNhY2hlOwogICByZWJ1aWxkIGluZGV4ZXMKICAgaWYgYW55IGVycm9yIHdoaWxlIHBhcnNpbmcgaW5kZXg7IHJlZm9ybWF0IGR1bXAgb3V0cHV0CiAgIC0gYWRkIE5TX0NFUlRfQ0EgYWxsb3dlZF91c2UgZmxhZwogICAtIGFkZCBzdWJqZWN0LCBpc3N1ZXIgYW5kIGlzc3Vlcl9jZXJ0IHRvIG5ldHNubXBfY2VydAogICAtIG1vdmUgY2VydFRvVFNOX2VudHJ5IHRvIGNlcnRfdXRpbCBoZWFkZXIKICAgLSBtb3ZlIGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIHN1YmplY3QgbmFtZSBzdWJjb250YWluZXIKICAgLSBhZGQgbmV0c25tcF9vcGVuc3NsX2NlcnRfZHVtcF9leHRlbnNpb25zLAogICBuZXRzbm1wX29wZW5zc2xfY2VydF9pc3N1ZWRfYnkKCjIwMTAtMDQtMjEgMTY6MTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZG9jdW1lbnQgdGhlIHNpbmdsZS1kYXNoIC8gc25tcC5jb25mIC8gZG91YmxlLWRhc2ggcHJlY2lkZW5jZQoKMjAxMC0wNC0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGluIHRoZSBzbm1wLmNvbmYgZmlsZSB0aGF0IHRoZSB0b2tlbnMgY2FuIGJlIHVzZWQgZm9yCiAgIGNvbW1hbmQgbGluZSBhcHBsaWNhdGlvbnMgdG9vCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIGZpbGUgbG9hZGluZyBvcmRlciBhbmQgaG93IHRvIHR1cm4gb2ZmIGhvc3Qtc3BlY2lmaWMKICAgY29uZmlnCgoyMDEwLTA0LTIxIDE1OjUyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogYXBwczogR2VuZXJpYyBob3N0LXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc25tcC5jb25mIGZpbGVzCiAgIGFyZSBub3cgcmVhZC4gU2VlIHRoZSBIT1NULVNQRUNJRklDIEZJTEVTIHNlY3Rpb24gb2YgdGhlCiAgIHNubXAuY29uZiBtYW51YWwgcGFnZS4KCjIwMTAtMDQtMjAgMTI6NDQgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyOTcxMjcwOiByZWZ1c2UgdG8gcGFyc2UgQVNOLjEgdG9rZW5zCiAgIHdpdGggd3JvbmcgdHlwZSBmaWVsZC4KICAgVGhpcyBtYXkgeWllbGQgdG8gcHJvYmxlbXMgd2l0aCB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlvbnMgd2hpY2gKICAgbWF5IGRlcGVuZCBvbiBwYXJzaW5nIHVnbHkgQVNOLjEgZGF0YSAtIHdlJ2xsIHNlZS4uLgoKMjAxMC0wNC0yMCAwMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb21iaW5lIHJlbW90ZSBmaW5nZXJwcmludCBjaGVja2luZyBhbmQgY2hlY2sgYm90aCBzaWRlcwoKMjAxMC0wNC0yMCAwMDowNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBpZiB0aGUgcmVtb3RlIGZpbmdlcnByaW50IGlzIHNwZWNpZmllZCwgcmVxdWlyZSBhbiBleGFjdCBtYXRjaAoKMjAxMC0wNC0xOSAyMzo0NCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IHZhcmlvdXMgbWlub3IgYnVncywgZXNwZWNpYWxseSBpbiBvdXRwdXQgbWVzc2FnZXMKCjIwMTAtMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGRvY3VtZW50YXRpb24gYW5kIHByb3RvdHlwaW5nIG9mIG5lZWRlZCBSRkMgc3RlcHMKCjIwMTAtMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjb252ZXJ0IGlmIGVycm9yIGNoZWNrIHRvIHJldHVybiBpbW1lZGlhdGVseSBzbyBvdGhlciBjb2RlIGNhbiBiZQogICBvdXRkZW50ZWQKCjIwMTAtMDQtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIFJGQyB0ZXh0CgoyMDEwLTA0LTE4IDE1OjI1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgd2luMzIvYnVpbGQucGwsIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi90cmFuc3BvcnRzLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBXaW4zMjogYnVpbGRzIGFnYWluLgoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSBzZWN1cml0eU5hbWUgZnJvbSB0aGUgY2VydAoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGRvbid0IG5lZWQgdG8gc2V0IHRoZSBhY2NlcHQgc3RhdGUgZm9yIFRMUyAoanVzdCBEVExTKQoKMjAxMC0wNC0xNiAxODo1MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgVExTIGNvbW1lbnQgZG9jdW1lbnRhdGlvbiBhbmQgc3RlcHMgdGFrZW4gZnJvbSB0aGUgUkZDCgoyMDEwLTA0LTE2IDEzOjU1ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBudW1lcm91cyBmaXhlcywgbW9yZSB2ZXJib3NlIGRlZmF1bHQgb3V0cHV0LCBhZGRpdGl2ZSBzaG93IGZsYWdzLAogICBhcmJpdHJhcnkgY29uZmlnIHBhcmFtIGhhbmRsaW5nLCBiZXR0ZXIgaGVscCB0ZXh0CgoyMDEwLTA0LTE2IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGRvbid0IGRvdWJsZSBkZWNsYXJlIGEgc3RydWN0CgoyMDEwLTA0LTE2IDAzOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNlcnQgdXRpbCBmaXhlcwogICAtIHJlbW92ZSB1bnVzZWQgdmFycyBhbmQgZHVwbGljYXRlIGNvZGUKICAgLSBjaGVjayBwcnQgYmVmb3JlIGZyZWUKICAgLSBuZXcgZnVuYyBmb3IgdHlwZSBmcm9tIGZpbGVuYW1lCiAgIC0gbmV3IGZ1bmN0aW9ucyBmb3IgZmluZGluZyBzdWJzZXRzIGZyb20gZmlsZW5hbWUKICAgLSBmaXggdHlwZXMgaW4ga2V5IHNlYXJjaCBmdW5jdGlvbiBidXQgdGhlbiBpZmRlZiBpZiAodW51c2VkCiAgIGZ1bmN0aW9uKQoKMjAxMC0wNC0xNSAyMjo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICB1c2UgYSBzdHJ1Y3R1cmUgcmVmZXJlbmNlIHRvIHByZWRlY2xhcmUgdGhlIHN0cnVjdHVyZQoKMjAxMC0wNC0xNSAyMToyNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBjb3JyZWN0IGRlY2xhcmF0aW9uIG9mIHRoZSBmX29wZW4gY29tbWFuZCBub3cgcmVxdWlyaW5nIHJldHVybmluZwogICBhIHRyYW5zcG9ydAoKMjAxMC0wNC0xNSAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBjb25maWcgY29udGFpbmVyCgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvcHkgZmluZ2VycHJpbnQgdHJhbnNwb3J0IGluZm9ybWF0aW9uIGludG8gbmV3IHRscyBzdHJ1Y3R1cmUKICAgd2l0aGluIERUTFNVRFAgc28gcGVyLXRyYW5zcG9ydCBmaW5nZXJwcmludHMgY2FuIGJlIHNwZWNpZmllZAoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBwcm9wZXJseSBjaGVjayBmb3IgdGxzYmFzZSBwb2ludGVycyBpbiBkdGxzdWRwX3NlbmQoKQoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBncmVwIHRoZSB0cmFuc3BvcnQgbGlzdCBmb3IgVExTIG5vdCBqdXN0IERUTFMgZm9yIGNoZWNraW5nIGZvcgogICAtbHNzbAoKMjAxMC0wNC0xNSAyMTowMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGJ1ZyBmaXhlcyBhbmQgbWFkZSBUTFNUQ1Agd29yayB3aXRoIHRoZSAtVCBmbGFnCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtYWtlIHRoZSBmX29wZW4gY2FsbCBhc3NpZ24gdGhlIG5ldyB0cmFuc3BvcnQgcG9pbnRlciB0byB1c2UgKGFuZAogICBjaGVjayBpZiBOVUxMIGFzIGEgZmFpbHVyZSBjb25kaXRpb24KCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbiB3b3JrIG1vdmluZyBEVExTIGNvbmZpZyByb3V0aW5lIGluIHBsYWNlCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcGFzcyB0aGUgZW50aXJlIHRsc2Jhc2UgdG8gdGhlIGNsaWVudF9zZXR1cAoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIHNubXBsaWIvc25tcF9hcGkuYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzdGFydGluZyB0aGUgc3RvcmluZyBvZiBjb25maWcgZGF0YSBpbnRvIHRoZSB0bHNiYXNlCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNoYW5nZSBjbGllbnQgc3NsIHNldHVwIHRvIGFsbG93IGZvciBkaXJlY3QgZmluZ2VycHJpbnQKICAgc3BlY2lmaWNhdGlvbiBvZiBteS90aGVpciBjZXJ0cwoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNwbGl0IFRMUyBpbnRvIGNyZWF0aW9uL2Nsb3NlIGZ1bmN0aW9ucyBmb3IgZXZlbnR1YWwgY29uZmlnCiAgIHBhc3Npbmcgc3VwcG9ydAoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhc3MgdHJhbnNwb3J0IGNvbmZpZyBkYXRhIHRvIHRoZSB0cmFuc3BvcnQgZl9jb25maWcoKSBmdW5jdGlvbgoKMjAxMC0wNC0xNSAyMDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV0dXJuIE5VTEwgb24gdHJhbnNwb3J0IGNvbmZpZyBlcnJvcgoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiAtVCBjb21tYW5kIGxpbmUgZmxhZyBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUKICAgdHJhbnNwb3J0cwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2hlY2sgdHJhbnNwb3J0IE5VTExuZXNzIGJlZm9yZSB1c2luZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBiZWdpbm5pbmcgb2Ygd29yayB0byBtYWtlIHRyYW5zcG9ydHMgY29uZmlndXJhYmxlIHdpdGgKICAgc3VwcGxpbWVudGFsIGNvbmZpZ3VyYXRpb24gZGF0YSBhbmQgbmV3IGNhbGxzIGZvciBmX29wZW4vZl9jb25maWcKCjIwMTAtMDQtMTUgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBhZGRlZCB0ZXh0IGluIGNvbW1lbnRzIGZyb20gZnV0dXJlIFJGQyB0byBkb2N1bWVudCB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDQtMTUgMTg6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFyayBwZW0gdy9rZXkgYXMgaWRlbnRpdHk7IHR3ZWFrIHBhcnRuZXIgZGVidWc7IGNvbXBhcmUgZmlsZQogICBjdGltZSBhZ2FpbnN0IGluZGV4IHRvbwoKMjAxMC0wNC0xNSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgbG9jYWwgc3BhY2UgdG8gcmVmb3JtYXQgY2VydCBmb3Igc2VhcmNoCgoyMDEwLTA0LTE1IDE2OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUGFydGlhbGx5IHJldmVydGVkIHIxODQ5NjoKICAgLSBDb21tZW50ZWQgb3V0ICNkZWZpbmUgTkVUU05NUF9VU0VfRExMIGFnYWluIGluIGZpbGUKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggb24gdGhlIDUuNCBicmFuY2guIFRoaXMgY2hhbmdlCiAgIGhhZCBiZWVuIGNvbW1pdHRlZCB1bmludGVudGlvbmFsbHkuCiAgIC0gUmUtZW5hYmxlZCAjZGVmaW5lCiAgIFVTSU5HX05PVElGSUNBVElPTl9MT0dfTUlCX05PVElGSUNBVElPTl9MT0dfTU9EVUxFIGluCiAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmggb24gdGhlIHRydW5rIGFuZCB0aGUKICAgVjUuNSBicmFuY2guIFdoaWxlIGJ1aWxkLmJhdCByZXBvcnRzIGFuIGVycm9yIG9uIGVhcmxpZXIgYnJhbmNoZXMKICAgd2l0aCB0aGlzIHN5bWJvbCBlbmFibGVkLCB0aGVyZSBpcyBubyBzdWNoIHByb2JsZW0gb24gdGhlIHRydW5rCiAgIG9yIFY1LjUgYnJhbmNoZXMgYW5kIGhlbmNlIHRoZXJlIHdhcyBubyByZWFzb24gdG8gZGlzYWJsZSB0aGlzCiAgIHByZXByb2Nlc3NvciBzeW1ib2wuCgoyMDEwLTA0LTE1IDE1OjA4ICBtYXJ6CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldC1zbm1wLWNlcnQgdG8gbWFrZS9pbnN0YWxsCgoyMDEwLTA0LTE1IDEwOjUyICBqc2FmcmFuZWsKCiAgICogdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0OgoKICAgVGVzdHMgbm90IHdvcmtpbmcgZm9yIFRDUCBzaG91bGQgYmUgc2tpcHBlZCBhbHNvIGZvciBUQ1A2LgoKMjAxMC0wNC0xNCAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBmaXggdmFycy90ZXh0IGZyb20gY3V0LW4tcGFzdGUKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGNvbW1lbnRzCgoyMDEwLTA0LTE0IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGxvdHMgb2YgY2VydCB1cGRhdGVzCiAgIC0gY2hhbmdlIGNlcnQgc3ViZGlyIHNlYXJjaGluZyB0byBtYXRjaCBuZXQtc25tcC1jZXJ0CiAgIC0gdXBkYXRlIGtleSB0eXBlIGhhbmRsaW5nCiAgIC0gaWdub3JlIHdvcmxkIHJlYWRhYmxlIGtleXMKICAgLSBrZWVwIHR5cGUgaW4gaW5kZXhlcwogICAtIHR3ZWFrIGNlcnQva2V5IHByaW50IGZvcm1hdAoKMjAxMC0wNC0xNCAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWtlIG5ldC1zbm1wLWNlcnQgZXhlY3V0YWJsZQoKMjAxMC0wNC0xNCAxMzoxMiAganNhZnJhbmVrCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIEZpeGVkIHRlc3RzICdQcm94eSBHRVQvU0VUIHN1cHBvcnQnIGFuZCAnU05NUHYyIHZhY20gZGVuaWFsCiAgIHN1cHBvcnQnIHdpdGggdWRwNiB0cmFuc3BvcnQuCgoyMDEwLTA0LTE0IDA5OjQ3ICBkdHMxMgoKICAgKiAgd2luMzIsIHdpbjMyL2Jpbiwgd2luMzIvZGlzdCwgd2luMzIvZGlzdC9odG1saGVscCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIsIHdpbjMyL2Rpc3Qvc2NyaXB0cywgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgCiAgICAgICAgd2luMzIvbGliLCB3aW4zMi9saWJhZ2VudCwgd2luMzIvbGliaGVscGVycywgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLCB3aW4zMi9saWJzbm1wLCB3aW4zMi9saWJzbm1wX2RsbCwgICAKICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbG9jYWwsIHdpbjMyL25ldC1zbm1wLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudCwgd2luMzIvbmV0LXNubXAvbGlicmFyeSwgd2luMzIvbmV0c25tcG1pYnMsICAKICAgICAgIHdpbjMyL3NubXBidWxrZ2V0LCB3aW4zMi9zbm1wYnVsa3dhbGssIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEsIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGdldCwgd2luMzIvc25tcGdldG5leHQsICAKICAgICAgIHdpbjMyL3NubXBuZXRzdGF0LCB3aW4zMi9zbm1wc2V0LCB3aW4zMi9zbm1wc3RhdHVzLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUsIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcCwgd2luMzIvc25tcHRyYXBkLCB3aW4zMi9zbm1wdXNtLCB3aW4zMi9zbm1wdmFjbSwgICAKICAgICAgd2luMzIvc25tcHdhbGs6CgogICBEb24ndCB0cnkgdG8gU1ZOLW1hbmFnZSB0aGUgV2luZG93cyBiYXRjaCBidWlsZCBpbmZyYXN0cnVjdHVyZQogICAoYWRkIHJlbGVhc2UsIGRlYnVnLCBNYWtlZmlsZSB0byB0aGUgcHJldmlvdXMgaWdub3JlIGxpc3QpCgoyMDEwLTA0LTE0IDA4OjE2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBXaW5kb3dzIGJhdGNoIGJ1aWxkIHVzaW5nIFZpc3VhbCBTdHVkaW8gd2l0aCBkeW5hbWljIGxpbmtpbmcuCiAgIFVucmVmZXJlbmNlZCBzeW1ib2wgaW50cm9kdWNlZCBieSBTVk4gcmV2aXNpb24gMTgzOTMKCjIwMTAtMDQtMTQgMDg6MDggIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogRml4IGJhdGNoIGJ1aWxkIHVzaW5nIHJlY2VudCB2ZXJzaW9ucyBvZiBWaXN1YWwKICAgU3R1ZGlvLgogICBQYXJ0aWFsIGJhY2sgcG9ydCBvZiBTVk4gcmV2aXNpb25zIDE3NTczIGFuZCAxNzY5Ni4KCjIwMTAtMDQtMTQgMDE6NDcgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBwZXJtcyBvbiBjcmVhdGVkIGZpbGVzIC1ydy0tLS0tLS0sIHVtYXNrKDA3NykKCjIwMTAtMDQtMTMgMjI6MTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgZml4IHBlcm1zLCBhZGQgLS1jbi8tYywgYmV0dGVyIGRhdGVzIGRlZmF1bHRzLCBzbm1wLXRscyBvcmdfdW5pdCwKICAgYWRkZWQgaW5pdGlhbCBkdW1teSBjb25maWcgZmlsZQoKMjAxMC0wNC0xMyAxNDoyMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4ZXMgZm9yIHNob3cgY21kcywgY21kbGluZSwgaGVscAoKMjAxMC0wNC0xMyAwMjoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgc3VwcG9ydCBmb3Iga2V5K2NlcnQgaW4gLnBlbSBmaWxlczsgbWlzYyB0d2Vha3MKCjIwMTAtMDQtMTAgMjM6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYnVpbGQgZml4IGZvciBDODkgY29tcGlsZXJzIChlLmcuIG9uIEhQLVVYIDEwLjIwKQoKMjAxMC0wNC0xMCAyMjoyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgaW5pdGlhbCBjdXQgYXQgdGxzdG1DZXJ0VG9UU05UYWJsZQoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaDoKCiAgIGFkZCBkZWZpbmUgb2YgbWF4IGhhc2ggY29uc3RhbnQKCjIwMTAtMDQtMTAgMjI6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVzZSBjZXJ0IHV0aWwgY2hlY2sgZm9yIGZpbmdlcnByaW50IGxlbi9hbGdvcml0aG0KCjIwMTAtMDQtMTAgMTI6NTkgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHNob3cgY21kIGZpeGVzCgoyMDEwLTA0LTA5IDIxOjMyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmYWlybHkgZnVuY3Rpb25hbCAobm9uLWludGVyYWN0aXZlKSAtIGJlIGl0IGtub3duOiB0aGVyZSBhcmUgYnVncwoKMjAxMC0wNC0wOSAyMDo1NCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oOgoKICAgbWVyZ2Ugc29tZSB0YWJsZV9kYXRhLmNvbmYgY2hhbmdlczsgcmVtb3ZlIHVudXNlZCBjb2RlIGFuZCBhCiAgIGJ1bmNoIG9mIHZlcmJvc2UgY29tbWVudHMKCjIwMTAtMDQtMDggMTQ6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB1c2UgZnVsbCBwYXRoCgoyMDEwLTA0LTA4IDEwOjU1ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBDaGVjayByZXN1bHRzIG9mIGNhbGxzIHRvIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZSBhbmQgbG9nCiAgIGFuIGVycm9yLgogICBUaGlzIGFsbG93cyB1c2VycyB0byByZWxhdGUgdmFyaW91cyAnYzY0IDMyIGJpdCBjaGVjayBmYWlsZWQnCiAgIGVycm9ycyB3aXRoIHNwZWNpZmljIGNvdW50ZXIuCgoyMDEwLTA0LTA4IDAxOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV3IGZ1bmN0aW9uCgoyMDEwLTA0LTA4IDAxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHRyYW5zbGF0ZSBOT1NVQ0gqL0VORE9GTUlCIGVycm9ycyBkdXJpbmcgUkVTRVJWRTEKICAgdG8gTk9DUkVBVElPTgoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIE5FV1M6IHNubXBkOiB0YWJsZV9kYXRhL3RkYXRhIG5leHQgaGFuZGxlciB3aWxsIG5vdCBiZSBjYWxsZWQKICAgZHVyaW5nIGdldAogICBwcm9jZXNzaW5nIGlmIG5vIHZhbGlkIHJvd3MgYXJlIGZvdW5kIGZvciB0aGUgaGFuZGxlcgoKMjAxMC0wNC0wOCAwMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIE5FV1M6IHNubXBkOiBhZ2VudCB3aWxsIG5vIGxvbmdlciBjYWxsIHRhYmxlIGhhbmRsZXJzIGlmIGEgc2V0CiAgIHJlcXVlc3QgZm9yCiAgIHRoZSBoYW5kbGVyIGhhcyBpbnZhbGlkIGluZGV4ZXMKICAgQ0hBTkdFUzogc25tcGQ6IGRvbid0IGNhbGwgY2xlYW51cCBvbiBmaXJzdCByZXF1ZXN0IG9uIGJhZAogICBpbmRleGVzLiBpbnN0ZWFkLAogICBzZXQgYWN0dWFsIGVycm9yIGxhdGVyLCBhbmQgZnJlZSByZXF1ZXN0IGRhdGEgc2V0cyBvbiBmaXJzdAogICByZXF1ZXN0IGZvciBzZXRzCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGZpbmdlcnByaW50IHZhcmJpbmQKCjIwMTAtMDQtMDcgMjI6NTYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU29sYXJpcyB0ciBkb2Vzbid0IHN1cHBvcnQgY2hhcmFjdGVyIHJhbmdlcyByZWxpYWJseSAoc2VlIHRoZQogICBhdXRvY29uZiBtYW51YWwpLCBjaGFuZ2UgdGhlIGV4cHJlc3Npb24gdG8gb25lIHRoYXQgaXMgc2ltcGxlCiAgIGVub3VnaCB0byBiIHN1cHBvcnRlZC4KCjIwMTAtMDQtMDcgMTQ6MDUgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEluc2VydCB0aGUgY2FjaGUgaGVscGVyIGNvcnJlY3RseS4KCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBmdW5jdGlvbnMgdG8gcmVtb3ZlIGxpc3Qvcm93IGRhdGEgZnJvbQogICByZXF1ZXN0IGxpc3QKCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBpZmRlZiB2YXIgZGVjbCBmb3IgdmFycyBvbmx5IHVzZWQgaW4gbGF0ZXIgaWZkZWYgYmxvY2sKCjIwMTAtMDQtMDcgMTA6NDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9jaGVja192YXJiaW5kLmMsICAgCiAgICAgIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIFJvd1N0YXR1cyBhbmQKICAgU3RvcmFnZVR5cGUgdmFyYmluZHMKICAgLSBhbHNvIHJlbW92ZSBzb21lIGR1cGxpY2F0ZSBjb2RlIGFuZCBmaXggY29tbWVudHMgaW5kZW50IG1hbmdsZWQKCjIwMTAtMDQtMDcgMTA6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGUsIG1hbi9taWIyYy11cGRhdGUuMS5kZWY6CgogICB1cGRhdGUgbWFuIHBhZ2U7IGZpeCBzaGVsbCByZWRpcmVjdDsgY3JlYXRlIGV4YW1wbGUgcmNmaWxlIGlmCiAgIG1pc3NpbmcKCjIwMTAtMDQtMDcgMDc6MTUgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgVXNlIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORyBpbnN0ZWFkIG9mIERJU0FCTEVfTUlCX0xPQURJTkcKCjIwMTAtMDQtMDcgMDA6MzggIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogT25seSBlbmFibGUgaG9zdFN3SW5zdCBycG0gc3VwcG9ydCBvbiBsaW51eCBob3N0cwogICB3aXRoIGxpYnJwbS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBub24tcnBtIGxpbnV4CiAgIGRpc3RyaWJ1dGlvbnMuCgoyMDEwLTA0LTA3IDAwOjE0ICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgQ0hBTkdFUzogdGVzdGluZzogQ2hhbmdlIHRoZSB0ZXN0IHN1aXRlIHRvIHdvcmsgZXZlbiBpZiBtaWIKICAgbG9va3VwIGlzIGRpc2FibGVkLgoKMjAxMC0wNC0wNyAwMDoxMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzY6CgogICBDaGVjayBmb3IgY29tMnNlYzYsIG5vdCBjb20yc2VjLgoKMjAxMC0wNC0wNiAyMjo1MSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBNb3ZlIGRpcmVjdG9yeSBjcmVhdGlvbiBiZWZvcmUgdGhlIGRpcmVjdG9yaWVzIGFyZSB1c2VkLgoKMjAxMC0wNC0wNiAxMTowMyAgZHRzMTIKCiAgICogRkFROgoKICAgUHl0aG9uIGlzIGFwcGFyZW50bHkgY2xpZW50LXNpZGUgb25seS4KCjIwMTAtMDQtMDYgMTA6MDYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTZXQgc3VwcGxlbWVudGFyeSBncm91cHMgYmVmb3JlIGNoYW5naW5nIFVJRAogICAod2hpY2ggcHJvYmFibHkgaW52b2x2ZXMgZ2l2aW5nIHVwIHByaXZpbGVnZXMpCgoyMDEwLTA0LTA2IDA4OjU3ICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBEb2N1bWVudCBsYXJnZS1kaXNrIHN0YXRpc3RpY3MgYXMgbGF0Y2hpbmcgYXQgMlRiIChyYXRoZXIgdGhhbgogICB3cmFwcGluZykuCgoyMDEwLTA0LTA2IDAxOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMsIG1hbi9taWIyYy4xLmRlZjoKCiAgIE5FV1M6IG1pYjJjOiBtaWIyYyBjYW4gbm93IG9wdGlvbmFsbHkgcnVuIHNlZCBvbiBnZW5lcmF0ZWQgY29kZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY29udmVydCBDKysgY29tbWVudHMgdG8gQyBjb21tZW50cwoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbW92ZSBwdHIgY2hlY2sgYmVmb3JlIHBydCB1c2UKCjIwMTAtMDQtMDYgMDE6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGZpbGVuYW1lIHRvIGRlYnVnIG9uIG5ldyBjZXJ0czsgbWFrZSBzdGF0aWMgZnVuYyB0byByZXR1cm4KICAgbW9kZSBuYW1lcwoKMjAxMC0wNC0wNiAwMDo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhbGxvdyBhIGZvdW5kIGZpbmdlcnByaW50IHNlbGYtc2lnbmVkIGNlcnQgZm9yIG5vdzsgZXZlbnR1YWxseQogICBuZWVkIHRvIHJlc3BlY3QgdGhlIE1JQiBjb25maWcgdGFibGUKCjIwMTAtMDQtMDYgMDA6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgbWtkaXIgc25tcGxpYi90cmFuc3BvcnRzIHdoZW4gRE5FIGZvciBidWlsZGluZyBvdXRzaWRlIHRoZSBzb3VyY2UKICAgZGlyCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwoKMjAxMC0wNC0wNiAwMDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZXJyb3IgY29kZSBjbGVhbnVwIGZvciB0bHNiYXNlX3dyYXB1cF9yZWN2CgoyMDEwLTA0LTA1IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbW9yZSBiZXR0ZXIgZXJyb3IvZGVidWcgY29kZXMKCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBjb21tZW50cyBmcm9tIHRoZSBmdXR1cmUtUkZDIGFib3V0IHRoZSBpbXBsZW1lbnRhdGlvbjsgdXNlCiAgIGZsYWdzIGZvciBzZXJ2ZXIvY2xpZW50IHNwZWNpZmljYXRpb24gZm9yIGV4cGFuc2lvbgoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgdXNhZ2UgY29uc3RyYWludHMKCjIwMTAtMDQtMDUgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIGZ1bmN0aW9uIHByb3RlY3Rpb24gbG9naWMgaW4gYSB0b3AtbGV2ZWwgY2hlY2sKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZml4IGluaXQgb3JkZXJpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtdiB0bHNiYXNlIGluaXQgZnVuY3Rpb24gdG8gYSBwcm9wZXIgY3RvciBmb3IgYXV0by1jYWxsaW5nCgoyMDEwLTA0LTAyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IGdlbmVyYXRlIHRoZSB0cmFuc3BvcnQgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gbGlzdAogICBkeW5hbWljYWxseSBhbmQgdXNlIGl0CgoyMDEwLTA0LTAyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3RyYW5zcG9ydHMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogbW92ZWQgdHJhbnNwb3J0IGNvZGUgaW50byBhIHNlcGFyYXRlIHN1YmRpcmVjdG9yeSBpbgogICBzbm1wbGliCgoyMDEwLTA0LTAyIDA5OjAyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYzoKCiAgIERvIG5vdCBhdHRlbXB0IHRvIGNoZWNrIHNpemVvZiB2b2lkIHRvIG9idGFpbiB0aGUgYW1vdW50IG9mCiAgIG1lbW9yeSB0byBjb3B5LgoKMjAxMC0wNC0wMSAxNzoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgaW5zdGVhZCBvZiBmd2QgZGVjbGFyZXMsIHJlcXVpcmUgb3RoZXIgaGVhZGVyCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMC0wNC0wMSAxNzoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSBvdXRkYXRlZCBkZWJ1ZyBtc2cKCjIwMTAtMDQtMDEgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY2VydGFwaSB0byBmaW5kIGNlcnRzL2tleXMKCjIwMTAtMDQtMDEgMTQ6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWdpc3RlciBleHRyYVg1MDlTdWJEaXIgdG9rZW4KCjIwMTAtMDQtMDEgMTQ6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBjaGVjayBwdHIgYmVmb3JlIHVzZQoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDEzOjEzICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgYWRkIHBlcnNpc3RlbnQgc3RvcmFnZTsgdG9rZW4gZm9yIGNyZWF0aW5nIGVudHJpZXMgaW4gc25tcGQuY29uZjsKICAgZml4IGluZGV4CgoyMDEwLTA0LTAxIDEzOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IGNlcnRpZmljYXRlIGFwaSB0byBzdXBwb3J0IHRscy9kdGxzCgoyMDEwLTA0LTAxIDEzOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgQ0hBTkdFUzogYWRkIGZ1bmN0aW9ucyB0byBnZXQgZmluZ2VycHJpbnQgZnJvbSBjZXJ0IGFuZCBsb2cKICAgb3BlbnNzbCBlcnJzCgoyMDEwLTA0LTAxIDEyOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCB0eXBvCgoyMDEwLTA0LTAxIDEwOjMzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDQtMDEgMTA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogdGFibGVfZGF0YSB0ZW1wbGF0ZSBlbmhhbmNlbWVudHMKICAgLSBhZGQgZXJyb3IgY2hlY2tzIGR1cmluZyB0YWJsZSBpbml0CiAgIC0gY3JlYXRlIGNhY2hlIGVhcmxpZXIgc28gd2UgY2FuIGJhaWwgb24gZmFpbHVyZQogICAtIGFkZCBvcHRpb24gdG8gY3JlYXRlL2RlbGV0ZSByb3cgdy9vdXQgYWRkaW5nL3JlbW92aW5nIGZyb20KICAgY29udGFpbmVyCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgYWRkIGhlbHBmdWwgcGFyYW0gbmFtZXMgYXMgaGludHMgaW4gcHJvdG90eXBlCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgc2VhcmNoIGZvciBjb250YWluZXIgc3BlY2lmaWMgY29udGFpbmVyIGJlZm9yZSBnZW5lcmljCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBORVdTOiBzbm1wbGliOiBlbmhhbmNlIGZpbGUgdXRpbHMgYW5kIGRpciB1dGlscwogICAtIGFkZCBvcHRpb25hbCBzdGF0cyBzdHJ1Y3QgdG8gbmV0c25tcF9maWxlCiAgIC0gZ2VuZXJhbGl6ZSBkaXIgY29udGFpbmVyIGZpbHRlciwgYWRkIGNvbnRleHQgdG8gY2FsbGJhY2sKICAgLSBhZGQgb3B0aW9uIHRvIHN0b3JlIG5ldHNubXBfZmlsZXMgKHcvc3RhdHMpIGluIGNvbnRhaW5lcgogICBpbnN0ZWFkIG9mIGp1c3QgbmFtZQoKMjAxMC0wNC0wMSAxMDowMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHByb3RvdHlwZSB0byBoZWFkZXI7IGNoZWNrIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZwoKMjAxMC0wMy0zMSAxNTozNCAganNhZnJhbmVrCgogICAqICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvc25tcC1icmlkZ2UtbWliLCBtYW4vTWFrZWZpbGUuaW4sICAgCiAgICAgIG1hbi9zbm1wLWJyaWRnZS1taWIuMSwgbWlicy9CUklER0UtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5pbiwgICAKICAgICAgbWlicy9NYWtlZmlsZS5taWI6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMjk1MjcwODogZnJvbSBKZW5zIE9zdGVya2FtcDogQWRkZWQgUGVybAogICBpbXBsZW1lbnRhdGlvbiBvZiBCUklER0UtTUlCCgoyMDEwLTAzLTMxIDAyOjEyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3BlciBwYWNrZXQgbGFiZWxpbmcgZm9yIERUTFNVRFAKCjIwMTAtMDMtMzEgMDI6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdXNlIGNvbW1vbiBjb250ZXh0IGNyZWF0aW9uIGNvZGUKCjIwMTAtMDMtMzAgMjM6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIFRMUyBtZXRob2QgdG8gVExTdjEgZnJvbSBTU0x2MjMKCjIwMTAtMDMtMzAgMjM6MjMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW92ZSBtb3JlIGNvbW1vbiBkYXRhIGFuZCBmdW5jdGlvbmFsaXR5IGludG8gdGhlIFRMUyBiYXNlCgoyMDEwLTAzLTMwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1pbm9yIFRMUyBjb2RlIGNsZWFudXAKCjIwMTAtMDMtMzAgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJld29yayBpZigpIHdyYXBwaW5nIGZvciBsZXNzIGNvbmZ1c2lvbiBpbiBlcnJvciBoYW5kbGluZwoKMjAxMC0wMy0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29kZSBjb25zb2xpZGF0aW9uIGluIHN0YXJ0X25ld19jYWNoZWRfY29ubmVjdGlvCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW5hbWUgZ2VuZXJpYyAnYmlvJyBwb2ludGVyIHRvICdyZWFkX2JpbycgZm9yIGJldHRlciByZWFkYWJpbGl0eQoKMjAxMC0wMy0zMCAyMDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbW92ZSBidWZmZXJlZCBkYXRhIGNyZWF0aW9uIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIHJldXNlCgoyMDEwLTAzLTMwIDE3OjUyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgZ2VuIHdyYXBwZXIgc2NyaXB0IC0gbm90IHdvcmtpbmcKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNsZWFuIHVwIGVycm9yIG91dHB1dCBzbyBpdCBkb2Vzbid0IHJlcG9ydCB3YW50X3JlYWQgYW5kCiAgIHdhbnRfd3JpdGUgZXJyb3JzCgoyMDEwLTAzLTMwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZW5hbWluZyBvZiBzZW5kaW5nIGZ1bmN0aW9uIGZvciBjbGFyaXR5IGFuZCBjaGVjayBvbmUgbW9yZQogICBsb2NhdGlvbiBmb3IgbmVlZGVkIG91dGdvaW5nIHBhY2tldHMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFkZGVkIGR0bHN1ZHAgdHJhY2luZyB0b2tlbnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDSEFOR0VTOiBhZGRlZCBhIG5ldyBERUJVR1RSQUNFVE9LKCkgbWFjcm8KCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJldHRlciBjb21tZW50cyBhbmQgbW9yZSB3b3JrIG9uIHNlbmRpbmcgYnVmZmVyZWQgZGF0YSBpbiB0aGUKICAgcmlnaHQgc3BvdHMKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFyZ3VtZW50cyB0byBnZXRfY29tbW9uTmFtZQoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIG9mIGNhY2hpbmcgb2YgcGFja2V0cyBiZWZvcmUgdGhleSBjYW4gYmUgc2VudCB2aWEgRFRMUwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgaGFuZGxlIFNTTF9XQU5UX1JFQUQvV1JJVEUgYmV0dGVyOyBzdGlsbCBuZWVkIHRvIGJ1ZmZlciBvdXRnb2luZwogICB3cml0ZSBkYXRhCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtaW5vciBjaGFuZ2UgdG8gb3V0cHV0IGVycm9yIHByaW50aW5nCgoyMDEwLTAzLTI5IDE1OjIwICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIE5FV1M6IHNubXBkOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUgbWF0Y2hpbmcgVkFDTSBlbnRyaWVzLgogICAoVXNlIHRoZSAiYmVzdCIgbWF0Y2gsIHJhdGhlciB0aGFuIHRoZSBmaXJzdCBvbmUpLgogICBSZXBvcnRlZCBieSBBZGFtIExld2lzLgogICBOb3RlIHRoYXQgdGhpcyBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgdGhlIGJlaGF2aW91ciBvZgogICBleGlzdGluZyBhY2Nlc3MgY29udHJvbCBjb25maWd1cmF0aW9ucy4KCjIwMTAtMDMtMjkgMTU6MTYgIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OmdldFZhbHVlKCk6IGRvbid0IHJldHVybgogICBhIHBvaW50ZXIgdG8gYSBidWZmZXIgb24gdGhlIHN0YWNrLiBIb3cgY2FuIHRoaXMgaGF2ZSB3b3JrZWQKICAgcmVsaWFibHkgPz8KICAgQ0hBTkdFUzogcGVybDoKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfcmVxdWVzdF9pbmZvUHRyOjpzZXRWYWx1ZSgpLAogICBBU05fQ09VTlRFUjY0OiBmaXhlZCBidWcgdGhhdCBjb3VsZCBjYXVzZSB0aGlzIG1ldGhvZCB0byBmYWlsCiAgIGV2ZW4gd2hlbiBhIHZhbGlkIG51bWJlciB3YXMgcHJvdmlkZWQuCgoyMDEwLTAzLTI5IDE1OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCBhZ2VudCBjcmFzaCB3aGVuIHNlbmRpbmcgZW5jcnlwdGVkIFNOTVB2MwogICB0cmFwcy4KICAgUmVwb3J0ZWQgYnkgU3Jpa2FwaWxhbiBHYW5kaGkKCjIwMTAtMDMtMjkgMTI6NDYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBDYXRjaCBzdGRlcnIgb24gV2luZG93cyB0b28uCgoyMDEwLTAzLTI5IDExOjQ4ICBidmFzc2NoZQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQnVpbGRzIGFnYWluIHdpdGggcHJlLUM5MCBjb21waWxlcnMuCgoyMDEwLTAzLTI5IDExOjE5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBkZXN0cm95aW5nIGEKICAgTmV0U05NUDo6YWdlbnQ6Om5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb24gb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSBmYWlsdXJlIG9mCiAgIGNyZWF0aW5nIGEgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgdGhlCiAgIE5ldFNOTVA6Ok9JRDo6Z2V0dGFibGUoKSBzdWJyb3V0aW5lLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyB0cmlnZ2VyZWQgYnkKICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIE5ldFNOTVA6OlNOTVAuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGEgUERVIHByb2Nlc3NpbmcKICAgZXJyb3IgaW4gTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgbWVtb3J5IGxlYWtzIHRyaWdnZXJlZCBieSBjcmVhdGluZyBhbiBTTk1QdjMKICAgc2Vzc2lvbiB2aWEgTmV0U05NUDo6U05NUC4KICAgCiAgIEFsc28gZml4ZWQgdGhlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgYWNjZXNzZXMgdHJpZ2dlcmVkIGJ5CiAgIGFkZGluZyBhIHZhcmJpbmQgdG8gYSBQRFUgdmlhIE5ldFNOTVA6OlNOTVAgaW50cm9kdWNlZCBhIGZldyBkYXlzCiAgIGFnby4KICAgCiAgIFRoZSBidWdzIG1lbnRpb25lZCBhYm92ZSBoYXZlIGJlZW4gZm91bmQgYnkgaW5zcGVjdGluZyB0aGUgb3V0cHV0CiAgIG9mIHRoZSBmb2xsb3dpbmcgc2hlbGwgY29tbWFuZDoKICAgY2QgcGVybCAmJiB2YWxncmluZCAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLWxlYWstY2hlY2s9ZnVsbCBtYWtlCiAgIHRlc3QKCjIwMTAtMDMtMjkgMTA6NTkgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBTd2l0Y2hlZCBiYWNrIHRvIHRoZSBwcmV2aW91cyB3YXkgb2Ygc3RhcnRpbmcgcHJvY2Vzc2VzCiAgIGFzeW5jaHJvbm91c2x5IGJlY2F1c2UgaXQgaXMgbW9yZSByZWxpYWJsZS4KCjIwMTAtMDMtMjkgMDk6MjcgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBEbyBub3Qgb25seSBzYXZlIHNubXBkIC8gc25tcHRyYXBkIGxvZ3MgYnV0IGFsc28gdGhlIHN0ZG91dCAvCiAgIHN0ZGVyciBvdXRwdXQgZ2VuZXJhdGVkIGJ5IHRoZXNlIHByb2Nlc3Nlcy4KCjIwMTAtMDMtMjggMTY6MDkgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBDaGFuZ2VzIGluIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CiAgIC0gQWRkZWQgY29tbWFuZC1saW5lIG9wdGlvbiAtZCBmb3Igc25tcGQgYW5kIHNubXB0cmFwZC4KICAgLSBzbm1wZCBhbmQgc25tcHRyYXBkIG91dHB1dCBpcyBub3cgc2F2ZWQgdG8gYSBsb2cgZmlsZSAob25lIHBlcgogICB0ZXN0KS4KICAgLSBSZXdyb3RlIFBlcmwgY29kZSBmb3Igc3RhcnRpbmcgdGhlIHNubXBkL3NubXB0cmFwZCBwcm9jZXNzZXMKICAgc3VjaCB0aGF0IHRoZSBzYW1lIGNvZGUgd29ya3Mgb24gVW5peCBhbmQgb24gV2luZG93cy4KCjIwMTAtMDMtMjggMTM6MzcgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90b29scy5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGRlZCB0aGUgZnVuY3Rpb25zIG5ldHNubXBfbWFsbG9jKCksCiAgIG5ldHNubXBfY2FsbG9jKCksIG5ldHNubXBfcmVhbGxvYygpLCBuZXRzbm1wX3N0cmR1cCgpIGFuZAogICBuZXRzbm1wX2ZyZWUoKS4KICAgQ0hBTkdFUzogV2luMzI6IHNubXBsaWI6IHJlbW92ZWQgdGhlIHRyb3VibGVzb21lICNkZWZpbmUgbWFsbG9jCiAgIG5ldHNubXBfbWFsbG9jIGV0Yy4gVGhpcyBtZWFucyB0aGF0IHdoZW4gY2FsbGluZyBmdW5jdGlvbnMgZnJvbQogICB0aGUgTmV0LVNOTVAgRExMIGZyb20gQyBvciBDKysgY29kZSB0aGF0IGlzIGJlaW5nIGxpbmtlZCBhZ2FpbnN0CiAgIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgTVNWQyBydW50aW1lIERMTCB0aGFuIHRoZSBOZXQtU05NUCBETEwsCiAgIGFuZCB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IHRoYXQgd2lsbCBiZSBmcmVlZCBieSB0aGUgTmV0LVNOTVAKICAgRExMLCB5b3Ugd2lsbCBlaXRoZXIgaGF2ZSB0byBjYWxsIHRoZSBOZXQtU05NUCBtZW1vcnkgYWxsb2NhdGlvbgogICBmdW5jdGlvbnMgZXhwbGljaXRseSBvciByZWRlZmluZSBtYWxsb2MoKSBldGMuIHlvdXJzZWxmLgoKMjAxMC0wMy0yOCAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXhlZCBhIHJlY2VudGx5IHJlaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wMy0yNyAxODo0MiAgYnZhc3NjaGUKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGNoZWNrIGZvciBpbnZvY2F0aW9uIG9mIGNhbGxvYygpIGZyb20gWFNVQnMuCgoyMDEwLTAzLTI2IDE5OjE2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHBlcmwvT0lEL09JRC54cywgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MzY4IGFuZCByMTgzNjk6IG1hZGUgc3VyZSB0aGF0IHRoZSBOZXQtU05NUCBQZXJsCiAgIGV4dGVuc2lvbnMgY29tcGlsZSB3aXRob3V0IHRyaWdnZXJpbmcgcHJlcHJvY2Vzc29yIHdhcm5pbmdzIGFib3V0CiAgIHJlZGVmaW5pbmcgbWFsbG9jIGV0Yy4gbm9yIHRyaWdnZXIgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3JzIG9uCiAgIFdpbmRvd3MuCgoyMDEwLTAzLTI2IDE0OjQ0ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBSZWZhY3RvcmluZzogaW50cm9kdWNlZCBhIG5ldyBmdW5jdGlvbjoKICAgbmV0c25tcF9zZXRfbm9uX2Jsb2NraW5nX21vZGUoKS4KCjIwMTAtMDMtMjYgMTE6NTggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgCiAgICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsICAgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIAogICAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgdXNpbmcgdmFyaWFibGVzIG9mIHR5cGUgY2hhciBhcyBhbgogICBhcnJheSBzdWJzY3JpcHQuIE5vdGU6IGFzIGZhciBhcyBJIGtub3cgdGhlc2Ugd2FybmluZ3MgYXJlIG9ubHkKICAgcmVwb3J0ZWQgd2hlbiB1c2luZyB0aGUgQ3lnd2luIGdsaWJjIGhlYWRlcnMuCgoyMDEwLTAzLTI2IDEwOjQxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBBZGRlZCBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZSAob24gV2luZG93cyBNU1ZDIHdhcyBjb21wbGFpbmluZwogICBhYm91dCBzaXplX3Qgd2hpbGUgcHJvY2Vzc2luZyA8bmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaD4pLgoKMjAxMC0wMy0yNSAyMDowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIENIQU5HRVM6IGFnZW50eDogY2hhbmdlZCBkZWZhdWx0IFRDUCB0YXJnZXQgZnJvbSAwLjAuMC4wOjcwNSB0bwogICBsb2NhbGhvc3Q6NzA1LiBUaGlzIGlzIG5vdCBvbmx5IGEgbW9yZSBzZWN1cmUgY2hvaWNlIGJ1dCBpdCBhbHNvCiAgIG1ha2VzIGl0IHBvc3NpYmxlIG9uIFdpbmRvd3Mgc3lzdGVtcyB0byBsZXQgYW4gQWdlbnRYIHN1YmFnZW50CiAgIGNvbm5lY3QgdG8gYW4gQWdlbnRYIG1hc3RlciBhZ2VudCBydW5uaW5nIG9uIHRoZSBzYW1lIHN5c3RlbQogICB3aXRob3V0IGhhdmluZyB0byBzZXQgdGhlIHZhcmlhYmxlIE5FVFNOTVBfRFNfQUdFTlRfWF9TT0NLRVQuCgoyMDEwLTAzLTI1IDE2OjExICBidmFzc2NoZQoKICAgKiAgcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogV2luMzI6IHBlcmw6IGZpeGVkIHNldmVyYWwgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3JzLgogICBOb3RlOiBzaW5jZSBjYWxsb2MoKSBpcyBub3QgcmVkZWZpbmVkIGluIDxDT1JFL1hTVUIuaD4gdXNpbmcKICAgY2FsbG9jKCkgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBsZWFkcyB0byAiRnJlZSB0byB3cm9uZyBwb29sIgogICBlcnJvcnMsIGF0IGxlYXN0IG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI1IDE2OjA0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIG1vcmUgc2lsZW50IGJ5IG5vdAogICByZWRlZmluaW5nIG1hbGxvYygpIG9yIGZyZWUoKSBkdXJpbmcgY29tcGlsYXRpb24gb2YgUGVybAogICBleHRlbnNpb25zIChyZXN1bHRlZCBpbiB3YXJuaW5ncyBhYm91dCBtYWxsb2MoKSAvIGZyZWUoKQogICByZWRlZmluaXRpb24gaW4gdGhlIFBlcmwgaGVhZGVyIENPUkUvWFNVQi5oKS4KCjIwMTAtMDMtMjUgMTU6MDYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogQlVHOiAyOTY5ODcyOiBtYWRlIHN1cmUgdGhhdCBTT0NLX1NUQVJUVVAgaXMgaW52b2tlZAogICBiZWZvcmUgaW5pdF9hZ2VudCgpIG9uIFdpbmRvd3MuCgoyMDEwLTAzLTI1IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIG1hY3JvcyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMgYXMgbmV0c25tcF9wYXJzZV9hcmdzIHJldHVybgogICBjb2Rlcy4KCjIwMTAtMDMtMjUgMTM6MzAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogc2ltcGxpZmllZCB0aGUgYnVpbGQgcHJvY2VzcyBieQogICByZW1vdmluZyB0aGUgZmlsZSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbi4gV2hpY2ggSVB2NgogICBmdW5jdGlvbnMgYXJlIGV4cG9ydGVkIGZyb20gbmV0c25tcC5kbGwgaXMgbm93IGRldGVybWluZWQgYnkKICAgd2hpY2ggb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIERMTCBoYXZlIGJlZW4gZGVjbGFyZWQgYXMKICAgTkVUU05NUF9JTVBPUlQuCgoyMDEwLTAzLTI0IDIwOjExICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGRvbid0IHVzZSBwYXNzZWQgcHRyIGFzIHRlbXAgdmFyOyB1c2Ugc25tcF9lbnVtX2xpc3RzIGluIGluaXQKICAgdGVzdAoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBhZGQgTkVUU05NUF9EU19MSUJfQ0VSVF9FWFRSQV9TVUJESVIKCjIwMTAtMDMtMjQgMjA6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY2VydCBpbml0IGVhcmxpZXIgKGhhdmUgdGxzX2Jvb3RzdHJhcCBjYWxsIGl0KQoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nczsgYWRkIGNlcnQgZGVidWcgbXNncyBpbiBzZXJ2ZXIgc2V0dXA7IGZyZWUKICAgc3NsIGxvZyBkYXRhCgoyMDEwLTAzLTI0IDEwOjQ3ICBqc2FmcmFuZWsKCiAgICogIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ0hBTkdFUzogYXBwczogcmV0dXJuIG5vemVybyBleGl0IGNvZGUgd2hlbiBwYXJzaW5nIG9mIGNlcnRhaW4KICAgcGFyYW1ldGVyIGZhaWxzLgogICBFLmcuICctQScgcGFyYW1ldGVyIHdpdGggdG9vIHNob3J0IHBhc3NwaHJhc2Ugb3IgS3Uga2V5CiAgIGdlbmVyYXRpb24gaW4gZ2VuZXJhbC4KCjIwMTAtMDMtMjQgMDc6MTEgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgQ29ycmVjdCB0aGUgdHlwZSBvZiB0aGUgaWQvZGVzY3JpcHRpb24gb2YgdGhlIE9wZW4tUERVLgoKMjAxMC0wMy0yMiAxODoyOSAgYnZhc3NjaGUKCiAgICogTWFrZWZpbGUuaW46CgogICBVcGRhdGVzIGZvciAibWFrZSBjaGVja3MiOgogICAtIE1hZGUgc3VyZSB0aGF0IGV4aXQgY29kZSAwIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjaGVjayBpcwogICBzdWNjZXNzZnVsIGFuZCB0aGF0CiAgIGV4aXQgY29kZSAxIGlzIGdlbmVyYXRlZCB3aGVuIHRoZSBjaGVjayBmYWlsZWQuCiAgIC0gTWFkZSAibWFrZWZpbGVjaGVjayIgc2tpcCBTdWJ2ZXJzaW9uIGJvb2trZWVwaW5nIGZpbGVzIGFuZCBhbHNvCiAgIHRoZSBtYWtlZmlsZQogICB0aGF0IGNvbnRhaW5zICJtYWtlZmlsZWNoZWNrIi4KCjIwMTAtMDMtMjIgMTY6MTAgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0OgoKICAgRml4IHR5cG8gaW4gZGVmYXVsdCBJcEFkZHJlc3MgdmFsdWUKICAgKFNlZSBCdWcgIzI5NzIxNDEpCgoyMDEwLTAzLTIyIDE1OjQ0ICByc3RvcnkKCiAgICogIE1ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2NhbGxiYWNrLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBjaGFuZ2UgYWxsIGFzc2VydCgpIHRvIG5ldHNubXBfYXNzZXJ0KCk7IGFkZCBhc3NlcnRjaGVjayB0byB0b3AKICAgbGV2ZWwgbWFrZWZpbGUKCjIwMTAtMDMtMjIgMTU6MjQgIGJ2YXNzY2hlCgogICAqIG1pYnMvVUNELURJU0tJTy1NSUIudHh0OgoKICAgRm9sbG93LXVwIGZvciByMTgzNDk6IGFkZGVkIG1pc3NpbmcgY29tbWEgc3VjaCB0aGF0IGl0IGlzIGFnYWluCiAgIHBvc3NpYmxlIHRvIGNvbXBpbGUgVUNELURJU0tJTy1NSUIuCgoyMDEwLTAzLTIyIDE0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgRml4IGJ1aWxkIHdoZW4gTUlCIGxvYWRpbmcgaXMgZGlzYWJsZWQgKGJyb2tlbiBieSBTVk4gcmV2aXNpb24KICAgMTgzNDEpCiAgIFJlcG9ydCBkZWZhdWx0IE1JQiBwYXRoIGZvciBjbGllbnQgYXBwcyB0b28uCgoyMDEwLTAzLTIyIDEzOjU5ICBkdHMxMgoKICAgKiAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9lcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3NlbmQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBfdGltZW91dC4zOgoKICAgQ0hBTkdFUzogbWFuOiBCVUc6IDI5NzI4NjA6IFVwZGF0ZSBicm9rZW4gcmVmZXJlbmNlcwoKMjAxMC0wMy0yMiAxMzo0OSAgZHRzMTIKCiAgICogIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LCBtaWJzL1VDRC1ETE1PRC1NSUIudHh0LCAgIAogICAgICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBDSEFOR0VTOiBtaWJzOiBCVUc6IDI5NzM4OTA6IEZpeCBpbXBvcnRzLCBEaXNrSU9FbnRyeSBsaXN0IGFuZAogICByZXZpc2lvbiBoaXN0b3JpZXMKCjIwMTAtMDMtMjIgMTE6NTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFdpbjMyLCB3aW5FeHRETEw6IHNvbHZlZCB0aGUgbXlzdGVyeSBvZiAiQVNOIHR5cGUgemVybyIuIFRoZQogICB3aW5FeHRETEwgY29kZSBkb2VzIG5vdyBubyBsb25nZXIgdHJpZ2dlciBjb252ZXJzaW9ucyBvZiBXaW5kb3dzCiAgIEFTTiB2YXJiaW5kcyB3aXRoIEFTTiB0eXBlIHplcm8uIE5vdGU6IHRoaXMgY29kZSBjaGFuZ2UgZG9lcyBub3QKICAgY2hhbmdlIHRoZSBhZ2VudCBiZWhhdmlvci4KCjIwMTAtMDMtMjAgMjA6MjEgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oOgoKICAgQnVpbGRzIGFnYWluIHdpdGggTVNWQy4KCjIwMTAtMDMtMjAgMjA6MjAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEFkZGVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIChzaG91bGQgaGF2ZSBiZWVuIGFkZGVkIGluIHRoZQogICBwcmV2aW91cyBjb21taXQpLgoKMjAxMC0wMy0yMCAxOTozNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9zbm1wZC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIAogICAgICAgIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mCiAgIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2gKICAgdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuCiAgIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICBDSEFOR0VTOiBXaW4zMjogY2hhbmdlZCBpbl9hZGRyX3QgZnJvbSB1X2ludCB0byB1X2xvbmcgc3VjaCB0aGF0CiAgIGl0IG1hdGNoZXMgdGhlIGRhdGF0eXBlIG9mIHNvY2thZGRyX2luOjpzaW5fYWRkci4KICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKgogICBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgoKMjAxMC0wMy0yMCAxOToxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgZ2NjIChNaW5HVykuCgoyMDEwLTAzLTIwIDE5OjA1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHNpZ3Byb2NtYXNrLgoKMjAxMC0wMy0yMCAwOToxNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBSZWZhY3RvcmluZzogbW92ZWQgZHVwbGljYXRlZCBjb2RlIGludG8gYSBuZXcgZnVuY3Rpb24uCgoyMDEwLTAzLTE5IDIyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgUmVwb3J0IE1JQiBhbmQgY29uZmlnIGRpcmVjdG9yaWVzIHNlYXJjaCBwYXRocyBvbiBlcnJvcnMKICAgKGFuZCBpbiB0aGUgaGVscCBtZXNzYWdlKQoKMjAxMC0wMy0xOSAxMzoxMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtYWRlIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgaXMgbG9nZ2VkIHdoZW4KICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBpcyBhdHRlbXB0ZWQgbW9yZSBkZXRhaWxlZC4KICAgCiAgIEFuIGV4YW1wbGU6CiAgIChiZWZvcmUpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKG1pYklJL3NubXAsCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwpCiAgIGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWxlZC4KICAgKGFmdGVyKQogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uOiBNSUIgbW9kdWxlcyBtaWJJSS9zbm1wIGFuZAogICBDOlxXSU5ET1dTXFN5c3RlbTMyXHNubXBtaWIuZGxsIChvaWQgLjEuMy42LjEuMi4xLjExKS4KICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgoKMjAxMC0wMy0xOSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBtdWx0aXBsZSB2YXJiaW5kIHNldCByZXF1ZXN0cyBhcmUgbm93CiAgIHByb2Nlc3NlZCBjb3JyZWN0bHkuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG1hZGUgZXJyb3IgY29kZXMgaW4gU05NUCByZXNwb25zZSBQRFVzCiAgIGFzIFJGQy1jb21wbGlhbnQgYXMgcG9zc2libGUuCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IGlmIGxvYWRpbmcgYW4gZXh0ZW5zaW9uIERMTCBmYWlscywgdGhlCiAgIHJlYXNvbiB3aHkgbG9hZGluZyBmYWlsZWQgaXMgbm93IGxvZ2dlZC4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZml4ZWQgYSBtZW1vcnkgbGVhayB0aGF0IG9jY3VycmVkIHdoZW4KICAgU25tcEV4dGVuc2lvblF1ZXJ5KEV4KSBmYWlsZWQuIFRoaXMgbWVtb3J5IGxlYWsgaGFzIGJlZW4gZm91bmQKICAgdmlhIHNvdXJjZSByZWFkaW5nLiBOb3RlOiBpdCBpcyBub3QgY2xlYXIgd2hldGhlciBpdCB3YXMgcG9zc2libGUKICAgdG8gdHJpZ2dlciB0aGlzIG1lbW9yeSBsZWFrLiBUaGlzIGxlYWsgaXMgY2VydGFpbmx5IG5vdCB0cmlnZ2VyZWQKICAgYnkgZXZlcnkgcmVxdWVzdCBmb3Igd2hpY2ggYSByZXNwb25zZSB3aXRoIG5vbi16ZXJvIGVycm9yIHN0YXR1cwogICBpcyBzZW50IGJhY2suCgoyMDEwLTAzLTE4IDE2OjI5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBrZWVwIGNvdW50IG9mIGVuYWJsZWQgbG9nczsgdXNlIHRoaXMgY291bnQgdG8gZGV0ZXJtaW5lIHdoZW4gdG8KICAgbG9nIHRvIHN0ZGVycgoKMjAxMC0wMy0xOCAxNjoyOCAgcnN0b3J5CgogICAqICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBzbm1wIHRva2VuIGxvZ09wdGlvbiBhbGxvd3Mgc3BlY2lmeWluZyBsb2cKICAgZGVzdGluYXRpb25zIHZpIGNvbmYgZmlsZXMKICAgLSBpZiBzdGRlcnIgbG9nIGVuYWJsZWQgYmVjYXVzZSBvZiBubyBsb2cgZGVzdGluYXRpb24sIHR1cm4gaXQKICAgb2ZmIHdoZW4gYQogICBsb2cgZGVzdGluYXRpb24gaXMgZW5hYmxlZAogICAtIGRvbid0IGNhbGwgbmV0c25tcF9lbmFibGVfc3RkZXJybG9nKCkgZnJvbSBhcHBzIGFueW1vcmUKCjIwMTAtMDMtMTggMTU6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIHVkcCB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgdHdlYWtzCiAgIC0gbW92ZSBiYXNpYyB1ZHAgcmVjdmZyb20vc2VuZHRvIGNvZGUgZnJvbSBVRFBEb21haW4gdG8KICAgVURQQmFzZURvbWFpbgogICAtIHR3ZWFrIHVwZCByZWN2ZnJvbS9zZW5kdG8gdG8gY2FsbCB1ZHBiYXNlIHZlcnN0aW9uCiAgIC0gdHdlYWsgdWRwaXB2NCByZWN2ZnJvbS9zZW5kdG8gdG8gY2FsbCB1ZHBiYXNlIHZlcnNpb24KICAgLSBhbHNvIGZpeGVkIG5ldHNubXBfaXB2NF8qIC0+IG5ldHNubXBfdWRwaXB2NF8qCiAgIC0gdHdlYWsgRFRMU1VEUERvbWFpbiBvdCB1c2UgdWRwYmFzZV8qIGluc3RlYWQgb2YgdWRwXyoKCjIwMTAtMDMtMTggMTU6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3RlY3QgY2VydCBoZWFkZXIgYW5kIGluaXQgY2FsbCB3aXRoIGlmZGVmcwoKMjAxMC0wMy0xNyAxOTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICB1c2UgbmV3IHV0aWxpdHkgcm91dGluZSBmb3IgY2VydCBuYW1lcwoKMjAxMC0wMy0xNyAxOTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3ZlIHNubXBfb3BlbnNzbCBoZWFkZXIgYWZ0ZXIgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYWRkIHJvdXRpbmVzIHRvIHB1bGwvZHVtcCBuYW1lcyBmcm9tIFg1MDkgY2VydHMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdXNlIGVudW0gbGlzdHMgdG8gbWFuYWdlIGRpcmVjdG9yeSBpbmRleGVzCgoyMDEwLTAzLTE3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGluaXRpYWxpemUgc3RhdGljIHN0b3JhZ2UgYmVmb3JlIHVzZTsgcHJvdGVjdCBlbnVtIGluaXQgZnJvbQogICBtdWx0aXBsZSBjYWxscwoKMjAxMC0wMy0xNyAxODo1NCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgYWRkIGluZm8gYWJvdXQgbmV3IHRzbS90bHMgbWlicwoKMjAxMC0wMy0xNyAxODo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgdG8gc25tcCBpbml0CgoyMDEwLTAzLTE3IDEzOjM3ICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBVcGRhdGVkIE1JQiByZXZpc2lvbiBoaXN0b3J5LgoKMjAxMC0wMy0xNyAxMzoyOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIG9uZSBsZWFrLWF0LWV4aXQuCgoyMDEwLTAzLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENIQU5HRVM6IEJVRzogMjk3MTI1NzogRml4ZWQgd2luRXh0RExMIGhhbmRsaW5nIG9mIG11bHRpLXZhcmJpbmQKICAgZ2V0TmV4dCByZXF1ZXN0cyB3aXRoIE9JRHMgaW4gcmV2ZXJzZSBsZXhpY29ncmFwaGljYWwgb3JkZXIuCgoyMDEwLTAzLTE3IDEwOjI1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE1vcmUgd2luRXh0RExMIGRlYnVnIG91dHB1dCB0dW5pbmcuCgoyMDEwLTAzLTE2IDE5OjMxICBidmFzc2NoZQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBDb21waWxlcyBub3cgd2l0aCBNSUIgY29tcGlsZXJzIHRoYXQgZG8gbm90IHJlY29nbml6ZSBhIGRvdWJsZQogICBkYXNoIGFzIHRoZSBlbmQgb2YgYSBNSUIgY29tbWVudC4KCjIwMTAtMDMtMTYgMTk6MjcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXhlZCB0d28gc3ludGF4IGVycm9ycy4KCjIwMTAtMDMtMTYgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZml4ZWQgYSBidWcgaW4gZ2V0TmV4dCBoYW5kbGluZyB0aGF0CiAgIGNvdWxkIGNhdXNlIHRoZSBNSUIgb3V0cHV0IHRvIGJlIHRydW5jYXRlZC4KCjIwMTAtMDMtMTYgMTg6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTWFkZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IG1vcmUgZGV0YWlsZWQuCgoyMDEwLTAzLTE2IDE1OjI0ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oOgoKICAgTWFkZSBzdXJlIHRoYXQgQysrIHByb2dyYW1zIHRoYXQgaW5jbHVkZSBOZXQtU05NUCBoZWFkZXIgZmlsZXMKICAgY29tcGlsZSBhZ2Fpbi4KCjIwMTAtMDMtMTUgMDc6MjAgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIC0tZGlzYWJsZS1kZXByZWNhdGVkIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoxOSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBEaXNhYmxlIGFsbCB0aGUgcHJpbnRpbmcgaWYgZGVidWcgb3V0cHV0IGlzIG9mZi4KCjIwMTAtMDMtMTUgMDA6MTcgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIHJlZ2FyZGluZyBwcmludGYgZm9ybWF0CgoyMDEwLTAzLTE1IDAwOjA3ICB0YW5kZXJzCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzIHJlZ2FyZGluZyBwcmludGYgZm9ybWF0CgoyMDEwLTAzLTE0IDIxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBtYWtlIHN1cmUgaGVhZGVyIGlmZGVmIG5hbWUgaXMgdW5pcXVlCgoyMDEwLTAzLTE0IDIxOjA0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIGFkZCBtaXNzaW5nIGluaXQvc2h1dGRvd24gcHJvdG90eXBlcyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDMtMTQgMjE6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgbW92ZSBkZWJ1ZyBtZXNzYWdlIGVhcmxpZXIKCjIwMTAtMDMtMTQgMjE6MDIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGFkZCBwcm90b3R5cGUgZm9yIG5ldHNubXBfaW5pdF9jb250YWluZXI7IGZpeCBjb21wbGVyIHdhcm5pbmcKCjIwMTAtMDMtMTQgMjA6NTEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ29ycmVjdCBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4gYW5kIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgogICBmb3IgdGhlIE5FVFNOTVBfTk9fREVCVUdHSU5HIGNhc2UKCjIwMTAtMDMtMTQgMTk6MTAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW5hbWUgY2VydCBpbml0L3NodXRkb3duIGZ1bmNzOyBvbmx5IGNvbXBpbGUgY2VydF91dGlscyBpZgogICB1c2luZy9oYXZlIFNTTDsgaW5pdCBjZXJ0cyBmcm9tIHRscyBiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGNhbGwgbmV0c25tcF9pbml0X29wZW5zc2wgaW5zdGVhZCBvZiBuZXRzbm1wX2luaXRfdGxzYmFzZQoKMjAxMC0wMy0xNCAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG9iamVjdHMgaW4gdmVyc2lvbiAwOCBvZiB0aGUgZHRscyBkcmFmdAoKMjAxMC0wMy0xNCAxOTowOCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIsIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVNlc3Npb24vc25tcFRsc3RtU2Vzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgaW1wb3J0IGluaXRpYWwgY29kZSBmb3IgZHRscyBtaWJzCgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgVExTVE0tTUlCIGZyb20gZHJhZnQtaWV0Zi1pc21zLWR0bHMtdG0tMDkudHh0CgoyMDEwLTAzLTE0IDE3OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXhlZCBhIGZldyBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xNCAxNDoxMCAgYnZhc3NjaGUKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICBGb2xsb3ctdXAgZm9yIHIxNzM4NDogY2hhbmdlZCBORVRTTk1QX0RTX01BWF9TVUJJRFMgZnJvbSA0MCB0bwogICA0OC4KCjIwMTAtMDMtMTQgMTM6NTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ2hhbmdlczoKICAgLSBSZW1vdmVkIC1Xbm8tY2hhci1zdWJzY3JpcHRzIGZyb20gREVWRkxBR1MuIFVzaW5nIGEgdmFyaWFibGUgb3IKICAgZXhwcmVzc2lvbiBvZgogICB0eXBlIGNoYXIgYXMgYW4gYXJyYXkgaW5kZXggaXMgYWxtb3N0IGFsd2F5cyBhbiBlcnJvci4KICAgRnVydGhlcm1vcmUsCiAgIC1XY2hhci1zdWJzY3JpcHQgZG9lcyBub3QgdHJpZ2dlciBhbnkgd2FybmluZ3Mgb24gdGhlIE5ldC1TTk1QCiAgIGNvZGUgYmFzZS4KICAgLSBSZW1vdmVkIC1XaW5saW5lIGZyb20gREVWRkxBR1MuIE5vdCBvbmx5IHdhcyBub2JvZHkgcGF5aW5nCiAgIGF0dGVudGlvbiB0byB0aGUKICAgbWVzc2FnZXMgdHJpZ2dlcmVkIGJ5IC1XaW5saW5lLCBidXQgcmVjZW50IHZlcnNpb25zIG9mIHRoZSBnY2MKICAgY29tcGlsZXIgYXJlCiAgIGJldHRlciB0aGFuIGh1bWFucyBhdCBkZWNpZGluZyB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIGJlIGlubGluZWQKICAgYW5kIHdoaWNoCiAgIG9uZXMgbm90LgoKMjAxMC0wMy0xNCAxMzozOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlcmFuIGF1dG9yZWNvbmYuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDEzOjM2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlbW92ZWQgdGhlICcweCcgcHJlZml4IGFnYWluIGZyb20gYSBkZWJ1ZyBzdGF0ZW1lbnQgdGhhdCB3YXMKICAgaW50cm9kdWNlZCBpbiByMTgyODIuCgoyMDEwLTAzLTEzIDE5OjA3ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvVHJhcFJlY2VpdmVyL3BwcG9ydC5oLCAgIAogICAgICBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZQogICBwZXJsIHN1YmRpcmVjdG9yeS4KICAgTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLgoKMjAxMC0wMy0xMyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wMy0xMyAwMToxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5lIHRoZSBUTFNUQ1AgRE9NQUlOCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggaWZkZWYgdHlwbwoKMjAxMC0wMy0xMiAyMDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIGRlYnVnZ2luZyBzeW1ib2wgbmFtZXMgdG8gYSBnZW5lcmljIHRscyBzdHJpbmcKCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgaW5pdGlhbCB3b3JraW5nIFNOTVAgb3ZlciBUTFMgb3ZlciBUQ1AgY29ubmVjdGlvbgoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcHJpbnQgYSBtb3JlIGNvbXBsZXRlIE9wZW5TU0wgc3RhY2sKCjIwMTAtMDMtMTIgMjA6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IGFzc2VydCBzdGF0ZW1lbnRzCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaDoKCiAgIGFkZGVkIGFuIGFjY2VwdGVkX2JpbyBwb2ludGVyIGZvciB0aGUgYmlvIGFmdGVyIFNTTF9hY2NlcHQKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCB0aGUgYWJpbGl0eSBmb3IgZl9jb3B5IGFuZCBmX2NvbmZpZwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBtaXNzaW5nIDsKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkIGEgZl9jb3B5IHBvaW50ZXIKCjIwMTAtMDMtMTIgMjA6MjAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgcmV0dXJuIGludCBub3QgaW50ICogb24gZXJyb3IKCjIwMTAtMDMtMTIgMjA6MjAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgYWRkZWQgYSBmX2NvbmZpZyBmdW5jdGlvbiBmb3IgdHJhbnNwb3J0cwoKMjAxMC0wMy0xMiAxMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogUEFUQ0g6IDI4NTAwNjc6IFN1cHByZXNzIGV4dHJhbmVvdXMgImluZGV4IgogICBoZWFkZXIgdG9rZW4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgRGFuIE5lbHNvbgoKMjAxMC0wMy0xMiAxMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZgogICBnZXR1bG9uZ2Zyb21zeXNjbGFzc25ldHN0YXRpc3RpY3MoKQoKMjAxMC0wMy0xMSAxNjo1MiAgZHRzMTIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBEb2N1bWVudCB0aGUgZm9ybWF0IG9mIHRoZSAtZS8tRSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KCjIwMTAtMDMtMTEgMTY6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUmVtb3ZlIG1lbnRpb24gb2YgdGhlIChhYmFuZG9uZWQpICdkYXRhc2V0MicgaGVscGVyLgoKMjAxMC0wMy0xMSAxNTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIERvbid0IGluaXRpYWxpc2UgdGhlIFRMUyB0cmFuc3BvcnQgdW5sZXNzIGl0J3MgYWN0dWFsbHkgYmVlbgogICBjb25maWd1cmVkIGluLgoKMjAxMC0wMy0xMSAxNTo0NyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIHVzZSBTTk1QX1RNUERJUiBpbnN0ZWFkIG9mIFRNUERJUgoKMjAxMC0wMy0xMSAxNTozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgcXVlcnkgcmlnaHQgYm9vbCAodHNtIHByZWZpeCBpcyBsaWIgYm9vbCwgbm90IGFwcCkKCjIwMTAtMDMtMTEgMTU6MDggIGR0czEyCgogICAqICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTUyMDM0OiBSZXR1cm4gb2YgdGhlIEdyZWF0IFN1U0UgJ3NwcmludGYnCiAgIEh1bnQuLi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDE0OjU1ICBkdHMxMgoKICAgKiBsb2NhbC90cmFwdG9lbWFpbDoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTM3OTk2OiBBZGQgRGF0ZTogaGVhZGVyIHRvIGVtYWlsIHNlbmQgYnkKICAgdHJhcHRvZW1haWwKCjIwMTAtMDMtMTEgMTQ6NTAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5Njc0MDA6IFJldHJpZXZlIGVycm9yIGNvdW50ZXJzIGZvciB0aGUKICAgRXRoZXJMaWtlLU1JQgogICBQYXRjaCBzdXBwbGllZCBieSBKb3NlZiBNb2VsbGVycy4KCjIwMTAtMDMtMTEgMTQ6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2ODY0MjogQ2F0Y2ggb3ZlcmZsb3cgb2YgcGFzcy10aHJvdWdoCiAgIGNvbW1hbmQgYnVmZmVyLgogICBQYXRjaCBmcm9tIEFuZHJlYXMgSmFlZ2VyL0xlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAxMjozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5NTY2NTc6IEhhbmRsZSBvdmVyLWxlbmd0aCBBZ2VudFggT0lEcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUm9iIFdlc3QKCjIwMTAtMDMtMTEgMTI6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyX2NvbW1vbi5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGRlYnVnIHBhcmFtZXRlci4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDEyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyAoZHVtbXkpIHJldHVybiB2YWx1ZSwgdG8gc3VwcHJlc3MgY29tcGlsZXIKICAgd2FybmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDEyOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBTdXBwcmVzcyB3YXJuaW5ncyBvZiBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cuCiAgIFRoaXMgZG9lc24ndCBfYWN0dWFsbHlfIHByb3RlY3QgYWdhaW5zdCBzdWNoIGFuIG92ZXJmbG93LAogICBzaW5jZSB0aGUgdGFyZ2V0IGJ1ZmZlciBpcyBub24tZW1wdHksIHNvIHN0cm5jYXQgY2FuJ3QKICAgdXNlIGl0IGFsbCBhbnl3YXkuIEJ1dCB0aGlzIHNob3VsZCBhdCBsZWFzdCBtaXNsZWFkIHRoZQogICBjb21waWxlciBzdWZmaWNpZW50bHkgdG8gc2h1dCBpdCB1cCEKICAgCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKMjAxMC0wMy0xMSAxMTo1NyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBSZXBsYWNlIGJhY2txdW90ZSB3aXRoIHNpbmdsZSBxdW90ZSBpbiBjb25maWd1cmUgb3V0cHV0IG1lc3NhZ2UuCiAgIFdoaWxlIHRoaXMgY2hhbmdlIGlzIHByb2JhYmx5IG5vdCBzdHJpY3RseSBuZWNlc3NhcnksIGl0IGZlZWxzCiAgIHNlbnNpYmxlIHRvIGF2b2lkIHRoaXMgcGFydGljdWxhciB1c2Ugb2YgYmFja3F1b3RlcywgSnVzdCBJbgogICBDYXNlLgogICBTZWUgZGlzY3Vzc2lvbiBpbiBQYXRjaCAjMjk1MjE2OQoKMjAxMC0wMy0xMSAxMTo0MyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAyOTUyMTQwOiBPdmVyZmxvdyBjb3VudGVyMzIgYW5kIGdhdWdlMzIKICAgb24gNjRiaXQgc3lzdGVtcyBjb3JyZWN0bHkKICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDExOjM2ICBkdHMxMgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDI5NTIwMjA6IEV4cGxpY2l0bHkgc2V0IHBlcm1pc3Npb24gb24KICAgdGVtcG9yYXJ5IHRlc3Rpbmcgb3V0cHV0IGRpcmVjdG9yaWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8uCgoyMDEwLTAzLTExIDExOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1MDg0NTogRml4IGlmSGlnaFNwZWVkIGNhbGN1bGF0aW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0bwoKMjAxMC0wMy0xMSAwODoyNiAgYnZhc3NjaGUKCiAgICogIHBlcmwvQVNOL0FTTi54cywgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvT0lEL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL09JRC9PSUQueHMsIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIE1hZGUgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgbW9kdWxlIE5ldFNOTVAucG0gb24gV2luZG93cyBtb3JlCiAgIHNpbGVudDogYWRkZWQgY29tcGlsZXIgZmxhZ3MgLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwogICAtRF9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyBhbmQgbWFkZSBzdXJlIHRoYXQgI2luY2x1ZGUKICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBvY2N1cnMgYmVmb3JlIGFueSBvdGhlciBpbmNsdWRlIGZpbGUKICAgdGhhdCBkZWZpbmVzIF9XSU4zMl9XSU5OVC4KCjIwMTAtMDMtMTAgMjM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgTkVXUzogc25tcGxpYjogY3JlYXRlIGluZGV4ZXMgZm9yIGNlcnRpZmljYXRlcyBpbiBjb25maWcgcGF0aAoKMjAxMC0wMy0xMCAxODo0OCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jOgoKICAgQWRkZWQgIiNpbmNsdWRlIDx1bmlzdGQuaD4iIHN1Y2ggdGhhdCBvbiBVbml4IHN5c3RlbXMgdGhlCiAgIGNvbXBpbGVyIGRvZXMgbm90IHByaW50IGEgd2FybmluZyBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yCiAgIHRoZSBmdW5jdGlvbiBjbG9zZSgpLgoKMjAxMC0wMy0xMCAxODozMCAgcnN0b3J5CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAgICBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjYuZGV2CgoyMDEwLTAzLTEwIDE4OjI5ICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiB1cGRhdGUgVmVyc2lvbi1NdW5nZSBmb3IgcmVuYW1lZCBjb25maWd1cmUuYWMKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuYWM6CgogICBDSEFOR0VTOiBidWlsZGluZzogc2F2ZSBjb25maWd1cmUgY2FjaGUgZXZlcnkgb25jZSBpbiB3aGlsZQoKMjAxMC0wMy0xMCAxNjoxMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbjoKCiAgIFJlb3JkZXJlZCBzb21lIG9mIHRoZSBNYWtlZmlsZSBydWxlcyBpbiBvcmRlciB0byBtaW5pbWl6ZSB0aGUKICAgZGlmZnMgd2l0aCBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbi4KCjIwMTAtMDMtMTAgMTY6MTAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzIsIGJhdGNoIGJ1aWxkaW5nOiBETEwgYnVpbGRzIGFnYWluLgoKMjAxMC0wMy0xMCAxNjowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZyBieSBhZGRpbmcgYSBmb3J3YXJkCiAgIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24gX2NhY2hlX2ZyZWUoKS4KCjIwMTAtMDMtMTAgMTY6MDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBCdWlsZHMgYWdhaW4gb24gV2luMzIuCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIG1pc3NpbmcgY29udHJpYnV0b3JzCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBkb3VibGUgZnJlZSBpbiBDT05UQUlORVJfRlJFRQogICAtIGFsc28gYWRkZWQgc2V2ZXJhbCBjb21wYXJlIHJvdXRpbmVzCgoyMDEwLTAzLTEwIDA0OjE3ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZnJlZWluZyBhIGNhY2hlLCBzdG9wIHRpbWVyIGFuZCBjYWxsIGNhY2hlCiAgIGZyZWUgZnVuYwogICAtIGFsc28gYWRkIG5ldHNubXBfY2FjaGVfcmVtb3ZlCgoyMDEwLTAzLTEwIDAzOjUyICByc3RvcnkKCiAgICogIFJFQURNRSwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVuZG8gY29tbWl0IDE4MjM0CgoyMDEwLTAzLTEwIDAzOjQxICByc3RvcnkKCiAgICogIFJFQURNRSwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIE1lcmdlIGJyYW5jaCAncHVsbG1lJyBvZiAuLi90cnVuay1zdGFnaW5nCgoyMDEwLTAzLTA5IDE3OjQ4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3JlYWRfbW9kdWxlKCkgZnJvbSBuZXRzbm1wLmRsbAogICBzdWNoIHRoYXQgTmV0U05NUC5wbSBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTA5IDE3OjQ3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBTaW1wbGlmaWVkIHR3byBtYWtlZmlsZXMgdXNlZCBieSBidWlsZC5iYXQgKFdpbjMyKS4KCjIwMTAtMDMtMDkgMTc6MjQgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBidWlsZGluZyBOZXRTTk1QLnBtIGRvZXMgbm8gbG9uZ2VyCiAgIHRyaWdnZXIgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcmVkZWZpbmluZyBfV0lOMzJfV0lOTlQgbm9yCiAgIE5URERJX1ZFUlNJT04uCgoyMDEwLTAzLTA5IDE3OjIyICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgTmV0U05NUC5wbSBtb3JlIHNpbGVudCBieQogICBhZGRpbmcgdGhlIE1TVkMgY29tcGlsZXIgZmxhZ3MgLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwogICAtRF9DUlRfTk9OU1REQ19OT19XQVJOSU5HUy4KCjIwMTAtMDMtMDkgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICByZW1vdmUgZGVidWcgbXNnIHVzZWQgZHVyaW5nIGRlYnVnZ2luZwoKMjAxMC0wMy0wOSAxNzowMiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaW5pdGlhbCBjZXJ0IHdyYXBwZXIgLSB0ZXN0aW5nIHJlcG8gd3JpdGUgcHJpdnMKCjIwMTAtMDMtMDkgMTA6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGUgYnVpbGQgcnVsZXMuIFRoZXNlIGR1cGxpY2F0ZSBydWxlcyB3ZXJlCiAgIGhhcm1sZXNzIGJ1dCB0cmlnZ2VyZWQgYSB3YXJuaW5nLgoKMjAxMC0wMy0wOSAwMjozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGRpcmVjdG9yeSBjb250YWluZXIgZW5oYW5jZW1lbnRzCiAgIC0gZml4IHBvdGVudGlhbCBtZW1vcnkgbGVhawogICAtIGFkZCBmaWx0ZXIgY2FsbGJhY2sgdG8gZmlsdGVyIGZpbGVzIHJldHVybmVkCiAgIC0gYWRkIG9wdGlvbiB0byByZXR1cm4gcmVsYXRpdmUgYW5kIG5vdCBmdWxsIHBhdGhzCiAgIC0gYWRkIG9wdGlvbiB0byBzb3J0IHJldHVybmVkIGxpc3QKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiBlbXB0eSBjb250YWluZXIgaW5zdGVhZCBvZiBOVUxMIGlmIG5vCiAgIGZpbGVzIGZvdW5kCiAgIC0gY2hhbmdlIGRlZmF1bHQgY29udGFpbmVyIG5hbWUgdG8gZGlyZWN0b3J5IHRoYXQgd2FzIHNjYW5uZWQKICAgLSB0d2VhayBkZWJ1Zy9sb2cgbWVzc2FnZXMKCjIwMTAtMDMtMDggMjM6MDcgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBDSEFOR0VTOiBzbm1wZDogZGVmaW5lIGFuZCB1c2UgbmV3IE5FVFNOTVBfTE9HT05DRSBtYWNybwoKMjAxMC0wMy0wOCAyMjo0NCAgcnN0b3J5CgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTkVXUzogc25tcGxpYjogY29uZiBmaWxlcyBjYW4gbm93IGluY2x1ZGUgb3RoZXIgY29uZiBmaWxlcwogICAtIGFsc28gdHdlYWtlZCBkZWJ1ZyB0b2tlbnMgaGVyZSBhbmQgdGhlcmUKCjIwMTAtMDMtMDggMjI6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBmaXggdHlwbyAoY2F1c2VkIGV4dGVybmFsIHJlZmVyZW5jZSB3aGVuIERUTFNVRFAgY29uZmlndXJlZAogICB3aXRob3V0IGR0bHN0Y3ApCgoyMDEwLTAzLTA2IDAyOjI3ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV0c25tcF9jb250YWluZXIgZW5oYW5jZW1lbnRzOgogICAtIGFkZCBmcmVlX2l0ZW0gZnVuY3Rpb247IGRlZmF1bHRzIHRvCiAgIG5ldHNubXBfY29udGFpbmVyX3NpbXBsZV9mcmVlCiAgIC0gYWRkIENPTlRBSU5FUl9GUkVFX0FMTCBtYWNyby9mdW5jdGlvbiAobGlrZSBDT05UQUlORVJfQ0xFQVIgYnV0CiAgIGNhbGxzIGNvbnRhaW5lciBmcmVlX2l0ZW0gZm9yIGVhY2ggaXRlbSBpbiBwcmltYXJ5IGNvbnRhaW5lcikKICAgLSBhZGQgYWJpbGl0eSB0byBzZXQgb3B0aW9ucyBvbiBiaW5hcnlfYXJyYXkgY29udGFpbmVycwoKMjAxMC0wMy0wMiAxNzo1NSAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbjoKCiAgIE1hZGUgc3VyZSB0aGF0IHdpbjMyL2J1aWxkLmJhdCB3b3JrcyBhZ2FpbiBieSBhZGRpbmcgbWlzc2luZwogICBzb3VyY2UgZmlsZSBuYW1lcy4gU29ydGVkIHNvdXJjZSBmaWxlIG5hbWVzIGFscGhhYmV0aWNhbGx5IHRvby4KCjIwMTAtMDMtMDIgMTY6NTQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogdGhlIGJhdGNoIGZpbGUgd2luMzIvYnVpbGQuYmF0CiAgIHdvcmtzIGFnYWluIHdpdGggdGhlIFBsYXRmb3JtIFNESyBlbmFibGVkLgoKMjAxMC0wMy0wMiAxNjo1MiAgYnZhc3NjaGUKCiAgICogd2luMzIvTWFrZWZpbGUtYXBwcy5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MjE1IChyZXBsYWNlZCB0aGUgb2Jzb2xldGUgY2wuZXhlIG9wdGlvbiAvR1ggYnkKICAgdGhlIGVxdWl2YWxlbnQgL0VIc2M7IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIsIGFkZGVkCiAgIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIGFuZCByZW1vdmVkIC9GcC4uLiBhbmQgL1lYKS4KCjIwMTAtMDItMjggMTU6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgV2luMzI6IGZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCByZWRlZmluaXRpb24gb2YKICAgX1dJTjMyX1dJTk5UIGJ5IG1ha2luZyBzdXJlIHRoYXQgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBpcwogICBpbmNsdWRlZCBiZWZvcmUgPHdpbmRvd3MuaD4uCgoyMDEwLTAyLTI4IDE1OjI0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVwbGFjZWQgdGhlIG9ic29sZXRlIC9HWCBieSB0aGUKICAgZXF1aXZhbGVudCAvRUhzYy4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiBhZGRlZCAvRCAiX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MiCiAgIC9EICJfQ1JUX05PTlNURENfTk9fV0FSTklOR1MiIHRvIG1ha2UgYnVpbGRpbmcgd2l0aCBNU1ZDIDIwMDgKICAgbW9yZSBzaWxlbnQuCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVtb3ZlZCAvRnAuLi4gYW5kIC9ZWC4gVGhlc2UKICAgb3B0aW9ucyBpbmZsdWVuY2UgaG93IHByZWNvbXBpbGVkIGhlYWRlciBmaWxlcyBhcmUgZ2VuZXJhdGVkLAogICB3aGljaCBhcmUgbm90IHVzZWQgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0LiAvWVggaXMgbm90CiAgIHN1cHBvcnRlZCBieSBNU1ZDIDIwMDguCiAgIENIQU5HRVM6IFdpbjMyOiBiYXRjaCBidWlsZDogcmVtb3ZlZCBhIGR1cGxpY2F0ZSBvY2N1cnJlbmNlIG9mCiAgIHN0cnRvdWxsLm9iai4KCjIwMTAtMDItMjggMTQ6MTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvTWFrZWZpbGUuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE2NyAobWVyZ2Ugb2Ygc25tcGQgYW5kIHNubXBkc2RrIGFuZCBhbHNvIG9mCiAgIG5ldHNubXBtaWJzIGFuZCBuZXRzbm1wbWlic3Nkayk6IGFwcGxpZWQgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIHRvCiAgIHRoZSB3aW4zMi9Db25maWd1cmUgc2NyaXB0IGFuZCB3aW4zMi9NYWtlZmlsZS5pbi4KCjIwMTAtMDItMjcgMTM6MTEgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21kNS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgICAKICAgICAgc25tcGxpYi9nZXRvcHQuYywgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvdWxsLmMsICAgCiAgICAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvd2lucGlwZS5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogZGVjbGFyZWQgYWxsIGZ1bmN0aW9ucyB0aGF0IGFyZSBleHBvcnRlZCBmcm9tIHRoZQogICBOZXQtU05NUCBETEwgYXMgTkVUU05NUF9JTVBPUlQuIFRoZSByZXN1bHQgaXMgYSBtaW5vcgogICBvcHRpbWl6YXRpb246IGNvZGUgdGhhdCB1c2VzIHRoZSBOZXQtU05NUCBETEwgd2lsbCBub3cgY2FsbCB0aGUKICAgRExMLWV4cG9ydGVkIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnN0ZWFkIG9mIGluZGlyZWN0bHkgdmlhIHRoZQogICBzdHViIGluIHRoZSBpbXBvcnQgbGlicmFyeS4KCjIwMTAtMDItMjcgMTE6NTAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFJlbW92ZWQgYSByZWR1bmRhbnQgc3RybmNhc2VjbXAoKSBkZWNsYXJhdGlvbi4KCjIwMTAtMDItMjcgMDk6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG9rX3IuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTAyLTI3IDA5OjU2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4OSAocnN0b3J5KTogYnVpbGRzIGFnYWluIG9uIFdpbmRvd3MuCgoyMDEwLTAyLTI1IDE3OjUzICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgIAogICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgIAogICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLnNsbiwgd2luMzIvd2luMzJkbGwuZHN3LCAgIAogICAgICB3aW4zMi93aW4zMmRsbC5zbG46CgogICBSZXZlcnRlZCByMTgyMDcgKGRzcC9kc3cgdG8gdmNwcm9qL3NsbiBjb252ZXJzaW9uKSBleGNlcHQgdGhlCiAgIHN1cHByZXNzaW9uCiAgIGxpc3QgY2hhbmdlcy4gVGhlIGdvYWwgb2YgdGhpcyBjb252ZXJzaW9uIHdhcyB0d29mb2xkOiBub3Qgb25seQogICB0byBiZSBhYmxlCiAgIHRvIGxvYWQgdGhlIHByb2plY3QgZmlsZXMgaW4gTVNWQyAyMDAyIC0gMjAwOCBidXQgYWxzbyB0byBiZSBhYmxlCiAgIHRvIGNvbW1pdAogICBjaGFuZ2VzIG1hZGUgZnJvbSBpbnNpZGUgdGhlIE1TVkMgMjAwOCBJREUuIFVuZm9ydHVuYXRlbHkKICAgY29udmVydGluZyBkc3AvZHN3CiAgIGZpbGVzIHRvIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBNU1ZDIDIwMDggbWFrZXMgaXQgaW1wb3NzaWJsZSB0bwogICBsb2FkIHRoZQogICB2Y3Byb2ovc2xuIGZpbGVzIHdpdGggZWFybGllciBNU1ZDIHZlcnNpb25zLiBXaHkgb24gZWFydGggZGlkCiAgIE1pY3Jvc29mdAogICBkZWNpZGUgdG8gcHV0IGEgdmVyc2lvbiBudW1iZXIgaW4gWE1MIGZpbGVzID8KCjIwMTAtMDItMjQgMTk6NDEgIGJ2YXNzY2hlCgogICAqICB3aW4zMiwgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgd2luMzIvbGliYWdlbnQsICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMudmNwcm9qLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgd2luMzIvbGlic25tcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCB3aW4zMi9uZXRzbm1wbWlicywgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osIHdpbjMyL3NubXBidWxrZ2V0LCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgd2luMzIvc25tcGJ1bGt3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkLCAgIAogICAgICB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgd2luMzIvc25tcGRlbHRhLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osCiAgICAgICAgIHdpbjMyL3NubXBkZiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCB3aW4zMi9zbm1wZ2V0LCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dCwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIHdpbjMyL3NubXBuZXRzdGF0LCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgd2luMzIvc25tcHNldCwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cywgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgICAKICAgICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgd2luMzIvc25tcHRhYmxlLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0LCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgd2luMzIvc25tcHRyYXAsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgd2luMzIvc25tcHVzbSwgICAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHZhY20sIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCB3aW4zMi9zbm1wd2FsaywgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIChyZXZlcnRlZCkgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBjb252ZXJ0ZWQgLmRzcC8uZHN3IGZpbGVzIHRvCiAgIC52Y3Byb2ovLnNsbiBmaWxlcy4gVGhpcyBpbXBsaWVzIHRoYXQgc3VwcG9ydCBmb3IgTVNWQyA2LjAgaGFzCiAgIGJlZW4gZHJvcHBlZCBhbmQgdGhlIG1pbmltdW0gTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gdmVyc2lvbgogICByZXF1aXJlZCB0byBidWlsZCB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgaXMgTWljcm9zb2Z0IFZpc3VhbAogICBTdHVkaW8gLk5FVCAoMjAwMikuCgoyMDEwLTAyLTIzIDE5OjAzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiB3aGVuIGdlbmVyYXRpbmcgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgc3lzdGVtCiAgIGxvY2F0aW9uIGFuZCBubyBkb21haW4gbmFtZSBpcyBmb3VuZCBpbiAvZXRjL3Jlc29sdi5jb25mLCB1c2UKICAgIkBuby53aGVyZSIgaW5zdGVhZCBvZiAiIi4KCjIwMTAtMDItMjMgMTg6NTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgbTQvYWNfcHJvbXB0X3VzZXIubTQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjMgMTg6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhczoKCiAgIFJlbW92ZWQgYWxsIHRyYW5zcG9ydCB0ZXN0cyBzaW5jZSBpdCdzIGltcG9zc2libGUgdG8gZGV0ZXJtaW5lCiAgIHdoZXJlIHRoZXkgY2FuIHNhZmVseSBvcGVyYXRlICh3YXMgc3RvcHBpbmcgdGFuZGVycycgbmlnaHRseQogICB0ZXN0cyBmcm9tIHN1Y2NlZWRpbmcpCgoyMDEwLTAyLTIzIDE4OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZXJyb3IgYW5kIGRlYnVnZ2luZyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCB0aGUgc2VydmVyIGNvbnRleHQgZ2VuZXJhdG9yIHRvIGFjdHVhbGx5LCB1bSwgcmV0dXJuIHRoZQogICBjb250ZXh0LgoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaW5pdGlhbGl6ZSB0aGUgJ3JlcycgdmFyaWFibGUgc2luY2UgaXQncyBjaGVja2VkCgoyMDEwLTAyLTIzIDE4OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgcHJvZ3Jlc3MgdG93YXJkIGEgcmVhbCBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMi0yMyAxODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdGxzdGNwIGN0b3IgaW52b2NhdGlvbgoKMjAxMC0wMi0yMyAxODozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaDoKCiAgIHJlcXVpcmUgVExTQmFzZQoKMjAxMC0wMi0yMyAxODozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBob3N0IGlkZW50aWZpZXIgYXMgb3V0cHV0CgoyMDEwLTAyLTIzIDE4OjM1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2lnbmlmaWNhbnQgbW9yZSB3b3JrIG9uIHRoZSBUTFMgVENQIGRvbWFpbgoKMjAxMC0wMi0yMyAxNzo0MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxOTMgKGpzYWZyYW5layk6IHJlcmFuIGF1dG9yZWNvbmYgZm9yIHRoZSB0cnVuawogICBhbmQgdGhlIDUuNSBicmFuY2guCgoyMDEwLTAyLTIzIDE0OjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIE5FVFNOTVBfUFJJeiBpbnN0ZWFkIG9mICV6CgoyMDEwLTAyLTIzIDEyOjI3ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4ZWQgY29tcGlsYXRpb24gd2l0aCBycG0tNC42LgogICBUdXJuIG9uIHRoZSBsZWdhY3kgQVBJIHdoZW4gcnBtLTQuNiBpcyBkZXRlY3RlZC4KCjIwMTAtMDItMjMgMDc6MzggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRlZCByMTgwMDAgKGRpc2FibGluZyBTSUdBTFJNIHN1cHBvcnQpIGJlY2F1c2UgdGhpcyBpbnZvbHZlcwogICBhIGJhY2t3YXJkcy1pbmNvbXBhdGlibGUgY2hhbmdlLgoKMjAxMC0wMi0yMyAwMDozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMC0wMi0yMyAwMDozNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlYnVnIG1zZyB0d2Vha3M7IHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zCiAgIC0gYWRkIGRlYnVnIGhlYWRlciBmb3Igc25tcCB2ZXJzaW9uCiAgIC0gYWRkIGxlbmd0aCB0byBkZWJ1ZyBzZW5kL3JlY2VpdmUgbWVzc2FnZXMKICAgLSB1c2UgbmV3IHRyYW5wb3J0IGZ1bmN0aW9ucyBmb3Igc2VuZC9yZWN2L2ZpbmRpbmcgcGVlciBhZGRyZXNzCgoyMDEwLTAyLTIzIDAwOjI1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhZGQgbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcsIG5ldHNubXBfdHJhbnNwb3J0X3NlbmQgJgogICBuZXRzbm1wX3RyYW5zcG9ydF9yZWN2CiAgIC0gbW92ZXMgdHJhbnNwb3J0IG1hbmlwdWxhdGlvbiBpbnRvIHRyYW5zcG9ydCBjb2RlCiAgIC0gY2VudHJhbCBwbGFjZSBmb3IgbG9nZ2luZy9kZWJ1Z2dpbmcgc2VudC9yZWNlaXZlZCBkYXRhCgoyMDEwLTAyLTIyIDE5OjMzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGRvZXMgbm8KICAgbG9uZ2VyIGludm9rZSAidGFpbCAtMSIsIHdoaWNoIGlzIG5vdCBQT1NJWC1jb21wbGlhbnQuCgoyMDEwLTAyLTIyIDE5OjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRm9sbG93LXVwIGZvciByMTgxODYuIFJlZ3Jlc3Npb24gdGVzdCAzNCAod2hldGhlciBhdXRoZW50aWNhdGlvbgogICBmYWlsdXJlIHRyYXBzIGFyZSBzZW50IGJ5IHNubXBkKSBwYXNzZXMgbm93IGFnYWluLgoKMjAxMC0wMi0yMiAwOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBtYWRlIHN1cmUgdGhhdCBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGRvZXMKICAgbm90IGNyZWF0ZSBkYW5nbGluZyBwb2ludGVycyBpbiB0aGUgTUlCIHN1YnRyZWUgcmVnaXN0cnkuCgoyMDEwLTAyLTIyIDA5OjExICBidmFzc2NoZQoKICAgKiBhZ2VudCwgYXBwcywgYXBwcy9zbm1wbmV0c3RhdDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMjIgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZToKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODA4NDogZml4ZWQgbGliZWF5MzIgKE9wZW5TU0wpIGNvbmZpZ3VyZSB0ZXN0IGZvcgogICBNaW5HVy4KCjIwMTAtMDItMjIgMDg6MTMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQnVpbGRzIGFnYWluIHdpdGggTWluR1cgd2hlbiBJUHY2IHN1cHBvcnQgaXMgZW5hYmxlZC4KCjIwMTAtMDItMjEgMTg6NTggIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL2xpYnNkbGwuZHN3LCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogcmVuYW1lZCBsaWJzZGxsLmRzdyBpbnRvIHdpbjMyZGxsLmRzdy4KICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIGxpbmtpbmcgdGhlIE5ldC1TTk1QCiAgIGFwcGxpY2F0aW9ucyB3aXRoIG5ldHNubXAuZGxsIGJ5IGFkZGluZyBhbGwgYXBwbGljYXRpb24gcHJvamVjdHMKICAgdG8gdGhlIHNhbWUgd29ya3NwYWNlIHRoYXQgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdGhlIERMTC4KICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBtYWRlIGJ1aWxkaW5nIG5ldHNubXAuZGxsIGxlc3MgZXJyb3IKICAgcHJvbmUgYnkgbGV0dGluZyB0aGUgY29tcGlsZXIgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUKICAgcHJlcHJvY2Vzc29yIHN5bWJvbCBORVRTTk1QX1VTRV9ETEwgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTAyLTIxIDE4OjUxICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEFkZGVkIGxpYnNubXAuZGVmIHRvIHRoZSBsaXN0IG9mCiAgIGxpYnNubXBfZGxsLmRzcCBzb3VyY2UgZmlsZXMgc3VjaCB0aGF0IHRoZSBETEwgaXMgcmVidWlsdCB3aGVuCiAgIHRoZSAuZGVmIGZpbGUgaGFzIGJlZW4gbW9kaWZpZWQuCgoyMDEwLTAyLTIxIDE4OjQ1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDSEFOR0VTOiBXaW4zMjogZXhwb3J0ZWQgbmV0c25tcF9zZXRfbGluZV9idWZmZXJpbmcoKSBmcm9tCiAgIG5ldHNubXAuZGxsLgoKMjAxMC0wMi0yMSAxNzozOSAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW9yZSBXaW4zMiBJUHY2IHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGltcHJvdmVtZW50czoKICAgLSBNb3ZlZCAjdW5kZWYgSEFWRV9JRl9OQU1FVE9JTkRFWCBmcm9tIHNubXBsaWIvKi5jIHRvCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLgogICAtIENoYW5nZWQgdGhlIGdsb2JhbCBpbjZhZGRyX2FueSB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIHN1Y2ggdGhhdAogICBtdWx0aXBsZSBkZWZpbml0aW9ucyBkbyBub3QgdHJpZ2dlciBhIGxpbmtlciBlcnJvci4KICAgLSBBZGRlZCB0eXBlZGVmcyBmb3IgdWludDhfdCwgaW50OF90LCB1aW50MTZfdCBhbmQgaW50MTZfdC4KICAgLSBSZXBsYWNlZCAnI2lmIE5FVFNOTVBfRU5BQkxFX0lQVjYnIGJ5ICcjaWZkZWYKICAgTkVUU05NUF9FTkFCTEVfSVBWNicuCgoyMDEwLTAyLTIxIDA4OjMwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jOgoKICAgbWFrZSBzdXJlIHRoYXQgSU5BRERSX05PTkUgaXMgZGVmaW5lZCAoZml4ZXMgYnVpbGQgZXJyb3Igb24KICAgU29sYXJpcykKCjIwMTAtMDItMTkgMTk6MzkgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgU3luY2hyb25pemVkIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGFuZAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4KCjIwMTAtMDItMTkgMTQ6MTggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBsaWJzbm1wIGJ1aWxkcyBhZ2FpbiBhcyBhIERMTCB3aGVuIElQdjYgaXMKICAgZW5hYmxlZC4KCjIwMTAtMDItMTkgMTM6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgRm9sbG93IHVwIGZvciByMTgxNjQ6IHN5bmNocm9uaXplZCBsaWJzbm1wLmRlZi5pbiB3aXRoCiAgIGxpYnNubXAuZGVmCgoyMDEwLTAyLTE5IDA5OjA1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBhZGRlZCAjaW5jbHVkZSA8bWFsbG9jLmg+IGluCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIHN1Y2ggdGhhdCB0aGUgTVNWQyBjb21waWxlcgogICBkb2Vzbid0IGdldCBjb25mdXNlZCBieSB0aGUgbWFsbG9jIHJlZGVmaW5pdGlvbiB3aGVuIGJ1aWxkaW5nCiAgIGxpYnNubXAgYXMgYSBETEwuCgoyMDEwLTAyLTE5IDA4OjU5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydGVkIG5ldHNubXBfcGFyc2VfYXJncygpIHN1Y2ggdGhhdCB0aGUgTmV0LVNOTVAgYXBwbGljYXRpb25zCiAgIGJ1aWxkIGFnYWluIHdoZW4gbGlic25tcCBpcyBidWlsdCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1vdmVkIE1TVkMgT3BlblNTTCBsaW5rZXIgc2V0dGluZ3MgZnJvbQogICBzbm1wbGliL2tleXRvb2xzLmMgdG8gd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0CiAgIHRoZXNlIHNldHRpbmdzIGFyZSBub3Qgb25seSBlZmZlY3RpdmUgd2hlbiBidWlsZGluZyBzbm1wbGliIGFzIGEKICAgc3RhdGljIGxpYnJhcnkgYnV0IGFsc28gd2hlbiBhbnkgTmV0LVNOTVAgYXBwbGljYXRpb24gaXMgYnVpbHQKICAgdGhhdCBsaW5rcyB3aXRoIHNubXBsaWIgYXMgYSBzdGF0aWMgbGlicmFyeSBvciBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6MzIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIFdpbjMyIGNsZWFudXA6IE1TVkMgLyBETEwgdGVzdHMgbm93IHVzZSB0aGUgb2ZmaWNpYWxseSBlbmRvcnNlZAogICBtYWNybyBuYW1lcy4KCjIwMTAtMDItMTkgMDc6NTAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDItMTkgMDY6NDcgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIOiAyOTQyOTQwOiBmcm9tICJCaWxsIEZlbm5lciI6IEFkZCBhIG5ldwogICBmdW5jdGlvbiwgbmV0c25tcF9wYXJzZV9hcmdzLCB0aGF0IGlzIGxpa2Ugc25tcF9wYXJzZV9hcmdzIGJ1dAogICB0YWtlcyBhbiBhZGRpdGlvbmFsIGJpdG1hc2ssIGZsYWdzLCB0byBhZmZlY3QgdGhlIGJlaGF2aW91ci4gQWxzbwogICByZW1vdmUgdGhlIG1hZ2ljIGhhbmRsaW5nIG9mIHNvbWUgYXBwbGljYXRpb24gbmFtZXMuCgoyMDEwLTAyLTE4IDE0OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9iaW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAyLTE4IDE0OjIwICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFNvcnRlZCBuYW1lcyBvZiBzb3VyY2UgZmlsZXMgYWxwaGFiZXRpY2FsbHkuCgoyMDEwLTAyLTE4IDEzOjAzICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCBzbm1wbGliL3dpbnNlcnZpY2UuYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgd2luMzIvbmV0c25tcG1pYnNzZGssICAgCiAgICAgIHdpbjMyL3NubXBkc2RrLCB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGRyb3BwZWQgc3VwcG9ydCBmb3IgYnVpbGRpbmcgTmV0LVNOTVAgd2l0aAogICBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgd2l0aG91dCBwbGF0Zm9ybSBTREsuIEJ1aWxkaW5nCiAgIE5ldC1TTk1QIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNi4wICsgUFNESyBvciBhbnkgbGF0ZXIKICAgdmVyc2lvbiBvZiBNU1ZDIGlzIHN0aWxsIHBvc3NpYmxlIGhvd2V2ZXIuCiAgIAogICBOb3RlOiBpZiBpbiB0aGUgZnV0dXJlIGZvciB3aGF0ZXZlciByZWFzb24gaXQgc2hvdWxkIGJlY29tZQogICBuZWNlc3NhcnkgYWdhaW4gdG8gYmUgYWJsZSB0byBidWlsZCBOZXQtU05NUCB3aXRoIE1TVkMgd2l0aG91dAogICByZWx5aW5nIG9uIHRoZSBwbGF0Zm9ybSBTREsgaGVhZGVycywgcGxlYXNlICNpZmRlZiBvdXQgdGhlIE1JQgogICBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBQU0RLIGhlYWRlcnMgaW5zdGVhZCBvZiBzcGxpdHRpbmcgdGhlCiAgIHdvcmtzcGFjZSBmaWxlcyBhZ2Fpbi4KCjIwMTAtMDItMTggMTI6NTcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmM6CgogICBkb3MydW5peC4KCjIwMTAtMDItMTggMDk6NDUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgU291cmNlIGNvZGUgY2xlYW51cDoKICAgLSBNb3ZlZCBkb2N1bWVudGF0aW9uIG9mIG5ldHNubXBfbGFyZ2VfZmRfc2V0IG1lbWJlcnMgdG8gdGhlCiAgIGNvbW1lbnQKICAgYmxvY2sganVzdCBhYm92ZSB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIHR5cGUuCiAgIC0gUmVtb3ZlZCBzdXBlcmZsdW91cyAnZXh0ZXJuICJDIicgc3BlY2lmaWVyOiB0aGlzIGxpbmthZ2UKICAgc3BlY2lmaWVyCiAgIG9ubHkgaGFzIGFuIGVmZmVjdCBvbiBkZWNsYXJhdGlvbnMgb2YgdmFyaWFibGVzIG9mIGZ1bmN0aW9ucyBhbmQKICAgbm90CiAgIG9uIHR5cGVkZWZzIG9yIHN0cnVjdCBkZWZpbml0aW9ucy4KICAgLSBSYW4gdGhpcyBoZWFkZXIgZmlsZSB0aHJvdWdoIGluZGVudC4KCjIwMTAtMDItMTggMDk6MjYgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVBWNkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQ2hhbmdlczoKICAgLSBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgogICAtIEZpeGVkIGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IE1TVkMgKHBhc3NpbmcgaW50CiAgIGluc3RlYWQgb2YgdV9zaG9ydCB0byBodG9ucygpIC8gZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRoYXQgd2VyZQogICBtaXNzaW5nIGJlY2F1c2Ugb2YgbWlzc2luZyAjaW5jbHVkZSBkaXJlY3RpdmVzKS4KCjIwMTAtMDItMTYgMTc6MTYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBUaGUgaGVhZGVyIGZpbGUgPHN5cy90aW1lYi5oPiBpcyBubyBsb25nZXIKICAgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uIE9yOiB0aGUgaGVhZGVyIGZpbGUKICAgPHN5cy90aW1lYi5oPiB3aWxsIGhhdmUgdG8gYmUgaW5jbHVkZWQgZXhwbGljaXRseSBpbiBzb3VyY2UgZmlsZXMKICAgdGhhdCBuZWVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gZnRpbWUoKS4KICAgCiAgIE5vdGU6IGNvbXBhcmVkIHRvIHIxODAyNCBhbmQgYmVmb3JlLCB0aGlzIGNoYW5nZSBkb2VzIG5vdCBhZmZlY3QKICAgQlNEIHN5c3RlbXMgLS0gPHN5cy90aW1lYi5oPiB3YXMgb25seSBpbmNsdWRlZCBmcm9tCiAgIDxuZXQtc25tcC90eXBlcy5oPiBvbiBCU0Qgc3lzdGVtcyBpbiByZXZpc2lvbnMgcjE4MDI1Li5yMTgxNTIuCgoyMDEwLTAyLTE0IDE5OjI5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOgoKICAgQnVpbGRzIG5vdyBvbiBGcmVlQlNEIHZlcnNpb24gOC4wLgoKMjAxMC0wMi0xMyAyMDo1OSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBBZGp1c3QgdGhlIHBsYWNlbWVudCBvZiA7J3MgaW4gb3JkZXIgdG8KICAgYSkgQXZvaWQgd2FybmluZ3MgYWJvdXQgc3B1cmlvdXMgc2VtaWNvbG9ucwogICBiKSBOb3QgaGF2ZSB1bnRlcm1pbmF0ZWQgZGVjbGFyYXRpb25zIGluIGhlYWRlcnMKCjIwMTAtMDItMTIgMDI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiB1cGRhdGUgaW5saW5lIGRvY3VtZW50YXRpb247IGFkZCBzdG9yYWdldHlwZSB0ZXN0CiAgIGZvciBjb2x1bW5zCgoyMDEwLTAyLTEyIDAxOjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmaXggdHlwbyBpbiBkZWZpbmUKCjIwMTAtMDItMTIgMDE6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZml4IHNlZCBwcm9jZXNzaW5nIG9uIHdoaXRlLXNwYWNlIGFkZGluZyBzb2xhcmlzIG1hY2hpbmVzCgoyMDEwLTAyLTEwIDIzOjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGFkZCB0b3Agc3JjZGlyIHRvIGNwcCBzZWFyY2ggcGF0aAoKMjAxMC0wMi0xMCAyMzo1MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgZnJlZWJzZCBuZWVkcyB0aW1lLmggYWJvdmUgdGltZWIuaAoKMjAxMC0wMi0xMCAyMzozNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICB1c2Ugc2VkIHdpdGggbXVsdGlyZXBsYWNlIG9uIGEgbGluZSB0byBmaXggcG9zc2libGUgd2hpdGVzcGFjZQogICBpc3N1ZSBvbiBzb2xhcmlzCgoyMDEwLTAyLTEwIDIzOjIyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGJlZ2lubmluZyB3b3JrIGZvciBUTFMgc2VwYXJhdGlvbiBpbnRvIHNlcGFyYXRlIGZpbGVzIHdpdGggYSBiYXNlCiAgIGZpbGUKCjIwMTAtMDItMTAgMjM6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDoKCiAgIG1vdmUgYmFzZSB0cmFuc3BvcnQgY3JlYXRpb24gZnVuY3Rpb24gb3V0IG9mIGxpbnV4IGlmZGVmcwoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmVkIGFub3RoZXIgZXJyb3IgbG9nZ2luZyBmdW5jdGlvbgoKMjAxMC0wMi0xMCAyMzoyMCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGRlZCBUTFMgb3ZlciBUQ1AKCjIwMTAtMDItMTAgMTY6MzkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBMaW51eDogSW1wcm92ZWQgRXRoZXJMaWtlLU1JQiBzdXBwb3J0CiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDEwLTAyLTEwIDEwOjA0ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBTdXBwb3J0IG51bGwtYnl0ZXMgaW4gb2N0ZXQgc3RyaW5ncwogICBQYXRjaCBzdXBwbGllZCBieSBUb21teSBCZWFkbGUKCjIwMTAtMDItMTAgMDA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgVExTIGluZnJhc3RydWN0dXJlIGludG8gYSBiYXNlIGRvbWFpbiBmaWxlCgoyMDEwLTAyLTEwIDAwOjA0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgbW92ZWQgc29ja2V0NiBmdW5jdGlvbnMgdG8gdGhlIGlwdjYgYmFzZQoKMjAxMC0wMi0xMCAwMDowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgd2hpdGUgc3BhY2UgZm9ybWF0dGluZwoKMjAxMC0wMi0xMCAwMDowMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgdWRwX3NlbmQvcmVjdiB0byB1ZHBiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlIG5ldHNubXBfc29ja19idWZmZXJfc2V0IGludG8gc29ja2V0YmFzZQoKMjAxMC0wMi0xMCAwMDowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIG1vdmUgaXB2NCBzcGVjaWZpYyBVRFAgdHJhbnNwb3J0IGNyZWF0aW9uIHRvIHVkcGlwdjQgYmFzZQoKMjAxMC0wMi0xMCAwMDowMSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtYWRlIGNvbW1vbiBmdW5jdGlvbnMgYmUgcmVmZXJlbmNlZCBkaXJlY3RseSBieSB0aGUgdHJhbnNwb3J0cwogICBhbmQgcmVtb3ZlZCBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5OyB0aGV5IHdlcmUgc3RhdGljIHNvIHRoZXJlIGlzCiAgIG5vIGJhY2t3YXJkcyBjb21wYXQgaXNzdWVzCgoyMDEwLTAyLTEwIDAwOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgc29ja2V0IGJhc2VkIGNsb3NlIHRvIGEgc29ja2V0IGJhc2VkIGRvbWFpbiBjb21tb24gdG8gbWFueQogICB0aGluZ3MKCjIwMTAtMDItMDkgMjM6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIG1vdmUgVENQIGNvbW1vbiBmdW5jdGlvbnMgdG8gYSBUQ1BCYXNlIGRvbWFpbiBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wMi0wOSAyMzo1NyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgd2FybmluZyBjbGVhbnVwCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHRtU3RhdGVSZWZlcmVuY2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBpbmRleGVkIGFkZHJfcGFpcgoKMjAxMC0wMi0wOSAyMzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgbWFrZSBuZXRzbm1wX2R0bHN1ZHBfY2xvc2UgbWFrZSB1c2Ugb2YgbmV0c25tcF9iYXNldWRwX2Nsb3NlCgoyMDEwLTAyLTA5IDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGJhc2UgVURQIHNvY2tldCBjcmVhdGlvbiBpbnRvIGEgY29tbW9uIGJhc2UgZnVuY3Rpb24gYW5kCiAgIG1hZGUgdXNlIG9mIGl0CgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oOgoKICAgcHJvcGVyIF9IIGlmZGVmIGNoZWNrcwoKMjAxMC0wMi0wOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgYWRkZWQgYSByYXcgVURQIGJhc2UgZG9tYWluCgoyMDEwLTAyLTA5IDIzOjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBjcmVhdGVkIGEgVURQIElQdjQgYmFzZTsgbW92ZWQgYW5kIHJldXNlZCBtb3JlIGluZnJhc3RydWN0dXJlCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBpcHY0IGFkZHJlc3MgZm9ybWF0dGluZyBpbnRvIHNubXBJUHY0QmFzZURvbWFpbgoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIHY2IGRvbWFpbiBpbmZyYXN0cnVjdHVyZSBmaWxlcwoKMjAxMC0wMi0wOSAyMzo1MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUFY0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY0QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUwICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQVjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIE5ldyBJUHY0IGFuZCBJUCBiYXNlIHRyYW5zcG9ydCBmaWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgZG9uJ3QgZG91YmxlIGluY2x1ZGUgdHJhbnNwb3J0IG1vZHVsZXMKCjIwMTAtMDItMDkgMjM6NDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQ1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgbW92ZWQgYXJjaGl0ZWN0dXJlIHRlc3RzIGludG8gdGhlIGhlYWRlciBmaWxlcyB1c2luZyBjb25maWdfZXJyb3IKICAgZm9yIHNpZ25hbGluZyBwcm9ibGVtcwoKMjAxMC0wMi0wOSAyMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGFuZCByZXBvcnQgY29uZmlnX2Vycm9ycyBpbiB0cmFuc3BvcnQgaGVhZGVycwoKMjAxMC0wMi0wOSAyMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBhbGxvdyBhIE5FVFNOTVBfUVVJQ0tfQ0hFQ0sgZW52IHZhcmlhYmxlIHRvIGJ5cGFzcyBoZWFkZXIgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBiZXR0ZXIgY29tbWVudHMKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGNoZWNrIGZvciBjb25maWdfcmVxdWlyZSBtYWNyb3MgaW4gdHJhbnNwb3J0IGhlYWRlcnMgZm9yCiAgIGZvcmNlLWluY2x1ZGluZyBvZiBvdGhlciB0aGluZ3MKCjIwMTAtMDItMDkgMjM6NDEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkZWZpbmUgYSBzdGFuZGFyZGl6ZWQgaW5kZXhlZCBhZGRyX3BhaXIgaW5zdGVhZCBvZiB1c2luZyBvbmUKICAgbGFiZWxlZCBvbmx5IGZvciBVRFAgZXZlcnl3aGVyZQoKMjAxMC0wMi0wOSAyMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggdHJhbnNwb3J0IHByZWZpeCBsaXN0IGZvciBpbmNvbWluZyBtZXNzYWdlcwoKMjAxMC0wMi0wOSAyMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgc25tcGxpYi9zbm1wdHNtLmM6CgogICByZW1vdmUgdGhlIHNlY3VyaXR5IGxldmVsIGZyb20gdGhlIFRTTSBjYWNoZTsgcHJldmlvdXMgZXhpc3RlbmNlCiAgIGZyb20gZnJvbSBhIGRyYWZ0IGNvcHkgb2YgdGhlIFRTTSBSRkMgYW5kIGlzIG5vdyBzdG9yZWQgZW50aXJlbHkKICAgaW4gdGhlIHRtIHJlZmVyZW5jZQoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBpbXBsZW1lbnQgaW5jb21pbmcgVFNNIHByb2NlZHVyZXMgYWNjb3JkaW5nIHRvIFJGQyB0ZXh0CgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBvdXRnb2luZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgY3JlYXRlIGRlZmluZWQgc2l6ZWQgYXJyYXkgYW5kIGxlbmd0aCB2YXJpYWJsZQoKMjAxMC0wMi0wNSAwOTo1MiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBmaWxlZGVzY3JpcHRpb3IgbGVhayBpbiBFdGhlcmxpa2UtTUlCIGFuZAogICBSTU9OLU1JQgoKMjAxMC0wMi0wNCAxNTo1NyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgcmVhbCBpZlNwZWVkIG9mIG5ldHdvcmsgaW50ZXJmYWNlIGV2ZW4gaXQKICAgaXMgZG93bi4KICAgU29tZSBpbnRlcmZhY2VzIGNhbiByZXBvcnQgdGhlaXIgcmVhbCBzcGVlZCwgZXZlbiB0aGV5IGFyZSBkb3duLgogICBBbmQgaWYgdGhleSBjYW4ndCwgdGhlIGZhbGxiYWNrIHRvIDEwTWJwcyBpcyBzdGlsbCB0aGVyZS4KCjIwMTAtMDItMDEgMTQ6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBmaWxlCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYy4KCjIwMTAtMDItMDEgMTQ6NDUgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMiwgc25tcGxpYi9rZXl0b29scy5jOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBwcm9jZWR1cmUgZm9yIGJ1aWxkaW5nCiAgIHdpdGggU05NUHYzIHN1cHBvcnQgZW5hYmxlZCAoT3BlblNTTCkuCgoyMDEwLTAyLTAxIDE0OjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgIAogICAgICBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWxsIGNhbGxzIHRvIGZyZWUoKSBhcmUgaW50ZXJjZXB0ZWQgd2hlbiBidWlsZGluZwogICB3aXRoIGRtYWxsb2MKICAgc3VwcG9ydCBlbmFibGVkLiBJbmNsdWRlZCA8ZG1hbGxvYy5oPiBpbiB0aG9zZSBzb3VyY2UgZmlsZXMgd2hlcmUKICAgaXQgd2FzIG5vdAogICB5ZXQgaW5jbHVkZWQsIGFuZCBwcm92aWRlZCBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIGZyZWUoKSB3aGVyZQogICB0aGUgYWRkcmVzcyBvZgogICB0aGlzIGZ1bmN0aW9uIHdhcyB0YWtlbiAoRG1hbGxvYyBjYW4gb25seSBpbnRlcmNlcHQgZnJlZSgpIHdoZW4KICAgaXQgaXMgY2FsbGVkCiAgIGRpcmVjdGx5IGJ1dCBub3Qgd2hlbiBpdCBpcyBjYWxsZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIHBvaW50ZXIpLgoKMjAxMC0wMi0wMSAxMDo0OSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgTkVXUzogYnVpbGRpbmc6IEJ1aWxkaW5nIE5ldC1TTk1QIHdpdGggZG1hbGxvYyBzdXBwb3J0IGVuYWJsZWQgaXMKICAgYWdhaW4gcG9zc2libGUuCgoyMDEwLTAyLTAxIDAxOjA1ICB0YW5kZXJzCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1QIHRjcCInIHdvcmtzIGZpbmUgbm93CgoyMDEwLTAxLTMxIDA4OjAyICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBhbiBzaCBzeW50YXggZXJyb3IgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHQKICAgdGhhdCB3YXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2l0aG91dCBsaWJjcnlwdG8gYW5kIHdpdGhvdXQKICAgbGliZWF5MzIuCiAgIFRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHJlcG9ydGVkOgogICBjb25maWd1cmVbMzMxMzZdOiB4OiB1bmtub3duIHRlc3Qgb3BlcmF0b3IKCjIwMTAtMDEtMjkgMjA6MDcgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBFbGFib3JhdGUgb24gcmV2LiAxODA4OSBhbmQgYWRqdXN0IHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHRoZQogICAqICAgICpyZWFsbHkgd29ya2luZyBvbmUqLiAgMjAxMC0wMS0yOSAxOToxMSAganNhZnJhbmVrCgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBGaXggdGVzdCAzNSB3aGVuIGNvbmZpZ3VyZSBvcHRpb24gJy0td2l0aC10ZW1wLWZpbGUtcGF0dGVybicgd2FzCiAgIHVzZWQgYW5kIHRoZSBkaXJlY3RvcnkgZm9yIHRlbXAuIGZpbGVzIGRvZXMgbm90IGV4aXN0IHlldC4KCjIwMTAtMDEtMjkgMTU6MDcgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9jbG9zZWRpci5jLCAgIAogICAgICBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL29wZW5kaXIuYywgc25tcGxpYi9yZWFkZGlyLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBNb3ZlZCB0aGUgc291cmNlIGNvZGUgb2YgdGhlIG9wZW5kaXIoKSwgcmVhZGRpcigpLCBjbG9zZWRpcigpIGFuZAogICBnZXR0aW1lb2ZkYXkoKSByZXBsYWNlbWVudHMgZm9yIE1TVkMgZnJvbSBzbm1wbGliL3N5c3RlbS5jIHRvCiAgIHNlcGFyYXRlIHNvdXJjZSBmaWxlcyBpbiBzbm1wbGliLgoKMjAxMC0wMS0yOSAwODo1NyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENvbmZpZ3VyZSBzY3JpcHQgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnQ6IHJlbmFtZWQgdGhlIHZhcmlhYmxlCiAgICJzYXZlZF9MSUJTIiBpbnRvICJuZXRzbm1wX3NhdmVfTElCUyIuCgoyMDEwLTAxLTI5IDA2OjM5ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4OgoKICAgQ0hBTkdFUzogdGVzdGluZzogQ2hlY2sgdGhlIHNpemUgb2Ygc3VuX3BhdGggYW5kIHVzZSB0aGF0IHRvCiAgIGdlbmVyYXRlIHRoZSBtYXhpbWFsIHNpemUgc3RyaW5ncyBmb3Igc3RyZXNzaW5nIGNvbTJzZWN1bml4LgoKMjAxMC0wMS0yNyAxNToxNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTkVXUzogTWluR1c6IHJ1bm5pbmcgdGhlIHJlZ3Jlc3Npb24gdGVzdCBzdWl0ZSBpcyBhZ2FpbiBwb3NzaWJsZQogICAoJ21ha2UgdGVzdCcpLgoKMjAxMC0wMS0yNyAxNDo0MyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IEN5Z3dpbjogYnVpbGRpbmcgd2l0aCBhbm90aGVyIE9wZW5TU0wgcGFja2FnZSB0aGFuIHRoZQogICBDeWd3aW4tcHJvdmlkZWQgcGFja2FnZXMgb3BlbnNzbCBhbmQgb3BlbnNzbC1kZXZlbCBpcyBhZ2FpbgogICBwb3NzaWJsZS4KICAgTkVXUzogTWluR1c6IGJ1aWxkaW5nIHdpdGggT3BlblNTTCB3b3JrcyBhZ2Fpbi4KCjIwMTAtMDEtMjYgMjE6MjcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBjb250ZXh0IGFyZ3VtZW50IG9mIHNlbmRfdjN0cmFwLAogICBzZW5kX3RyYXBfdmFyc193aXRoX2NvbnRleHQgYW5kIG5ldHNubXBfc2VuZF90cmFwcyByZWZlciB0byBhCiAgIGNvbnN0IGNoYXIqLgoKMjAxMC0wMS0yNiAyMToyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOgoKICAgQ29ycmVjdCBtaXNzcGVsbGluZyAtICNlbHNpZiB0byAjZWxpZgoKMjAxMC0wMS0yNiAyMToyMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBBcHBhcmVudGx5IG5vdCBhbGwgc3lzdGVtcyBkZWZpbmUgSU5FVF9BRERSU1RSTEVOIHNvIGFkZCBpdCBpZiBpdAogICBpcyBtaXNzaW5nLgoKMjAxMC0wMS0yNiAxNTo0NiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZGVkIG5ldHN0YXQgcGF0aCBmb3IgTWluR1cuCgoyMDEwLTAxLTI2IDE1OjAwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCBzdGF0IG5hbWVzCgoyMDEwLTAxLTI2IDE1OjAwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9tc2dyZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0X29yX3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVwZGF0ZSBjb21tZW50cyB0byByZWZsZWN0IFJGQzU1OTEgYXMgdGhlIGRvY3VtZW50IGRlc2NyaWJpbmcgdGhlCiAgIGltcGxlbWVudGF0aW9uCgoyMDEwLTAxLTI2IDExOjQzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaDoKCiAgIE5FV1M6IEN5Z3dpbjogQlVHOiAyOTM5MTY4OiBieXRlIG9yZGVyIG9mIHVkcExvY2FsUG9ydCBpcyBub3cKICAgY29ycmVjdC4KCjIwMTAtMDEtMjYgMTA6NDYgIGJ2YXNzY2hlCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybDoKCiAgIE5FV1M6IEN5Z3dpbjogQlVHOiAyOTM5MTY4OiBmaXhlZCB0ZXN0IGluZnJhc3RydWN0dXJlICgibWFrZQogICB0ZXN0IikuIFRoaXMgaGFzIGJlZW4gZml4ZWQgYnkgdXNpbmcgdGhlIHByb3BlciBlbnZpcm9ubWVudAogICBzZXBhcmF0b3IgY2hhcmFjdGVyIGFuZCBieSBhZGRpbmcgdGhlIHBhdGggb2YgdGhlIG5ldHN0YXQKICAgZXhlY3V0YWJsZSBmb3IgQ3lnd2luIGluIHRlc3RpbmcvVEVTVENPTkYuc2guCgoyMDEwLTAxLTI2IDA5OjI3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggcmFyZSByYWNlIGNvbmRpdGlvbiB3aGVuIHJlYWRpbmcgUlBNCiAgIGRhdGFiYXNlLgogICBPbGQgcnBtIHZlcnNpb25zIHJldHVybiBOVUxMIGluc3RlYWQgb2YgSGVhZGVyIHdoZW4gYW5vdGhlciBSUE0KICAgaW5zdGFuY2UgaG9sZHMKICAgZGF0YWJhc2UgbG9ja3MuIEkuZS4gc25tcGQgc29tZXRpbWVzIGNyYXNoZXMgd2hlbiByZWFkaW5nCiAgIGhyX3N3SW5zdCBhbmQgcnBtIGlzCiAgIGluc3RhbGxpbmcvdXBkYXRpbmcvcmVtb3ZpbmcgYW5vdGhlciBwYWNrYWdlLiBBcyBhIHNvbHV0aW9uLAogICB3aG9sZSBSUE0gY2FjaGUKICAgaXMgdGhyb3duIGF3YXkgYW5kIHJlLXJlYWQgd2hlbiB3ZSBnb3QgYW4gZXJyb3IgZnJvbSBsaWJycG0uIFRoZQogICB3aG9sZSBwcm9jZXNzCiAgIGlzIHJlc3RhcnRlZCBvbmx5IHRocmVlIHRpbWVzLCB0byBwcmV2ZW50IGVuZGxlc3MgbG9vcC4KCjIwMTAtMDEtMjUgMjI6MTYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBEbyBub3QgY2hlY2sgaWYgdmFsdWVzIG9mIHR5cGUgc2l6ZV90CiAgIGFyZSBsZXNzIHRoYW4gMC4KCjIwMTAtMDEtMjUgMjI6MTEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IENoZWNrIHRoZSByYW5nZSBvZiBvaWQgdmFsdWVzIHRvd2FyZHMgdGhlIG1heGltdW0KICAgb2lkIHZhbHVlLCBub3RVTE9OR19NQVgKCjIwMTAtMDEtMjUgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgb25seSBiYWlsIG9uIG1pc3NpbmcgbGliaXBobHBhcGkgZm9yIHh3aW5zb2NrMgoKMjAxMC0wMS0yNSAxOTo1NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW5hbWUgTUFYX1NUQVRTIHRvIE5FVFNOTVBfU1RBVF9NQVhfU1RBVFMKCjIwMTAtMDEtMjUgMTk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jOgoKICAgdXBkYXRlIGZvciBuZXcgcGF0aCB0byBzbm1wX2dldF9zdGF0aXN0aWNzOyBjaGVjayBmb3IgaW5kZXgKICAgb3ZlcmZsb3cKCjIwMTAtMDEtMjUgMTk6NDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5oOgoKICAgdXBkYXRlIGZvciBuZXcgcGF0aCB0byBzbm1wX2dldF9zdGF0aXN0aWNzCgoyMDEwLTAxLTI1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHVzZSAqY3VycmVudCogY29weSBvZiB0aGUgTUlCIHdoZW4gZ2VuZXJhdGluZyBzdGF0cwoKMjAxMC0wMS0yNSAxNjowMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfZ2V0X3N0YXRpc3RpYy5oOgoKICAgbW92ZSBzbm1wX2dldF9zdGF0aXN0aWMgaGVscGVyIHRvIGhlbHBlcnMgZGlyOyB1cGRhdGUgYWxsX2hlbHBlcnMKICAgaGVhZGVyCgoyMDEwLTAxLTI1IDE0OjM0ICBidmFzc2NoZQoKICAgKiBhcHBzL2FnZW50eHRyYXAuYzoKCiAgIFJlcGxhY2VkIGV4cGxpY2l0IGRlY2xhcmF0aW9ucyBvZiBvcHRpbmQsIG9wdG9wdCBhbmQgb3B0YXJnIGJ5CiAgICNpbmNsdWRlIDx1bmlzdGQuaD4gYmVjYXVzZSBleHBsaWNpdGx5IGRlY2xhcmluZyB0aGVzZSB2YXJpYWJsZXMKICAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBDeWd3aW4uCgoyMDEwLTAxLTI1IDE0OjI1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IEN5Z3dpbjogSVB2NiBpcyBvbmx5IHN1cHBvcnRlZCB1bmRlciBDeWd3aW4gMS43IG9yIGxhdGVyLgogICBUaGUgb2xkIGltcGxlbWVudGF0aW9uIG9mIElQdjYgc3VwcG9ydCBpbiBOZXQtU05NUCB1bmRlciBDeWd3aW4KICAgaW52b2x2ZWQgYSBzdHJhbmdlIG1peHR1cmUgb2YgQ3lnd2luIGFuZCBXaW5zb2NrMiBzb2NrZXQgY2FsbHMsCiAgIHdoaWNoIHdhcyB0b28gaGFyZCB0byBtYWludGFpbi4KICAgTkVXUzogQ3lnd2luOiBidWlsZHMgYWdhaW4gd2l0aCBJUHY2IHN1cHBvcnQgZW5hYmxlZAogICAoLS1lbmFibGUtaXB2NikuIEF0IGxlYXN0IE5ldC1TTk1QIDUuNSBkb2Vzbid0IGJ1aWxkIHVuZGVyIEN5Z3dpbgogICB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkLiBUaGUgY29uZmlndXJlIHNjcmlwdCByZXBvcnRlZAogICAiY2hlY2tpbmcgaXB2NiBzdGFjayB0eXBlIC4uLiByZXN1bHQ6ICJ1bmtub3duLCBubyIgLi4uIGVycm9yOgogICBJUHY2IHRyYW5zcG9ydHMgbm90IGF2YWlsYWJsZSBpZiBJUHY2IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQiLgoKMjAxMC0wMS0yNSAxNDoxMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgPHN0cmluZy5oPi4KCjIwMTAtMDEtMjUgMTQ6MTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciB0aGUgSVB2NiBzdGFjayBpbmNsdWRlZCBpbiBDeWd3aW4KICAgdmVyc2lvbiAxLjcuCiAgIElQdjYgc3VwcG9ydCBpcyBvbmUgb2YgdGhlIG5ldyBmZWF0dXJlcyBvZiBDeWd3aW4gMS43LiBGb3IgbW9yZQogICBpbmZvcm1hdGlvbiwKICAgc2VlIGFsc28gaHR0cDovL2N5Z3dpbi5jb20vY3lnd2luLXVnLW5ldC9vdi1uZXcxLjcuaHRtbC4KCjIwMTAtMDEtMjUgMTI6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IEN5Z3dpbjogdGhlIG1lc3NhZ2UgImNvbmZpZ3VyZTogV0FSTklORzogd2luc29jay5oOgogICBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIGRvZXMgbm8gbG9uZ2VyIGFwcGVhciB3aGVuCiAgIHJ1bm5pbmcgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCiAgIEZvbGxvdy11cCBmb3IgcjE4MDUwOiByZS1lbmFibGVkIGxpYmlwaGxwYXBpIGFuZCBpcGhscGFwaS5oIHRlc3RzCiAgIGZvciBub24tTWluR1cgcGxhdGZvcm1zIHNpbmNlIHRoZSBDeWd3aW4gYnVpbGQgbmVlZHMgdGhlc2UuCgoyMDEwLTAxLTI1IDA3OjI4ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBzbm1wbGliL2luZXRfbnRvcC5jLCAgCiAgICAgICBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBhdXRvY29uZiB0byBkZWNpZGUgaWYgaW5ldF9udG9wLmMgYW5kCiAgIGluZXRfcHRvbi5jIGFyZSB0byBiZSBjb21waWxlZC4KCjIwMTAtMDEtMjUgMDc6MDkgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgQ0hBTkdFUzogTWluR1c6IHN0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjb25maWd1cmUgdGVzdAogICBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yNSAwNToxNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBUTFNUTSBjb3VudGVyIHN0YXRzCgoyMDEwLTAxLTI1IDA1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGFkZCBpbiBUU00gbmVlZGVkIGNvdW50ZXIgZGVmaW5pdGlvbnMKCjIwMTAtMDEtMjUgMDU6MTIgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUC1UU00tTUlCLnR4dCwgbWlicy9yZmNsaXN0OgoKICAgYWRkZWQgdGhlIFNOTVAtVFNNLU1JQgoKMjAxMC0wMS0yNCAxNDo0MyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgTkVXUzogc25tcGQ6IE1hZGUgc3VidHJlZV9jb250ZXh0X2NhY2hlOjpjb250ZXh0X25hbWUgYSBjb25zdAogICBjaGFyKi4KCjIwMTAtMDEtMjQgMTQ6MjcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUHJldmVudCBnY2MgcGVkLXdhcm5pbmcgZm9yCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUCgoyMDEwLTAxLTI0IDEzOjI3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IFByZWZlciB0byB1c2UgYSB2YXJpYWJsZSBvZiB0aGUgcmlnaHQgdHlwZSBvdmVyCiAgIGFuIHVnbHkgY2FzdC4gTGVzc2VuIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgYXMgd2VsbC4KCjIwMTAtMDEtMjQgMTI6NTkgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IEludHJvZHVjZWQgdGhlIHZhcmlhYmxlICd3aXRoX3NvY2tsaWInIGluIHRoZQogICBjb25maWd1cmUgc2NyaXB0LiBUaGlzIHZhcmlhYmxlIGlzIHNldCB0byAid2luc29jazIiIGZvciBNaW5HVwogICBhbmQgdG8gImRlZmF1bHQiIGZvciBhbGwgb3RoZXIgc3lzdGVtcy4gV2luc29jazIgdGVzdHMgYXJlIG9ubHkKICAgcnVuIGlmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgKE1pbkdXKS4KCjIwMTAtMDEtMjQgMTI6NTMgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBkZWJ1ZyBsb2dzLgoKMjAxMC0wMS0yNCAxMjo0NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeGVzOiBmaXhlZCB3YXJuaW5ncyBhYm91dCBjaGFyICogLwogICB1bnNpZ25lZCBjaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMjQgMTI6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1ha2UgaW5ldF9udG9wKCkgYW5kIGluZXRfcHRvbigpCiAgIGRlY2xhcmF0aW9ucwogICBhdmFpbGFibGUgdG8gdGhlIGNvbXBpbGVyLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4OiBtYWRlIHN1cmUgdGhhdCA8d3MydGNwaXAuaD4gd2lsbAogICBiZSBpbmNsdWRlZAogICBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgY29tcGxhaW4KICAgYWJvdXQgc3RydWN0CiAgIHNvY2thZGRyX2luNiBiZWluZyB1c2VkIGJlZm9yZSBiZWluZyBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMTo0MiAgYnZhc3NjaGUKCiAgICogbWFuOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMS0yNCAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrZ2V0LmMsICAgCiAgICAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsICAgCiAgICAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCAgIAogICAgICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsICAgCiAgICAgIGFwcHMvc25tcHdhbGsuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENsZWFudXAgKFdpbmRvd3MpOiByZW1vdmVkIHN1cGVyZmx1b3VzICNpbmNsdWRlIDxzeXMvdGltZWIuaD4KICAgZGlyZWN0aXZlcy4gVGhpcyBoZWFkZXIgZmlsZQogICBoYXMgb25seSB0byBiZSBpbmNsdWRlZCBmcm9tIHNubXBsaWIvc3lzdGVtLmMgYmVjYXVzZSBvZiB0aGUKICAgX2Z0aW1lKCkgY2FsbCBpbiB0aGF0IGZpbGUuCgoyMDEwLTAxLTI0IDEwOjQzICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFRoZSBtYWNybyAnQygpJyBub3cgY2FzdHMgaXRzIHJlc3VsdCBmcm9tIHVuc2lnbmVkIGxvbmcgdG8KICAgdW5zaWduZWQgaW50LgogICBUaGlzIGNoYW5nZSBmaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIG1pc21hdGNoZXMKICAgYW5kIGZpeGVzIGEgYnVnIChpbmNvcnJlY3Qgc25tcG5ldHN0YXQgb3V0cHV0KSBvbiBiaWcgZW5kaWFuCiAgIHN5c3RlbXMuCgoyMDEwLTAxLTI0IDEwOjMzICBidmFzc2NoZQoKICAgKiBtYW4vY29uZmlnX2FwaS4zOgoKICAgRm9sbG93LXVwIGZvciByMTc5NDY6IHJlbW92ZWQgZ2VuZXJhdGVkIG1hbiBwYWdlcyBmcm9tCiAgIHJlcG9zaXRvcnkuCgoyMDEwLTAxLTI0IDEwOjMxICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1vdmVkIHR3byBkZWNsYXJhdGlvbnMgb2Ygc3RhdGljIGZ1bmN0aW9ucyBmcm9tIC5oIHRvIC5jLgoKMjAxMC0wMS0yNCAxMDoyMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzLgoKMjAxMC0wMS0yNCAxMDoxOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYnVpbGRzIGFnYWluIHdoZW4gSEFWRV9HRVRBRERSSU5GTyBpcyBub3QKICAgZGVmaW5lZC4KCjIwMTAtMDEtMjQgMTA6MDMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvaW5ldF9udG9wLmMsICAgCiAgICAgIHNubXBsaWIvaW5ldF9udG9wLmgsIHNubXBsaWIvaW5ldF9wdG9uLmMsIHNubXBsaWIvaW5ldF9wdG9uLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgY29uZmlndXJlIHRlc3RzIGZvciBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkuCiAgIC0gQWRkZWQgaGVhZGVyIGZpbGVzIHNubXBsaWIvaW5ldF9udG9wLmggYW5kIHNubXBsaWIvaW5ldF9wdG9uLmguCiAgIC0gUmVwbGFjZWQgImV4dGVybiBpbmV0X250b3AoLi4uKTsiIGFuZCAiZXh0ZXJuIGluZXRfcHRvbiguLi4pOyIKICAgYnkgI2luY2x1ZGUgImluZXRfbnRvcC9wdG9uLmgiLgogICAtIENvbnZlcnRlZCBzbm1wbGliL2luZXRfbnRvcC5jIGFuZCBzbm1wbGliL2luZXRfcHRvbi5jIGZyb20gSyZSCiAgIEMgdG8gQU5TSSBDLgogICAtIFJlcGxhY2VkIHRoZSBpbmV0X2F0b24oKSBjYWxscyB0aGF0IHdlcmUgaW50cm9kdWNlZCBpbiByMTgwMzMKICAgaW4gc25tcGxpYi9zbm1wVURQRG9tYWluLmMgYnkgaW5ldF9wdG9uKCkgY2FsbHMgc3VjaCB0aGF0IGl0IGlzCiAgIGFnYWluIHBvc3NpYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIG9uIFdpbmRvd3MuCgoyMDEwLTAxLTI0IDA2OjA4ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFJlbW92ZSBkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zIHRoYXQgZG9uJ3QKICAgZXhpc3Qgb3IgYXJlIGRlY2xhcmVkIGVsc2V3aGVyZS4KCjIwMTAtMDEtMjQgMDU6NDggIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZWQgdGhlIHVudXNlZCB2YXJpYWJsZXMgd2FybV9zdGFydF9vaWQsCiAgIGxpbmtfZG93bl9vaWQsIGxpbmtfdXBfb2lkLCBhdXRoX2ZhaWxfb2lkIGFuZCBlZ3BfeHh4X29pZC4KCjIwMTAtMDEtMjMgMjI6MDYgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBCZXR0ZXIgc2V0IG9mIFNLSVBJRi9TS0lQSUZOT1RTCgoyMDEwLTAxLTIzIDIwOjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBCZSBjb3JyZWN0IGluIHdoYXQgaXQgaXMgdGhhdCBpcyB0ZXN0ZWQgaW4gdGhlIGhlYWRlci4KCjIwMTAtMDEtMjMgMjA6MjcgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2VkIHRoZSBjb20yc2VjIGRpcmVjdGl2ZXMgdG8gZmFpbCBpZiB0aGVyZQogICBhcmUgdG9vIGZldyBhcmd1bWVudHMuIEFkZGl0aW9uYWxseSBjaGFuZ2VkIHRoZSBzdG9yYWdlIHN0cnVjdHVyZQogICB0byBub3QgYWxsb2NhdGUgbW9yZSBzcGFjZSB0aGFuIG5lY2Vzc2FyeS4KCjIwMTAtMDEtMjMgMjA6MjIgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNzBjb20yc2VjLCB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBuZXcgdGVzdHMgY2hlY2tpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIHRoZSBjb20yc2VjKiBkaXJlY3RpdmVzCgoyMDEwLTAxLTIzIDE5OjE3ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgwMjU6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvLgoKMjAxMC0wMS0yMyAxNzo1MSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBDSEFOR0VTOiBidWlsZGluZzogT1MgaGVhZGVyIGRldGVjdGlvbiBjaGVjayBpcyBub3cgcnVuIGJlZm9yZQogICBJUHY2IHN0YWNrIGRldGVjdGlvbi4KICAgQ0hBTkdFUzogU29sYXJpczogc29ja2FkZHJfaW42LnNpbjZfYWRkciBjb25maWd1cmUgdGVzdCBkb2VzIG5vdwogICB3b3JrLgoKMjAxMC0wMS0yMyAxNzo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIEZpeGVkIGEgU29sYXJpcy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wMS0yMyAxNzowMCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oOgoKICAgTWluR1c6IGFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciA8c3lzL3RpbWViLmg+IGFuZCBhbHNvIGZvciBzdHJ1Y3QKICAgdGltZXpvbmUuCgoyMDEwLTAxLTIzIDE2OjMyICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBNaW5HVzogbWFkZSBzdXJlIHRoYXQgdGhlIElQdjYtcmVsYXRlZCBkYXRhdHlwZXMgYXJlIGF2YWlsYWJsZQogICBiZWZvcmUgYmVpbmcgdXNlZC4KCjIwMTAtMDEtMjMgMTY6MzAgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCAjdW5kZWYgSEFWRV9XSU5ET1dTX0guCgoyMDEwLTAxLTIzIDE2OjI4ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBNaW5HVzogbWFkZSBnZXR0aW1lb2ZkYXkoKSBkZWNsYXJhdGlvbiBhdmFpbGFibGUgZm9yIHRoZQogICBjb21waWxlci4KCjIwMTAtMDEtMjMgMTY6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBhIG1pc3NpbmcKICAgcHJvdG90eXBlIGZvciBpc2RpZ2l0KCkuCgoyMDEwLTAxLTIzIDE2OjI0ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgTWluR1c6IGlwaGxwYXBpLmggY29uZmlndXJlIHRlc3QgZG9lcyBub3cgd29yay4KCjIwMTAtMDEtMjMgMTU6MTAgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlczoKCiAgIFJlbmFtZWQgdGhlIFdpbnNvY2syIElQdjYgc3RhY2sgZnJvbSAnbWluZ3cnIGludG8gJ3dpbnNvY2syJy4KCjIwMTAtMDEtMjMgMTU6MDcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAKICAgICAgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEltcHJvdmVkIHBvcnRhYmlsaXR5IGJldHdlZW4gdGhlIHN1cHBvcnRlZCBXaW4zMiBjb21waWxhdGlvbgogICBlbnZpcm9ubWVudHMgYXMgZm9sbG93czoKICAgLSBNYWRlIHN1cmUgdGhhdCB0aGUgPHdpbnNvY2syLmg+IGFuZCA8d3MydGNwaXAuaD4gaGVhZGVyIGZpbGVzCiAgIGFyZSBvbmx5IGluY2x1ZGVkIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGNvbmZpZ3VyZSBjaGVjayBmb3IgPGlwaGxwYXBpLmg+LgogICAtIFJlcGxhY2VkIHNldmVyYWwgV0lOMzIgLyBjeWd3aW4gdGVzdHMgYnkgYSBIQVZFX0lQSExQQVBJX0gKICAgdGVzdC4KICAgLSBEb2N1bWVudGVkIHRoYXQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaXMgb25seSB1c2VkCiAgIGZvciB0aGUgTVNWQyBidWlsZC4KCjIwMTAtMDEtMjIgMTY6NDYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTEwOiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbwogICA2LgoKMjAxMC0wMS0yMiAxNjo0MSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL01nbXRBcGktd2luRXh0RExMLmg6CgogICBGb2xsb3cgdXAgZm9yIHIxODAxNjogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIyIDE0OjEzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgRm9sbG93LXVwIGZvciByMTgwMTY6IG1hZGUgTWluR1cgbGliaXBobHBhcGkgY2hlY2sgbW9yZSByb2J1c3QuCgoyMDEwLTAxLTIyIDEzOjMyICBidmFzc2NoZQoKICAgKiAgUkVBRE1FLndpbjMyLCBhY2xvY2FsLm00LCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsICAgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgICAKICAgICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9zcWwuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgICAKICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYywgICAKICAgICAgc25tcGxpYi93aW5waXBlLmMsIHdpbjMyL1NubXAtd2luRXh0RExMLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IE1pbkdXOiB3aW5FeHRETEwgY29tcGlsZXMgbm93IHVuZGVyIE1pbkdXLgogICBDSEFOR0VTOiBNaW5HVzogYnVpbGRpbmcgTmV0LVNOTVAgd29ya3MgYWdhaW4uCiAgIAogICBEZXRhaWxlZCBvdmVydmlldzoKICAgKiBDaGFuZ2VzIGluIHRoZSBjb25maWd1cmUgc2NyaXB0OgoKICAgLSBzb2NrZXQoKSBsaWJyYXJ5IGNoZWNrIHBhc3NlcyBhZ2FpbiBvbiBNaW5HVy4KICAgLSBBZGRlZCBsaWJyYXJ5IGNoZWNrcyBmb3IgbGlid3MyXzMyLCBsaWJyZWdleCBhbmQgbGlic25tcGFwaS4KICAgLSBBZGRlZCBjaGVjayBmb3IgdGhlIHdpbnNvY2syLmggYW5kIHdzMnRjcGlwLmggaGVhZGVyIGZpbGVzLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgY2hvd24oKSBhbmQgbG9jYWx0aW1lX3IoKSBmdW5jdGlvbnMuCiAgIC0gc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQgY2hlY2sgZG9lcyBub3cgd29yayBvbiBNaW5HVy4KICAgLSBBZGRlZCBJUHY2IHN0YWNrIHR5cGUgY2FsbGVkICJtaW5ndyIuCiAgICogU291cmNlIGNvZGUgY2hhbmdlczoKCiAgIC0gSW5jbHVkZSA8d2luc29jazIuaD4gZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4gaW5zdGVhZCBvZgogICA8d2luc29jay5oPgogICB1bmRlciBNaW5HVyBzdWNoIHRoYXQgSVB2NiBzdXBwb3J0IGlzIGF2YWlsYWJsZS4KICAgLSBNb3ZlZCAjaW5jbHVkZSA8d2luc29jay5oPiBmcm9tIC5jIGZpbGVzIHRvIDxuZXQtc25tcC90eXBlcy5oPi4KICAgLSBBZGRlZCBhIGNvcHkgb2YgdGhlIE1pbkdXIGhlYWRlciBmaWxlIDxzbm1wLmg+ICh3aGljaCBpcyBub3QKICAgY29weXJpZ2h0ZWQpCiAgIGFzIHdpbjMyL1NubXAtd2luRXh0RExMLmguCiAgIC0gYWdlbnQ6IG9ubHkgY2FsbCBjaG93bigpIHdoZW4gYXZhaWxhYmxlIChIQVZFX0NIT1dOKS4KICAgKiBEb2N1bWVudGF0aW9uIGNoYW5nZXM6IHVwZGF0ZWQgUkVBRE1FLndpbjMyLgoKCjIwMTAtMDEtMjIgMDg6MzQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCBjYXN0IGZyb20gY2hhciogdG8gY2hhcioKCjIwMTAtMDEtMjIgMDA6MzkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBDb3B5cmlnaHQgZmlsZSB1cGRhdGUgZm9yIFNQQVJUQSwgSW5jLgoKMjAxMC0wMS0yMiAwMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBhZGQgcHJvcGVyIHByZWZpeGVzIGluIFRTTSBmb3IgU1NILCBEVExTLCBldGMsIGJhc2VkIG9uIHRoZQogICBkb21haW4KCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhZGRlZCA1LjUgYnJhbmNoCgoyMDEwLTAxLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG1pbm9yIGVjaG8gb3V0cHV0IGNoYW5nZQoKMjAxMC0wMS0yMSAyMDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG1vdmUgY29tbWVudCBuZXh0IHRvIGNvZGUgaXQgaXMgdGFsa2luZyBhYm91dDsgTm8gY29kZSBjaGFuZ2UKCjIwMTAtMDEtMjEgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjkyNjM3NDogZnJvbSBFZCBTd2llcms6IGZpeGVkIHJlYWRpbmcgb2YKICAgaXBBZGRyZXNzVGFibGUgZnJvbSAvcHJvYy9uZXQvaWZfaW5ldDYgb24gTGludXgKICAgCiAgIFRoZSBrZXJuZWwgbWlnaHQgcHJvdmlkZSBsb25nZXIgZmllbGRzLCBlc3BlY2lhbGx5IG9uIDY0LWJpdAogICBzeXN0ZW1zLgoKMjAxMC0wMS0yMCAxMjo0MiAgYnZhc3NjaGUKCiAgICogUE9SVElORywgbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEZpeGVkIHR5cG86IHJlcGxhY2VkICduZWNpc3NhcnknIGJ5ICduZWNlc3NhcnknLgoKMjAxMC0wMS0yMCAwODo1MyAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIEZpeCBtaW5vciB0eXBvIGluIG1hbiBwYWdlLCBpdCdzIHNubXBuZXRzdGF0IC1DcCwgbm90IC1DUC4KCjIwMTAtMDEtMTQgMTI6MzQgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBmaXhlZCBtZW1vcnkgbGVhayBpbiBSTU9OLU1JQiBhbmQgRVRIRVJMSUtFLU1JQiB3aGVuCiAgIHRoZXJlIGFyZSBtdWx0aXBsZSBhbGlhc2VzIG9mIGFuIG5ldHdvcmsgaW50ZXJmYWNlCiAgIFJhdGlvbmFsZTogdGhlIGFsaWFzZWQgaW50ZXJmYWNlcyBoYXZlIHRoZSBzYW1lIGlmSW5kZXggLT4KICAgQ09OVEFJTkVSX0lOU0VSVCBmYWlscywgYnV0IHRoZSByZWplY3RlZCBlbnRyeSB3YXMgbm90IGZyZWVkLgoKMjAxMC0wMS0xMyAxMToyMSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggbWVtb3J5IGxlYWsgaW4gaXBBZGRyZXNzUHJlZml4VGFibGUKICAgLSBuZXRfc25tcF9zZWFyY2hfdXBkYXRlX3ByZWZpeF9pbmZvIHJldHVybnMgZGlmZmVyZW50IGNvZGUsIHdoZW4KICAgdGhlIGVudHJ5IHdhcyBub3QgaW5zZXJ0ZWQgdG8gbGlzdCBhbmQgY2FuIGJlIGZyZWVkLgoKMjAxMC0wMS0xMiAwMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHJ1biBycG0gY29uZmlndXJlIGNoZWNrcyBmb3IgaHJfc3dpbnN0IHJld3JpdGUKICAgKHJwbQogICB2ZXJzaW9uIG9ubHkpCgoyMDEwLTAxLTExIDIzOjU4ICB0YW5kZXJzCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBhZGQgUEVSTExET1BUU19GT1JfQVBQUyB0byBhZ2VudHh0cmFwIGxpbmsgbGluZSAoZml4ZXMKICAgImxpYnBlcmwuc28gbm90CiAgIGZvdW5kIiBlcnJvcnMpCgoyMDEwLTAxLTExIDAwOjExICB0YW5kZXJzCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTRhZ2VudHhhZ2VudHh0cmFwOgoKICAgZ2V0IHJpZCBvZiB1c2luZyBkZXByZWNhdGVkIHN5bnRheCBmb3IgdHJhcC9pbmZvcm0gc2lua3MKCjIwMTAtMDEtMDggMDg6NDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBvYnNvbGV0ZWQgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHLgogICBGcm9tIG5vdyBvbiB1c2luZyBTSUdBTFJNIHRvIHRyaWdnZXIgTmV0LVNOTVAgYWxhcm0gaGFuZGxlcnMgaXMKICAgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KICAgCiAgIE1vdGl2YXRpb246IGFzIGtub3duIGxpYm5ldHNubXAgc3VwcG9ydHMgdGltZS1iYXNlZCBhbGFybXMgdmlhCiAgIHRoZSBmdW5jdGlvbnMKICAgc25tcF9hbGFybV9yZWdpc3RlcigpLCBydW5fYWxhcm1zKCkgYW5kIG90aGVyIGZ1bmN0aW9ucy4gVHdvCiAgIGRpZmZlcmVudCB3YXlzIHRvCiAgIHRyaWdnZXIgdGhlIGZ1bmN0aW9uIHJ1bl9hbGFybXMoKSBhcmUgc3VwcG9ydGVkIGluc2lkZQogICBsaWJuZXRzbm1wOgogICAxLiBCeSBtYWtpbmcgc3VyZSB0aGF0IHRoZSB0aW1lb3V0IGFyZ3VtZW50IG9mIHNlbGVjdCgpIGlzIHNtYWxsCiAgIGVub3VnaCBzdWNoCiAgIHRoYXQgc2VsZWN0KCkgcmV0dXJucyBiZWZvcmUgdGhlIG5leHQgYWxhcm0gbXVzdCBiZSBoYW5kbGVkICh3aGVuCiAgIHRoZQogICB2YXJpYWJsZSBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaXMgc2V0IHRvIG9uZSwgd2hpY2gKICAgaXMgdGhlCiAgIGRlZmF1bHQpLgogICAyLiBCeSBtYWtpbmcgc3VyZSB0aGF0IHRoZSBrZXJuZWwgZmlyZXMgU0lHQUxSTSBhdCB0aGUgdGltZSB3aGVuCiAgIHJ1bl9hbGFybXMoKQogICBzaG91bGQgYmUgY2FsbGVkICh3aGVuIHRoZSB2YXJpYWJsZQogICBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaXMgc2V0CiAgIHRvIHplcm8sIHdoaWNoIGhhcyB0byBiZSBjb25maWd1cmVkIGV4cGxpY2l0bHkpLgogICAKICAgVGhlIGZvbGxvd2luZyBpc3N1ZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vjb25kIGFwcHJvYWNoOgogICAxLiBBbGFybSBmdW5jdGlvbnMgYXJlIHVzZWQgaW5zaWRlIE5ldC1TTk1QIHRvIGUuZy4gcmVmcmVzaAogICBjYWNoZWQgdGFibGUKICAgY29udGVudHMuIEFzIGZhciBhcyBJIGNhbiBzZWUgdGhlcmUgaXMgbm90aGluZyBpbiB0aGUgTmV0LVNOTVAKICAgc291cmNlIGNvZGUKICAgdGhhdCBwcmV2ZW50cyB0aGUgZm9sbG93aW5nIGZyb20gaGFwcGVuaW5nOiBhIHRhYmxlIHJlZnJlc2gKICAgdHJpZ2dlcmVkIHZpYQogICBTSUdBTFJNIHdoaWxlIGEgcm93IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSBhIGNhY2hlZCB0YWJsZS4gVGhpcwogICBjYW4gcmVzdWx0CiAgIGluIGRhbmdsaW5nIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBldmVuIGEgY3Jhc2guCiAgIDIuIFBPU0lYIHJlc3RyaWN0cyBzaWduYWwgaGFuZGxlcnMgdG8gY2FsbGluZyBmdW5jdGlvbnMgdGhhdCBhcmUKICAgZWl0aGVyIHJlZW50cmFudAogICBvciBub24taW50ZXJydXB0aWJsZQogICAoaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy94c2hfY2hhcDAyXzA0Lmh0bWwjdGFnXzAyXzA0KS4KICAgU3RhbmRhcmQgSS9PIGZ1bmN0aW9ucyBsaWtlIHByaW50ZigpIGFuZCBmcHJpbnRmKCkgYXJlIG5laXRoZXIKICAgcmVlbnRyYW50IG5vcgogICBub24taW50ZXJydXB0aWJsZS4gcnVuX2FsYXJtcygpIGlzIGNhbGxlZCBmcm9tIGluc2lkZSBhIHNpZ25hbAogICBoYW5kbGVyLCB3aGljaAogICBtZWFucyB0aGF0IHRoaXMgcmVzdHJpY3Rpb24gYXBwbGllcyB0byB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpCiAgIGl0c2VsZiBhbmQKICAgYWxsIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQgKHdoaWNoIGluY2x1ZGVzIHRoZSBhbGFybSBjYWxsYmFjawogICBmdW5jdGlvbnMpLgogICBPcjogZS5nLiBzbm1wX2xvZygpIGFuZCBpdHMgY2FsbGVycyBtdXN0IG5vdCBiZSBjYWxsZWQgZnJvbQogICBpbnNpZGUgcnVuX2FsYXJtcygpCiAgIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIGZyb20gaW5zaWRlIGEgc2lnbmFsIGhhbmRsZXIuIFRoaXMKICAgaXMgYSBzZXZlcmUKICAgcmVzdHJpY3Rpb24sIGFuZCBvbmUgdGhhdCBpcyBoYXJkIHRvIHdvcmsgd2l0aC4KICAgMy4gTm90IGFsbCBzb2Z0d2FyZSBkZXZlbG9wZXJzIGtub3cgaG93IHRvIG1ha2Ugc3VyZSB0aGF0IHNpZ25hbAogICBkZWxpdmVyeSB3b3JrcwogICBjb3JyZWN0bHkgaW4gYSBtdWx0aXRocmVhZGVkIGNvbnRleHQuIFBPU0lYIGRvZXMgbm90IGd1YXJhbnRlZSB0bwogICB3aGljaCB0aHJlYWQKICAgYSBzaWduYWwgbGlrZSBTSUdBTFJNIHdpbGwgYmUgZGVsaXZlcmVkLCB1bmxlc3MgdGhhdCBzaWduYWwgaGFzCiAgIGJlZW4gYmxvY2tlZAogICBiZWZvcmUgdGhyZWFkIGNyZWF0aW9uIGFuZCBpcyB1bmJsb2NrZWQgYWZ0ZXIgdGhyZWFkIGNyZWF0aW9uCiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3B0aHJlYWRfc2lnbWFzay5odG1sKS4KICAgVGhpcyBpcyByZWxldmFudCBmb3IgdGhlIE5ldC1TTk1QIHByb2plY3Qgbm90IG9ubHkgYmVjYXVzZSBhCiAgIHdvcmtlciB0aHJlYWQgaXMKICAgY3JlYXRlZCBpbnNpZGUKICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jIGJ1dCBhbHNvCiAgIGJlY2F1c2UgbGlibmV0c25tcCBpcyBvZnRlbiB1c2VkIGluc2lkZSBtdWx0aXRocmVhZGVkIHNvZnR3YXJlLgogICBDdXJyZW50bHkgbm8KICAgYXR0ZW1wdCBpcyBtYWRlIHRvIG1ha2Ugc3VyZSB0aGF0IFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IHRoZQogICBOZXQtU05NUCBldmVudAogICBwcm9jZXNzaW5nIGxvb3AgdGhyZWFkLiBJZiBTSUdBTFJNIGlzIHByb2Nlc3NlZCBieSBhbm90aGVyCiAgIHRocmVhZCwgdGhpcyB3aWxsCiAgIHJlc3VsdCBpbiBvbmUgb3IgbW9yZSBkYXRhIHJhY2VzLgogICAKICAgQmVjYXVzZSBhbGwgdGhlIGRpZmZpY3VsdGllcyBhc3NvY2lhdGVkIHdpdGggcHJvY2Vzc2luZyBhbGFybXMKICAgZnJvbSBpbnNpZGUgYQogICBzaWduYWwgaGFuZGxlciBmdW5jdGlvbiwgYW5kIGJlY2F1c2UgZml4aW5nIHRoZXNlIHdvdWxkIHJlcXVpcmUKICAgbW9yZSBlZmZvcnQgdGhhbgogICBpdCBpcyB3b3J0aCwgTkVUU05NUF9EU19MSUJfQUxBUk1fRE9OVF9VU0VfU0lHIGhhcyBiZWVuCiAgIGRlcHJlY2F0ZWQgYW5kIGZyb20gbm93CiAgIG9uIGFwcHJvYWNoICgxKSBpcyB0aGUgb25seSBzdXBwb3J0ZWQgYXBwcm9hY2ggdG8gdHJpZ2dlciBhbGFybQogICBoYW5kbGVycy4KCjIwMTAtMDEtMDcgMTk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBQYXRjaCBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIHRvIGZpeCBhIG1pbm9yIG1lbWxlYWsgaW4gY3B1CiAgIHN5c2N0cmwgZmV0Y2hpbmcKCjIwMTAtMDEtMDcgMTY6MjEgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi92YWNtLmM6CgogICBSZW1vdmVkIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCksIGFuZCBtYWRlIHN1cmUgdGhhdAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpICdcMCctdGVybWluYXRlcyB0aGUgb3V0cHV0IGJ1ZmZlcgogICBpbiBhbGwgY2FzZXMuCiAgIFVwZGF0ZWQgZG9jdW1lbnRhdGlvbiBhbmQgdW5pdCB0ZXN0cy4KCjIwMTAtMDEtMDcgMTQ6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUmVtb3ZlZCB0aHJlZSBzdXBlcmZsdW91cyBjYXN0cyBiZWNhdXNlIHRoZXNlIHRyaWdnZXJlZCBhCiAgIGNvbXBpbGVyIHdhcm5pbmcKICAgd2hlbiBjb21waWxlZCB3aXRoIE1TVkMuCgoyMDEwLTAxLTA3IDEzOjI4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXZlcnRlZCB0aGUgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBjaGFuZ2VzIGZyb20gcjE3OTkyCiAgIGJlY2F1c2UgdGhlc2UKICAgY2F1c2VkIHRoZSBmb2xsb3dpbmcgVmFsZ3JpbmQgY29tcGxhaW50IGR1cmluZyBzbm1wZCBzdGFydHVwOgogICAKICAgPT0yNTIwMT09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQKICAgdmFsdWUocykKICAgPT0yNTIwMT09IGF0IDB4NDA0N0IxNDogbmV0c25tcF9zZW5kX3RyYXBzIChhZ2VudF90cmFwLmM6Nzk4KQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MTI4OiBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzCiAgIChhZ2VudF90cmFwLmM6ODUzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MTlEOiBzZW5kX3RyYXBfdmFycyAoYWdlbnRfdHJhcC5jOjk2MykKICAgPT0yNTIwMT09IGJ5IDB4NDA0ODI1Qjogc2VuZF9lYXN5X3RyYXAgKGFnZW50X3RyYXAuYzoxMDExKQogICA9PTI1MjAxPT0gYnkgMHg4MDRCNUQyOiBtYWluIChzbm1wZC5jOjM5NCkKCjIwMTAtMDEtMDcgMTI6MzAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDcgMTI6MTkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oOgoKICAgRGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhc3NpZ25pbmcgYSBjaGFyICogcG9pbnRlciB0bwogICBzeXNPUlRhYmxlOjpPUl9kZXNjciBkb2VzIG9yIGRvZXMgbm90IHRyYW5zZmVyCiAgIG93bmVyc2hpcC4gU28gd2hldGhlciBPUl9kZXNjciBpcyBkZWNsYXJlZCBhcyBjaGFyICogb3IgYXMgY29uc3QKICAgY2hhciAqLCB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhdAogICBsZWFzdCBvbmUgc3RhdGVtZW50IG9uIHdoaWNoIHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBjaGFyCiAgICogIC8gY29uc3QgY2hhciAqIG1pc21hdGNoLiBUaGUgb25seSAgICBzb2x1dGlvbiBpcyB0byBjYXN0IGF3YXkKICAgICAgY29uc3Qgd2hlcmUgYXBwcm9wcmlhdGUgdG8gbWFrZSBzdXJlICAgIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90CiAgICAgIGNvbXBsYWluLCAgICBhcyBpbXBsZW1lbnRlZCBpbiB0aGlzIHBhdGNoLiAgMjAxMC0wMS0wNyAxMTo0NiAKICAgICAgYnZhc3NjaGUKCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgdXNtX3NhdmVfdXNlcigpOiB3aGVuIHdyaXRpbmcgdXNlci0+bmFtZSBhbmQgdXNlci0+c2VjTmFtZSwgb25seQogICB3cml0ZSB0aGUgQVNDSUkgZGF0YSBhbmQgbm90IHRoZQogICB0ZXJtaW5hdGluZyAnXDAnLiBTaW5jZSBib3RoIGl0ZW1zIGFyZSByZWFkIGJ5IGNhbGxpbmcKICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgd3JpdGluZwogICB0aGUgdGVybWluYXRpbmcgJ1wwJyBpcyBub3QgbmVjZXNzYXJ5IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBkYXRhCiAgIHJlYWQgYmFjayBpcyB0ZXJtaW5hdGVkIHByb3Blcmx5LgoKMjAxMC0wMS0wNyAwOToxMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ2hhbmdlZCB0aGUgYmVoYXZpb3Igb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKTogdW50aWwKICAgbm93IHRoaXMKICAgZnVuY3Rpb24gdGVybWluYXRlZCB0aGUgb3V0cHV0IGJ1ZmZlciBpbiBzb21lIGNhc2VzIHdpdGggJ1wwJwogICAod2hlbiB0aGUKICAgaW5wdXQgd2FzIGluIHRoZSBmb3JtYXQgMHguLi4gYW5kIGEgYnVmZmVyIG92ZXJmbG93IG9jY3VycmVkIGFuZAogICBhbHNvCiAgIHdoZW4gdGhlIGlucHV0IHdhcyBpbiBBU0NJSSBmb3JtYXQsIGJ1dCBub3Qgd2hlbiB0aGUgaW5wdXQgd2FzIGluCiAgIGZvcm1hdAogICAweC4uLiBhbmQgbm8gYnVmZmVyIG92ZXJmbG93IG9jY3VycmVkKS4gQ2hhbmdlZCB0aGlzIHN1Y2ggdGhhdAogICB0aGlzCiAgIGZ1bmN0aW9uIGRvZXMgbm8gbG9uZ2VyIHRlcm1pbmF0ZSB0aGUgaW5wdXQgYnVmZmVyIHdpdGggJ1wwJy4KICAgVGhpcwogICBjaGFuZ2Ugd2FzIHBvc3NpYmxlIGJlY2F1c2UgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGFsbAogICBjYWxsZXJzIHRoYXQKICAgbmVlZGVkIGEgJ1wwJyB0ZXJtaW5hdGVkIHN0cmluZyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHVzZQogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGluc3RlYWQuCgoyMDEwLTAxLTA2IDE3OjUyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBSZXZlcnRlZCByMTc5NjggYW5kIHIxNzk3Mi4KCjIwMTAtMDEtMDYgMTU6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeGVkIG1vcmUgY29tcGlsZXIgd2FybmluZ3MgcmVsYXRlZCB0byB0aGUgdXNlIG9mIHRoZSBjb25zdAogICBrZXl3b3JkLgoKMjAxMC0wMS0wNiAxNTozOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeGVkIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2guCgoyMDEwLTAxLTA2IDE1OjM2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oOgoKICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIGludG8gY29uc3QgY2hhciAqLiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkIGluIHIxNzk3NS4KCjIwMTAtMDEtMDYgMTU6MzMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNTozMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHRoZSBmdW5jdGlvbnMgcmVnaXN0ZXJfY29uc3RfY29uZmlnX2hhbmRsZXIoKSBhbmQKICAgc25tcGRfcmVnaXN0ZXJfY29uc3RfY29uZmlnX2hhbmRsZXIoKSwgd2hpY2gKICAgYWNjZXB0IGEgcGFyc2VyIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgbW9kaWZ5IHRoZSBzdHJpbmcgdGhhdCBpdAogICBwYXJzZXMuIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyByZXN1bHRzCiAgIGluIGVhc2llciB0byByZWFkIGNvZGUgdGhhbiB1c2luZyB0aGUgbm9uLWNvbnN0IGhhbmRsZXIKICAgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBhbmQgY2FzdGluZyB0aGUgcGFyc2VyCiAgIGZ1bmN0aW9uIGV4cGxpY2l0bHkgZnJvbSAodm9pZCgqKShjb25zdCBjaGFyKiwgY29uc3QgY2hhciopKSB0bwogICAodm9pZCgqKShjb25zdCBjaGFyKiwgY2hhciopKS4KCjIwMTAtMDEtMDYgMTU6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCByZWFkX2NvbmZpZ19yZWFkX29iamlkX2NvbnN0KCkuCgoyMDEwLTAxLTA2IDE0OjQyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjM0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZvciB0aG9zZSBWQUNNIGZ1bmN0aW9ucyB0aGF0IGRvIG5vdCBtb2RpZnkgdGhlIHN0cmluZ3MgcGFzc2VkIGFzCiAgIGFyZ3VtZW50cywKICAgY2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZSBmcm9tIGNoYXIgKiB0byBjb25zdCBjaGFyICouCgoyMDEwLTAxLTA2IDE0OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMTQ6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jOgoKICAgUmVtb3ZlZCBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDEwLTAxLTA2IDE0OjE0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jOgoKICAgRHVwbGljYXRlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFKCkgLwogICBSRUdJU1RFUl9TWVNPUl9FTlRSWSgpCiAgIHNpbmNlIHRoYXQgYXJndW1lbnQgaXMgZnJlZWQgd2hpbGUgdW5yZWdpc3RlcmluZyBzdWNoIGFuIGVudHJ5LgogICBOb3Qgc3VyZSB3aGV0aGVyCiAgIHRoaXMgY291bGQgYWN0dWFsbHkgdHJpZ2dlciBhIGNhbGwgb2YgZnJlZSgpIHdpdGggYSBjb25zdGFudAogICBzdHJpbmcgYXMgYXJndW1lbnQKICAgYW5kIEknbSBuZWl0aGVyIHN1cmUgYWJvdXQgd2hldGhlciBvciBub3QgdGhpcyBjb3VsZCBoYXZlCiAgIHRyaWdnZXJlZCBhIGNyYXNoLgoKMjAxMC0wMS0wNiAxNDowOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QKICAgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICoKICAgbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMTQ6MDQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VzOgogICAtIEFkZGVkIG5ldyBmdW5jdGlvbnMgc2tpcF93aGl0ZV9jb25zdCgpLCBza2lwX25vdF93aGl0ZV9jb25zdCgpLAogICBza2lwX3Rva2VuX2NvbnN0KCksIGNvcHlfbndvcmRfY29uc3QoKSBhbmQKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmdfY29uc3QoKS4KICAgLSBDaGFuZ2VkIHJldHVybiB0eXBlIG9mIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgZnJvbQogICBjaGFyICogdG8KICAgY29uc3QgY2hhciAqLiBOb3RlOiB0aGlzIGRvZXMgbm90IGFmZmVjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQogICBzaW5jZSB0aGlzCiAgIGZ1bmN0aW9uIGhhcyBub3QgeWV0IGJlZW4gaW5jbHVkZWQgaW4gYW55IHJlbGVhc2UuCiAgIC0gRml4ZWQgZG9jdW1lbnRhdGlvbiBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLgogICAtIFJlZHVjZWQgbnVtYmVyIG9mIGNhc3QtYXdheS1jb25zdCBjb25zdHJ1Y3RzIGluIHJlYWRfY29uZmlnLmMuCgoyMDEwLTAxLTA2IDEzOjM1ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIFJlZmluZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpOgogICB3aGVuIHVzaW5nCiAgIHRoZSBnY2MgY29tcGlsZXIsIGl0IGlzIG5vdyB2ZXJpZmllZCB3aGV0aGVyIHRoZSB0eXBlcyAoY29uc3QgdCkKICAgYW5kIHR5cGVvZihlKQogICBhcmUgY29tcGF0aWJsZSwgd2hlcmUgdCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIGUgdGhlIHNlY29uZAogICBhcmd1bWVudCBvZgogICB0aGlzIG1hY3JvLgoKMjAxMC0wMS0wNiAxMzozMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0Lmg6CgogICBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzIGJpZ2dlciB0aGFuIDYKICAgYnl0ZXMgdG8gYXRUYWJsZS4gU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcwogICB3aXRoIDkgYW5kIG1vcmUgYnl0ZXMuCgoyMDEwLTAxLTA2IDEyOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMjkyNDE0MDogRml4IHRlcm1pbmF0aW9uIG9mIENQVS9GUFUgdHlwZXMKCjIwMTAtMDEtMDYgMTI6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MjIzOTA6IEZpeCB0ZXN0IGZvciBtaXNzaW5nIGNvbnRleHROYW1lCiAgIHBhcmFtZXRlcgoKMjAxMC0wMS0wNiAxMTo1NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L3NubXBfcGVybC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBDaGFuZ2VzOgogICAtIEludHJvZHVjZWQgYSBuZXcgbWFjcm8gTkVUU05NUF9SRU1PVkVfQ09OU1QoKSB0aGF0IGFsbG93cyB0bwogICBjYXN0CiAgIGF3YXkgY29uc3RuZXNzIHdpdGhvdXQgdGhhdCBnY2MgLVdjYXN0LXF1YWwgcmVwb3J0cyBhIHdhcm5pbmcuCiAgIC0gTWFkZSBjYXN0aW5nIGF3YXkgY29uc3RuZXNzIGV4cGxpY2l0IGJ5IGludHJvZHVjaW5nIHRoZQogICBORVRTTk1QX1JFTU9WRV9DT05TVCgpIG1hY3JvLiBUaGlzIHN1cHByZXNzZXMgdGhlIHdhcm5pbmcKICAgZ2NjIC1XY2FzdC1xdWFsIHByaW50ZWQgZm9yIHRoZXNlIHN0YXRlbWVudHMuCgoyMDEwLTAxLTA2IDExOjQ2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KCjIwMTAtMDEtMDYgMDk6MTQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9hZ2VudHh0cmFwLmMsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERvIG5vdCB1c2UgMCB3aGVuIHJlZmVycmluZyB0byBOVUxMLgoKMjAxMC0wMS0wNiAwODoyNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlcyBvZiBjYWxjdWxhdGVfdGltZV9kaWZmKCkgYW5kCiAgIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKQogICBmcm9tIHN0cnVjdCB0aW1ldmFsICogdG8gY29uc3Qgc3RydWN0IHRpbWV2YWwgKi4gTm90ZTogdGhpcyBkb2VzCiAgIG5vdCBhZmZlY3QKICAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCgoyMDEwLTAxLTA2IDA4OjIzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENoYW5nZXMgKG5vIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gbW9kaWZpZWQpOgogICAtIFJlbW92ZWQgZGlza2lvX3BhcnNlX2NvbmZpZygpIGRlY2xhcmF0aW9uIGJlY2F1c2UgdGhhdCBmdW5jdGlvbgogICBpcyBuZWl0aGVyIGNhbGxlZCBub3IgZGVmaW5lZCBpbiB0aGUgc291cmNlIGZpbGUgZGlza2lvLmMuCiAgIC0gQWRkZWQgZGVjbGFyYXRpb24gZm9yIGdldHN0YXRzKCkgc3VjaCB0aGF0IGdjYyBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBhIG1pc3NpbmcgZGVjbGFyYXRpb24uCiAgIC0gTGludXg6IGNoYW5nZWQgdmlzaWJpbGl0eSBvZiBnZXRzdGF0cygpIGZyb20gZ2xvYmFsIHRvIHN0YXRpYwogICBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgQlNEIGFuZCBEYXJ3aW4gaW1wbGVtZW50YXRpb25zIG9mCiAgIGdldHN0YXRzKCkuCgoyMDEwLTAxLTA2IDA4OjAwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2hhciAqIC8gdV9jaGFyICogbWlzbWF0Y2hlcy4KCjIwMTAtMDEtMDYgMDI6MTggIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBtYW4vTWFrZWZpbGUuaW4sIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBhcHBzOiBPbmx5IGJ1aWxkIGFnZW50eHRyYXAgaWYgdGhlIGFnZW50eCBsaWJyYXJpZXMgYXJlCiAgIGJ1aWx0LiBBZGQgYSB0ZXN0IGNhc2UgZm9yIGFnZW50eHRyYXAuCiAgIAogICBUaGUgZW5hYmxlbWVudC9kaXNhYmxlbWVudCBpcyBpbnNwaWVyZWQgYnkgYXV0b21ha2UgY29uZGl0aW9uYWxzCgoyMDEwLTAxLTA2IDAxOjU5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0YXJ0dGltZS4KCjIwMTAtMDEtMDUgMjI6NTQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oOgoKICAgQ0hBTkdFUzogSGlkZSBtb3N0IGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGluIHRoZSBsb2dtYXRjaAogICBtb2R1bGUuIENsZWFuZWQgdXAgdGhlIGhlYWRlciBhY2NvcmRpbmdseS4gUmVtb3ZlIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucyBieSByZW9yZGVyaW5nIHRoZSBmdW5jdGlvbnMuCgoyMDEwLTAxLTA1IDIyOjMzICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBCVUdTOiAyOTE5Mzc5OiBJbml0aWFsaXNlIFNOTVAgc2Vzc2lvbnMgcHJvcGVybHkKICAgUHJvdmlkZWQgYnkgRGllZ28gQmlsbGkKCjIwMTAtMDEtMDUgMjI6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAyOTE5MzIwOiBBdm9pZCBhY2Nlc3NpbmcgZnJlZWQgbWVtb3J5CiAgIFJlcG9ydGVkIGJ5IFRvbWFzeiBMaXMKCjIwMTAtMDEtMDUgMTg6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTE0NDEwOiBGaXggY3Jhc2ggb24gZW1wdHkgY29tbWFuZCBsaW5lcwoKMjAxMC0wMS0wNSAxNTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTI1ODQ6IEZpeCBudWxsIE9JRCBoYW5kbGluZyBpbiBBZ2VudHgKICAgb24gNjRiaXQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgTHV0eiBKYWVuaWNrZQoKMjAxMC0wMS0wNSAxMDoxMSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4Lmg6CgogICBDSEFOR0VTOiBocHV4OiBmaXggYnVpbGQgZXJyb3Igb24gSFAtVVggMTAuMjAKCjIwMTAtMDEtMDUgMDg6NDIgIGpzYWZyYW5lawoKICAgKiBtYW4sIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFJlbW92ZSBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20gcmVwb3NpdG9yeS4KCjIwMTAtMDEtMDQgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeGVkIGEgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWQgdGhhdCBvY2N1cnJlZCB3aGVuIGFuIEFTQ0lJCiAgIHN0cmluZyB3YXMKICAgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIC8KICAgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBhbmQgdGhlIHRoaXJkIGFyZ3VtZW50ICgqbGVuKQogICBlcXVhbHMgMC4KCjIwMTAtMDEtMDQgMTY6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNhc3RpbmcgYXdheSAnY29uc3QnLgoKMjAxMC0wMS0wNCAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdW5pdCB0ZXN0IGZvciByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLgoKMjAxMC0wMS0wNCAxMDo0NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgY29ycmVjdCBvaWQgbGVuZ3RoIGluIHRhYmxlIGluZGV4ZXMuCgoyMDEwLTAxLTA0IDA4OjEwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIE1hZGUgc3VyZSB0aGF0IHNubXBfYWxhcm0uYyBjYW4gYmUgY29tcGlsZWQgYWdhaW4gd2l0aCBDODkKICAgY29tcGlsZXJzOiBmb3IgQzg5CiAgIGl0IGlzIHJlcXVpcmVkIHRoYXQgaW5pdGlhbGl6ZXJzIGFyZSBjb25zdGFudCBleHByZXNzaW9ucy4KCjIwMTAtMDEtMDMgMTY6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYzoKCiAgIFJlbmFtZSBuZXRzbm1wX2FyY2hfdGNwY29ubl9kZWxldGUgdG8KICAgbmV0c25tcF9hcmNoX3RjcGNvbm5fZW50cnlfZGVsZXRlIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aAogICB0aGUgaGVhZGVyIGZpbGUgYW5kIGFsbCB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBtb2R1bGUuCgoyMDEwLTAxLTAzIDE2OjI2ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQWRkIG1pc3NpbmcgZGVjbGFyYXRpb25zLgoKMjAwOS0xMi0zMCAxMjo0OSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTMzOiBmaXhlZCB0aGUgaXNzdWUgdGhhdCBpbmNsdWRpbmcgdGhlIGhlYWRlcgogICBmaWxlCiAgIDxuZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg+IGZyb20gPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4KICAgdHJpZ2dlcnMKICAgY29tcGlsZXIgZXJyb3JzIGR1cmluZyB0aGUgY29uZmlndXJlIHByb2Nlc3MgKGNvbXBsYWludHMgYWJvdXQKICAgPG5ldHNubXAvbmV0LXNubXAtY29uZmlnLmg+IG5vdCBiZWluZyBpbmNsdWRlZCBiZWZvcmUKICAgPG5ldC1zbm1wL3R5cGVzLmg+KS4KICAgTm90ZTogdGhpcyBkb2VzIG5vdCBzb2x2ZSB0aGUgdW5kZXJseWluZyBwcm9ibGVtIHRoYXQgTUlCIGNvZGUKICAgbXVzdCBub3QKICAgaW5jbHVkZSB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL3R5cGVzLmg+IGJlY2F1c2UgZG9pbmcgc28gd291bGQKICAgdHJpZ2dlciBhCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgZHVyaW5nIHRoZSBjb25maWd1cmUgc3RlcCAoTUlCIGNvZGUgaXMKICAgY29tcGlsZWQgZHVyaW5nCiAgIHRoZSBjb25maWd1cmUgc3RlcCwgd2hpbGUgdGhlIGNvbmZpZ3VyZSBzdGVwIGdlbmVyYXRlcwogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gYW5kIDxuZXQtc25tcC90eXBlcy5oPiBuZWVkcwogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4pLgoKMjAwOS0xMi0zMCAxMTo0OCAgYnZhc3NjaGUKCiAgICogYXBwcywgbWFuOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTk6IHVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdHMuCgoyMDA5LTEyLTI4IDE4OjAzICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZC4gRm91bmQgdGhpcyBieSBhbmFseXppbmcgY29tcGlsZXIKICAgd2FybmluZ3MuCiAgIE5vdGU6IHRoZSBhZmZlY3RlZCBmdW5jdGlvbiwgcmVnaXN0ZXJfc3RyaW5nX2luZGV4KCksIGlzbid0CiAgIGNhbGxlZCBmcm9tCiAgIGFueXdoZXJlIGluc2lkZSB0aGUgTmV0LVNOTVAgcHJvamVjdCBpdHNlbGYuCgoyMDA5LTEyLTIzIDA5OjQ5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBGaXggaW52YWxpZCByZWFkIHJlcG9ydGVkIGJ5IHZhbGdyaW5kOgogICBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSAxCiAgIG1lbWNweSAobWNfcmVwbGFjZV9zdHJtZW0uYzo0MDIpCiAgIF9uZXRzbm1wX2lvY3RsX2lwYWRkcmVzc19jb250YWluZXJfbG9hZF92NAogICAoaXBhZGRyZXNzX2lvY3RsLmM6MjQwKQogICBuZXRzbm1wX2FyY2hfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfbGludXguYzoxNTgpCiAgIG5ldHNubXBfYWNjZXNzX2lwYWRkcmVzc19jb250YWluZXJfbG9hZCAoaXBhZGRyZXNzX2NvbW1vbi5jOjExMikKICAgCiAgIFJldHVybmluZyBzdHJ1Y3R1cmUgd2l0aCBwb2ludGVycyBpbnNpZGUgaXMgbm90IHRoZSBiZXN0IHRoaW5nIHRvCiAgIGRvLgoKMjAwOS0xMi0yMiAxNjowNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEZpeGVkIHNldmVyYWwgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgoKMjAwOS0xMi0yMiAxMjowMiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgCiAgICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBSZXZlcnRlZCB0aGUgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2VzIG9mIHIxNzkxMzoKICAgLSBSZXN0b3JlZCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgRElGRlRJTUVWQUwoKSBtYWNyby4KICAgLSBSZXN0b3JlZCB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGZ1bmN0aW9ucwogICBjYWxjdWxhdGVfdGltZV9kaWZmKCksCiAgIHVhdGltZV9yZWFkeSgpLCBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCiAgIC0gc3RhcnR0aW1lIGlzIGFnYWluIGEgZ2xvYmFsIHZhcmlhYmxlIGluc3RlYWQgb2YgYSBzdGF0aWMgb25lLgogICBBbHNvIGltcGxlbWVudGVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBNb3ZlZCB0aGUgbWFya2VyX3QgdHlwZWRlZiBmcm9tIG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCB0bwogICBuZXQtc25tcC9saWJyYXJ5L3R5cGVzLmguCiAgIC0gQWRkZWQgYSBuZXcgdHlwZWRlZiwgY29uc3RfbWFya2VyX3QuCiAgIC0gRm9yIHRob3NlIGF0aW1lXyooKSAvIHVhdGltZV8qKCkgLyAqX3R0aWNrcygpIGZ1bmN0aW9ucyB0aGF0IGRvCiAgIG5vdCBjaGFuZ2UKICAgdGhlaXIgYXJndW1lbnRzLCBkZWNsYXJlZCB0aGVzZSBhcmd1bWVudHMgY29uc3RfbWFya2VyX3QgaW5zdGVhZAogICBvZiBtYXJrZXJfdC4KICAgLSBSZW5hbWVkIG5ldHNubXBfZ2V0X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9zdGFydHRpbWUoKSB0bwogICBuZXRzbm1wX2dldF9hZ2VudF9zdGFydHRpbWUoKSBhbmQgbmV0c25tcF9zZXRfYWdlbnRfc3RhcnR0aW1lKCkKICAgcmVzcGVjdGl2ZWx5LiBNb3ZlZCB0aGVzZSBmdW5jdGlvbnMgZnJvbSB0b29scy5jIHRvIHN5c3RlbS5jLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9uIGF0aW1lX2hzdWJ0cmFjdCgpICh3YXMgaW50cm9kdWNlZCBpbgogICByMTc5MTMpIGFuZAogICBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uLCBuZXRzbm1wX3NldF9hZ2VudF91cHRpbWUoKS4KCjIwMDktMTItMjIgMDc6NTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHIxNzkyNiwgd2hpY2ggbWFkZSB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgemVyby10ZXJtaW5hdGVkLiBBIG5ldyBwYXRjaCB3aWxsCiAgIGZvbGxvdwogICB0aGF0IGZpeGVzIHRoZSBjYWxsZXJzIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgdGhhdAogICB3ZXJlCiAgIGFzc3VtaW5nIHRoYXQgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZXMgdGhlCiAgIHN0cmluZwogICByZWFkIGJ5IHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTIxIDE0OjI5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBjcmFzaCBpbiBJRi1NSUIgYW5kIElQLU1JQiB3aGVuIHRoZXJlIGFyZQogICBzb21lIGludGVyZmFjZXMgd2l0aCBicm9hZGNhc3QgSVAgYWRkcmVzcyBhbmQgc29tZSB3aXRob3V0LgogICAKICAgUmVzZXQgdGhlIGJjYXN0ZW50cnkgaW4gdGhlIGxvb3AsIHNvIGl0IGNhbm5vdCBiZSBpbnNlcnRlZCB0byB0aGUKICAgY29udGFpbmVyCiAgIHR3aWNlLgogICAKICAgV2l0aG91dCB0aGlzIHBhdGNoLCB3aGVuIGFuIGludGVyZmFjZSB3aXRob3V0IGJyb2FkY2FzdCBhZGRyZXNzCiAgIGlzIHByb2Nlc3NlZCwKICAgdGhlIGJjYXN0YWRkcmVzcyBmcm9tIHByZXZpb3VzIGxvb3AgaXMgaW5zZXJ0ZWQgaW50byB0aGUKICAgY29udGFpbmVyLiBUaGlzCiAgIG9idmlvdXNseSBmYWlscyBhbmQgdGhlIGJjYXN0ZW50cnkgaXMgZnJlZWQsIGJ1dCB0aGUgY29udGFpbmVyCiAgIHN0aWxsIGNvbnRhaW5zCiAgIHJlZmVyZW5jZSB0byBpdCAtPiBTSUdTRUdWLgoKMjAwOS0xMi0yMSAxMzo1MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5Mjg6IHdoaWxlIHIxNzkyOCBmaXhlZCBhIGRhbmdsaW5nIHBvaW50ZXIKICAgZGVyZWZlcmVuY2UKICAgZGV0ZWN0ZWQgYnkgcnVubmluZyB0aGUgTmV0LVNOTVAgc29mdHdhcmUgb24gV2luZG93cywgdGhhdCBwYXRjaAogICBpbnRyb2R1Y2VkCiAgIGEgZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZSBhYm91dCB3aGljaCBvbmx5IFZhbGdyaW5kIG9uIExpbnV4CiAgIGNvbXBsYWluZWQuCiAgIFRoaXMgZm9sbG93LXVwIHBhdGNoIGZpeGVzIGJvdGggZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMKICAgdHJpZ2dlcmVkIGJ5CiAgIHBhcnNpbmcgdGhlIHBlcnNpc3RlbnREaXIga2V5d29yZC4KCjIwMDktMTItMjEgMTM6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MDExMjIuIENoYW5nZXM6CiAgIC0gTmV3IGZlYXR1cmU6IHNwZWNpZnlpbmcgQVNOIHR5cGUgU05NUF9OT1NVQ0hJTlNUQU5DRSBhcyB0aGUKICAgdGhpcmQgYXJndW1lbnQKICAgb2YgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIHdpbGwgY2F1c2UgYW4gU05NUCBHZXRSZXF1ZXN0IC8KICAgR2V0TmV4dFJlcXVlc3QgdG8KICAgcmV0dXJuIHRoZSBlcnJvciBjb2RlIG5vU3VjaEluc3RhbmNlIChTTk1QdjIpIG9yIG5vU3VjaE5hbWUKICAgKFNOTVB2MSkuIFRoaXMKICAgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBhIGNhY2hlZCB0YWJsZSB3aXRoIG9uZSBvciBtb3JlCiAgICJob2xlcyIuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBkbyBub3QgZnJlZSgpIC8gbWFsbG9jKCkgdGhlIG1lbW9yeQogICBmb3Igc3RvcmluZwogICB0aGUgY2FjaGVkIHZhbHVlIGlmIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4gbW9kaWZpZWQuCiAgIC0gUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uOiBkbyBub3QgZnJlZSgpIC8gbWFsbG9jKCkgdGhlIG1lbW9yeQogICBmb3Igc3RvcmluZwogICB0aGUgY2FjaGVkIHZhbHVlIGlmIHRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGhhcyBub3QgYmVlbgogICBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGlmIHRoZSBzaXplIG9mIHRoZSBjYWNoZWQgdmFsdWUKICAgc2hydW5rLCB1c2UKICAgcmVhbGxvYygpIGluc3RlYWQgb2YgZnJlZSgpIGFuZCBtYWxsb2MoKS4KCjIwMDktMTItMjEgMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgYSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICMyOTEyMDU1OiBtYWtlIHN1cmUKICAgdGhhdAogICBwYXJzaW5nIHRoZSAicGVyc2lzdGVudERpciIga2V5d29yZCBpbiBzbm1wLmNvbmYgZG9lcyBub3QgdHJpZ2dlcgogICBhCiAgIGRhbmdsaW5nIHBvaW50ZXIuIFRvIG15IHN1cnByaXNlIEJvdW5kc0NoZWNrZXIgY29tcGxhaW5lZCBhYm91dAogICB0aGlzCiAgIChvbiBXaW5kb3dzKSwgYnV0IFZhbGdyaW5kIGRpZCBub3QgcmVwb3J0IHRoaXMgaXNzdWUgKG9uIExpbnV4KS4KCjIwMDktMTItMjEgMTI6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTI1IChmaXggbWVtb3J5IGxlYWsgZHVyaW5nIHN0YXJ0dXApOiB3aGlsZQogICByMTc5MjUgZml4ZWQKICAgb25seSB0aGUgbGVhayB0cmlnZ2VyZWQgZnJvbSBpbnNpZGUgdGhlIGZvci1sb29wLCB0aGlzIHBhdGNoIGRvZXMKICAgbm93IGFsc28KICAgZml4IHRoZSBsZWFrIHRyaWdnZXJlZCBieSB0aGUgbmV0c25tcF90YWJsZV9kYXRhc2V0X2FkZF9yb3coKQogICBjYWxsIG5lYXIKICAgdGhlIGVuZCBvZiBsb2dfbm90aWZpY2F0aW9uKCkuCgoyMDA5LTEyLTIxIDEyOjAxICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDYyOiBtYWtlIHN1cmUgdGhhdCB0aGUgc3RyaW5nIHJldHVybmVkIGJ5CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgaXMgcHJvcGVybHkgdGVybWluYXRlZCwgc3VjaCB0aGF0CiAgIHRoZQogICBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gZG8gbm90IHRyaWdnZXIgcGFzdC1lbmQtb2YtYnVmZmVyIHJlYWRzLgogICBGb3VuZAogICB0aGlzIGlzc3VlIHZpYSBCb3VuZHNDaGVja2VyLgoKMjAwOS0xMi0yMSAxMTowNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMjkxMjA2OCwgd2hpY2ggZml4ZXMgYSBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cC4KICAgVGhlCiAgIGZ1bmN0aW9uIGxvZ19ub3RpZmljYXRpb24oKSBhZGRzIGEgcm93IHRvIHRoZSB0YWJsZQogICBubG1Mb2dWYXJUYWJsZSwgYnV0CiAgIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhhdCB0YWJsZSBoYXMgYmVlbgogICBpbml0aWFsaXplZC4gSWYKICAgdGhhdCBoYXBwZW5zLCBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciBhIHJvdyBidXQgdGhhdCBtZW1vcnkgaXMKICAgbmV2ZXIKICAgYWRkZWQgdG8gdGhlIGNhY2hlZCB0YWJsZSBkYXRhLiBUaGUgQm91bmRzQ2hlY2tlciB0b29sIHJlcG9ydGVkCiAgIHRoaXMgYXMKICAgYSAibWVtb3J5IGxlYWsgbGVhdmluZyBzY29wZSIuCgoyMDA5LTEyLTIxIDEwOjU0ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCB0aGUgZm9sbG93aW5nIHRleHQgdG8gdGhlICJMaW1pdGF0aW9ucyIgc2VjdGlvbiBvZgogICBSRUFETUUud2luMzI6CiAgICJXaGVuIHVzaW5nIHdpbkV4dERMTCwgdGhlcmUgaXMgYW4gb2Zmc2V0IG9mIHVwIHRvIG9uZSBzZWNvbmQKICAgYmV0d2VlbiB0aGUKICAgdmFsdWUgb2YgdGhlIHN5c1VwVGltZSB2YXJiaW5kIGluY2x1ZGVkIGluIHRoZSB0cmFwcyBnZW5lcmF0ZWQgYnkKICAgU05NUAogICBleHRlbnNpb24gRExMcyAoZS5nLiBsaW5rVXAgYW5kIGxpbmtEb3duKSBhbmQgdGhlIHZhbHVlIG9mIHRoZQogICBzeXNVcFRpbWUKICAgdmFyYmluZCBpbmNsdWRlZCBpbiB0cmFwcyBnZW5lcmF0ZWQgYnkgTmV0LVNOTVAgaXRzZWxmIChlLmcuCiAgIGNvbGRTdGFydCkuIgoKMjAwOS0xMi0yMSAxMDowOSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCAgIAogICAgICBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFNwZWxsaW5nIGZpeDogcmVwbGFjZWQgYWxsIG9jY3VycmVuY2VzIG9mICdzcGVjaWZjJyBieQogICAnc3BlY2lmaWMnLgoKMjAwOS0xMi0yMSAxMDowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBSZWZhY3RvcmluZzogZWxpbWluYXRlZCBkdXBsaWNhdGVkIGNvZGUgYnkgcmVpbXBsZW1lbnRpbmcKICAgc25tcF9hbGFybV9yZWdpc3RlcigpIHVzaW5nIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIoKS4gTmVpdGhlciB0aGUKICAgTmV0LVNOTVAgQVBJIG5vciB0aGUgYmVoYXZpb3Igb2Ygc25tcF9hbGFybV9yZWdpc3RlcigpIGhhcyBiZWVuCiAgIGNoYW5nZWQuCgoyMDA5LTEyLTIwIDExOjEwICBtYWdmcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9hZ2VudHh0cmFwLmMsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL2FnZW50eHRyYXAuMS5kZWY6CgogICBORVdTOiBhcHBzOiBBZGQgY29tbWFuZCB0byBzZW5kIEFnZW50WCBub3RpZnkgcmVxdWVzdHMgdG8gYQogICBtYXN0ZXIgYWdlbnQuCgoyMDA5LTEyLTE3IDE2OjQ0ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxNyAtLSBidWlsZHMgYWdhaW4gb24gV2luZG93cyBzeXN0ZW1zLgoKMjAwOS0xMi0xNyAxNjowMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTAzIC8gcGF0Y2ggMjkxMTMyMyAiRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcKICAgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbiIgKHN1Ym1pdHRlZCBieSBteXNlbGYpLiBUaGF0IHBhdGNoCiAgIGRpZCBub3Qgb25seQogICBmaXggdGhlIGxvY2t1cCBidXQgYWxzbyBtYWRlIHNubXBkIHByaW50IGEgd2FybmluZyBkdXJpbmcgc3RhcnR1cAogICB3aGVuCiAgIGlxdWVyeVNlY05hbWUgd2FzIG5vdCBjb25maWd1cmVkLiBUaGlzIHdhcm5pbmcgd2FzIHByaW50ZWQgZXZlbgogICB3aGVuIG5vCiAgIGludGVybmFsIHF1ZXJpZXMgd2VyZSBwZXJmb3JtZWQuIFRoaXMgd2FybmluZyBpcyBub3cgb25seSBwcmludGVkCiAgIGp1c3QgYmVmb3JlCiAgIHRoZSBmaXJzdCBpbnRlcm5hbCBxdWVyeSBpcyBtYWRlIChkdXJpbmcgdGhlIGZpcnN0IGNhbGwgb2YKICAgbmV0c25tcF9xdWVyeV9nZXRfZGVmYXVsdF9zZXNzaW9uKCkgaW5zdGVhZCBvZiBkdXJpbmcgY3JlYXRpb24gb2YKICAgdGhlIGludGVybmFsCiAgIHNlc3Npb24pLgoKMjAwOS0xMi0xNyAxMzo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYzoKCiAgIFJNT04gTUlCIHNvdXJjZSBjb2RlIGNvbXBpbGVzIGFnYWluIC0tIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzoxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE1vZGlmaWVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkgYW5kCiAgIEFHVVRJTF9zeXNfdXBfdGltZSgpIHN1Y2ggdGhhdCB0aGVzZSBmdW5jdGlvbnMgbm9ybWFsaXplIHRoZQogICB0dl91c2VjIGZpZWxkIG9mCiAgIHN0cnVjdCB0aW1ldmFsIHByb3Blcmx5LiBOb3RlOiB0aGlzIHNvdXJjZSBjb2RlIG1vZGlmaWNhdGlvbiBkb2VzCiAgIG5vdCBhZmZlY3QKICAgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYWZvcmVtZW50aW9uZWQgdHdvIGZ1bmN0aW9ucy4KCjIwMDktMTItMTcgMTM6MTEgIGJ2YXNzY2hlCgogICAqIG1hbi9uZXRzbm1wX3V0aWwuMzoKCiAgIFJlbW92ZWQgZG9jdW1lbnRhdGlvbiBvZiB0aGUgRElGRlRJTUVWQUwoKSBtYWNybyAtLSBzaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzkxMy4KCjIwMDktMTItMTcgMTM6MDUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDb252ZXJ0ZWQgc3RhcnR0aW1lIGZyb20gYSBnbG9iYWwgdmFyaWFibGUgaW50byBhIHN0YXRpYyB2YXJpYWJsZQogICBhbmQgYXBwbGllZCB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAgIC0gQWRkZWQgdHdvIG5ldyBtYWNyb3M6IE5FVFNOTVBfVElNRVJBREQoKSBhbmQKICAgTkVUU05NUF9USU1FUlNVQigpLgogICAtIEFkZGVkIHRocmVlIG5ldyBmdW5jdGlvbnM6IG5ldHNubXBfZ2V0X3N0YXJ0dGltZSgpLAogICBuZXRzbm1wX3NldF9zdGFydHRpbWUoKSBhbmQgYXRpbWVfaHN1YnRyYWN0KCkuCiAgIC0gUmVwbGFjZWQgZ2V0dGltZW9mZGF5KCkgKyBjYWxjdWxhdGVfdGltZV9kaWZmKCkgY2FsbHMgYnkgYSBjYWxsCiAgIHRvIG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpLgogICAtIFJlbW92ZWQgdGhlIG1hY3JvIERJRkZUSU1FVkFMKCkgYmVjYXVzZSBpdCB3YXMgbm90IHVzZWQgaW5zaWRlCiAgIHRoZSBOZXQtU05NUCBwcm9qZWN0IGFuZCBiZWNhdXNlIGl0IGNvbnRhaW5lZCBhIGJ1Zy4KICAgLSBSZW1vdmVkIHRoZSBmdW5jdGlvbnMgY2FsY3VsYXRlX3RpbWVfZGlmZigpLCB1YXRpbWVfcmVhZHkoKSwKICAgbWFya2VyX3R0aWNrcygpIGFuZCB0aW1ldmFsX3R0aWNrcygpLgoKMjAwOS0xMi0xNyAxMjo0NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQnVnIGZpeDogYWNjb3JkaW5nIHRvIFJGQyAyNTcxIHRoZSB1bml0IG9mIHNubXBFbmdpbmVUaW1lIGlzIG9uZQogICBzZWNvbmQsCiAgIG5vdCBvbmUgaHVuZHJlZHRoIG9mIGEgc2Vjb25kLgoKMjAwOS0xMi0xNyAxMDowMyAgZHRzMTIKCiAgICogbWFuL3NubXB0ZXN0LjEuZGVmOgoKICAgRml4IHR5cG8uCgoyMDA5LTEyLTE2IDEyOjMwICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi90b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzLW9ubHkgYnVnIGZpeGVzOgogICAtIEZpeGVkIHRoZSBzdHJhbmdlIGJ1aWxkIGVycm9ycyB0aGF0IG9jY3VycmVkIHdoZW4gY29tcGlsaW5nCiAgIGxpYm5ldHNubXAgYXMgYSBETEwgYW5kIHdoZW4gZWl0aGVyIDxzdGRsaWIuaD4gb3IgPHN0cmluZy5oPiB3YXMKICAgaW5jbHVkZWQgYWZ0ZXIgPG5ldC1zbm1wLWNvbmZpZy5oPiBpbnN0ZWFkIG9mIGJlZm9yZS4KICAgLSBGb3IgZGVidWcgYnVpbGRzIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8sIGZpeGVkIHRoZQogICBtaXNtYXRjaGVzIGJldHdlZW4gdGhlIF9tYWxsb2NfZGJnKCkgY2FsbCBpbnZva2VkIGJ5IHN0cmR1cCgpIGFuZAogICBmcmVlKCktaW5nIHN0cmR1cCgpLWVkIG1lbW9yeSBieSBpbmNsdWRpbmcgdGhlIDxjcnRkYmcuaD4gaGVhZGVyCiAgIGluIHRvb2xzLmMgYW5kIGJ5IGRlZmluaW5nIHRoZSBwcmVwcm9jZXNzb3Igc3ltYm9sCiAgIF9DUlREQkdfTUFQX0FMTE9DLiBEZXRlY3RlZCB2aWEgdGhlIG1lbW9yeSBjaGVja2VyIGluY2x1ZGVkIGluCiAgIEludGVsIFBhcmFsbGVsIFN0dWRpby4KCjIwMDktMTItMTQgMTc6MjMgIHRhbmRlcnMKCiAgICogIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIHN5bmMgZGVmaW5pdGlvbiBvZiBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgaW4gUGVybCB3aXRoIHRoZSBjaGFuZ2VzCiAgIGluCiAgIHIxNzg1NSBhbmQgcjE3OTA4CgoyMDA5LTEyLTE0IDEzOjU1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBGaXggVENQIHRyYW5zcG9ydCBicm9rZW4gYnkgcmV2LiAxNzg1NSAtIGNvcGllcyBvZgogICBuZXRzbm1wX3VkcF9hZGRyX3BhaXIgaW4gc25tcFRDUERvbWFpbi5jIGFuZCBzbm1wVURQRG9tYWluLmMgbXVzdAogICBiZSB0aGUgc2FtZS4KCjIwMDktMTItMTEgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIENIQU5HRVM6IHNubXB1c206IHBhdGNoIGZyb20gTWFydGluIEJqb3JrbHVuZCB0byBhZGQgYSAtQ3cgb3B0aW9uCiAgIHRvIHVzZSBjcmVhdGVBbmRXYWl0IGZvciBhZ2VudHMgdGhhdCBhcmUgc3RyaWN0IGFib3V0IG5vdAogICBhbGxvd2luZyBhIHJvdyB0byBiZSBzZXQgdG8gYWN0aXZlIHVudGlsIHRoZSBhdXRoZW50aWNhdGlvbgogICBwYXNzd29yZCBoYXMgYmVlbiBjaGFuZ2VkOyBwbHVzIHdoaXRlLXNwYWNlIGNsZWFuIHVwLCBtYW51YWwKICAgYWRkaXRpb25zIGFuZCBoZWxwIG91dHB1dCBtb2RpZmljYXRpb25zIGJ5IGhhcmRha2VyCgoyMDA5LTEyLTExIDE0OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgYSBmb3JtYXQgc3BlY2lmaWVyIG1pc21hdGNoLgoKMjAwOS0xMi0xMSAxNDowNiAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIHdpbkV4dERMTCBidWdzIGZpeGVkOgogICAtIHN5c1VwVGltZS4wIGRvZXMgbm93IHJlcG9ydCB0aGUgY29ycmVjdCB2YWx1ZS4KICAgLSBhIGxpbmtVcCBvciBsaW5rRG93biB0cmFwIGlzIG5vdyBzZW50IGFmdGVyIHRoZSBzdGF0dXMgb2YgYQogICBuZXR3b3JrIGludGVyZmFjZQogICBoYXMgY2hhbmdlZC4KICAgLSB0aGUgdmFsdWUgb2YgdGhlIHN5c1VwVGltZS4wIHZhcmJpbmQgaW4gbGlua1VwIGFuZCBsaW5rRG93bgogICB0cmFwcyBpcyBub3cKICAgY29ycmVjdC4KCjIwMDktMTItMTAgMTU6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIRVM6IDI5MTE5NzA6IFByb3Blcmx5IHRlcm1pbmF0ZSBsaW5rZWQgbGlzdAogICBvZiByZWdpc3RyYXRpb25zLgogICBQYXRjaCBwcm92aWRlZCBieSBNaXJrbyBEZWNrZXJ0LgoKMjAwOS0xMi0xMCAxNTo0MyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5MTEzMjM6IEZpeCBhZ2VudCBsb2NrdXAgd2hlbgogICBtb25pdG9yaW5nIEFnZW50WC1kZWxlZ2F0ZWQgaW5mb3JtYXRpb24KCjIwMDktMTItMTAgMTM6NTkgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgTWljcm9zb2Z0J3MgaW1wbGVtZW50YXRpb24gb2YKICAgaHJTeXN0ZW1VcHRpbWUuMC4KICAgLSBGaXhlZCBhIGZldyB0eXBvcy4KCjIwMDktMTItMTAgMTM6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBBZGRlZCBtaXNzaW5nIG5ld2xpbmUgaW4gYSBsb2dnaW5nIHN0YXRlbWVudC4KCjIwMDktMTItMTAgMTI6NTQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgdGhlIGZvbGxvd2luZyB3aW5FeHRETEwgYnVnczoKICAgLSBGaXhlZCBidWcgaW4gdHJhcCBmb3J3YXJkaW5nOiBsaW5rRG93biB0cmFwcyB3ZXJlIHNlbnQgYXMKICAgd2FybVN0YXJ0IHRyYXBzCiAgIGFuZCBsaW5rVXAgdHJhcHMgd2VyZSBzZW50IGFzIGxpbmtEb3duIHRyYXBzLgogICAtIEZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGV4dGVuc2lvbiBETEwgbG9hZGluZy4KICAgLSBBIGRlYnVnIHRyYWNlIHN0YXRlbWVudCBpcyBub3cgaW52b2tlZCB3aGVuZXZlciBhIHNlcmlvdXMgZXJyb3IKICAgaGFzIGJlZW4KICAgZGV0ZWN0ZWQuCgoyMDA5LTEyLTEwIDEyOjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9JRHMgaW4gZGVidWcgbWVzc2FnZXMgZ2VuZXJhdGVkIGJ5IHRoZSB3aW5FeHRETEwgbW9kdWxlIGFyZSBub3cKICAgcHJpbnRlZCBpbgogICBzeW1ib2xpYyBmb3JtIGluc3RlYWQgb2YgbnVtZXJpYyBmb3JtLgoKMjAwOS0xMi0xMCAwODo1NyAgYnZhc3NjaGUKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgUHJvamVjdCBkZXBlbmRlbmNpZXMgc2hvdWxkIG5vdyByZWFsbHkgYmUgY29ycmVjdC4gU2hvdWxkIGhhdmUKICAgYmVlbiBpbmNsdWRlZAogICBpbiByMTc4NzMuCgoyMDA5LTEyLTEwIDA4OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIENoYW5nZXMgKG9ubHkgc291cmNlIGNvZGUgY29tbWVudHMgaGF2ZSBiZWVuIGNoYW5nZWQpOgogICAtIFJlbW92ZWQgYSBub3RlIHRoYXQgY29udHJhZGljdGVkIHRoZSBpbnN0cnVjdGlvbnMgaW4KICAgUkVBRE1FLndpbjMyLgogICAtIFVwZGF0ZWQgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFmdGVyIHRoZSBhZGRpdGlvbiBvZiB0aGUgZmlsZQogICB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oIGluIHIxNzgzMC4KCjIwMDktMTItMTAgMDg6MTcgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgTWFkZSBmaWxlIGhlYWRlciBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggdGhlIGRlc2NyaXB0aW9ucyBpbiB0aGUKICAgcmVzcGVjdGl2ZSBtYW4gcGFnZXMuCgoyMDA5LTEyLTEwIDAzOjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIE1hZGUgc3VyZSB0aGF0IGFnZW50X3N5c09SX2NhbGxiYWNrIHdvbid0IHRyaWdnZXIgYSB3YXJuaW5nIHdoZW4KICAgcmVnaXN0ZXJlZCBhcyBhIGNhbGxiYWNrLiBDaGFuZ2UgYWdlbnR4X3Jlb3Blbl9zeXNPUlRhYmxlIGluCiAgIG9yZGVyIHRvIGF2b2lkIHdhcm5pbmdzIG9mIGNvbnN0IHJlbW92YWwuCgoyMDA5LTEyLTA5IDE1OjA1ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBNb3ZlZCB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJyBpbnNpZGUgdGhlCiAgIGZ1bmN0aW9uCiAgIGxvZ19oYW5kbGVyX3N0ZG91dGVycigpIGJlY2F1c2UgdGhpcyB2YXJpYWJsZSBpcyBvbmx5IHVzZWQgYnkKICAgdGhhdCBmdW5jdGlvbi4KICAgLSBEb2N1bWVudGVkIHRoZSBwdXJwb3NlIG9mIHRoZSB2YXJpYWJsZSAnbmV3bGluZScuCiAgIC0gQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgdGhlIGNhbGwgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgZG9lcwogICBub3QgdHJpZ2dlciBhbgogICBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgKHN0clstMV0pIHdoZW4gYW4gZW1wdHkgc3RyaW5nIGlzIHBhc3NlZCB0bwogICB0aGlzIGZ1bmN0aW9uLgoKMjAwOS0xMi0wOSAxNDozNyAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQWRkIHN1cHBvcnQgb2YgbmV0d29yayBpbnRlcmZhY2VzIHdpdGggSFcgYWRkcmVzcwogICBiaWdnZXIgdGhhbiA2IGJ5dGVzIHRvIGlwTmV0VG9NZWRpYVRhYmxlIGFuZAogICBpcE5ldFRvUGh5c2ljYWxUYWJsZS4KICAgU29tZSBIVywgbGlrZSBJbmZpbmlCYW5kLCB1c2VzIEhXIGFkZHJlc3NlcyB3aXRoIDkgYW5kIG1vcmUKICAgYnl0ZXMuIFNubXBkIG9uIExpbnV4IHdhcyBub3QgYWJsZSB0byBwYXJzZSAvcHJvYy9uZXQvYXJwIHRoZW4KICAgYW5kIHByb2R1Y2VkIHVnbHkgJ2lvY3RsIDM1MTIzIHJldHVybmVkIC0xJyB0byBsb2cuCgoyMDA5LTEyLTA5IDEyOjI3ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGRlZCBtaXNzaW5nIC1MbyBpbiBhIGNvbW1hbmQgbGluZSBleGFtcGxlLgoKMjAwOS0xMi0wOSAxMjoxNiAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgQWRkZWQgc25tcGFwaS5saWIgdG8gdGhlIGxpbmtlciBpbnB1dCBsaXN0IG9mIHNubXBkLmV4ZS4KICAgQXBwYXJlbnRseSBWaXN1YWwKICAgU3R1ZGlvIDIwMDUgYW5kIDIwMDggbmVlZCB0aGlzIGxpYnJhcnkgaW4gdGhlIGxpbmtlciBpbnB1dCBsaXN0CiAgIHdoZW4gbGlua2luZwogICB0aGUgZXhlLCB3aGlsZSBmb3IgVmlzdWFsIFN0dWRpbyA2IGl0IGlzIHN1ZmZpY2llbnQgd2hlbiB0aGlzCiAgIGxpYnJhcnkgaXMKICAgcHJlc2VudCBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2YgbmV0c25tcG1pYnMubGliLgoKMjAwOS0xMi0wOSAwODo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBSRUFETUUud2luMzI6IGJlY2F1c2Ugb2YgcjE3ODg0IGFuZCByMTc4NzMsIHRoZSBidWlsZAogICBwcm9jZXNzIGJlY2FtZSBzaW1wbGVyLgoKMjAwOS0xMi0wOSAwODoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBFeHBvcnQgc3RydG91bGwgLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiByMTc4ODYuCgoyMDA5LTEyLTA5IDA4OjIxICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBSZXZlcnRlZCByMTc3MDAgZm9yIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODYsIG1vZGlmeWluZwogICB0aGUKICAgc3RydG91bGwgbGluZSBpbiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiBpcyBubyBsb25nZXIKICAgbmVjZXNzYXJ5LgoKMjAwOS0xMi0wOSAwODoxMiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW5kb3dzOiBzd2l0Y2hlZCBmcm9tIF9zdHJ0b3VpNjQoKSB0byBzdHJ0b3VsbCgpIGZvciBNaWNyb3NvZnQKICAgVmlzdWFsIFN0dWRpbwogICAyMDAyIGFuZCBsYXRlciBiZWNhdXNlIHRoZSBmb3JtZXIgaXMgbm90IGZ1bGx5IFBPU0lYIGNvbXBsaWFudC4KICAgVGhlIHN0cnRvdWxsKCkKICAgdW5pdCB0ZXN0IHByb2R1Y2VzIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGZvciBfc3RydG91aTY0KCkgd2l0aAogICBNU1ZDIDIwMDg6CiAgIHRlc3QgMTQgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAogICB0ZXN0IDE2IGZhaWxlZCAoaW5wdXQgIjB4Iik6IGV4cGVjdGVkIGVuZCAxLCBnb3QgZW5kIDAKCjIwMDktMTItMDggMjE6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBNYWtlIHN1cmUgdGhhdCBhIG1hc2sgaXMgZ2l2ZW4gdG8gb3BlbgogICB3aGVuIE9fQ1JFQVQgaXMgc3BlY2lmaWVkCgoyMDA5LTEyLTA4IDE2OjIwICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBNYWRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGV4ZSdzIGFuZCBsaWIncyBleHBsaWNpdCBzdWNoIHRoYXQKICAgVmlzdWFsCiAgIFN0dWRpbyBjYW4gZmlndXJlIG91dCB0aGUgcHJvcGVyIGJ1aWxkIG9yZGVyIGluc3RlYWQgb2YgdGhlIHVzZXIKICAgaGF2aW5nCiAgIHRvIGZpZ3VyZSB0aGlzIG91dC4KCjIwMDktMTItMDggMTU6NDcgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBCdWlsZHMgYWdhaW4gb24gVW5peCBzeXN0ZW1zIChmaXhlZCBhIHR5cG8gaW50cm9kdWNlZCBpbiByMTc4ODEpLgoKMjAwOS0xMi0wOCAxNTozNyAgYnZhc3NjaGUKCiAgICogd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgQWRkZWQgbWlzc2luZyAjZGVmaW5lIEhBVkVfV0lOMzJfUExBVEZPUk1fU0RLLiBXaXRob3V0IHRoaXMKICAgZGVmaW5lIHRoZSBNaWNyb3NvZnQKICAgVmlzdWFsIFN0dWRpbyBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBiZW5pZ24gcmVkZWZpbml0aW9uIG9mCiAgIHR5cGUgc29ja2xlbl90LgoKMjAwOS0xMi0wOCAxNToyOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDbGVhbmVkIHVwIHRoZSBjb2RlIGZvciBzZXR0aW5nIGxpbmUgYnVmZmVyaW5nOgogICAtIEluc3RlYWQgb2YgaGF2aW5nIGNhbGxzIHRvIHNldHZidWYoKSBpbiBtdWx0aXBsZSBmaWxlcywgdGhlcmUKICAgaXMgbm93IG9uZSBjYWxsCiAgIHRvIHNldHZidWYoKSBmcm9tIHRoZSBuZXcgZnVuY3Rpb24gbmV0c25tcF9zZXRfZmlsZWxvZy4gVGhlc2UKICAgc291cmNlIGZpbGVzCiAgIGFyZTogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdGFibGUuYwogICBhbmQgYWdlbnRcbWliZ3JvdXBcZGlzbWFuXHRyYWNlcm91dGVcdHJhY2VSb3V0ZUN0bFRhYmxlLmMuCiAgIC0gVXNpbmcgLUxvIC8gLUxlIGRvZXMgbm93IGVuYWJsZSBsaW5lIGJ1ZmZlcmluZyBmb3Igc3Rkb3V0IC8KICAgc3RkZXJyIHJlc3BlY3RpdmVseS4KICAgLSBSZW1vdmVkIGNvZGUgaW4gc25tcGQuYyBhbmQgc25tcHRyYXBkLmMgZm9yIHNldHRpbmcgbGluZQogICBidWZmZXJpbmcgb24gc3Rkb3V0CiAgIHNpbmNlIHNldHRpbmcgbGluZSBidWZmZXJpbmcgb24gc3Rkb3V0IGlzIG5vdyB0cmlnZ2VyZWQgYnkgdGhlCiAgIGNvbW1hbmQtbGluZQogICBvcHRpb24gLUxvLgogICBCdWdzIGZpeGVkOgogICAtIExpbmUgYnVmZmVyaW5nIG1vZGUgaXMgbm93IGFsc28gc2V0IGZvciBzdGRlcnIgd2hlbiB0aGUKICAgY29tbWFuZC1saW5lIG9wdGlvbgogICAtTGUgaGFzIGJlZW4gc3BlY2lmaWVkLgogICAtIExpbmUgYnVmZmVyaW5nIG1vZGUgaXMgbm93IHNldCBjb3JyZWN0bHkgZm9yIHN0ZG91dCBvbiBXaW5kb3dzCiAgIHN5c3RlbXMKICAgKGNvbW1hbmQtbGluZSBvcHRpb24gLUxvKS4KCjIwMDktMTItMDggMTI6MzIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBsb2NhbCB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRlZmluZWQKICAgYnV0CiAgIG5vdCB1c2VkIGJ5IG9ubHkgZW5hYmxpbmcgdGhlIGxvY2FsIHZhcmlhYmxlIGRlZmluaXRpb25zIG9uIHRoZQogICBwbGF0Zm9ybSB0aGF0IHVzZXMgdGhlc2UgdmFyaWFibGVzIChMaW51eCkuCgoyMDA5LTEyLTA4IDEyOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBBZGRlZCAjaW5jbHVkZSAibWliZ3JvdXAvdXRpbF9mdW5jcy5oIi4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nLgoKMjAwOS0xMi0wOCAxMjoyNSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBJbmNsdWRlIHRoZSBnZXRob3N0ZW50KCkgLyBzZXRob3N0ZW50KCkgZGVjbGFyYXRpb25zIGJlZm9yZSB1c2luZwogICB0aGVzZQogICBmdW5jdGlvbnMuIEZpeGVzIGEgY29tcGlsZXIgd2FybmluZyBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTA4IDEyOjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4ZWQgYW4gaW5jb25zaXN0ZW5jeSAod2hpY2ggaXMgYWxsb3dlZCBieSB0aGUgQU5TSSBDIHN0YW5kYXJkKQogICBiZXR3ZWVuCiAgIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCBmdW5jdGlvbiBkZWZpbml0aW9uIG9mCiAgIG5ldHNubXBfYWRkX2dsb2JhbF90cmFwaGFuZGxlciBhbmQKICAgbmV0c25tcF9hZGRfZGVmYXVsdF90cmFwaGFuZGxlciBzdWNoCiAgIHRoYXQgdGhlIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGRvZXMgbm8gbG9uZ2VyIGNvbXBsYWluCiAgIGFib3V0CiAgIHRoaXMuCgoyMDA5LTEyLTA4IDEyOjA4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgY29tcGxhaW4gYWJvdXQgaW1wbGljaXRseSBjYXN0aW5nIGF3YXkgY29uc3RuZXNzLgoKMjAwOS0xMi0wOCAxMjowNyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBPbmx5IGNvbXBpbGUgdGhlIHdpbkV4dERMTCBzb3VyY2UgY29kZSBpZiB0aGUgcHJlcHJvY2Vzc29yIG1hY3JvCiAgIFVTSU5HX1dJTkVYVERMTF9NT0RVTEUgaGFzIGJlZW4gZGVmaW5lZC4KCjIwMDktMTItMDggMTI6MDMgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuCgoyMDA5LTEyLTA4IDEyOjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBNYWRlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGV4ZSdzIGFuZCBsaWIncyBleHBsaWNpdCBzdWNoIHRoYXQKICAgVmlzdWFsCiAgIFN0dWRpbyBjYW4gZmlndXJlIG91dCB0aGUgcHJvcGVyIGJ1aWxkIG9yZGVyIGluc3RlYWQgb2YgdGhlIHVzZXIKICAgaGF2aW5nCiAgIHRvIGZpZ3VyZSBvdXQgdGhlIGJ1aWxkIG9yZGVyLgoKMjAwOS0xMi0wOCAwOTo0NiAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3MgLyBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbzogZGlzYWJsZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmcKICAgYWJvdXQKICAgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoZXMgKDQwMTgpIGJlY2F1c2UgdGhpcyB3YXJuaW5nIGRvZXMgbm90CiAgIHlpZWxkCiAgIGFueSB1c2VmdWwgaW5mb3JtYXRpb24uCgoyMDA5LTEyLTA4IDA5OjE3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3NjM5IChwYXRjaCAyNzgwNDExIC0tIGZpeCBjb21waWxlciB3YXJuaW5ncyk6CiAgIGFwcGxpZWQKICAgdGhpcyBwYXRjaCB0byBuZXQtc25tcC1jb25maWcuaC5pbiB0b28gc3VjaCB0aGF0CiAgIG5ldC1zbm1wLWNvbmZpZy5oIGFuZAogICBuZXQtc25tcC1jb25maWcuaC5pbiBtYXRjaCBhZ2Fpbi4KCjIwMDktMTItMDggMDg6MTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnR4X3N5c09SX2NhbGxiYWNrKCkgZG9lcyBub3QgdHJpZ2dlciBhCiAgIGNvbXBpbGVyCiAgIHdhcm5pbmcgd2hlbiB0aGUgdGhpcmQgYXJndW1lbnQgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24gaGFzIGJlZW4KICAgZGVjbGFyZWQgY29uc3QuCgoyMDA5LTEyLTA4IDA4OjE0ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBDaGFuZ2VkIHRoZSByZXR1cm4gdHlwZSBvZiBzdHJ0b3VsbCgpIGZyb20gJ3Vuc2lnbmVkIGxvbmcgbG9uZycKICAgKHdoaWNoCiAgIGlzIG5vdCB2YWxpZCBDODkpIHRvICd1aW50NjRfdCcgKGRlY2xhcmVkIGluCiAgIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4pLgogICBUaGlzIGNoYW5nZSBtYWtlcyB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgY29tcGlsZSBhZ2FpbiB3aXRoCiAgIE1TVkMgNi4wLgoKMjAwOS0xMi0wNyAxMDo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFR3ZWFrIG1pc3Npbmcgc3ViaWRlbnRpZmllciBwcm9jZXNzaW5nIHRvIGJlIG1vcmUgdHlwZS1hd2FyZS4KICAgKEFuIGlzc3VlIHdpdGggQUlYLCBhdCBsZWFzdCkKCjIwMDktMTItMDYgMTg6MzggIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBNYWtlIHRoZSBsaXN0cyBvZiBjb20yU2VjKkVudHJpZXMgc3RhdGljCgoyMDA5LTEyLTA2IDE4OjM0ICBtYWdmcgoKICAgKiAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTWFrZSB0aGUgaXRlcmF0b3IgdmFyaWFibGUgaW4gbmV0c25tcF8qX2dldFNlY05hbWUgY29uc3QKCjIwMDktMTItMDYgMTg6MjkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBDaGFuZ2UgdGhlIHR5cGVzIG9mIHRoZSByZXR1cm4gdmFsdWVzIG9mCiAgIG5ldHNubXBfKl9nZXRTZWNOYW1lIGZyb20gY2hhciogdG8gY29uc3QgY2hhciogc2luY2UgdGhleSBwb2ludAogICBpbnRvIGludGVybmFsIHN0cnVjdHVyZXMuCgoyMDA5LTEyLTA1IDIwOjE5ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbiBvZiBzdHJ0b3VsbAoKMjAwOS0xMi0wNSAxNzo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNhbGwgbmV0c25tcF9yZWFkX21vZHVsZSBpbnN0ZWFkIG9mIHJlYWRfbW9kdWxlIHRvIG1ha2UgaXQKICAgY29tcGlsZSB3aXRoCiAgIE5FVFNOTVBfQ0xFQU5fTkFNRVNQQUNFCgoyMDA5LTEyLTAyIDE1OjM5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBpbnZhbGlkIGFjY2VzcyB0byBtZW1vcnkgaW4gVENQLU1JQgogICBUaGlzIHBhcnRseSByZXZlcnRzIHBhdGNoIDE3NzE5IC0gdGhlIGVudHJpZXMgKmFyZSogdXNlZCBhZnRlcgogICByYXdfZGF0YSBjb250YWluZXIgaXMgZnJlZWQuIFRoZXNlIGVudHJpZXMgc2hvdWxkIGJlIGZyZWVkIHdoZW4KICAgYXNzb2NpYXRlZCByb3dyZXFfY3R4IGlzIGZyZWVkLgoKMjAwOS0xMi0wMiAwODozMCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgdWRwVGFibGUgaW5kZXhlcyBvbiBiaWctZW5kaWFuIDY0Yml0IExpbnV4LgogICBUaGUgaW5kZXggd2FzIGFsd2F5cyAnMC4wLjAuMCcgaW5zdGVhZCBvZiByZWFsIGxvY2FsIElQIGFkZHJlc3MuCgoyMDA5LTEyLTAxIDEyOjM2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBVcGRhdGUgYSByZWR1bmRhbnQgKGFuZCBwcm9iYWJseSBpbmFjY3VyYXRlKSBjb21tZW50LgoKMjAwOS0xMi0wMSAxMjozMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4MjIzNjA6IEZpeCBtZW1vcnkgbGVhayB3aGVuIGJ1aWxkaW5nCiAgIHRhYmxlIE9JRHMKCjIwMDktMTItMDEgMTI6MDggIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wdGFibGU6IEJVR1M6IDI4Mzc5OTg6IEhhbmRsZSBtaXNzaW5nIGluc3RhbmNlCiAgIHN1YmlkZW50aWZpZXJzIGluIHJlc3VsdHMKCjIwMDktMTItMDEgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUdTOiAyODQxMDA4OiBQcm90ZWN0IGFnYWluc3QgY3Jhc2ggZm9sbG93aW5nCiAgIGZhaWxlZCBBZ2VudFggcmVzcG9uc2UKCjIwMDktMTItMDEgMDc6MzQgIGpzYWZyYW5lawoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeCByZXNwb25kaW5nIHRvIGJyb2FkY2FzdCByZXF1ZXN0cy4KICAgVURQIHJlc3BvbnNlcyBhcmUgc2VudCB3aXRoIHNvdXJjZSBJUCBhZGRyZXNzIHdoaWNoIHdhcwogICBkZXN0aW5hdGlvbiBvZgogICBhcHByb3ByaWF0ZSByZXF1ZXN0cyAoaW1wbGVtZW50ZWQgaW4gU1ZOIHJldi4gMTUyMTUpLiBCdXQgaWYgdGhlCiAgIGRlc3RpbmF0aW9uCiAgIG9mIGEgcmVxdWVzdCBpcyBicm9hZGNhc3QgSVAgYWRkcmVzcywgdGhlIHJlcXVlc3Qgd2FzIHNlbnQgd2l0aAogICB0aGUgYnJvYWRjYXN0CiAgIGFkZHJlc3MgYXMgc291cmNlLiBzZW5kbXNnKCkgb24gTGludXggZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGFuZAogICByZXR1cm5zIGVycm9yCiAgIC0+IHJlc3BvbnNlIGlzIG5vdCBzZW50LiBJbiBvcmRlciB0byBzZW5kIHJlc3BvbnNlcyBmcm9tIHRoZSBzYW1lCiAgIGludGVyZmFjZSwKICAgaW50ZXJmYWNlIGluZGV4IG9mIHRoZSBhcHByb3ByaWF0ZSBpbnRlcmZhY2UgbXVzdCBiZSB1c2VkLgoKMjAwOS0xMi0wMSAwMDoyOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSBjb21waWxlIGFmdGVyIDE3ODUyLgoKMjAwOS0xMi0wMSAwMDoyNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSBjb21waWxlIGFmdGVyIDE3ODQyLgoKMjAwOS0xMS0zMCAxNjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NzM4NTg6IEZpeCBoYW5kbGluZyBvZiBzY2hlZE93bmVyIGluZGV4LgogICBQYXRjaCBwcm92aWRlZCBieSBNYXggU2NodWJlcnQuCgoyMDA5LTExLTMwIDE2OjQ2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHUzogMjg4ODU2OTogRml4IGdlbmVyYXRpb24gb2YgdGFibGUgY29sdW1ucwogICBhcnJheQoKMjAwOS0xMS0zMCAxNjozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4OTQwNTk6IEhhbmRsZSBlcnJvcnMgd2hlbiBjb3VudGluZwogICBpbnRlcmZhY2VzCgoyMDA5LTExLTMwIDE2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDI4OTcwMDA6IFN1cHByZXNzIDMyLWJpdCBjb3VudGVyIHRydW5jYXRpb24KICAgd2FybmluZ3MuCgoyMDA5LTExLTMwIDE1OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI5MDMwOTI6IEZpeCBicm9rZW4gaGFuZGxpbmcgb2YgYnJvYWRjYXN0CiAgIGVudHJpZXMuCgoyMDA5LTExLTMwIDE1OjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMTAyOTogRml4IGNvbXBpbGVyIHdhcm5pbmcgb24KICAgQ2xvc2VIYW5kbGUoKQogICBFbmRpYW4gcHJvYmxlbXMgYWxyZWFkeSBhZGRyZXNzZWQgYnkgcGF0Y2ggIzI4MzU1NzYKCjIwMDktMTEtMzAgMTU6MTMgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjg5MDkzMTogQmV0dGVyIGhhbmRsaW5nIG9mIENvdW50ZXI2NAogICB2YWx1ZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBSb21hbm92LgoKMjAwOS0xMS0zMCAxNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODc4MTY6IFByb3RlY3QgYWdhaW5zdCBkaXZpc2lvbi1ieS16ZXJvCiAgIGNyYXNoCgoyMDA5LTExLTMwIDE1OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMyMjA6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyB3aGVuCiAgIGlmWFRhYmxlIGlzIG5vdCBpbmNsdWRlZC4KCjIwMDktMTEtMzAgMTQ6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0g6IDI4ODMxNTU6IEZpeCBtZW1vcnkgbGVhayBpbiBwcm94eQogICBoYW5kbGluZy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgR293dGhhbSBUaG9tbWFuZHJhLgoKMjAwOS0xMS0zMCAxNDozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzA5MjogU3VwcG9ydCBtb25pdG9yaW5nIHByb2Nlc3NlcyB0aGF0CiAgIHNob3VsZCBub3QgYmUgcnVubmluZy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgQ2hyaXN0aWFuIChjZzc1KS4KICAgCiAgIFFuOiBTaG91bGQgdGhpcyBmdW5jdGlvbmFsaXR5IGJlIGJhY2stcG9ydGVkIHRvIGVhcmxpZXIgbGluZXM/CgoyMDA5LTExLTMwIDE0OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg3NzUxODogRml4IGhhbmRsaW5nIG9mIHNjb3BlZCBBZ2VudFgKICAgdmFyaWFibGVzCgoyMDA5LTExLTMwIDE0OjAxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjgzNTU3NjogRml4IGVuZGlhbm5lc3MgaXNzdWVzIGluCiAgIHBhc3MvcGFzc19wZXJzaXN0CgoyMDA5LTExLTI3IDA4OjU0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYzoKCiAgIFJlbW92ZSBleGVjdXRhYmxlIGF0dHJpYnV0ZSBmcm9tIHNvdXJjZSBmaWxlcy4KCjIwMDktMTEtMjUgMjA6MzUgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSBhbGwgdGhlIG9pZHMgYW5kIG9pZCBsZW5ndGhzIGluIGFnZW50X3RyYXAuYwogICBjb25zdCBhbmQgdXNlIHRoZW0gZnJvbSBldmVyeXdoZXJlLgoKMjAwOS0xMS0yNSAyMDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEluc3RhbGwgbGlicmFyeS9vaWQuaC4gVGhhbmtzIHRvICJUb21hc3ogTGlzIgogICB3aG8gc3BvdHRlZCB0aGUgYnVnLgoKMjAwOS0xMS0yNSAwOTo0NyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgQ29tbWVudC1vbmx5IGNoYW5nZTogY2hhbmdlZCB0aGUgbmFtZSBpbiB0aGUgZmlsZSBoZWFkZXIgZnJvbQogICB0ZXN0aGFuZGxlci5oCiAgIHRvIGluc3RhbmNlLmggc3VjaCB0aGF0IGl0IG5vdyBtYXRjaGVzIHRoZSBmaWxlbmFtZS4KCjIwMDktMTEtMjQgMDc6NDkgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0CgoyMDA5LTExLTIzIDA3OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdGhlIGVudGVycHJpc2UgYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZW5kX3RyYXBzIGFuZCBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGNvbnN0CgoyMDA5LTExLTIzIDA3OjAyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgbmFtZSBhcmd1bWVudCB0byBmaW5kX3ZhcmJpbmRfaW5fbGlzdAogICBjb25zdAoKMjAwOS0xMS0yMiAyMzoyNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIFJlbW92ZSBzb21lIGxvY2FsIHJlZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucwoKMjAwOS0xMS0yMiAwMTowMyAgbWFnZnIKCiAgICogIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nLCBXaW4zMjogUmVtb3ZlIGEgZmV3IHVudXNlZCBjb25maWd1cmUgc3ltYm9scwoKMjAwOS0xMS0yMSAwODowMSAgYnZhc3NjaGUKCiAgICogd2luMzIvU25tcC13aW5FeHRETEwuaCwgd2luMzIvc25tcC13aW5leHRkbGwuaDoKCiAgIFJlcGxhY2VkIGFuIGFjY2lkZW50YWxseSBjb21taXR0ZWQgZmlsZSBieSB0aGUgcHJvcGVyIGNvbnRlbnRzLgoKMjAwOS0xMS0yMCAxNjoyOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBSZXZlcnRlZCBhY2NpZGVudGFsbHkgbWVyZ2VkIGNoYW5nZXMuCgoyMDA5LTExLTIwIDE2OjI2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGliLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvc25tcC13aW5leHRkbGwuaDoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMDktMTEtMjAgMTY6MTggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmMsICAgCiAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3BlbGxpbmcgZml4IGluIEMgc291cmNlIGNvZGUgY29tbWVudHM6IHJlcGxhY2VkICdyZXRyaXZhbCcgYnkKICAgJ3JldHJpZXZhbCcuCgoyMDA5LTExLTIwIDE2OjE1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIGEgbmFtaW5nIGluY29uc2lzdGVuY3k6IHJlcGxhY2VkIHR3byBvY2N1cnJlbmNlcyB3aW5FeHREbGwKICAgYnkgd2luRXh0RExMIGluIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgoKMjAwOS0xMS0xOSAyMjo1MiAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjkwMDA3ODogQWRkIHN1cHBvcnQgZm9yIE9JRCB2YXJpYWJsZXMgd2l0aAogICBzaXplIGluIGVsZW1lbnRzIGluc3RlYWQgb2YgYnl0ZXMsIGNvcnJlY3Qgc3lzT2JqZWN0SUQgdG8gdXNlCiAgIHRoaXMuCgoyMDA5LTExLTEzIDEyOjU5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbG9nZ2luZyBvZiAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIKICAgYml0cycgaW4gSVAtTUlCIGFuZCBUQ1AtTUlCCiAgIFRoZSBjb3VudGVycywgd2hpY2ggZ3JvdyBmYXN0IGFyZSBub3cgY3V0IHRvIDMyYml0cy4KCjIwMDktMTEtMTIgMDg6MjYgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBVc2UgYmlnIHByaW50ZidzIGluc3RlYWQgb2YgbWFueSBzbWFsbCBvbmVzIHRvIHNhdmUgYSBmZXcgaHVuZHJlZAogICBieXRlcyBvbiB0aGUgZmluYWwgZXhlY3V0YWJsZSBzaXplLgoKMjAwOS0xMS0xMiAwMjoyNCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9zdHJsY3B5LmMsIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b2wuYywgICAKICAgICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfUkVQTEFDRV9GVU5DUyB0byBoYW5kbGUgY29kZSB0aGF0IGlzCiAgIG1pc3Npbmcgb24gc29tZSBwbGF0Zm9ybXMuCgoyMDA5LTExLTExIDA5OjAwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBjYWNoZSBmcmVlIHJvdXRpbmUgdG8gbWF0Y2ggaGVhZGVyIGRlY2xhcmF0aW9uLgogICBSZXR1cm4gc3VjY2Vzcy9mYWlsdXJlIHZhbHVlcyBmcm9tIGNhY2hlIGxvYWQgcm91dGluZS4KICAgUHJvYmxlbSBpZGVudGlmaWVkIGJ5IFh1YW4uCgoyMDA5LTEwLTMwIDA5OjUxICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oLCAgCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBORVdTOiBzbm1wbGliOiBSZXZlcnQgMTc4MDgsIGluc3RlYWQgZmFjdG9yIG91dCB0aGUgZGVjbGFyYXRpb24KICAgb2Ygb2lkIHRvIGl0J3Mgb3duIGZpbGUgYW5kIGluY2x1ZGUgdGhhdCBmaWxlIGZyb20gYm90aCB0eXBlcy5oCiAgIGFuZCBhc24xLmgKCjIwMDktMTAtMzAgMDg6MjggIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAKICAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliLCBzbm1wZCwgc25tcG5ldHN0YXQ6IEFkZCBjb3JyZWN0IHNpemUgcHJlZml4ZXMKICAgd2hlbiBwcmludGluZyB2YXJpYWJsZXMgb2YgdHlwZSBvaWQuCgoyMDA5LTEwLTMwIDA4OjA3ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2Ugb2lkIHRvIGJlIGEgMzItYml0IHR5cGUgb24gSUxQNjQgYW5kCiAgIExQNjQgcGxhdGZvcm1zLgoKMjAwOS0xMC0zMCAwODowNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgb2lkIHR5cGVkZWYgZnJvbQogICA8bmV0LXNubXAvbGlicmFyeS9hc24xLmg+LiBJdCBpcyBzdGlsbCBwcmVzZW50IGluCiAgIDxuZXQtc25tcC90eXBlcy5oPiwgdXNlIHRoYXQgZmlsZS4KCjIwMDktMTAtMjggMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZG9uJ3QgcmVxdWlyZSBzdWJhZ2VudF9pbml0KCkgaWYgbm90IG9ubHkgYnVpbGRpbmcgbWFzdGVyIGFnZW50CiAgIGNvZGUKCjIwMDktMTAtMjcgMDY6NDQgIG1hZ2ZyCgogICAqICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksICAgCiAgICAgIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMucm93LmNvbmYsIGxvY2FsL21pYjJjLnNjYWxhci5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzIHRvIHVfY2hhcioKCjIwMDktMTAtMTQgMjM6MTIgIG1hZ2ZyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3NjYXBpLmM6CgogICBDSEFOR0VTOiBhcHBzLCBzbm1wbGliOiBQQVRDSDogMjgzNTU3NzogaWRlbnRpZmllZCBieSAiQmFydCBWYW4KICAgQXNzY2hlIjogUmVwbGFjZSBTTk1QX1pFUk8gb2YgYXJyYXlzIHdpdGggYSBtZW1zZXQuCgoyMDA5LTEwLTEyIDIwOjI4ICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSBycCB2YXJpYWJsZSB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgb25lLgoKMjAwOS0xMC0wOSAxMjozOCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOjI4NzE3NDc6IHBsdWcgbWVtb3J5IGxlYWsgaW4gT0lECiAgIHByb2Nlc3NpbmcuCiAgIFRoZSBtZW1vcnkgbGVha2VkIHdoZW4gc21hbGwgT0lELCB3aGljaCBjb3VsZCBmaXQgcHJlLWFsbG9jYXRlZAogICB2cC0+bmFtZV9sb2MsIHdhcyBwbGFjZWQgaW4gZGlmZmVyZW50IChhbGxvY2F0ZWQpIG9uZS4KCjIwMDktMTAtMDkgMDU6MzEgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IEJVRzogMjgzODI0MzogQ29ycmVjdCB0aGUgb3V0cHV0IG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgVGhhbmtzIHRvIEphY2sgSHVhbmcgb2YgUXVhbGNvbW0gd2hvIHBvaW50ZWQgb3V0IHRoaXMgYnVnLgoKMjAwOS0xMC0wOSAwNTowMCAgbWFnZnIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBwYXJzaW5nIG9mIHJhbmdlcyB0byBhY2NlcHQgYWxsCiAgIHZhbGlkIHZhbHVlcy4KCjIwMDktMTAtMDcgMjI6MjQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBtaXNjOiBQQVRDSDogMjgzNjExMjogVXNlIHRoZSByaWdodCBtb2RpZmllciB3aGVuCiAgIHByaW50aW5nIHNpemVfdCBhbmQgc3NpemVfdCB2YXJpYWJsZXMuCgoyMDA5LTEwLTA3IDEyOjUwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgY3JlYXRpb24gb2Ygdmlld3MgdXNpbmcgc25tcHVzbSwgT0lEcyB3aXRoCiAgIGluZGV4ZXMgPiAyNTUgYXJlIGFsbG93ZWQgbm93LgogICBUaGlzIHJldmVydHMgU1ZOIGNvbW1pdCAjNzQ5Mi4KCjIwMDktMTAtMDUgMTk6MTkgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDb3JyZWN0IHRoZSBzcGVsbGluZyBvZiBfX2NwbHVzcGx1cyB3aGVuCiAgIGNoZWNraW5nIGlmIHRoZSBmaWxlIHNob3VsZCBiZSB3cmFwcGVkIGluIGV4dGVybiAiQyIuCgoyMDA5LTEwLTA1IDA2OjEzICBtYWdmcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBDSEFOR0VTOiBzbm1wd2FsazogSGFuZGxlIHRoZSBjYXNlIHdoZW4gdGhlIGVuZCBvaWQgaXMgbG9uZ2VyCiAgIHRoYW4gdGhlIGN1cnJlbnQgb2lkIGNvcnJlY3RseQoKMjAwOS0wOS0zMCAxMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIHBhY2thZ2UgdmVyc2lvbgogICBpbmZvcm1hdGlvbiBjcmFzaGluZyB0aGUgYWdlbnQuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgSW55YXZlbiBTYWthcmFpLgoKMjAwOS0wOS0yNyAxNDo1OSAgYWxleF9iCgogICAqICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAgIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMjogQmluYXJ5IGJ1aWxkIGluc3RydWN0aW9ucyBhbmQgc2NyaXB0IHVwZGF0ZXMuCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnJjMyAtPiBWNS41CgoyMDA5LTA5LTIzIDIzOjQyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjQwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICByZW1vdmUgU1ZOIGJyYW5jaCB3b3JkaW5nCgoyMDA5LTA5LTIzIDIzOjM2ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBwcm9wZXIgcHJvamVjdCBjYXBpdGFsaXphdGlvbgoKMjAwOS0wOS0yMyAyMzozNSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTIzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMiAyMTo1MSAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGZpeCB0eXBvcwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnJjMiAtPiBWNS41LnJjMwoJCjIwMDktMDktMTQgMjI6MzkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6MzYgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWl4LCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgUGF0Y2ggZnJvbSBtYWdmciBmb3IgNS41IHNwZWNpZmljIGFpeCBidWlsZCBmaXhlcwoKMjAwOS0wOS0wMiAwNzoxMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlbmFtZSBNSUIgbWFjcm8gdG8gTkVUU05NUF9NSUIyX09JRCwgTUlCIGlzCiAgIHRvbyBnZW5lcmljIGFuZCBtYXkgY29uZmxpY3Qgd2l0aCBhcHBsaWNhdGlvbnMuCiAgIAogICBUaGUgb2xkIE1JQiBtYWNybyBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB1bmxlc3MKICAgTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgaXMgZGVmaW5lZC4KCjIwMDktMDgtMzEgMTk6MzggIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGRpdGlvbmFsIFJGQyBtaWJzCgoyMDA5LTA4LTMxIDE5OjM3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBJQU5BIGZpeGVkIGEgYnVnCgoyMDA5LTA4LTI5IDA3OjI5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW1vdmUgdW5uZWVkZWQgY2FzdHMuCgoyMDA5LTA4LTI5IDA3OjI4ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiByZXQgaXMgb25seSB1c2VkIGluIHNldHRhYmxlIHRhYmxlcyBzbyBvbmx5IGRlY2xhcmUgaXQKICAgdGhlbi4KCjIwMDktMDgtMjkgMDc6MjQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlcGxhY2UgdGhlIF9vaWRfbGVuIHZhcmlhYmxlIHdpdGggYW4gZXhwbGljaXQgY2FsbCBvZgogICBPSURfTEVOR1RILgoKMjAwOS0wOC0yOSAwNzoyMSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogTWFrZSBldmVyeSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBzdGF0aWMgc3RhdGljLiBSZW1vdmUgdGhlCiAgIGRlY2xhcmF0aW9ucyBvZiB0aGUgc3RhdGljIGZ1bmN0aW9ucyBhbmQgdGhlIHByaXZhdGUgZGVmaW5lcyBmcm9tCiAgIHRoZSBoZWFkZXIuCgoyMDA5LTA4LTI5IDA3OjE5ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zLgoKMjAwOS0wOC0yOSAwNzoxNiAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogbmV0c25tcF90YWJsZV9yZWdpc3RlciBzaG91bGQgYmUgbmV0c25tcF9yZWdpc3Rlcl90YWJsZQogICBhbmQgdGFrZSBvbmx5IHR3byBhcmdtZW50cy4KCjIwMDktMDgtMjkgMDc6MTQgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IGJ1aWxkX29pZCBleHBlY3RzIGEgcG9pbnRlciB0byBhbGxvY2F0ZWQgb2lkLiBDaGFuZ2UgdG8KICAgdXNlIGJ1aWxkX29pZF9ub2FsbG9jIGFuZCByZW1vdmUgb25lIGNvcHkgb2YgdGhlIGluZGljZXMuCgoyMDA5LTA4LTI5IDA3OjEwICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBUaGVyZSBpcyBubyBpbmRleF9vaWRfbGVuIG1lbWJlciBpbiBzdHJ1Y3QgZW50cnkuIFVzZSB0aGUKICAgaW50ZW5kZWQgbG9jYWwgdmFyaWFibGUgaW5kZXhfb2lkX2xlbi4KCjIwMDktMDgtMjkgMDc6MDYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IENvcnJlY3QgdGhlIHJldHVybiB0eXBlIG9mICR7aX1fZ2V0KmVudHJ5IHRvIG1hdGNoIHRoZQogICByZXR1cm5lZCB0eXBlLgoKMjAwOS0wOC0yNiAyMjozNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgd2h3b29wczsgYmxldyB0aGUgY2hhbmdlbG9nIGZvciByYzIKCjIwMDktMDgtMjYgMTc6MzggIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5yYzEgLT4gVjUuNS5yYzIKCQoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlZCBiYXNlZCBvbiBuZXcgU0YgdXBsb2FkIG1ldGhvZHM7IG5vIGxvbmdlciBhcyBhdXRvbWF0YWJsZQoKMjAwOS0wOC0yNiAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIEphbiB0byBlbmRsZXNzIGxvb3AgaW4gZGVmYXVsdCByb3V0ZXMKICAgb24gbGludXgKCjIwMDktMDgtMjYgMTc6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBKYW4gdG8gZml4IEMrKyB3cmFwcGVyCgoyMDA5LTA4LTI2IDE0OjUzICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBJbml0aWFsIHN0YWIgYXQgYSBtaW5pbWFsLWhlbHBlciAocmF3KSB0YWJsZSB0ZW1wbGF0ZSwKICAgbGVhdmluZyBtb3N0IG9mIHRoZSB3b3JrIHRvIHRoZSB1c2VyLXByb3ZpZGVkIE1JQiBoYW5kbGVyLgoKMjAwOS0wOC0yNiAxNDo1MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJvZ3VzIGZhaWx1cmVzIChyZXR1cm5pbmcgMCkgYW5kIHN1YnNlcXVlbnQKICAgZG91YmxlLWZyZWVzLAogICBkdWUgdG8gMTUtLzMxLWJpdCBtYXNraW5nIHdoZW4gc2VsZWN0aW5nIHJlcXVlc3QgSURzLiBJZGVudGlmaWVkCiAgIGJ5IGtyb21lc2t5LgoKMjAwOS0wOC0yMCAxMzozMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBsdWcgbGVha3MgaW4gaXBJZlN0YXRzVGFibGUsCiAgIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlLCBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlLgogICAKICAgSXQgc2VlbXMgdG8gbWUgdGhlIHRhYmxlcyB3ZXJlIHdyb25nbHkgZ2VuZXJhdGVkIHdpdGgKICAgbTJjX2RhdGFfYWxsb2NhdGUgb3IKICAgc29tZW9uZSBmb3Jnb3QgdG8gcmVsZWFzZSB0aGUgdXNlciBwcm92aWRlZCBkYXRhLgoKMjAwOS0wOC0xMiAxNTowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IGxpYnRvb2wgdmVyc2lvbiBpbiBORVdTCgoyMDA5LTA4LTExIDAwOjQyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6CgogICB3aG9vcHM7IGFkZCByZWFsIGNoYW5nZWxvZyBlbnRlcmllcyBmb3IgLnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5wcmUzIC0+IFY1LjUucmMxCgoyMDA5LTA4LTEwIDIzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCB0eXBvIGluIHN2bjJjbCBsaW5lCgoyMDA5LTA4LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA4LTEwIDIxOjMyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTEwIDIxOjIxICBoYXJkYWtlcgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0wNyAxMDozMiAgZHRzMTIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIENvcnJlY3QsIGNvbnNvbGlkYXRlLCBjbGFyaWZ5IGFuZCBjbGVhbnVwIHRoZSBjYXRhbG9nIG9mIGN1cnJlbnQKICAgY2hhbmdlcy4KCjIwMDktMDgtMDYgMDc6NTcgIGR0czEyCgogICAqIEZBUToKCiAgIEV4cGFuZCBvbiBleGVjIHZzIGV4dGVuZC4KCjIwMDktMDgtMDUgMjA6MDcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI4MjIzNTU6IEZpeCBtZW1vcnkgbGVha3Mgb24KICAgdWRwRW5kcG9pbnRUYWJsZSAobGludXgpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW5rIExpY2h0ZW5oZWxkCgoyMDA5LTA4LTA1IDE5OjA1ICBkdHMxMgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjgyMjMzNzogRml4IG1lbW9yeSBsZWFrIGluCiAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA5LTA4LTA1IDE1OjE2ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgV2hlbiBkZWxldGluZyByb3cgY29udGV4dCwgZGVsZXRlIGFsc28gYXNzb2NpYXRlZCBkYXRhLgoKMjAwOS0wOC0wNSAxNToxNSAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBUaGUgY29udGFpbmVyIHVzZWQgdG8gdHJhY2sgZW50cmllcyB0byBkZWxldGUgZnJvbSBjYWNoZSBzaG91bGQKICAgYmUgcmVsZWFzZWQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgoyMDA5LTA4LTA1IDE1OjEyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFVEUC0gYW5kIFRDUC1NSUIuCiAgIFRoZSBkYXRhIGZyb20gcmF3X2RhdGEgYXJlIGNvcGllZCB0byBjYWNoZSwgc28gaXQgc2hvdWxkIGJlCiAgIGZyZWVkLgoKMjAwOS0wOC0wNSAxMDoxNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IGFwcHM6IEJVRzogMjgxMTU3NzogRml4IGJ1ZyBpbiBHZXRCdWxrIGhhbmRsaW5nLgogICBEb24ndCBnZXQgY29uZnVzZWQgYnkgaW5kZXggdmFsdWVzIHRoYXQgY29udGFpbiBhICc6JyBjaGFyYWN0ZXIuCgoyMDA5LTA4LTA0IDIxOjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDI4MjcyNjk6IFN1cHByZXNzIG5vbi1vcmRlcmVkIFRPRE8gY29tbWVudHMuCgoyMDA5LTA4LTA0IDIxOjM1ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBIYW5kbGUgZ2VuZXJhdGluZyBjb2RlIGZvciBhIHNpbmdsZSB0YWJsZSwKICAgYXMgd2VsbCBhcyBhIGxhcmdlciBncm91cC4KICAgQWxzbyBhZGRyZXNzZXMgYnVnIDIxNTAyODUKCjIwMDktMDgtMDQgMjE6MTYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIHNubXBsaWI6IGZyb20gIkJhcnQgdmFuIEFzc2NoZSAmIE1hZ251cyBGcm9tcmVpZGUiOiBNb3JlIHVwZGF0ZXMKICAgdG8gc3RydG91bGwuYwoKMjAwOS0wOC0wNCAxMDo1NyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tICJNYXJjdXMgUuClhuCkheCkhuClhuCkhZ5ja2VydCI6IGZpeCBwb3NzaWJsZSBjcmFzaCB3aGVuCiAgIDY0LWJpdCBjb3VudGVycyBpbiBpcFN5c3RlbVN0YXRzVGFibGUgZ2V0IGJpZ2dlciB0aGFuIDJeMzIKCjIwMDktMDgtMDMgMTk6MjcgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjgyNzcyMjogZnJvbSAiQmFydCBWYW4gQXNzY2hlIjogSW1wcm92ZQogICBzdHJ0b3VsbCB0byBiZSBsZXNzIE1TVkMtc3BlY2lmaWMKCjIwMDktMDgtMDMgMTg6MzggIG1hZ2ZyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZSBmcm9tIHRoZSBzZXQgb2YgZmlsZXMgdGhhdCBzaG91bGQKICAgYmUgaW5zdGFsbGVkCgoyMDA5LTA3LTI3IDEyOjQxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDctMjcgMTI6MTEgIGhhcmRha2VyCgogICAqIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlCgoyMDA5LTA3LTI3IDEyOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogZnJlZWJzZDogcGF0Y2ggZnJvbSBDZXphcnkgTW9yZ2EgdG8gZml4IGEgbWFrZSB0ZXN0IG9uCiAgIGZyZWVic2QKCjIwMDktMDctMjcgMTI6MDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDctMjcgMTE6NTIgIGhhcmRha2VyCgogICAqICBGQVEsIE5FV1MsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wNy0yNyAwODozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIHJldmVydCBhY2NpZGVudGlhbGx5IGFwcGxpZWQgcGF0Y2gKCjIwMDktMDctMjcgMDg6MzcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgIAogICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdjoKCiAgIGFkZGVkIGEgdGVzdCBjYXNlIGZvciB1ZHAvZHRscwoKMjAwOS0wNy0yNyAwODozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgcmVxdWlyZSBhIHNlc3Npb24gdG8gY2FycnkgYSBzZWNOYW1lCgoyMDA5LTA3LTI2IDIxOjM0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBXaW4zMjogTVNWQyA2IGNvbXBpbGUgZml4ZXMgZm9yIFdvcmtzcGFjZSBidWlsZC4KCjIwMDktMDctMjYgMTg6MjAgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2ksIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtQWRkZWQgc3RydG91bGwgZnVuY3Rpb24gYW5kIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3lzdGVtcyB3aXRob3V0CiAgIGl0IHN1Y2ggYXMgV2luMzIgTVNWQyA2CiAgIC1XaW4zMjogTVNWQyA2IGNvbXBpbGUgZml4ZXMgLSByZXF1aXJlcyBuZXcgc3RydG91bGwuYyBmaWxlCiAgIC1XaW4zMjogTmV3IGJ1aWxkLWJpbmFyeSBzY3JpcHQgdG8gc2ltcGxpZnkgYnVpbGRpbmcgdGhlIFdpbmRvd3MKICAgYmluYXJ5IHBhY2thZ2UuCgoyMDA5LTA3LTI1IDA1OjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIE1ha2Ugc3VyZSBhIG1lc3NhZ2UgaXMgd3JpdHRlbiBpZiB0aGUgcmVsZXZhbnQgdGFibGUgaXMgbWlzc2luZy4KCjIwMDktMDctMjMgMjE6MjkgIGFsZXhfYgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZW1haWwgYWRkcmVzcyBpbiBSRUFETUUuCgoyMDA5LTA3LTIzIDAxOjA3ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyAyMDA4KyBmaXhlcy4KCjIwMDktMDctMjMgMDA6NTUgIGFsZXhfYgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyAyMDA1KyBidWlsZCBmaXhlcy4gVGhhbmtzIHRvIEJhcnQgVmFuIEFzc2NoZS4KCjIwMDktMDctMjEgMTI6MjIgIGR0czEyCgogICAqICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5yb3cuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQWRkIHNpbXBsZSBkZWJ1ZyBvdXRwdXQgdG8gbWliMmMgdGVtcGxhdGVzLgoKMjAwOS0wNy0yMSAxMjoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IG1pc3Npbmcgc2VtaWNvbG9uIHR5cG9zLgoKMjAwOS0wNy0yMSAwOToxNSAgZHRzMTIKCiAgICogRkFROgoKICAgTmV3IHN1Z2dlc3RlZCBlbnRyaWVzLgoKMjAwOS0wNy0yMCAxOToyNCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBDT0RJTkcgc2VjdGlvbi4KCjIwMDktMDctMjAgMTE6MDkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliLmg6CgogICBBZGQgbWlzc2luZyBoZWFkZXIgZmlsZSBmcm9tIHBhdGNoICMyMDUzMjczLgoKMjAwOS0wNy0xOSAxNTowOSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBDT01QSUxJTkcgc2VjdGlvbi4KCjIwMDktMDctMTYgMTI6MzggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIEFkZCBJUHY2IG9jdGV0IGNvdW50ZXJzLgogICBOZXcgTGludXgga2VybmVscyAoZS5nLiAyLjYuMzEtcmMyLCBtYXliZSBzb21lIGVhcmxpZXIpIHByb3ZpZGUKICAgY291bnRlcnMgZm9yCiAgIGluY29taW5nL291dGdvaW5nIElQdjYgdHJhZmZpYyBmb3IgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZAogICBpcElmU3RhdHNUYWJsZS4KCjIwMDktMDctMTUgMjI6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIHB1dCB0ZW1wb3JhcnkgZGF0YSB0byB3aGVyZSB0aGV5IGJlbG9uZwoKMjAwOS0wNy0xMSAyMTo1MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICByZWdlbmVyYXRlIGNvbmZpZ3VyZQoKMjAwOS0wNy0xMSAyMTowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGJ1aWxkIGZpeCAoZS5nLiBmb3IgRnJlZUJTRCk6IGFkanVzdCBrdm0gY29uZmlndXJlIHRlc3RzCgoyMDA5LTA3LTEwIDEyOjM1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hlY2sgSVB2NiBwb3J0IHJhbmdlcyBpbiB0aGUgc2FtZSB3YXkgYXMgSVB2NCBwb3J0cyBhcmUgY2hlY2tlZC4KCjIwMDktMDctMTAgMDc6NDYgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYzoKCiAgIEZpeCBhbm90aGVyIElQdjQgYWRkcmVzcyBzaXplIC0gbG9uZyBoYXMgOCBieXRlcyBvbiA2NGJpdCBMaW51eC4KICAgQWxzbyBmaXggdGhlIGRlZmF1bHQgdHlwZSBmb15DQVNOX0lQQUREUkVTUyBpbiBtaWIyYywgc28gdGhlCiAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMgY2FuIGJlIHNhZmVseSByZWdlbmVyYXRlZC4KCjIwMDktMDctMDkgMjM6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgY2xlYW51cCBvZiB0ZXN0aW5nIGNhc2VzIHRvIHJlbW92ZSBkb3VibGUgaW5jbHVkZSBhbmQgZG91YmxlCiAgIGV4cG9ydHMKCjIwMDktMDctMDkgMjM6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMzAwdWRwOgoKICAgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBUQ1AvSVB2NCB0ZXN0CgoyMDA5LTA3LTA5IDIyOjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhczoKCiAgIG5ldyB0ZXN0cyBmb3IgdGVzdGluZyBkZWZpbmVkIHRyYW5zcG9ydHMKCjIwMDktMDctMDkgMjI6MTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGEgQ09ORklHQVBQIG1hY3JvIGZvciBhZGRpbmcgc3R1ZmYgdG8gc25tcC5jb25mCgoyMDA5LTA3LTA4IDE1OjEyICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggZ2V0aG9zdGJ5YWRkciBwYXJhbWV0ZXIsIG5ldHNubXBfdWRwX2ZtdGFkZHIgbmV2ZXIgcmV0dXJuZWQgYQogICBob3N0bmFtZS4KCjIwMDktMDctMDcgMTU6NDYgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCBJUCBhZGRyZXNzIGxlbmd0aCBvbiA2NCBiaXQgc3lzdGVtcyBpbiBtaWJJSSwgcGFzcyBhbmQKICAgcGFzc19wZXJzaXN0IG1vZHVsZXMuCgoyMDA5LTA3LTA3IDE1OjI0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFVzZSBjb3JyZWN0bHkgc2l6ZWQgSVAgYWRkcmVzc2VzIGluIGFkZHJlc3MgdHJhbnNsYXRpb24gdGFibGUKICAgcHJvY2Vzc2luZyAtIHVfbG9uZyBjYW4gbWFrZSBwcm9ibGVtcyBvbiBiaW4gZW5kaWFuIDY0IGJpdAogICBzeXN0ZW1zCgoyMDA5LTA2LTI5IDEzOjUyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgcmVtb3ZlIGVudHJ5IGZvciBhIHBhdGNoIHRoYXQgZ290IHJldmVydGVkCgoyMDA5LTA2LTI1IDE1OjI0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgTW92ZSBub24tY29yZSBkYXRhIHR5cGVzIGludG8gYSBzZXBhcmF0ZSAobGlicmFyeSBpbnRlcm5hbHMpCiAgIGhlYWRlciBmaWxlLgogICBNb3ZlIHRoZSBsYXJnZV9mZF9zZXQgZGF0YSBzdHJ1Y3R1cmUgaW50byB0aGlzIGhlYWRlciBmaWxlLgoKMjAwOS0wNi0xOCAyMjoyOSAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhbGxvdyBidWlsZGluZyB3aXRoIFBlcmwgdmVyc2lvbnMgdGhhdCBsYWNrCiAgIFBFUkxfRVhJVF9ERVNUUlVDVF9FTkQKCjIwMDktMDYtMTggMjI6MTMgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGJ1aWxkIGZpeCBmb3IgVHJ1NjQgVW5peCBhbmQgSVJJWDogbW92ZSBfWE9QRU4qCiAgIGRlZmluaXRpb25zIHRvIHdoZXJlIHRoZXkgYXJlIGluIDUuNC54IGFuZCBlYXJsaWVyCgoyMDA5LTA2LTE4IDA2OjAyICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDbGVhbiB1cCAtLXdpdGgtbmwgY29uZmlndXJhdGlvbgogICAqICBNb3ZlIHRoZSBfQVJHX1dJVEggdG8gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUgIDIwMDktMDYtMTYgMTU6MTcKICAgICAgIHJzdG9yeQoKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGNoZWNrIGZvciBudWxsIHBvaW50ZXIgYmVmb3JlIGRlcmVmCgoyMDA5LTA2LTE1IDIzOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYWRkIGNvbW1lbnQgZXhwbGFpbmluZyBub3QgcXVpdGUgb2J2aW91cyBsYWNrIG9mIG1lbW1vdmUKCjIwMDktMDYtMTUgMTk6MzIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFJlbW92ZSAjaWYgMCBjb21tZW50ZWQgY29kZQoKMjAwOS0wNi0xNSAxNToyNSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBBR0VOVCBzZWN0aW9uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5wcmUyIC0+IFY1LjUucHJlMwoKMjAwOS0wNi0xMyAwMToxMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI1NjQ1NTI6IGZyb20gYWhtYWtlOiBwcm92aWRlIGxpYm5ldGxpbmsKICAgc3VwcG9ydCBmb3IgbG9hZGluZyB0aGUgdGNwIHRhYmxlCgoyMDA5LTA2LTEyIDE5OjAyICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQwMDEwMTogcmVtb3ZlIGRlbGV0ZWQgaW50ZXJmYWNlcyBmcm9tCiAgIGlmVGFibGUKCjIwMDktMDYtMTEgMjM6MDkgIGhhcmRha2VyCgogICAqICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3dpbnBpcGUuYywgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIENIQU5HRVM6IHdpbjMyOiBQQVRDSDogMjY5Mzc0NjogZnJvbSBidmFzc2NoZTogaW1wcm92ZWQgc29ja2V0CiAgIHN0YXJ0dXAgc3VwcG9ydAoKMjAwOS0wNi0xMSAyMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMDEyNDAyOiBkb24ndCBmYWlsIG9uIGZhaWx1cmUgdG8gbG9vayB1cAogICBpbnRlcmZhY2UgZXJyb3IgY291bnRlcnMuCgoyMDA5LTA2LTExIDIyOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICByZXZlcnQgcHJldmlvdXMgY29tbWl0IHRvIG1ha2UgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGJhY2sgdG8KICAgdGhlaXIgcmVndWxhciBpbnNhbmUgb3JkZXJpbmc7IEkgZG9uJ3QgbGlrZSB0aGlzIHNpdHVhdGlvbiBhdCBhbGwKCjIwMDktMDYtMTEgMjE6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGluY2x1ZGUgbGFyZ2VfZmRfc2V0LmggYmVmb3JlIHR5cGVkZWZpbmcgc29tZXRoaW5nIGJhc2VkIG9uIHRoZQogICBzdHJ1Y3R1cmUKCjIwMDktMDYtMDMgMTI6MzUgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0hFUzogMjc5Mzg1NzogUmVwb3J0IGZhaWxlZCBhc3luY2hyb25vdXMKICAgcmVxdWVzdHMuCgoyMDA5LTA2LTAzIDExOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBSZW1vdmUgcGF0Y2ggIzIxODI1OTIgLSByZXZlcnQgdG8gU1ZOIHJldmlzaW9uIDE3NjQ2CiAgIFRoZSBjbGVhbnVwIHJvdXRpbmVzIGRvbid0IGFwcGVhciB0byBleGlzdC4KCjIwMDktMDYtMDMgMTA6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjE4MjU5MjogQ2xlYW4gdXAgdmFjbUNvbnRleHRUYWJsZSBhZnRlcgogICB1bnJlZ2lzdHJhdGlvbnMKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9obiBGb3JzeXRoCgoyMDA5LTA2LTAzIDEwOjEyICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMjc5NzI1MTogU3VwcG9ydCBtdWx0aXBsZSBpbml0aWFsaXNhdGlvbiBhbmQKICAgc2h1dGRvd24sIGZpeCBtZW1vcnkgbGVha3MKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSXZvc2gKCjIwMDktMDYtMDEgMTU6NTMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkVHUzogZG9jczogUEFUQ0hFUzogMjc4ODA3MjogRG9jdW1lbnQgJ2xvZ21hdGNoJwogICBmdW5jdGlvbmFsaXR5LgoKMjAwOS0wNi0wMSAxNTo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgc25tcGxpYi9taWIuYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICAgCiAgICAgIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDI3ODA0MTE6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAwOS0wNi0wMSAxNTozNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvbW9uaXRvciwgbTQvbGlidG9vbC5tNCwgICAKICAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIENIQU5HRVM6IGRvY3M6IFBBVENIOiAyNzk1NzM5OiBGaXggaW5jb3JyZWN0IGRpc2svZmlsZSBzaXplCiAgIGRlc2NyaXB0aW9ucyAmIHVuaXQgc3BlY2lmaWVycwoKMjAwOS0wNi0wMSAxMzoxMSAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFJld29yayBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBtYXRjaCBjdXJyZW50IHNubXBkLmNvbmYoNSkKICAgc3RydWN0dXJlLAogICBhbmQgbW9yZSBjbGVhcmx5IGlsbHVzdHJhdGUgY3VycmVudCBiZXN0IHByYWN0aXNlLgoKMjAwOS0wNS0zMCAwNjo1OCAgbWFnZnIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIFJlbW92ZSB1bnVzZWQgaW5jbHVkZS4KCjIwMDktMDUtMjkgMDk6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaDoKCiAgIEF1dG9tYXRpY2FsbHkgbG9hZCB0aGUgZXhhbXBsZSBwYXNzdGVzdCBNSUIKCjIwMDktMDUtMjkgMDk6MDggIGR0czEyCgogICAqICBsb2NhbC9wYXNzdGVzdCwgbG9jYWwvcGFzc3Rlc3QucGwsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTkVULVNOTVAtUEFTUy1NSUIudHh0OgoKICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZXMgdG8gZnVsbHkgdmFsaWRhdGUgR0VUTkVYVCByZXF1ZXN0cywKICAgYW5kIHVzZSBhIGxlZ2l0aW1hdGUgTUlCIHN0cnVjdHVyZSBmb3Igb3V0cHV0LgogICBBZGQgYW4gZXhhbXBsZSBNSUIgdG8gZGVmaW5lIHRoYXQgc3RydWN0dXJlLgoKMjAwOS0wNS0yOCAxMjo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBNSUJzIHNlY3Rpb24KCjIwMDktMDUtMjggMTE6NTYgIGR0czEyCgogICAqIEZBUToKCiAgIFR3ZWFrIHBocmFzaW5nIG9mIGFuIChvdmVybG9uZykgcXVlc3Rpb24gaW4gdGhlIFBlcmwgc2VjdGlvbgoKMjAwOS0wNS0yOCAxMTozMSAgZHRzMTIKCiAgICogRkFROgoKICAgTmV3IGVudHJ5IGluIHRoZSBBcHBsaWNhdGlvbnMgc2VjdGlvbgoKMjAwOS0wNS0yOCAxMDo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBBcHBsaWNhdGlvbnMgc2VjdGlvbgoKMjAwOS0wNS0yNyAxNToyNiAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBHRU5FUkFMIHNlY3Rpb24uCgoyMDA5LTA1LTE5IDE3OjUwICBhbGV4X2IKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgVXBkYXRlIFBlcmwgVHJhcFJlY2VpdmVyIGV4YW1wbGUgdG8gcHJvcGVybHkgb3V0cHV0IHRoZQogICBzZWN1cml0eUVuZ2luZUlEIGFuZCBjb250ZXh0RW5naW5lSUQuCgoyMDA5LTA1LTE4IDEwOjAzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBBdm9pZCBkaXZpc2lvbiBieSB6ZXJvLgoKMjAwOS0wNS0xNSAxOToyMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAyNzgyNzAwOiBidWlsZCBmYWlsdXJlIHdoZW4gdXNpbmcKICAgLS13aXRoLXBrY3Mgb24KICAgU29sYXJpcwoKMjAwOS0wNS0xNSAxNDo1OSAganNhZnJhbmVrCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIEZpeCBjb21waWxhdGlvbiBvZiBycG0gcGFja2FnZXMgb24gRmVkb3JhID49IDEwIC0gaXQgaGFzIG5ld2VyCiAgIFJQTSBhbmQgdGhlIG9sZCBBUEkgbmVlZHMgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkIGJ5IGEgbWFjcm8uCgoyMDA5LTA1LTE0IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFRoZSBzbm1wY21kIG1hbiBwYWdlIGlzIG5vdCBzcGVjaWZpYyBob3cgcmFuZ2Ugb2YgbG9nIHByaW9yaXRpZXMKICAgc2hvdWxkIGJlIHNwZWNpZmllZCBvbiBjb21tYW5kIGxpbmUsCiAgIGkuZS4gYm90aCAtTE8gNC0wIGFuZCAtTE8gMC00IGFyZSB2YWxpZC4gQWxsIHNubXAgY29tbWFuZHMgKGluY2wuCiAgIHNubXBkKSBzaG91bGQgcmVjb2duaXplIHRoYXQuCgoyMDA5LTA1LTE0IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBBbGxvdyAibW9uaXRvciIgdG8gaGFuZGxlIG5lZ2F0aXZlIHRocmVzaG9sZAogICB2YWx1ZXMuCiAgIFJlcG9ydGVkIGJ5IFJpY2hhcmQgR2lwcHMuCgoyMDA5LTA1LTEzIDIyOjMyICB0YW5kZXJzCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNzkxNDE3OiBmaXggc25tcGQgc2VnZmF1bHQgd2hlbiBydW4gd2l0aAogICAtREFMTAogICBQYXRjaCBzdXBwbGllZCBieSBSb24gUm9za2Vucy4KCjIwMDktMDUtMTMgMDg6MDIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQnJpbmcgZG9jdW1lbnRhdGlvbiBvZiBub3RpZmljYXRpb25FdmVudCBzeW50YXggaW50byBsaW5lIHdpdGgKICAgcmVhbGl0eS4KICAgKFVzZXMgIi1tIiByYXRoZXIgdGhhbiAiLW4iIHRvIHJlZ2lzdGVyIHN0YW5kYXJkIE1JQiBwYXlsb2FkCiAgIG9iamVjdHMpCiAgIEluY29uc2lzdGVuY3kgcmVwb3J0ZWQgYnkgUmljaGFyZCBHaXBwcy4KCjIwMDktMDUtMTAgMjE6MTIgIGFsZXhfYgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogQWRkZWQgYXV0b21hdGljIG1hbmlmZXN0IG1lcmdpbmcgd2l0aCBtdC5leGUgZm9yIE1TVkMgMjAwOAogICBldGMuCgoyMDA5LTA1LTA4IDEzOjEyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDaGFuZ2VzOiBXaW4zMjogQWRkIHN1cHBvcnQgZm9yIFdpbmRvd3MgNywgVmlzdGEgYW5kIDIwMDggZm9yCiAgIHdpbkV4dERMTC4KCjIwMDktMDUtMDggMDI6MDcgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIERMTC4KCjIwMDktMDUtMDcgMjM6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmM6CgogICBidWlsZCBmaXggZm9yIEhQLVVYOiBpbmNsdWRlIDxzeXMvcGFyYW0uaD4gZm9yIERFVl9CU0laRQoKMjAwOS0wNS0wNyAwNToxMSAgbmJhCgogICAqIGFnZW50L3NubXBfcGVybC5oOgoKICAgVXBzLCBtaXNzZWQgYSBuZXcgcHJvdG90eXBlIGhlYWRlcgoKMjAwOS0wNS0wNiAyMjoyNiAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQSBtYW4gbGluZSBjYW5ub3Qgc3RhcnQgd2l0aCBhICcKCjIwMDktMDUtMDYgMjI6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBJUHY2IGFkcmVzc2VzIGFyZSBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkIHRoZW4gMzJiaXRzCgoyMDA5LTA1LTA2IDIyOjA2ICBuYmEKCiAgICogIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBTcHJpbmtsZSBzb21lIGNvbnN0LW5lc3Mgd2hlcmUgcmVsZXZhbnQKCjIwMDktMDUtMDYgMjI6MDIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgVHJpdmlhbCB3YXJuaW5nIGZpeGVzCgoyMDA5LTA1LTA2IDIyOjAwICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBIbW1tLCBJQU5BIGZpeGVkIHRoZWlyIGJ1ZyB0b28KCjIwMDktMDUtMDYgMjE6NTkgIG5iYQoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZW1haWwgdG8gY3VycmVudAoKMjAwOS0wNS0wNiAyMTo1OSAgbmJhCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgICAKICAgICAgYWdlbnQvc25tcGQuYywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBUcml2aWFsIHdhcm5pbmcgZml4ZXMKCjIwMDktMDUtMDYgMjE6NDkgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIGNvbnRleHRFbmdpbmVJRCBpcyBhIGhleHN0cmluZywgbm90IGFuIG9iamVjdCBpZGVudGlmaWVyCgoyMDA5LTA1LTA2IDIxOjQ1ICBuYmEKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgICAKICAgICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvaW50NjQuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGZvcm1hdCB3YXJuaW5ncyBmcm9tIGRlYnVnIG91dHB1dAoKMjAwOS0wNS0wNiAyMDo0NSAgbmJhCgogICAqIG1pYnMvc21pc3RyaXA6CgogICBQcm9wZXJseSByZWNvZ25pemUgbWVzc2FnZSBzeW50YXggbW9kdWxlcyAodG8gYmUgYWJsZSB0byBpZ25vcmUKICAgdGhlbSkKCjIwMDktMDUtMDYgMjA6MzYgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgdXBkYXRlcwoKMjAwOS0wNS0wNiAyMDozNSAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgU3ludGF4IGZpeCBmb3IgY3VycmVudCBJQU5BLVBSSU5URVItTUlCCgoyMDA5LTA1LTA2IDIwOjM0ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGUgdG8gY3VycmVudCBJQU5BIHZlcnNpb24KCjIwMDktMDUtMDQgMTM6NDcgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMjogQnVpbGQgZml4ZXMgZm9yIERMTC4KCjIwMDktMDUtMDEgMTU6NDMgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTkVXUzogc25tcGxpYjogU3RvcCB1c2luZyBhIGZpeGVkIHN0cmluZyBmb3IgaW5kZW50YXRpb24uIFJlbW92ZQogICB0aGUgREVCVUdJTkRFTlQoKSBtYWNybyAodGhhdCBkaWQgbm90aGluZykuIENoYW5nZSB0aGUgbWVhbmluZyBvZgogICB0aGUgaW50ZXJuYWwgX19EQkdJTkRFTlQoKSBtYWNybyB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzcGFjZXMKICAgdG8gaW5kZW50IGluc3RlYWQgb2YgYSBzdHJpbmcgdGhhdCByZXByZXNlbnQgdGhlIGluZGVudGF0aW9uCiAgIGxldmVsLiBEZXByZWNhdGUgdGhlIGRlYnVnX2luZGVudCBmdW5jdGlvbi4KCjIwMDktMDQtMzAgMDY6NTcgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBDSEFOR0VTOiBzbm1wZDogVXNlIHN0YXRpYyB3YXRjaGVyX2luZm8gZm9yIGFsbCB3YXRjaGVkIHZhcmlhYmxlcwogICBhbmQgaW4gaW50X3dhdGNoLgoKMjAwOS0wNC0zMCAwNjo0MSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgaW5pdGlhbGl6YXRpb24gZnJvbSBhbGxvY2F0aW9uIGZvcgogICBuZXRzbm1wX3dhdGNoZXJfaW5mbyBzdHJ1Y3R1cmVzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gdXNlCiAgIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGRhdGEuCgoyMDA5LTA0LTMwIDA2OjM0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBBZGQgbWlzc2luZyByZXR1cm4gdmFsdWUuCgoyMDA5LTA0LTMwIDAwOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBEVExTIHN1cHBvcnQ7IHNlbWkgZG9jdW1lbnQgdGhlIFNTSCBzdXBwb3J0IGFuZAogICBkb2N1bWVudCB0aGUgLXMgc3dpdGNoIHRvIG1hbnkgVkFDTSBzZXR0aW5ncwoKMjAwOS0wNC0yOSAyMzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IGNvbm5lY3Rpb24gb3BlbmluZyBlcnJvcnMgYW5kIGZyZWUgbWVtb3J5IG9uCiAgIGZhaWx1cmVzCgoyMDA5LTA0LTI5IDEyOjE5ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBVcGRhdGUgZGVmaW5lcyBmb3IgX1dJTjMyX1dJTk5UIGFuZCBOVERESV9WRVJTSU9OIHRvCiAgIHN1cHBvcnQgV2luZG93cyAyMDAwIGFuZCBoaWdoZXIgYW5kIGFkZCBJUFY2IGRlZmluZSB0byBhbGxvdyBJUFY2CiAgIGNvZGUgdG8gY29tcGlsZS4KCjIwMDktMDQtMjggMDY6MzQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgc25tcGQsIExpbnV4OiBSZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOS0wNC0yOCAwNjowNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIHNubXBkOiBBZGQgbWlzc2luZyBhcmd1bWVudCB0byBwcmludGYtbGlrZSBjYWxsLgoKMjAwOS0wNC0yOCAwNTo1MyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgc25tcGQ6IE1hcmsgbW9yZSBvaWRzIGFzIGNvbnN0LgoKMjAwOS0wNC0yOCAwNTo1MSAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzCiAgIGxvY2F0ZWQuCgoyMDA5LTA0LTI4IDAxOjEyICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogTVNWQzogT25seSB1c2UgV2luZG93cyBBUEkgZnVuY3Rpb25zIGF2YWlsYWJsZSBvbiBXaW5YUCBvcgogICBiZWZvcmUgKElQVjYpIG9yIDIwMDAgb3IgYmVmb3JlIChubyBJUFY2KS4KCjIwMDktMDQtMjYgMjM6MzAgIGFsZXhfYgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIFdpbjMyOiBSZW1vdmUgbWFjaGluZSB0eXBlIG9mIEkzODYgZnJvbSBMSU5LMzJfRkxBR1MgdG8gYWxsb3cKICAgY29tcGlsaW5nIHdpdGggTVNWQyAyMDA4IGFzIGVpdGhlciAzMiBvciA2NC1iaXQuCgoyMDA5LTA0LTI2IDE3OjM4ICBhbGV4X2IKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBNU1ZDIDIwMDguIENvcHkgYW5kIGNsZWFudXAKICAgbWFuaWZlc3QgZmlsZXMuCgoyMDA5LTA0LTI2IDE1OjIxICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiBSZS1lbmFibGUgcGFzcyBhbmQgcGFzc19wZXJzaXN0IENvdW50ZXI2NCBmb3IgTVNWQy4KCjIwMDktMDQtMjYgMTQ6MzQgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCB3aW4zMi9idWlsZC5wbCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBNU1ZDIDIwMDguIElGVFlQRSBpcyBkZWZpbmVkIGJ5CiAgIE1TVkMgMjAwOCwgc28gaW50ZXJmYWNlcy5jIHZhcmlhYmxlcyB3ZXJlIGNoYW5nZWQgdG8gTkVUU05NUF8uCgoyMDA5LTA0LTI2IDEzOjA2ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogVXBkYXRlIGJ1aWxkIGluc3RydWN0aW9ucyBpbiBjb21tZW50cy4KCjIwMDktMDQtMjQgMTM6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggdGhlIEFTTl9PUEFRVUUgcGF0Y2ggdGhhdCB3YXMgY29tbWl0ZWQgd2l0aG91dCBwcm9wZXIgZGlmZgogICBjb250ZXh0CgoyMDA5LTA0LTI0IDA3OjMxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ0hBTkdFUzogSFAtVVg6IEJVRzogMjc3OTQ3MjogRmlsZXN5c3RlbXMgbWlzc2luZyBpbiBoclN0b3JhZ2UKICAgdGFibGUgb24gSFAtVVggMTEuMzEKICAgKGFsbG93IGZvciBtbnR0YWIgdGhhdCBpcyBhIGNoYXJhY3RlciBzcGVjaWFsIGRldmljZSkKCjIwMDktMDQtMjQgMDE6MzYgIGFsZXhfYgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBCVUc6IDI3Nzk1NDEgRml4ZWQgaGFuZGxlIGxlYWsgaW4gcGFzc19wZXJzaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNS5wcmUxIC0+IFY1LjUucHJlMgoKMjAwOS0wNC0yMyAyMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIGZpeCBDKysgc3R5bGUgY29tbWVudHMKCjIwMDktMDQtMjMgMjI6MjUgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDQtMjMgMjI6MjMgIGhhcmRha2VyCgogICAqICBtYW4vY29uZmlnX2FwaS4zLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBpbml0aWFsIGRveHlnZW4gZXh0cmFjdHMgZm9yIHRoZSBuZXcgaGVhZGVycwoKMjAwOS0wNC0yMyAyMjoxOSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA0LTIzIDIyOjE2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgaW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gZmFpbGluZyB0byBvcGVuIG1udHRhYgoKMjAwOS0wNC0yMyAyMjoxMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIENIQU5HRVM6IEhQLVVYOiBCVUc6IDI3Nzk0NzI6IEZpbGVzeXN0ZW1zIG1pc3NpbmcgaW4gaHJTdG9yYWdlCiAgIHRhYmxlIG9uCiAgIEhQLVVYIDExLjMxCgoyMDA5LTA0LTIzIDIxOjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAyNzUxNTg4OiBJbmNvbnNpc3RlbnQgZGF0YSAoZS5nLiBVRFAvVENQCiAgIE1JQgogICBzY2FsYXIgdmFsdWVzIG9mIHplcm8pIGNhbiBiZSByZXBvcnRlZCBvbiBTb2xhcmlzIDEwVTQrCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEFuZGVycyBQZXJzc29uCgoyMDA5LTA0LTIzIDE3OjMwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkwMTc2NDogZnJvbSBrcmlzenRvZm9ybyBmb3Igc3VwcG9ydGluZwogICBsb2d3YXRjaCBmaWxlcyB0aGF0IGFyZSBkYXRlIGJhc2VkCgoyMDA5LTA0LTIzIDE3OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBQQVRDSCAxOTU2MTkzOiBmcm9tIGNhY295bGU6IGJldGEgdGhyZWFkYWJsZSBwZXJsCiAgIG1vZHVsZSBjb2RlIGZvciBTTk1QdjEvU05NUHYyYyB1c2FnZS4KCjIwMDktMDQtMjMgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IHNvbGFyaXM6IFBBVENIOiAyMDEyNDA0OiBkZWFsIHdpdGggbW9yZSB0aGFuIDEwCiAgIGludGVyZmFjZXMuIE5ldyBoYXJkY29kZWQgbGltaXQgaXMgNTAuIEEgYmV0dGVyIHNjYWxpbmcgcGF0Y2gKICAgd291bGQgYmUgYXBwcmVjaWF0ZWQgOi0pCgoyMDA5LTA0LTIzIDE2OjQ3ICBoYXJkYWtlcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBkb2N1bWVudCB0aGF0IHRoZSBldGhlcmxpa2UtbWliIGhhcyBhbiBpbXBsZW1lbnRhdGlvbgoKMjAwOS0wNC0yMyAxNjo0MCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZW51bXMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyMDUzMjczOiBmcm9tIG5hcmVuZHJhX2tfZGVsbCB0byBpbWxwZW1lbnQKICAgdGhlIGV0aGVybGlrZSBtaWIgKGF0IGxlYXN0IG9uIGxpbnV4KQoKMjAwOS0wNC0yMyAxNjozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDIxMzY0Mzc6IG1ha2UgRkxBRyBkZWZpbmVzIG1vcmUgNjRiaXQKICAgZnJpZW5kbHkgd2hlbiBodWdlIHRhYmxlcyBhcmUgZW5jb3VudGVyZWQKCjIwMDktMDQtMjMgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jOgoKICAgQ0hBTkdFUzogaHB1eDogUEFUQ0g6IDIwODg3MjY6IGZyb20gcmF2aW5kcmExMTAzIHRvIGZpeCBhbiBpc3N1ZQogICB3aXRoIGhwdXggcmVwb3J0aW5nIG1lbW9yeSBpbiBuZWdhdGl2ZSB2YWx1ZXMuCgoyMDA5LTA0LTIzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMDc0ODE3OiBmcm9tIGZlbm5lciB0byBmaXggcmVnZXhwIGVuZ2luZQogICBDUFUgcGVyZm9ybWFuY2UgaXNzdWVzCgoyMDA5LTA0LTIzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjE2MjY1MjogcGF0Y2ggdG8gZml4IHNpbXBsZSBocmZzIGNoZWNrcwogICB3aGVuIE5GUyBpcyBpbiB1c2UuCgoyMDA5LTA0LTIzIDE2OjExICBoYXJkYWtlcgoKICAgKiAgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9Gb3JtYXQucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIxODIwNzk6IGFwcGx5IHBhdGNoIGZyb20gaW50MzIgdG8gZml4IGEKICAgbnVtYmVyIG9mIHBlcmwgd2FybmluZ3MgYW5kIGZpeCB0aGUgbW9kdWxlcyBzbyB0aGF0IHVzZSBzdHJpY3QgaXMKICAgcG9zc2libGUKCjIwMDktMDQtMjMgMTU6NTggIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIAogICAgICAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjE4NDAzOTogbWlzYyBmaXhlcyBmb3IgZnJlZWluZyBtZW1vcnkKICAgZHVyaW5nIGVycm9yIGNvbmRpdGlvbnMuCgoyMDA5LTA0LTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMzYxNzEyOiBmcm9tIGticmludCB0byBmaXggZ2V0YnVsawogICBvcHRpbWl6YXRpb24gZHVyaW5nIHdhbGtzIHdoZXJlIGVuZCBjb25kaXRpb25ucyBhcmUgbWV0IG9uIG1pZGRsZQogICBPSURzIGZpcnN0LgoKMjAwOS0wNC0yMyAxNTozNSAgYWxleF9iCgogICAqIFJFQURNRToKCiAgIFJFQURNRSBUaGFua3MgdXBkYXRlCgoyMDA5LTA0LTIzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIFR1c2hhciBHb2hhZCB0byBjbGVhbiB1cCBub3RpZmljYXRpb24KICAgcmVnaXN0ZXJhdGlvbnMgZHVyaW5nIGRpc21hbiBldmVudCBtaWIgY2xlYW51cCBwcm9jZXNzaW5nLgoKMjAwOS0wNC0yMyAxNDo1NSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gU0NUUCBjb250YWluZXJzLgoKMjAwOS0wNC0yMyAwODoyOSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV0c25tcF9sYXJnZV9mZF9zZXQgaXMgcHJvYmFibHkgYmVzdCByZWdhcmRlZCBhcyBhbiAib3BhcXVlIgogICBkYXRhCiAgIHN0cnVjdHVyZSwgYW5kIGlzbid0IHJlYWxseSBpbnRlbmRlZCBmb3IgZGlyZWN0IG1hbmlwdWxhdGlvbi4KICAgTW92ZSBpdCBiYWNrIGludG8gdGhlIDxsaWJyYXJ5L2xhcmdlX2ZkX3NldC5oPiBoZWFkZXIgZmlsZS4KICAgKExpa2UgaXQgd2FzIGJlZm9yZSBEYXZlIHN0dWNrIGhpcyBvYXIgaW4uLi4uKQoKMjAwOS0wNC0yMyAwODoxOSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGdWVydGhlciBpbXByb3ZlbWVudHMgdG8gdGhlIGxhcmdlIEZEIHNldCBzdXBwb3J0CiAgIChTZWUgcGF0Y2ggIzI3NzI3ODcpCgoyMDA5LTA0LTIzIDA2OjQ1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmg6CgogICBidWlsZGluZzogVXNlIGNvbmZpZ19lcnJvciguLi4pIGluc3RlYWQgb2YKICAgY29uZmlnX3JlcXVpcmUobm9uLWV4aXN0aW5nKSB0byBnZXQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgoKMjAwOS0wNC0yMyAwNjo0MSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5oOgoKICAgc25tcGxpYiwgTGludXg6IE1vdmUgZ2V0X3BpZF9mcm9tX2lub2RlIHRvIGl0J3Mgb3duIGZpbGUgYW5kIG9ubHkKICAgY29tcGlsZSBpdCBpZiBuZWVkZWQsIGFsc28gcmVuYW1lIGl0IHRvCiAgIG5ldHNubXBfZ2V0X3BpZF9mcm9tX2lub2RlLgoKMjAwOS0wNC0yMyAwNDozMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9zbm1wZC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDMxMzUzIGZyb20gaG5yb3NlIHRvIG1ha2Ugc29tZSBDKysKICAgY29tcGlsZXJzIGhhcHBpZXIKCjIwMDktMDQtMjMgMDM6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI1MDU0ODg6IGZyb20gZGFib2tleSB0byBmaXggYWxhcm1zIG5vdAogICBiZWluZyB0cmlnZ2VyZWQgYXQgdGhlIHJpZ2h0IHRpbWVzIGR1ZSB0byBsYXJnZSBjbG9jayBza2V3cy4KCjIwMDktMDQtMjMgMDA6MDEgIGhhcmRha2VyCgogICAqICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBORVdTOiBzbm1wbmV0c3RhdDogUEFUQ0g6IDI1NjQ1Mzg6IGZyb20gYWhtYWtlIHRvIHN1cHBvcnQgR0VUQlVMSwogICBpbiB2MmMrIHNubXAgdmVyc2lvbnMKCjIwMDktMDQtMjIgMjM6NDkgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHBvcnRzOiBQQVRDSDogMjY4ODM0MjogZnJvbSBhaG1ha2UgdG8gZml4IHZhcmlvdXMKICAgY29tcGlsZXIgd2FybmluZwoKMjAwOS0wNC0yMiAyMzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyNzYzNzE6IGZyb20gZmhldyB0byBhbGxvdyBwZXJsIHRvIHVzZQogICBPUEFRVUVzCgoyMDA5LTA0LTIyIDIzOjE3ICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjc3NTgwMDogZnJvbSBBZGFtIFJvbWFuZWsgdG8gYWxsb3cKICAgcHl0aG9uIHRocmVhZGluZyB0byBjb250aW51ZSB3aGVuIGEgcmVxdWVzdCBpcyBzZW50CgoyMDA5LTA0LTIyIDIyOjExICBhbGV4X2IKCiAgICogUkVBRE1FLCBSRUFETUUud2luMzI6CgogICBVcGRhdGUgVEhBTktTIHNlY3Rpb24uCgoyMDA5LTA0LTIyIDIxOjIxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGb2xkIHRoZSBmdW5jdGlvbiBleHRyYWN0X2lub2RlLiB3aXRoIG9ubHkgb25lIHVzZXIsIGludG8gaXQncwogICB1c2VyLgogICBSZW1vdmUgdGhlICNkZWZpbmUgRklMRV9ESVNQLCB3aXRoIG9ubHkgb25lIHVzZXIsIHdpdGggdGhlIGFjdHVhbAogICB2YWx1ZS4KCjIwMDktMDQtMjIgMjE6MDMgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGggU01VWCBlbmFibGVkLgoKMjAwOS0wNC0yMiAxMzo0MyAganNhZnJhbmVrCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgQWRkIGEgbm90ZSBob3cgdGhlIG5ldyBSTU9OLU1JQiBpbXBsZW1lbnRhaW9uIHdvcmtzCgoyMDA5LTA0LTIyIDEzOjQxICBkdHMxMgoKICAgKiBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBGaWxsIG91dCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgVmFyYmluZC1yZWxhdGVkIEFQSSBjYWxscy4KCjIwMDktMDQtMjIgMTM6MzcgIGpzYWZyYW5lawoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3Jtb24tbWliLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi5oLCBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2VzcywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX3NldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2VudW1zLmgsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfb2lkcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyMTAzNDkyOiBpbXBsZW1lbnQKICAgUk1PTi1NSUI6OmV0aGVyU3RhdHNKYWJiZXJzCiAgIFBhdGNoIGZyb20gTmFyZW5kcmEgSy4sIFNhbmRlZXAgSy4gU2hhbmRpbHlhIGFuZCBTaHlhbSBJeWVyCgoyMDA5LTA0LTIyIDEwOjA4ICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIENvcnJlY3QgYSBzZXJpb3VzbHkgbWlzbGVhZGluZyAoaS5lLiB3cm9uZykgZGVzY3JpcHRpb24gb2YgdGhlCiAgIHB1cnBvc2UKICAgYW5kIGJlaGF2aW91ciBvZiB0aGUgcHJpbnRfZGVzY3JpcHRpb24gZmFtaWx5IG9mIGNhbGxzLgoKMjAwOS0wNC0yMiAwOTozMiAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBGdXJ0aGVyIHBvbGlzaGluZyBvZiB0aGUgZGVzY3JpcHRpb25zIG9mIE1JQi1yZWxhdGVkIEFQSSBjYWxscy4KCjIwMDktMDQtMjIgMDc6MzkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bm5lY2Vzc2FyeSByYW5nZSBjaGVja3MuCiAgIChUaGVzZSBhcmUgaGFuZGxlZCB3aXRoaW4gdGhlIGxhcmdlX2ZkX3NldCByb3V0aW5lcyB0aGVtc2VsdmVzKS4KCjIwMDktMDQtMjEgMjM6MjcgIGFsZXhfYgoKICAgKiAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgd2luMzI6IEZpeCBXaW5kb3dzIGJ1aWxkIGVudmlyb25tZW50IHRvIHN1cHBvcnQgcGF0Y2ggMjc3Mjc4Ny4KCjIwMDktMDQtMjEgMTU6MzMgIGR0czEyCgogICAqICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2aXNlZCB2ZXJzaW9uIG9mIHBhdGNoICMyNzcyNzg3CgoyMDA5LTA0LTIxIDE1OjE1ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgCiAgICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgVW5kbyByZXZpc2lvbiAxNzUxNQogICAoYnJva2VuL2luY29tcGxldGUgcGF0Y2gpCgoyMDA5LTA0LTIxIDE0OjM3ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgCiAgICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI3NzI3ODc6IENsZWFuZXIgYXBwcm9hY2ggdG8gaGFuZGxpbmcKICAgbGFyZ2UgZmRfc2V0cy4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQmFydCBWYW4gQXNzY2hlLgoKMjAwOS0wNC0yMSAxNDozNCAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgUHJvcGVybHkgZ2VuZXJhdGUgbmV3IGNvcmUgQVBJIG1hbiBwYWdlcy4KCjIwMDktMDQtMjEgMDk6MzggIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oOgoKICAgRmlyc3QtY3V0IGF0IGlkZW50aWZ5aW5nIHRoZSBjb3JlIE5ldC1TTk1QIEFQSSBjYWxscy4KICAgTW92ZSB0aGVzZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSB0b3AtbGV2ZWwgaGVhZGVyIGZpbGVzLgoKMjAwOS0wNC0yMSAwOTozNiAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgICAKICAgICAgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc25tcF9hcGkuMy5kZWY6CgogICBSZW5hbWUgY29uZmlnL3Nlc3Npb24gQVBJIG1hbiBwYWdlcywgaW4gbGluZSB3aXRoIG90aGVyIGNvcmUgQVBJCiAgIHN0cnVjdHVyZS4KCjIwMDktMDQtMjEgMDk6MzIgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vc25tcF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIERvY3VtZW50IChvciByZXN0cnVjdHVyZSkgdGhlIGNvcmUgQVBJIGVsZW1lbnRzLgogICBBbGlnbiB0aGlzIG9yZ2FuaXNhdGlvbiB3aXRoIHRoZSBmaXJzdC1jdXQgcmVzdHJ1Y3R1cmluZwogICBvZiB0aGUgbWFpbiBoZWFkZXIgZmlsZXMuCgoyMDA5LTA0LTIwIDEwOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBTa2lwIGZpbGUgaGFuZGxlcyB0aGF0IGFyZSB0b28gbGFyZ2UgZm9yIGZkX3NldCB0byBjb3BlIHdpdGguCiAgIEEgc2ltcGxlIGZpeCBmb3IgdGhlIGltbWVkaWF0ZSBwcm9ibGVtIGFkZHJlc3NlZCBieSBwYXRjaAogICAjMTYyNzA0OS4KCjIwMDktMDQtMjAgMTA6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnQgcGF0Y2ggIzE2MjcwNDkgKGV4dGVuc2lvbiB0byBkZWFsIHdpdGggbGFyZ2UgZmlsZQogICBoYW5kbGVycykuCiAgIFNlZSB0aGUgZGlzY3Vzc2lvbiBvbiB0aGF0IHRyYWNrZXIgZW50cnkgZm9yIGJhY2tncm91bmQgYXMgdG8KICAgd2h5LgoKMjAwOS0wNC0yMCAwMDo1OSAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgcGVybC9hZ2VudC9hZ2VudC54cywgICAKICAgICAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAKICAgICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgd2luMzI6IEJ1aWxkIGZpeGVzIGZvciBXaW5kb3dzLiBwYXNzIGFuZCBwYXNzX3BlcnNpc3Qgc3RpbGwgbmVlZAogICB0byBiZSBmaXhlZCB0byBzdXBwb3J0IENvdW50ZXI2NCBvbiBXaW5kb3dzLgoKMjAwOS0wNC0yMCAwMDo0OCAgYWxleF9iCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB3aW4zMjogU3luYyBuZXQtc25tcC1jb25maWcuaC5pbiBhbmQgbmV0LXNubXAtY29uZmlnLmgKCjIwMDktMDQtMTcgMjE6MjEgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgbHRtYWluLnNoLCBtNC9saWJ0b29sLm00LCAKICAgICAgICBtNC9sdG9wdGlvbnMubTQsIG00L2x0c3VnYXIubTQsIG00L2x0dmVyc2lvbi5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBVcGdyYWRlIGxpYnRvb2wgdmVyc2lvbiB0byAyLjIuNiBpbiBvcmRlciB0byB3b3JrCiAgIGFyb3VuZCBhIGJ1Z2xldCB0aGF0IG1hZGUgYXV0b3JlY29uZiAtdmlmIGVyYXNlIGNvbmZpZy5zdWIgYW5kCiAgIGNvbmZpZy5ndWVzcy4KCjIwMDktMDQtMTQgMjE6NTkgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTk3Njc3MjogQ2hhbmdlZCB0aGUgbWliIHBhcnNlciB0byBoYW5kbGUKICAgbG9uZyBiaW5hcnkgYW5kIGhleCBzdHJpbmdzLgoKMjAwOS0wNC0xMSAxMjo1MiAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgc3VnZ2VzdCB0cnVuY2F0aW9uIG9mIENoYW5nZUxvZy5yZWFsbHlhZGQKCjIwMDktMDQtMTAgMjM6MTggIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBQQVRDSCAyNjkxODc2OiBBcHBsaWVkIHBhdGNoIGJ5IHJkaWV6IHRvIGFsbG93CiAgIGNvbXBpbGluZyB0aGUgc2VydmljZXMgdXNpbmcgdW5pY29kZS4KCjIwMDktMDQtMTAgMjI6NTUgIGFsZXhfYgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgV2luMzI6IFBBVENIIDI2ODgzMDk6IEFwcGxpZWQgcGF0Y2ggYnkgQmFydCBWYW4gQXNzY2hlIHRvIHJlbW92ZQogICBNU1ZDIDIwMDUvMjAwOCBjb21waWxlciB3YXJuaW5ncy4KCjIwMDktMDQtMTAgMjE6NDUgIGFsZXhfYgoKICAgKiAgd2luMzIvQ29uZmlndXJlLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsICAgCiAgICAgIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIFdpbjMyOiBNaW5vciBidWlsZCBhbmQgcmVhZG1lIHVwZGF0ZXMuCgoyMDA5LTA0LTEwIDIxOjM4ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBORVdTOiBXaW4zMjogUEFUQ0ggMjY4NjI0ODogQXBwbGllZCBwYXRjaCBieSBCYXJ0IFZhbiBBc3NjaGUKICAgd2hpY2ggZml4ZXMgc2V2ZXJhbCB3aW5FeHRETEwgYnVncy4KCjIwMDktMDQtMTAgMjA6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlc3RvcmUgYW5ub3lpbmcgbG9nIG1lc3NhZ2UsIGJ1dCBmaXggY2F1c2Ugb2YgaXQgb24gIWZyZWVic2QKICAgc3lzdGVtcwoKMjAwOS0wNC0wOSAxMjoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTUwNzMwOiBSZXBvcnQgZXJyb3JzIGZyb20gaXRlcmF0b3ItYmFzZWQKICAgaGFuZGxlcnMuCiAgIEJhc2VkIG9uIGEgcGF0Y2ggcHJvdmlkZWQgYnkgV2F5bmUgR2xhbnR6CgoyMDA5LTA0LTA5IDExOjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyMTI0Mjg4OiBGaXggc2V0dGluZyBvZgogICB1c21Vc2VyUHJpdlByb3RvY29sIGF0IGNyZWF0aW9uLgogICBMb2dpYyBidWcsIHJlcG9ydGVkIGJ5IFJhbWVzaCBLb3RhYmFnaQoKMjAwOS0wNC0wOSAwOToxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjI1ODIyOTogUmVtb3ZlIG1pc2xlYWRpbmcgY29tbWVudAogICBQYXRjaCBwcm92aWRlZCBieSBEYW4gQW5kZXJzb24KCjIwMDktMDQtMDkgMDk6MDggIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyMjYwODI4OiBGaXggcHl0aG9uIHNubXB3YWxrIG1lbW9yeSBsZWFrCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEdhYnJpZWxlIE1lc3NpbmVvCgoyMDA5LTA0LTA5IDA4OjU4ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjI3MjM0NzogSW1wbGVtZW50ICJpbXBsaWVkIiBpbiBNSUIgaGFzaAogICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKMjAwOS0wNC0wOSAwODo1NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMjMxNjEyNzogRml4IGJ1ZyBpbiBpdGVyYXRlX2FjY2VzcwogICBnZW5lcmF0ZWQgY29kZS4KCjIwMDktMDQtMDkgMDg6NDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDM1NjgxOiBFbmFibGUgaWYtbWliIHJld3JpdGUgKHdpdGgKICAgc3lzY3RsIGJhY2tlbmQpIG9uIE5ldEJTRAoKMjAwOS0wNC0wOSAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQzNTc5MzogU3VwcG9ydCA2NC1iaXQgSUYtTUlCIGNvdW50ZXJzIG9uCiAgIHN5c2N0bCAoKkJTRCkgc3lzdGVtcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgSmFuIEFuZHJlcwoKMjAwOS0wNC0wOSAwODowMCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzCgoyMDA5LTA0LTA4IDIzOjE3ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBtb3ZlIGNvbW1lbnRzIHRvIGEgcGxhY2Ugd2hlcmUgdGhleSBhcmUgbGVnYWwKCjIwMDktMDQtMDggMjM6MDMgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIC0gcmVuYW1lIG5ldyBnZXRSZXF1ZXN0b3JJcCB0byBnZXRTb3VyY2VJUCBhbmQgZ2V0VGFyZ2V0SXAgdG8KICAgZ2V0RGVzdElwCiAgIC0gcmVtaW5kIHRoYXQgdGhpcyBpcyBmdWxseSB0cmFuc3BvcnQtc3BlY2lmaWMsIGkuZS4gVURQL0lQdjQKICAgb25seSEKCjIwMDktMDQtMDggMTY6MDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjM4NDc3OTogRml4IGhhbmRsaW5nIG9mIEdldEJ1bGsgd2l0aAogICBOPjAsTT09MAogICBQYXRjaCBwcm92aWRlZCBieSBBbmd1cyBTYWxrZWxkCgoyMDA5LTA0LTA4IDE1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MDYzNzg6IEZpeCBoclNXUnVuUGVyZk1lbSBvbiA2NC1iaXQKICAgU29sYXJpcyBzeXN0ZW1zCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE5Ud29PCgoyMDA5LTA0LTA4IDE1OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI0Nzk3MDA6IEZpeCB6b25lZCBJUCBhZGRyZXNzIHVzZWQgYXMKICAgdGFibGUgaW5kaWNlcwogICBQYXRjaCBwcm92aWRlZCBieSBCcmlhbiBSZXRmb3JkLgoKMjAwOS0wNC0wOCAxNTozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNDkyMzc3OiBGaXggdHlwby9idWcgaW4KICAgc25tcF9lbmFibGVfY2FsbGJhY2soKQogICBSZXBvcnRlZCBieSBqb3ljZWFubWFjaGluZQoKMjAwOS0wNC0wOCAxNToyOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2ZyZWVic2QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjUwNzI0OTogc2N0cC1taWIgc3VwcG9ydCBmb3IgRnJlZUJTRC4KCjIwMDktMDQtMDggMTU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNTM4MTY5OiBQcmV2ZW50IGluZmluaXRlIHJldHJpZXMgZm9yIGFuCiAgIGludmFsaWQgZXJyb3ItaW5kZXguCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERvdWcgTWFubGV5CgoyMDA5LTA0LTA4IDE0OjU4ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjU4MDk3OTogRml4IHB5dGhvbiBzZXNzaW9uIHBvaW50ZXJzIG9uCiAgIDY0LWJpdCBzeXN0ZW1zLgogICBQYXRjaCBwcm92aWRlZCBieSBKb2huIEtodmF0b3YuCgoyMDA5LTA0LTA4IDE0OjQ5ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIOiAyNjY3NDE1OiBTdXBwb3J0ICJVc2VOdW1lcmljIiBvcHRpb24uCiAgIFJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IGluICJzbm1wd2FsayIgY29tbWFuZC4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgRGllZ28gQmlsbGkKCjIwMDktMDQtMDggMTQ6MzQgIGR0czEyCgogICAqICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDI3MjYzMDI6IFBhc3MgcmVzdWx0cyBvZiBQZXJsIHRyYXAKICAgaGFuZGxlcnMgdG8gdHJhcCBkYWVtb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWljaGFlbCBTY2htaXR6CgoyMDA5LTA0LTA4IDE0OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNzEzODQxOiBGaXggcnVudGltZSBlcnJvcnMgdHJpZ2dlcmVkIGJ5CiAgIGhpZ2gtQVNDSUkgY2hhcnMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCgoyMDA5LTA0LTA4IDE0OjI0ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDI3MDk3MDU6IFJldHJpZXZlIHNyYy90YXJnZXQgSVAgYWRkcmVzcyBpbgogICBQZXJsLWJhc2VkIGFnZW50cwogICBQYXRjaCBwcm92aWRlZCBieSBmaGV3CgoyMDA5LTA0LTA4IDE0OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjY4OTM2MjogRml4IGhhbmRsaW5nIG9mIElQdjYgaG9zdG5hbWVzLgogICBQYXRjaCBwcm92aWRlZCBieSBOZXN0b3IgTWVsby4KCjIwMDktMDQtMDggMTQ6MDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDI2ODgzNDU6IEZpeCBuZXRzbm1wX2Fzc2VydCgpIGZvciBWaXN1YWwKICAgU3R1ZGlvCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJhcnQgVmFuIEFzc2NoZQoKMjAwOS0wNC0wOCAxMzozNSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjY4NjI4MDogUmVwb3J0IGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIGFzCiAgIGFuIGVycm9yIChyYXRoZXIgdGhhbiBhIGZhaWxlZCBhc3NlcnRpb24pLgogICBGaXggcHJvdmlkZWQgYnkgQmFydCBWYW4gQXNzY2hlCiAgIAogICBRbjogRG9lcyB0aGlzIGV2ZW4gcXVhbGlmeSBhcyBhbiBlcnJvcj8gV291bGRuJ3QgYSB3YXJuaW5nIGJlCiAgIHN1ZmZpY2llbnQ/CgoyMDA5LTA0LTA2IDE5OjMzICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgc25tcGxpYjogTWFrZSB0aGUgbm9kZSBzdHJ1Y3QgcHJpdmF0ZS4gSGlkZSB0aGUgb3JoYW5fbm9kZXMKICAgdmFyaWFibGUuCgoyMDA5LTA0LTA2IDE4OjQ1ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIHNubXBkLHBlcmw6IElmIG15X3BlcmwgaXMgTlVMTCB3aGVuIHBhc3NlZCB0byBwZXJsX2Rlc3RydWN0IHRoZW4KICAgdGhhdCBmdW5jdGlvbiBjcmFzaGVzIGZvciBzb21lIHBlcmwgdmVyc2lvbnMgc28gY2hlY2sgdGhhdCBpdCBpcwogICBub24tbnVsbCBiZWZvcmUgZGVzdHJveWluZyBpdC4KCjIwMDktMDQtMDYgMTg6NDIgIG1hZ2ZyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBwZXJsOiBBdm9pZCBzdXJwcmlzZXMgaWYgdGhlIHBlcmwgc3RyaW5nIGNvbnRhaW5zIHByaW50ZiBlc2NhcGUKICAgY2hhcmFjdGVycy4KCjIwMDktMDQtMDYgMTg6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFByb3BlciBjaGVjayBmb3IgZW1wdHkgcHJvY2VzcyBzdGF0dXMgZmlsZS4KICAgKEF2b2lkcyB0cnVuY2F0ZWQgd2FsayBvZiBoclNXUnVuUGF0aCBvbiBTdVNFIHN5c3RlbXMpCiAgIFJlcG9ydGVkIGJ5IEthbWlsIEtpc2llbC4KCjIwMDktMDQtMDYgMTE6NTggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54cywgcGVybC9hZ2VudC90eXBlbWFwOgoKICAgQ0hBTkdFUzogcGVybDogQlVHIDE1NTQ4MTc6IGZyb20geGFuY286IHJldmlzZWQgZml4IGZvciB0aGUgY2xhc3MKICAgYXNzaWdtZW50IHNvCiAgIGdldFJvb3RPSUQgd29ya3MgcHJvcGVybHkuIE5vdyBwYXNzZXMgIm1ha2UgdGVzdCIgYW5kICJtYWtlCiAgIHBlcmx0ZXN0Ii4KCjIwMDktMDQtMDUgMTA6MDUgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDktMDQtMDUgMDk6NTMgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIE1ha2UgZXZlbiBtb3JlIHZhcmlhYmxlcyBhbmQgdGVtcGxhdGVzIGNvbnN0LgoKMjAwOS0wNC0wNCAyMjoxMyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5oOgoKICAgc25tcGQ6IE1ha2UgbW9yZSBsb2NhbCB2YXJpYWJsZXMgY29uc3QgYW5kIGxvY2FsLgoKMjAwOS0wNC0wNCAxMDowNyAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywgbmV0LXNubXAtY29uZmlnLmluOgoKICAgTWFyayB0aGUgcmVjb25maWcgdmFyaWFibGUgYXMgc3RhdGljIHNpbmNlIGl0IGlzIHByaXZhdGUgdG8gdGhlCiAgIG1vZHVsZS4KCjIwMDktMDQtMDQgMTA6MDMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgTWFyayB0aGUgZmlsZSBzY29wZSBwcml2YXRlIHZhcmlhYmxlIG1pbmltdW1fc3dhcCBhcyBzdGF0aWMuCgoyMDA5LTA0LTA0IDA5OjU4ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgc25tcGxpYjogTWFrZSBtb3JlIHN5bWJvbHMgY29uc3QgaW4gb3JkZXIgdG8gbW92ZSB0aGVtIHRvCiAgIHJlYWRvbmx5IG1lbW9yeS4KCjIwMDktMDQtMDIgMjE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IEJVRyAxMTI2OTQ6IFBhdGNoIGZyb20gQmlsbCBGZW5uZXI6IGRvbid0IG9wZW4gKGFuZAogICBjbG9iYmVyKSBhbiBhZ2VudHggc29ja2V0IGlmIHRoZSBvdGhlciB0cmFuc3BvcnRzIGZhaWwgdG8gb3BlbgoKMjAwOS0wNC0wMSAyMzo0MSAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA0LTAxIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wNC0wMSAyMzowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA0LTAxIDIzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICBjb252ZXJ0IGNvbW1lbnRzIHRvIEFOU0kgY29tbWVudHMKCjIwMDktMDQtMDEgMjI6MjEgIGhhcmRha2VyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wNC0wMSAyMjowMyAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9tYWtlcmVsZWFzZS54bWwsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNCAtPiBWNS41LnByZTEKCjIwMDktMDQtMDEgMjE6NTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC44LmRlZjoKCiAgIHVwZGF0ZXMgZm9yIFNTSAoKMjAwOS0wNC0wMSAxOTozOSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgdGhlIHNyYyBwb2ludGVyIG9mIHNubXBfY2xvbmVfbWVtIGEgcG9pbnRlciB0byBjb25zdGFudC4KCjIwMDktMDQtMDEgMTg6MjMgIGhhcmRha2VyCgogICAqIGFwcHM6CgogICBpZ25vcmUgJ3NzaHRvc25tcCcKCjIwMDktMDQtMDEgMTc6MzEgIGhhcmRha2VyCgogICAqICBhcHBzL3NzaHRvc25tcC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBtYW4vc25tcGQuOC5kZWYsIHNubXBsaWIvc25tcFNTSERvbWFpbi5jOgoKICAgTWFrZSBzc2ggdHJhbnNwb3J0IHN1cHBvcnQgdXNlIGEgdW5peCBzb2NrZXQgd2l0aCBwcm9wZXIKICAgY3JlZGVudGlhbCBwYXNzaW5nCgoyMDA5LTA0LTAxIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBtYWtlIHRoZSBleGVjIGNhY2hlIHJlYWRhYmxlIG9ubHkgYnkgdGhlIHVzZXIKCjIwMDktMDQtMDEgMTc6MjggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBtb3ZlIHN0cmluZyB0byB1aWQvZ2lkIGZ1bmN0aW9uYWxpdHkgdG8gc25tcGxpYiBmb3IgcmV1c2UKCjIwMDktMDMtMzEgMTU6MTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEJhbGFuY2UgcGFyZW50aGVzZXMgaW4gY2FjaGUtYmFzZWQgcmVnaXN0cmF0aW9uIGNvZGUuCgoyMDA5LTAzLTMxIDE1OjA3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCdXQgdGhleSdyZSBub3QgQyBjb21tZW50cyBhdCBhbGwsIERhdmUuCiAgIFRoZXkgYXJlIG1pYjJjIHRlbXBsYXRlIGNvbW1lbnRzLAogICBhbmQgc2hvdWxkIGJlIG9taXR0ZWQgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvZGUuCiAgIDxzaWdoPgoKMjAwOS0wMy0zMSAxNTowMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQyBjb21tZW50cyB1c2UgLyogLi4uICovLCBub3QgIwoKMjAwOS0wMy0zMSAwODowNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aXRoIGdsaWJjIDwgMi40LCBJQ01QdjYgbWVzc2FnZSB0eXBlcyBzdGFydGluZwogICB3aXRoIE1MRF8qIGhhdmUgZGlmZmVyZW50IG5hbWUgdGhlcmUuCgoyMDA5LTAzLTI0IDA2OjA0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRG8gbm90IGNvbXBpbGUgdGhlIHBhcnRzIHRoYXQgZGVwZW5kIG9uIGxpYnNzbCBpZiBsaWJzc2wgaXMKICAgbWlzc2luZy4KCjIwMDktMDMtMjMgMDk6MjEgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIE5FV1M6IHNubXBkOiBpcE5ldFRvUGh5c2ljYWxMYXN0VXBkYXRlZCBPSUQgaW1wbGVtZW50ZWQKICAgCiAgIFRoZSB2YWx1ZSBpcyBlc3RpbWF0ZWQgd2l0aCBldmVyeSBjYWNoZSByZWxvYWQsIHdoaWNoIGlzIG9uY2UgaW4KICAgNjAgc2Vjb25kcyBieSBkZWZhdWx0LgogICBUaGF0IG1lYW5zIHRoZSB2YWx1ZSByZXBvcnRlZCBieSBzbm1wZCBtYXkgZGlmZmVyIGZyb20gcmVhbGl0eSBieQogICBvbmUgbWludXRlLgogICBJZiBhbnlib2R5IG5lZWRzIGJldHRlciBwcmVjaXNpb24sIHRoZSBjYWNoZSB0aW1lb3V0IGNhbiBiZQogICBjb25maWd1cmVkIGJ5IHNldHRpbmcKICAgTkVULVNOTVAtQUdFTlQtTUlCOjpuc0NhY2hlVGltZW91dC4xLjMuNi4xLjIuMS40LjM1IHRvCiAgIGFwcHJvcHJpYXRlIHZhbHVlIGJ5IHNubXBzZXQuCgoyMDA5LTAzLTIwIDE5OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L2V4dHJhY3RuZXdzOgoKICAgZml4IGxhY2sgb2Ygd3JhcHBpbmcgbGluZXMgcHJvYmxlbQoKMjAwOS0wMy0yMCAxODozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGNvbmZpZyBvcHRpb25zLCBldGMsIGZvciBTU0ggYW5kIERUTFMKCjIwMDktMDMtMjAgMTg6MjQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWY6CgogICBjdXJyZW50bHkgbWluaW1hbCBkb2N1bWVudGF0aW9uIG9uIGR0bHMgYW5kIHNzaAoKMjAwOS0wMy0yMCAxNjo1MCAgaGFyZGFrZXIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc3NodG9zbm1wLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBBZGRlZCBhbHBoYSBzbm1wIG92ZXIgc3NoIHN1cHBvcnQKCjIwMDktMDMtMjAgMTY6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNoZWNrIHRoZSBzZWMgbmFtZSBsZW5ndGgsIG5vdCBqdXN0IHRoZSBjb250ZW50cwoKMjAwOS0wMy0yMCAxNjowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBzZXF1ZW5jZSBwYXJzaW5nIGZpeAoKMjAwOS0wMy0yMCAxNTo1MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZGVkIGEgbmV3IGZsYWcgdG8gYWxsb3cgZm9yIHNpZ25hbGxpbmcgb2YgbGVnYWwgZW1wdHkgcGFja2V0cwogICBmcm9tIGEgdHJhbnNwb3J0CgoyMDA5LTAzLTE4IDE5OjQyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbXBpbGUgYWdhaW4uCgoyMDA5LTAzLTE4IDEwOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBjcHVfbGludXg6IGF2b2lkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDA5LTAzLTE4IDEwOjQzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBsaW51eDogaW5jcmVhc2Ugc2l6ZSBvZiBpbml0aWFsIHByb2MgaS9vIGJ1ZmZlcgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdzCgoyMDA5LTAzLTE4IDEwOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICBtZW1vcnlfbGludXg6IGF2b2lkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xOCAxMDoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRml4IHZhbGdyaW5kIHdhcm5pbmcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFN0ZXBoZW4gSGVtbWluZ2VyCgoyMDA5LTAzLTE3IDIyOjU3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgUEFUQ0g6IDI2ODgzNDI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IFVzZSBwcm9wZXIgZnVuY3Rpb24KICAgcG9pbnRlcnMKCjIwMDktMDMtMTMgMjE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUHJvY2VzcyBock1lbW9yeVNpemUgKHNjYWxhcikgc2VwYXJhdGVseSBmcm9tIGhyU3RvcmFnZVRhYmxlLgogICBUaGlzIHNpbXBsaWZpZXMgdGhlIGhhbmRsZXIgY29kZSBzdHJ1Y3R1cmUuCgoyMDA5LTAzLTEzIDIxOjIzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUmVnaXN0ZXIgQ1BVL21lbW9yeSBoYXJkd2FyZSBtb2R1bGVzIHdpdGgKICAgbnNDYWNoZVRhYmxlLgogICBBbGxvd3MgbW9uaXRvcmluZyBmcmVxdWVuY3kgdG8gYmUgY29uZmlndXJlZCBkeW5hbWljYWxseS4KCjIwMDktMDMtMTMgMjE6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXZvaWQgZGl2MCBjcmFzaC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBOaWNrIEhpbmRsZXkKCjIwMDktMDMtMTMgMjE6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIFNraXAgbmV3IENQVXMsIHRoYXQgaGF2ZSBhcHBlYXJlZCBzaW5jZSB0aGUgYWdlbnQgZmlyc3Qgc3RhcnRlZC4KICAgKEFuIGFsdGVybmF0aXZlIG1pZ2h0IGJlIHRvIGNyZWF0ZSBhIG5ldyBlbnRyeSBpbnN0ZWFkKS4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBOaWNrIEhpbmRsZXkKCjIwMDktMDMtMTAgMTU6MjUgIGpzYWZyYW5lawoKICAgKiBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIE5FV1M6IHNubXBkOiBpcEFkZHJlc3NTcGluTG9jayBpbXBsZW1lbnRlZAoKMjAwOS0wMy0wMiAxMToyMyAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIEZpeCBhdHRyaWJ1dGlvbiBvZiBsYXRlc3QgY29weXJpZ2h0IG5vdGljZS4KCjIwMDktMDItMjggMTg6MjEgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTW92ZSB0aGUgI2RlZmluZSBjb25maWdfKiguLi4pIGZyb20gYWNjb25maWcuaCB0byB0aGUgY29uZmlndXJlCiAgIHNjcmlwdCBzbyB0aGF0IHRoZXkgYXJlIG5leHQgdG8gdGhlIGNvZGUgdGhhdCBoYW5kbGUgdGhlCiAgIGNvcnJlc3BvbmRpbmcgY29uZmlnXyogdG9rZW4uCgoyMDA5LTAyLTI3IDEzOjIwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBHZXQgcmlkIG9mIGFubm95aW5nICdkaXNraW8uYzogZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIDkKICAgcmVxdWVzdCcgaW4gbG9nLgogICBJdCdzIGJlaW5nIHdyaXR0ZW4gdG8gbG9nIGV2ZXJ5dGltZSBzb21lb25lIHF1ZXJpZXMKICAgVUNELVNOTVAtRElTS0lPIE1JQi4KCjIwMDktMDItMjUgMDY6NDEgIG1hZ2ZyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIFVzZSB0aGUgZmVhdHVyZSB0ZXN0IG1hY3JvcyB0byBzZXQgd2hhdCBpcyBuZWVkZWQuCiAgIERvIG5vdCB1c2UgdGhlIGludGVybmFsIEdOVSBsaWJjIG1hY3JvcyB0aGF0IGFyZSBzZXQgYnkgc2V0dGluZwogICB0aGUgZmVhdHVyZSB0ZXN0IG1hY3Jvcy4KCjIwMDktMDItMjUgMDY6MzggIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGUuCgoyMDA5LTAyLTI0IDA3OjI2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogTWFrZSAtTE4gc3RvcCBkdW1waW5nIGNvcmUuIE1ha2UgYmFkIGRlYnVnIGxldmVscyByZXBvcnQKICAgdGhlIG9mZmVuZGluZyBzeW1ib2wuCgoyMDA5LTAyLTI0IDA2OjUwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgTW92ZSB0aGUgZGlyZWN0b3J5IGNyZWF0aW9uIGNvZGUgdG8gaGFwcGVuIGFmdGVyIHRoZSBkb21haW4KICAgc2VsZWN0aW9uIGNvZGUgc28gdGhhdCB0aGUgZGlyZWN0b3J5IGNyZWF0aW9uIGNvZGUga25vd3Mgd2hhdAogICBkaXJlY3RvcnkgdG8gY3JlYXRlLgoKMjAwOS0wMi0yNCAwNjo0NyAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENoYW5nZSB0aGUgZXJyb3IgY2hlY2tpbmcgb3B0aW9uIC0tZW5hYmxlLW15c3FsIHRvIHN1Z2dlc3QgdGhhdAogICB0aGF0IC0td2l0aC1teXNxbCBpcyB1c2VkIHJhdGhlciB0aGF0IC0td2l0aC1vcGVuc3NsLgoKMjAwOS0wMi0yNCAwNjo0NCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVnZW5lcmF0ZSBhdXRvY29uZiBhcnRpZmFjdHMuCgoyMDA5LTAyLTIzIDE4OjQzICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfc3FsLmM6CgogICBhZGQgZm9yZ290dGVuIGZpbGUKCjIwMDktMDItMjAgMDQ6NDEgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfaXB2Nl90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIGFkZGVkIGVtYWNzIGF1dG9jb25mIG1vZGUgc3BlY2lmaWVyCgoyMDA5LTAyLTE5IDE4OjMyICByc3RvcnkKCiAgICogUkVBRE1FLnNxbCwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbmV3IHNxbCB0cmFwIGxvZ2dpbmcKCjIwMDktMDItMTkgMTg6MjAgIHJzdG9yeQoKICAgKiAgQ09QWUlORywgTkVXUywgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwgY29uZmlndXJlLCAgCiAgICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGRpc3Qvc2NoZW1hLXNubXB0cmFwZC5zcWwsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBzbm1wdHJhcGQ6IGFkZCB0cmFwIGhhbmRsZXIgZm9yIGxvZ2dpbmcgdHJhcHMgdG8gYSBteXNxbAogICBkYXRhYmFzZQoKMjAwOS0wMi0xOSAxNzo1OCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgTkVXUzogc25tcGxpYjogYWRkZWQgaXRlcmF0b3IgZm9yIHNpbmdseSBsaW5rZWQgbGlzdHM7IGFkZAogICBjb250YWluZXIgbmFtZSBpbiBtb3JlIGVycm9yIG1zZ3MKCjIwMDktMDItMTggMTg6NTIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB1c20uYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogY2hhbmdlIE1BWF9FTkdJTkVJRF9MRU5HVEggdG8gMzIsIHBlcgogICBTTk1QLUZSQU1FV09SSy1NSUIgU25tcEVuZ2luZUlEIFRDCgoyMDA5LTAyLTE4IDE0OjQxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYzoKCiAgIENvbmZpZ3VyZSBzY3JpcHQgZG9lcyBub3QgbGlrZSBuZXQtc25tcC1jb25maWcuaCBiZWluZyBpbmNsdWRlZAogICBmcm9tIGhlYWRlcgogICBmaWxlcywgd2hpY2ggYXJlIGFkZGVkIGJ5IC0td2l0aC1taWItbW9kdWxlcz0sIGxldCdzIHJlbW92ZSBpdAogICBmcm9tIHRoZXJlLgoKMjAwOS0wMi0xNiAyMToyNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRyAxNTU0ODE3OiBQYXRjaCBmcm9tIHhhbmNvOiBmaXggdGhlIGNsYXNzCiAgIGFzc2lnbWVudCBzbyBnZXRSb290T0lEIHdvcmtzIHByb3Blcmx5LgoKMjAwOS0wMi0xNSAwNzoyMCAgbWFnZnIKCiAgICogYWNjb25maWcuaDoKCiAgIENvcnJlY3QgY29weS9wYXN0ZSBtaXN0YWtlCgoyMDA5LTAyLTEyIDAwOjI1ICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvc25tcHRzbS5jOgoKICAgQW4gZWFybHkgZXhwZXJpbWVudGFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEVExTIG92ZXIgVURQCiAgIHRyYW5zcG9ydCBmcm9tIHRoZSBJRVRGIElTTVMgd29ya2luZyBncm91cAoKMjAwOS0wMi0xMSAyMzozMCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHVwZGF0ZWQgcmVsZWFzZSBpbnN0cnVjdGlvbnMKCjIwMDktMDItMDYgMjE6MzYgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgYXMgQysrIGFnYWluLgoKMjAwOS0wMi0wNSAyMjo1NiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBBc3N1bWUgdGhhdCB0aGUgdGFyZ2V0IHBsYXRmb3JtIHN1cHBvcnRzIG1lbWNweSwKICAgbWVtbW92ZSwgbWVtc2V0LCBzdHJjaHIgYW5kIHN0cnJjaHIuCgoyMDA5LTAyLTA0IDA2OjU3ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NucHJpbnRmLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IFJlbW92ZSBzdXBwb3J0IGZvciB1c2Ugb2YgdmFyYXJncy5oLiBOb3cgYXNzdW1lcyB0aGF0CiAgIHN0ZGFyZy5oIGlzIGF2YWlsYWJsZS4KCjIwMDktMDItMDQgMDY6NDkgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3RyYXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHYzLmM6CgogICBORVdTOiBzbm1wbGliOiBJbnRyb2R1Y2UgcHJpbnRmLWxpa2UgdmVyc2lvbnMgb2YgY29uZmlnX3BlcnJvcgogICBhbmQgY29uZmlnX3B3YXJuIChuZXRzbm1wX2NvbmZpZ19lcnJvciBhbmQgbmV0c25tcF9jb25maWdfd2FybikuCiAgIFJlcGxhY2UgbWFueSBpbnN0YW5jZXMgb2YgeyB0bXBidWZbLi4uXTsgc3ByaW50Zih0bXBidWYsIC4uLik7CiAgIGNvbmZpZ19wKih0bXBidWYpOyB9IHdpdGggbmV0c25tcF9jb25maWdfKiguLi4pOwoKMjAwOS0wMi0wMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgYWRkIHRoZSByZWdpbmZvIGFuZCBhbmQgc2Vzc2lvbiBwb2ludGVyIHRvIHRoZSBSRUdJU1RFUl9PSUQKICAgY2FsbGJhY2sKCjIwMDktMDItMDMgMDA6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBmaXhlZCAtbHNzbCBjaGVjawoKMjAwOS0wMS0yOSAwODozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV0dXJuIGEgbGVzcyBtaXNsZWFkaW5nIGVycm9yIHdoZW4gYWRkaW5nIGFuIHVucmVjb2duaXNlZCB2YWx1ZS4KCjIwMDktMDEtMjggMTA6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IHNyYy9kc3QgY29uZnVzaW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEtyenlzenRvZiBPbOClhuCkheCkh5lkemtpCgoyMDA5LTAxLTI4IDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIENIQU5HRVM6IEZpeCB0d28gYnVncyB3aXRoIHNtdXggcGFzc3dvcmQgc3VwcG9ydC4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgS3J6eXN6dG9mIE9s4KWG4KSF4KSHmWR6a2kKCjIwMDktMDEtMjMgMTQ6NTMgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRml4IHBhcnNpbmcgb2YgbGV2ZWwgcmFuZ2VzIGluICctTDxjYXBpdGFsPicuCgoyMDA5LTAxLTIwIDE0OjUxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIDxycG0vcnBtZmlsZXV0aWwuaD4gYmVmb3JlIGluY2x1ZGluZwogICBpdC4KCjIwMDktMDEtMTkgMjA6NTAgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aG91dCBJUHY2IGFnYWluLgoKMjAwOS0wMS0xOSAxNTowMSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkyNzc1MTogZnJvbSBNaXRzdXJ1IENoaW5lbjogaW1wbGVtZW50CiAgIGljbXBNc2dTdGF0c1RhYmxlIG9uIExpbnV4CgoyMDA5LTAxLTE5IDA5OjQxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCAgIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDI0NDkyMTA6IGFkZCA2NC1iaXQgZGlzayB1c2FnZSBzdGF0aXN0aWNzIHRvCiAgIFVDRC1TTk1QLU1JQjo6ZHNrVGFibGUKCjIwMDktMDEtMTggMDc6NDAgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBCVUc6IDIxNjgxODA6IENoYW5nZWQgLS1kaXNhYmxlLXJlZW50cmFudCB0byBub3QKICAgYWN0aXZhdGUgdGhlIHJlZW50cmFudCBjb2RlIGFuZCBtYWRlIC0tZW5hYmxlLXJlZW50cmFudCBhY2NlcHQgbm8KICAgdmFsdWVzIG90aGVyIHRoYW4geWVzIGFuZCBuby4gRGlkIHRoZSBzYW1lIGZvcgogICAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNrcywgLS1lbmFibGUtbWliLWNvbmZpZy1kZWJ1ZywKICAgLS13aXRoLWRlZmF1bHRzLCAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIC0tZW5hYmxlLXRlc3RpbmctY29kZSBhcwogICB3ZWxsLgoKMjAwOS0wMS0xMyAwOToxNyAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ2hlY2sgZW5jb2Rpbmcgb2YgT0lEcy4KICAgCiAgIEJFUiBlbmNvZGVkIE9JRHMgc2hvdWxkIGhhdmUgaGlnaCBiaXQgY2xlYXIgaW4gdGhlIGxhc3QgYnl0ZSBvZgogICBlYWNoIHN1YmlkZW50aWZpZXIuIFRoaXMgaXMgbm93IGNoZWNrZWQgYW5kIHBhcnNpbmcgb2YgT0lEIGZhaWxzLAogICBpZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LgoKMjAwOS0wMS0xMSAyMTo1NCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBDaGVjayB0aGF0IHRoZSB0ZW1wLWZpbGUtcGF0dGVybiBlbmRzIGluIDYgWCdzCiAgIGFzIG1rc3RlbXAgYW5kIG1rdGVtcCByZXF1aXJlIHRoYXQuCgoyMDA5LTAxLTExIDIxOjM4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCZSBhIGxvdCBtb3JlIHN0cmljdCBvbiB0aGUgdmFsdWVzIHRoYXQgYXJlCiAgIGFjY2VwdGFibGUgZm9yIC0td2l0aC1wZXJzaXN0ZW50LW1hc2sgKG9ubHkgYWxsb3cgdGhyZWUgb2N0YWwKICAgZGlnaXRzKQoKMjAwOS0wMS0xMSAyMDo0MiAgbWFnZnIKCiAgICogIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIG00L25ldHNubXBfYXJnLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdlIGFyZSBjdXJyZW50bHkgdXNpbmcgdGhlIHByYWN0aWNlIG9mIGFkZGluZwogICBhIG1pcnJvcmluZyBBQ19BUkdfV0lUSC9FTkFCTEUgdG8gZWFjaCBBQ19BUkdfRU5BQkxFL1dJVEguIFRoaXMKICAgcGF0Y2ggYWRkcyBORVRTTk1QX0FSR19XSVRIL0VOQUJMRSBtYWNyb3MgdGhhdCBhdXRvbWF0aWNhbGx5IGFkZHMKICAgdGhlIG1pcnJvciB2YXJpYWJsZSBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgY29uZmlndXJlIG1hY2hpbmVyeSB0bwogICB1c2UgdGhlbS4KCjIwMDktMDEtMTEgMjA6MzYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNb3ZlIEFDX0RFRklORVMgaW4gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUgdG8gYmUgbG9jYXRlZCBuZXh0CiAgIHRvIHRoZSBBQ19BUkdfLi4uIHRoZXkgZGVwZW5kIG9uLgoKMjAwOS0wMS0xMSAyMDozNCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENoYW5nZSB0aGUgZGVmYXVsdCB2ZXJzaW9uIG51bWJlciBjaGVja2luZyB0byBiZSBlYXNpZXIgdG8gcmVhZAoKMjAwOS0wMS0xMSAxOToxOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNb3ZlIHRoZSBsYXN0IEFDX0FSR18uLi4ncyB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZS4KCjIwMDktMDEtMTEgMTk6MDggIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hhbmdlIHRoZSBtYWNybyBmb3IgLS13aXRoLWZlYXR1cmVzLW9mIGZyb20KICAgQUNfQVJHX0VOQUJMRSB0byBBQ19BUkdfV0lUSCBpbiBvcmRlciB0byBtYWtlIHRoZSBvcHRpb24gYmUKICAgLS13aXRoLWZlYXR1cmVzLW9mLgoKMjAwOS0wMS0wOCAxMDo0NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgYXBwczogUGFyc2VyIG9mIC1MUyBjb21tYW5kIGxpbmUgYXJndW1lbnQgbm93CiAgIGFjY2VwdHMgYm90aCAnLUxTIDxsZXZlbD4gPGZhY2lsaXR5PicgYW5kICctTFMKICAgPGxldmVsPjxmYWNpbGl0eT4nLgogICAKICAgQmVmb3JlIHBhdGNoICMxODA2MzM2IHRoZSBmaXJzdCBzeW50YXggd2FzIHRoZSBvbmx5IG9uZQogICBzdXBwb3J0ZWQuIFRoZSBwYXRjaAogICBjaGFuZ2VkIHRoZSBzeW50YXggdG8gdGhlIHNlY29uZCBvbmUsIGNhdXNpbmcgaW5jb21wYXRpYmlsaXRpZXMKICAgaW4gc3RhYmxlCiAgIGJyYW5jaGVzLiBXZSBub3cgc3VwcG9ydCBib3RoIG9mIHRoZW0uCgoyMDA5LTAxLTA4IDAzOjUxICBtYWdmcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBEbyBub3QgZGVwZW5kIG9uIHRoZSBleGlzdGFuY2Ugb2YgL2Jpbi9zaC4gQWxzbyBmb2xsb3cgdGhlIGFkdmljZQogICBvZiB0aGUgYXV0b2NvbmYgbWFudWFsIGFuZCBmaW5hbGx5IGFsbG93IGZvciBsaWJ0b29sIHRoYXQgYWRvcHRzCiAgIHRoZSBnZW5lcmF0ZWQgc2NyaXB0IGFmdGVyIHRoZSBjYXBhYmlsaXRpZXMgb2YgU0hFTEwuCgoyMDA5LTAxLTA3IDE2OjAyICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIFJlb3JkZXIgdGhlIG5ldGluZXQvaWNtcF92YXIuaCBhbmQgbmV0aW5ldC9pcF9pY21wLmgsIHRoZSBsYXRlcgogICBvbmUgbXVzdCBiZSBjaGVja2VkIGZpcnN0IG9uIEZyZWVCU0QgNwoKMjAwOS0wMS0wNiAyMjoyMyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHVwZGF0ZSBTUEFSVEEgZm9yIDIwMDkKCjIwMDktMDEtMDMgMjA6MjMgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgbTQvYWNfcHJvbXB0X3VzZXIubTQ6CgogICBVcGdyYWRlIHRoZSBBQ19QUk9NUFRfVVNFUiBtYWNyb3MgdG8gYXV0b2NvbmYgMi42MyB3aGVyZQogICBBQ19GRF9NU0cgaXMgZGVwcmVjYXRlZCBhbmQgQVNfTUVTU0FHRV9GRCBpcyByZWNvbW1lbmRlZC4KCjIwMDktMDEtMDMgMTQ6MjAgIG1hZ2ZyCgogICAqICBhY2luY2x1ZGUubTQsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgbTQvYWNfYWRkX3NlYXJjaF9wYXRoLm00LCAgIAogICAgICBtNC9hY19tc2dfY2FjaGUubTQsIG00L2FjX21zZ19tb2R1bGVfZGJnLm00LCAgIAogICAgICBtNC9hY19wcm9tcHRfdXNlci5tNCwgbTQvbmV0c25tcF9zZWFyY2hfbGlicy5tNDoKCiAgIFNwbGl0IGFjaW5jbHVkZS5tNCBpbnRvIHNtYWxsZXIgcGFydHMgYnkgZnVuY3Rpb24uCgoyMDA5LTAxLTAzIDE0OjE1ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5hbToKCiAgIE1ha2UgYXV0b3JlY29uZiB3b3JrIGFnYWluLgoKMjAwOS0wMS0wMyAxNDoxMSAgbWFnZnIKCiAgICogIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5zdGFsbC1zaCwgbHRtYWluLnNoLCBtNCwgCiAgICAgICAgbTQvbGlidG9vbC5tNCwgbTQvbHRvcHRpb25zLm00LCBtNC9sdHN1Z2FyLm00LCBtNC9sdHZlcnNpb24ubTQsIAogICAgICAgIG00L2x0fm9ic29sZXRlLm00OgoKICAgVXBkYXRlIHRvIGxpYnRvb2wtMi4yLjQKCjIwMDktMDEtMDMgMTM6MjggIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczogQ2hlY2sgZm9yIGEgZnVuY3Rpb24sIG5vdCBhIG1hY3JvLgogICBjb25maWd1cmU6IFJlZ2VuZXJhdGUKCjIwMDktMDEtMDMgMDE6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgcmVxdWlyZSAtbHNzbDsgd2lsbCBiZSBjaGFuZ2VkIGxhdGVyIHRvIGRvICdpZiBuZWVkZWQnCgoyMDA5LTAxLTAzIDAwOjE5ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVuaWZ5IGFsbCBzbm1wZCBzdGF0aXN0aWMgdmFyaWFibGVzIGFuZCBtYWtlIHRoZQogICBoYW5kbGVycyBpbnN0YW5jZXMgb2YgYSBjb21tb24gaGFuZGxlci4KCjIwMDktMDEtMDEgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgY2xlYW4gdXAgYSBmZXcgY29tbWVudHMgYW5kIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCjIwMDktMDEtMDEgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHZhcmlvdXMgbWlub3IgbWVtb3J5IGxlYWsgaXNzdWVzCgoyMDA5LTAxLTAxIDE0OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmMsIAogICAgICAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBvaWQgYXJndW1lbnRzIGZyb20gb2lkKiB0bwogICBjb25zdCBvaWQqLiBVcGRhdGUgbWliMmMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGNoYW5nZS4KCjIwMDktMDEtMDEgMTM6NTYgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENoZWNrIHJldHVybiB2YWx1ZXMgYW5kIGZyZWUgYWxsb2NhdGVkIHJlc291cmNlcyBvbiBlcnJvci4KCjIwMDktMDEtMDEgMTI6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIERvIG5vdCBsZWFrIGFsaWFzX2xpc3Qgb24gcmV0dXJuIGZyb20gX25leHRfYWxpYXMuCgoyMDA5LTAxLTAxIDExOjI2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBNYWtlIHZhcmlhYmxlIGNvbnN0IGFzIGl0IG5ldmVyIGlzIGNoYW5nZWQuCgoyMDA5LTAxLTAxIDExOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA4LTEyLTMxIDIxOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgdXNlIHRoZSBmdW5jdGlvbnMgaWYgd2UncmUgbm90IGxpbmtlZCB3aXRoIG9wZW5zc2wKCjIwMDgtMTItMzEgMjA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmM6CgogICBuZXdlciBwZXJsIGdlbmVyYXRlZCB1cGRhdGVzCgoyMDA4LTEyLTMxIDE4OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIGZldyBtb3JlIHJlY3Yvc2VuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwOC0xMi0zMSAxODowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBbGxvdyBxdW90ZWQgc2VjdXJpdHkgbmFtZXMgZm9yIG9uZXMgY29udGFpbmluZyBzcGFjZXMKCjIwMDgtMTItMzEgMTg6MDEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhbiBvcGVuc3NsIGluaXRpYWxpemF0aW9uIHdyYXBwZXIKCjIwMDgtMTItMzAgMDA6MDMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRlc3QuYywgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIFVzZSBzbm1wX2R1cGxpY2F0ZV9vYmppZCBpbnN0ZWFkIG9mIHZhcmlvdXMgbWFsbG9jK21lbWNweQogICB2YXJpYW50cyBpbiBvcmRlciB0byBtYWtlIGNsZWFyZXIgY29kZS4KCjIwMDgtMTItMjkgMjM6MzQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvYXNuMS5jOgoKICAgVXNlIGZvcm1hdCBzdHJpbmdzIGZvciBwcmludGYtbGlrZSBmdW5jdGlvbnMuCiAgIFByZWZlciBzdHJjcHkgb3ZlciBzcHJpbnRmKGRlc3QsICIlcyIsIHNyYykKICAgUHJlZmVyIERFQlVHTVNHVEwoKGZvcm1hdCwgYXJncykpIG92ZXIgc3ByaW50Zihsb2NhbCwgZm9ybWF0LAogICBhcmdzKTsgREVCVUdNU0dUTCgoIiVzIiwgbG9jYWwpKQoKMjAwOC0xMi0xOCAxNzowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZXhwb3J0IG91dCBvZiB0aGUgZmlsZSBzb21lIGhlbHBmdWwgZ2VuZXJpYyB1ZHAgZnVuY3Rpb25zCgoyMDA4LTEyLTE2IDAwOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIGNoYW5nZSBsb2NhbHNtIHNlY3VyaXR5IG1vZGVsIHRvIHRzbSAoYW5kIGFkZCAxKQoKMjAwOC0xMi0xNSAyMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jOgoKICAgUGF0Y2ggdG8gY2hhbmdlIGEgdHlwZWRlZiBuYW1lIGZyb20gbGluayB0byBub2RlbGluayB0byBhdm9pZAogICBuYW1pbmcgY29uZmxpY3QgaXNzdWVzLgoKMjAwOC0xMi0wOSAwMTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIHVzZSBpbnQzMl90IGluc3RlYWQgb2YgaW50XzMyIHdoaWNoIGRvZXNuJ3Qgd29yayBhdCBhbGwgb24gRjEwCgoyMDA4LTEyLTA5IDAxOjA3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIHRoZSBub3RlIHRoYXQgd2UgbW92ZWQgdG8gc3ZuLi4uIG9ic29sZXRlIGF0IHRoaXMgcG9pbnQsCiAgIHRvIHNheSB0aGUgbGVhc3QKCjIwMDgtMTItMDkgMDE6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoZSBUU00gaW1wbGVtZW50YXRpb24KCjIwMDgtMTItMDkgMDA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZmxhZyBzb21lIHN0ZXBzIGFuZCBtYW5kYXRvcnkKCjIwMDgtMTItMDkgMDA6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICByZW1vdmUgYWNjaWRlbnRpYWwgbmV3IGRlZmluZXMgdGhhdCBhcmVuJ3QgbmVlZGVkIHlldAoKMjAwOC0xMi0wOSAwMDo1NiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGxvY2Fsc20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgc25tcGxpYi9zbm1wbG9jYWxzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSBvbGRlciBsb2NhbHNtIHNlY3VyaXR5IG1vZGVsIGFuZCByZXBsYWNlIHdpdGggYSBuZXdlciBUU00KICAgYmFzZWQgb24gdGhlIHVwY29taW5nIElFVEYgc3BlYwoKMjAwOC0xMi0wOSAwMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGlzc3VlIHdpdGggY29udGV4dCBwcm9iaW5nCgoyMDA4LTEyLTA0IDEyOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERhZW1vbml6ZSBhZnRlciB0cmFuc3BvcnRzIGFyZSBjcmVhdGVkIGFuZCBsaXN0ZW5pbmcgc29ja2V0cyBhcmUKICAgYm91bmQgdG8gYXBwcm9wcmlhdGUgcG9ydHMuIFRoaXMgYWxsb3dzIHRvIGV4aXQgd2l0aCBub3plcm8gZXhpdAogICBjb2RlIHdoZW4gdGhlIGJpbmRpbmcgZmFpbHMuCgoyMDA4LTEyLTA0IDExOjQ0ICBqc2FmcmFuZWsKCiAgICogIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUHJpbnQgcG9ydHMgYXMgdW5zaWduZWQgbnVtYmVycy4KCjIwMDgtMTEtMjQgMTk6MDkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgX19FWFRFTlNJT05TX18gaXMgbm93IGhhbmRsZWQgYnkgY29uZmlndXJlCgoyMDA4LTExLTIyIDE4OjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgRG8gbm90IHRyeSB0byB1c2UgdGhlIG1vZHVsZSBsaXN0IGFzIGEgZmlsZSB0aGF0IHNob3VsZCBiZQogICBpbmNsdWRlZCBpbiB0aGUgYnVpbGQsIHRodXMgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uCiAgIFNvbGFyaXMuCgoyMDA4LTExLTIwIDIyOjMwICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCAKICAgICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVwbGFjZSBtZW1kdXAoKHVfY2hhcioqKSZ4LCAodV9jaGFyKil5LCB6ICogc2l6ZW9mKG9pZCkpIHdpdGggeAogICA9IHNubXBfZHVwbGljYXQKICAgZV9vYmppZCh5LCB6KSBzaW5jZSB0aGUgbGF0ZXIgaXMgZWFzaWVyIHRvIHJlYWQgYW5kIGV4cHJlc3NlcyB0aGUKICAgaW50ZW50aW9uIG9mIHQKICAgaGUgY29kZSBjbGVhcmVyLgoKMjAwOC0xMS0yMCAyMjowMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIG1lbW1vdmUgdG8gY29weSBvaWRzIGFzIGl0IGlzIGtub3duIHRoYXQKICAgdGhlIGFyZWFzIGFyZSBub25vdmVybGFwcGluZy4KCjIwMDgtMTEtMjAgMjA6NTEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgTWFrZSBsb2cgcmVmZXIgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoKMjAwOC0xMS0yMCAyMDo0NiAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IERvIG5vdCB1c2UgJW0gaW4gcHJpbnRmLWZvcm1hdHRlZCBzdHJpbmdzIHNpbmNlICVtIGluCiAgIHByaW50ZiBpcyBhIGdsaWJjIGV4dGVuc2lvbi4KCjIwMDgtMTEtMTYgMjI6MDEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIEJ1bXAgdGhlIHJlcXVpcmVkIGF1dG9jb25mIHZlcnNpb24gdG8gMi42MyBhcyBwZXIgMTczMDEuCgoyMDA4LTExLTE2IDIxOjU1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBSZW1vdmUgYW4gdW51c2VkIGZ1bmN0aW9uIGZyb20gdGhlIGNvbmZpZ3VyZSB0ZXN0IGZvciBfX2Z1bmNfXy4KCjIwMDgtMTEtMTYgMjE6NTEgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNNCB1c2VzIGRubCwgbm90IFwgZm9yIGxpbmUgY29uY2F0ZW5hdGlvbi4KICAgXCBpbnRyb2R1Y2VkIGEgc3B1cmlvdXMgZGVmaW5lIGluIG5ldC1zbm1wLWNvbmZpZy5oLmluLCB0aHVzIHRoaXMKICAgY2hhbmdlLgogICBSZXJhbiBhdXRvY29uZiBhbmQgYXV0b2hlYWRlci4KCjIwMDgtMTEtMTMgMjI6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBhdXRvY29uZiAyLjYzCgoyMDA4LTExLTEzIDAwOjMwICB0YW5kZXJzCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMjI1ODkzNTogUHl0aG9uIEV4dGVuc2lvbiBNb2R1bGUgZmFpbHMgb24KICAgU29sYXJpcwoKMjAwOC0xMS0xMyAwMDoyNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIGZpeCB0eXBvCgoyMDA4LTExLTEzIDAwOjI2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgZml4IHR5cG8KCjIwMDgtMTEtMTMgMDA6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIG1ha2Ugc2NyaXB0cyBleGVjdXRhYmxlCgoyMDA4LTExLTEyIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCB0eXBvL3NwZWxsaW5nIGluIGFuIGVtYmVkZGVkIHBlcmwgZXJyb3IgbWVzc2FnZQoKMjAwOC0xMS0xMSAxMzoxMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBjb21waWxhdGlvbiBvbiBvbGRlciBMaW51eGVzIHdpdGhvdXQgU1BFRURfMTAwMDAgYW5kCiAgIFNQRUVEXzI1MDAuCgoyMDA4LTExLTAxIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBORVdTOiBzbm1wZDogQXBwbHlpbmcgcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIGZpeCB0aGUKICAgZ2V0YnVsayBpc3N1ZSByZXBvcnRlZCBieSBPc2NhciBNaXJhLVNhbmNoZXoKCjIwMDgtMTAtMzAgMjI6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICByZW1vdmUgdGhlIG9sZGVyIChvYnNvbGV0ZSkgbWFrZXJlbGVhc2Ugc2NyaXB0CgoyMDA4LTEwLTIyIDE3OjI0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgdGhlIGxpYiB1c2luZyBhIEMrKyBjb21waWxlciBvbmNlIG1vcmUuCgoyMDA4LTEwLTIyIDA3OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEb24ndCBjbGVhciBzZXNzaW9uIGZsYWdzIHdoZW4gdGVzdGluZyBvbmUgYml0LgoKMjAwOC0xMC0yMSAyMToxMCAgbWFnZnIKCiAgICogIEFHRU5ULnR4dCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLCBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmYsICAgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvRkFRLmh0bWw6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMTczNzcyNzogZnJvbSBqb3ljZWFubWFjaGluZTogQWRkIGEKICAgTkVUU05NUF9PTERBUElfIHByZWZpeCB0byB0aGUgYWNjZXNzIG1hY3JvcyB0aGF0IGFyZSB1c2VkIGluIHRoZQogICBvbGQtYXBpIGhlbHBlci4KICAgSSBkaWQgYWRkIHRoZSBwcmVmaXggdG8gYWxsIHVzZXJzIGluIG91ciBjb2RlLgoKMjAwOC0xMC0yMSAyMTowMCAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIAogICAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAxNzM3NzI3OiBmcm9tIGpveWNlYW5tYWNoaW5lOiBSZXBsYWNlIGFsbCB1c2VzCiAgIG9mIE5FVFNOTVBfQ0xFQU5fTkFNRVNQQUNFIHdpdGggTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMKCjIwMDgtMTAtMTYgMDk6NTYgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwODI3MjY6IGNvcnJlY3RseSByZXBvcnQgTklDIHNwZWVkcwogICBoaWdoZXIgdGhhbiA0R2JpdC9zCgoyMDA4LTEwLTE2IDA4OjAwICBqc2FmcmFuZWsKCiAgICogbWFuOgoKICAgU2NyYXRjaCBwcmV2aW91cyBjb21taXQsIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEgdG8gYmUgaWdub3JlZC4KCjIwMDgtMTAtMTYgMDc6MzcgIGpzYWZyYW5lawoKICAgKiBtYW46CgogICBBZGQgY29tcGlsZWQgbmV0LXNubXAtY29uZmlnLjEgdG8gc3ZuOmlnbm9yZSBsaXN0CgoyMDA4LTEwLTE1IDEyOjU3ICBqc2FmcmFuZWsKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9pcC1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9lbnVtcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX29pZHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAxNzk3MTExOiBpbXBsZW1lbnQgSVAtTUlCOjppcElmU3RhdHNUYWJsZQoKMjAwOC0xMC0xNSAwOToyNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwb3J0YWJpbGl0eSBmaXg6IGF2b2lkIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbiB0aGUgbWlkZGxlIG9mCiAgIGNvZGUKCjIwMDgtMTAtMTQgMTg6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIwNDMwMTg6IGZpeCByZWN2ZnJvbSBoYW5ncwogICBBbHNvIGFkZHJlc3NlcyAoY2xvc2VkKSBidWdzIDExNzE5MDQgYW5kIDEzNDUyOTYKCjIwMDgtMTAtMTQgMDk6NDQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIHdoZW4gbXVsdGlwbGUgaW50ZXJmYWNlcyBoYXZlIHRoZQogICBzYW1lIElQdjYgYWRkcmVzcwoKMjAwOC0xMC0xNCAwOTozNyAganNhZnJhbmVrCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2OTMwMzk6IGJlIHNpbGVudCB3aGVuIGluc2VydCBmYWlscy4KCjIwMDgtMTAtMTMgMTk6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTc3NDM5OiBGaXggcGFzcy9fcGVyc2lzdCBidWcgd2l0aCBTRVQKICAgb2lkIHZhbHVlCgoyMDA4LTEwLTEyIDE3OjI0ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlaW1wbGVtZW50YXRpb24gb2Ygc25tcE1QRFN0YXRzLgoKMjAwOC0xMC0xMCAyMToxMyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ29uc29saWRhdGUgY2hlY2tzIG9uIGdlbmVyYWwgTy9TIGNoYXJhY3RlcmlzdGljcwoKMjAwOC0xMC0wNyAwODo1MCAganNhZnJhbmVrCgogICAqIGRpc3QvZmluZC1yZXF1aXJlczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCVUc6IDIwOTU5ODM6IGZpeCBzeW50YXggZXJyb3IgaW4KICAgZmluZC1yZXF1aXJlcyBoZWxwZXIgc2NyaXB0IGFuZCBtYWtlIGl0IGV4ZWN1dGFibGUKCjIwMDgtMTAtMDYgMTk6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgaWZkZWYgc3lzL3BvbGwKCjIwMDgtMTAtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgcGF0Y2ggZnJvbSBTaGFjaGFyIFNjaGVtZXNoIHRvIGZpeCBhIHF1b3RlIGVzY2FwaW5nCgoyMDA4LTA5LTMwIDIyOjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkZWQgYSBuZWVkZWQgdHJhaWxpbmcgbmV3bGluZQoKMjAwOC0wOS0zMCAyMjoxMSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMDIyOTQ4OiBGaXggZm9yIENvdW50ZXI2NCBpbiBwZXJsIHN1YmFnZW50CgoyMDA4LTA5LTMwIDIxOjQwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gTkVXUzogc25tcGxpYjogSW1wbGVtZW50ZWQgUkZDNTM0MyBjb250ZXh0RW5naW5lSUQgcHJvYmluZy4KICAgVGhpcyBhbGxvd3MgZm9yIHByb2Jpbmcgb2YgdGhlIGNvbnRleHRFbmdpbmVJRCB3aXRob3V0IHJlcXVpcmluZwogICB0aGUgVVNNIHNlY3VyaXR5IG1vZGVsLgogICAtIGltcGxlbWVudGVkIGVudGlyZWx5IHdpdGhpbiB0aGUgbGlicmFyeSBmb3IgYm90aCBjbGllbnRzIGFuZAogICBzZXJ2ZXJzLgoKMjAwOC0wOS0zMCAyMTozMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBBZGQgYSBsb2NhbCBkZWZpbml0aW9uIGZvciBoYXZpbmcgc2VjdXJpdHkgbW9kZWxzIGRlZmluZSB0aGVpcgogICBvd24KICAgY29udGV4dEVuZ2luZUlEIHByb2JlCgoyMDA4LTA5LTMwIDIxOjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkIGEgZGVmaW5pdGlvbiBmb3IgdGhlIFNTSCBkb21haW4KCjIwMDgtMDktMzAgMjE6MDggIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMTI1NzM0NzogTm9uLWZpeGVkIHNpemUgY29ubmVjdGlvbiBidWZmZXIKCjIwMDgtMDktMzAgMDc6MzIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluCiAgIE1ha2VmaWxlLgogICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KCjIwMDgtMDktMjQgMjA6NTggIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgSWRlbnRpZnkgd2hlcmUgcGFydGljdWxhciBjaGVja3MgYXJlIGFjdHVhbGx5IHVzZWQKICAgKGxpYnJhcnksIGFnZW50LCBhcHBsaWNhdGlvbnMgb3Igbm90IGF0IGFsbCkKCjIwMDgtMDktMjQgMTI6NTMgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jOgoKICAgVXNlIHRoZSBsb25nZXN0IGludGVnZXIgZm9yIGlub2RlIG51bWJlcnMgYW5kIChwb3NzaWJseSA2NCBiaXQpCiAgIGNvdW50ZXJzLgoKMjAwOC0wOS0yMCAwOTowMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzM6CgogICBORVdTOiBidWlsZDogRG8gbm90IHJlcXVpcmUgdXNlIG9mIC0td2l0aC1lbmRpYW5uZXNzIHdoZW4KICAgY3Jvc3MtY29tcGlsaW5nLgoKMjAwOC0wOS0xOSAxNToxOSAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIENvcnJlY3QgbG9jYXRpb24gb2YgZG9jdW1lbnRhdGlvbiBmaWxlcy4KCjIwMDgtMDktMTkgMDU6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFuZCBhZGQgdGhlIGNodW5rIHRoYXQgSSBsb3N0LgoKMjAwOC0wOS0xOSAwNToyMyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vdmUgbW9yZSB0aGluZ3MgZnJvbSBhY2NvbmZpZy5oIHRvIHRoZSB0ZW1wbGF0ZXMgaW4gdGhlCiAgIGNvbmZpZ3VyZSBpbnB1dCBmaWxlcy4KCjIwMDgtMDktMTcgMTM6MzEgIGpzYWZyYW5lawoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXM6CgogICBtYWtlIGZpbmQtcmVxdWlyZXMgZXhlY3V0YWJsZSBzbyBpdCdzIGFjdHVhbGx5IHVzYWJsZSBieSB0aGUKICAgbmV0LXNubXAuc3BlYwoKMjAwOC0wOS0xNyAxMjowOCAganNhZnJhbmVrCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmOgoKICAgYWRkIG1hbiBwYWdlIGZvciBuZXQtc25tcC1jcmVhdGUtdjMtdXNlcgoKMjAwOC0wOS0xNiAxODowMiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRnVydGhlciBtaW5pbWl6YXRpb24gb2YgYWNjb25maWcuaAoKMjAwOC0wOS0xMSAyMjoyOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIGEgZmV3IG1vcmUgdmFyaWFibGVzIG91dCBvZiBhY2NvbmZpZy5oCgoyMDA4LTA5LTExIDIwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3Mzc0Mzk6IGZyb20gZW1peTogYXV0b21hdGljIGxpbmsgdXAvZG93bgogICB0cmFwcyBvbiBhIHdhbGs7IHN0aWxsIG5lZWQgYSBiZXR0ZXIgaW50ZXJmYWNlIGZvciBtYW51YWxseSBkb2luZwogICB0aGluZ3Mgb24gYW4gb2NjYXNpb25hbCBiYXNpcwoKMjAwOC0wOS0xMSAyMDoyNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDcwMDY4MTogbGltaXRlZCBzdXBwb3J0IGZvciBVRFB2NCBicm9hZGNhc3QKICAgYWRkcmVzc2VzCgoyMDA4LTA5LTEwIDA2OjM5ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfQ0hFQ0tfVFlQRVMgaW5zdGVhZCBvZiBhIGhvbWVncm93bgogICBhbHRlcm5hdGl2ZSB0byBjaGVjayBmb3IgdHlwZXMKCjIwMDgtMDktMDkgMjA6MjcgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIGFsbCB0aGUgcGFydHMgb2YgY29uZmlndXJlLmFjIHRvIHRoZSBkZXBlbmRlbmN5IGxpc3QKCjIwMDgtMDktMDkgMTg6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlndXJlLmluIC0+IGNvbmZpZ3VyZS5hYyBjaGFuZ2UKCjIwMDgtMDktMDkgMTY6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBkZWZhdWx0IHRvIC1wMAoKMjAwOC0wOS0wOCAyMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wbG9jYWxzbS5jOgoKICAgY2hlY2sgZm9yIGEgc2Vzc2lvbiB0dW5uZWxlZCBmbGFnIGJlZm9yZSByZXR1cm5pbmcgYW4KICAgYXV0aGVudGljYXRpb24gZmFpbHVyZQoKMjAwOC0wOS0wOCAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2V0IHRoZSB0dW5uZWxlZCBmbGFnIHdoZW4gZGVhbGluZyB3aXRoIGEgdHVubmVsLWJhc2VkIHRyYW5zcG9ydDsKICAgZG9uJ3QgcmVxdWlyZSBhIHNlY3VyaXR5RW5naW5lSUQgaWYgdGhlIHNlY3VyaXR5IG1vZGVsIGRvZXNuJ3QKICAgaGF2ZSBvbmUgKGp1c3QgVVNNIG5lZWRzIGl0KQoKMjAwOC0wOS0wOCAyMDoyNCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDIwOTk5ODU6IEFkZGVkIGNvbnN0IHF1YWxpZmllcnMgdG8gdGltZQogICBjb252ZXJzaW9uIHJvdXRpbnMKCjIwMDgtMDktMDUgMDc6NTEgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBVcGRhdGUgcmVsZWFzZSBpbnN0cnVjdGlvbnMsIGluIGxpbmUgd2l0aCBtYWtlcmVsZWFzZS54bWwKICAgKFFuOiBXaHkgaXNuJ3QgbWFrZXJlbGVhc2UueG1sIGJlaW5nIHBpY2tlZCB1cCBoZXJlPykKCjIwMDgtMDktMDQgMjI6NTIgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAxODY4Mjc4OiBQeXRob24gc2VnZmF1bHQgKGludHJvZHVjZWQgYnkKICAgcjE2OTYyKQoKMjAwOC0wOS0wMyAxMzo0MyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjAwMDg3NDogQ2xlYW51cCB0cmFuc3BvcnQgc2VsZWN0aW9uLgoKMjAwOC0wOS0wMyAxMzoyOSAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIFRpZHkgdXAgcGVybC9weXRob24gYW5kIE8vUyBkYXRhIHN0cnVjdHVyZSB0ZXN0cy4KCjIwMDgtMDgtMzEgMTg6MTQgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBUaWR5IHVwIChtb3N0IG9mKSB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRoZSBjb25maWd1cmUKICAgZnJhbWV3b3JrLgogICBUaGlzIGlzIG1vc3RseSByZS1pbmRlbnRhdGlvbiwgcmUtY29tbWVudGluZywgYW5kIGEgY2VydGFpbgogICBhbW91bnQKICAgb2YganVkaWNpb3VzIHJlLW9yZGVyaW5nIG9mIHRoZSB0ZXN0cyB3aXRoaW4gaW5kaXZpZHVhbAogICBzdWItc2NyaXB0LgoKMjAwOC0wOC0zMSAxNzozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBBbm5vdGF0ZSBjb25maWd1cmUgdGVtcGxhdGUgd2l0aCBzdWdnZXN0ZWQgYmVzdCBwcmFjdGljZQogICBzdHJ1Y3R1cmUuCiAgIE5vdGUgdGhhdCBub25lIG9mIHRoZXNlIGNoYW5nZXMgaGFzIGFsdGVyZWQgdGhlIGNvZGUgd2l0aGluCiAgICdjb25maWd1cmUnIGl0c2VsZiAob3RoZXIgdGhhbiBhZmZlY3RpbmcgbGluZSBudW1iZXJzKQoKMjAwOC0wOC0zMSAxNzoyNiAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBjb25maWd1cmUuZCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTkVXUzogYnVpbGQ6IHNwbGl0IGNvbmZpZ3VyZSB0ZW1wbGF0ZSBpbnRvIHNlcGFyYXRlIHBpZWNlcy4KICAgKE1vc3RseSkgc2VsZi1jb250YWluZWQsIGFuZCBzaWduaWZpY2FudGx5IGxlc3MgY29uZnVzaW5nIQoKMjAwOC0wOC0zMSAxNzoyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLmFjLCBjb25maWd1cmUuaW46CgogICBSZW5hbWUgY29uZmlndXJlIHRlbXBsYXRlIGluIGxpbmUgd2l0aCBjdXJyZW50IGJlc3QgcHJhY3RpY2UuCgoyMDA4LTA4LTI5IDE5OjU0ICBkdHMxMgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIFJldGFpbiBmaWxlbmFtZXMgd2hpY2ggZG9uJ3QgaW5jbHVkZSB0aGUgZXhwZWN0ZWQgcHJlZml4LgoKMjAwOC0wOC0yNyAyMTo1NSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzOgoKICAgaWdub3JlIC5saWJzIGRpcmVjdG9yaWVzCgoyMDA4LTA4LTI3IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgUy8zOTAgdXNlcyBzbGlnaHRseSBkaWZmZXJlbnQgZm9ybWF0IG9mIHRoZSAvcHJvYy9jcHVpbmZvIGZpbGU6CiAgIHByb2Nlc3NvciAwOiB2ZXJzaW9uID0gRkYsIGlkZW50aWZpY2F0aW9uID0gMDYwQUZFLCBtYWNoaW5lID0KICAgMjA5NAoKMjAwOC0wOC0yMiAyMzo0NyAgdGFuZGVycwoKICAgKiBGQVE6CgogICB1cGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbXMKCjIwMDgtMDgtMjIgMjM6MjcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogQlVHOiAyMDIzODAzOiBDb21waWxhdGlvbiBwcm9ibGVtcyBvbiBIUC1VWCAxMS4zMQogICBDSEFOR0VTOiBidWlsZDogTGltaXQgdGhlIHVzZSBvZiBfS0VSTkVMIGRlZmluaXRpb25zIGluIGNvbmZpZ3VyZQogICB0ZXN0cyB0byBtYXRjaCB0aGUgdXNlCiAgIG9mIF9LRVJORUwgaW4gb3VyIGNvZGViYXNlCgoyMDA4LTA4LTIyIDAwOjE4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBidWlsZCBmYWlsdXJlIG9uIEhQLVVYIDExLjMxOiB1c2UgZ2V0cGFnZXNpemUoKSBpbnN0ZWFkIG9mCiAgIFBHU0hJRlQuCiAgIFN1Y2Nlc3NmdWxseSB0ZXN0ZWQgb24gSFAtVVggMTAuMjAsIDExLjAwLCAxMS4xMSwgMTEuMjMgYW5kCiAgIDExLjMxLgoKMjAwOC0wOC0yMSAxMDowMyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBTQ1RQLU1JQgoKMjAwOC0wOC0yMCAxNzozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBIYXZlIG9ubHkgb25lIHZhcmlhYmxlIG5hbWVkIHBhc3N3ZCBpbiBzbXV4X2F1dGhfcGVlci4KCjIwMDgtMDgtMTkgMjM6MjIgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgdXBkYXRlIFJFQURNRSBmb3IgVHJ1NjQgYWZ0ZXIgdGhlIHNlbmR0by9yZWN2ZnJvbSBmaXhlcwoKMjAwOC0wOC0xOSAyMDoyNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBmaXggc2lnbmlmaWNhbnQgdHlwbwoKMjAwOC0wOC0xOSAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgRm9yY2UgdXNlIG9mIC9wcm9jLyVkL3BzaW5mbyBpbnRlcmZhY2Ugb24gU29sYXJpcy4KICAgVGVtcG9yYXJ5IGhhY2sgd2hpbGUgd2UgaW52ZXN0aWdhdGUgdGhlIGlzc3VlcyB3aXRoCiAgIHRoZSBrdm1fcHJvYygpIGNvZGUuCiAgIAogICBUaGUgJ2NvbmZpZ19yZXF1aXJlJyBwcm9jZXNzaW5nIGRvZXNuJ3QgY3VycmVudGx5CiAgIHBpY2sgdXAgdGhlIGZ1bGwgI2lmZGVmIGVudmlyb25tZW50LCBzbyBkZWZhdWx0cwogICB0byB1c2luZyBrdm1fcHJvYygpLiBJJ20gbm90IGNvbnZpbmNlZCB0aGlzIHdhcwogICB3b3JraW5nIGJlZm9yZSBhbnl3YXksCgoyMDA4LTA4LTE5IDEzOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYzoKCiAgIEZpeCBwcm9ibGVtcyBpbiAvcHJvYy8lZC9wc2luZm8gaW50ZXJmYWNlIHByb2Nlc3NpbmcuCgoyMDA4LTA4LTE5IDA4OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzOgoKICAgSWdub3JlIGxpYnJhcnkgYW5kIG9iamVjdCBmaWxlcwoKMjAwOC0wOC0xOSAwODozNiAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBBY3RpdmF0ZSBzdGF0aXN0aWNzIHRoYXQgYXJlIHN1cHBvcnRlZCBvbiBTb2xhcmlzIGFuZC9vciBMaW51eAogICBJUHY2CgoyMDA4LTA4LTE5IDA4OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEltcHJvdmVkIHRyYWNpbmcgb2YgU01VWCBhdXRoZW50aWNhdGlvbiBwcm9ibGVtcy4KCjIwMDgtMDgtMTkgMDg6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmM6CgogICBCZXR0ZXIgdHJhY2luZyBvZiBEaXNNYW4gb2JqZWN0IHByb2Nlc3NpbmcuCgoyMDA4LTA4LTE4IDIyOjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmg6CgogICByZW1vdmUgYm9ndXMgd2hpdGUgc3BhY2UKCjIwMDgtMDgtMTggMjI6MDEgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIwMjE0NDQ6IFN1cHBvcnQgU05NUHYyYyBpbiBnZXR0YWJsZQogICBwcm9jZXNzaW5nCgoyMDA4LTA4LTE4IDIxOjQ0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMDAzNDUwOiBGaXggYSBjb3VwbGUgb2YgNjQtYml0CiAgIHByb2JsZW1zLgoKMjAwOC0wOC0xOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICByZXZlcnQgMTcxNTcgc2luY2UgaXQgYnJva2Ugc29tZXRoaW5nCgoyMDA4LTA4LTE4IDA3OjA2ICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgU0NUUC1NSUIgaW1wbGVtZW50YXRpb24gKExpbnV4IG9ubHkpCgoyMDA4LTA4LTE3IDIxOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAyMjkzNjogRml4IEFnZW50WCBDb3VudGVyNjQgZGVjb2Rpbmcgb24KICAgNjQtYml0IGFyY2hpdGVjdHVyZXMKCjIwMDgtMDgtMTcgMjA6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTQyMDQ6IFN1cHBvcnQgLWcge2dyb3VwbmFtZX0KCjIwMDgtMDgtMTUgMTM6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgTkVXUzogc25tcHVzbTogUEFUQ0g6IDE1OTEzNTU6IGZyb20gcHBhc3NlcmE6IEFsbG93IGNsb25pbmcgdG8KICAgZW5naW5lSURzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBhZ2VudCdzIGVuZ2luZUlECgoyMDA4LTA4LTE0IDE1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmM6CgogICBTV1J1biBwcm9jZXNzaW5nIG5lZWRzIGFjY2VzcyB0byB0aGUgaW50ZXJuYWxzIG9mICdzdHJ1Y3QgdXNlcicKICAgKFNvbGFyaXMpCgoyMDA4LTA4LTEzIDEzOjAyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIENvcnJlY3RseSBwYXJzZSBpbnRlcmZhY2UgaW5kZXhlcyBoaWdoZXIgdGhhbiAweGZmLgoKMjAwOC0wOC0xMiAwODoyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENsb3NlIGZpbGUgd2hlbiBwYXJzaW5nIG9mIC9wcm9jL1hYWC9zdGF0dXMgZmFpbHMuCgoyMDA4LTA4LTEyIDA3OjI3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliLCBhZ2VudC9taWJncm91cC9zY3RwLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL1NDVFAtTUlCLnR4dDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjAyMzYzMzogYWRkIFNDVFAtTUlCIGltcGxlbWVudGF0aW9uIChMaW51eAogICBvbmx5KQoKMjAwOC0wOC0wNyAxMDowMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIEZpeCBpbmV0TmV0VG9NZWRpYVRhYmxlIHRhYmxlIHByb2Nlc3NpbmcgLSBjb250aW51ZSB3aXRoIG5leHQKICAgZW50cnkgd2hlbiBmaWxsdXBfZW50cnlfaW5mbygpIGZhaWxzLgoKMjAwOC0wOC0wNyAwOTowMCAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IGRvY3VtZW50YXRpb24gb2YgZXhlYyBzdGF0YW1lbnQgLSBpdCBkb2VzIG5vdCBjYWNoZSByZXN1bHRzCiAgIGFueW1vcmUuIFJlbGF0ZWQgdG8gYnVnIDg4MzEzNAoKMjAwOC0wNy0zMSAyMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jOgoKICAgRml4IGEgdHlwbywgYW5kIGEgYm9ndXMgZmllbGQgbmFtZSBpbiB0aGUgQUlYIHByb2NpbmZvIHN0cnVjdHVyZS4KCjIwMDgtMDctMzEgMjM6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYzoKCiAgIEluY2x1ZGUgbWlzc2luZyBoZWFkZXJzLCBhbmQgZml4IG9uZSBib2d1cyBmaWVsZCBuYW1lIGluIFNvbGFyaXMKICAgcHJvYyBzdHJ1Y3R1cmUuCgoyMDA4LTA3LTMwIDE3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMDMxNDQ6IEluY3JlYXNlIHNpemUgb2YgQWdlbnRYIHBhY2tldAogICBidWlsZCBidWZmZXIKCjIwMDgtMDctMzAgMDc6NTcgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDIwMjc4MzQ6IEV4dGVuZCBzdHJpbmcgcHJpbnQgYnVmZmVyIGJ5IHRoZQogICBtaW5pbXVtIG5lY2Vzc2FyeS4KCjIwMDgtMDctMjkgMjM6MzQgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2N5Z3dpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbmxpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmM6CgogICBGaXggYXNzb3J0ZWQgc2lsbHkgdHlwb3MgLSB1bmJhbGFuY2VkIHBhcmVudGhlc2VzCiAgIGFuZCB0aGUgd3JvbmcgdHlwZSBlbnVtZXJhdGlvbiB2YWx1ZSBuYW1lcy4KCjIwMDgtMDctMjkgMjM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYzoKCiAgIEVuc3VyZSBzd3J1biBkYXRhIGlzIGF2YWlsYWJsZSBmb3IgdGhlIHByVGFibGUgY2FsbHMsCiAgIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaHJTV1J1blRhYmxlIHRvIHRyaWdnZXIgdGhpcy4KCjIwMDgtMDctMjkgMTY6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYSkgRml4IHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaW4ganVzdCBvbmUgcGxhY2UKICAgKG1ha2VzIGl0IGVhc2llciB0byBjaGFuZ2UgaWYgbmVjZXNzYXJ5KQogICBiKSBGaXggdmFyaW91cyB1bmZvcnR1bmF0ZSBsaW5lLWJyZWFrcyAod2l0aGluICJwZHUtPmZsYWdzIikKCjIwMDgtMDctMjkgMTY6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIElmIHRoZSByZS13cml0dGVuIFNXUnVuIG1vZHVsZSBpZiBhdmFpbGFibGUsIHRoZW4gdXNlIGl0IGZvcgogICB0aGUgVUNELXNwZWNpZmljIHByVGFibGUgYXMgd2VsbCBhcyB0aGUgaHJTV1J1blRhYmxlLgogICBDb25zaXN0ZW5jeSBpcyBnb29kLi4uLgoKMjAwOC0wNy0yOSAxNToyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBTdXBwcmVzcyBqdW5rIGluIGhyU1dSdW5OYW1lICYgaHJTV1J1blBhcmFtZXRlcnMgdmFsdWVzCgoyMDA4LTA3LTI5IDEwOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jOgoKICAgVGhlIGNhY2hlL2NvbnRhaW5lciByZWxhdGUgdG8gdGhlIGRhdGEgaXRzZWxmLCBzbyBzaG91bGQKICAgbW9yZSBuYXR1cmFsbHkgYmUgaGFuZGxlZCBieSB0aGUgZGF0YV9hY2Nlc3MgbW9kdWxlLAogICByYXRoZXIgdGhhbiBhIHBhcnRpY3VsYXIgTUlCIHRhYmxlIG1vZHVsZS4KCjIwMDgtMDctMjggMjE6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgICd1c2VkJyBhbmQgJ2ZyZWUnIGFyZSBub3QgdGhlIHNhbWUgdGhpbmcsIERhdmUuIFBheSBhdHRlbnRpb24gYXQKICAgdGhlIGJhY2suLi4uCgoyMDA4LTA3LTI4IDE0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMjM4MDM6IEVuc3VyZSBjb21waWxhdGlvbiBpcyBub3QgZGVwZW5kZW50CiAgIG9uIGFuIGlycmVsZXZhbnQgY29uZmlndXJlIGNoYXJhY3RlcmlzdGljIGZvciBIUC1VWCAxMQoKMjAwOC0wNy0yOCAxMDo1NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDE5NjQxMzY6IERyb3AgTlVMTCB0eXBlIGZyb20gc25tcHNldCB1c2FnZQogICBtZXNzYWdlLgoKMjAwOC0wNy0yNSAxNDoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oOgoKICAgVXNlICctLWVuYWJsZS1uZXctZmVhdHVyZXMnIG1lY2hhbmlzbSB0byBpbmNsdWRlIGhyU1cqIHJlLXdyaXRlcwoKMjAwOC0wNy0yNSAxNDoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbnVsbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmM6CgogICBQcmVsaW1pbmFyeSBPUy1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgUnVubmluZyBhbmQgSW5zdGFsbGVkCiAgIFNvZnR3YXJlIGRhdGEgYWNjZXNzLgoKMjAwOC0wNy0yNCAyMzoyMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMjAyNzEyOTogZml4IHR5cG8gaW4gc25tcGNtZC4xCgoyMDA4LTA3LTI0IDEwOjAwICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgcmVmbGVjdCBkZWZhdWx0IHRlbXAgZmlsZSBwYXR0ZXJuIGluIG1hbiBwYWdlIGlmIGl0J3MgbW9kaWZpZWQgYnkKICAgLi9jb25maWd1cmUgc2NyaXB0CgoyMDA4LTA3LTI0IDA4OjM2ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBidWlsZGluZzogYWRkIC0td2l0aC10ZW1wLWZpbGUtcGF0dGVybiBjb25maWd1cmUgb3B0aW9uCgoyMDA4LTA3LTI0IDA2OjUzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyMzgwMDogcmVsZWFzZSBhbmQgcmVsb2FkIGFsbCB0cmFwCiAgIGRlc3RpbmF0aW9ucyBvbiBTSUdIVVAKCjIwMDgtMDctMjIgMTQ6MzMgIGpzYWZyYW5lawoKICAgKiBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbjoKCiAgIGZpeCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlciB0byBydW4gd2l0aG91dCBhcmd1bWVudHMKCjIwMDgtMDctMjIgMTQ6MjEgIGpzYWZyYW5lawoKICAgKiAgLiwgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluOgoKICAgTkVXUzogbWlzYzogc2VwYXJhdGUgdXNlciBtYW5hZ2VtZW50IGZyb20gbmV0LXNubXAtY29uZmlnIGludG8KICAgbmV3IG5ldC1zbm1wLWNyZWF0ZS12My11c2VyIHNjcmlwdAoKMjAwOC0wNy0yMSAxMzo0NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMTk0NDU4MTogUHJvdGVjdCBhZ2FpbnN0IGNvcmUgZHVtcHMgd2l0aAogICBsb25nIHN0cmluZyBpbmRleCB2YWx1ZXMuCgoyMDA4LTA3LTE4IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG5ldyBzaWduaW5nIGtleQoKMjAwOC0wNy0xNyAxMDowNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDIwMTgwMzE6IERvbid0IHByb2JlIGVuZ2luZUlEIGluIGludGVybmFsCiAgIG1vbml0b3Igc2Vzc2lvbnMuCgoyMDA4LTA3LTEwIDE5OjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCBhIHJlZ2V4cCBxdW90ZQoKMjAwOC0wNy0xMCAxNDoxMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgYnVpbGQgZml4IGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBnZXRhZGRyaW5mbyAoZS5nLiBIUC1VWAogICAxMS4wIGFuZCBlYXJsaWVyLCBTb2xhcmlzIDcgYW5kIGVhcmxpZXIpCgoyMDA4LTA3LTEwIDEzOjUwICBhbGV4X2IKCiAgICogd2luMzIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDE0NTI2OiBXaW4zMjoKICAgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmggbm90IGluc3RhbGxlZAoKMjAwOC0wNy0wNiAxNTowNSAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvYnVpbGQucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWxkaW5nOiBBZGQgc3VwcG9ydCBmb3Igd2luRXh0RExMIHRvIGJ1aWxkLmJhdCAod2luMzIpCgoyMDA4LTA3LTA2IDEyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzIgYnVpbGQgZml4ZXMgLSBhZGQgbWlzc2luZyBmdW5jdGlvbiBmb3IgRExMIGJ1aWxkLgoKMjAwOC0wNy0wMiAxMjozOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyMDA2Nzg2OiBJbnRlcmZhY2UgbmFtZSBjYW4gaGF2ZSBtb3JlIHRoYW4gOAogICBjaGFyYWN0ZXJzLgoKMjAwOC0wNi0yNSAxNzozOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTE2ODQwOiBuZXcgY29uZmlnIG9wdGlvbiB0byBzZXQgU05NUHYxIHRyYXAKICAgYWdlbnQgYWRkcmVzcwogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTkxNjg0MDogaW50cm9kdWNlCiAgIG5ldHNubXBfZ2V0aG9zdGJ5bmFtZV92NAoKMjAwOC0wNi0yNSAxNToxNiAganNhZnJhbmVrCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGFzc2VydGlvbiB3aGVuIHVzZWQgd2l0aCBwZXJsIDUuMTAKCjIwMDgtMDYtMjQgMDU6MDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBCVUc6IDIwMDExMjQ6IEFsbG93IGVtYmVkZGVkIE5VTAogICBjaGFyYWN0ZXJzIGluIHVzbVVzZXJQdWJsaWMKCjIwMDgtMDYtMjMgMTk6NTcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE9ubHkgcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGV4dHJhIFwwIGFmdGVyIHRoZSBkYXRhIGZvciBPQ1RFVAogICBTVFJJTkcgdmFsdWVkIGVudGl0aWVzCgoyMDA4LTA2LTIzIDE5OjEzICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogRGlzYWJsZSB0ZXN0cyBpZiB0aGUgYWdlbnQgaXMgYnVpbHQgd2l0aG91dAogICB0aGUgbWliIG1vZHVsZSB0aGV5IGRlcGVuZCBvbi4KCjIwMDgtMDYtMjEgMTI6MTQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHNwdXJpb3VzIEFDX01TR19SRVNVTFQgaW5zaWRlIGFuIEFDX0NBQ0hFX0NIRUNLCgoyMDA4LTA2LTE4IDA1OjA3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEhhbmRsZSBzb2xhcmlzIGF3ayBhcyB3ZWxsLgoKMjAwOC0wNi0xNyAxNjowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5OTU3NTM6IGZyb20gdm9sa292X3BldGVyOiBtaW5vciBjbGVhbnVwCiAgIGFnZW50L2F1dG9fbmxpc3QuYwoKMjAwOC0wNi0xNyAwODo1NyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgRml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IgVENQL0lQdjYKICAgQ3Jvc3MtcG9ydCBvZiByZXZpc2lvbiAxNjY2OAoKMjAwOC0wNi0xNiAyMzo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxOTk1MTcyOiBmaXggLS13aXRob3V0LWVsZiBjb25maWd1cmUgdXNhZ2UKICAgbWVzc2FnZQoKMjAwOC0wNi0xMyAyMjoxNiAgZHRzMTIKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzLCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBidWlsZDogSW1wcm92ZWQgUlBNIHNwZWMgZmlsZXMsIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kKICAgd2l0aCB2ZW5kb3ItcHJvdmlkZWQgcGFja2FnZXMuCiAgIFByb3ZpZGVkIGJ5IEphbiBTYWZyYW5lawoKMjAwOC0wNi0xMyAyMTowMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE4OTk3NjI6IFR3ZWFrIGVtYmVkZGVkX3BlcmwgY29uZmlndXJlCiAgIGNoZWNrcy4KCjIwMDgtMDYtMTMgMDU6NDMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogYnVpbGRpbmc6IFJldGlyZSB0aGUgY29uZmlnX29sZC9uZXdfcmVxdWlyZSBmZWF0dXJlIGFuZAogICByZXBsYWNlIGl0IHdpdGggY29uZmlnX3ZlcnNpb25fcmVxdWlyZSB0aGF0IGNvbXBhcmVzIHZlcnNpb24KICAgbnVtYmVycyB0byBhY2hpZXZlIGEgc2ltaWxhciB0aGluZwoKMjAwOC0wNi0xMiAxMjo1MCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIE9ubHkgYWRkIG5vbi1kZWZhdWx0IE1JQiBtb2R1bGVzIHRvIHRoZSB0ZXN0IGJ1aWxkcy4KICAgU3BlY2lmeWluZyB0aGUgaG9zdCBtb2R1bGUgaXMgbm90IG5lZWRlZCBvbiBMaW51eCBzeXN0ZW1zLAogICBhbmQgbWF5IGJyZWFrIG9uIG90aGVyIE8vU3MuIFNwZWNpZnlpbmcgdGhlIGRpc21hbi9ldmVudAogICBNSUIgaXMgdW5uZWNlc3Nhcnkgb24gYW55IHN5c3RlbS4KCjIwMDgtMDYtMTEgMTA6MTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBPbmx5IGVuYWJsZSBJUFggdHJhbnNwb3J0IG9uIExpbnV4IHN5c3RlbXMKCjIwMDgtMDYtMTAgMTQ6MzcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBzbm1wZDogUEFUQ0g6IDE5MTgzODM6IEZpeCBEaXNNYW4gbW9uaXRvcmluZyBvZiBBZ2VudFggc3ViYWdlbnRzCiAgIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgYWN0dWFsbHkgdXNlIHRoZSBjb2RlIHN1Ym1pdHRlZCBpbiB0aGF0CiAgIHBhdGNoLgogICBJbnN0ZWFkIGl0IGluc2VydHMgYSBjYWxsYmFjayBob29rIGludG8gdGhlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IKICAgcm91dGluZSAodXNpbmcgdGhlIG15dm9pZCBwb2ludGVyIGFuZCBhIG5ldyBzZXNzaW9uIGZsYWcpLCB3aGljaAogICBoYXMKICAgdGhlIHNhbWUgZWZmZWN0IHdpdGhvdXQgbmVlZGluZyB0byBkdXBsaWNhdGUgYW55IGNvZGUuCgoyMDA4LTA2LTEwIDEyOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRml4IGxvZ2ljIGVycm9ycyBpbiBoYW5kbGluZyBvZiBvbGQvY3VycmVudCB2YXJiaW5kIGxpc3RzLgogICBSZXBvcnRlZCBieSBGcmVkIEdhbyBpbiBwYXRjaCAjMTkxODM4MwoKMjAwOC0wNi0wOSAxOTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXBkYXRlIHRvIG1hdGNoIHB1Ymxpc2hlZCByZWxlYXNlCgoyMDA4LTA2LTA5IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZGVkIHNubXBfdmVyc2lvbi5jCgoyMDA4LTA2LTA5IDA5OjA1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgQSBjb3VwbGUgbW9yZSBtaXNzaW5nIGVycm9yIGNoZWNrcy4KICAgQmFzZWQgb24gdGhvc2UgcmVwb3J0ZWQgYnkgQm95YSBTdW4KCjIwMDgtMDYtMDYgMTI6MDIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIGVtYmVkZGVkIHBlcmwgb24gTWFjIE9TL1gKICAgKG5lYXJseSB3b3JraW5nIG9uIExlb3BhcmQgbm93KQoKMjAwOC0wNi0wMyAyMzoxNCAgdGFuZGVycwoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogYWl4OiBBZGQgc3VwcG9ydCBmb3IgQUlYIDYueAoKMjAwOC0wNi0wMyAyMjo0NiAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgTkVXUzogYnVpbGQ6IFVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNiAoZnJvbSAxLjUuMjQpLCBlLmcuIHRvCiAgIGJldHRlciBzdXBwb3J0IEFJWCA2LjEgYW5kIE1hYyBPUyBYIExlb3BhcmQKCjIwMDgtMDYtMDMgMjI6MzkgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHdoeSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBuZXcgc3R1ZmY/CgoyMDA4LTA2LTAzIDA5OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBFbnN1cmUgdGhlIGRlZmF1bHQgaW50ZXJuYWwgcXVlcnkgc2Vzc2lvbiBoYXMgYSB2YWxpZCBlbmdpbmVJRCwKICAgdG8gYXZvaWQgaGF2aW5nIHRvIHByb2JlIGZvciBpdCBvbiB0aGUgZmlyc3QgdXNlLgoKMjAwOC0wNi0wMiAyMjoxNyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBORVdTOiBzbm1wbGliOiBDb252ZXJ0IGdlbmVyaWMgc291cmNlIGFyZ3VtZW50cyBmcm9tIGNvbnN0CiAgIHVfY2hhciogdG8gY29uc3Qgdm9pZCogZm9yIHNubXBfcGR1X2FkZF92YXJpYWJsZSwKICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSwgc25tcF9zZXRfdmFyX3ZhbHVlLAogICBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUgYW5kIG1lbWR1cC4KCjIwMDgtMDYtMDIgMTM6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBFbnN1cmUgdGhhdCB0aGUgInRyaWdnZXIgYXJtZWQiIGZsYWcgaXMgY2xlYXJlZCB3aGVuZXZlciB0aGUKICAgbWF0Y2hpbmcKICAgZXhwcmVzc2lvbiBpcyBmb3VuZCB0byBob2xkIC0gZXZlbiBpZiB0aGUgdHJpZ2dlciBkb2Vzbid0CiAgIGFjdHVhbGx5IGZpcmUuCiAgIFRoaXMgYWZmZWN0cyB0aGUgYmVoYXZpb3VyIG9mIGluaXRpYWxseS10cnVlIGV4cHJlc3Npb25zLCB3aGVuCiAgIHRoaXMKICAgaW5pdGlhbCBmaXJpbmcgaXMgc3VwcHJlc3NlZCB1c2luZyB0aGUgbXRlVHJpZ2dlcipTdGFydHVwIG9iamVjdC4KICAgV2l0aG91dCB0aGlzIHR3ZWFrLCB0aGUgdHJpZ2dlciB3aWxsIGZpcmUgb24gdGhlIHNlY29uZCBzYW1wbGluZwogICAoYXMgaWYgdGhlIGV4cHJlc3Npb24gaGFkIGV2YWx1YXRlZCBmYWxzZSBmaXJzdCB0aW1lIHJvdW5kKS4KCjIwMDgtMDYtMDEgMjA6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaDoKCiAgIEhhbmRsZSB2YXJiaW5kIHBheWxvYWQgZm9yIGludGVybmFsIGxpbmtVcC9Eb3duIG5vdGlmaWNhdGlvbnMuCgoyMDA4LTA2LTAxIDA2OjQ1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIE5FV1M6IHNubXB0cmFwZDogQlVHOiAxOTU1MjI3OiBNZW1vcnkgbGVhayBmb3IgZW1iZWRkZWQgUGVybCBvbgogICB4ODZfNjQKCjIwMDgtMDUtMzEgMTI6MDggIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogVGhlIHNjYWxhciBoZWxwZXIgdGhhdCB3YXMgY2FsbGVkIGZyb20gdGhlCiAgIHNjYWxhcl9ncm91cCBoZWxwZXIgZGlkIG5vdGhpbmcgc2F2ZSBhZGRpbmcgYSB0cmFpbGluZyAwIHRvIHRoZQogICBhcmd1bWVudC4gUmVtb3ZlIHRoZSB1c2Ugb2YgdGhlIHNjYWxhciBoZWxwZXIgZnJvbSB0aGUKICAgc2NhbGFyX2dyb3VwIGFuZCBhZGQgdGhlIHRyYWlsaW5nIDAgaW4gdGhlIHNjYWxhcl9ncm91cCBoZWxwZXIuCgoyMDA4LTA1LTMwIDEzOjU2ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgVHdlYWsgbGlzdCBvZiBvbi1saW5lIHNvZnR3YXJlIGRpcmVjdG9yaWVzIHRvIGJlIHVwZGF0ZWQuCgoyMDA4LTA1LTI5IDA5OjU5ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgVmFyaW91cyBtaXNzaW5nIGVycm9yIGNoZWNrcywgZXRjLgogICBSZXBvcnRlZCBieSBCb3lhIFN1bi4KCjIwMDgtMDUtMjggMTE6NDggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBSZXBvcnQgY2FjaGVkIG1lbW9yeSBzaXplL3VzYWdlIHByb3Blcmx5IChwYXJ0aWN1bGFybHkgb24KICAgRnJlZUJTRCkuCgoyMDA4LTA1LTI4IDExOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEJyaW5nIG1lbUJ1ZmZlciBjb2RlIGludG8gbGluZSB3aXRoIHJldmlzaW9uIDE2OTc1LgoKMjAwOC0wNS0yOCAxMToxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgTGludXggMi42IGtlcm5lbCBkb2VzIG5vdCByZXBvcnQgc2hhcmVkIG1lbW9yeSBpbmZvcm1hdGlvbi4KCjIwMDgtMDUtMjggMDk6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE5MzEzOTE6IEZpeCByZXBvcnRpbmcgb2YgTWVtb3J5IGJ1ZmZlcnMgYW5kCiAgIGNhY2hlZCBtZW1vcnkuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgZG9jb25laWxsLgoKMjAwOC0wNS0yOCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBUd2VhayB0aGUgZml4IGZvciBidWcgIzE5MTI2NDcKCjIwMDgtMDUtMjggMDY6NTYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRW5mb3JjZSB0aGUgbG93ZXIgbGltaXQgb24gc2NhbGFyX2dyb3VwcwogICBUaGlzIGZpeGVzIHRoZSBjYXNlIG9mIGdldG5leHQgaWNtcC4wIHJldHVybmluZyBpY21wLjAuMCBpbnN0ZWFkCiAgIG9mIHRoZQogICBleHBlY3RlZCBpY21wSW5Nc2dzLjAKCjIwMDgtMDUtMjcgMjI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxOTEyNjQ3OiBGaXggbWVtb3J5IGxlYWsgZm9sbG93aW5nIGZhaWxlZAogICByZXF1ZXN0cy4KICAgRml4IHByb3ZpZGVkIGJ5IEFudG9uIFBhawoKMjAwOC0wNS0yNyAyMToyMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxOTU4MDQxOiBFbnN1cmUgSURzIGFyZSBub3QgdHJ1bmNhdGVkLgoKMjAwOC0wNS0yNyAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CgogICBNb25pdG9yIG1lbW9yeSBidWZmZXJzIG9uIEZyZWVCU0Qgc3lzdGVtcy4KICAgQVBJIHN1Z2dlc3RlZCBieSBDaHJpcwoKMjAwOC0wNS0yNyAxMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIEZpeCBjYXJlbGVzcyB0eXBvIHdoZW4gYXBwbHlpbmcgTWF4aW0ncyBwYXRjaC4KCjIwMDgtMDUtMjUgMjE6MzcgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUmVpbXBsZW1lbnRhdGlvbiBvZiB1c21TdGF0cy4KCjIwMDgtMDUtMjUgMDc6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYzoKCiAgIFJlbW92ZSBhIGxvY2FsIHZhcmlhYmxlIG9ubHkgdXNlZCB0byB0cmFjayBhIGxvY2FsIHN0cmluZwogICBjb25zdGFudCBhbmQgcmVwbGFjZSB0IHdpdGggYSBkaXJlY3QgcmVmZXJlbmNlIHRvIHRoZSBzdHJpbmcKICAgY29uc3RhbnQuCiAgIE1hcmsgdHdvIGxvY2FsIGZ1bmN0aW9ucyBzdGF0aWMgYXMgd2VsbC4KCjIwMDgtMDUtMjUgMDc6MTcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIFJlb3JkZXIgdG8gYXZvaWQgb25lIHN0cmxlbiBjYWxsLgogICBBZGQgbWlzc2luZyBjYXN0LgoKMjAwOC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIE1ha2UgaXBmd19uYW1lIGEgc3RhdGljIGFycmF5IGluc3RlYWQgb2YgYSBwb2ludGVyIGFzIGl0IGlzCiAgIHByaXZhdGUgdG8gdGhpcyBtb2R1bGUuCgoyMDA4LTA1LTI1IDA3OjA1ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBXaGVuIGNhc3RpbmcsIGNhc3QgdG8gdGhlIHJpZ2h0IHR5cGUuCgoyMDA4LTA1LTI1IDA2OjA4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgb24gc29sYXJpcy4KCjIwMDgtMDUtMjQgMjA6MzAgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMTgyNjE3NDogQ2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyB3aGVuCiAgIHByaW50aW5nIHZhbHVlcy4KICAgQWRkcmVzc2VzIENWRS0yMDA4LTIyOTIKCjIwMDgtMDUtMjQgMTM6MTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT24gQUlYIG5ldGluZXQvaW5fcGNiLmggZGVwZW5kcyBvbiBuZXQvcm91dGUuaC4gQWRkIHRoZSBpbmNsdWRlCiAgIGZvciBjb25maWd1cmUuCgoyMDA4LTA1LTI0IDA5OjA2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWtlIHRoZSBjaGVja3MgZm9yIG5ldGluZXQvaW5fcGNiLmggYW5kIHN5cy9kaXNrbGFiZWwuaCB1c2UgdGhlCiAgIG5vcm1hbAogICBtYWNoaW5lcnkuCiAgIEFkZCBhIG5ldHNubXAgcHJlZml4IHRvIHRoZSBjYWNoZSB2YXJpYWJsZQogICBjdl9zeXNfaW9jdGxfaF9oYXNfU0lPQ0dJRkFERFIgdG8KICAgcGFjaWZ5IGFjbG9jYWwuCgoyMDA4LTA1LTIzIDIwOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IEZpeCBmb3IgQ1BVIHN0YXRzIG9uIEZyZWVCU0QKICAgUHJvdmlkZWQgYnkgTWF4aW0gU29ib2xldgoKMjAwOC0wNS0yMyAyMDoxMiAgZHRzMTIKCiAgICogZGlzdC9zbm1wZC1pbml0LmQsIGRpc3Qvc25tcHRyYXBkLWluaXQuZDoKCiAgIENIQU5HRVM6IGluc3RhbGw6IFBBVENIOiAxOTY5NjI3OiBIYW5kbGUgZW1wdHkKICAgL2V0Yy9zeXNjb25maWcvbmV0d29yayBmaWxlCiAgIEZpeCBwcm92aWRlZCBieSBKb3NoIFdpbG1lcwoKMjAwOC0wNS0yMyAyMDowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5NjcxOTQ6IFJlY29nbmlzZSBORlM0IG1vdW50cwogICBTdWJtaXR0ZWQgYnkgRmFicmljZSBCYWNjaGVsbGEKCjIwMDgtMDUtMjIgMjA6NTUgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG9uJ3QgY2hhbmdlIGxlbmd0aCBvZiBPSUQgYnVmZmVyIGlmIHBhcnNpbmcgdGhlIE9JRCBmYWlscy4KICAgUmVwb3J0ZWQgYnkgc2FpZnVsbGEgTW9oZCBBYmR1bC4KCjIwMDgtMDUtMjIgMTM6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlIHRoZSBhZHZlcnRpc2luZyBzZWN0aW9uIGFuZCBjaGFuZ2Ugbm90ZSBhYm91dCBob3cgdG8KICAgdXBsb2FkIGZpbGVzIChhZGRpbmcgYW4gYXV0b21hdHRlZCByc3luYyBjb21tYW5kKQoKMjAwOC0wNS0yMiAwNDowOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlLgoKMjAwOC0wNS0yMSAyMDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgdGhlIGFsaWFzIG1vZHVsZSB3aXRoIGEgQysrIGNvbXBpbGVyLgoKMjAwOC0wNS0yMSAxMzo0MCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGRlZCBGU0YgZGlyZWN0b3J5IGluZm8KCjIwMDgtMDUtMjEgMDk6MjEgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBBZGQgRnJlZSBTb2Z0d2FyZSBEaXJlY3RvcnkgdG8gdGhlIGxpc3Qgb2YgcGxhY2VzIHRvIGJlIHVwZGF0ZWQuCgoyMDA4LTA1LTIwIDIzOjAwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFRoZSBtYWpvcml0eSBvZiB0aGUgZGVwZW5kZW5jaWVzIG9uIHV0aWxfZnVuY3MgaXMKICAgZm9yIHRoZSBoZWFkZXJfKiBmdW5jdGlvbnMuIEZhY3RvciBvdXQgdGhlIGhlYWRlcl8qIGZ1bmN0aW9ucyBhbmQKICAgYWRqdXN0IHRoZSByZXF1aXJlbWVudHMuCgoyMDA4LTA1LTIwIDIyOjQwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IERvIG5vdCBjb25maWdfcmVxdWlyZSh1dGlsX2Z1bmNzKSBpZiBub3RoaW5nIGZyb20KICAgdXRpbF9mdW5jcyBpcyB1c2VkCgoyMDA4LTA1LTE0IDEzOjM1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGZpeCBidWlsZCBmYWlsdXJlcyB3aXRoIGVhcmxpZXIgTGludXgga2VybmVscyAoZS5nLiB3aXRoIFJINy4xKQogICBpbnRyb2R1Y2VkIGJ5IHIxNjkwOQoKMjAwOC0wNS0xMyAxODo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDgtMDUtMTMgMTU6NDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCB0aGUgLXQgc3dpdGNoIGNoYW5nZQoKMjAwOC0wNS0xMyAxNTo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgYWxpYXMga2V5d29yZAoKMjAwOC0wNS0xMyAxNTo0MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBhbGxvdyBmbG9hdGluZyBwb2ludCBudW1iZXJzIHRvIGJlIHVzZWQgZm9yIHRpbWVvdXQgdmFsdWVzCgoyMDA4LTA1LTEyIDIxOjExICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dCwgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYzoKCiAgIEFkZGVkIGEgcmVhbCBzbm1wQWxpYXNEb21haW4gT0lEIGRlZmluaXRpb24KCjIwMDgtMDUtMTIgMjE6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGVkIE5FV1Mgd2l0aCBuZXcgYWxpYXMgYmx1cmIKCjIwMDgtMDUtMTIgMjE6MDcgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBbGlhc0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBhIGFsaWFzIHRyYW5zcG9ydCBmb3IgbWFwcGluZyBjb21wbGV4CiAgIHRyYW5zcG9ydCBzdHJpbmdzIHRvIHNpbXBsZSBuYW1lIGRlZmluaXRpb25zCgoyMDA4LTA1LTEyIDE5OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHN0cmlwIG9mZiB0cmFpbGluZyBtb2R1bGUgbmFtZQoKMjAwOC0wNS0xMiAwNjowMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIE1ha2UgbWliSUkvc25tcCB3b3JrIGFnYWluLgoKMjAwOC0wNS0xMCAyMTo0NyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOC0wNS0xMCAwOTo1NSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFJlcGxhY2UgdGhlIGludmFsaWQgJTA4cCBmb3JtYXQKICAgc3BlY2lmaWVyIHdpdGggdGhlIGNvcnJlY3QgJThwLgoKMjAwOC0wNS0xMCAwOTo1MSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcG5ldHN0YXQsIHNubXB0cmFwZCwgc25tcGRlbHRhOiBVc2UgTlVMTAogICBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgcG9pbnRlcnMuIFVzZSBjYXN0ZWQgMCdzIGluc3RlYWQgb2YgMCBmb3IKICAgTlVMTCBmdW5jdGlvbiBwb2ludGVycy4KCjIwMDgtMDUtMTAgMDk6NDAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgoyMDA4LTA1LTEwIDA5OjM5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBpbmNsdWRlIGZpbGVzLgoKMjAwOC0wNS0xMCAwOTozMyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliLCBtaWIyYzogTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBpbmxpbmUKICAgZnVuY3Rpb25zIHNvIHRoYXQgdGhlIGNvbXBpbGVyIHNlZXMgdGhlbSBiZWZvcmUgaXQgc2VlcyB1c2VzIG9mCiAgIHRoZW0uCgoyMDA4LTA1LTEwIDA5OjMwICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBSZW1vdmUgdGhlIGlubGluZSBkZWNsYXJhdGlvbnMgZm9yCiAgIGZ1bmN0aW9ucyB0aGF0IGxhY2sgYW4gaW5saW5lIGRlZmluaXRpb24uCgoyMDA4LTA1LTA5IDIxOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgCiAgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAKICAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogVXNlIE5VTEwgaW5zdGVhZCBvZiAwIGZvciBOVUxMIHBvaW50ZXJzLgogICBVc2UgY2FzdGVkIDAncyBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDA4LTA1LTA5IDIxOjI3ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nCiAgICgpXS4KCjIwMDgtMDUtMDkgMjE6MjMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jOgoKICAgUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDgtMDUtMDkgMTk6MTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBNaXNzaW5nIE1ENSBzaWduYXR1cmUgZmlsZSBmb3IgemlwIHJlbGVhc2UKCjIwMDgtMDUtMDkgMTk6MTUgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBCYXNpYyBkb2N1bWVudGF0aW9uIGFuZCBoZWxwL3VzYWdlIG1lc3NhZ2VzLgoKMjAwOC0wNS0wOCAxNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRHJvcCBzdXBwb3J0IGZvciB0aGUgaW50ZXJpbSBTSU9DREVWUFJJVkFURS1iYXNlZCBpb2N0bCBjYWxscy4KICAgU0lPQ0dNSUlQSFkvU0lPQ0dNSUlSRUcgaGF2ZSBiZWVuIGRlZmluZWQgc2luY2UgYXQgbGVhc3QgU2VwdAogICAyMDAxIChrZXJuZWwgMi40LjEwKSwKICAgc28gdGhlIHJpc2sgb2YgY2FsbGluZyBhbiBpbmFwcHJvcHJpYXRlIHByaXZhdGUgaW9jdGwgaXMgcHJvYmFibHkKICAgZ3JlYXRlciB0aGFuCiAgIHRoYXQgb2YgbWlzc2luZyBpbmZvcm1hdGlvbiBmcm9tIGFuIGFuY2llbnQgc3lzdGVtLgoKMjAwOC0wNS0wOCAwOTowMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG9uJ3QgdHJ5IHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFub255bW91cyB1c2Vycy4KICAgKEFuIGludmFsaWQgdHJhcHNlc3MgZGlyZWN0aXZlIG1heSBjcmFzaCB0aGUgYWdlbnQpCgoyMDA4LTA1LTA2IDA4OjM4ICBqc2FmcmFuZWsKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSByZW1vdmUgJXtsaWJjdXJyZW50fQogICAtIGFkZCBvcGVuc3NsLWRldmVsIHRvIGJ1aWxkIHJlcXVpcmVtZW50cwogICAtIGRvbid0IHVzZSBQcm92aWRlczogdW5sZXNzIG5lY2Vzc2FyeSwgbGV0IHJwbWJ1aWxkIGNvbXB1dGUgdGhlCiAgIHByb3ZpZGVkIGxpYnJhcmllcwogICAtIGRvbid0IHNwZWNpZnkgUFJFRklYIGZvciBwZXJsCgoyMDA4LTA1LTA2IDA4OjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgcmV2ZXJ0aW5nIGFjY2lkZW50YWx5IGNvbW1pdGVkIGZpbGVzCgoyMDA4LTA1LTA2IDA4OjM0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSByZW1vdmUgJXtsaWJjdXJyZW50fQogICAtIGFkZCBvcGVuc3NsLWRldmVsIHRvIGJ1aWxkIHJlcXVpcmVtZW50cwogICAtIGRvbid0IHVzZSBQcm92aWRlczogdW5sZXNzIG5lY2Vzc2FyeSwgbGV0IHJwbWJ1aWxkIGNvbXB1dGUgdGhlCiAgIHByb3ZpZGVkIGxpYnJhcmllcwogICAtIGRvbid0IHNwZWNpZnkgUFJFRklYIGZvciBwZXJsCgoyMDA4LTA1LTA1IDIxOjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE1lY2hhbmlzbSB0byBzZWxlY3QgdXBjb21pbmcgbW9kdWxlIHJlLXdyaXRlcyBhbmQvb3IKICAgcmVjZW50bHktZGVwcmVjYXRlZCBtb2R1bGVzLgoKMjAwOC0wNS0wMiAxMDoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgSGFuZGxlIHVkcFRhYmxlIGluZGV4aW5nIG9uIGJvdGggUFBDIGFuZCBJbnRlbCBoYXJkd2FyZS4KCjIwMDgtMDQtMzAgMTk6NDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBnZW5lcmF0aW9uIG9mIHN0YXRpc3RpY3MKICAgb2YgaG93IG9mdGVuIGEgY2VydGFpbiBkZWJ1ZyBsb2cgbGV2ZWwgaXMgdHJpZ2dlcmVkLgoKMjAwOC0wNC0zMCAxOTo0MSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIHZhcmlhYmxlIGRlYnVnX251bV9leGNsdWRlZC4KICAgVGhlcmUgaXMgbm90aGluZyB0aGF0IHNldHMgZGVidWdfbnVtX2V4Y2x1ZGVkIGFuZCB0aGVyZSBpcyBubyB3YXkKICAgdG8gZm9yIGl0CiAgIHRvIGFmZmVjdCB0aGUgcmVzdWx0IG9mIGFueSBmdW5jdGlvbi4KCjIwMDgtMDQtMzAgMDU6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUmVtb3ZlIHVubmNlc3NhcnkgcHJvdG90eXBlcwoKMjAwOC0wNC0yMyAxNjozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhY3R1YWxseSB1c2UgdGhlIGJyYW5jaCBwYXRoLCBkb24ndCBqdXN0IHNheSB5b3UncmUgZ29pbmcgdG8KCjIwMDgtMDQtMTkgMjI6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBkb24ndCBkZXBlbmQgb24gT0lEIHJlc29sdXRpb24gZm9yIGRpc21hbiBsaW5rVXBEb3duTm90aWZpY2F0aW9ucwoKMjAwOC0wNC0wOCAyMDo0MyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBBY2NlcHQgdGhhdCBwZW9wbGUgd2lsbCB0cnkgdG8gY29tcGlsZSB0aGlzIGNvZGUgd2l0aCBwcmUtQU5TSQogICBjb21waWxlcnMgYW5kIGNoYW5nZSBpdCB0byBoYW5kbGUgdGhhdCBjYXNlLgoKMjAwOC0wNC0wOCAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIGV4dHJhIGJyYWNlIGluIHRoZSBkb2NzIHBvaW50ZWQgb3V0IGJ5CiAgIEphc29uIE1hcnRpbgoKMjAwOC0wNC0wOCAyMDozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGUgYW5kIHJlc3RydWN0dXJlIGEgYml0IHRvIGZpeCBhIGZldyBwcm9ibGVtcwoKMjAwOC0wNC0wNyAyMDowNiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQXMgdGhlIG51bGwgaGFuZGxlciBpcyBwZXJmZWN0bHkgY2FwYWJsZSBvZgogICBoYW5kbGluZyBHRVRfQlVMSyByZXF1ZXN0cyBpdCBpcyBub3cgbWFya2VkIGFzIHN1Y2ggaW4gdGhlCiAgIHJlZ2lzdHJhdGlvbi4KCjIwMDgtMDQtMDcgMTQ6MDAgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFub3RoZXIgb3Zlci1zaG9ydCBERVNDUklQVElPTiBidWZmZXIuCgoyMDA4LTA0LTA3IDEzOjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBIYW5kbGUgbG9uZ2VyIERFU0NSSVBUSU9OL1JFRkVSRU5DRSBzdHJpbmdzIGluIENhcGFiaWxpdGllcwogICBzdGF0ZW1lbnRzLgogICAoQ29uc2lzdGVudCBwcm9jZXNzaW5nIHdpdGggb3RoZXIgTUlCIGRlZmluaXRpb24gbWFjcm9zKS4KICAgRml4IHByb3ZpZGVkIGJ5IEFsZWtzYW5kciBMb21hbm92LgoKMjAwOC0wNC0wMiAxOTozNSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWVudGlvbiBsaWJlbGYgcGFja2FnZSByZW5hbWUKCjIwMDgtMDMtMjkgMDk6MjkgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIAogICAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBORVdTOiBzbm1wZDogRW5hYmxlIGF1dG9tYXRpYyByZXJlZ2lzdGVyaW5nIG9mIHN5c09SVGFibGUgZW50cmllcwogICBmcm9tIEFnZW50WCBzdWJhZ2VudHMuIEFkZCB0aGUgc3lzT1JUYWJsZSBpbnRlcmZhY2UgdG8gdGhlCiAgIGluY2x1ZGUgZGlyZWN0b3J5LiBSZXdyaXRlIHRoZSBzeXNPUlRhYmxlIG1vZHVsZSB0byB1c2UgdGhlCiAgIHRhYmxlX2NvbnRhaW5lciBoYW5kbGVyLgoKMjAwOC0wMy0yNyAwMzoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZSwgZGlzdC9uZXQtc25tcC5zcGVjLCBkaXN0L3BhdG1lOgoKICAgdW5jb21taXQgMyBhY2NpZGVudGFsIG11bHRpcGxlIGZpbGUgY29tbWl0cwoKMjAwOC0wMy0yNyAwMzoxOCAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UsIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIGRpc3QvcGF0bWU6CgogICB2YXJpb3VzIHJld29yZGluZywgcmVzdHJ1Y3R1cmluZyBhbmQgcHJvcGVyIGZpbGUgcmVwbGFjZW1lbnQKICAgc2NoZW1lCgoyMDA4LTAzLTI2IDA3OjUyICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBmcm9tICJBbGVrc2FuZHIgTG9tYW5vdiI6IENvcnJlY3RlZCByZWdpc3RlcmluZyBvZgogICBtdWx0aXBsZSBwcmVtaWIgY29uZmlnIGhhbmRsZXJzIHNvIHRoYXQgYWxsIG9mIHRoZW0gZ2V0CiAgIHJlZ2lzdGVyZWQgYXMgcHJlbWliIGhhbmRsZXJzIGFzIG9wcG9zZWQgdG8gdGhlIGVhcmxpZXIgYmVoYXZpb3VyCiAgIHdoZXJlIHRoZXkgYWx3YXlzIGdvdCByZWdpc3RlcmVkIGFzIG5vcm1hbCBjb25maWcgaXRlbXMuCgoyMDA4LTAzLTI2IDA3OjE2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEdldCB0aGUgdGFibGVfY29udGFpbmVyIGRhdGEgZnJvbSB0aGUgcmlnaHQKICAgaGFuZGxlciB3aGVuIHVucmVnaXN0ZXJpbmcgYSB0YWJsZV9jb250YWluZXIuCgoyMDA4LTAzLTI1IDA2OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVtb3ZlIHNwdXJpb3VzIHByaW50ZiBmcm9tIHVucmVnaXN0ZXJfbWliX2NvbnRleHQKCjIwMDgtMDMtMjQgMTc6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMTg3NDA1OSwxNzM3MDY4OiBIYW5kbGUgTUlCIG9iamVjdHMgd2l0aAogICBlbWJlZGRlZCBoeXBoZW5zCgoyMDA4LTAzLTI0IDE3OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTg2NjY1NTogSGFuZGxlIHBhcnNpbmcgaW52YWxpZCBPSUQKICAgc3ViaWRlbnRpZmllcnMKCjIwMDgtMDMtMjQgMTY6NTMgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDE5MjE4NjE6IEF2b2lkIGVuZGxlc3MgbG9vcCBhZnRlcgogICB0cnVuY2F0aW5nIDY0Yml0IGludAoKMjAwOC0wMy0yNCAxNTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODIzMzgxOiBWYWxpZCBNSUIgZGlyZWN0b3J5IHNlYXJjaCBwYXRoIG9uCiAgIFdpbmRvd3MKCjIwMDgtMDMtMjIgMDg6NDIgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHNubXB0cmFwZCB3aXRob3V0IGVtYmVkZGVkIHBlcmwgYWdhaW4uCgoyMDA4LTAzLTIxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIE5FV1M6IGxpYnNubXA6IFBBVENIOiAxODk1OTI3OiBmcm9tIGpodW04MTExOiBjaGFuZ2Ugb2Jzb2xldGUKICAgcmVjdi9zZW5kIHRvIHJlY3Zmcm9tL3NlbmR0bwoKMjAwOC0wMy0yMSAxNzo0OSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDE4NjIxNzc6IGZyb20gd2FmZmxlc291ZmZsZTogbWFkZSBjb2RlCiAgIG1vcmUgd2luZG93cy9jeWd3aW4gY29tcGlsZXIgZnJpZW5kbAoKMjAwOC0wMy0yMSAxNzo0NSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMTg3Nzg0MDogZml4IE1JQiBsYWJlbCBhbmQgaW5kZXhpbmcgZHVlCiAgIHRvIHNsaWdodGx5IGJyb2tlbiByZWdleHAKCjIwMDgtMDMtMjEgMTc6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MjAzOTA6IGZyb20gd2lsbWVzajogZml4IHJlZ2lzdHJhdGlvbiBvZgogICB0YWJsZXMgd2l0aCAuMCBhcyBJSURzCgoyMDA4LTAzLTIxIDE3OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0NjQ1OiBmcm9tIHdpbG1lc2o6IGJldHRlciBlbmQgb2YgbWliCiAgIHN1cHBvcnQKCjIwMDgtMDMtMjEgMTc6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDY0MzogZnJvbSB3aWxtZXNqOiBmaXggaXNzdWVzIHdpdGgKICAgZW1iZWRkZWQgcGVybCByZXR1cm5pbmcgMCBiZWluZyByZWNsYXNzaWZpZWQgYXMgYSB3cm9uZyBkYXRhIHR5cGUKICAgd2hlbiBhbiBpbnQgd29ya3MuCgoyMDA4LTAzLTIxIDE3OjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSCAxOTE0Mzk4OiBmcm9tIHdpbG1lc2o6IGluc3RhbGwKICAgbWliMmMucGVybC5jb25mCgoyMDA4LTAzLTIxIDE3OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0MzkzOiBmcm9tIHdpbG1lc2o6IHJlZ2lzdGVyQWdlbnQgY2FuCiAgIG5vdyBiZSBydW4gbXVsdGlwbGUgdGltZXMKCjIwMDgtMDMtMjEgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkwOTgxMzogZml4IHRhYmxlX2l0ZXJhdG9yIGhpbnQgdG8gZ2V0X2ZpcnN0CiAgIHdoZW4gU09SVEVEIGZsYWcgaXMgc2V0CgoyMDA4LTAzLTIxIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogUEFUQ0g6IDE5MDgyODg6IGZyb20gYW5lZGVsOiBJZiBzbm1wdHJhcGQgLWYKICAgaW50ZXJydXB0ZWQgd2l0aCBjdHJsLUMgcnVuIHBlcmwgRU5EIGJsb2NrCgoyMDA4LTAzLTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTkwMjExMzogZnJvbSBqc2FmcmFuZWs6IGZpeCBlcnJvciBsb2cgaW4KICAgaW5ldE5ldFRvTWVkaWF0YWJsZQoKMjAwOC0wMy0yMSAxNjoxMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTkwMjEwNTogZnJvbSBqc2FmcmFuZWs6IGhpZGUgYW5kIGltcHJvdmUgZGVidWcKICAgbG9nIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgcGF0Y2ggMTcwNTU5NAoKMjAwOC0wMy0wNyAxNTo0MiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaDoKCiAgIEhBTC1iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaHJGU1RhYmxlLgoKMjAwOC0wMy0wNyAxNTo0MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tb3VudHMuaDoKCiAgIEluaXRpYWwgSEFMIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24KCjIwMDgtMDMtMDcgMTU6MzUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIGdldHZmc3N0YXQoKQoKMjAwOC0wMy0wNyAxNTozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODIzMzgxOiBVc2UgYSBzZW5zaWJsZSBkZWZhdWx0IE1JQkRJUiBwYXRoCiAgIG9uIEN5Z3dpbi9NaW5HVwogICAoU2hvdWxkIHRoaXMgYmUgYXBwbGllZCB0byBvdGhlciBicmFuY2hlcz8gSWYgc28sIHdoaWNoPykKCjIwMDgtMDItMjcgMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBGaXggQysrIHN0eWxlIGNvbW1lbnQKCjIwMDgtMDItMjcgMDc6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgVGhlIExWTSBkaXNrIHBhdGNoIGludHJvZHVjZWQgYSBtZW1vcnkgbGVhay4gVGhpcyByZW1vdmVzIHRoZQogICBsZWFrLgoKMjAwOC0wMi0yNiAyMzoyNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtYWtlIHRoZSBzY3JpcHQgbW9yZSBoaWVyYXJjaGlhbC9zdHJ1Y3R1cmVkCgoyMDA4LTAyLTI2IDIxOjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBDSEFOR0VTOiBJbml0YWxpemUgbG9nIHN1YnN5c3RlbQoKMjAwOC0wMi0yNiAyMTozNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IEZpeCBmb3IgcmVmcyB0byBPQkpFQ1QtR1JPVVAgaW4gYW5vdGhlciBNSUIKCjIwMDgtMDItMjYgMjE6MjMgIG5iYQoKICAgKiAgbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dCwgbWlicy9ESVNNQU4tRVhQUkVTU0lPTi1NSUIudHh0LCAgIAogICAgICBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwgbWlicy9JUC1NSUIudHh0LCAgIAogICAgICBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0LCBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgICAKICAgICAgbWlicy9TTk1QLVVTTS1BRVMtTUlCLnR4dCwgbWlicy9TTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQi50eHQsICAgCiAgICAgIG1pYnMvVFJBTlNQT1JULUFERFJFU1MtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBhdXRvZXh0cmFjdGVkIG1pYiBmaWxlcyAoYmxhbmsgbGluZSBjaGFubWdlcykKCjIwMDgtMDItMjYgMjA6NDYgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIGZvciBjdXJyZW50bHkgcmVsZWFzZWQgUkZDIE1JQlMKCjIwMDgtMDItMjYgMjA6NDUgIG5iYQoKICAgKiAgbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgICAKICAgICAgbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQsIG1pYnMvSUFOQS1SVFBST1RPLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIElBTkEgTUlCUyB0byBjdXJyZW50IHZlcnNpb24KCjIwMDgtMDItMjUgMjI6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgYWRkIG1pc3NpbmcgI2luY2x1ZGU8cHRocmVhZC5oPiBmb3IgcHRocmVhZF9tdXRleF90CgoyMDA4LTAyLTI1IDIyOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgYSBiZXR0ZXIgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTIzIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcwNTU5NDogZnJvbSBjX3ZhcnVuOiBGaXggdmFyaW91cyBhc3BlY3RzIG9mCiAgIGxpbnV4IGlwQWRkcmVzc1ByZWZpeFRhYmxlIHJlcG9ydGluZy4KCjIwMDgtMDItMjIgMjM6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg5NjExODogcGF0Y2ggZnJvbSBqc2FmcmFuZWs6IGZpeCBpZlRhYmxlCiAgIDMyYml0IGNvdW50ZXJzIG9uIGxpbnV4CgoyMDA4LTAyLTIyIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgcGF0Y2ggZnJvbSBqc2FmcmFuZWs6IENyZWF0ZSBpcHY2U2NvcGVab25lRW50cnkgb25seSBmb3IKICAgbGluay1sb2NhbCBhZGRyZXNzZXMgYW5kIG9ubHkgb25jZSBwZXIgaW50ZXJmYWNlLgoKMjAwOC0wMi0yMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogUEFUQ0g6IDE4OTgyMDQ6IGZyb20gTWlrZSBXZXNjb3R0OiBmaXggYnVnCiAgIDE4OTgxOTggaW4gcGFyc2UuYyB0byBhdm9pZCBhIHNlZ2ZhdWx0IHdoZW4gcGFyc2luZyBicm9rZW4gbWlicy4KCjIwMDgtMDItMTggMTI6MTEgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ2xhcmlmeSB0aGUgbmVlZCB0byByZXNldCBidWZmZXIgbGVuZ3RoIHdoZW4gY2FsbGluZyAncmVhZF9vYmppZCcKICAgcmVwZWF0ZWRseS4KCjIwMDgtMDItMTggMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTggMDc6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBtYWtlIHN1cmUgdGhhdCBuZXRzbm1wX2lxdWVyeV91c2VyX3Nlc3Npb24gZXQgYWwuIGFyZSBwcm9wZXJseQogICBkZWNsYXJlZAoKMjAwOC0wMi0xNyAxODowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDgtMDItMTcgMDg6MzggIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0xNSAxNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgbG93ZXJlZCBmYWlsdXJlIG1lc3NhZ2UgdG8gaW5zZXJ0IHRvIGRlYnVnOyByZW1vdmVkIENWUyBJRCBmcm9tCiAgIHRvcCBvZiBsaW5lCgoyMDA4LTAyLTE1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBkb24ndCBpbnNlcnQgZW1wdHkgZW50cmllcwoKMjAwOC0wMi0xNSAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgcGF0Y2ggZnJvbSBqc2FmcmFuZSBvbiBpcmM6IG1ha2UgaXB2NiBlbnRyaWVzIHdvcmsgb24gNjQgYml0CiAgIG1hY2hpbmVzCgoyMDA4LTAyLTE1IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHBhc3MgMSBhdCBhIG5ldyBtYWtlcmVsZWFzZSBzY3JpcHQ7IGN1cnJlbnRseSBqdXN0IGNvbnZlcnRlZCBjb2RlCiAgIG1vc3RseQoKMjAwOC0wMi0xNSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICByZW1vdmUgbGludXggY2hlY2tzCgoyMDA4LTAyLTE1IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBSREFfUlRBCgoyMDA4LTAyLTE1IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBkb24ndCBjb21waWxlIGluIHRoZSBpcHY2IGNvZGUgaWYgTkRBX1JUQSBpc24ndCBkZWZpbmVkCgoyMDA4LTAyLTE1IDEzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTUgMDY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIG1pbm9yIGJ1ZyB1cGRhdGUgZnJvbSBjX3ZhcnVuCgoyMDA4LTAyLTE1IDA1OjEzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzA0MTA1OiBmcm9tIGNfdmFydW46IEFkZCBJUHY2IHN1cHBvcnQgdG8KICAgdGhlIGluZXROZXRUb01lZGlhVGFibGUgZm9yIGxpbnV4CgoyMDA4LTAyLTE1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIHJlcXVpcmUgbmV3IGlwdjZTY29wZVpvbmVJbmRleFRhYmxlIHRhYmxlCgoyMDA4LTAyLTE1IDA1OjAwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZW51bXMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9vaWRzLmgsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc2NvcGV6b25lLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MTU0MDU6IGZyb20gY192YXJ1bjogSW1wbGVtZW50IHRoZQogICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSBvbiBsaW51eAoKMjAwOC0wMi0xNSAwNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcxNjU0ODogZnJvbSBteWFtYXRvOiBGaXggaGVscCBvdXRwdXQgc28KICAgbm8gc3BhY2UgaXMgcHJpbnRlZCBiZXR3ZWVuIC1EIGFuZCBhcmd1bWVudHMuCgoyMDA4LTAyLTE1IDA0OjI3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MjM2MTE6IGZyb20gRW1pIFlhbmFnaTogTmV3IGltcGxlbWVudGF0aW9uCiAgIG9mIHRoZSBybW9uIGFsYXJtVGFibGUKCjIwMDgtMDItMTUgMDM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4OTM0Njg6IGZyb20gZ2tvZW5pZzogZml4ZWQgcmVnaXN0cmF0aW9uIG9mCiAgIE9JRHMgd2l0aCByYW5nZXMKCjIwMDgtMDItMTQgMjE6NDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbiAodW5icmVha3MgdGhlIGJ1aWxkIG9uIGEgZmV3CiAgIHN5c3RlbXMpCgoyMDA4LTAyLTE0IDAwOjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUgZm9yIHNwYXJ0YQoKMjAwOC0wMi0xMyAyMzozNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIENPTlRBSU5FUl9JTlNFUlQgdG8gbm90IGRvIHBhcnRpYWwgaW5zZXJ0cwogICBpbiBjb250YWluZXJzIHdpdGggbXVsdGlwbGUgaW5kaWNlcyB3aGVuIG9uZSBpbnNlcnQgZmFpbHMuCgoyMDA4LTAyLTEzIDIzOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIHRoZSBjcmVhdGVVc2VyIGxpbmUgdG8gc3BlY2lmeSB0aGUgLWUgZmxhZyAocmVzcG9uZGluZyB0byBhCiAgIGNvbXBsYWludCBhYm91dCBpdCBiZSBtaXNzaW5nKQoKMjAwOC0wMi0xMyAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3Nzk1NTg6IGZyb20gYnJ1bWJzOiBJbXBsZW1lbnQgdGhlCiAgIGRpc2tJT0xBMSw1LDEwIG9iamVjdGlvbnMgaW4gdGhlIGRpc2tpby1taWIgdW5kZXIgbGludXgKCjIwMDgtMDItMTMgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODM3MzM6IFB1dCB0aGUgcGFja2FnZSB2ZXJzaW9uIG51bWJlcgogICBpbnRvIHRoZSBoclNXSW5zdCB0YWJsZSBmb3Igc29sYXJpcy4KCjIwMDgtMDItMTMgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc4MzQyMzogZnJvbSBqc2FmcmFuZWs6IHJldHVybiBhIGNvcnJlY3QKICAgaXB2NkludGVyZmFjZUlkZW50aWZpZXIgb2YgbG9vcGJhY2sgb24gbGludXgKCjIwMDgtMDItMTMgMTY6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODQ3NDc6IGZyb20ganNhZnJhbmVrOiBGaXggbG9uZyB1c2FnZQogICBmb3IgaXAgYWRyZXNzZXMgb24gNjQgYml0IHN5c3RlbXMgaW4gdmFyaW91cyBNSUItSUkgdGFibGVzLgoKMjAwOC0wMi0xMyAxNjowNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4MDY1MDE6IGZyb20gam1hZ2RlcjogQWRkIGEgc25tcF92M3RyYXAKICAgZnVuY3Rpb24gZm9yIHNlbmRpbmcgdHJhcHMgd2l0aCBhIHNubXB2MyBjb250ZXh0CgoyMDA4LTAyLTEzIDE2OjAyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjEwMjogZnJvbSBqc2FmcmFuZWs6IHN1cHBvcnQgbG9uZ2VyCiAgIGludGVyZmFjZSBuYW1lcyBvbiBsaW51eAoKMjAwOC0wMi0xMiAyMzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODA3NDg5OiBmaXggaWdub3Jpbmcgb2YgZGlzcGxheSBoaW50cy4KCjIwMDgtMDItMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIAoKMjAwOC0wMi0xMiAyMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDE4MjM0NjUgZnJvbSBqc2FmcmFuZWs6IGZpeCBpY21wIGNhY2hlCiAgIHJlZ2lzdHJhdGlvbgoKMjAwOC0wMi0xMiAyMjoxNiAgaGFyZGFrZXIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODI4NjAyOiBmcm9tIHRnb2hhZDogU3VwcG9ydCBpcERlZmF1bHRUVEwKICAgYW5kIGlwRm9yd2FyZGluZyBTRVRzIG9uIGxpbnV4CgoyMDA4LTAyLTEyIDIyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg2NjgyMzogZnJvbSBqc2FmcmFuZWs6IHRydW5jYXRlIDMyIGJpdAogICBjb3VudGVyIHZhbHVlcyBvbiA2NCBiaXQgbWFjaGluZXMgdG8gYXZvaWQgYm9ndXMgd2FybmluZ3MuCgoyMDA4LTAyLTEyIDE5OjA1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NDk5MDM6IGZyb20ganNhZnJhbmVrOiBkbyBub3Qgc3BhbSBsb2cKICAgd2l0aCBhc3NlcnRzIHdoZW4gWEVOIGlzIHVzZWQKCjIwMDgtMDItMTIgMTg6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODc1MDIyOiBmcm9tIHNlbV9wcmc6IGltcHJvdmUgY2FsbGJhY2sKICAgbG9ja2luZyBtZWNoYW5pc21zCgoyMDA4LTAyLTEyIDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg3OTI2MTogZnJvbSBhbWVzYnVyeTogQWRkIGluIGluYWN0aXZlCiAgIG1lbW9yeSB0byB0aGUgY2FjaGVkIHJlcG9ydCBmb3IgZnJlZWJzZAoKMjAwOC0wMi0xMiAxNTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL3NubXB2My5jOgoKICAgTkVXUzogbGlic25tcDogUGF0Y2g6IDE4ODIwNjk6IGZyb20gbnNjaHJlbms6IEFkZCBhIGV4YWN0RW5naW5lSUQKICAgdG9rZW4gZm9yIHNwZWNpZnlpbmcgYW4gZXhhY3QgU05NUHYzIGVuZ2luZUlEIHRvIHVzZQoKMjAwOC0wMi0xMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBtaW5vciBjbGVhbnVwcyBmcm9tIHJldmlld2luZyBwYXJ0cyBvZiB0aGUgY29kZQoKMjAwOC0wMi0xMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4ODI2MjE6IGZyb20ganNhZnJhbmVrOiBBZGQgTFZNIHN1cHBvcnQgdG8KICAgdGhlIHBhcnRpdGlvbiB0YWJsZQoKMjAwOC0wMi0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcXVvdGVkIHN0cmluZ3MgaW4gaGVscCBvdXRwdXQKCjIwMDgtMDEtMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkZWQgdmFjbV9jb25mIHRvIGV4aXN0aW5nIGNvbmZpZ3VyZSBmaWxlcyAoZm9yIHRyYXBkIHRvbykKCjIwMDgtMDEtMjAgMDc6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODcyMjY2OiBQRVJMQ0MgY2hlY2sgZmFpbHMgZm9yIENDIHdpdGgKICAgb3B0aW9ucwoKMjAwOC0wMS0xNyAwMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBmaXggZGVmYXVsdCBtaWJzIHRvIGluY2x1ZGUgdmFjbV9jb25mIHRvbwoKMjAwOC0wMS0xNyAwMDowOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI2MDg4OiBmcm9tIEphbiBTYWZyYW5lazogVXNlIHRoZSByaWdodAogICBpbnRlcmZhY2UgdCByZWFkIHRoZSBuZXRtYXNrCgoyMDA4LTAxLTE2IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBIYW5kbGUgZGV2aWNlIG5hbWVzIHdpdGggZW1iZWRkZWQgc3BhY2VzIGluCiAgIFVDRC1TTk1QLU1JQjo6ZHNrRGV2aWNlCgoyMDA4LTAxLTE2IDAwOjQ3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4Mjg4Mzk6IGZyb20ganNhZnJhbmVrIHRvIHByb3ZpZGUgYmV0dGVyCiAgIGhhbmRsaW5nIG9mIGRpc2tzIG1vdW50ZWQgb24gcGF0aHMgd2l0aCBlbWJlZGRlZCBzcGFjZXMKCjIwMDgtMDEtMTUgMTY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY292ZXJpdHkgYnVnIDIwNTogZG91YmxlIGNoZWNrIHBvaW50ZXIgdGhhdCBzaG91bGQgbmV2ZXIgYmUgbnVsbAoKMjAwOC0wMS0xNCAyMzo1NSAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmg6CgogICBVcGRhdGUgdGhlIHNubXAgYW5kIHN5c3RlbSBtaWJzIHRvIGJlIGhhbmRsZXIgYmFzZWQKCjIwMDgtMDEtMTMgMDA6MDAgIG1hZ2ZyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsICAKICAgICAgIGRveHlnZW4uY29uZiwgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbCwgc2Vkc2NyaXB0LmluLCAgIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTGVzc2VuIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRoYXQgbmVlZCB0byBiZSBjaGFuZ2VkIGluIG9yZGVyIHRvCiAgIGRvIGEgcmVsZWFzZS4KICAgQ2hhbmdlIHRvIHVzZSB0aGUgY29uZmlndXJlIHZlcnNpb24gbnVtYmVyIGFzIHRoZSBwYWNrYWdlIHZlcnNpb24KICAgbnVtYmVyLgoKMjAwOC0wMS0wOSAyMTo1OCAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBEZWxldGUgdW51c2VkIHN0YXRpYyBmdW5jdGlvbnMKCjIwMDgtMDEtMDYgMTM6MDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgZXJyb3Jfc3RyaW5nIHByaXZhdGUgYW5kIHJlYWRvbmx5CgoyMDA3LTEyLTIyIDE5OjIyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgyNjE3NDogQ2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyB3aGVuCiAgIHByaW50aW5nIHZhbHVlcy4KCjIwMDctMTItMjEgMjM6MTkgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNzQ3NzMzOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiB1bmRlZmluZWQKICAgdmFsdWVzLgogICBQYXRjaCBzdXBwbGllZCBieSBNYXR0aSBMaW5uYW52dW9yaQoKMjAwNy0xMi0yMSAyMTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NDgyMDY6IFByb3RlY3QgYWdhaW5zdCBmYWlsdXJlcyB0byBvcGVuCiAgIC9ldGMvbXRhYiAob3IgZXF1aXYpCgoyMDA3LTEyLTIxIDE4OjQyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBCcmluZyBvcmRlciBvZiBhZ2VudCBsaWJyYXJ5IGxpbmtpbmcgaW50byBsaW5lIHdpdGggYWdlbnQKICAgTWFrZWZpbGUuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgU3RldmUgTWNDYXJ0aHkuCiAgIFFuOiBTaG91bGQgNS4yLnggYW5kIDUuMy54IGFsc28gdXNlIHRoZSBzYW1lIG9yZGVyPwogICAoZm9yIGJvdGggYWdlbnQgTWFrZWZpbGUgYW5kIG5ldC1zbm1wLWNvbmZpZykKCjIwMDctMTItMjEgMTM6MTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgwMjgzMzogRW5zdXJlIHNubXB0cmFwZCBidWlsZHMgd2l0aAogICAtLWRpc2FibGUtc25tcHYxLzJjCgoyMDA3LTEyLTIwIDE2OjI2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgzNDUzOTogQ29uc2lzdGVudCBoYW5kbGluZyBvZiBPSUQgcGFyc2luZy4KICAgQXBwbGllcyBwYXRjaCAjMTgzNDk4MywgcHJvdmlkZWQgYnkgRG1pdHJ5IEthcmFzaWsKCjIwMDctMTItMjAgMTY6MDUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vcmUgaW50ZXJuYWwgcXVlcnkgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMTItMjAgMTQ6MjAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTgyMjM2MDogRml4IHNwaW5sb2NrIGhlbHBlciBlcnJvciBoYW5kbGluZy4KCjIwMDctMTItMjAgMTQ6MTggIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNzk1ODQwOiBTaWduZWQgMzItYml0IHRydW5jYXRpb24gbG9nZ2VkCiAgIGFzIGRlYnVnIG1lc3NhZ2UgcmF0aGVyIHRoZW4gZXJyb3IuCgoyMDA3LTEyLTIwIDE0OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3OTI4OTA6IGluY2x1ZGUgQ0lGUyBtb3VudHMgd2hlbiBza2lwcGluZwogICByZW1vdGUgZmlsZXN5c3RlbXMKCjIwMDctMTItMjAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NzEyMjE6IFJldGFpbiBpZkxhc3RDaGFuZ2UgaW5mb3JtYXRpb24gb24KICAgZGF0YSByZWxvYWQuCgoyMDA3LTEyLTIwIDE0OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzU4MjEyOiBIYW5kbGluZyBtaXNzaW5nIHZhcmlhYmxlIHR5cGVzCiAgIChJcEFkZHJlc3MsQ291bnRlcixPcGFxdWUpCgoyMDA3LTEyLTE5IDIyOjM5ICBtYWdmcgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDb3JyZWN0IGRveHlnZW4gd2FybmluZ3MKCjIwMDctMTItMTkgMjI6MzEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgVXNlIE5FVFNOTVBfLXByZWZpeGVkIHN5bWJvbHMgd2hlbiBkZWNpZGluZyB3aGF0IHRlc3RzIHRvIHJ1biBhcwogICB0aGUgY29tcGF0IHN5bWJvbHMgYXJlbid0IGRlZmluZWQuCgoyMDA3LTEyLTE5IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCVUcgMTgzMTU2ODogc3RyZHVwIG1pZ2h0IGZhaWwgYW5kIHJldHVybiBOVUxMIC0gdGFrZSBjYXJlIG9mIGl0CiAgIGluIHRoaXMgY2FzZSBhdCBsZWFzdC4KCjIwMDctMTItMTkgMjE6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCVUcgMTgyNDg4MzogUmVtb3ZlIG1lbW9yeSBsZWFrCgoyMDA3LTEyLTE5IDIwOjQ2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IEJVRzogMTg1MTA0NzogRG8gbm90IHRyeSB0byBkbyBtb3JlIGhhbmRsaW5nIG9mIGEgdmFsdWUKICAgb25jZSBpdCBpcyBmb3VuZCB0byBiZSBjb3JydXB0IGJ5IHRoZSB3YXRjaGVyIGhlbHBlciwgdGh1cwogICBhdm9pZGluZyBjb2RlIHRoYXQgY291bnRzIG9uIGdldHRpbmcgdGhlIHJpZ2h0IHR5cGUuIFRoaXMgYnVnIHdhcwogICBmb3VuZCBieSBDaGFybGllIE1pbGxlciwgSW5kZXBlbmRlbnQgU2VjdXJpdHkgRXZhbHVhdG9ycy4KCjIwMDctMTEtMjcgMDk6NTYgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBDbGFyaWZ5IHVzZSBvZiB0aGUgLUEgKGxvZyBhcHBlbmQpIG9wdGlvbi4KCjIwMDctMTEtMjIgMTU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIGNoZWNrIHJlcXVlc3QsIG5vdCByZXF1ZXN0cy4gcmVwb3J0ZWQgYnkgdWxpbSBvbiBpcmMKCjIwMDctMTEtMjIgMTU6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIGNoZWNrIHJlcXVlc3QsIG5vdCByZXF1ZXN0cy4gcmVwb3J0ZWQgYnkgdWxpbSBvbiBpcmMKCjIwMDctMTEtMTkgMjE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE4MzQ2OTk6IGZyb20gYXBlcnNzb246IEZpeCAxODMzMjk0OgogICBETFBJIHByb2JsZW1zIG9uIFNvbGFyaXMgMi42CgoyMDA3LTExLTE3IDE2OjI2ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSB0aGUgd29ya2VyIGhlbHBlcnMgZnJvbSB0aGUKICAgcmVnaXN0ZXJfKl9pbnN0YW5jZSBoZWxwZXJzIGFuZCBzY2hlZHVsZSB0aGUgaW5zdGFuY2UgaGVscGVycyBmb3IKICAgcmVtb3ZhbCBpbiA1LjYKCjIwMDctMTEtMTQgMTI6MjEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5oOgoKICAgU3VwcG9ydCB2MyBsbXNlbnNvcnMgQVBJLgoKMjAwNy0xMS0xNCAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBGaXggbWlzbGVhZGluZyBkZWJ1ZyBvdXRwdXQgbWVzc2FnZS4KCjIwMDctMTEtMTMgMTM6NTkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmg6CgogICBQcmVsaW1pbmFyeSByZS13b3JraW5nIG9mIHRoZSBMTS1TRU5TT1JTLU1JQiwgdG8gc2VwYXJhdGUgb3V0CiAgIHRoZSBzZW5zb3IgaGFyZHdhcmUgcHJvY2Vzc2luZyBmcm9tIHRoZSBNSUIgdGFibGVzIHRoZW1zZWx2ZXMuCgoyMDA3LTExLTA4IDIzOjE3ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTgyNDE5Njoge2lmT3BlclN0YXR1cyxpcEFkRW50SWZJbmRleH0KICAgcmVwb3J0ZWQgaW5jb3JyZWN0bHkKICAgUGF0Y2ggc3VwcGxpZWQgYnkgQW5kZXJzIFBlcnNzb24uIEZpeGVzIEJ1Z3MgMTgyMjI3NSBhbmQgMTgxOTE4OS4KCjIwMDctMTAtMjYgMjE6MjIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIE5FV1M6IHNubXBkOiBBZGRlZCBzdXBwb3J0IGZvciBhIHVzZXIgcHJvdmlkZWQgbGVuZ3RoIHZhcmlhYmxlCiAgIGFuZCBDIHN0cmluZyB2YWx1ZXMgdG8gdGhlIHdhdGNoZXIgaGVscGVyLgoKMjAwNy0xMC0xNiAyMjozOSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVXNlICVwIHRvIHByaW50IHBvaW50ZXJzLiBEbyBub3QgdXNlICVwIHRvIHByaW50IG51bWJlcnMuCgoyMDA3LTEwLTE2IDA3OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNYWtlIHRoZSBsaWJyYXJ5IGJ1aWxkYWJsZSBhcyBDIGFnYWluLgoKMjAwNy0xMC0xNiAwNzoxNyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBtaXNjOiBhdm9pZCBjYWxsaW5nIGRlYnVnIG1hY3JvcyB3aXRoIHRvbyBtYW55CiAgIGFyZ3VtZW50cy4KCjIwMDctMTAtMTYgMDY6MTggIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE1ha2UgdGhlIGxpYnJhcnkgYnVpbGRhYmxlIGFzIEMrKyBhZ2Fpbi4KCjIwMDctMTAtMTUgMjA6NTIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGRlY2xhcmUgbmV0c25tcF9iaW5hcnlfYXJyYXlfb3B0aW9uc19zZXQ7IGluY2x1ZGUgaGVhZGVyIGZvciBpdAogICBhcyBuZWVkZWQKCjIwMDctMTAtMTUgMjA6MzkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYzoKCiAgIENvbnZlcnQgYW4gaW5maW5pdGUgbG9vcCB0byBhIGZpbml0ZSBvbmUuCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA3LTEwLTE0IDIyOjEwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIENIQU5HRVM6IG1pc2M6IEF2b2lkIGNhbGxpbmcgZGVidWcgbWFjcm9zIHdpdGggdG9vIGZldyBhcmd1bWVudHMuCgoyMDA3LTEwLTE0IDIwOjUxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxODExNDY5OiByZWFkX2NvbmZpZ19maWxlc19pbl9wYXRoKCkKICAgcmVhZHMgcGFzdCBtYWxsb2MnZCBidWZmZXIKCjIwMDctMTAtMTQgMjA6NDEgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTgxMTQ2MzogcGVybCBhc3luYyBjYWxsYmFjayBjb3JlZHVtcAogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE2MDYwNjI6IHBlcmwgYnVsa3dhbGsgKGFzeW5jKSBjb3JlZHVtcAoKMjAwNy0xMC0xNCAxOTowNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE4MDYzMzY6IGZpeCAtTFMgb3B0aW9uIHBhcnNpbmcKCjIwMDctMTAtMTQgMTI6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIGZpeCBjb21tZW50CgoyMDA3LTEwLTEzIDIzOjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgQ0hBTkdFUzogdGVzdDogZW5oYW5jZSBzbm1wbmV0c3RhdCB0ZXN0IHRvIGNoZWNrIHRjcFRhYmxlIGluIFRDUAogICBtb2RlCgoyMDA3LTEwLTEzIDIyOjI4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBCVUc6IDE4MTA4MTQ6IHRjcFRhYmxlIG1pc3NpbmcgZW50cmllcyBhbmQKICAgd3JvbmcgcG9ydHMKCjIwMDctMTAtMTIgMjE6NDYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ0hBTkdFUzogU29sYXJpczogI2RlZmluZSBORVdfTUlCX0NPTVBMSUFOVCB0byBzdXBwb3J0IFNvbGFyaXMKICAgMTBVNCsKCjIwMDctMTAtMTEgMjA6NDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGxlYWsgbWVtb3J5IHdoZW5ldmVyIGFuIHVkcCBhZGRyZXNzIGlzCiAgIGZvcm1hdHRlZC4KCjIwMDctMTAtMDMgMDE6MDIgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL0FkZDJQYXRoLm5zaSwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgLUZpeCBmb3IgYnVnIDE3Njg3OTcuIE5TSVMgSW5zdGFsbGVyIHNjcmlwdCBub3cgd2FybnMgdGhlIHVzZXIgaWYKICAgdGhlIFBBVEgKICAgaXMgPiAxMDI0IGFzIE5TSVMgY2FuIG5vdCBoYW5kbGUgdmFyaWFibGVzIGxhcmdlciB0aGFuIDEwMjQuCiAgIC1VcGRhdGVzIHRvIGJ1aWxkIGluc3RydWN0aW9ucy4KCjIwMDctMDktMzAgMjA6NTkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQ0hBTkdFUzogQlVHOiAxODAxODM1OiBBZGRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIGRlZmF1bHQKICAgdHJhbnNwb3J0cyBmb3IgYW4gYXBwbGljYXRpb24uIE9uIG9wZW4gdGhlIGRpZmZlcmVudCB0cmFuc3BvcnRzCiAgIHdpbGwgYmUgdHJpZWQgaW4gb3JkZXIuIEFzIGEgY29uc2VxdWVuY2Ugc25tcCBhbmQgc25tcHRyYXAgbm93CiAgIHdpbGwgdHJ5IGZpcnN0IHVkcCBhbmQgdGhlbiB1ZHA2IGFuZCBhZ2VudHggd2lsIHRyeSBmaXJzdCB1bml4CiAgIGFuZCB0aGVuIHRjcC4KCjIwMDctMDktMjkgMTM6MTAgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCB0cnkgdG8gbG9vayB1cCBlbXB0eSBzdHJpbmdzIGFzCiAgIGhvc3RuYW1lcyBmb3IgSVB2NgogICBBZGRpdGluYWxseSwgcHJpbnQgd2hhdCBzdHJpbmcgZmlsZWQgdG8gcmVzb2x2ZSB1c2luZyBnZXRhZGRyaW5mbwogICBmb3IgSVB2NgoKMjAwNy0wOS0yOSAwNjoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgwNDQ0NTogZnJvbSBhcGVyc3NvbjogSGlnaCBvcmRlciBiaXRzIG9mCiAgIEhDSW5PY3RldHMgbm90IHNldCBvbiBTb2xhcmlzCgoyMDA3LTA5LTI0IDIwOjQzICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKCjIwMDctMDktMjMgMDY6MDMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGZpeCAjZWxpZgoKMjAwNy0wOS0yMSAyMjowNCAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhdHRlbXB0IHRvIGZpeCBidWlsZCBmb3IgU29sYXJpcy9BSVgvSFAtVVgKICAgYnJva2VuIGJ5IHIxNjY4NAoKMjAwNy0wOS0yMCAyMTo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NDY4MzE6IGZyb20gY3VubmlqZDogZml4IHByb2Nlc3MKICAgY2hlY2tpbmcgcmFjZQogICBjb25kaXRpb24gdW5kZXIgTGludXggYW5kIHBsYXRmb3JtICNpZmRlZnMKCjIwMDctMDktMTkgMjE6MDkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IENvdmVyaXR5ICMxODM6IGZpeCBtZW1vcnkgbGVhayBpZgogICBJUF9QS1RJTkZPIGZhaWxzCgoyMDA3LTA5LTE5IDE5OjU3ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgRml4IG1pc251bWJlcmluZ3Mgb2Ygc3RlcHMuCiAgIEl0IGlzICpzbyogZGlmZmljdWx0IHRvIGZpbmQgcHJvcGVybHkgbnVtZXJhdGUgc3RhZmYgdGhlc2UKICAgZGF5cy4uLi4KCjIwMDctMDktMTYgMDk6NTEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIFJlbW92ZSBiYXNoaXNtcy4gVGhpcyBpcyBuZXRic2QgcGF0Y2gtZXQgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDk6NDUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBVc2UgY29uc3QgY2hhciogZm9yIHRlbXBvcmFyeSBjb25zdGFudCBzdHJpbmcgdmFyaWFibGUuIFRoaXMgaXMKICAgbmV0YnNkIHBhdGNoLWVhIGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA5OjQwICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgdGhlIG5hdHVyYWwgdHlwZSBvZiBpbl9hZGRyX3QncyBmb3IgY29tcGFyaXNpb25zLiBUaGlzIGlzCiAgIG5ldGJzZCBwYXRjaC1lYSBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwNzowNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ0hBTkdFUzogQlVHOiAxNzkzNTQ1OiBUYWtlIHRoZSBuYW1lIGZyb20gdGhlIHNvY2thZGRyX3VuIGluCiAgIG9yZGVyIHRvIGF2b2lkIHRyYW5zcG9ydCBzcGVjaWZpZXJzIGFuZCBvdGhlciBkZWNvcmF0aW9ucy4KCjIwMDctMDktMTQgMTM6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gaGVhZGVyIGZvciBzd3J1biByZXdyaXRlCgoyMDA3LTA5LTE0IDEzOjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZCB1dGlsaXR5IG1hY3JvCiAgIC0gYWN0aXZhdGUgbmV3IGhvc3QgcmVzb3VyY2UgcmV3cml0ZXMKCjIwMDctMDktMTQgMTM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0Lmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gY29uZmlnX3JlcXVpcmUgZm9yIG5ldyByZXdyaXRlcywgaWYgZW5hYmxlZAoKMjAwNy0wOS0xNCAxMzoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gYWRkL2ZpeCBkaXNrL3BhcnRpdGlvbiB0YWJsZXMgb24gZGFyd2luCgoyMDA3LTA5LTE0IDEzOjA5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZCBoclNXSW5zdGFsbGVkVGFibGUgZm9yIGRhcndpbgoKMjAwNy0wOS0xNCAwODo0NCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmV4cGVjdGVkIGNvbW1hbmQgYXJndW1lbnRzLgoKMjAwNy0wOS0xNCAwODowMCAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIERvY3VtZW50IHVzZSBvZiAic3ZuIGV4cG9ydCIgcmF0aGVyIHRoYW4gInN2biBjaGVja291dCIuCiAgIENvdmVyIGdlbmVyYXRpb24gb2YgdGhlIHppcCBhcmNoaXZlIGFzIHdlbGwgYXMgdGhlIHRhcmJhbGwuCgoyMDA3LTA5LTEzIDIxOjI1ICB0YW5kZXJzCgogICAqIFJFQURNRToKCiAgIGRyb3Agb2Jzb2xldGUgbWlycm9ycwoKMjAwNy0wOS0xMyAxNzoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGhvc3QgcmVzb3VyY2VzIFNXUnVuIGFuZCBTV1J1blBlcmYgVGFibGUgZm9yIGRhcndpbjkKCjIwMDctMDktMTMgMTc6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nIGFuZCBjbGVhbnVwIGluIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMKCjIwMDctMDktMTMgMTc6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGZvciBkYXJ3aW45LCByZXhlYyBhZnRlciBmb3JrIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggc29tZSBtYWNoCiAgIGNhbGxzCgoyMDA3LTA5LTEyIDE4OjUxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0byByZWFkIGEgZGlyZWN0b3J5IGhpZXJhcmN5IGludG8gYQogICBjb250YWluZXIKCjIwMDctMDktMTIgMTc6NTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IHN0cmluZyBjb21wYXJlIGNhbGxiYWNrCgoyMDA3LTA5LTEyIDE3OjUzICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgbmV0c25tcF9jYWNoZV9mcmVlIGZ1bmN0aW9uCgoyMDA3LTA5LTEyIDE3OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnIG1zZwoKMjAwNy0wOS0xMiAxNzo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgUGF0Y2hlcyBmcm9tIEFwcGxlCiAgIC0gYWRkIG9wdGlvbmFsIGNhY2hlCiAgIC0gY2hlY2svaGFuZGxlIGVycm9ycyBmb3IgYWxsIGZ1bmN0aW9ucyBpbiBpbml0IGZ1bmMKICAgLSB0eXBlZGVmIGdlbmVyYXRlZCBzdHJ1Y3QKICAgLSBza2lwIHByb2Nlc3NlZCByZXF1ZXN0cwogICAtIGNoZWNrIGZvciBudWxsIHdoZW4gZXh0cmFjdGluZyByb3cKCjIwMDctMDktMTIgMTc6MzUgIHJzdG9yeQoKICAgKiBDT1BZSU5HOgoKICAgYWRkIG5ldyBjb3B5cmlnaHQvY29udHJpYnV0b3IKCjIwMDctMDktMDUgMjA6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENvbWJpbmUgc3lzdGVtX3BhcnNlX2NvbmZpZ19zeXN7bG9jLGNvbixuYW1lfSBpbnRvIG9uZSBmdW5jdGlvbgogICBzaW5jZSB0aGV5IGFsbCBkbyB0aGUgc2FtZSB0aGluZwoKMjAwNy0wOC0yNSAxNDoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgTWFrZSBtb3N0IG9mIG5vdGlmaWNhdGlvbl9sb2cgc3RhdGljLiBNaW5pbWl6ZSB0aGUgaGVhZGVyIGZpbGUuCgoyMDA3LTA4LTIyIDIxOjU2ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBORVdTOiBhZ2VudDogc3VwcHJlc3MgYW5ub3lpbmcgInJlZ2lzdHJhdGlvbiAhPSBkdXBsaWNhdGUiCiAgIHdhcm5pbmcgZm9yIHJvb3Qgb2lkcwogICAob3RoZXJ3aXNlLCB5b3UnbGwgZ2V0IHRoaXMgbWVzc2FnZSBvbiBhbG1vc3QgZXZlcnkgc3RhcnR1cCkKCjIwMDctMDgtMjAgMDg6MDYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IKICAgVURQL0lQdjYKCjIwMDctMDgtMTcgMDk6MTAgIGR0czEyCgogICAqIEZBUToKCiAgIFN1YnZlcnNpb24sIG5vdCBDVlMuCgoyMDA3LTA4LTE3IDA4OjU5ICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IGhhbmRsaW5nIG9mIHVua25vd24gY29tbXVuaXRpZXMKCjIwMDctMDgtMTYgMTU6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRG9uJ3QganVzdCByZXBvcnQgdGhlIHByb2JsZW0gLSBpdCBtaWdodCBiZSBzZW5zaWJsZSB0byBhdm9pZAogICBjcmFzaGluZyB0aGUgYWdlbnQgYXMgd2VsbCEKCjIwMDctMDgtMTYgMTU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzQ0MTU3OiBSZXBvcnQgZHVwbGljYXRlICJleHRlbmQvZXhlYyIKICAgaWRlbnRpZmllcnMuCgoyMDA3LTA4LTE2IDE1OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfZHMuaDoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE3NDY5OTI6IEltcHJvdmUgc25tcHRyYXBkCiAgIGFjY2Vzcy1jb250cm9sIGVycm9yIG1lc3NhZ2VzLgoKMjAwNy0wOC0xNiAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUyOTM0OiBGaXggb2ZmLWJ5LW9uZSBxc29ydCBlcnJvciBpbgogICB0YWJsZSB1dGlsaXRpZXMuCgoyMDA3LTA4LTE2IDEzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0Mzc6IEZpeCBlcnJvciBpbmRleCBvbiBmYWlsaW5nIFNFVAogICByZXF1ZXN0cwoKMjAwNy0wOC0xNiAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDQ5OiBGaXggQWdlbnRYIGVycm9yIHByb3BhZ2F0aW9uCgoyMDA3LTA4LTE2IDEyOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MzQ2MzogRml4IEFnZW50WCBzdWJhZ2VudCBwaW5nIGFsYXJtCiAgIGhhbmRsaW5nCgoyMDA3LTA4LTE2IDEyOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTgyMDg6IEZpeCBtZW1vcnkgbGVhawoKMjAwNy0wOC0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzc0NjEyOiBNb3JlIHJlc2lsaWVudCBwcm9jZXNzIHN0YXR1cwogICBoYW5kbGluZwoKMjAwNy0wOC0xNiAxMTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTc3NTEyNDogRml4IGNsaWVudGFkZHIgZnVuY3Rpb25hbGl0eQoKMjAwNy0wOC0xNiAwOTozOCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE3NjgyODU6IENvdW50IE1JQiBmaWxlcyBjb3JyZWN0bHkgaW4KICAgYWRkX21pYmRpcigpCgoyMDA3LTA4LTE2IDA5OjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTc2NzcyNTogQ2xvc2UgYWxsIG5vbiBzdGFuZGFyZCBmaWxlCiAgIGhhbmRsZXMKCjIwMDctMDgtMTYgMDk6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmM6CgogICBEZWNsYXJlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUgY29ycmVjdGx5LCBhbmQgb21pdCB1bnVzZWQKICAgdmFyaWFibGVzLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTA4LTE2IDA4OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBSZWFkIGluIGFnZW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgKmJlZm9yZSogdGhlIGhlYWRlcgogICBmaWxlcyB0aGF0IG1pZ2h0IHJlbHkgb24gdGhlbS4KCjIwMDctMDgtMDUgMTY6MTYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIENoYW5nZSB3aW4zMiBidWlsZCByZWFkbWUgZmlsZXMgdG8gQ1JMRi4KCjIwMDctMDgtMDUgMTQ6MTYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBXaW4zMjogQ2hhbmdlIGJ1aWxkIGRvY3MgdG8gdXNlIGR5bmFtaWMgKERMTCkgaW5zdGVhZCBvZiBzdGF0aWMuCgoyMDA3LTA4LTAyIDEzOjQ2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBJdCBtaWdodCBiZSBzbGlnaHRseSBsZXNzIGNvbmZ1c2luZyBpZiB0aGUgbmV0U25tcEV4YW1wbGVTdHJpbmcKICAgTUlCIG9iamVjdCBkaWQgYWN0dWFsbHkgdGFrZSBzdHJpbmcgdmFsdWVzLiBQaWNreSwgSSBrbm93Li4uLgoKMjAwNy0wNy0yOCAxMzowMiAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBmaXggdGFnIGV4dHJhY3Rpb247IGNoZWNrIGZvciBlbXB0eSB0YWcgZWFybGllcgoKMjAwNy0wNy0yNSAyMjo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NjA2MzM6IGZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKCjIwMDctMDctMjEgMjE6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGZvcndhcmRpbmcgZW5jb2RpbmcKCjIwMDctMDctMjAgMDg6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFR3ZWFrIHdhcm5pbmcgbWVzc2FnZSBmb3IgKG9sZC1zdHlsZSwgaW52YWxpZCBmb3JtYXQpICJleGVjIE9JRCIKICAgZGlyZWN0aXZlcy4KCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBBcHBseSAoY29ycmVjdCkgcGF0Y2ggZnJvbSBNYXJjdXMgUnVlY2tlcnQgdG8gcmVtb3ZlIGFzc2VydHMKICAgdXNpbmcgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBSZW1vdmUgcHJldmlvdXMgcGF0Y2ggd2hpY2ggd2FzIHRoZSB3cm9uZyB2ZXJzaW9uCgoyMDA3LTA3LTE2IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBNYXJjdXMgUnVlY2tlcnQgdG8gcmVtb3ZlIGFzc2VydHMgdXNpbmcKICAgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTMgMTk6MjcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBnZW5lcmF0ZSB6aXAgZmlsZXMKCjIwMDctMDctMTIgMjE6NTEgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGZpeCBzdWJhZ2VudCBleGFtcGxlIChkb2N1bWVudGF0aW9uKQoKMjAwNy0wNy0xMiAyMToyNyAgdGFuZGVycwoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIHNubXBfc2Vzc19yZWFkIHJldHVybnMgaW50LCBub3Qgdm9pZAoKMjAwNy0wNy0wNiAyMzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcDoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1c2UgbGlidG9vbCBjbGVhbiBmb3IgcmVtb3ZpbmcgZmlsZXMgdG8gZW5zdXJlIHdlCiAgIGRlbGV0ZSBhbGwgbGlidG9vbCB0ZW1wb3JhcnkgZmlsZXMuCgoyMDA3LTA3LTA2IDIzOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgdXNlIGEgcmVjdXJzaXZlIHJldmVydCBpbnN0ZWFkIG9mIHJtL3VwZGF0ZTsgcmVtb3ZlIGRvdWJsZSAvIGZyb20KICAgZWRpdGluZyBjYWxscwoKMjAwNy0wNy0wNiAyMToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN0b3Agc2VhcmNoaW5nIHBhdGhzIHdoZW4gZG9uZQoKMjAwNy0wNy0wNiAyMToxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGRvIG5vdCBmcmVlIGludGVyZmFjZSBlbnRyeSBqdXN0IGJlY2F1c2Ugd2UgY2FuIG5vdCBnZXQgc3RhdHMgZm9yCiAgIGl0CgoyMDA3LTA3LTA2IDE1OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUcgMTc0NTExMzogSGFuZGxlIHNpbmdsZS1saW5lIChhbmQgemVyby1saW5lKQogICBvdXRwdXQgaW4gVUNEIGNvbXBhdGFiaWxpdHkgbW9kZS4KCjIwMDctMDctMDYgMDk6MDggIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSCAxNzI4MjQ3OiBmcm9tIE1pdHN1cnUgQ2hpbmVuOiBjbGVhbnMgdXAKICAgdGhlIGludDY0IHR5cGUgY2hlY2tpbmcgYW5kIHVzYWdlIGZvciBidWlsZGluZyBwYWNrZXRzIGVzcGVjaWFsbHkKICAgdW5kZXIgTVNWQy4KCjIwMDctMDctMDUgMTQ6NDUgIHJzdG9yeQoKICAgKiAuLCBSRUFETUUub3NYOgoKICAgcjIwMDQ0QGRoY3AyMTE6IHJzdG9yeSB8IDIwMDctMDctMDUgMTA6NDQ6MDEgLTA0MDAKICAgcmVtb3ZlIGRpc2FibGUtc3RhdGljIGZyb20gcmVjb21tZW5kZWQgb3B0aW9ucwoKMjAwNy0wNy0wNSAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHNraXAgc3RhdHMgcGFyc2luZyBvbiBpbnRlcmZhY2VzIHdpdGggbm8gc3RhdGlzdGljcwoKMjAwNy0wNy0wNSAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvY2hlY2stYXBpLWNoYW5nZToKCiAgIGNoZWNrIGZvciBkaXIgZXhpc3RlbmNlCgoyMDA3LTA3LTA0IDIzOjI2ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogcGVybDogaW5zdGFsbCBlbWJlZGRlZCBwZXJsIGluaXQgZmlsZXMgZm9yCiAgIHNubXBkL3NubXB0cmFwZCB3aXRoIG1vZGUgNjQ0IGluc3RlYWQgb2YgNzU1CgoyMDA3LTA3LTA0IDIxOjQyICB0YW5kZXJzCgogICAqIFJFQURNRS5vc1g6CgogICBQZXJsIHByb2JsZW1zIChiZWxpZXZlZCB0byBiZSkgZml4ZWQKCjIwMDctMDctMDMgMTI6NTYgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICByZW1vdmUgZXhlY3V0YWJsZSBmbGFnIGZyb20gU1ZOIHByb3BlcnRpZXMKCjIwMDctMDctMDIgMDY6NTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHZhY20uYzoKCiAgIFJlbW92ZSB1bnVzZWQgb2lkIGRlY2xhcmF0aW9ucwoKMjAwNy0wNy0wMiAwNjowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBBZGQgbWlzc2luZyByZXR1cm4gdmFsdWUgdG8gX210ZUV2ZW50X2ZpcmVfbm90aWZ5LgoKMjAwNy0wNy0wMiAwNTozMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgUmVtb3ZlIHRoZSBkZWNsYXJhdGlvbiBvZiBhbiB1bmRlZmluZWQgc3RhdGljIGZ1bmN0aW9uLgoKMjAwNy0wNy0wMSAyMDozMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1uaWdodGx5LCBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBnZXRvcHRzIHdvcmsgb24gVHJ1NjQgYnkgcmVzcGF3bmluZyBpbiBQb3NpeCBtb2RlCgoyMDA3LTA3LTAxIDE5OjU2ICB0YW5kZXJzCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiAtLWRpc2FibGUtYXMtbmVlZGVkIG5vdyBhbGxvd3MgdG8gcmV2ZXJ0IHRvIHRoZQogICBmb3JtZXIgZGVmYXVsdCBiZWhhdmlvdXIgb2YgbGlua2luZyBsaWJwZXJsIHRvIGFwcGxpY2F0aW9ucwogICByYXRoZXIgdGhhbiBOZXQtU05NUCBMaWJyYXJpZXMgKGluIGNhc2Ugb2YgYW55IHByb2JsZW1zKQoKMjAwNy0wNi0zMCAwNjoxNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFjdHVhbGx5IGNhbGwgcmVtb3ZlZmlsZXMKCjIwMDctMDYtMjggMjM6NTAgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBHQ0MgZm9ybWF0IGNoZWNraW5nIGF0dHJpYnV0ZXMgdG8gdGhlIGRlYnVnCiAgIGZ1bmN0aW9ucy4KCjIwMDctMDYtMjggMjM6MzcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUmVtb3ZlIGNhc3RzIG9mIHVudXNlZCB2YWx1ZXMKCjIwMDctMDYtMjggMjM6MzYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKMjAwNy0wNi0yOCAyMjowOSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgREVGQVVMVF9NSUJbRElSXVMgdG8KICAgTkVUU05NUF9ERUZBVUxUX01JQltESVJdUwoKMjAwNy0wNi0yOCAwODoxNSAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERvIG5vdCB0cmFuc2Zvcm0gdGhlIGlnbm9yZWQgcmVzdWx0IG9mIHJlYWxsb2NfZm9ybWF0X3RyYXAKCjIwMDctMDYtMjYgMjI6MTIgIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB3b3JrIGFyb3VuZCBsaWJuZXRzbm1wYWdlbnQvbGlibmV0c25tcGhlbHBlcnMKICAgZGVwZW5kZW5jeSBpc3N1ZXMgd2hlbiBsaW5raW5nIHNubXB0cmFwZAoKMjAwNy0wNi0yNiAyMTo0NSAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1c2UgTERGTEFHUyB3aGVuIGJ1aWxkaW5nIGFnZW50LCBoZWxwZXJzIGFuZCBtaWIKICAgbGliIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBsaWJuZXRubXAKCjIwMDctMDYtMjYgMjE6MjggIHRhbmRlcnMKCiAgICogSU5TVEFMTDoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDctMDYtMjYgMTU6MTAgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZG9uJ3QgaW5pdGlhbGl6ZSB2YXIgaW4gZXh0ZXJuIGRlY2w7IGluc3RlYWQsIGluaXRpYWxpemUgYWN0dWFsCiAgIHZhcgoKMjAwNy0wNi0yNSAyMToyOSAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNCAoZnJvbSAxLjUuMjIpCgoyMDA3LTA2LTI0IDEyOjU3ICB0YW5kZXJzCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEhBVkVfU1NJWkVfVCBjbGVhbnVwCgoyMDA3LTA2LTIzIDIyOjU2ICB0YW5kZXJzCgogICAqIFJFQURNRS5ocHV4MTE6CgogICBkb24ndCBzdWdnZXN0IC0td2l0aC1saWJzPS1sbm0KCjIwMDctMDYtMjIgMTU6MDUgIGR0czEyCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIEVuZm9yY2UgRE9TLXN0eWxlIGxpbmUgZW5kaW5ncywgdG8ga2VlcCBWaXN1YWwgU3R1ZGlvIGhhcHB5LgoKMjAwNy0wNi0yMSAxNDowMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgZGVmYXVsdCB0byB1c2luZyBpZlRhYmxlIHJld3JpdGVzCgoyMDA3LTA2LTIwIDIxOjM0ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIGZpeCB0eXBvCgoyMDA3LTA2LTE5IDIyOjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IFBlcmwtcmVsYXRlZCBhdXRvY29uZiBtZXNzYWdlcwoKMjAwNy0wNi0xOSAxNTowOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkICJCdWlsZFJlcXVpcmVzOiBwZXJsLUV4dFV0aWxzLUVtYmVkIiB0byB0aGUKICAgc3BlYyBmaWxlLCBlLmcuIGZvciBGZWRvcmEgNwoKMjAwNy0wNi0xOCAyMjoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggYnJva2VuIGNvbW1lbnQuCgoyMDA3LTA2LTE4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgcmV2ZXJ0IGRvdWJsZSBsaW5raW5nIG9mIGxpYm5ldHNtbnAgcGFydCBvZiBwYXRjaCB0aGF0IHdhcwogICBzdXBwb3NlZCB0byBiZSBwdWxsZWQgYm9mZXIgYXBwbHlpbmcgaW4gcjE2NTM4ICh0aGFua3MgdGFuZGVycwogICBmb3IgY2F0Y2hpbmcgaXQpCgoyMDA3LTA2LTE4IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHBhdGNoIGZyb20gYXBwbGUgdG8gc2ltcGxpZnkgbWFrZWZpbGUgdGFyZ2V0CiAgIHJlZmVyZW5jZXMgaW4gc29tZSBydWxlcy4KCjIwMDctMDYtMTggMjE6MTcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBnZXQuMS5kZWY6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGZpeCBtaW5vciBkb2N1bWVudGF0aW9uIGJ1Z3MuCgoyMDA3LTA2LTE4IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICAKCjIwMDctMDYtMTggMjE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGltcHJvdmUgbWVtb3J5IHJlcG9ydGluZwoKMjAwNy0wNi0xOCAyMTowOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBmaXggY3Jvc3MtY29tcGlsZSBidWlsZHMgaW4gYXBwbGVzCiAgIGJ1aWxkIGVudmlyb25tZW50LgoKMjAwNy0wNi0xOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IHBhdGNoOiAxNzM3MDg1OiBmcm9tIGpzYWZyYW5lazogZml4IHRoZSAtTSBzd2l0Y2ggZm9yCiAgIG1pYiBwYXJzaW5nIGJ5IGxvYWRpbmcgZGVmYXVsdHMgZmlyc3QgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHNldAogICBzbyBpdCBkb2VzIG5vdCBnZXQgb3ZlcndyaXR0ZW4gYnkgdGhlIGRlZmF1bHRzIGxhdGVyLgoKMjAwNy0wNi0xOCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBwYXRjaDogMTcyNTA0OTogZml4IGJ1bGt3YWxrIGluIGNhc2VzIG9mIG5vbi1yZXBlYXRlcgogICB1c2FnZS4KCjIwMDctMDYtMTggMTQ6MTAgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBwZXJsOiBmaXggcHJlcmVxdWlzaXRlcyBmb3IgTmV0U05NUDo6VHJhcFJlY2VpdmVyCgoyMDA3LTA2LTE4IDEzOjM5ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogZml4IHN5bnRheCBlcnJvciBpbiBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydAoKMjAwNy0wNi0xNiAyMzowMSAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBORVdTOiBwZXJsOiBCVUc6IDE2MTk4Mjc6IGxpbmsgbGlibmV0c25tcGFnZW50L2xpYm5ldHNubXB0cmFwZAogICAocmF0aGVyIHRoYW4gc25tcGQvc25tcHRyYXBkKSBhZ2FpbnN0IGxpYnBlcmwuCgoyMDA3LTA2LTE0IDE1OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB0eXBvIGluIHVzZXIgb3V0cHV0LCBhcyBub3RlZCBvbiBjb2RlcnMKCjIwMDctMDYtMTQgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1c2UgJ3N2biBpbmZvJyB0byBxdWVyeSBmb3IgdXJsCgoyMDA3LTA2LTE0IDA0OjM3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIEFkZCBtaXNzaW5nIGFyZ3VtZW50IHR5cGUgaW4gb3JkZXIgdG8gc2lsZW5jZSBhIGdjYyB3YXJuaW5nCgoyMDA3LTA2LTEzIDA2OjM3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvIG5vdCB0cnkgdG8gYmUgY2xldmVyIGluIHRoZSBoYW5kaW5nIG9mIC1sa3ZtIGluIExBR0VOVExJQlMuCiAgIEluY2x1ZGUgaXQgaWYgYW55IHNvdWdodCBmdW5jdGlvbiBpcyBpbiBpdC4KCjIwMDctMDYtMTEgMTA6MTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIGRvY3VtZW50IHhsYzwtPmNjX3IgY29tcGlsZXIgaXNzdWVzIHdpdGggUGVybCBvbiBBSVggKHNlZSBidWcKICAgIzE2MDAwOTkpCgoyMDA3LTA2LTEwIDIyOjI5ICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjQ3OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBBZGQgdHlwZQogICBjaGVjayBmb3IgaW50Pz9fdCBhbmQgdWludD8/X3QKCjIwMDctMDYtMTAgMjI6MjIgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyNDQ6IGZyb20gbWl0c3VydV9jaGluZW46IEFkZAogICBjb25maWd1cmUgY2hlY2sgZm9yIHNpbjZfc2NvcGVfaWQKCjIwMDctMDYtMTAgMjI6MTUgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNzI4MjQxOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQgY29uZmlndXJlIGNoZWNrCiAgIGZvciA8c3lzL3Vpby5oPiAobWFrZSBzdXJlIGlvdiBzdHJ1Y3R1cmUgaXMgZGVjbGFyZWQpCgoyMDA3LTA2LTEwIDA2OjMzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIHN5c3RlbSBzcGVjaWZpYwogICBsaWJyYXJpZXMKCjIwMDctMDYtMTAgMDY6MjYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbHNlbnNvcnMKCjIwMDctMDYtMTAgMDY6MTggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxkZXZzdGF0CgoyMDA3LTA2LTEwIDA2OjEzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxkbAoKMjAwNy0wNi0wOSAwODo1OCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sa3ZtCgoyMDA3LTA2LTA4IDIwOjMyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBkaXN0L21ha2VyZWxlYXNlOgoKICAgRml4IHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSByMTY0Nzk6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1UCiAgIHRjcCInIG5vdwogICB3b3JrcyBhZ2Fpbi4gbWFrZXJlbGVhc2Ugbm93IHVzZXMgdGhlIHJpZ2h0IG9wdGlvbi4KCjIwMDctMDYtMDggMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZFQVRVUkU6IDc0MTM3NTogRXh0ZW5kIC1GIGZsYWcgdG8gY292ZXIKICAgc3lzbG9nL2V4ZWN1dGUgZm9ybWF0IHN0cmluZ3MuCgoyMDA3LTA2LTA4IDEwOjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgSW1wcm92ZSBtZW1vcnkgaGFuZGxpbmcgb2Ygc3R5bGUtc3BlY2lmaWMgZm9ybWF0IHN0cmluZ3MuCgoyMDA3LTA2LTA4IDEwOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIERlZmF1bHQgdG8gcmVwb3J0aW5nIE5GUyBtb3VudHMgYXMgTmV0d29ya0Rpc2suCgoyMDA3LTA2LTA4IDA2OjAyICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxycG0gYW5kCiAgIHRoaW5ncyBpdCBkZXBlbmRzCiAgIG9uCgoyMDA3LTA2LTA4IDA1OjU5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIG1pc3NpbmcgXAoKMjAwNy0wNi0wOCAwNTozMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sa3N0YXQKCjIwMDctMDYtMDggMDU6MjggIG1hZ2ZyCgogICAqIGFjaW5jbHVkZS5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgYSB2YXJpYXRpb24gb2YgQUNfU0VBUkNIX0xJQlMgd2hlcmUgdGhlCiAgIHJlc3VsdCB2YXJpYWJsZSBpcyBzZXR0YWJsZS4KCjIwMDctMDYtMDggMDU6MTYgIG1hZ2ZyCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZW1vdmUgdGhlIHVudXNlZCB1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVi4KICAgVGhlIFBlcmxfZXZhbF9wdiBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlCiAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgIHRoaXMgb25lIGlzIG5ldmVyIHNldCBieSBvdXIgY29uZmlndXJlIHNjcmlwdC4KCjIwMDctMDYtMDcgMTY6MDIgIGR0czEyCgogICAqICAuY3ZzaWdub3JlLCBhZ2VudC8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pc2MvLmN2c2lnbm9yZSwgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvLmN2c2lnbm9yZSwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZSwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGRpc3QvLmN2c2lnbm9yZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC8uY3ZzaWdub3JlLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCBpbmNsdWRlL3VjZC1zbm1wLy5jdnNpZ25vcmUsIAogICAgICAgIGxvY2FsLy5jdnNpZ25vcmUsIG1hbi8uY3ZzaWdub3JlLCBtaWJzLy5jdnNpZ25vcmUsCiAgICAgIG92Ly5jdnNpZ25vcmUsICAgIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9BU04vLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvLmN2c2lnbm9yZSwgcGVybC9PSUQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyLy5jdnNpZ25vcmUsIHBlcmwvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZSwgcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmUsICAgCiAgICAgIHNubXBsaWIvLmN2c2lnbm9yZSwgdGVzdGluZy8uY3ZzaWdub3JlLCB3aW4zMi8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9iaW4vLmN2c2lnbm9yZSwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWIvLmN2c2lnbm9yZSwgd2luMzIvbGliYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGliaGVscGVycy8uY3ZzaWdub3JlLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGlic25tcC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wX2RsbC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLy5jdnNpZ25vcmUsIHdpbjMyL25ldC1zbm1wLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgd2luMzIvbmV0c25tcG1pYnMvLmN2c2lnbm9yZSwgIAogICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGJ1bGtnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBkLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGRzZGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGdldC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wc2V0Ly5jdnNpZ25vcmUsIHdpbjMyL3NubXBzdGF0dXMvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0ZXN0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRyYXAvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHZhY20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHdhbGsvLmN2c2lnbm9yZToKCiAgIFJlbW92ZSByZWR1bmRhbnQgQ1ZTLWFkbWluIGZpbGVzLgoKMjAwNy0wNi0wNyAxMjo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSGFuZGxlIHVucmVnaXN0ZXJpbmcgdGhlIGZpcnN0IFNlY3VyaXR5IE1vZGVsIGluIHRoZSBsaXN0LgogICBSZXBvcnRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDctMDYtMDcgMDk6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGhlYWRlciBmaWxlcyBmb3Igc3Rhc2hfY2FjaGUgYW5kIHN0YXNoX3RvX25leHQgaGVscGVycy4KCjIwMDctMDYtMDcgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBTZXBhcmF0ZSBvdXQgaGVhZGVyIGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgQwogICBzb3VyY2UgZmlsZS4KCjIwMDctMDYtMDcgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBTb3J0IGxpc3RzIG9mIGhlbHBlcnMgKHNvdXJjZSBjb2RlLCBvYmplY3QgZmlsZXMgYW5kIGhlYWRlcnMpLgogICBUaGlzIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBzcG90IGZpbGVzIHRoYXQgaGF2ZSBiZWVuIG9taXR0ZWQuCgoyMDA3LTA2LTA3IDA4OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQcm90ZWN0IGFnYWluc3Qgc3lzdGVtcyB3aXRob3V0IFNfSVNESVIuCgoyMDA3LTA2LTA2IDIyOjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFdlIGFyZW4ndCB1c2luZyBsaWJ0b29scyBkbG9wZW4gc3VwcG9ydCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0bwogICBjb25maWd1cmUgZm9yIGl0CgoyMDA3LTA2LTA2IDEyOjM3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogQUlYOiB1c2UgIi1XbCwtYnJ0bCIgd2hlbiBjb21waWxpbmcgd2l0aCBnY2MKCjIwMDctMDYtMDYgMTA6MjYgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZW1vdmUgdGhlIHVudXNlZCB1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVi4KICAgVGhlIFBlcmxfZXZhbF9wdiBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlCiAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgIHRoaXMgb25lIGlzIG5ldmVyIHNldCBieSBvdXIgY29uZmlndXJlIHNjcmlwdC4KCjIwMDctMDYtMDYgMTA6MjAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBFbnN1cmUgb3V0cHV0IGlzIHByb3Blcmx5IGRpcmVjdGVkIHRvIHN5c2xvZy4KICAgT3RoZXJ3aXNlLCBwcm9ibGVtcyBpbiB0aGUgY29uZmlnIGVudmlyb25tZW50IGNhbiB0cmlnZ2VyCiAgIGVycm9ycyBiZWluZyBkaXJlY3RlZCB0byBzdGRlcnIsIGFuZCBzdWJzZXF1ZW50IGxvZ2dpbmcKICAgb3V0cHV0IGdldHMgbG9zdC4KCjIwMDctMDYtMDYgMTA6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vcmUgaGVscGZ1bCBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNy0wNi0wNiAwNTo1MyAgbWFnZnIKCiAgICogIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBDSEFOR0VTOiBtaXNjOiBEb24ndCB1c2UgdGhlIGxlZ2FjeSBzeW1ib2wKICAgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCgoyMDA3LTA2LTA1IDE3OjQ5ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBleHBsaWNpdCBkZWZpbml0aW9ucyBvZiBpdGVtcyB0aGF0CiAgIGF1dG9oZWFkZXIgYWxzbyBkZWZpbmVzCgoyMDA3LTA2LTA1IDE1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNzI5NjI5OiBGaXggbWVtb3J5IGxlYWsgaW4gZGlzbWFuCiAgIGFnZW50LgoKMjAwNy0wNi0wNSAxNDo1MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogU3VwcG9ydCBwZXItdHJhcCBmb3JtYXQgc3BlY2lmaWNhdGlvbnMKCjIwMDctMDYtMDUgMDY6NTcgIG1hZ2ZyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE5FV1M6IG1pc2M6IEFkZCBjb25maWcgcmVyZWFkaW5nIHN1cHBvcnQgdG8gdGhlIHN1YmFnZW50CiAgIGdlbmVyYXRlZCBieSBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50CgoyMDA3LTA2LTA0IDIyOjI5ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogU2ltcGxpZnkgdGhlIGRldGVjdGlvbiBvZiBsaWJyYXJpZXMgbmVlZGVkIGZvcgogICBnZXRob3N0YnluYW1lCgoyMDA3LTA2LTA0IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wbGliOiBDaGFuZ2Ugc25tcF9zZXNzX2FkZF9leCB0byBjb25zaXN0ZW50bHkgY2xvc2UgYW5kCiAgIGRlbGV0ZSB0aGUgdHJhbnNwb3J0IGFyZ3VtZW50IG9uIGZhaWx1cmUsIGVhcmxpZXIgdGhlIGxpdmVuZXNzIG9mCiAgIHRoZSB0cmFuc3BvcnQgYXJndW1lbnQgd2FzIHVuZGVjaWRlZC4KCjIwMDctMDYtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBkaXN0L21ha2VyZWxlYXNlLCB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdDogc3VwcG9ydCBhIC1uIGZsYWcgdG8gUlVOVEVTVFMgdG8gcHJpbnQgdGhlIHRlc3QKICAgbnVtYmVyIGZvdW5kIGluIHRoZSB0ZXN0IGZpbGUgYXMgb3Bwb3NlZCB0byB0aGUgbnVtZXJpY2FsIGNvdW50CgoyMDA3LTA2LTA0IDEzOjA5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjM3OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBNb3ZlCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGF0IHRoZSB0b3Agb2YgbmV0c25tcF91ZHBfc2VuZHRvCgoyMDA3LTA2LTA0IDEyOjUyICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjMzOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtYWtlIHN1cmUKICAgdHlwZSBuZmRzX3QgaXMgZGVmaW5lZAoKMjAwNy0wNi0wNCAxMjoxMyAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjMwOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBnYWlfc3RyZXJyb3IoKQoKMjAwNy0wNi0wNCAxMDozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMjY6IGZyb20gbWl0c3VydV9jaGluZW46IG1ha2Ugc3VyZQogICBJRl9OQU1FU0laRSBpcyBkZWZpbmVkCgoyMDA3LTA2LTA0IDEwOjI4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjIzOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBuZXRsaW5rIHNvY2tldAoKMjAwNy0wNi0wNCAwOTo0NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFsc28gc2tpcCB0aGlzIHRlc3Qgb24gSVJJWDY0CgoyMDA3LTA2LTAyIDE2OjEzICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXggY29tcGlsYXRpb24gb24gSVJJWAoKMjAwNy0wNi0wMiAwODoyNCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGFwaTogRG8gbm90IHVzZSBnZXRzZXJ2YnluYW1lIHRvIGZpbmQgZGVmYXVsdCBwb3J0CiAgIG51bWJlcnMsIGp1c3QgaGFyZGNvZGUgdGhlbSBhbmQgbGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZW0gaWYKICAgbmVlZGVkLgoKMjAwNy0wNi0wMSAyMjo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBMaW5rIGxpYmRsIGFnYWluc3QgbGlibmV0c25tcG1pYnMgaW5zdGVhZCBvZgogICBzbm1wZC4KICAgRml4ZXMgdGhlIGJ1aWxkIG9uIChzb21lKSBTb2xhcmlzIHN5c3RlbXMuCgoyMDA3LTA2LTAxIDIyOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMIGNvbmZpZ3VyZSBjaGVjayBvbiBJUklYCiAgIChyZWdyZXNzaW9uIGZyb20gcjE2NDUxKQoKMjAwNy0wNi0wMSAxNDozMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogV2l0aGRyYXcgZGVwcmVjYXRlZCBvcHRpb25zLgogICAoVGhyZWUgYW5kIGEgaGFsZiB5ZWFycycgd2FybmluZyBzaG91bGQgYmUgZW5vdWdoIGZvciBhbnlvbmUhKQoKMjAwNy0wNS0zMSAyMzo1MSAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogTGluayBsaWJrdm0gYW5kIGxpYndyYXAgdG8gbGlibmV0c25tcGFnZW50CiAgIGluc3RlYWQgb2Ygc25tcGQuCiAgIEZpeGVzIHRlc3QgIzQ0IChQZXJsIHN1YmFnZW50KSBvbiBzeXN0ZW1zIHVzaW5nIG9uZSBvZiB0aG9zZQogICBsaWJyYXJpZXMuCgoyMDA3LTA1LTMxIDIzOjQyICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTW92ZSBzeXNPUkxhc3RDaGFuZ2UgZnJvbSBtaWJJSS9zeXN0ZW1fbWliIHRvCiAgIG1pYklJL3N5c09SVGFibGUgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBhbmQgdGhlIHVzZSB0b2dldGhlci4KCjIwMDctMDUtMzEgMTQ6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGxvZ2dpbmcgb2YgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24uCgoyMDA3LTA1LTMxIDEwOjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFJlbW92ZSBib2d1cyBkZWJ1ZyBvdXRwdXQuCgoyMDA3LTA1LTMxIDA5OjQ4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoKMjAwNy0wNS0zMSAwOTo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogRkVBVFVSRTogMTE1OTk0NzogQWxsb3cgY29udHJvbCBvZiB0cmFwaGFuZGxlCiAgIGRhdGEgZm9ybWF0CgoyMDA3LTA1LTMwIDIyOjUzICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBBSVg6IGJ1aWxkIGZpeGVzIGZvciBlbWJlZGRlZCBQZXJsCgoyMDA3LTA1LTMwIDIyOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSFAtVVggMTEueCBhbmQgSVJJWCA2LjUgYnVpbGQgZml4IChyZWdyZXNzaW9uIGludHJvZHVjZWQgYnkKICAgcjE2NDUxKQoKMjAwNy0wNS0yOSAyMzowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBtYWtlIHVzZSBvZiBBQ19QUk9HX1NFRC9BQ19QUk9HX0dSRVAgYW5kIC8gdG8KICAgZnVydGhlciBtaW5pbWl6ZSBzZWQvZ3JlcCBwcm9ibGVtcwoKMjAwNy0wNS0yOSAyMjo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIHRoZSBkZWZhdWx0X3RhcmdldCBhcmd1bWVudCBpZiBpdCBpcwogICBub24tTlVMTCwgbm90IGlmIGl0IGlzIE5VTEwuCgoyMDA3LTA1LTI5IDEwOjMwICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgogICBBbHNvIGNoYW5nZSByZWNlbnRseSBhZGRlZCBTVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9IQVNfU1NfRkFNSUxZLgoKMjAwNy0wNS0yOSAxMDoyNyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCByZWNlbnQgbWZkIHJld3JpdGVzCgoyMDA3LTA1LTI5IDEwOjIyICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgogICBBbHNvIGNoYW5nZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBmb3IgY29uc2lzdGVuY3kuCgoyMDA3LTA1LTI4IDIzOjMwICBtYWdmcgoKICAgKiAgUE9SVElORywgYWNjb25maWcuaCwgYWNpbmNsdWRlLm00LCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAKICAgICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIG1vcmUgbmV0LXNubXAgc3BlY2lhbHMgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHRzIHRvIGVhc2UgbWFpbnRlbmFuY2UuCgoyMDA3LTA1LTI4IDE2OjMxICBkdHMxMgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiAxNDA3NDc2OiBSZW5hbWUgJ3N0cmljdENvbW1lbnRUZXJtJwogICB0byByZWZsZWN0IHRoZSBhY3R1YWwgYmVoYXZpb3VyLgoKMjAwNy0wNS0yOCAxNToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDEwNDE4ODg6IENoZWNrIGRpcmVjdG9yeSBwYXRocyBmb3IKICAgY29uZmlnIGZpbGVzLgoKMjAwNy0wNS0yOCAxMzoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDg1MTg4NzogUmVwb3J0IHJhbmdlIGluZm9ybWF0aW9uIGZvcgogICBpbnZhbGlkIFNFVCByZXF1ZXN0cy4KCjIwMDctMDUtMjggMTI6MDggIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmM6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTcxOTczMDogZnJvbSBhcGVyc3Nvbjogc3VwcG9ydCBmb3IKICAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcEFkZHJlc3NUYWJsZQogICBQYXJ0IDIgKFNvbGFyaXMtc3BlY2lmaWMgbmV3IGZpbGVzKQoKMjAwNy0wNS0yOCAxMjowMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDEyOjAwICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfb2lkcy5oOgoKICAgTkVXUzogTGludXg6IFBBVENIOiAxNzI0NjAyOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtZmQtYmFzZWQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUgaW1wbGVtZW50YXRpb24KCjIwMDctMDUtMjggMTE6NTkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDEwOjA5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSAtQ0Ugb3B0aW9uLgoKMjAwNy0wNS0yNyAyMTo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIFNvbWUgbGFtZSBsaW5rZXJzIChlLmcuIG9uIEhQLVVYIDExLjIzL0lBNjQpIG5lZWQgcXVpdGUgYSBiaXQgb2YKICAgaGVscCB0byBzdWNjZXNzZnVsbHkgbGluayB0aGUgUGVybCBtb2R1bGVzLgoKMjAwNy0wNS0yNyAyMTozMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IFBBVENIOiAxNzIzNjIwOiBTcGVjaWZ5IGFuIGV4cGxpY2l0IGVuZC1wb2ludAogICBmb3IgdGhlIHdhbGsuCiAgIEFuIGFsdGVybmF0aXZlIChtb3JlIGZsZXhpYmxlKSBhcHByb2FjaCB0byB0aGUgcHJvcG9zZWQgcGF0Y2gsCiAgIGJ1dCBvbmUgdGhhdAogICBwcm92aWRlcyBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkuIEFsc28gYWRkcmVzc2VzIEZlYXR1cmUgUmVxdWVzdAogICAjNzIyNzg0LgoKMjAwNy0wNS0yNyAyMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZCBkZXNjcmlwdGlvbnMgdG8gQUNfREVGSU5FOyBkcm9wIG9ic29sZXRlIEFDX0NIRUNLX0xJQihtLAogICBhc2luKS4KCjIwMDctMDUtMjcgMTk6MjggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogNDU0MDI4OiBEZXRlY3QgZW1wdHkgTUlCIGluZGV4IGZpbGVzLgoKMjAwNy0wNS0yNyAxOTowNiAgZHRzMTIKCiAgICogIGFnZW50L3NubXBkLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZFQVRVUkVTOiAxMDE5NDI5OiBTZXQgc3VwcGxlbWVudGFyeSBncm91cHMgdmlhCiAgIGluaXRncm91cHMoMykKCjIwMDctMDUtMjcgMDY6MjcgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTcxOTczMDogZnJvbSBhcGVyc3Nvbjogc3VwcG9ydCBmb3IKICAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcEFkZHJlc3NUYWJsZQoKMjAwNy0wNS0yNyAwNjoyMCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZ3JhbW1hciBmaXgKCjIwMDctMDUtMjYgMTY6NDEgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMiBJUHY2IGJ1aWxkIGZpeGVzLiBJUHY2IG5vdyByZXF1aXJlcyBQU0RLLgoKMjAwNy0wNS0yNiAxNToxNiAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIElQdjYgYnVpbGQgZml4ZXMgZm9yIGJ1aWxkLmJhdCwgQ29uZmlndXJlIGFuZCBSRUFETUUud2luMzIuCgoyMDA3LTA1LTI1IDIzOjAzICB0YW5kZXJzCgogICAqIFJFQURNRS5haXgsIFJFQURNRS5zb2xhcmlzLCBSRUFETUUudHJ1NjQ6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZSB3LnIudC4gcmVjZW50IGNoYW5nZXMgKG1pYklJL2lwdjYgYW5kIEFJWAogICBzaGFyZWQgbGlicmFyeSBidWlsZGluZykuCgoyMDA3LTA1LTI1IDE4OjU0ICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXBkYXRlIGZvciBuZXcgdXJsIGZvcm1hdCBpbiBzdm4gZW50cmllcwoKMjAwNy0wNS0yNSAxNToyOCAgdGFuZGVycwoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgIm5ldC1zbm1wLWNvbmZpZyAtLWxpYnMiIChpbnN0ZWFkIG9mIGp1c3QgLS1uZXRzbm1wLWxpYnMpIGZvcgogICBsaW5raW5nCiAgIGxpYm5ldHNubXAgdG8gYSBQZXJsIG1vZHVsZS4KCjIwMDctMDUtMjQgMjM6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogb25seSBlbmFibGUgbWliSUkvaXB2NiB0aHJvdWdoIC0tZW5hYmxlLWlwdjYgb24KICAgc3lzdGVtcyBpdCBidWlsZHMgcHJvcGVybHkgb24gKExpbnV4IGFuZCAqQlNEKQoKMjAwNy0wNS0yNCAyMzoxNSAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgIm5ldC1zbm1wLWNvbmZpZyAtLWxpYnMiIChpbnN0ZWFkIG9mIGp1c3QgLS1uZXRzbm1wLWxpYnMpIGZvcgogICBsaW5raW5nIGxpYnNubXBhZ2VudCB0byBhIFBlcmwgbW9kdWxlLgoKMjAwNy0wNS0yNCAyMjowMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgQ29ycmVjdCBvYnZpb3VzbHkgYnJva2VuIHVzZSBvZiB0aGUgS0xPT0tVUCBtYWNybyB0byBiZQogICBjb25zaXN0ZW50IGF0IGxlYXN0CgoyMDA3LTA1LTI0IDIwOjUxICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q3Lmg6CgogICBDSEFOR0VTOiBGcmVlQlNEOiBhZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB1cGNvbWluZyBGcmVlQlNEIDcKCjIwMDctMDUtMjQgMTQ6MDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIGxpYmN1cnJlbnQgdG8gMjAgdG8gbGVhdmUgc3BhY2UgZm9yIDUuNC54IHJlbGVhc2VzCgoyMDA3LTA1LTI0IDEyOjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGxpYnJhcnkgbGlua2luZyBvbiBIUC1VWCAxMS4yMy9JQTY0CgoyMDA3LTA1LTIzIDE5OjA1ICB0YW5kZXJzCgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgTkVXUzogc25tcGxpYjogQlVHOiAxNjE5ODI3OiBsaW5rIG5ldC1zbm1wIGxpYnJhcmllcyBhbmQgYmluYXJpZXMKICAgYWdhaW5zdCB0aGUgbmV0LXNubXAgbGlicmFyaWVzIHRoZXkgcmVhbGx5IGRlcGVuZCBvbgogICAtIHJlZmxlY3QgbGlicmFyeSBpbnRlcmRlcGVuZGVuY2llcyBhdCBsaW5rIHRpbWUKICAgLSBmaXggZGVwZW5kZW5jaWVzIG9uIGxpYmNyeXB0bywgbGlicGtjczExIGFuZCBsaWJrc3RhdAogICAtIGluc3RhbGwgbGlicmFyaWVzIGluIGNvcnJlY3Qgb3JkZXIgKGltcG9ydGFudCBmb3IgbGlidG9vbAogICByZWxpbmtpbmcpCiAgIE5FV1M6IFBlcmw6IGxpbmsgUGVybCBtb2R1bGVzIGFnYWluc3QgdGhlIGV4YWN0IHNldCBvZiBsaWJyYXJpZXMKICAgdGhleSBkZXBlbmQgb24KCjIwMDctMDUtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2Ugc3ZuIGV4cG9ydCBpbnN0ZWFkIG9mIGNoZWNrb3V0CgoyMDA3LTA1LTIyIDAwOjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSB3aW5FeHRETEwgaW4gY29tbWVudCBjaGVjawoKMjAwNy0wNS0yMSAyMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmM6CgogICAvLyAtPiBDIGNvbW1lbnQKCjIwMDctMDUtMjEgMjM6MzMgIHRhbmRlcnMKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjEwLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICBzeW5jIHdpdGggNS40LCB0aGVzZSBhcmUgb2Jzb2xldGUgbm93CgoyMDA3LTA1LTIxIDIzOjExICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEaXNhYmxlIGlubGluaW5nIG9uIHNvbGFyaXMgYXMgdGhlcmUgYXJlIHNvbWUKICAgbGlua2luZyBlcnJvcnMgdGhhdCBzaG93IHVwIGlmIHRoZSBpbmxpbmUgc3VwcG9ydCBpcyBsZWZ0CiAgIGVuYWJsZWQuCgoyMDA3LTA1LTIxIDA2OjA1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBdCBsZWFzdCBTdW4gQyA1LjcgZmFpbHMgaWYgb25lIHRyaWVzIHRvCiAgIGFjY2VzcyBfX2Z1bmNfXyBpbiBhIGV4dGVybiBpbmxpbmUgZnVuY3Rpb24sIHNvIHRlc3QgZm9yIHRoYXQKICAgY2FzZS4KCjIwMDctMDUtMjAgMjE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogc25tcGxpYjogQlVHOiAxNjE5ODI3OiBsaW5rIGFnYWluc3QgbmVlZGVkIGV4dGVybmFsCiAgIGxpYnJhcmllcyBhdCBsaWJyYXJ5IGxpbmsgdGltZSAod2hlcmUgdGhleSBhcmUgcmVmZXJlbmNlZCksCiAgIHJhdGhlciB0aGFuIGFwcGxpY2F0aW9uIGxpbmsgdGltZS4KICAgQWxyZWFkeSBjb3ZlcnMgbW9zdCBvZiBsaWJuZXRzbm1wbWlicycgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLgogICBGaXhlcyBidWlsZCBpc3N1ZXMgb24gc29tZSBwbGF0Zm9ybXMgKGUuZy4gYnVpbGRpbmcgd2l0aCBzaGFyZWQKICAgbGlicmFyaWVzIG9uIEFJWCkuIFRlc3RlZCBvbiBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgTGludXgsCiAgIFNvbGFyaXMsIEhQLVVYLCBBSVggYW5kIElSSVguCgoyMDA3LTA1LTE5IDE1OjI3ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hlY2sgZm9yIHN1cHBvcnQgb2Ygc3RhdGljIGlubGluZSBmdW5jdGlvbnMKICAgaW5zdGVhZCBvZiBuZXN0ZWQgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgd2hlbiBkZXRlcm1pbmluZyBpZgogICBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyB3b3JrCgoyMDA3LTA1LTE5IDA4OjQwICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHVzZSBvZiB0aGUgQzk5IHByZWRlZmluZWQgdmFyaWFibGUKICAgX19mdW5jX18gaW4gYWRkaXRpb24gdG8gdGhlIEdDQyBzeW1ib2wgX19GVU5DVElPTl9fIHRvIGdldCB0aGUKICAgbmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlvbgoKMjAwNy0wNS0xOCAxODoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MjEwOTY6IGZyb20gbWl0c3VydV9jaGluZW46IHJlbW92ZQogICB1bnVzZWQgdmFyaWFibGUgc3RhdHMgZnJvbSBrZXJuZWwgZXh0cmFjdGlvbiBmb3IgYmV0dGVyCiAgIHBvcnRhYmlsaXR5LgoKMjAwNy0wNS0xOCAxODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTkyNTQ6IGZyb20gIkNocmlzdGFuIEp1bmciOiB1cGRhdGUKICAgSFJGU19pZ25vcmUgbGlzdCB0byBjdXJyZW50IGxpbnV4IGxpa2VseWhvb2RzCgoyMDA3LTA1LTE4IDE4OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaDogMTcxOTI1MzogZnJvbSAiQ2hyaXN0aWFuIEp1bmciOiBmaXgKICAgc2tpcE5GU0luSG9zdFJlc291cmNlcyBzbyBpdCBkb2VzIG5vdCBicmVhayBvbiB0aGUgc2Vjb25kIHdhbGsgb2YKICAgdGhlIHRhYmxlLgoKMjAwNy0wNS0xOCAxNzo1NSAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlcmFuIGF1dG9oZWFkZXIgYW5kIGFkanVzdGVkIGFjY29uZmlnLmggYWZ0ZXIgY2hhbmdlcyBpbiByMTYzODcKCjIwMDctMDUtMTggMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxNTQwNjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogcmVnaXN0cmF0aW9uCiAgIG9yZGVyaW5nIGZpeGVzIGZvciBpY21wU3RhdHNUYWJsZQoKMjAwNy0wNS0xOCAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzE1Mzk1OiBmaXggaWNtcCB0YWJsZSBlcnJvcnMgaW4gbmV3IGljbXAKICAgY29kZQoKMjAwNy0wNS0xOCAxNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgCgoyMDA3LTA1LTE4IDE1OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogQUlYOiBmaXggZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBidWlsZGluZyBpbnN0ZWFkIG9mIGZvcmNpbmcKICAgc3RhdGljCgoyMDA3LTA1LTE4IDE0OjE4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfQ0hFQ0tfTUVNQkVSUyBpbnN0ZWFkIG9mCiAgIEFDX0NIRUNLX1NUUlVDVF9GT1Igd2hlbiBjaGVja2luZyBmb3Igc3RydWN0IGlwc3RhdCBtZW1iZXJzIGluCiAgIG9yZGVyIHRvIG1ha2UgY29uZmlndXJlLmluIHNtYWxsZXIKCjIwMDctMDUtMTggMTA6MjIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gZm9yCiAgIGhvc3QvaHJfc3RvcmFnZQoKMjAwNy0wNS0xOCAwOTo1NyAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IERvIG5vdCB0ZXJtaW5hdGUgb24gU0lHQ0hMRCBzaW5jZSBkYXNoIGFuZAogICBzb3VtZSBib3VybmUgc2hlbGxzIHdpbGwgZXhpdCB0aGUgbWFpbiBzaGVsbCB3aGVuIGEgc3Vic2hlbGwKICAgdGVybWluYXRlcyBpbiB0aGF0IGNhc2UuCgoyMDA3LTA1LTE4IDA5OjIyICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgVW5kb2luZyBhY2NpZGVudGFsIGNoYW5nZSBjb21taXR0ZWQgaW4gcjE2MzczLgoKMjAwNy0wNS0xNyAyMzoyMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMzc6IEltcGxlbWVudCBfc2Vzc19vcGVuIGluIHRlcm1zCiAgIG9mIHNubXBfc2Vzc19hZGQKCjIwMDctMDUtMTcgMjI6MTYgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHNlbmRpbmcgc28gdGhhdAogICBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHJlY2VwdGlvbiBzbwogICB0aGF0IGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CiAgIENIQU5HRVM6IGFwcHM6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHNlbmRpbmcgc28gdGhhdAogICBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYyMDQyNDogSG9ub3IKICAgTkVUU05NUF9EU19MSUJfREVGQVVMVF9QT1JUIG92ZXIgdGhlIGRlZmF1bHQgc3lzdGVtCgoyMDA3LTA1LTE3IDIxOjUzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzEwNjMyOiBmcm9tIG1hdmFybGV5OiBmaXggbWVtb3J5IGxlYWsgb24KICAgYnJva2VuIGNvbnRhaW5lciBpbnNlcnRpb25zIGZvciB0aGUgaXBBZGRyZXNzVGFibGUKCjIwMDctMDUtMTcgMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNzE5MjQ0OiBmaXggbWZkIGdlbmVyYXRpbmcgbWFwIGZ1bmN0aW9uCgoyMDA3LTA1LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzA4MjQzOiBmcm9tIG5ob3JtYW46IGltcGxlbWVudCB0aGUKICAgaXBEZWZhdWx0Um91dGVUYWJsZSBvbiBsaW51eAoKMjAwNy0wNS0xNyAxNjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgTkVXUzogcG9ydHM6IHBhdGNoOiAxNzA2MzQ0OiBmcm9tIG5heWxvcjogZml4IGNvbXBpbGF0aW9uIHdpdGgKICAgY3lnd2luCgoyMDA3LTA1LTE3IDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MDAxNTc6IGZyb20gYWZyaWthOiBmaXhlcyBvcmRlcmluZyBvZiBleGVjCiAgIHRva2VucyBpbiB0aGUgcmVzdWx0aW5nIG1pYiB0cmVlCgoyMDA3LTA1LTE3IDE1OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTYxNzI1NTogZml4IGxlbmd0aCBvZiB0aGUgaGlzdG9yeSBhcnJheQogICB0byBtYXRjaCBjb2RlLgoKMjAwNy0wNS0xNyAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTIyNTQ0MDogQXBwbHkgaW50ZW50IG9mIHBhdGNoOiB0byBkZWxheQogICBzaWdodXAgdGlsbCBpdCBpcyBzYWZlLgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IHBhdGNoOiAxMjI1NDQwOiBBcHBseSBpbnRlbnQgb2YgcGF0Y2g6IHRvCiAgIGRlbGF5IHNpZ2h1cCB0aWxsIGl0IGlzIHNhZmUuCgoyMDA3LTA1LTE3IDEzOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBjb25maWdfZXJyb3IgaW5zdGVhZCBvZiBjb25maWdfcmVxdWlyZSBvZgogICBhIGJvZ3VzIGZpbGUvI2Vycm9yIHRvIGdlbmVyYXRlIGVycm9yIG1lc3NhZ2VzIGF0IGNvbmZpZ3VyZSB0aW1lLgoKMjAwNy0wNS0xNyAwNDozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2g6IDE2NDU2OTg6IGZpeCA2NC1iaXQgc2lnbmVkIGludGVnZXIKICAgZW5jb2RpbmcKCjIwMDctMDUtMTYgMjM6NTMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogSFAtVVg6IEhQLVVYIG5lZWRzIF9SRUVOVFJBTlQgZGVmaW5lZCB0byBwaWNrIHVwCiAgIHN0cnRva19yLgogICBPdGhlcndpc2UsIGF0IGxlYXN0IGZvciA2NC1iaXQgY29kZSwgc3RydG9rX3Igd2lsbCBub3Qgd29yawogICBhbmQgd2lsbCBtYWtlIG5ldC1zbm1wIHNlZ2ZhdWx0LgoKMjAwNy0wNS0xNiAyMzozOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBwYXRjaCAxNjI1MDY5IChyMTYzNjUpIHRvIG5vdCBicmVhayB0aGUgYnVpbGQgb24gU29sYXJpcwogICAyLjYvNwoKMjAwNy0wNS0xNSAxNzozMyAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICAtIGFkZCB3YXJuaW5nIGlmIHN0YXIgbm90IGF2YWlsYWJsZQogICAtIGZpeCBwYXR0ZXJuIHRvIGV4Y2x1ZGUgLnN2biBkaXJzIGZyb20gdGFyYmFsbHMKCjIwMDctMDUtMTUgMTU6NTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgd2FybiBpZiBzdGFyIG5vdCBhdmFpbGFibGUKCjIwMDctMDUtMTUgMTQ6MzYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBmaXggdHlwbwoKMjAwNy0wNS0xNCAyMTo0OSAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAyMTo0OCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAxNTo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE2MjUwNjk6IHNwZWVkIGltcHJvdmVtZW50cyBmb3Igc29sYXJpcwogICByb3V0aW5nIHRhYmxlIGFjY2VzcwoKMjAwNy0wNS0xNCAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNTk1NTY4OiBmcm9tIGN5cmlsX21hcmdhcmlhOiBmaXgKICAgZGVsZWdhdGVkIFNFVCByZXF1ZXN0cyBmcm9tIGFnZW50eCBzdWJhZ2VudHMKCjIwMDctMDUtMTQgMTQ6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgdG8gcG9pbnQgdG8gd2lraSBhbmQgYSBmZXcgbW9yZSBjdnMgLT4gc3ZuIGNoYW5nZXMKCjIwMDctMDUtMTMgMTQ6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZWFkIHRoZSBjb25maWcgcGFyYW1ldGVycyBkZWZUYXJnZXQgYW5kCiAgIGRlZkRvbWFpbiBmcm9tIHNubXAuY29uZiBhcyB3ZWxsIGFzIGZyb20gPGFwcGxpY2F0aW9uPi5jb25mCgoyMDA3LTA1LTEyIDExOjE3ICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgX21pYmluZGV4ZXMgY2FjaGUgaW4KICAgc2h1dGRvd25fbWliIHRvIG1ha2UgZm9yIGEgY2xlYW5lciBleGl0IG9mIHRoZSBsaWJyYXJ5CgoyMDA3LTA1LTEyIDExOjE0ICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgY29uZm1pYnMgYW5kIGNvbmZtaWJkaXJzCiAgIHZhcmlhYmxlcyBpbiBzaHV0ZG93bl9taWIgdG8gbWFrZSBmb3IgYSBjbGVhbmVyIGV4aXQgb2YgdGhlCiAgIGxpYnJhcnkKCjIwMDctMDUtMTEgMjE6MDYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODczMzY6IFN0YXJ0IHVzaW5nIHRoZSBlbmhhbmNlZAogICByZWFkX2NvbmZpZyBpbnRlcmZhY2UKCjIwMDctMDUtMTEgMjA6MzMgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAyIG9mIHRoZSBwYXRjaCAtIFdoZW4gcmVnaXN0ZXJpbmcKICAgbXVsdGlwbGUgcHJlbWliIGhhbmRsZXJzIG9ubHkgdGhlIGxhc3Qgb25lIHdhcyByZWdpc3RlcmVkIHByZW1pYiwKICAgdGhlIG90aGVycyB3ZXJlIHJlZ2lzdGVyZCBhdCB0aGUgbm9ybWFsIHRpbWUuIFRoaXMgcGF0Y2ggcHV0cyBhbGwKICAgcmVnaXN0cmF0aW9uIGluIG9uZSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBwcm9ibGVtYXRpYyB2YWx1ZSBhcwogICBhbiBhcmd1bWVudCBhbmQgbWFrZXMgdGhlIG9sZCBmdW5jdGlvbnMgdGhpbiB3cmFwcGVycyBvZiB0aGUgbmV3CiAgIG9uZQoKMjAwNy0wNS0xMSAyMDoyNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFOiBzbm1wbGliOiBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMyBvZiB0aGUgcGF0Y2ggLSB1c2UKICAgdGhlIHNhbWUgYWxnb3JpdGhtIHRvIGRldGVybWluZSB3aGF0IHRvIHVucmVnaXN0ZXIgYXMgaXMgdXNlZCB0bwogICBkZXRlcm1pbmUgd2hhdCB0byByZWdzdGVyCgoyMDA3LTA1LTExIDE2OjMyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIERvbid0IGxvZyBob3N0L2hyX3Byb2MgZXZlbnRzIGluIHRoZSBzbm1wZCBkb21haW4KCjIwMDctMDUtMTEgMTY6MjcgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRGVjb3JhdGUgbW9yZSBkZWJ1ZyBsaW5lcyB3aXRoIHRoZSB0YWcgdGhhdCBjb250cm9scyB0aGUgbG9nCgoyMDA3LTA1LTExIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2Mjg2MTM6IFJlc3RvcmUgbWVtVG90YWxGcmVlLjAgb24gU29sYXJpcwoKMjAwNy0wNS0xMCAyMTo1MiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbiwgcHl0aG9uL3NldHVwLnB5OgoKICAgTkVXUzogcHl0aG9uOiBQQVRDSDogMTcxNjExNDogTGV0IHB5dGhvbiBidWlsZCBpbiBzb3VyY2UgdHJlZQogICBQYXRjaCBwcm92aWRlZCBieSBKb2NoZW4gRnJpZWRyaWNoIChEZWJpYW4gcGF0Y2ggIzM4KS4KCjIwMDctMDUtMTAgMDU6MTggIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAxIG9mIHRoZSBwYXRjaCAtIGxlc3NlbnMgdGhlIHNjb3BlIG9mCiAgIHRoZSBsdG1wMiB2YXJpYWJsZQoKMjAwNy0wNS0wOSAyMzo1NyAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIGRvY3VtZW50IG9wdGltaXplZCBJUklYIGNwdSBzdGF0cwoKMjAwNy0wNS0wOSAyMzo0OSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uaDoKCiAgIE5FV1M6IGlyaXg6IFBBVENIOiAxNzA5NzQ4OiBPcHRpbWl6ZWQgSVJJWCBjcHUgc3RhdHMKCjIwMDctMDUtMDkgMjE6MjMgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1cGRhdGUgdG8gc2hvdyBzdm4gcmVwbyB0b28KCjIwMDctMDUtMDkgMTU6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWNtcFN0YXRzVGFibGUgaXMgb25seSBpbXBsZW1lbnRlZCBmb3IgTGludXgKCjIwMDctMDUtMDggMTk6NDggIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJldmVydCBtaXN0YWtlbmx5IGNvbW1pdHRlZCBleHRyYSB0cmFjZSBsb2dzCgoyMDA3LTA1LTA3IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHVwZGF0ZSBhZ2VudDo6ZGVmYXVsdF9zdG9yZSBwZXJsIG1vZHVsZSBmb3IgbmV3IGRlZnMKCjIwMDctMDUtMDcgMjA6MjQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBtb3JlIHN2biBjb252ZXJzaW9uIGZpeGVzCgoyMDA3LTA1LTA3IDIwOjIzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTcxMjk4ODogZGVmYXVsdCBhbmQgY29uZmlndXJhYmxlIG1heGltdW0KICAgbnVtYmVyIG9mIHZhcmJpbmRzIHJldHVybmFibGUgdG8gYSBHRVRCVUxLIHJlcXVlc3QKCjIwMDctMDUtMDcgMjA6MDUgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICByZW5hbWUgb2YgYnJhbmNoIGRpcnMKCjIwMDctMDUtMDcgMTY6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhdHRlbXB0ZWQgKHVudGVzdGVkKSB1cGRhdGUKCjIwMDctMDUtMDcgMTM6NTUgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgZG9uJ3QgZGVsZXRlIHRhcmJhbGwgaWYgc2NwIGZhaWxzCgoyMDA3LTA1LTA0IDIwOjI3ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4IFNOTVAgU0VUIGZvciBJUCBhZGRyZXNzZXMgb24gNjQtYml0CgoyMDA3LTA1LTA0IDEwOjIyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBkcmFnb25mbHkuaAoKMjAwNy0wNS0wMyAyMzowMSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaDoKCiAgIENIQU5HRVM6IEJVRzogMTcxMDkxMDogaW5pdGlhbCBzdXBwb3J0IGZvciBEcmFnb25GbHkgQlNECgoyMDA3LTA1LTAzIDIyOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4IFNOTVAgU0VUIGZvciBJUCBhZGRyZXNzZXMgb24gNjQtYml0CiAgIFBhdGNoIHByb3Bvc2VkIGJ5IEplZmYgTGFuZ2UuCgoyMDA3LTA1LTAzIDE2OjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGJ1aWxkIGZpeCAoZS5nLiBmb3IgZWFybHkgQUlYKTogdXNlIHVpbnQzMl90IGkucy5vLiBfX3VpbnQzMl90CgoyMDA3LTA1LTAyIDEzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgoKMjAwNy0wNS0wMSAxOTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gdGVzdCBmb3IgSUZBX0ZfVEVNUE9SQVJZIGJlZm9yZSB1c2luZwogICAtIHJlbW92ZSByZWR1bmRhbnQgaWZkZWYKCjIwMDctMDUtMDEgMTE6MzQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFN1cHBvcnQgZm9yIGZvcndhcmRpbmcgdHJhcHMgYnkgT0lEIHN1YnRyZWUuCiAgIChDb25zaXN0ZW50IHdpdGggc3VidHJlZS1iYXNlZCBzY3JpcHQgcHJvY2Vzc2luZykuCgoyMDA3LTA0LTMwIDE0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMzAwNDogQ29uc29saWRhdGUgc25tcDYgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE5laWwgSG9ybWFuLCBwbHVzIHNvbWUgZXh0cmEgdGlkeWluZyB1cC4KCjIwMDctMDQtMzAgMTQ6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAyMzY2OiBTdXBwb3J0IGZvciBpY21wU3RhdHNUYWJsZQogICBQYXRjaCBwcm92aWRlZCBieSBOZWlsIEhvcm1hbgoKMjAwNy0wNC0zMCAxNDozMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAyMzYxOiBSZWFkIHN0YXRzIGZyb20gL3Byb2MvbmV0L3NubXA2CgoyMDA3LTA0LTMwIDE0OjE0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbiBJUHY2IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQuCgoyMDA3LTA0LTMwIDEzOjI2ICBkdHMxMgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3Mzc6IFRpZHkgdXAgc2V0U2VyaWFsTm8KICAgaW1wbGVtZW50YXRpb25zLgoKMjAwNy0wNC0zMCAxMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3MzI6IEZpeCBkZWJ1ZyBvdXRwdXQgc3RhdGVtZW50cy4KCjIwMDctMDQtMzAgMTM6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMDczMDogUmVtb3ZlIHVudXNlZCBleHRlcm4gZGVjbGFyYXRpb24uCgoyMDA3LTA0LTMwIDExOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTgxODQ6IFJlZ2lzdGVyIG5vbi1kZWZhdWx0IGNvbnRleHQKICAgaW50ZWdlcnMgYXMgd3JpdGFibGUuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hcmsgTmF5bG9yLgoKMjAwNy0wNC0zMCAxMToyNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjk4MTc6IEltcHJvdmVkIFJGQyA0MjkzIHN1cHBvcnQuCiAgIEluY2x1ZGVzIG5vbi11bmljYXN0IGFuZCByYW5kb21seSBjaG9zZW4gSVAgYWRkcmVzc2VzLgogICBQYXRjaCBwcm92aWRlZCBieSBWYXJ1biBDaGFuZHJhbW9oYW4KCjIwMDctMDQtMzAgMTE6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTI3Njg6IEZpeCBjb3B5aW5nIG9mIG5vbi1vY3RldC1hbGlnbmVkCiAgIElQIGFkZHJlc3MgcHJlZml4ZXMuCgoyMDA3LTA0LTMwIDEwOjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjcwNTExOiBJbXBsZW1lbnQgbmV0d29yayBjb25uZWN0aW9uCiAgIHByb2Nlc3MgSUQgb2JqZWN0cy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgVmFydW4gQ2hhbmRyYW1vaGFuCgoyMDA3LTA0LTMwIDEwOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeCBkZWNsYXJhdGlvbiBvZiBzbm1wX3Nlc3NfcmVhZF9leHRkKCkKCjIwMDctMDQtMzAgMTA6MjUgIGR0czEyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMjU6IEZpeCBwcm9ibGVtIHdpdGggb3BlcmF0b3IKICAgcHJlY2VkZW5jZS4KCjIwMDctMDQtMzAgMTA6MjEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTk6IERlY2xhcmUgc25tcF9zZXNzX3JlYWRfZXh0ZCgpCgoyMDA3LTA0LTMwIDEwOjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxODogTWFrZSBfc2Vzc19zZWxwb2xfaW5mbyBzdGF0aWMuCgoyMDA3LTA0LTMwIDEwOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxNzogUmVtb3ZlIGFuIHVudXNlZCBsb2NhbCB2YXJpYWJsZQoKMjAwNy0wNC0zMCAxMDowNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxNjogRG9uJ3QgZHJvcCBjb25zdCBmcm9tIGNhc3RzLgoKMjAwNy0wNC0yNyAxMDoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIEJyaW5nIGR5bmFtaWMgbW9kdWxlIHVubG9hZCBwcm9jZXNzaW5nIG1vcmUgaW50byBsaW5lIHdpdGgKICAgIm5vcm1hbCIgTUlCIG1vZHVsZXMuIFN1Z2dlc3RlZCBieSBNYWdudXMgRnJvbXJlaWRlLgogICBTZWUgY29kZXJzIHRocmVhZCAic2h1dGRvd25fZm9vIG9yIGRlaW5pdF9mb28iLgoKMjAwNy0wNC0yNyAxMDoxNyAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFVwZGF0ZSBwb3N0LXJlbGVhc2UgYW5ub3VuY2VtZW50IGluc3RydWN0aW9ucy4KCjIwMDctMDQtMjQgMTI6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRml4IGluY29tcGxldGUgT0lEIGhhbmRsaW5nIG9mIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgogICBSZXBvcnRlZCBieSBNYXggb24gY29kZXJzIGxpc3QsIDd0aCBBcHJpbC4gU2VlIHRocmVhZAogICAiLi4uIHNlZ2ZhdWx0IC4uIHdoZW4gYXR0ZW1wdGluZyBTTk1QIEdFVCBvbiBleHRlbmQgb3IgZXhlYyBpdGVtIgoKMjAwNy0wNC0yMCAwODozMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgYmVoYXZpb3VyIG9mIGEgbG9hZCB0aHJlc2hvbGQgb2YgMC4KICAgUmVwb3J0ZWQgYnkgRm9uZyBUc3VpLgoKMjAwNy0wNC0yMCAwODoyMSAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTG9uZy10ZXJtIGxvYWQgYXZlcmFnZSBpcyBjYWxjdWxhdGVkIG92ZXIgMTUgbWludXRlcywgbm90IDEwLgogICBSZXBvcnRlZCBieSBGb25nIFRzdWkKCjIwMDctMDQtMTkgMTI6NTMgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBUd2VhayBDaGFuZ2VMb2cgaW5zdHJ1Y3Rpb25zIGZvciBTVk4KCjIwMDctMDQtMTAgMTQ6MTYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRGV0ZWN0IE9JRCByZXRyYWNraW5nIChhcyB3ZWxsIGFzIHNpbXBsZSByZXBldGl0aW9ucykgd2hlbgogICBidWxrd2Fsa2luZyBhbiBPSUQgdHJlZS4KICAgU2VlIHVzZXJzIHRocmVhZCAibWlzc2luZyBpbmRpY2VzIGluIGJ1bGt3YWxrIHJlc3VsdCIuCgoyMDA3LTA0LTEwIDExOjQ5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBDbGFyaWZ5IGNvcHlyaWdodCBzdGF0dXMgb2YgV2luMzIgQVBJIGRlZmluaXRpb25zLgoKMjAwNy0wNC0xMCAxMToyNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaDoKCiAgIENsYXJpZnkgY29weXJpZ2h0IHN0YXR1cyBvZiBCU0QtZGVyaXZlZCBUQ1BUViogZGVmaW5pdGlvbnMuCgoyMDA3LTA0LTA5IDE0OjAyICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIC0gcmVtb3ZlIGRlYnVnZ2luZwogICAtIGNoZWNrIHJjIGZvciB0YXIsIGd6aXAgYW5kIHNjcCBzdGVwcwoKMjAwNy0wNC0wNiAxODozOCAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBzdm4gZXF1aXZhbGVudCBvZiBjdnN1cAoKMjAwNy0wNC0wMyAwODo1NCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBFbXBoYXNpc2UgdGhlIHVzZSBvZiBTTk1QdjMgaW4gRGlzTWFuIG1vbml0b3JpbmcuCiAgIEZpeCB0aGUgc3ludGF4IG9mIG5vbi1leGlzdGFuY2UvdmFsdWUtY2hhbmdlIHRlc3RzLgoKMjAwNy0wNC0wMiAxNDo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTA0NjMyNzogUmVzZXQgImluY2x1ZGVBbGxEaXNrcyIgZmxhZyB3aGVuCiAgIHJlbG9hZGluZy4KCjIwMDctMDQtMDIgMTQ6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MDIyODY6IERvbid0IGxldCB0YWJsZSBob2xlcyBibG9jayBsYXRlcgogICByb3dzLgoKMjAwNy0wNC0wMiAxMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTA3Mzc4MjogUmVzdG9yZSBQZXJmU3RhdCB2YWx1ZXMgZm9yIEZyZWVCU0QKICAgNS54IHN5c3RlbXMuCiAgIEl0J3MgdW5jbGVhciB3aHkgdGhlICJuZXciIGNhbGN1bGF0aW9uIHdhcyBhKSBwcm9wb3NlZCwgYikKICAgd2l0aGRyYXduLAogICBhbmQgYykgd2hhdCB3YXMgd3Jvbmcgd2l0aCB0aGUgcHJldmlvdXMgY2FsY3VsYXRpb24gKHdoaWNoIHNlZW1zCiAgIHRvCiAgIG1hdGNoIHRoZSBvdXRwdXQgb2YgJ3BzJykKCjIwMDctMDQtMDIgMTM6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogOTAyNjEwOiBEb24ndCBkaXNjYXJkIHBlbmRpbmcgZGF0YSBmb2xsb3dpbmcKICAgYSBUUkFQLgoKMjAwNy0wNC0wMiAxMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiA5MDI4MDE6IEZpeCBvcmRlcmluZyBvZiBTTVVYLXJlZ2lzdGVyZWQKICAgc3VidHJlZXMuCgoyMDA3LTA0LTAyIDEyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2ODUwNjc6IE1vcmUgcHJlY2lzZSBoYW5kbGluZyBvZgogICBTTk1QdjMtYWRtaW4gTUlCIHRhYmxlcy4KICAgVGhpcyBhY3R1YWxseSBmaXhlcyB0aHJlZSBzZXBhcmF0ZSBwcm9ibGVtczoKICAgKiAgQSBHRVQgcmVxdWVzdCBmb3IgJ3ZhY21BY2Nlc3NTdGF0dXMuImdyb3VwIi4iIi4zLjQnIHdpbGwgICAKICAgICAgc3VjY2VlZCAgICAoc2luY2UgVkFDTSBjaGVja3MgYWNjZXB0IHRoZSBnaXZlbiBzZWN1cml0eSBsZXZlbAogICAgICAqb3IqaGlnaGVyKikgIDIwMDctMDQtMDIgMTI6MjYgIGR0czEyCgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENoZWNrIHRoYXQgR0VUIHJlcXVlc3RzIG1hdGNoIGEgdmFsaWQgT0lELgogICAoT3RoZXJ3aXNlIGEgcmVxdWVzdCBmb3IgaHJTdG9yYWdle0NvbHVtbn0ue2luZGV4fS57YW55dGhpbmd9CiAgIHdpbGwgaWdub3JlIHRoZSBleHRyYSBzdWJpZHMsIGFuZCByZXR1cm4gc3VjY2VzcykKCjIwMDctMDQtMDIgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYzoKCiAgIFByZXZlbnQgY3Jhc2ggd2hlbiB3YWxraW5nIChpbnZhbGlkPykgRXZlbnQtTUlCIE9iamVjdHMgVGFibGUuCgoyMDA3LTA0LTAyIDExOjMwICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgRml4IGEgY291cGxlIG9mIHR5cG9zIGluIHRoZSByZS13b3JrZWQgbWFrZXJlbGVhc2Ugc2NyaXB0LgoKMjAwNy0wMy0yOSAxMjoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBzeW50YXggZXJyb3IgKCI9PSIgaXMgYmFkKQoKMjAwNy0wMy0yNyAwODo1NSAgZHRzMTIKCiAgICogYWNpbmNsdWRlLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlYWQgdXNlci1wcm9tcHRlZCB2YWx1ZXMgZnJvbSBvcmlnaW5hbCBzdGRpbiAobm90IC9kZXYvbnVsbCkKCjIwMDctMDMtMjcgMDg6MzggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWNjZXB0ICcyYycgYXMgYSB2YWxpZCByZXNwb25zZSB3aGVuIGNob29zaW5nIHRoZSBkZWZhdWx0IHZlcnNpb24KCjIwMDctMDMtMjcgMDg6MjkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogY29uZmlndXJlOiBCVUc6IDE1NjczMjQ6IENsYXJpZnkgcHJvbXB0aW5nIGZvcgogICB1c2VyLXN1cHBsaWVkIHZhbHVlcy4KICAgTm93IG9ubHkgcmVtZW1iZXJzIChhbmQgdXNlcykgcHJldmlvdXMgdmFsdWVzIHdoZW4gZXhwbGljaXRseQogICB0b2xkIHRvIGRvIHNvLAogICBlLmcuIGNvbmZpZ3VyZSAtQwoKMjAwNy0wMy0yNyAwODoyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggaW5jb25zaXN0ZW5jeSBpbiBwYXRjaCAjMTYyNzA0OSAtIDxwb2xsLmg+IHZzIDxzeXMvcG9sbC5oPgoKMjAwNy0wMy0yNSAyMjozMSAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFZhcmlhYmxlLWxlbmd0aCBzdHJpbmcgdmFsdWVzIGFyZSBtb3JlIGxpa2VseSB0aGFuIGZpeGVkIGxlbmd0aC4KCjIwMDctMDMtMjUgMjI6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDgzMzY3MzogTW9yZSBmb2N1c2VkIHNpemUgY2hlY2tzLgoKMjAwNy0wMy0yNSAyMToyNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY3NzA2MzogQ2hlY2sgZm9yIGZhaWxlZCBtYWxsb2MgY2FsbHMuCgoyMDA3LTAzLTI1IDE5OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQ2hlY2sgU0VUIHJlcXVlc3RzIGFnYWluc3QgdGhlIGNvcnJlY3QgdHlwZSAoSVAgQWRkcmVzcyAhPSBPY3RldAogICBTdHIpCgoyMDA3LTAzLTI1IDE4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY4NTA4MTogQ2hlY2sgZm9yIHZhbGlkIE9JRCBvbiBGcmVlL1VuZG8KICAgcGFzc2VzLgoKMjAwNy0wMy0yMyAwOTo0NCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBDSEFORUdTOiBzbm1wbGliOiBCVUc6IDE2ODYzODQ6IERvY3VtZW50IG5vbi11c2Ugb2YgJ3JlbW90ZV9wb3J0JwogICBmaWVsZC4KCjIwMDctMDMtMjMgMDk6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgQWxsb3cgc3BhY2UgZm9yIGV4dGVybmFsIGluZGV4ZXMgd2hlbiBzYXZpbmcgdGFibGUgZW50cmllcy4KICAgKFNlZSBwYXRjaCAjMTY0MjI1NSkKCjIwMDctMDMtMjMgMDk6MTQgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MjI1NTogSGFuZGxlIHNhdmluZyBsb25nCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZSBlbnRyaWVzLgoKMjAwNy0wMy0yMyAwOTowOSAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODE5Nzc6IEFkZCBjYWxsYmFja3MgcHJpb3IgdG8gcmVhZGluZwogICBjb25maWcuCgoyMDA3LTAzLTIzIDA5OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjc2NDc4OiBmaXggdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2NzY0NzY6IGZpeCB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MKCjIwMDctMDMtMjMgMDk6MDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjUzNjcwOiBDb25zaXN0ZW50IFNOTVB2MyBiZWhhdmlvdXIKICAgd2hlbiBvcGVuaW5nIHNlc3Npb25zLgoKMjAwNy0wMy0yMyAwODo1NyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MjcwNDk6IE5ldyBBUEkgdG8gaGFuZGxlIGxhcmdlIG51bWJlcnMKICAgb2YgZmlsZSBkZXNjcmlwdG9ycy4KCjIwMDctMDMtMjIgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjgxMDMwOiBCZXR0ZXIgaGFuZGxpbmcgb2YgZW1wdHkKICAgYXBwdHlwZSBjb25maWdzLgoKMjAwNy0wMy0yMiAxOToxMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgICAKICAgICAgYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3ODc4ODogQmV0dGVyIGhhbmRsaW5nIG9mIFNNVVggc29ja2V0CiAgIGRlc2NyaXB0b3JzLgoKMjAwNy0wMy0yMiAxOTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY4MzA1NDogc2V0IHVkcEVuZHBvaW50SW5zdGFuY2UgdG8KICAgaWRlbnRpZnkgZGlmZmVyZW50IHByb2Nlc3Nlcy4KCjIwMDctMDMtMjEgMTI6MzUgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIERlY2xhcmUgT0lEIGNvbnN0YW50cyBhcyBzdWNoIChyYXRoZXIgdGhhbiBBUEkgY2FsbHMpLgogICBQcm9wb3NlZCBieSBBbGV4IEJ1cmdlcgoKMjAwNy0wMy0yMCAyMDowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjY2NzM3OiBpbmNsdWRlIGlwdjYgY291bnRzIGluCiAgIHVkcEluRGF0YWdyYW1zLCB1ZHBOb1BvcnRzLCB1ZHBJbkVycm9ycywgdWRwT3V0RGF0YWdyYW1zCgoyMDA3LTAzLTE5IDIyOjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmM6CgogICB1c2UgcG1GcmVlUmVzdWx0KCkgaW5zdGVhZCBvZiBmcmVlKCkKCjIwMDctMDMtMTkgMDk6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMy0xNiAxNDowNCAgZHRzMTIKCiAgICogIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsIGRpc3QvY2hhbmdlbG9nZml4LCBkaXN0L21ha2VyZWxlYXNlLCAgIAogICAgICBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ29udmVydCBidWlsZCBzeXN0ZW0gdG8gU1ZOIHZlcnNpb24uCgoyMDA3LTAzLTE1IDEwOjU5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjgxMDczOiAjaWZkZWYgYmFzZWQgY29uZmlnX2Vycm9yIGluc3RlYWQKICAgb2Ygc3BlY2lhbCBjYXNlcyBpbiBjb25maWd1cmUKCjIwMDctMDMtMTUgMTA6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDMtMTQgMjM6MzEgIHRhbmRlcnMKCiAgICogIFJFQURNRS5pcml4LCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuaDoKCiAgIE5FV1M6IElSSVg6IFBBVENIOiAxNjc1ODY5OiBmcm9tIGJiaWNlOiBDUFUgc3RhdGlzdGljcyBmb3IgSVJJWAogICBiYXNlZCBvbiBQQ1AKCjIwMDctMDMtMTQgMjI6MDkgIHRhbmRlcnMKCiAgICogIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjgxMDQzOiBmcm9tIG1hZ2ZyOiBjbGVhbiB1cCBoZWxwZXIKICAgaW5jbHVkZXMKCjIwMDctMDMtMTQgMjE6NTQgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2ODEwMzU6IGZyb20gbWFnZnI6IGltcHJvdmUgbmV0LXNubXAtY29uZmlnCiAgIC9iaW4vc2ggY29tcGF0aWJpbGl0eQoKMjAwNy0wMy0xNCAxODozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2NzgzMDA6IGZyb20gbWFnZnI6IGNvbXBpbGUtc3ViYWdlbnQKICAgZG9lc24ndCBjYWxsIHNodXRkb3duXyBtZXRob2RzCgoyMDA3LTAzLTE0IDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogRG9uJ3QgYXV0b21hdGljYWxseSBwcm9iZSBmb3IKICAgdjMgRW5naW5lSURzLgoKMjAwNy0wMy0xMyAxMDoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ2hlY2sgZm9yIHplcm8tc2l6ZSBwc2V1ZG8tZmlsZXN5c3RlbXMuIFJlcG9ydCB0aGVtIGFzIGVtcHR5CiAgIHJhdGhlciB0aGFuIGZ1bGwsIHNvIHRoZXkgd29uJ3QgYmUgdHJlYXRlZCBhcyBhbiBlcnJvci4KCjIwMDctMDMtMTMgMDU6NTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDU6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGNhY2hlIGluCiAgIGhhcmR3YXJlL2NwdS9jcHUgb24gc2h1dGRvd24gKGhlYWRlciBwYXJ0KQoKMjAwNy0wMy0xMiAyMzowOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwNjogZnJvbSBtYWdmcjogRGVhbGxvY2F0ZSB0aGUgbG9nIGluCiAgIG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cKCjIwMDctMDMtMTIgMjM6MDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDU6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGNhY2hlIGluCiAgIGhhcmR3YXJlL2NwdS9jcHUgb24gc2h1dGRvd24KCjIwMDctMDMtMTIgMjI6NTcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzAyOiBmcm9tIG1hZ2ZyOiBuZXRzbm1wX21pYmluZGV4X2xvYWQgbGVha3MKICAgbWVtb3J5CgoyMDA3LTAzLTEyIDIyOjUwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzAxOiBmcm9tIG1hZ2ZyOiBkZWFsbG9jYXRlIGRvbWFpbiByZWdpc3RyeQogICBhdCBzaHV0ZG93bgoKMjAwNy0wMy0xMiAyMjozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODI5ODogZnJvbSBtYWdmcjogY29tcGlsZS1zdWJhZ2VudCBjaGVja3MgZm9yCiAgIGJhZCBIQVZFX1NJR05BTF9ICgoyMDA3LTAzLTEyIDIxOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2OTA0ODogQWRkIHN1cHBvcnQgZm9yCiAgIGlwdjZJbnRlcmZhY2VJZGVudGlmaWVyCgoyMDA3LTAzLTEyIDIxOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNDEzNzI4OiBSZWZlcmVuY2UgaW5kZXggdmFsdWVzIGluIGRlYnVnCiAgIG91dHB1dCBjb3JyZWN0bHkuCgoyMDA3LTAzLTEyIDIxOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMTAyMDU4OiBTa2lwIG5vbi1tb3VudGVkIGRpc2tzIChlLmcuIHN3YXAKICAgcGFydGl0aW9ucykKCjIwMDctMDMtMTIgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBVcGRhdGUgcmVnaXN0cmF0aW9uIG9mCiAgIFJlYXNtTWF4U2l6ZSBzdXBwb3J0LgoKMjAwNy0wMy0xMiAyMToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBGaXggY2hlY2sgZm9yIHY2IFJlYXNtTWF4U2l6ZQogICBzdXBwb3J0LgoKMjAwNy0wMy0xMiAxOTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Njg5NTI6IElnbm9yZSB6b21iaWUgcHJvY2Vzc2VzLgoKMjAwNy0wMy0xMiAxOTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY1OTg1OiBJbXBsZW1lbnQgaXBSZWFzbVRpbWVvdXQKICAgVGhvdWdoIHRoaXMgcmVnaXN0ZXJzIGFuIGluc3RhbmNlLCByYXRoZXIgdGhhbiB0aGUgZnVsbCBzY2FsYXIKICAgb2JqZWN0CgoyMDA3LTAzLTEyIDE5OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSEVTOiAxNjY1NTQzOiBIYW5kbGUgVkFDTSBjaGVja3MgY29ycmVjdGx5LgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2NTU0OTogSGFuZGxlIGNyZWF0aW5nIFZBQ00gZW50cmllcwogICBjb3JyZWN0bHkuCiAgIFtCb3RoIHBhdGNoZXMgYXJlIHJlcXVpcmVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbl0KCjIwMDctMDMtMTIgMTk6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NTk2MjM6IEhhbmRsZSBTTVVYIHBlZXJzIHdpdGggYW4gZW1wdHkKICAgcGFzc3dvcmQuCgoyMDA3LTAzLTEyIDE5OjQ0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjU3NzQxOiBIYW5kbGUgNjQtYml0IHR5cGVzIHZpYSBwYXNzCiAgIG1lY2hhbmlzbS4KCjIwMDctMDMtMTIgMTk6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQ0MjgwOiBVc2UgdGhlIGNvcnJlY3QgZW5naW5lSUQgd2hlbgogICBzZW5kaW5nIHYzIHRyYXBzLgoKMjAwNy0wMy0xMiAxOTozMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0hFUzogMTY0MjA3MTogRG9uJ3QgZmlkZGxlIHdpdGggdGhlIHN0b3JhZ2UKICAgb2YgcHJlLWV4aXN0aW5nIHVzZXJzLgoKMjAwNy0wMy0xMiAxOTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NDE4NjU6IERvbid0IGRvdWJsZSBjaGVjayBzbm1wVHJhcE9JRAogICBpbiB0aGUgZmlsdGVyIHRhYmxlLgoKMjAwNy0wMy0xMiAxOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Mzk3MjY6IFJlcG9ydCBwaHlzaWNhbCBtZW1vcnkKICAgY29ycmVjdGx5IG9uICpCU0QKCjIwMDctMDMtMDkgMjE6MzEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc0Mjk5OiBmcm9tIG1hZ2ZyOiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB6b25lCiAgIHZhcmlhYmxlIGluIGR1bXBfcmVhbGxvY19vaWRfdG9faW5ldGFkZHJlc3MKCjIwMDctMDMtMDkgMjE6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzQzMDI6IGZyb20gbWFnZnI6IExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIGxlbgogICB2YXJpYWJsZSBpbiBjb252ZXJ0X3YycGR1X3RvX3YxCgoyMDA3LTAzLTA4IDE1OjUyICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaDoKCiAgIEluY2x1ZGUgSG9zdCBSZXNvdXJjZXMgTUlCIG9uIE5ldEJTRCBhbmQgT3BlbkJTRAoKMjAwNy0wMy0wNyAwOTo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3NDI5ODogZnJvbSBtYWdmcjogUmVtb3ZlIHVudXNlZCBzaW5rcG9ydAogICB2YXJpYWJsZQoKMjAwNy0wMy0wNiAxMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTE1OTkwODogRml4IG1lbW9yeSBsZWFrCgoyMDA3LTAzLTAyIDIyOjQwICB0YW5kZXJzCgogICAqIHNubXBsaWIvTVNHMDAwMDEuYmluOgoKICAgbm8gZW9sLXN0eWxlIGZvciBiaW5hcnkgZmlsZXMKCjIwMDctMDMtMDIgMjI6MjYgIHRhbmRlcnMKCiAgICogZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YX46CgogICBkb24ndCBzaGlwIGVkaXRvciBiYWNrdXAgY29waWVzCgoyMDA3LTAzLTAyIDE2OjIwICB0YW5kZXJzCgogICAqIHNubXBsaWIvTVNHMDAwMDEuYmluOgoKICAgZmxhZyBhcyBiaW5hcnkKCjIwMDctMDMtMDIgMTI6NDQgIHRhbmRlcnMKCiAgICogQ29kaW5nU3R5bGU6CgogICBmaXggdHlwbwoKMjAwNy0wMy0wMiAwOTo1NyAgZHRzMTIKCiAgICogVE9ETzoKCiAgIE1pbm9yIHR3ZWFrIC0gcGxheWluZyB3aXRoIFNWTiBhcyBtdWNoIGFzIGFueXRoaW5nLi4uLgoKMjAwNy0wMy0wMSAyMzo1NyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gdGhhdCB3ZSBtb3ZlZCB0byBTVk4KCjIwMDctMDItMjggMTU6MjcgIGR0czEyCgogICAqIENIQU5HRVMsIENoYW5nZUxvZywgTkVXUzoKCiAgIENoZWNrcG9pbnQgc3VtbWFyeSBvZiBDVlMgY2hhbmdlcywgcHJlcGFyYXRvcnkgZm9yIHRoZSBTVk4KICAgc3dpdGNoLgoKMjAwNy0wMi0yNyAxMzozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogTGludXg6IEJVRzogMTY2NjAwNTogRmFpbCB0byB3YWxrIGlwdjZJbnRlcmZhY2VUYWJsZSBvbiBMaW51eAoKMjAwNy0wMi0yNyAxMzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMTY2ODE3MTogc2tpcCB1bmtub3duIGNvbHMgaW4gbWluL21heCByYW5nZSBmb3IgdGFibGVzLCBpbnN0ZWFkIG9mIGVycm9yCgoyMDA3LTAyLTI3IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmg6CgogICBhZGQgaGVhZGVyIGZvciBlYXNpZXIgY29uZmlndXJlIC0td2l0aC1taWItbW9kdWxlCgoyMDA3LTAyLTI2IDE0OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFJlLWNvcnJlY3QgaW50ZXJwcmV0YXRpb24gb2YgIm51bGwgT0lEIiBpbiB0aGUgQWdlbnRYIHNwZWNzLgogICAoZm9yIHRoZSBsYXN0IHRpbWUsIEkgdHJ1c3QhKQoKMjAwNy0wMi0yNiAxNDozNyAgZHRzMTIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBGaXggcmVmZXJlbmNlIHRvIE5ldC1TTk1QIGluY2x1ZGUgbG9jYXRpb25zCgoyMDA3LTAyLTI2IDEyOjQ3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBQcm9tcHRpbmcgZm9yIGEgc2luZ2xlIGRpcmVjdG9yeSwgbm90IGFuIGFycmF5LgoKMjAwNy0wMi0yNiAxMTozMiAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE0Mjk0NzI6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIGluc3RhbmNlcyAoYW5kIGludmFsaWQgb2JqZWN0cykKCjIwMDctMDItMjYgMTE6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgRml4IGludmFsaWQgbWliMmMgZGlyZWN0aXZlLgoKMjAwNy0wMi0yNiAxMToxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxNjI3NjogSGFuZGxlIGRlcGVuZGVuY3kgb24gTUlCIHBhcnNpbmcgQVBJLgoKMjAwNy0wMi0yMyAyMTo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFkZCBxdW90ZXMgdG8gZml4IHNoZWxsIHN5bnRheCBlcnJvciB3aGVuIGVtcHR5CgoyMDA3LTAyLTIyIDIyOjM1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTGFzdCBjb21taXQgYnJva2UgdGhlIGJ1aWxkLiBOb3cgZXNjYXBlIGJhY2tzbGFzaGVzIHByb3Blcmx5LgoKMjAwNy0wMi0yMiAxNTozOCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDEyNDcxNjQ6IERvY3VtZW50IHVzZSBvZiBPSUQgbWFjcm9zCgoyMDA3LTAyLTIyIDAwOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLAogICAgIHVjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IEFJWDogUEFUQ0g6IDE2NjUwNzk6IGZyb20gIk1pY2hhZWwgS3VrYXQiOiBBSVggcGF0Y2hlcyBmb3IgY3B1IHN0YXRzIGFuZCBwcm9jZXNzIG1vbml0b3JpbmcKCjIwMDctMDItMjEgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGxhbWUtbWFrZSBzeXN0ZW1zIHRoYXQgY2FuJ3QgaGFuZGxlIHdoaXRlc3BhY2UgdGVybWluYXRpbmcgd3JhcHBlZCBsaW5lcwoKMjAwNy0wMi0yMSAxNTozMyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAxNjYyOTg3OiBjb21waWxlIGVycm9yIG9uIEN5Z3dpbgoKMjAwNy0wMi0yMSAxMzo1NiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCB0b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNjYwMDYxOiBWYWxpZGF0ZSBlbmdpbmVJRHMgbW9yZSBzdHJpY3RseS4KCjIwMDctMDItMjEgMTM6NDkgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMS5kZWYsIHNubXAuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTQwNzQ3NjogQ2xhcmlmeSBNSUIgcGFyc2luZyB0b2dnbGUgb3B0aW9ucyBhbmQgTUlCIGNvbW1lbnQgaGFuZGxpbmcuCgoyMDA3LTAyLTIxIDEzOjM3ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDEwOTYxNjY6IEhhbmRsZSAtLXdpdGhvdXQtbG9nZmlsZSBjb3JyZWN0bHkuCgoyMDA3LTAyLTE5IDE2OjM0ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiByZW1vdmFsIGZyb20gQ1ZTIG9mIGRlbGV0ZWQgZmlsZXMKCjIwMDctMDItMTkgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBSZXdvcmsgcmVsZWFzZSBpbnN0cnVjdGlvbnMgdG8gdGFrZSBhY2NvdW50IG9mICJtYWtlcmVsZWFzZSIgc2NyaXB0CgoyMDA3LTAyLTE5IDEwOjQ5ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgRG9uJ3QgYXNzdW1lIGxvY2FsIHVzZXJuYW1lcyBtYXRjaCBDVlMgYWNjb3VudCBuYW1lcy4KCjIwMDctMDItMTkgMTA6NDEgIGR0czEyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBJbXByb3ZlIGxheW91dCBvZiBDSEFOR0VTIGluZm9ybWF0aW9uLgoKMjAwNy0wMi0xOSAxMDowNiAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBEb24ndCBpbnZva2UgJ3ZlcnNpb250YWcnIGZvciB0YWdnaW5nIHRoZSBDVlMgdHJlZS4KICAgSXQgZG9lc24ndCBoYW5kbGUgdGhpcyBhbnkgbW9yZS4gIChVc2UgJ21ha2VyZWxlYXNlJyBpbnN0ZWFkKQoKMjAwNy0wMi0xOSAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIERvbid0IGZhaWwgc2lsZW50bHkgd2hlbiBjYWxsZWQgdG8gdGFnIHRoZSBDVlMgdHJlZS4KICAgUmV0dXJuIGluZGljYXRpb24gb2YgZmFpbHVyZSB0byB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbiAoZS5nLiBtYWtlKQoKMjAwNy0wMi0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBSZXZlcnQgdG8gcHJldmlvdXMgIm51bGwgT0lEIiBpbnRlcnByZXRhdGlvbiAoYnV0IHdpdGggdGhlIGNvcnJlY3QgZW5jb2RpbmcpLgoKMjAwNy0wMi0xNSAxMTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYwMDI2MTogSGFuZGxlIG5vbi14ODYgL3Byb2MvY3B1aW5mbyBmb3JtYXQKICAgKEEgd29ya2Fyb3VuZCwgcmF0aGVyIHRoYW4gYSBmaXggLSB3ZSByZWFsbHkgbmVlZCB0byBwYXJzZSB0aGVzZQogICAgb3RoZXIgZm9ybWF0cyBwcm9wZXJseSBpbiB0aGUgaW5pdCByb3V0aW5lKQoKMjAwNy0wMi0xNSAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDb3JyZWN0IG1pc2ludGVycHJldGF0aW9uIG9mICJudWxsIE9JRCIgaW4gQWdlbnRYIHNwZWNzLgoKMjAwNy0wMi0xNSAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVqZWN0IG92ZXJseS1zaG9ydCBUcmFwIE9JRHMuCiAgIERvbid0IGNyYXNoIG91dCBjb21wbGV0ZWx5IG9uIGZhaWxlZCB2MTwtPnYyIHRyYXAgY29udmVyc2lvbnMuCgoyMDA3LTAyLTEyIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MzM1OTU6IEZpeCBBZ2VudFggaGFuZGxpbmcgb2YgQ291bnRlcjY0IHZhbHVlcwoKMjAwNy0wMi0wOSAyMToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEzOTc4OTU6IGluY2x1ZGUgbWlzc2luZyBpbnRlcmZhY2UgZGVjbGFyYXRpb25zCgoyMDA3LTAyLTA4IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaCBmcm9tIFdvanRlayBKYXdvciB0byBoYW5kbGUgcm93IGRlbGV0aW9uIGlzc3VlcyBpbiBkYXRhc2V0IHRhYmxlcwoKMjAwNy0wMi0wNyAxNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQKOgoKICAgYWRkZWQgdGhlIGZsb3cgbGFibGUgbWliLCB3aGljaCB0aGUgdHVubmVsLW1pYiByZWZlcnMgdG8KCjIwMDctMDItMDUgMjM6MDIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBwb3J0YWJpbGl0eSBmaXhlcwoKMjAwNy0wMi0wNSAyMjo1MCAgdGFuZGVycwoKICAgKiBkaXN0L2NoZWNrLWFwaS1jaGFuZ2U6CgogICB1c2UgL2Jpbi9zaCB1bmxlc3MgYmFzaCBmZWF0dXJlcyBhcmUgcmVhbGx5IG5lZWRlZAoKMjAwNy0wMi0wNSAyMTo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG5vdGUgdGhhdCBjdXJyZW50IHNob3VsZCBiZSBidW1wZWQgYnkgNSB3aGVuIGJ1bXBlZAoKMjAwNy0wMi0wNSAyMTo0OSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIG5vdGUgdGhhdCBjdXJyZW50IHNob3VsZCBiZSBidW1wZWQgYnkgNSB3aGVuIHVwZGF0ZWQKICAgLSBhZGQgcG9pbnRlciB0byBuZXcgY2hlY2stYXBpLWNoYW5nZXMgc2NyaXB0CgoyMDA3LTAyLTA1IDIxOjQ2ICByc3RvcnkKCiAgICogZGlzdC9jaGVjay1hcGktY2hhbmdlOgoKICAgc2ltcGxpc3RpYyBuZXcgc2NyaXB0IHRvIGhlbHAgY2hlY2sgZm9yIGFwaSBjaGFuZ2VzIGJldHdlZW4gcmVsZWFzZXMKCjIwMDctMDItMDUgMjE6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIG1ha2UgbmV3IHN0cnVjdCBtZW1iZXIgY29uZGl0aW9uYWwsIHNpbmNlIHVzZSBpcyBjb25kaXRpb25hbAoKMjAwNy0wMi0wNSAyMToyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBtb3ZlIGZ1bmN0aW9uIGNhbGwgb3V0IG9mIGFzc2VydAoKMjAwNy0wMi0wNSAxNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MTg5NTogRXh0ZW5kIHNob3J0IHZpZXcgbWFza3MgKGFzIHBlciBSRkMgc3BlY3MpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDItMDUgMTQ6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MzkzNjA6IEZpeCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlIHJvdyBjcmVhdGlvbi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMi0wNSAxMTowMSAgZHRzMTIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IGNvbXBpbGF0aW9uIGlmIExPQ0tfUEVSX0NBTExCQUNLX1NVQklEIG5vdCBkZWZpbmVkLgogICBSZXBvcnRlZCBieSBFbWkgWWFuYWdpCgoyMDA3LTAyLTA1IDA5OjQ4ICBkdHMxMgoKICAgKiBGQVE6CgogICBTcGVsbGluZyBjb3JyZWN0aW9uOiAnc3VwZXJjZWRlZCcgLT4gJ3N1cGVyc2VkZWQnCiAgIChPaCwgdGhlIHNoYW1lIG9mIGl0ISkKCjIwMDctMDEtMzEgMTM6NTEgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTY0Nzk3NjogQ3lnd2luL01pbkdXIFdpbmRvd3MgYnVpbGQgZmFpbHMgZHVlIHRvIGxpYnRvb2wgZXJyb3IKCjIwMDctMDEtMzAgMTM6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHlldCBhbm90aGVyIGZpeCB0byBhZGRyZXNzIGJ1aWxkIGlzc3VlcyB3aXRoIGV0aHRvb2wgKG9uIFJIOSkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTMwIDA5OjEwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHdoZW4gc3ltbGluayBmaXggaXMvaXNuJ3QgYXBwcm9wcmlhdGUuICBTeW5jaCB3aXRoIFdpa2kuCgoyMDA3LTAxLTI5IDExOjEyICBkdHMxMgoKICAgKiBGQVE6CgogICBBdXRoZW50aWNhdGVkIFNOTVB2MyByZXF1ZXN0cyBzdGlsbCBuZWVkIGEgdXNlcm5hbWUuICAoU3luY2ggd2l0aCBXaWtpKQoKMjAwNy0wMS0yOSAxMTowMyAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjggMTM6MzYgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGJhZCB0ZXN0CgoyMDA3LTAxLTI4IDEzOjA2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbmFtZSB2YXJpYWJsZSB0byByZXNvbHZlIG5hbWUgY2xhc2ggYW5kIHRvIHVuYnJlYWsgbmlnaHRseSBidWlsZHMgb24gU29sYXJpcwoKMjAwNy0wMS0yOCAxMjo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yNyAxNDo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHR5cG8KCjIwMDctMDEtMjcgMTQ6MjMgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yNiAxMToxNSAgdGFuZGVycwoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZToKCiAgIG1vcmUgQm91cm5lIHNoZWxsIGNvbXBhdGliaWxpdHkgZml4ZXMKCjIwMDctMDEtMjUgMjI6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBGcmVlQlNEOiBmaXggY29uZmlndXJlIHdhcm5pbmcgZm9yIHN5cy9jb25mLmgKCjIwMDctMDEtMjUgMjI6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlOgoKICAgcmVwbGFjZSBieSBtb3JlIHJlYXNvbmFibGUgY29udGVudAoKMjAwNy0wMS0yNSAyMjowNSAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgZml4IHR5cG8KCjIwMDctMDEtMjUgMjE6MzEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBQQVRDSDogMTY0NDczNTogZnJvbSAiQnJlbnQgQmljZSI6IGFkZCBnY2MgYnVpbGQgaW5zdHJ1Y3Rpb25zIGZvciBJUklYCgoyMDA3LTAxLTI1IDIxOjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0NDcxNDogZnJvbSAiTGVsYW5kIFdhbGxhY2UiOiByZXBsYWNlIGxhc3QgcmVtYWluaW5nIGluc3RhbmNlIG9mIGRlcHJlY2F0ZWQgY29weV93b3JkIGJ5IGNvcHlfbndvcmQKCjIwMDctMDEtMjUgMTU6MzAgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2UsIG5zYi1wbGF0Zm9ybToKCiAgIG1hbnkgQm91cm5lIHNoZWxsIHBvcnRhYmlsaXR5IGZpeGVzCgoyMDA3LTAxLTI0IDE2OjM5ICBkdHMxMgoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZSwgbnNiLXBsYXRmb3JtOgoKICAgUHJlLVBvc2l4IEJvdXJuZSBzaGVsbCBjb21wYXRhYmlsaXR5LgoKMjAwNy0wMS0yNCAxNDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgVHdlYWsgZGVidWcgb3V0cHV0CgoyMDA3LTAxLTI0IDEzOjU4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBTaGVsbHNjcmlwdCBwb3J0YWJpbGl0eS4gIChFdmVyeXRoaW5nIGhhcyAvYmluL3NoKQoKMjAwNy0wMS0yNCAxMzo0OSAgZHRzMTIKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwLCBuc2ItY29uZmlnLAogICAgIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZSwKICAgICBuc2ItcGxhdGZvcm06CgogICBJbXByb3ZlIHNoZWxsLXNjcmlwdCBwb3J0YWJpbGl0eS4gKEV2ZXJ5dGhpbmcgaGFzIC9iaW4vc2ghKQoKMjAwNy0wMS0yNCAxMzo0MCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcF9jbGllbnQuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyBvdXRwdXQKCjIwMDctMDEtMjQgMTM6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBQcmVsaW1pbmFyeSB0YWJsZSB1bnJlZ2lzdHJhdGlvbiBBUEkuCgoyMDA3LTAxLTI0IDEzOjExICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIE1vdmUgaG9zdG5hbWUgdHJhbnNsYXRpb24gaW50byB0aGUgdHJhbnNwb3J0LXNwZWNpZmljIGxpYnJhcnkgcm91dGluZXMuCiAgIChXaGVyZSBpdCBiZWxvbmdzISkKCjIwMDctMDEtMjQgMTM6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQmFzaWMgZnJhbWV3b3JrIGZvciB0cmFuc3BvcnQtc3BlY2lmaWMgdHJhbnNsYXRpb24gb2YgaG9zdG5hbWVzLgoKMjAwNy0wMS0yNCAxMjoyNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBTdXBwcmVzcyBhc3NvcnRlZCB3YXJuaW5ncy4KCjIwMDctMDEtMjQgMTI6MTggIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbWFrZSBzdXJlIHVpbnRwdHJfdCBpcyBhbHdheXMgZGVmaW5lZCBhcyB1bnNpZ25lZC4gU3BvdHRlZCBieSBEYXZpZCBGb3JkLgoKMjAwNy0wMS0yMyAyMjo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhIHJvdyB0aGF0IHdhcyBuZXZlciBpbnNlcnRlZAoKMjAwNy0wMS0yMyAyMjozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IHRyeSB0byByZW1vdmUgYSByb3cgdGhhdCB3YXMgbmV2ZXIgaW5zZXJ0ZWQKCjIwMDctMDEtMjMgMTY6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzOTI4MjogU2F2ZSBwZXJzaXN0ZW50IHNubXBUYXJnZXRQYXJhbXNUYWJsZSBzZXR0aW5ncyBjb3JyZWN0bHkuCiAgIEZpeCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNTo0NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MzQ2MjA6IEZpeCBsZWFrcyBmcm9tIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiBmYWlsdXJlLgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE0OjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogQlVHOiAxNjM4MjI1OiBGaXggaW50ZXJwcmV0YXRpb24gb2YgdHJhbnNwb3J0IGFkZHJlc3MgZGF0YS4KICAgKEtlZXAgdGhpcyBjb25zaXN0ZW50IHdpdGggc25tcFVEUERvbWFpbi5jKQogICBUaGlzIGRvZXMgbm90IGZlZWwgdGhlIHJpZ2h0IHdheSB0byBoYW5kbGUgdGhpcyEKCjIwMDctMDEtMjMgMTQ6MTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEJyaW5nIHRyYXAgaGFuZGxpbmcgaW4gbGluZSB3aXRoIFJGQyAyNTc2LzM1ODQgLSBkcm9wIFNOTVB2MSB0cmFwcwogICBjb250YWluaW5nIENvdW50ZXI2NCB2YXJiaW5kcy4gIFJlcXVlc3RlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0yMiAyMjozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MTk3MjogZnJvbSBtYWdmcjogYWRkIG1pc3NpbmcgY29uc3QKCjIwMDctMDEtMjIgMTY6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MTMzMjogSW5jbHVkZSBtaXNzaW5nIGFnZW50IGNvbmZpZyBkZWZpbml0aW9ucy4KCjIwMDctMDEtMjIgMTY6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBmaXggdHlwbyBvdmVyd3JpdGluZyBjb250YWluZXIgbmFtZQoKMjAwNy0wMS0yMiAxNjoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQxNjg1OiBIYW5kbGUgdW5yZXNwb25zaXZlIEFnZW50WCBzdWJhZ2VudHMgbW9yZSByZWxpYWJseS4KICAgRml4IHByb3ZpZGVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDA3LTAxLTIyIDE1OjUxICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQwMTE0OiBEb24ndCBzdG9yZSB0cmFpbGluZyBudWxsIGNoYXJhY3Rlci4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xOSAxNjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBORVdTOiBCVUdTIDE2MzM0ODM6IFN1cHBvcnQgQ1BVIEhBTCBvbiBGcmVlQlNENC54CiAgIChiZWZvcmUgQ1BVIGRlZmluaXRpb25zIHdlcmUgbW92ZWQgdG8gPHN5cy9yZXNvdXJjZS5oPikKCjIwMDctMDEtMTkgMTY6NTMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogQlVHOiAxNjMzNDgzOiBTdXBwb3J0IENQVSBIQUwgb24gRnJlZUJTRDQueAogICAoYmVmb3JlIENQVSBkZWZpbml0aW9ucyB3ZXJlIG1vdmVkIHRvIDxzeXMvcmVzb3VyY2UuaD4pCgoyMDA3LTAxLTE5IDE2OjE1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6ICptb3ZlKiAocmF0aGVyIHRoYW4gY29weSkgZ2xvYmFsIHZhcmlhYmxlcwogICBmcm9tIHNubXB0cmFwZCB0byBsaWJuZXRzbm1wdHJhcGQKCjIwMDctMDEtMTkgMTQ6MTggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogTGludXg6IGZpeCBldGh0b29sIGNvbmZpZ3VyZSBjaGVjayBmb3IgcmVjZW50IHN5c3RlbXMgKGUuZy4gRkM2LCBSSEVMNSkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTE5IDExOjI1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgaGFzbW50b3B0IHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtcyB0aGF0IGxhY2sgaXQKCjIwMDctMDEtMTggMTI6NTAgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBtb3ZlIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBzbm1wdHJhcGQgdG8gbGlibmV0c25tcHRyYXBkCgoyMDA3LTAxLTE4IDExOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZHJvcCAiLWUiL3ByaW50RXZlbnROdW1iZXJzIHN1cHBvcnQgZm9yIHNubXB0cmFwZCAob2Jzb2xldGUsIGRlcHJlY2F0ZWQgYW5kIGJyZWFrcyBsaWJyYXJ5IGxheWVyaW5nKQoKMjAwNy0wMS0xNiAxMDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgUmVzZXQgJ3NlbmQnIGZsYWcgdG8gY29uc2lkZXIgZWFjaCBzaW5rIGluZGl2aWR1YWxseS4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xNiAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHNlbmRpbmcgbWlzbWF0Y2hlZCB0cmFwcyAodjEgdHJhcCBvbiB2MiBzaW5rKS4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xNiAwOTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBEb24ndCBoYXJkY29kZSB0aGUgc2l6ZSBvZiBjb3VudGVyNjQgc3RydWN0dXJlIChtYXkgYmUgd3Jvbmcgb24gNjQtYml0IGJveGVzKQoKMjAwNy0wMS0xNiAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRXh0cmEgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMDEtMTEgMjI6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBpbnRyb2R1Y2UgbmV0c25tcF9ta3RlbXAgdG8gcHJldmVudCBsaWJuZXRzbm1wYWdlbnQgZnJvbSBkZXBlbmRpbmcgb24gbGlibmV0c25tcG1pYnMKCjIwMDctMDEtMTEgMjE6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgYXV0b2NvbmYgcmVxIHRvIDIuNjEKCjIwMDctMDEtMTEgMjE6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgICAgc25tcFNURERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfc2VydmljZS5jLAogICAgIHNubXBfdHJhbnNwb3J0LmM6CgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gbWFrZSB0aGUgdHJhbnNwb3J0IHN5c3RlbXMgQysrIGNvbXBhdGlibGUKCjIwMDctMDEtMTEgMDk6MTcgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBGaXggc29tZSBtYW5nbGVkIHRleHQuCgoyMDA3LTAxLTEwIDIwOjU4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTYxNDEwNDogYnJva2VuIHNubXBkKDgpIG1hbnVhbCBwYWdlIGluIDUuNAoKMjAwNy0wMS0wOSAyMTo1MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBJRi1NSUIgZml4OiBhZGQgbWlzc2luZyByZXR1cm4gYXQgZW5kIG9mIGdldF9pZl9zdGF0cwoKMjAwNy0wMS0wOCAwODozMCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogYnVpbGQgbGlicmFyaWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyIChsaWJuZXRzbm1wYWdlbnQgYmVmb3JlIGxpYm5ldHNubXBoZWxwZXJzIGJlZm9yZSBsaWJuZXRzbm1wbWlicykKCjIwMDctMDEtMDcgMTk6NDcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oOgoKICAgYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIG5ldHNubXBfcmVnaXN0ZXJfc2VydmljZV9oYW5kbGVycyAoZnJvbSBtYWdmcikKCjIwMDctMDEtMDYgMDA6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogQlVHOiAxNjI2MTUzOiBubyBoclNXUnVuIGluZm9ybWF0aW9ucyBvbiBTb2xhcmlzIHpvbmVzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEtsYXVzIE11ZWhsZmVsZAoKMjAwNy0wMS0wNiAwMDozMCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNDUwNjY5OiBQQVRDSDogMTYyNzk0OTogZnJvbSBtYXJ0aW45ODc6IGEgcGVybCBhZ2VudHggY29uc3VtZXMgbWVtb3J5CgoyMDA3LTAxLTAzIDIyOjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMDIgMjM6MzMgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE3MzogcmVtb3ZlIHN1cGVyZmx1b3VzIE5VTEwgY2hlY2sgKGFscmVhZHkgZGVyZWZlcmVuY2VkIGVhcmxpZXIgYW55d2F5KQoKMjAwNy0wMS0wMiAyMzowOCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgb25seSBsb2cgYSBtZXNzYWdlIHdoZW4gdGhlIG1pYl9pbmRleGVzIGRpcmVjdG9yeSBpcyAqcmVhbGx5KiBjcmVhdGVkCgoyMDA3LTAxLTAyIDIyOjUzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQlVHOiBDb3Zlcml0eSAjMTc4OiBuZXZlciBwYXNzIGEgTlVMTCBvaWRfYXJyX2xlbiBwb2ludGVyIHRvIF9fY29uY2F0X29pZF9zdHIgKHdoaWNoIGRlcmVmZXJlbmNlcyBpdCkKCjIwMDctMDEtMDIgMjI6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTkzOiBwcm9wZXJseSBpbml0aWFsaXplIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNlCgoyMDA3LTAxLTAyIDIwOjEzICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBiYWNrIG91dCBwcmV2aW91cyBiYWQgY2hhbmdlIHRvIGFnZW50IHJlZ2lzdHJ5CgoyMDA3LTAxLTAyIDE5OjUyICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYwMTQ1MzogZnJvbSAiUm9iZXJ0IFdpbGNveCI6IER5bmFtaWMgTWVtb3J5IGZhaWx1cmUgaGFuZGxpbmcgaW1wcm92ZW1lbnRzCgoyMDA3LTAxLTAyIDE5OjUyICB0YW5kZXJzCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwosIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2MDE0NTM6IGZyb20gIlJvYmVydCBXaWxjb3giOiBEeW5hbWljIE1lbW9yeSBmYWlsdXJlIGhhbmRsaW5nIGltcHJvdmVtZW50cwoKMjAwNy0wMS0wMiAxNzo1NiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBMRF9SVU5fUEFUSCBjb21tZW50IGZvciBweXRob24KCjIwMDctMDEtMDIgMTc6MzggIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBDSEFOR0VTOiBidWlsZDogdXBkYXRlIHRvIGF1dG9jb25mIDIuNjEKCjIwMDctMDEtMDIgMTc6MjMgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW4sIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2tmcmVlYnNkLmg6CgogICBORVdTOiBQb3J0czogUEFUQ0g6IDE2MjM4NzQ6IGZyb20gIlBldHIgU2FsaW5nZXIiOiBhZGQgR05VL2tGcmVlQlNEIHN1cHBvcnQKCjIwMDctMDEtMDIgMTc6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCB3b3JrYXJvdW5kIGZvciBBQ19GVU5DX0dFVE1OVEVOVCgpIGJ1ZyBpbiBhdXRvY29uZiAyLjYwYiBhbmQgMi42MSAoc2VlIERlYmlhbiBidWdzICM0MDMyNDMsICM0MDMwNzkpCgoyMDA3LTAxLTAyIDE2OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE1ODI5NzI6IEhhbmRsZSBAd2hpbGVAL0BlbmRAIHByb3Blcmx5LgogICBQYXRjaCBwcm92aWRlZCBieSBEb3VnbGFzIERlYW4KCjIwMDctMDEtMDIgMTY6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTYwMDE3MTogU3VwcG9ydCBsb25nZXIgY29tbXVuaXR5IHN0cmluZ3MgaW4gVkFDTSBjb25maWcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYmVydCBXaWxjb3gKCjIwMDctMDEtMDIgMTE6MjQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE1NDY4MTc6IEZpeCBzbm1wRW50ZXJwcmlzZSB2YXJiaW5kIHdoZW4gZm9yd2FyZGluZyB2MSB0cmFwcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUGFibG8gUGFzc2VyYS4KCjIwMDctMDEtMDIgMTA6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjI1MTM1OiBjb25maWd1cmUgbG9jYXRpb24gb2YgcHl0aG9uIGludGVycHJldGVyCiAgIFByb3ZpZGVkIGJ5IEFuZHJldyBMYW5nbWVhZAoKMjAwNy0wMS0wMiAxMDozNCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIE5FV1M6IGNvbmZpZ3VyZTogUEFUQ0ggMTYyNTEzNTogY29uZmlndXJlIGxvY2F0aW9uIG9mIHB5dGhvbiBpbnRlcnByZXRlcgogICBQcm92aWRlZCBieSBBbmRyZXcgTGFuZ21lYWQKCjIwMDctMDEtMDIgMTA6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjI0NDA2OiBvcHRpb24gdG8gaGFyZGNvZGUgbG9jYXRpb24gb2YgbW91bnQgdGFibGUKICAgU3VibWl0dGVkIGJ5IEpvY2hlbgoKMjAwNy0wMS0wMSAxNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjAxMTg4LCBCVUc6IDE2MDA0MzI6IEhhbmRsZSBzaWduYWxzIHByb3Blcmx5IHdoZW4gcmVzdGFydGluZyB0aGUgYWdlbnQuCiAgIEZpeCBwcm92aWRlZCBieSBMb2ljIERvbWFpZ25lLgoKMjAwNy0wMS0wMSAxNzozNSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEhhbmRsZSBub24td3JpdGFibGUgTUlCIGluZGV4ZXMgKGUuZy4gcnVuIGFzIG5vbi1wcml2aWxlZ2VkIHVzZXIpCgoyMDA3LTAxLTAxIDE2OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIRVMgMTU5MjcwNjogRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xvbmluZyB2YXJiaW5kcy4KICAgQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFN0ZXZlbiBEb3JpZ290dGkuCgoyMDA3LTAxLTAxIDE2OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU5MjcwNjogRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xvbmluZyB2YXJiaW5kcy4KICAgQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFN0ZXZlbiBEb3JpZ290dGkuCgoyMDA3LTAxLTAxIDE1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBORVdTOiBhZ2VudDogUEFUQ0ggMTU4NTE0NjogRXh0ZW5kIHJhbmdlIG9mIGF2YWlsYWJsZSBlcnJvciBjb2RlcwogICBTdWJtaXR0ZWQgYnkgQW50aG9ueSBOb3ZhdHNpcy4KCjIwMDctMDEtMDEgMTU6MjkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU0ODY3MDogRml4IHJhbmdlIGNoZWNrcyBmb3IgdW5zaWduZWQgaW50ZWdlcnMKICAgRnJvbSBLZXZpbiBIdW1waHJpZXMuIFNlZSBodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9MzgzMzgwCgoyMDA3LTAxLTAxIDE1OjE2ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmM6CgogICBNb3ZlIGdsb2JhbCAnZmFpbHVyZXMnIHZhcmlhYmxlIGNsb3NlciB0byB3aGVyZSBpdCBpcyB1c2VkLgogICBDSEFOR0VTOiBhcHBzOiBQQVRDSDogMTUyOTUyMzogQ2xvc2UgU05NUCBzZXNzaW9uIG9uIGZhaWx1cmUuCgoyMDA3LTAxLTAxIDE0OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHBvdGVudGlhbCBkb3VibGUgZGVsZXRlLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0wMSAxNDoyMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1haW50YWluIE1JQiBkaXJlY3RvcnkgaW5kZXggZmlsZXMgdW5kZXIgL3Zhci9uZXQtc25tcAogICAoaW4gbGluZSB3aXRoIEZpbGUgSGllcmFyY2h5IFN0YW5kYXJkIHNwZWNpZmljYXRpb25zKQogICBTZWUgaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM4OTQzNAogICBhbmQgZGlzY3Vzc2lvbiAiTUlCcyBpbiBuZXQtc25tcCIgb24gY29kZXJzIGxpc3QgKE9jdCAyMDA2KQoKMjAwNy0wMS0wMSAxMToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgRW5zdXJlIHN5c09SRGVzY3JpcHRpb25zIGFyZSBudWxsLXRlcm1pbmF0ZWQsIHNvIHRoZXkgY2FuIGJlCiAgIHNhZmVseSBwYXNzZWQgdG8gJ3N0cmR1cCgpJy4gIFJlcG9ydGVkIGJ5IFdvbGZnYW5nIFBlZG90LgoKMjAwNi0xMi0yOSAxNzoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgU3luY2hyb25pc2Ugd2l0aCBXaWtpIHZlcnNpb24uCgoyMDA2LTEyLTI4IDIzOjI5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MTY5MTI6IGZyb20gIk1hZ251cyBGcm9tcmVpZGUiOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcF91ZHBfdHJhbnNwb3J0CgoyMDA2LTEyLTI4IDIzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAxNjIzNDQ3OiBmcm9tICJIcnZvamUgSGFiamFuaWMiOiBoclNXUnVuIGZpeDogPGV4aXRlZD4gaW5zdGVhZCBvZiBlbmRPZlRhYmxlIGZvciB0ZXJtaW5hdGVkIHByb2Nlc3NlcwoKMjAwNi0xMi0yNyAxOToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggZXh0ZXJuYWwgcmVmZXJlbmNlIHRvIE5FVFNOTVBfS0xPT0tVUCBvbiBIUC1VWCAxMC4yMCAobWF5YmUgb3RoZXJzKQoKMjAwNi0xMi0yNiAxNjo1MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAxNjIyMDgwOiBmcm9tIEdydWVuaW5nZXIgQTogcGFzcyBXaW4zMiBoYW5kbGVzIHJlbWFpbiBvcGVuLgoKMjAwNi0xMi0xNyAxODowMSAgYWxleF9iCgogICAqIHdpbjMyLzogTWFrZWZpbGUtYXBwcy5pbiwgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgc25tcGQvTWFrZWZpbGUuaW4sIHNubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBBZGQgZ2RpMzIubGliIHRvIGZpeCBsaW5raW5nIHByb2JsZW0gd2hlbiB1c2luZyB0aGUgc3RhdGljIHZlcnNpb24gb2YgdGhlCiAgIFNTTCBsaWJyYXJpZXMuICBUaGFua3MgdG8gU2ltb24gRWR3YXJkcyBmb3IgdGhlIGZpeC4KCjIwMDYtMTItMTcgMTY6NTEgIGFsZXhfYgoKICAgKiBGQVE6CgogICBVcGRhdGUgV2luZG93cyBpbmZvIGluIHRoZSBGQVEKCjIwMDYtMTItMTIgMjM6NTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAxNTgxMjk0OiBmcm9tICJNaWNoYWVsIFRhdGFyaW5vdiI6IGhvc3QtcmVzb3VyY2VzIGltcHJvdmVtZW50cwoKMjAwNi0xMi0xMiAyMToyNyAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICByZS1hZGQgVURQX0FERFJFU1NFU19JTl9IT1NUX09SREVSCgoyMDA2LTEyLTEyIDIxOjAxICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgc3luYyB3aXRoIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCgoyMDA2LTEyLTEyIDIwOjMxICB0YW5kZXJzCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIENIQU5HRVM6IFdpbjMyOiBmaXggd2luMzIvQ29uZmlndXJlIC0td2l0aC1pcHY2CgoyMDA2LTEyLTEyIDE4OjEwICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgTkVXUzogV2luMzI6IGZpeCBBRVMgc3VwcG9ydAoKMjAwNi0xMi0xMiAwMzowMSAgYWxleF9iCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgQWRkIHZlcnNpb24gdG8gRkFRLmh0bWwuCgoyMDA2LTEyLTA5IDE3OjExICBhbGV4X2IKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG1ha2VfaW5kZXgucGwsIG1hbl9zZWN0aW9ucy50eHQKOgoKICAgLUNyZWF0ZSBodG1sIHBhZ2VzIGZvciBBTEwgbWFuIHBhZ2VzLgogICAtSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gY3JlYXRpbmcgdGhlIGluZGV4Lmh0bWwgZmlsZS4KCjIwMDYtMTItMDkgMTc6MDYgIGFsZXhfYgoKICAgKiBsb2NhbC86IGh0bWwtYWRkLWhlYWRlci1mb290ZXIucGwsIGh0bWwtdGV4dGZpbGUtZml4LnBsCjoKCiAgIEFkZCB0aWR5IGNvbW1hbmQgbGluZSBvcHRpb24gYW5kIGFkZCBtaXNzaW5nIFJFQURNRSBmaWxlcy4KCjIwMDYtMTItMDkgMDA6MTYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IE1hY09TWDogUEFUQ0g6IDE2MDA0NTM6IGZyb20gIkNocmlzIEphbGJlcnQiOiBPUyBYIGNvbXBpbGUtdGltZSBlbmRpYW4gZGV0ZXJtaW5hdGlvbgoKMjAwNi0xMi0wOCAyMjo0NyAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgc29tZSBtb3JlIHBvc3QtcmVsZWFzZSB0YXNrcwoKMjAwNi0xMi0wOCAyMjoyNiAgdGFuZGVycwoKICAgKiBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMKLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgbWFuL25ldHNubXBfZGVidWcuMwosIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMKLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMwosIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zCiwgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0KLCBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbQosIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmYsIHNlZHNjcmlwdC5pbiwKICAgICBkaXN0L01ha2VmaWxlLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUU6CgogICAtIHZlcnNpb24gdGFnICggNS41LmRldiApCgoyMDA2LTEyLTA4IDIyOjIwICB0YW5kZXJzCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBmaXggZGlzdC9NYWtlZmlsZSBtdW5naW5nCgoyMDA2LTEyLTA4IDE0OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBORVdTOiBCVUc6IDE2MTE1MjQ6IGZpeCB0Y3AgY29ubmVjdGlvbiB0YWJsZSBmZCBsZWFrCgoyMDA2LTEyLTA4IDEzOjE3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgcmV2ZXJ0IHVuaW5mb3JtZWQgdmVyc2lvbiBjaGFuZ2UKCjIwMDYtMTItMDcgMjE6NTAgIHVpZDM5MDM5CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtLCBTTk1QLnhzLAogICAgIHQvY29uZi50OgoKICAgY2xlYW4gdXAgY29tcGlsZSBhbmQgZml4IHRlc3RzCgoyMDA2LTEyLTA3IDE2OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY29tbWVudCBmaXgKCjIwMDYtMTItMDcgMTU6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9tYWNoLmMsCiAgICAgY3B1L2NwdV9tYWNoLmg6CgogICBORVdTOiBNYWNPU1g6IFBBVENIOiAxNjAwNTIyOiBmcm9tICJCaWxsIEZlbm5lciI6IENQVSBIQUwgaW1wbGVtZW50YXRpb24gZm9yIG1hY2gvZGFyd2luCgoyMDA2LTEyLTA3IDEzOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDQ1ODA6IFNOTVAoMykgbWFudWFsIHBhZ2UgY29ycmVjdGlvbnMgKHNwb3R0ZWQgYnkgdGVrLW9wcykKCjIwMDYtMTItMDYgMjA6MzAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2N1bWVudCB2YXJpb3VzIGFzcGVjdHMgb2YgcG9zdC1yZWxlYXNlIHRoaW5ncyB0byBkbwoKMjAwNi0xMi0wNiAxNTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFkZCBuZWVkZWQgaGVhZGVyCgoyMDA2LTEyLTA2IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNTU4ODIzOiBmaXggaXBBZGRyZXNzVGFibGUgbWVtb3J5IGxlYWsKCjIwMDYtMTItMDYgMTU6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jOgoKICAgTkVXUzogQlVHOiAxNTk2NjM4OiBtZW1vcnkgbGVhayBpbiBpcENpZHJSb3V0ZVRhYmxlLCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDYtMTItMDYgMTQ6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICB0d2Vhay9hZGQgZGVidWcgbXNncyBpbiBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfaWZpbmRleF9nZXQKCjIwMDYtMTItMDUgMjM6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgZml4IGRlYnVnIG1lc3NhZ2UKCjIwMDYtMTItMDUgMjM6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBCVUc6IDE2MDAwOTM6IGF1dG9jb25mIDIuNjAgYnJlYWtzIHRoZSBidWlsZAoKMjAwNi0xMi0wNCAxNzo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNoYW5nZSB0b3AgdGV4dCB0byByZW1vdmUgaGlzdG9yeSBzZWN0aW9uIHdoaWNoIHdhcyBvdXQgb2YgZGF0ZQoKMjAwNi0xMi0wMyAyMzoyMCAgYWxleF9iCgogICAqIHdpbjMyLzogZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgV29ya3NwYWNlIGNvbXBpbGUgZml4LCBidWlsZCBpbnN0cnVjdGlvbnMgdXBkYXRlLgoKMjAwNi0xMS0yNCAxNzo1MyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQgKQoKMjAwNi0xMS0yNCAxNzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA2LTExLTI0IDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzMgLT4gVjUuNAoKMjAwNi0xMS0yNCAwOTo0NCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMjQgMDk6NDMgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQgKQoKMjAwNi0xMS0yNCAwOToxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlciB0byBmaXggTVNWQyBpc3N1ZXMKCjIwMDYtMTEtMjQgMDg6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIENPRElORyBzZWN0aW9uLgogICBJJ20gc3VyZSB0aGVyZSBhcmUgbW9yZSBjaGFuZ2VzIHRoYXQgY291bGQgdXNlZnVsbHkgYmUgbWFkZSwKICAgYnV0IExpZmUncyBUb28gU2hvcnQuICAgT0ssIFdlcyAtIGl0J3MgYWxsIHlvdXJzLi4uLgoKMjAwNi0xMS0yNCAwNzozOCAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgVHdlYWsgd2ViIGxpbmtzIHNsaWdodGx5LCBhbmQgbWVudGlvbiB0aGUgV2lraS4KCjIwMDYtMTEtMjQgMDc6MDkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2MgdXBkYXRlIGJhc2VkIG9uIHBlcmwgY2hhbmdlcwoKMjAwNi0xMS0yNCAwNjoyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRHJvcCBvYnNvbGV0ZSBlbnRyaWVzLgoKMjAwNi0xMS0yNCAwNjoyMyAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA2LTExLTI0IDA2OjAyICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSByZXN0IG9mIHRoZSBBR0VOVFMgc2VjdGlvbi4KCjIwMDYtMTEtMjQgMDU6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIENvbW1pdCByZXZpc2lvbnMgdG8gdGhlIE1JQlMgYW5kIChtb3N0IG9mKSB0aGUgQUdFTlRTIHNlY3Rpb25zLgogICA0MyBwYWdlcyBkb3duLCAxOCB0byBnby4uLi4KCjIwMDYtMTEtMjQgMDU6MTMgIHRhbmRlcnMKCiAgICogRkFROgoKICAgYWRkIHNvbWUgbW9yZSB3b3JraW5nIHBsYXRmb3JtczsgcGVybCAtPiBQZXJsCgoyMDA2LTExLTI0IDAzOjIxICBkdHMxMgoKICAgKiBGQVE6CgogICBSZXZpc2lvbiBvZiB0aGUgZmlyc3QgdGhyZWUgc2VjdGlvbnMgKEdFTkVSQUwsIEFQUExJQ0FUSU9OUywgUEVSTCkuCiAgIFByb2JhYmx5IHJhY2luZyBhIGxvc2luZyBiYXR0bGUgYWdhaW5zdCBwYWNrYWdpbmcgdGhlIHVwY29taW5nIHJlbGVhc2UhCgoyMDA2LTExLTIzIDE5OjMwICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlcyBhbmQgY2xlYW51cCBmb3IgNS40CgoyMDA2LTExLTIzIDE3OjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDEyNjE6IGZyb20gIlN0ZXBoZW4gSi4gRnJpZWRsIjogdXBkYXRlIFJFQURNRS5zbXV4CgoyMDA2LTExLTIzIDE2OjM4ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IG1pc2M6IFJQTSBzcGVjIGZpbGUgZml4ZXMgZm9yIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDYtMTEtMjMgMDE6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUmVtb3ZlIGlycmVsZXZhbnQgY29tbWVudHMgKGxlZnQgb3ZlciBmcm9tIHRoZSBkZXZlbG9wbWVudCBwaGFzZSkuCgoyMDA2LTExLTIyIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgdXNlIC0td2l0aG91dCBmb3IgcGVybCBub3cgaWYgb2ZmCgoyMDA2LTExLTIyIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZmluYWwgdmVyaXNvbiBjaGFuZ2UKCjIwMDYtMTEtMjIgMTU6MjUgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgcmV2ZXJ0IHRvIGNvcnJlY3QgdmVyc2lvbgoKMjAwNi0xMS0yMiAxNToyMyAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHJlbW92ZSBiYWQgcGF0Y2ggcmVmZXJlbmNlCiAgIC0gZW5hYmxlIFBlcmwgYnkgZGVmYXVsdCwgYnV0IGFsbG93IGZvciAtLXdpdGhvdXQgcGVybF9tb2R1bGVzfGVtYmVkZGVkX3BlcmwKICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IGZvciBsb2NhbCBkZWZpbmVzCgoyMDA2LTExLTIyIDA4OjQ5ICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBDbGFyaWZpY2F0aW9uIG9mIHRoZSBiZWhhdmlvdXIgb2Ygb2JqZWN0cyBpbiB0aGUgbWVtb3J5ICYgc3lzdGVtU3RhdHMgZ3JvdXBzLAogICBhbmQgb2JqZWN0cyB1c2VkIGZvciByZXBvcnRpbmcvZml4aW5nIGVycm9ycy4KCjIwMDYtMTEtMjIgMDc6MDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluOgoKICAgbWFuYWxpYXMgYWx3YXlzLW1hZGUgZml4OyBub3cgdG91Y2hlcyBhIHRlbXAgZmlsZSAoYW5kIGNsZWFucyBsYXRlcikKCjIwMDYtMTEtMjIgMDU6MjUgIHRhbmRlcnMKCiAgICogLmN2c2lnbm9yZToKCiAgIGFkZCBuZXcgJ21rJyBzdWJkaXIKCjIwMDYtMTEtMjIgMDU6MjQgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgbmV3IG1hbnVhbCBwYWdlcwoKMjAwNi0xMS0yMiAwNTowMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTk4OTY2OiBmcm9tICJQZXRlciBFY2tlbCI6IEZpeCBidWcgIzE1OTg5Mjc6ICNlbGlmIGJ1aWxkIGZpeAoKMjAwNi0xMS0yMiAwNDo1OCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTU5ODk2ODogZnJvbSAiUGV0ZXIgRWNrZWwiOiBGaXggYnVnICMxNTg3NzU5OiBzbm1wdHJhcGQgZG9lc24ndCByZWNvZ25pemUgLUEgb3B0aW9uCgoyMDA2LTExLTE4IDA5OjU2ICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXhlcyBmb3IgTm9uZSByZXR1cm4gdHB5ZSBhbmQgb2N0ZXQgdmFsIGhhbmRsaW5nCgoyMDA2LTExLTE4IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzMgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzIgLT4gVjUuNC5yYzMKCjIwMDYtMTEtMTggMDc6MTQgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTE4IDA3OjEzICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMyApCgoyMDA2LTExLTE4IDA2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIGZpeCBtaXNzaW5nIG1lbUNhY2hlZC4wIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycwoKMjAwNi0xMS0xNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCBwZXJsIENDIGV4dHJhY3Rpb24gdG8gYWxsb3cgZm9yIHBhdGhzCgoyMDA2LTExLTE2IDIwOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gZml4IHBlcmwgQ0MgZXh0cmFjdGlvbiB0byBhbGxvdyBmb3IgcGF0aHMKCjIwMDYtMTEtMTYgMTM6MzggIHRhbmRlcnMKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBtYW51YWwgcGFnZXMgdG8gdGhlIGJ1aWxkIHByb2Nlc3MKCjIwMDYtMTEtMTYgMDE6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHByb3Blcmx5IHByb3RlY3Qgbmxpc3QgY29kZSB0byBmaXggYnVpbGQgaXNzdWVzIHcvIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTE1IDE2OjIyICB0YW5kZXJzCgogICAqIG1hbi86IGVuY29kZV9rZXljaGFuZ2UuMS5kZWYsIGZpeHByb2MuMS5kZWYsCiAgICAgbWliMmMtdXBkYXRlLjEuZGVmLCBuZXQtc25tcC1jb25maWcuMS5kZWYsCiAgICAgdGttaWIuMS5kZWYsIHRyYXB0b2VtYWlsLjEuZGVmOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxNTc3OTEzOiBhZGQgbWlzc2luZyBtYW51YWwgcGFnZXMgZm9yIGV4ZWN1dGFibGVzLCBzdXBwbGllZCBieSBEZWJpYW4KCjIwMDYtMTEtMTUgMTU6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgVXBkYXRlIHRvIHRoZSBuZXcgc3ludGF4IG9mIHRoZSBzbm1wbmV0c3RhdCByZXdyaXRlLiBJbnNwaXJlZCBieSBEZWJpYW4uCgoyMDA2LTExLTE1IDE0OjQ1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wc2V0LjEuZGVmOgoKICAgZm9ybWF0IGZpeCAoZnJvbSBEZWJpYW4gcGF0Y2ggMDdfZG9jZmlsZXMucGF0Y2gpCgoyMDA2LTExLTE1IDExOjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgUHV0IGRlc2NyaXB0aW9uIG9uIGEgc2luZ2xlIGxpbmUuIFRha2VuIGZyb20gRGViaWFuIHBhdGNoIDA3X2RvY2ZpbGVzLnBhdGNoCgoyMDA2LTExLTE0IDE2OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBGaXggaW5pdGlhbGlzYXRpb24gcHJvYmxlbSAod2hpY2ggcmVzdWx0cyBpbiB0aGUgYWdlbnQgZmFpbGluZwogICB0byBzdGFydCBvbiBGcmVlQlNEIHN5c3RlbXMsIHdoZW4gcnVuIGFzIGFuIHVucHJpdmlsZWdlZCB1c2VyKS4KCjIwMDYtMTEtMTQgMTU6NDQgIHRhbmRlcnMKCiAgICogZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YX46CgogICBkbyB3ZSBhZ3JlZSB0byBub3Qgc2hpcCBlZGl0b3IgYmFja3VwIGNvcGllcz8KCjIwMDYtMTEtMTQgMDM6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICB1ZHBUYWJsZSByZXF1aXJlcyAvZGV2L2ttZW0gYWNjZXNzIG9uIElSSVggYW5kIFRydTY0IFVuaXgKCjIwMDYtMTEtMTQgMDE6NTYgIHRhbmRlcnMKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDSEFOR0VTOiBQQVRDSDogMTU5NjAyODogZnJvbSAiU3RlcGhlbiBKLiBGcmllZGwiOiBjb25zdCBmaXhlcyBmb3IgdGhlIG1pYl9hcGkoMykgbWFudWFsIHBhZ2UKCjIwMDYtMTEtMTMgMTY6MTcgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgU29sYXJpcyAyLjYgYW5kIGVhcmxpZXIKCjIwMDYtMTEtMTMgMTU6NTQgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBTTk1QLnBtIGZpeGVzIGZvciA2NC1iaXQgcGxhdGZvcm1zCgoyMDA2LTExLTEzIDE1OjQ5ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBIUC1VWAoKMjAwNi0xMS0xMyAxNToyNiAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBEcm9wIERhdGE6OkR1bXBlciBzaW5jZSBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoIElSSVggNi41IGRvZXNuJ3QgaW5jbHVkZSBpdC4KCjIwMDYtMTEtMTMgMTQ6NTEgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERyb3AgdW5uZWVkZWQgZGVwZW5kZW5jeSBvbiBEYXRhOjpEdW1wZXIuCgoyMDA2LTExLTEzIDE0OjQ2ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBJUklYCgoyMDA2LTExLTEyIDE3OjUzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLAogICAgIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgd2FybmluZ3MgYWJvdXQgY29tcGlsaW5nIHdpdGggdGhlIFNOTVAgbGlicmFyeSBETEwuCgoyMDA2LTExLTEwIDAzOjI0ICB0YW5kZXJzCgogICAqIFJFQURNRS5vc1g6CgogICByZW1vdmUgLS1lbmFibGUtbWluaS1hZ2VudCByZWNvbW1lbmRhdGlvbiBiZWNhdXNlIC0td2l0aG91dC1rbWVtLXVzYWdlIG5vIGxvbmdlciByZXF1aXJlcyBpdAoKMjAwNi0xMS0xMCAwMToyMSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgUmVmZXJlbmNlIHRoZSBjb3JyZWN0IG1hbiBwYWdlIGZvciBzbm1wX3RyYXBfYXBpIGFsaWFzZXMuCiAgIFJlcG9ydGVkIGFuZCBmaXhlZCBieSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMS0wOCAwODoyNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnJjMSAtPiBWNS40LnJjMgoKMjAwNi0xMS0wOCAwNzo1NiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMDggMDc6NTUgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMyICkKCjIwMDYtMTEtMDggMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBQYXRjaCBmcm9tIFJvYmVydCB0byBjaGVjayBwcm9jZXNzZWQgZmxhZyBiZWZvcmUgcHJvY2VlZGluZwoKMjAwNi0xMS0wNyAxNTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBGaXggZHVwbGljYXRlIGNhc2Ugc3RhdGVtZW50cyAoYW5kIGluZGljYXRlIHdoaWNoIGFyZSB0aGUgZGVwcmVjYXRlZCBvYmplY3RzKQoKMjAwNi0xMS0wNyAxNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICBDbGFyaWZ5IG1lYW5pbmcgb2YgbWVtKlRleHQgb2JqZWN0cyAoYW5kIGRlZmluZSBuZXcgY29uc2lzdGVudCB2ZXJzaW9ucykuCgoyMDA2LTExLTA3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZCBhIG1pc3NpbmcgcGFyZW4gdG8gYSBkZXNjcmlwdGlvbiBmaWVsZAoKMjAwNi0xMS0wNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIE1ha2VmaWxlLmluLAogICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBwYXRjaCB0byBmaXggc2VkIHVzYWdlIG9uIHN5c3RlbXMgd2l0aCBhIHZlcnkgb2xkIHNlZAoKMjAwNi0xMS0wNiAxNTo1MCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIG1lbnRpb24gLS13aXRob3V0LWttZW0tdXNhZ2UKCjIwMDYtMTEtMDYgMTU6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwQWRkci5jCiwgaXB2Ni5jLCB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jLAogICAgIHZhcl9yb3V0ZS5jOgoKICAgaW1wcm92ZWQga2xvb2t1cCBlcnJvciBoYW5kbGluZwoKMjAwNi0xMS0wNiAxNTo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIFJFQURNRS5haXgsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9rZXJuZWwuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBidWlsZCBmaXggZm9yIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTA2IDA3OjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgc2ggZG9lc24ndCBsaWtlICI9PSIsIG9mIGNvdXJzZS4KCjIwMDYtMTEtMDYgMDM6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBza2lwIHByb3h5IHRlc3RzIGZvciBUQ1AgYmVjYXVzZSB0aGUgcHJveHkgY29kZSBkb2Vzbid0IHN1cHBvcnQgVENQIHlldAoKMjAwNi0xMS0wMyAxNzozOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1OGFnZW50YXV0aHRyYXAsIFQwNjVhZ2VudGV4dGVuZCwKICAgICBUMjAwc25tcHYyY3dhbGthbGw6CgogICBDSEFOR0VTOiBtaXNjOiAibWFrZSB0ZXN0IiBmaXhlcyBmb3Igbm9uLVVEUCB0cmFuc3BvcnRzCgoyMDA2LTExLTAzIDA4OjQwICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCBjbGllbnRfaW50Zi5jOgoKICAgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIHB5dGhvbiBpbnRlcmZhY2UKCjIwMDYtMTEtMDIgMTU6MzAgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgbmV3IG1hbiBwYWdlIGFsaWFzZXMKCjIwMDYtMTEtMDEgMTU6NTMgIHRhbmRlcnMKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nIHNoYWxsIG9ubHkgZG9jdW1lbnQgY2hhbmdlcyBvZiB0aGUgYnJhbmNoIGl0J3MgY29udGFpbmVkIGluCgoyMDA2LTExLTAxIDA4OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgQ0hBTkdFUzogQlVHOiAxNTg1ODE1OiBmaXggbWZkIGJpdHMgbGVuZ3RoIGNhbGN1bGF0aW9uCgoyMDA2LTEwLTMxIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzEgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmU0IC0+IFY1LjQucmMxCgoyMDA2LTEwLTMxIDEyOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMC0zMSAxMjo1MSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzEgKQoKMjAwNi0xMC0zMSAxMjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICByZW1vdmUgdGhlIGtsb29rdXAgZGVmaW5lIGFzICgwKSBzaW5jZSBEYXZlIGZvdW5kIGRlZmluaXRlIHNwb3RzIHdoZXJlIHRoaXMgd2FzIHVuc2FmZQoKMjAwNi0xMC0zMSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBQYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gYXR0ZW1wdCB0byBmaXggbGFjayBvZiBrbWVtIHN1cHBvcnQgZm9yIHZhcmlvdXMgcGxhdGZvcm1zIHdoZW4ga21lbSBpc24ndCBhdmFpbGFibGUKCjIwMDYtMTAtMzEgMDc6MjcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBhIHByb2JsZW0gd2l0aCB0aGUgbWFuIGdlbmVyYXRpb24gcGF0Y2ggYXMgcG9pbnRlZCBvdXQgYnkgQ2hyaXMgSmFsYmVydAoKMjAwNi0xMC0zMSAwNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBtaW5vciBwYXRjaCBmcm9tIEJydWNlIFNoYXcgdG8gZml4IGxtc2Vuc29ycyAyNDAgY2xhc3MgbWFjaGluZXMKCjIwMDYtMTAtMzAgMTM6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWVtVG90YWxGcmVlIHNob3VsZCByZXBvcnQgdG90YWwgdmlydHVhbCBpbnN0ZWFkIG9mIHBoeXNpY2FsIG1lbW9yeQoKMjAwNi0xMC0zMCAwOTo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIG1lbSBIQUwgZml4ZXMgZm9yIElSSVgKCjIwMDYtMTAtMzAgMDc6NDAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBnZW5lcmF0ZWQgYWxpYXMgbWFuIHBhZ2VzCgoyMDA2LTEwLTI4IDE4OjIzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgLS1kaXNhYmxlLWVtYmVkZGVkLXBlcmwgLS13aXRob3V0LXBlcmwtbW9kdWxlcyBmb3IgTWluR1cgLyBDeWd3aW4uCgoyMDA2LTEwLTI3IDEzOjE5ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2J1aWxkLnBsLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbgosIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4KOgoKICAgLUFsbG93IGJ1aWxkaW5nIG9mIGFwcGxpY2F0aW9ucyB3aXRoIGxpYnJhcnkgRExMIGluIGJ1aWxkLmJhdCBidWlsZCBzeXN0ZW0uCiAgIC1GaXggRExMIGV4cG9ydC9pbXBvcnQgdmFyaWFibGVzIGZvciBsaWJyYXJ5IERMTAoKMjAwNi0xMC0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxraW5nIG9mZiBvZiBhIGNsaWZmCgoyMDA2LTEwLTI3IDA3OjMyICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGNsaWVudC5weQoKMjAwNi0xMC0yNyAwMjowNCAgdGFuZGVycwoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIENIQU5HRVM6IG1pc2M6IEJVR1M6IDE1ODUyNTA6IGRvbid0IHVzZSBkZXByZWNhdGVkIG9wdGlvbnMgaW4gc3RhcnQgc2NyaXB0CgoyMDA2LTEwLTI2IDE3OjUwICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogIEFkZCBhIGNvdXBsZSBERUJVRyBsaW5lcy4KCjIwMDYtMTAtMjYgMTc6MTUgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFdpbjMyOiBSRUFETUUgdXBkYXRlLCBidWlsZCBzdGVwcyB1cGRhdGUuCgoyMDA2LTEwLTI2IDA5OjIxICB0YW5kZXJzCgogICAqIENvZGluZ1N0eWxlOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0xMC0yNiAwNDoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIGZpeGVzIGZvciAiY29uZmlndXJlIC0taGVscCIgb3V0cHV0LCBlc3BlY2lhbGx5IGZvciBNSUIgbW9kdWxlcwoKMjAwNi0xMC0yNiAwMzoyNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBidWlsZCBmaXggZm9yIG1pYklJL3VkcFRhYmxlCgoyMDA2LTEwLTI1IDExOjUxICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgTkVUU05NUF8gcHJlZml4IG1pc3NpbmcgZm9yIE9QRU5TU0wuCgoyMDA2LTEwLTI1IDA5OjE2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgcGVybC9PSUQvT0lELnhzLAogICAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiByZW5hbWUgaW5pdF9taWIgdG8gbmV0c25tcF9pbml0X21pYiB0byBhdm9pZCBzeW1ib2wgY2xhc2ggd2l0aCBIUC1VWCdzIGxpYm5tCgoyMDA2LTEwLTIzIDE0OjAwICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBBSVggc2hpcHMgaG9zdCBieSBkZWZhdWx0CgoyMDA2LTEwLTIyIDE4OjAxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvRGV2ZWxvcGVyX0ZBUS5odG1sLCBodG1saGVscC9GQVEuaHRtbCwKICAgICBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wZC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICBVcGRhdGUgV2luZG93cyBiaW5hcnkgYnVpbGQgZmlsZXMuCgoyMDA2LTEwLTIxIDA5OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgd2luRXh0RExMIHVwZGF0ZS4KCjIwMDYtMTAtMjEgMDk6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlYWRtZSB1cGRhdGUgZm9yIHdpbkV4dERMTCwgY2hhbmdlIGNvbW1hbmQgbGluZSBmb3Igd2luRXh0RExMLgoKMjAwNi0xMC0yMSAwNzowNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ29kZSBjbGVhbnVwLiAgQWRkIHN1cHBvcnQgZm9yIHhTbm1wRXh0ZW5zaW9uUXVlcnlFeCBmb3IgU0VUL0dFVE5FWFQuCgoyMDA2LTEwLTIxIDA1OjQ1ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiBzbm1wc2V0IHN0cmluZywgRExMIGxvYWRpbmcgYW5kIHNubXB3YWxrIGZpeGVzLgoKMjAwNi0xMC0yMSAwNTowOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICByZW1vdmUgbm90LWV4aXN0ZW50IFNCU00gZGVmaW5pdGlvbiBmcm9tIHRlc3QgY2FzZXMKCjIwMDYtMTAtMjAgMTc6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlNCApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTMgLT4gVjUuNC5wcmU0CgoyMDA2LTEwLTIwIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCBmcm9tIEFuZGVycyBQZXJzc29uIHRvIGNoYW5nZSB0X3VzY2FsYXJfdCB0byBzb21ldGhpbmcgbW9yZSBwb3J0YWJsZSAodWludDMyX3QpCgoyMDA2LTEwLTIwIDEzOjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvZHNfYWdlbnQuaCwKICAgICBsaWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIERvY3VtZW50IHRoZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29ycmVzcG9uZGluZyBwZXJsIGludGVyZmFjZXMKICAgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlLgoKMjAwNi0xMC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgdXNlIGNwdV9udWxsIGZvciBhbGwgZGFyd2luLCB1bnRpbCBjb2RlIHdvcmtzCgoyMDA2LTEwLTIwIDA4OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbmxpc3QuYywgY3B1X3N5c2N0bC5jCjoKCiAgIENsYXJpZnkgY29tbWVudHMgdG8gcmVmbGVjdCByZWFsaXR5LgoKMjAwNi0xMC0yMCAwODoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIGZpeCBzeW50YXggZXJyb3I7IG1ha2Ugc3VyZSB3ZSBnZXQgY3B1X251bGwgZm9yIGRhcndpbjYvNywgY3B1X3N5c2N0bCBmb3IgZGFyd2luOCsKCjIwMDYtMTAtMjAgMDc6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIHVzZSBjcHVfbnVsbCBmb3IgZGFyd2luNyBhbmQgZGFyd2luNgoKMjAwNi0xMC0yMCAwMTo0NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIG9wZW5ic2Q0IGFuZCBkYXJ3aW4gc2hvdWxkIHVzZSBjcHVfc3lzY3RsCgoyMDA2LTEwLTE5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmU0ICkKCjIwMDYtMTAtMTkgMTY6NDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgZml4IHVwIGhlYWRlciBpbmNsdXNpb24gYSBiaXQKCjIwMDYtMTAtMTkgMTU6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIHRlc3QgZm9yIGRhcndpbmcgYmVmb3JlIGZyZWVic2QsIHNpbmNlIGRhcndpbiBkZWZpbmVzIGZyZWVic2QKCjIwMDYtMTAtMTkgMTQ6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBmaXggYnJva2VuIGJhZCBldmlsIGlmVGFibGUuaCB1c2FnZQoKMjAwNi0xMC0xOSAxMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9kZWZzLmgsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvbid0IGxldCBpZlRhYmxlLmggcmVkZWZpbmUgcmFuZG9tIHN5bWJvbHMgYWZmZWN0aW5nIG90aGVyIGNvZGUKCjIwMDYtMTAtMTkgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGxpYmhlbHBlcnMgZnJvbSB0aGUgbGluayBsaW5lIG9mIGxpYmFnZW50cwoKMjAwNi0xMC0xOSAwODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IHRyYW5zcG9ydCBzb2NrIHBhdGNoCgoyMDA2LTEwLTE5IDA3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTc5MzY0OiBmcm9tIGphbGJlcnQ6IFVwZGF0ZWQgZGFyd2luIHBhdGNoIHRvIGZpeCBjb21waWxhdGlvbiBvbiBUaWdlciBhbmQgTGVhcG9yZAoKMjAwNi0xMC0xOCAxNjo1MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEZpbmlzaCBhZGRpbmcgc3VwcG9ydCBmb3IgRExMcyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUKICAgcmFuZ2VzLgoKMjAwNi0xMC0xOCAxNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmMsCiAgICAgbXRlRXZlbnRDb25mLmgsIG10ZU9iamVjdHNDb25mLmMsIG10ZU9iamVjdHNDb25mLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgQ2xlYW5seSBoYW5kbGUgcmUtbG9hZGluZyAibW9uaXRvciIgKGFuZCByZWxhdGVkKSBkaXJlY3RpdmVzLgoKMjAwNi0xMC0xOCAxNDowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBIYW5kbGUgaW52YWxpZCBwYXlsb2FkIG9iamVjdCBPSURzLgoKMjAwNi0xMC0xOCAxMjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDbGVhbmx5IGhhbmRsZSByZS1sb2FkaW5nICJleHRlbmQiIGRpcmVjdGl2ZXMuCgoyMDA2LTEwLTE4IDA3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIC0gdXNlciAvdXNyL2Jpbi9lbnYgZm9yIHBvcnRhYmlsaXR5CiAgIC0gb25seSB0ZXN0IGZvciB0YXIgaWYgd2UncmUgZ29pbmcgdG8gdXNlIGl0CgoyMDA2LTEwLTE4IDAzOjI5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbmV3IHBhc3NfcGVyc2lzdCBlcnJvciBtZXNzYWdlcyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE1NjgxNTAKCjIwMDYtMTAtMTcgMjE6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRS5vc1g6CgogICB1cGRhdGUgZnJvbSBDaHJpcyBKYWxiZXJ0CgoyMDA2LTEwLTE3IDIwOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAxNTY1NzAzOiBwYXRjaCB0byBmaXggcmFwaWQgcmVnaXN0cmF0aW9ucy9kZXJlZ2lzdHJhdGlvbiBpc3N1ZXMKCjIwMDYtMTAtMTcgMjA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIIDE1NjI2ODg6IGZpeCBwaW5nL3JlYXR0YWNoIGFnZW50eCBjb2RlCgoyMDA2LTEwLTE3IDIwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAxNTYyMTY4OiBjaGVjayBmb3IgYSBzb2NrIGZkIGxlc3MgdGhhbiAwLgoKMjAwNi0xMC0xNyAxOTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCjoKCiAgIHVzaW5nIHZmb3JrIGFuZCBuYW1lZCBwaXBlczogTkVXUzogc25tcGQ6IFBBVENIOiAxNTUxOTQ4OiBmcm9tIGFwcm9lbWVsOiBNYWtlIHBhc3NfcGVyc2lzdCB1c2FibGUgb24gdUNsaW51eAoKMjAwNi0xMC0xNyAxOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NjgxNTA6IGZyb20gZ2F2aW5faGFuOiBFeHRlbmQgcGFzc19wZXJzaXN0IGVycm9yIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHBhc3NlZCBiYWNrIGZyb20gdGhlIHNjcmlwdAoKMjAwNi0xMC0xNyAxOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTcwNjUwOiBmcm9tICJCZW5vaXQgQW1pYXV4IjogY3JlYXRlIGEgbG9nZ2luZyBzaHV0ZG93biBmdW5jdGlvbiB0byBwcm9wZXJseSBjbGVhbiB1cCBsb2cgcmVnaXN0cmF0aW9ucyBpZiBuZWVkZWQuCgoyMDA2LTEwLTE3IDE5OjA1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NzA2NTA6IGZyb20gIkJlbm9pdCBBbWlhdXgiOiBtYWtlIGRlbGV0ZSB0YWJsZSBmdW5jdGlvbiBwdWJsaWMKCjIwMDYtMTAtMTcgMTg6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE1NzU5Mzc6IGZyb20gbWFydGluOTg3OiBmaXggdXNlbnVtZXJpYyBvdXRwdXQgaW4gYXN5bmMgdmFyYmluZHMgc28gdGhleSByZXR1cm4gT0lEcyBpbnN0ZWFkIG9mIGVtcHR5IHN0cmluZ3MuCgoyMDA2LTEwLTE3IDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTc1OTg0OiBmcm9tIHJ0eWxlOiBibG9jayBTSUdIVVAgZHVyaW5nIHJlY29uZmlnCgoyMDA2LTEwLTE3IDE4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgcmVtb3ZlIGNvcnJlY3Qgc3ViIGRpcmVjdG9yeQoKMjAwNi0xMC0xNyAxODozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlLnhzLCBnZW4sIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRzX2FnZW50LmggZGVmaW5lcwoKMjAwNi0xMC0xNyAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIGdlbiwgdGVzdC5wbDoKCiAgIHN1cHBvcnQgbGF0ZXN0IGgyeHM7IE5FV1M6IHBlcmw6IHVwZGF0ZSBkZWZhdWx0X3N0b3JlIG1vZHVsZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBjLWJpbmRpbmcgdG9rZW5zCgoyMDA2LTEwLTE3IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBjb25maWcgZ2VuZXJhdGVkIGZpbGVzIG9uIGEgbWFrZSBkaXN0Y2xlYW4KCjIwMDYtMTAtMTcgMTU6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBwcm9wZXJseSBmaXggdGhlIHNlZCBpc3N1ZXMgd2l0aG91dCByZW1vdmluZyBmdW5jdGlvbmFsaXR5IGJ5IHVzaW5nIGZpbGVzIGluc3RlYWQgb2Ygc2VkIGV4cHJlc3Npb25zCgoyMDA2LTEwLTE3IDE0OjA4ICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgbWFrZSBrbG9va3VwIGRlYnVnZ2luZyBsZXNzIHZlcmJvc2UKCjIwMDYtMTAtMTcgMTM6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBhZGQga2xvb2t1cCBkZWJ1Z2dpbmcKCjIwMDYtMTAtMTcgMTA6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgc3RpbGwgYnVpbGQgaWYga2VybmVsIHN5bWJvbHMgdW5kZWZpbmVkCgoyMDA2LTEwLTE3IDA5OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIEFzc29jaWF0ZSBlcnJvcnMgZnJvbSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2l0aCB0aGUgY29ycmVjdCB2YXJiaW5kLAogICBhbmQgZml4IHByb2JsZW1zIHdpdGggZmFpbGVkIHByb3hpZWQgcmVxdWVzdHMgdGltaW5nIG91dC4KICAgUmVwb3J0ZWQgYnkgUGFibG8gUGFzc2VyYSAgKFNlZSBjb2RlcnMgbGlzdCAtIDV0aCBPY3QgZmYpCgoyMDA2LTEwLTE3IDA5OjEwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiAtLWVuYWJsZS1hcy1uZWVkZWQgd2lsbCB0cnkgdG8gbGluayBidWlsdCBsaWJyYXJpZXMgYWdhaW5zdCBuZWVkZWQgbGlicmFyaWVzIGF0IGxpYnJhcnkgbGluayB0aW1lLCByYXRoZXIgdGhhbiBhcHBsaWNhdGlvbiBsaW5rIHRpbWUuCgoyMDA2LTEwLTE3IDA3OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgZHVwbGljYXRlICdjb21waWxlciBvcHRpb25zJyBoZWFkZXIgaW4gaGVscCBvdXRwdXQKCjIwMDYtMTAtMTcgMDc6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgYmFjayBvdXQgaG9zdC9ocl9zd3J1biBwYXJ0IG9mIHRoZSBBSVgganVtYm8gcGF0Y2ggc2luY2UgaXQgb3Zlcndyb3RlIGEgbW9yZSBjb21wbGV0ZSwgd29ya2luZyBpbXBsZW1lbnRhdGlvbiB3aXRoIGEgc2VnZmF1bHRpbmcgb25lCgoyMDA2LTEwLTE2IDE2OjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIENIQU5HRVM6IElSSVg6IHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgVUNELVNOTVAtTUlCOjpsYVRhYmxlIChhdm9pZGluZyBubGlzdCkKCjIwMDYtMTAtMTYgMTE6NDMgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnQucHksIHRlc3RzL3Rlc3QucHk6CgogICBudW1lcmljIGFuZCBPSUQgc2V0cyB3aXRoIHRlc3RpbmcKCjIwMDYtMTAtMTYgMDg6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgZGlzYWJsaW5nIG5saXN0IHNob3VsZG4ndCBkaXNhYmxlIHBlcmZzdGF0CgoyMDA2LTEwLTE2IDA4OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBkZWFsIHdpdGggbWlzc2luZyBBUlBUQUJfU0laRV9TWU1CT0wKCjIwMDYtMTAtMTYgMDc6NTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgQ0hBTkdFUzogVHJ1NjQ6IC0gZml4ICJhdXRvX25saXN0IGZhaWxlZCBvbiBhcnB0YWJfc2l6ZSBhdCBsb2NhdGlvbiAwIiBlcnJvcnMKCjIwMDYtMTAtMTUgMTc6MjMgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEwgZml4ZXMgZm9yIHNubXB3YWxrIC8gc25tcGdldG5leHQuCgoyMDA2LTEwLTE1IDE0OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRG9uJ3QgbW9hbiBhYm91dCBub3JtYWwgY29ubmVjdGlvbi1iYXNlZCB0cmFuc3BvcnQgYWN0aXZpdHkKICAgKGFuZCAqZG8qIG1vYW4gc2Vuc2libHkgYWJvdXQgZmFpbGVkIHNlbmRzKS4KCjIwMDYtMTAtMTUgMTQ6NDMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU3RvcmUgVENQL0lQdjQgYWRkcmVzcyBpbmZvcm1hdGlvbiBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgVURQL0lQdjQuCiAgIFRoaXMgYWxsb3dzIHRoZSBjb21tdW5pdHkgLT4gc2VjdXJpdHkgbmFtZSBtYXBwaW5nIHRvIHdvcmsgY29ycmVjdGx5LgogICBGaXhlcyBCdWcgIzE1NzE5NDUuCiAgICAgIEEgYmV0dGVyIChtb3JlIG1vZHVsYXIpIHNvbHV0aW9uIHdvdWxkIGJlIHByZWZlcmFibGUgKHNlZSBkaXNjdXNzaW9ucwogICBvbiB0aGUgbWFpbGluZyBsaXN0cyksIGJ1dCB0aGlzIHNob3VsZCBhdCBsZWFzdCBhbGxvdyA1LjQgdG8gcHJvY2VlZC4KCjIwMDYtMTAtMTUgMTA6MDMgIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBrbG9va3VwIHRha2VzIHRocmVlIGFyZ3VtZW50cywgbm90IG9uZQoKMjAwNi0xMC0xNCAxNDoyOCAgdGFuZGVycwoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywga2VybmVsLmgsCiAgICAgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBtaWJncm91cC9taWJJSS9pcHY2LmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgcHJlcGFyZSBmb3IgNjQtYml0IG5saXN0IGNoYW5nZXMKCjIwMDYtMTAtMTQgMTA6MzcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBGaXggT0lEIHNldHMsIG1lbW9yeSBsZWFrcy4KCjIwMDYtMTAtMTQgMDY6NDkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6IFVzZSBhbGFybSBpbnN0ZWFkIG9mIHRocmVhZCBmb3IgdHJhcHMuICBWYXJpb3VzIHRyYXAKICAgZml4ZXMuCgoyMDA2LTEwLTEzIDE2OjEzICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgQWRkIHRyYXAgc3VwcG9ydCBmb3IgcmVtYWluaW5nIHR5cGVzLCBmaXgKICAgQVNOX0lQQUREUkVTUyBHRVQgc3VwcG9ydC4KCjIwMDYtMTAtMTMgMTU6MTYgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBzbXV4c29ja2V0IG5lZWRzIHRvIGJlIGFuIElQdjQgYWRkcmVzcwoKMjAwNi0xMC0xMyAxNDo0OSAgZHRzMTIKCiAgICogUkVBRE1FLm9zWDoKCiAgIFVwZGF0ZSB3aXRoIHJlY2VudCBidWlsZCByZXBvcnRzIGZyb20gQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTAtMTMgMTQ6NDUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgU3YzdXNtY29uZmlnYWdlbnQsCiAgICAgU3Zhbnljb25maWc6CgogICBzbXV4c29ja2V0IG5lZWRzIHRvIGJlIGFuIElQdjQgYWRkcmVzcwoKMjAwNi0xMC0xMyAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBIYW5kbGUgZXJyb3JzIGZyb20gcmVjdigpIC0gc2VlIEJ1ZyAjMTUyNzkzMAoKMjAwNi0xMC0xMyAxNDoyNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBFeHBsaWNpdGx5IHJlZmVyZW5jZWQgVk5BTUUgdG9rZW4gd2hlbiBkZXNjcmliaW5nICJ2aWV3IiB0b2tlbiB1c2FnZS4KICAgKFN1Z2dlc3RlZCBieSBKb2huIFJvdWlsbGFyZCkKCjIwMDYtMTAtMTMgMTM6NTAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgcmVtb3ZlIE5FVFNOTVBfRFNfQUdFTlRfSCB3aGljaCBpc24ndCBhIGRlZmF1bHQgc3RvcmUgdmFyaWFibGUKCjIwMDYtMTAtMTMgMDc6MTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZml4IHN5bnRheCB0eXBvCgoyMDA2LTEwLTEzIDAyOjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZG9uJ3QgY29tbWl0IGJvb2xlYW4gbG9naWMgbGF0ZSBhdCBuaWdodAoKMjAwNi0xMC0xMyAwMToyOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDbGFyaWZ5IHRoZSBwYXJzaW5nIG9mIGJvb2xlYW4gIm1vbml0b3IiIGV4cHJlc3Npb25zLgoKMjAwNi0xMC0xMiAxNTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgdXNlIG1lbW9yeV9kYXJ3aW4gZm9yIGRhcndpbjcKCjIwMDYtMTAtMTIgMTU6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEVuc3VyZSBpbnRlcm5hbCBxdWVyeSBjb25maWd1cmF0aW9uIGlzIGF2YWlsYWJsZSAoYW5kIGFjdGl2ZSkKICAgKmJlZm9yZSogbW9uaXRvciBkaXJlY3RpdmVzIGF0dGVtcHQgdG8gdXNlIGl0LgoKMjAwNi0xMC0xMiAxNToxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyB3aXRoIG5vIFJUSE9TVF9TWU1CT0wgb3Igbm8gUlRORVRfU1lNQk9MIChsaWtlIEFJWCkKCjIwMDYtMTAtMTIgMDk6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZml4IHR5cG8KCjIwMDYtMTAtMTIgMDk6MDMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBDSEFOR0VTOiBBSVg6IHVzZSBjb3JyZWN0IEFSUFRBQl9TWU1CT0wgYW5kIEFSUFRBQl9TSVpFX1NZTUJPTAoKMjAwNi0xMC0xMiAwODoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgQ0hBTkdFUzogQUlYOiBCVUcgMTIwNTMwMDogbmxpc3QgZXJyOiBuZWl0aGVyIG5wcm9jIG5vciBfbnByb2MgZm91bmQgKHNhbWUgZm9yIHJ0X3RhYmxlLCBydGhhc2hzaXplLCBydGhvc3QsIHJ0bmV0KQoKMjAwNi0xMC0xMiAwNDo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIFN1cHByZXNzIHRoZSBzdWJzdGl0dXRpb24gb2YgdGhlIGxpc3Qgb2YgbW9kdWxlIGhlYWRlciBmaWxlcy4KICAgVGhpcyBpcyBwdXJlbHkgYSB0ZW1wb3Jhcnkgc3RvcC1nYXAgZml4LCB0byBoYW5kbGUgc2VkIGNvbW1hbmRzIHdoaWNoCiAgIGNob2tlIG9uIG92ZXItbG9uZyBzdWJzdGl0dXRpb25zLiAgQSBiZXR0ZXIgYXBwcm9hY2ggaXMgbmVlZGVkLgoKMjAwNi0xMC0xMiAwNDo0MCAgZHRzMTIKCiAgICogTkVXUzoKCiAgIERvY3VtZW50IEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIChpbmNsdWRpbmcgYmVoYXZpb3VyIGNoYW5nZXMpLgoKMjAwNi0xMC0xMiAwMzowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRml4IGhhbmRsaW5nIG9mIGFzc2lnbm1lbnRzIHRvIG10ZVRyaWdnZXJWYWx1ZUlECiAgICAgICBbQnVnICMxNTc0NzEzLCBQYXRjaCAjMTU3NDc0MywgZnJvbSBSb3NzIFR5bGVyXQoKMjAwNi0xMC0xMiAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBUd2Vha3MgZm9yIERhcndpbiA5IHN1cHBvcnQgLSBbUGF0Y2ggIzE1NzU0MzMsIGZyb20gQ2hyaXMgSmFsYmVydF0KCjIwMDYtMTAtMTIgMDI6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaDoKCiAgIFVwZGF0ZWQgc3lzdGVtIGhlYWRlciBmaWxlIGZvciBEYXJ3aW44IC0gW1BhdGNoIDE1NzU0MzAsIGJ5IENocmlzIEphbGJlcnRdCgoyMDA2LTEwLTEyIDAyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBtZW1vcnkuaDoKCiAgIEluY2x1ZGUgdGhlIGFwcHJvcHJpYXRlIEhBTCBtb2R1bGVzIGZvciBEYXJ3aW4gKERhcndpbjkpIHN5c3RlbXMuCiAgIFN1cHBsaWVkIGJ5IENocmlzIEphbGJlcnQuCgoyMDA2LTEwLTExIDA5OjIxICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gYWRkIG5vdGUgdGhhdCAtLWVuYWJsZS1tZmQtcmV3cml0ZXMgaXMgbmVlZGVkIGZvciBleHBlcmltZW50YWwgaWYtbWliIHBvcnRzCiAgIC0gcmVtb3ZlIGxpbmUgb24gcGF0Y2ggdG8gcHJldmlvdXNseSB1bnJlbGVhc2UgY29kZQoKMjAwNi0xMC0xMSAwOToxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZnJlZWJzZC5oLCBvcGVuYnNkLmg6CgogICBpbmNsdWRlIGlmLW1pYiByZXdyaXRlcyBpZiBtZmQgcmV3cml0ZXMgaXMgZGVmaW5lZAoKMjAwNi0xMC0xMSAwODowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIGluY2x1ZGUgaWYtbWliIHJld3JpdGVzIGlmIG1mZCByZXdyaXRlcyBpcyBkZWZpbmVkCgoyMDA2LTEwLTEwIDE3OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFByaXZveHlXaW5kb3dPcGVuPyBNdXN0IGhhdmUgYmVlbiBtaXNzaW5nIGEgbWFqb3IgZmVhdHVyZSBhZGRpdGlvbjotKQoKMjAwNi0xMC0xMCAxNTozMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggdHlwb3MKCjIwMDYtMTAtMTAgMTQ6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmM6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTU2OTUzNywxNTY5NTM5OiBuZXcgVURQLU1JQiBhbmQgVENQLU1JQiBpbXBsZW1lbnRhdGlvbiAoZW5hYmxlIHRocm91Z2ggLS13aXRoLW1pYi1tb2R1bGVzPXVkcC1taWIsdGNwLW1pYikKCjIwMDYtMTAtMTAgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NzA5ODIgU29sYXJpcyBJRi1NSUI6IFN1cHBvcnQgZm9yIElQdjYtb25seSBpbnRlcmZhY2VzCgoyMDA2LTEwLTEwIDA3OjMyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgcHJlYWQ2NCAoQUlYKSBhbmQgbmxpc3Q2NCAoSVJJWCkKCjIwMDYtMTAtMTAgMDY6MTYgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGFkZCBtaXNzaW5nIFNUUlVDVF9OTElTVDY0X0hBU19OX1ZBTFVFIHZhcmlhYmxlIHNvIHRoYXQgdGhlIHRlc3QgcmVzdWx0IGlzIGFjdHVhbGx5IHNhdmVkCgoyMDA2LTEwLTEwIDAzOjUyICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBzaGVsbCBzeW50YXggZXJyb3JzIHJlcG9ydGVkIGJ5IFJpY2hhcmQgQ2hvbmFrCgoyMDA2LTEwLTA5IDA2OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgbW9yZSByb2J1c3QgU29sYXJpcyBDUFUgdGVzdGluZzogdGhlIGluZGV4IGZvciB0aGUgZmlyc3QgQ1BVIG1heSB2YXJ5IGFjcm9zcyBzeXN0ZW1zIChDUFUgMCA9IGluZGV4IDc2OCwgQ1BVIDEgPSBpbmRleCA3NjkgZXRjLikKCjIwMDYtMTAtMDkgMDQ6MjEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgZmFpbCBvbiBERUJVR01TRyoKCjIwMDYtMTAtMDggMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfcHN0YXQuYzoKCiAgIEFjdGl2YXRlIHBzdGF0LWJhc2VkIENQVSBoYW5kbGluZyBvbiBIUC1VWCBzeXN0ZW1zLgoKMjAwNi0xMC0wOCAxMzoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgRG9uJ3QgcmVkZWZpbmUgYW4gZXhpc3RpbmcgdG9rZW4gd2l0aG91dCB1bmRlZmluaW5nIGl0IGZpcnN0LgoKMjAwNi0xMC0wOCAxMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBFbnN1cmUgdGhhdCBoaXN0b3JpY2FsIGRhdGEgaXMgYXZhaWxhYmxlIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHVzZSBpdC4KCjIwMDYtMTAtMDcgMTQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgRml4IHNpemUgY2hlY2sgZm9yIHNwZWNpYWxpc2VkIGludGVnZXItYmFzZWQgYXNzaWdubWVudHMuCiAgIChCdWcgIzE1NzIzOTQgLSBwYXRjaCBwcm92aWRlZCBieSBQaGlsIFdpbHNvbikKCjIwMDYtMTAtMDcgMDY6NDkgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIEFkanVzdCB0byBjaGFuZ2VzIGluIGNlcnRhaW4gSG9zdFJlcyBpbmRleGluZy4KCjIwMDYtMTAtMDUgMTU6NDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgV2hhdCdzIGEgc3RyYXkgdW5kZXJzY29yZSBoZXJlIG9yIHRoZXJlIGJldHdlZW4gZnJpZW5kcz8KCjIwMDYtMTAtMDUgMDg6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa3N0YXQuYzoKCiAgIERlYnVnZ2luZyBjb2RlLgoKMjAwNi0xMC0wNSAwODo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQmUgY29uc2lzdGVudCBpbiB0aGUgdXNlIG9mIENQVSBpbmRleGluZy4KCjIwMDYtMTAtMDQgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogbWVtb3J5LmgsIG1lbW9yeS9tZW1vcnlfbnVsbC5jCjoKCiAgIEFsbG93IHN5c3RlbXMgd2l0aG91dCBhbiBleHBsaWNpdCBIQUwgbWVtb3J5IG1vZHVsZSB0byBjb21waWxlCiAgIChldmVuIGlmIHRoZSBhZ2VudCBjYW4ndCByZXBvcnQgdGhlIHJlbGV2YW50IHN0YXRpc3RpY3MpLgoKMjAwNi0xMC0wNCAxNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9rc3RhdC5jOgoKICAgSW5jbHVkZSBrc3RhdC1iYXNlZCBDUFUgcHJvY2Vzc2luZyBvbiBTb2xhcmlzIHN5c3RlbXMsIGFuZCBhbWVuZCB0aGlzIGNvZGUKICAgdG8gYWN0dWFsbHkgY29tcGlsZS93b3JrLiAgKE11Y2ggb2YgdGhpcyBzdXBwbGllZCBieSBCcnVjZSBTaGF3KQoKMjAwNi0xMC0wMyAxMTozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUZXN0IGZvciB0aGUgYWN0dWFsIGJlaGF2aW91ciBvZiAtVXggLUR4PXgsIGFuZCBvbmx5IHVzZSB0aGlzIGlmIGl0IHdvcmtzIGFzIGV4cGVjdGVkLgoKMjAwNi0xMC0wMSAwODo0MyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyOiAgQWRkIE5TSVMgaW5zdGFsbGVyIG9wdGlvbiBmb3IgaW5zdGFsbGluZyB3aW5FeHRETEwgdmVyc2lvbiBvZgogICBzbm1wZC5leGUKCjIwMDYtMTAtMDEgMDY6NDIgIGFsZXhfYgoKICAgKiBORVdTLCBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCjoKCiAgIFdpbjMyOiAgQWRkIHRyYXAgc3VwcG9ydCB0byB3aW5FeHRETEwgYW5kIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA2LTA5LTI5IDE5OjAwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiAgUmVtb3ZlIHdpbkV4dERMTCBzbm1wZC5jb25mIG9wdGlvbiwgYWRkIFNOTVAgdjIgc3VwcG9ydC4KCjIwMDYtMDktMjkgMTM6MjggIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCB0ZXN0cy90ZXN0LnB5OgoKICAgdGVzdCBmaXgKCjIwMDYtMDktMjkgMTM6MTggIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgY2xpZW50X2ludGYuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwNi0wOS0yOSAxMzoxOCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHRlc3RpbmcgdXBkYXRlcwoKMjAwNi0wOS0yOSAxMzowMyAgaGFyZGFrZXIKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudC5weSwKICAgICBuZXRzbm1wL2NsaWVudF9pbnRmLmMsIG5ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHN1cHBvcnQgZm9yIGEgZ2VuZXJpYyB3YWxrIHdyYXBwZXIKCjIwMDYtMDktMjkgMTI6MzEgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCB0ZXN0cy90ZXN0LnB5OgoKICAgY2xlYW51cAoKMjAwNi0wOS0yOCAxODo1MCAgbWFyegoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGFkZGVkICdzZXQnIG1ldGhvZCwgZml4ZXMvYWRkaXRpb25zIHRvIHJlYWRtZQoKMjAwNi0wOS0yNyAyMzowMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBQQVRDSDogMTU2Njc3NzogZnJvbSBqYWxiZXJ0OiBidWlsZCBmaXhlcyBmb3IgbWVtb3J5X2Rhcndpbi5jCgoyMDA2LTA5LTI3IDE1OjIxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWlub3IgcmV3b3JkaW5nCgoyMDA2LTA5LTI3IDE0OjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUzICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMiAtPiBWNS40LnByZTMKCQoyMDA2LTA5LTI3IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOS0yNyAxNDoyOCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUzICkKCjIwMDYtMDktMjcgMTQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4OmNmbGFncyAtPjpjY2ZsYWdzCgoyMDA2LTA5LTI3IDEzOjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU2NjUyMzogZnJvbSBhcGVyc3NvbjogTWVtb3J5IGxlYWsgaW4gaWYtbWliIChTb2xhcmlzKQogICAtIHRha2UgYWR2YW50YWdlIG9mIGlmX25hbWV0b2luZGV4KCkgd2hlbiBwb3NzaWJsZQogICAtIGdyYWIgdGhlIElQdjYgaW50ZXJmYWNlIElkZW50aWZpZXIgaWYgYXZhaWxhYmxlCgoyMDA2LTA5LTI3IDEwOjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIC0gdXBkYXRlIGZvciBuZXcgcmVhc21fbWF4IHY0L3Y2IHNwbGl0CiAgIC0gYWRkICdsJyB0byBwcmludGYgc3BlYyBmb3Igc2l6ZV90IHBhcmFtCgoyMDA2LTA5LTI3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBsYXJnZWZpbGUgc3VwcG9ydCBvbiBzb2xhcmlzIGFuZCBkaXNhYmxlIGVtYmVkZGVkIHBlcmwgd2hlbiBvbgoKMjAwNi0wOS0yNyAwOTo1MSAgdGFuZGVycwoKICAgKiBGQVE6CgogICB1cGRhdGUgcGxhdGZvcm0gbGlzdAoKMjAwNi0wOS0yNyAwNjo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGhvdXQtcHl0aG9uLW1vZHVsZXMKCjIwMDYtMDktMjYgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgb3BlbmJzZDQgdG8gc3lzY3RsIGludGVyZmFjZSBsaXN0CgoyMDA2LTA5LTI2IDE1OjQ0ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgc3VwcG9ydCBmb3Igb3BlbmJzZDQKCjIwMDYtMDktMjYgMTU6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBhZGQgc3VwcG9ydCBmb3Igb3BlbmJzZDQKCjIwMDYtMDktMjYgMTQ6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb25zaXN0ZW50bHkgc2F5ICJQZXJsIiwgbm90ICJwZXJsIi4KCjIwMDYtMDktMjYgMTQ6MjEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgbmVlZCB0byBkb3VibGUgY2xlYW4gcHl0aG9uCgoyMDA2LTA5LTI2IDE0OjE5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aG91dC1wZXJsLW1vZHVsZXMKCjIwMDYtMDktMjYgMTI6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBJbmNsdWRlIHNvbWUgKHByb2JhYmx5IG5vdCBhbGwpIG5lY2Vzc2FyeSBoZWFkZXIgZmlsZXMuCgoyMDA2LTA5LTI2IDEyOjIzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXhlZCBweXRob24gbWFrZSBjbGVhbiB3aGVuIG5vIHB5dGhvbiBzdXBwb3J0IHdhcyByZXF1ZXN0ZWQKCjIwMDYtMDktMjYgMDk6MzkgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgc2V0IHVwIHN5bWxpbmtzIGJlZm9yZSBydW5uaW5nIGNvbmZpZ3VyZSB0byBzdXJ2aXZlIHRoZSBuZXcgcGVybCB0ZXN0cwoKMjAwNi0wOS0yNiAwOTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2UgdGhlIHBlcmwgdGVzdHMgdG8gYWxsb3cgZm9yIHN5bWxpbmtzCgoyMDA2LTA5LTI2IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeGVkIHJwbSBjaGVja3MuLi4gIG9wcHBzCgoyMDA2LTA5LTI2IDA5OjA5ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICBkb2N1bWVudGVkIEFJWCBzZWQgaXNzdWVzCgoyMDA2LTA5LTI2IDA3OjQ5ICBtYXJ6CgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnQucHksCiAgICAgbmV0c25tcC9jbGllbnRfaW50Zi5jLCBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBjbGVhbnVwLCB3ZWlyZCBsZWFmIG9iaiBoYW5kbGluZywgYWRkZWQgc25tcGdldGJ1bGsKCjIwMDYtMDktMjUgMjE6NTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUxIC0+IFY1LjQucHJlMgoKMjAwNi0wOS0yNSAyMTo0OSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMjUgMjE6NDkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMiApCgoyMDA2LTA5LTI1IDIxOjM3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZml4ZWQgc3ludGF4IGVycm9yCgoyMDA2LTA5LTI1IDE3OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmFuIGF1dG9oZWFkZXIKCjIwMDYtMDktMjUgMTc6MjYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVwZGF0ZSBmb3IgYSAtLXdpdGgtcHl0aG9uLW1vZHVsZXMgZmxhZzsgd2lsbCBydW4gaW50byBzb21lIG9mIHRoZSBzYW1lIGJ1aWxkLWluLXBsYWNlIGlzc3VlcyB0aGF0IHBlcmwgaGFzIGJ1dCBpdCdzIGEgc3RhcnQKCjIwMDYtMDktMjUgMTc6MDQgIGhhcmRha2VyCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCjIwMDYtMDktMjUgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTU1OTM1ODogZnJvbSB0cmFta2VyOiBjaGVjayBzY2FuZiByZXN1bHRzIGZvciBkaXNraW8gc2Nhbm5pbmcKCjIwMDYtMDktMjUgMTY6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE1NjQyMzM6IEhhdmUgY29uZmlndXJlIHRlc3QgZm9yIHJwbSBoZWFkZXJzIG5vdCBqdXN0IHRoZSBsaWJyYXJpZXMKCjIwMDYtMDktMjUgMTQ6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3Qgd2FybiBhYm91dCBleGNsdWRpbmcgcmVxdWlyZWQgbW9kdWxlcyB3aGVuIHRoZSBjdXJyZW50IGZpbGUgaXMgZGVmYXVsdF9taWJzCgoyMDA2LTA5LTI1IDE0OjMzICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTY1MjkzOiBmcm9tIGFkcDogVURQSVB2NiB0cmFuc3BvcnQgcmVwb3J0cyB3cm9uZyBwb3J0IG51bWJlcgoKMjAwNi0wOS0yNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0ZXN0cyB0byBzZWUgaWYgd2UncmUgaW4gdGhlIG1haW4gc291cmNlIHRyZWUgc28gd2UgY2FuIGluc3RhbGwgdGhlIHBlcmwgbW9kdWxlcyBvciBub3QKCjIwMDYtMDktMjUgMDk6MjUgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBidWxrd2Fsay50LCBjb25mLnQsCiAgICAgZ2V0LnQsIGdldG5leHQudCwgbWliLnQsIG1pYmxvYWQudCwKICAgICBub3RpZnkudCwgc2Vzc2lvbi50LCBzZXQudDoKCiAgIE1ha2UgcGVybCB0ZXN0IHN1aXRlIHdvcmsgZXZlbiBpZiBuZXQtc25tcCBpc24ndCBpbnN0YWxsZWQgeWV0LgoKMjAwNi0wOS0yNSAwODo0OCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBOZXRTTk1QOjphZ2VudCB0ZXN0cyBuZWl0aGVyIG5lZWQgY29uZmlnIG5vciBNSUJzCgoyMDA2LTA5LTI1IDA4OjIxICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGV4Y2x1ZGUgQ1ZTIGZpbGVzIGZyb20gbmlnaGx5IHRhcmJhbGxzCgoyMDA2LTA5LTI1IDA3OjMwICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCBjbGllbnRfaW50Zi5jLAogICAgIHRlc3RzL3Rlc3QucHk6CgogICBhZGRpbmcgZ2V0YnVsaywgcmVtb3Zpbmcgc29tZSBkZWJ1ZwoKMjAwNi0wOS0yNSAwNTozNSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgRG9uJ3QgbWl4IHRhYnMgYW5kIHNwYWNlcyBmb3IgaW5kZW50YXRpb24uIENvbnZlcnQgYWxsIChyYXJlbHkgdXNlZCkgdGFicyB0byBzcGFjZXMuCgoyMDA2LTA5LTI1IDAxOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oCiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgRGlzdGluZ3Vpc2ggYmV0d2VlbiAiT0lELioiIGFuZCAiT0lEKiIgd2lsZGNhcmQgc3ludGF4IChleGNsdXNpdmUgYW5kCiAgIGluY2x1c2l2ZSBzdWJ0cmVlIG1hdGNoZXMgcmVzcGVjdGl2ZWx5KS4KCjIwMDYtMDktMjUgMDE6MzggIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZgo6CgogICBJbXBsZW1lbnQgKGFuZCBkb2N1bWVudCkgIk9JRC4qIiBzeW50YXggZm9yIHN1YnRyZWUgbWF0Y2hpbmcuCgoyMDA2LTA5LTI0IDE1OjI4ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMIC0gRml4IGJ1ZyB3aXRoIHNldCByZXF1ZXN0cywgc3RhcnQgdG8gYWRkIFNOTVB2MiBzdXBwb3J0LgoKMjAwNi0wOS0yMyAwMDoxMyAgdGFuZGVycwoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgT0lELnBtIHRlc3RzIHNob3VsZG4ndCBkZXBlbmQgb24gKmluc3RhbGxlZCogTUlCcwoKMjAwNi0wOS0yMiAxNDoxOCAgdGFuZGVycwoKICAgKiBweXRob24vUkVBRE1FOgoKICAgc29tZSBuaXQtcGlja2luZwoKMjAwNi0wOS0yMiAxMzo1NiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU05NUC5wbSBwZXJsIHRlc3RzIHNob3VsZG4ndCBkZXBlbmQgb24gKmluc3RhbGxlZCogTUlCcwoKMjAwNi0wOS0yMiAxMjo0NyAgbWFyegoKICAgKiBweXRob24vUkVBRE1FOgoKICAgUkVBRE1FIGVkaXRzCgoyMDA2LTA5LTIyIDEyOjAzICBtYXJ6CgogICAqIHB5dGhvbi9SRUFETUU6CgogICBtb2RzIHRvIFJFQURNRSB3aXRoIHNvbWUgdXNhZ2UgaW5mbwoKMjAwNi0wOS0yMiAxMDoyNSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIHByb3BlciBuYW1pbmcKCjIwMDYtMDktMjIgMTA6MjUgIGhhcmRha2VyCgogICAqIHB5dGhvbi86IExJQ0VOU0UsIFJFQURNRToKCiAgIGFkZGVkIGEgcmVhZG1lIGFuZCBsaWNlbnNlIGZpbGUKCjIwMDYtMDktMjIgMTA6MjAgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBkYXRlIHVwZGF0ZQoKMjAwNi0wOS0yMiAwNzo1OCAgbWFyegoKICAgKiBweXRob24vOiBzZXR1cC5weSwgbmV0c25tcC9fX2luaXRfXy5weSwKICAgICBuZXRzbm1wL2NsaWVudC5weSwgbmV0c25tcC9jbGllbnRfaW50Zi5jLAogICAgIG5ldHNubXAvdGVzdHMvX19pbml0X18ucHksIG5ldHNubXAvdGVzdHMvc25tcGQuY29uZiwKICAgICBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBBZGRpbmcgaW5pdGlhbCBhbHBoYSBzdXBwb3J0IGZvciBuZXQtc25tcCBweXRob24gYmluZGluZwoKMjAwNi0wOS0yMiAwNDo0NyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBEb24ndCBmYWlsIG9uICJMT0dfRVJSIi4KCjIwMDYtMDktMjIgMDM6MjkgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvOiBub3RpZnkudCwgc3RhcnRhZ2VudC5wbDoKCiAgIGZpeCBTTk1QLnBtIG5vdGlmeSB0ZXN0IChzdGFydCBzbm1wdHJhcGQgd2l0aCB2YWxpZCBvcHRpb25zKQoKMjAwNi0wOS0yMSAwOToxNSAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBXaW5kb3dzIGJ1aWxkIGZpeGVzLgoKMjAwNi0wOS0yMSAwNzo0MyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9wZXJsX3NubXB0cmFwZC5oOgoKICAgU3luYyBzdHJ1Y3QgbmV0c25tcF90cmFwZF9oYW5kbGVyX3Mgd2l0aCB0aGUgbGlicmFyeSBjb2RlIGFnYWluIChhZGQgImZsYWdzIikuCgoyMDA2LTA5LTIxIDA2OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGZpeCBwb3RlbnRpYWwgc2VnZmF1bHQgaW50cm9kdWNlZCBieSBwYXRjaCAxNTYxMjc3CgoyMDA2LTA5LTIxIDA1OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4gZm9yIFNOTVBfU1RST1JOVUxMCgoyMDA2LTA5LTIxIDAzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgKnJlYWxseSoga2VlcCBwcmVYL3JjWCBpbiB2ZXJzaW9uIHN0cmluZ3MKCjIwMDYtMDktMjAgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBjaGFuZ2UgYWdlbnR4IHNvY2tldCBkZWZpbmUgdG8gTkVUU05NUF8gcHJlZml4ZWQKCjIwMDYtMDktMjAgMTM6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBDaGVjayBpbmNvbWluZyB0cmFwIE9JRHMgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSB0cmFwaGFuZGxlIE9JRAogICAoYnV0IG5vdCB0aGUgb3RoZXIgd2F5IHJvdW5kISkKCjIwMDYtMDktMjAgMDk6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2hhbmdlIHByZSB0YWdzIHRvIDAuIHRvIGF2b2lkIGJhZGx5IGdlbmVyYXRlZCB2ZXJzaW9uIG51bWJlcnMKCjIwMDYtMDktMjAgMDc6NDUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhdXRvbWF0dGVkIHRlc3Rpbmcgb2YgdGhlIHByb2R1Y2VkIHRhci1iYWxsCgoyMDA2LTA5LTE5IDIyOjIzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZml4IHBhdGggdG8gZXh0cmFjdG5ld3MKCjIwMDYtMDktMTkgMjI6MTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbgosIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIGNvbmZpZ3VyZSwKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTEgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMyAtPiBWNS40LnByZTEKCjIwMDYtMDktMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMSApCgoyMDA2LTA5LTE5IDE3OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjYXZlIHRvIHB1dHRpbmcgaW4gc29tZSBidWZmZXIgc3BhY2UgZm9yIGxpYmN1cnJlbnQ7IDUuMyB3YXMgMTAgYW5kIGluY3JlbWVudHMgb2YgNSBtYWtlIGl0IGVhc3ksIHNvIDUgaXQgaXMuCgoyMDA2LTA5LTE5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogZXh0cmFjdG5ld3MsIG1ha2VyZWxlYXNlOgoKICAgeWV0IG1vcmUgdXBkYXRlcyBmb3IgbWFraW5nIHJlbGVhc2VzCgoyMDA2LTA5LTE5IDE2OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vcmUgZml4ZXMgZm9yIHVkcCBkb21haW5zOiByZW1vdmUgcmVxdWlyZW1lbnQgZm9yIGluZXRfYXRvbiB3aGljaCBvbiBzb21lIHN5c3RlbXMgZXhpc3RzIGluIGxpYnJlc29sdgoKMjAwNi0wOS0xOSAxNjozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICB1ZHAgZG9tYWluIGZpeGVzCgoyMDA2LTA5LTE5IDE2OjA0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYnVpbGQgZml4IGZvciBJUklYIHdpdGggU0dJJ3MgY2MKCjIwMDYtMDktMTkgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgKLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBORVdTOiBzbm1wdHJhcGQ6IHRoZSB0cmFwaGFuZGxlIGRpcmVjdGl2ZSBub3cgc3VwcG9ydHMgYSAtdCBzd2l0Y2ggdG8gaW5kaWNhdGUgbWF0Y2hpbmcgYW55IE9JRCBpbiB0aGUgdHJlZSBiZWxvdyB0aGUgc3BlY2lmaWVkIE9JRAoKMjAwNi0wOS0xOSAxNToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBjbGVhbmVkIHVwIHBlcmwgdmFycyBmb3Igc3VwcG9ydCBvbiBvbGRlciBwZXJsIHZlcnNpb25zCgoyMDA2LTA5LTE5IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBlcnJvciBsb2dpYyBpbiBwZXJsIHRlc3RzCgoyMDA2LTA5LTE5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHNtYXJ0IGRldGVjdGlvbiBvZiBhdmFpbGFibGUgcGVybCBzdXBwb3J0CgoyMDA2LTA5LTE5IDExOjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBwZXJsIGNjIHRlc3QgdG8gYWxsb3cgZm9yIGRhc2ggb3B0aW9ucwoKMjAwNi0wOS0xOSAxMDo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVwb3J0IHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggbWF0Y2ggd2hlbiBvbmUgT0lEIGlzIGEgcHJlZml4IG9mIHRoZSBvdGhlci4KICAgVGhlIHByZXZpb3VzIGNvZGUgdHJlYXRlZCB0aGlzIGFzIGEgbm9uLW1hdGNoIChyZXR1cm5pbmcgMCkuCiAgIEknbSBub3QgYXQgYWxsIGNvbnZpbmNlZCBieSB0aGUgIisxIiBoYW5kbGluZyBlaXRoZXIuCgoyMDA2LTA5LTE5IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFub3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIGl0ZW1zIGNhbGN1bGF0aW9uIHdpdGhvdXQgcG9wcGluZyBhIG1hcmsKCjIwMDYtMDktMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NTA3MjU6IGZyb20gJ1dheW5lIEdsYW50eic6IEEgbmV3IHVpbnQgaW5zdGFuY2UgaGVscGVyIHRvIG1hdGNoIHRoZSBleGlzdGluZyBpbnQsIGxvbmcgYW5kIHVsb25nIGhlbHBlcnMKCjIwMDYtMDktMTkgMDk6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNTI3OTMwOiBmaXggc211eCBhdXRoZW50aWNhdGlvbgoKMjAwNi0wOS0xOSAwOToxNyAgaGFyZGFrZXIKCiAgICogZGlzdC86IFJFTEVBU0UtSU5TVFJVQ1RJT05TLCBleHRyYWN0bmV3czoKCiAgIHJlbW92ZSBmcm9tIHVzZXIgc3RyaW5ncyBpbiBORVdTIGFuZCBDSEFOR0VTIGxpbmVzCgoyMDA2LTA5LTE5IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgcmVtb3ZlIHJvYmVydCdzIHNlbGYtY2FsbGVkIGhhY2sgZm9yIG1ha2luZyBzbm1wdHJhcGQgaGFuZGxlIHBhcnRpYWwgT0lEcy4gIEFzIGFncmVlZCB0byBvbiBjb2RlcnMgdGhpcyBjYW4ndCBiZSBkb25lIGFzIGlzIGJlY2F1c2UgaXQgY29tcGxldGVseSBjaGFuZ2VzIGV4aXN0aW5nIHVzYWdlLiAgQSBuZXcgbWVjaGFuaXNtIGlzIG5lZWRlZCB0byBzdXBwb3J0IHRoaXMgYmVoYXZpb3VyIHNvIGl0IGRvZXNuJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaXR5IHdpdGggcG90ZW50aWFsIHNlY3VyaXR5IHJhbWlmaWNhdGlvbnMKCjIwMDYtMDktMTkgMDc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDEyODI1NjY6IGZyb20gbWFnZnIgdG8gcmV3b3JrIHRyYW5zcG9ydCBjcmVhdGlvbiB0byBhbGxvdyBmb3IgYWx0ZXJuYXRpdmUgaW50ZXJwcmV0YXRpb25zIG9mIHRoZSBhZGRyZXNzIGFuZCBhIG1vcmUgZmxleGlibGUgdHJhbnNwb3J0IHJlZ2lzdHJhdGlvbiBzeXN0ZW0KCjIwMDYtMDktMTkgMDY6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTYxMjc3OiB1c2UgbmV0LmlwdjYubmVpZ2gubG8uYmFzZV9yZWFjaGFibGVfdGltZV9tcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgYmFzZV9yZWFjaGFibGVfdGltZQoKMjAwNi0wOS0xOSAwNDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCjoKCiAgIERvbid0IHJlLWluaXRpYWxpc2UgYnVpbHQtaW4gRXZlbnQtTUlCIGV2ZW50cywgZXRjLgoKMjAwNi0wOS0xOSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEZpcnN0IHN0ZXBzIGluIHN1cHBvcnRpbmcgc2luZ2xlLWluc3RhbmNlIHJlZ2lzdHJhdGlvbnMuCgoyMDA2LTA5LTE4IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxNDc0NDY4OiBpZkNvbm5lY3RvclByZXNlbnQgYWx3YXlzIHJldHVybnMgMAoKMjAwNi0wOS0xOCAyMDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBtb2RpZmllZCB0aGUgaG9zdCByZXNvdXJjZXMgc2tpcCBORlMgcGF0Y2ggdG8gZml4IGEgYnVnIGFuZCB0byB1c2UgdGhlIGRlZmF1bHQgc3RvcmFnZSBjb25maWcgaW5zdGVhZAoKMjAwNi0wOS0xOCAyMDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTUyNDc1NTogZnJvbSBhcGVyc3NvbiB0byBiZXR0ZXIgc3VwcG9ydCB0aGUgVURQVGFibGUgZm9yIHVua25vd24gYWRkcmVzcyB0eXBlcwoKMjAwNi0wOS0xOCAyMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTUzNDg3NzogZnJvbSBidWNraCB0byBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgTkZTIGVudHJpZXMgaW4gdGhlIGhvc3QgcmVzb3VyY2VzIGhyU3RvcmFnZVRhYmxlLiAgU2VlIHRoZSBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzIHRva2VuIGluIHRoZSBzbm1wZC5jb25mIGZpbGUgZm9yIGRldGFpbHMuCgoyMDA2LTA5LTE4IDIwOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgYWNjZXB0aWxlIE5FV1MgdG9rZW5zCgoyMDA2LTA5LTE4IDE3OjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgdGhlIG5ldyBDVlMgTkVXUyB0YWcgc3lzdGVtCgoyMDA2LTA5LTE4IDE2OjA1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IC0gUEFUQ0g6IDE1MzY3NzM6IHN1cHBvcnQgcGFydGlhbCBvaWQgbWF0Y2hpbmcKCiAgIFdlIGNhbiBzdGlsbCBhZGQvcmVxdWlyZSBhIHNwZWNpYWwgdG9rZW4vc3ludGF4IGZvciB0aGlzIGFmdGVyIHByZTEKICAgaWYgdGhpcyB3YXMgdGhlIGNvbnNlbnN1cy4KCjIwMDYtMDktMTggMTU6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBmaXggcmVjZW50IGJ1aWxkIGlzc3VlcyBvbiBTb2xhcmlzIDcgKHBhdGNoIHByb3ZpZGVkIGJ5IEFuZGVycyBQZXJzc29uKQoKMjAwNi0wOS0xOCAwNzoxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIGFkZCBkZWJ1Z2dpbmcsIGZpeCBzb21lIGZpZ3VyZXMKCjIwMDYtMDktMTggMDI6MDggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9NQU5JRkVTVDoKCiAgIGFkZCBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydCBmaWxlcwoKMjAwNi0wOS0xOCAwMToxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1Lmg6CgogICBNb3ZlIHVwIGFuZCByZW5hbWUgdGhlICNpZm5kZWYgdG8gcHJldmVudCBkdXBsaWNhdGUgaW5jbHVkZS4gRml4ZXMgY29tcGlsZSBlcnJvcnMgd3J0LiBDb3VudGVyNjQgb24gU29sYXJpcyA3IGFuZCBlYXJsaWVyLgoKMjAwNi0wOS0xNiAxNjozMyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRSB1cGRhdGUgZm9yIHdpbkV4dERMTC4KCjIwMDYtMDktMTYgMTU6MjIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3Mgd2luRXh0RExMOiBVc2UgcmVnaXN0cnkgZW50cmllcyBmb3IgV2luZG93cyBTTk1QIGV4dGVuc2lvbiB0byBnZXQKICAgdGhlIGxpc3Qgb2YgRExMcyB0byBsb2FkLgoKMjAwNi0wOS0xNiAxMzo0OSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVUU05NUF8gZGVmaW5lIGZpeGVzLgoKMjAwNi0wOS0xNiAxMjo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgY29uZmlndXJlLmluOgoKICAgZml4IGNoZWNrIGZvciA8c3lzL3N5c3RlbWNmZy5oPiAoQUlYKQoKMjAwNi0wOS0xNiAxMTowMSAgdGFuZGVycwoKICAgKiB3aW4zMi86IGNvbmZpZy5oLmJvcmxhbmQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGZpeCBzb21lIE5FVFNOTVBfTkVUU05NUF8qICJkb3VibGUgcmVuYW1lIiBlcnJvcnMgZm9yIFdpbmRvd3MKCjIwMDYtMDktMTYgMTA6NTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICByZXZlcnQgdG8gKGxvY2FsKSBPTERfSEVJTURBTCBkZWZpbmUKCjIwMDYtMDktMTYgMTA6MjMgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlbmFtZSBsYXN0IG9jY3VyZW5jZSBvZiBET05UX1VTRV9OTElTVAoKMjAwNi0wOS0xNiAxMDoxMCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIKCjIwMDYtMDktMTYgMDg6NDQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmLCBsaWJzbm1wLmRlZi5pbjoKCiAgIFdpbmRvd3MgTVNWQyBQZXJsIGNvbXBpbGUgZml4ZXMuCgoyMDA2LTA5LTE2IDA4OjE5ICBhbGV4X2IKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMOgoKICAgRml4IGZvciBidWlsZGluZyB1bmRlciBXaW5kb3dzIChNU1ZDKS4KCjIwMDYtMDktMTUgMDk6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBhY3RpdmF0ZSBtZW1vcnkgSEFMIGNvZGUgZm9yIElSSVgKCjIwMDYtMDktMTUgMDk6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBpbml0aWFsIElSSVggdmVyc2lvbiBvZiBtZW1vcnkgSEFMIGludGVyZmFjZQoKMjAwNi0wOS0xNSAwNzo0OCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciA8c3lzL3N5c2dldC5oPiAoSVJJWCkKCjIwMDYtMDktMTUgMDc6MTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIGludHJvZHVjZSBuZXRzbm1wX29zX2tlcm5lbF93aWR0aCgpIHRvIGJlIGFibGUgdG8gZGV0ZWN0IDY0Yml0IGtlcm5lbHMgYXQgcnVudGltZQoKMjAwNi0wOS0xNSAwNjoxMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBzeXMvc3lzdGVtY2ZnLmggKEFJWCkgYW5kIHN5cy9zeXN0ZW1pbmZvLmggKElSSVgpCgoyMDA2LTA5LTE1IDA1OjQ2ICB0YW5kZXJzCgogICAqIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgc25tcGxpYi9rZXl0b29scy5jLAogICAgIHNubXBsaWIvc2NhcGkuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UKLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIHdpbjMyL0NvbmZpZ3VyZToKCiAgIG1vcmUgcmVuYW1lcyBhbmQgZml4ZXMKCjIwMDYtMDktMTUgMDQ6MTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IHN5bnRheCBlcnJvciB0aGF0IGJyb2tlIHRoZSBTb2xhcmlzIGJ1aWxkCgoyMDA2LTA5LTE1IDAzOjQ0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHdyb25nIHJlbmFtZXMKCjIwMDYtMDktMTUgMDM6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICByZXN0cmljdCBJUF9QS1RJTkZPIGNvZGUgdG8gTGludXgKCjIwMDYtMDktMTUgMDI6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBzeW50YXggZXJyb3JzIHdoaWNoIGJyb2tlIHRoZSBidWlsZCBvbiBTb2xhcmlzCgoyMDA2LTA5LTE0IDIxOjAzICBhbGV4X2IKCiAgICogd2luMzIvOiBjb25maWcuaC5ib3JsYW5kLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hhbmdlIE5ldC1TTk1QIGRlZmluZXMgdG8gdXNlIE5FVFNOTVBfIHByZWZpeC4KCjIwMDYtMDktMTQgMTc6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgICBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywKICAgICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2FzbjEuYywKICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9tdF9zdXBwb3J0LmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BrY3MuYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jCiwgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBBbHdheXMgdXNlIHRoZSBuZXcgbmV0LXNubXAtY29uZmlnLmggZGVmaW5pdGlvbnMgZnJvbSB3aXRoaW4gdGhlIE5FVFNOTVBfCiAgIG5hbWVzcGFjZS4KCjIwMDYtMDktMTQgMTY6NTUgIGhhcmRha2VyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBmaXJzdCBwYXNzIGF0IGV4dHJhY3RpbmcgTkVXUy9DSEFOR0VTIGZpbGVzIGZyb20gY3ZzIGxvZ3MKCjIwMDYtMDktMTQgMTY6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBkZXRlY3Qgc29sYXJpcyBpYmQvaXAudHVuL2F0aCBpbnRlcmZhY2UgdHlwZXMgcHJvcGVybHkKCjIwMDYtMDktMTQgMTU6MjggIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gU29sYXJpcyBpZi1taWIgcmV3cml0ZQoKMjAwNi0wOS0xNCAxNToxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNi0wOS0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBORVdTOiBQQVRDSEVTOiAxNTA5OTQzOiByZXNwb25zZXMgd2lsbCBnZXQgc2VudCBmcm9tIHRoZSBvcmlnaW5hbCBkZXN0IElQIGFkZHJlc3Mgd2hlbiBwb3NzaWJsZS4KCjIwMDYtMDktMTQgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBQQVRDSEVTOiAxNTU0ODI3OiBmcm9tIHJ0eWxlOiBmaXggaGFuZGxpbmcgb2YgZmFpbGVkIHByb3h5IFNFVCByZXF1ZXN0cwoKMjAwNi0wOS0xNCAxMzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMKOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE1NTc1MTQgZnJvbSBydHlsZTogRG8gbm90IGF0dGVtcHQgdG8gY29sbGVjdCBkYXRhIGR1cmluZyBTRVQgcHJvY2Vzc2luZy4KCjIwMDYtMDktMTQgMTM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGFzcyAyIGF0IGdldHRpbmcgYXV0by1idWlsZCBzdXBwb3J0IGZvciAuc28gZmlsZXMuICBJJ20gbm93IGNvbnZpZW5jZWQgaXQncyBjbG9zZSB0byBpbXBvc3NpYmxlIHRvIGRvIGNvcnJlY3RseSB3aXRoIGRlcGVuZGVuY3kgaXNzdWVzIGFuZCBubyBzdXBwb3J0IGZvciByZWN1cnNpdmUgZnVuY3Rpb25zIGluIHNoCgoyMDA2LTA5LTE0IDEyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgc29sYXJpcyBzdXBwb3J0IGZvciBpZi1taWIgNjRiaXQgY291bnRlcnMKCjIwMDYtMDktMTQgMTA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGlwQWRkci5jLCB2YXJfcm91dGUuYwo6CgogICB1c2UgbmV3IGRhdGEgYWNjZXNzIHJvdXRpbmUgZm9yIHNvbGFyaXMsIGlmIHJld3JpdGUgaW4gZWZmZWN0CgoyMDA2LTA5LTE0IDEwOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIHVzZSBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUyB0byBkZWNpZGUgYWJvdXQgaWYtbWliIHN1cHBvcnQKCjIwMDYtMDktMTQgMTA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHNvbGFyaXMgc3VwcG9ydCBmb3IgaWYtbWliIDY0Yml0IGNvdW50ZXJzCgoyMDA2LTA5LTE0IDEwOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9jb25mICYmIGF1dG9oZWFkZXIKCjIwMDYtMDktMTQgMTA6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB0eXBlIGNoZWNrIGZvciBzb2xhcmlzIENvdW50ZXI2NAoKMjAwNi0wOS0xNCAxMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBzcGxpdCByZWFzbV9tYXggaW50IHR3byB2YXJzICh2Ni92NikKCjIwMDYtMDktMTQgMDc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oOgoKICAgZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9JRlRBQkxFX1JFV1JJVEVTCgoyMDA2LTA5LTE0IDA3OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgbWliSUkvaWZUYWJsZS5oOgoKICAgT25seSB0cnkgdG8gdXNlIG1mZCBjb2RlIGlmZiBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUyBpcyBkZWZpbmVkCgoyMDA2LTA5LTE0IDA3OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBkZWZpbmVkIGZvciBuZXcgaWZPcGVyU3RhdHVzIHZhbHVlcwoKMjAwNi0wOS0xNCAwMjo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYwosIGxvY2FsL21pYjJjLnJvdy5jb25mOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgYSBzaW5nbGUtcm93IGhlbHBlci4KCjIwMDYtMDktMTMgMTA6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgcGFzcyBvbmUgYXQgc3BlY2lmeWluZyBkbGxzIHRvIGJ1aWxkIHZpYSBtb2R1bGVzLiAgRG8gbm90IHVzZSB0aGlzIHlldCBhcyB0aGVyZSBhcmUgY29uZmxpY3QgaXNzdWVzIHRoYXQgbmVlZCB0byBiZSB3b3JrZWQgb3V0CgoyMDA2LTA5LTEyIDE4OjMyICBhbGV4X2IKCiAgICogTkVXUywgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYwosIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLAogICAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luZG93czogbmV3IHdpbkV4dERMTCBleHRlbnNpb24gbW9kdWxlIHRvIGFsbG93IHNubXBkIHRvIGxvYWQgV2luZG93cwogICBTTk1QIHNlcnZpY2UgZXh0ZW5zaW9uIERMTHMgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBIT1NULVJFU09VUkNFUy1NSUIKICAgYW5kIG90aGVyIE1JQnMgcHJvdmlkZWQgd2l0aCBXaW5kb3dzLgoKMjAwNi0wOS0xMiAxNjoxNSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0FOX1VTRV9TWVNDVEwgLT4gTkVUU05NUF9DQU5fVVNFX1NZU0NUTAoKMjAwNi0wOS0xMiAxNTo0MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIGZpeGVzCgoyMDA2LTA5LTEyIDE1OjM1ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIHNlZHNjcmlwdC5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaDoKCiAgIE5FV1M6IG1pc2M6IC0gTW9zdCBuZXQtc25tcCBzcGVjaWZpYyBkZWZpbmVzIGFyZSBub3cgKGFsc28pIGF2YWlsYWJsZSB1bmRlciBhIHByb3BlciBORVRTTk1QXyBwcmVmaXguIFRoZSBvbGRlciwgcG90ZW50aWFsbHkgY29uZmxpY3RpbmcgbmFtZXMgYXMgd2VsbCBhcyB0aGUgYXV0b2NvbmYgdmFyaWFibGVzIGNhbiBub3cgYmUgdHVybmVkIG9mZiBieSBhIHNwZWNpYWwgZGVmaW5lLgoKMjAwNi0wOS0xMiAxMDozMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogYWdlbnQ6IC0gW0JVR1M6IDE0Mjc0MTBdIFNldCBhdXRoIGVuZ2luZUlEIGZvciBTTk1QdjMgdHJhcHMuCiAgIChyYXRoZXIgdGhhbiBzZW5kaW5nIGEgdHJhcCB3aXRoIG5vIGF1dGggZW5naW5lSUQpCgoyMDA2LTA5LTEyIDEwOjMwICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IC0gW0JVR1MgMTQxNjQ4MV0gU3VwcG9ydCBzcGVjaWZ5aW5nIGFuIGV4cGxpY2l0IGxpbmtlci4KICAgRGVmYXVsdHMgdG8gJENDIGlmIG5vdCBleHBsaWNpdGx5IHNldC4KCjIwMDYtMDktMTIgMTA6MjcgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogYWdlbnQ6IC0gW0JVR1MgMTUwMjI2N10gQnVpbGQgYWNjZXNzIGxpc3QgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuCgoyMDA2LTA5LTEyIDA2OjA2ICB0YW5kZXJzCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZW5hYmxlIGVtYmVkZGVkIFBlcmwgYW5kIHRoZSBQZXJsIG1vZHVsZXMgYnkgZGVmYXVsdAoKMjAwNi0wOS0wOCAwODo0MyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIE5FV1M6IG1pYjJjOiAtIFtCVUdTOiAxNDc5OTE2XSBSZXN0b3JlIGNvbnNpc3RlbmN5IGluIHJvdyBjcmVhdGlvbiBjb2RlLgoKMjAwNi0wOS0wOCAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBORVdTOiBzbm1wZDogLSBbQlVHUzogMTUzNTkwM10gU3VwcG9ydCBzcGFjZXMgd2l0aGluIHNlY3VyaXR5IG5hbWVzCgoyMDA2LTA5LTA3IDIwOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCwgSSB0aGluaywgdGhlIGJ1bGt3YWxrIHByb2JsZW1zOyBhbGwgdGVzdHMgcGFzcy4gIEkgYmVsaWV2ZSB0aGUgcGF0Y2ggaXMgdGhlIGNvcnJlY3QgY29tYmluYXRpb24gYmV0d2VlbiB0aGUgdHdvIGRpZmZlcmVudCBwYXRjaGVzICh0aGUgb2xkIG9uZSBhbmQgdGhlIG5ldyBvbmUpIHRoYXQgc2hvdWxkIGZpeCBib3RoIHByb2JsZW1zLiAgTkVXUzogcGVybCAtIEZpeGVkIHRoZSBwZXJsIGJ1bGt3YWxrIGZ1bmN0aW9uCgoyMDA2LTA5LTA3IDA5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IHR5cG8gd2hpY2ggYnJva2UgcGVyc2lzdGVuY2UKCjIwMDYtMDktMDcgMDk6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIFVzZSB0aGUgY29ycmVjdCBBUEkgY2FsbCBmb3IgcmVtZW1iZXJpbmcgYSBuZXdseS1jcmVhdGVkIHJvdy4KICAgKFNwb3R0ZWQgYnkgWmhhbmcgQ2h1YW4pLgoKMjAwNi0wOS0wNyAwNDozNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIE5FV1M6IHNubXBkZjogLSBbQlVHUzogMTUxNTUwN10gSGFuZGxlIGZhaWxlZCByZXF1ZXN0cyBiZXR0ZXIKICAgKERvbid0IGdvIGludG8gYW4gaW5maW5pdGUgbG9vcCEpCgoyMDA2LTA5LTA3IDA0OjMwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICAgIHNubXBsaWIvbWliLmM6CgogICBORVdTOiBzbm1wbGliIC0gW0JVR1M6IDE1Mzc0NTksIEJVR1M6IDE1NDA3NDVdIEZpeCBtaXNzaW5nIE1JQiBwYXJzaW5nIHRva2VucwoKMjAwNi0wOS0wNyAwNDoyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIE5FV1MsCiAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQKOgoKICAgUmV2ZXJ0IGRlZmF1bHQgYmVoYXZpb3VyIG9mIGNvbnZlbmllbmNlIGFjY2VzcyBjb250cm9sIGRpcmVjdGl2ZXMKICAgdG8gbWF0Y2hpbmcgYWxsIGNvbnRleHQuICBBbiBleHBsaWNpdCBjb250ZXh0IGZpZWxkIHdpbGwgYmUgdGFrZW4KICAgYXMgYW4gZXhhY3QgbWF0Y2gsIHVubGVzcyBpdCBlbmRzIGluICcqJy4KCjIwMDYtMDktMDYgMTA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpZlRhYmxlL2lmVGFibGUuaDoKCiAgIGZpeCBzb21lIG1pc3Npbmcgc3RhdHMgaW4gaWZUYWJsZS9pZlhUYWJsZQoKMjAwNi0wOS0wNiAwNjo0NSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBhZGQgbm90ZSBvbiBleHBlcmltZW50IEZyZWVCU0QvT3BlbkJTRCBpZlhUYWJsZSBzdXBwb3J0CgoyMDA2LTA5LTA2IDA2OjQyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgRnJlZUJEUyBhbmQgT3BlbkJTRCBmb3IgaWYtbWliCgoyMDA2LTA5LTA1IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIGRlYWwgdy9wcmV2IHB0cnMgdG9vCgoyMDA2LTA5LTA1IDA3OjU4ICBkdHMxMgoKICAgKiBORVdTLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IG5ldyBhY2Nlc3MgY29udHJvbCAoYW5kIGNvbnRleHQpIGJlaGF2aW91ci4KCjIwMDYtMDktMDUgMDU6NDkgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQ6CgogICBFeHBsaWNpdGx5IGF1dGhvcmlzZSBhbGwgY29udGV4dHMuCiAgIChUaGlzIHJlc3VsdHMgZnJvbSBhIG1pbm9yIGFsdGVyYXRpb24gaW4gYmVoYXZpb3VyIGZvbGxvd2luZyBhbm90aGVyIGNvZGUKICAgIGNoYW5nZSwgYnV0IGZlZWxzIG1vcmUgc2VjdXJlIHRoYW4gYXV0b21hdGljYWxseSBvcGVuaW5nIHVwIGFsbCBjb250ZXh0cwogICAgYnkgZGVmYXVsdC4gIFRob3VnaCBJJ20gaGFwcHkgdG8gYmUgcGVyc3VhZGVkIG90aGVyd2lzZS4uLikKCjIwMDYtMDktMDUgMDI6NDQgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyAoYWdhaW4pCgoyMDA2LTA5LTA1IDAxOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50X21pYnMuaCwgYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaAo6CgogICBJbmNsdWRlIE5ldC1TTk1QIGV4dGVuc2lvbiBhY2Nlc3MgdGFibGUgKGFuZCBNSUIpIGluIHRoZSBkZWZhdWx0IGJ1aWxkLgoKMjAwNi0wOS0wNSAwMTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgbnNWYWNtQWNjZXNzVGFibGUgbm90IGJlaW5nIGluY2x1ZGVkLgogICAoYW5kIHNpbWlsYXIgZm9yIHVzbVVzZXJUYWJsZSAtIGEgY2xlYW5lciBjaGVjayB0aGFuIGJlZm9yZSkKCjIwMDYtMDktMDUgMDE6MjggIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYywgbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgU3VwcG9ydCBtYW5pcHVsYXRpb24gb2YgdGhlIE5ldC1TTk1QIGV4dGVuc2lvbiBhY2Nlc3MgdGFibGUuCgoyMDA2LTA5LTA1IDAxOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgYm90aCBleGFjdCBhbmQgY29udGV4dCBwcmVmaXggbWF0Y2hlcyBmb3IgdGhlIGNvbnZlbmllbmNlIGRpcmVjdGl2ZXMKICAgKGFzIHdlbGwgYXMgJ2F1dGhhY2Nlc3MnKS4KCjIwMDYtMDktMDUgMDE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygcm93IGNyZWF0aW9uL2RlbGV0aW9uLgogICBTdXBwcmVzcyB2YXJpb3VzIG1pbm9yIHR5cGUgbWlzbWF0Y2hlcy4KCjIwMDYtMDktMDQgMTY6MDcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgKHByZWxpbWluYXJ5KSBpbmZvcm1hdGlvbiBvbiBuZXcgTkVULVNOTVAtVkFDTS1NSUIKCjIwMDYtMDktMDQgMTY6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZSwKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmU6CgogICB0d2VhayAuY3ZzaWdub3JlIGZpbGVzIGZvciBuZXcgdWRwLW1pYi90Y3AtbWliCgoyMDA2LTA5LTA0IDE1OjU1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDYtMDktMDQgMDc6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFRlbGwgYSBmdXNzeSBjb21waWxlciAoUy9XLCBub3QgaHVtYW4pIHRvIHNodXQgdXAuCgoyMDA2LTA5LTA0IDA2OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIGFnZW50L2V4dGVuZC5jLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIERyb3AgdGhlIG9sZCBVQ0QgZXh0ZW5zaWJsZSBtb2R1bGUgZnJvbSB0aGUgZGVmYXVsdCBidWlsZC4KICAgUmVseSBvbiB0aGUgcmV3b3JrZWQgKGNhY2hlZCwgdmFsaWQgc3ludGF4KSAiZXh0ZW5kIiBtb2R1bGUgaW5zdGVhZC4KCjIwMDYtMDktMDQgMDQ6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMKOgoKICAgU3VwcG9ydCByZWdpc3RlcmluZyBWQUNNIGV4dGVuc2lvbnMgaW4gYSBub24tZGVmYXVsdCBjb250ZXh0CiAgIChzdWNoIGFzIHVzZWQgYnkgJ3NubXB0cmFwZCcpCgoyMDA2LTA5LTA0IDA0OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgU3VwcG9ydCBub24tZGVmYXVsdCBjb250ZXh0cyB3aXRoIHRoZSBhdXRoKiBjb252ZW5pZW5jZSBkaXJlY3RpdmVzLgoKMjAwNi0wOS0wNCAwNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBUd2VhayB2YXJpYWJsZSBuYW1lcyB0byBiZSBsZXNzIGNvbmZ1c2luZy4KICAgKCJhdXRodHlwZSIgbm93IGhhcyBhIHNwZWNpZmljIG1lYW5pbmcsIGNvbnRyYXJ5IHRvIHRoZSB1c2UgaGVyZSkuCgoyMDA2LTA5LTAxIDE3OjM0ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBjdnNyb290CgoyMDA2LTA5LTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IC1ZCgoyMDA2LTA5LTAxIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWFrZSBzbm1wZCBzdXBwb3J0IHRoZSAtWSBjb25maWcgZmxhZyBsaWtlIHRoZSBvdGhlciBjb21tYW5kcyBkbwoKMjAwNi0wOS0wMSAxNTozMSAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIFVwZGF0ZSB0byA1LjQuZGV2CiAgIC0gaW50cm9kdWNlICV7bGliY3VycmVudH0KICAgLSB1c2UgbmV3IGRpc21hbi9ldmVudCBuYW1lCiAgIC0gYWRkOiBSRUFETUUuYWl4IFJFQURNRS5vc1ggUkVBRE1FLnRydTY0IFJFQURNRS5pcml4IFJFQURNRS5hZ2VudC1taWJzCiAgICAgUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dAogICAtIGFkZCBuZXcgTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQKCjIwMDYtMDktMDEgMTA6NTggIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBub3RlIG5ldyBtaWIyYy5lbXVsYXRpb24uY29uZgogICAtIG5vdGUgbmV3IGxpbnV4IGlwdjYgYXdhcmUgZGVmYXVsdCBtaWJzCiAgIC0gZXhwYW5kIHNjb3B5IG9mIG5vdGUgb24gZml4ZXMgdG8gbm9uLWxpbnV4IGlwYWRkcmVzcyBzaXplCgoyMDA2LTA5LTAxIDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGFkZCB0Y3AgYW5kIHVkcCBtaWIgdGFibGVzIHRvIGxpbnV4IG1pYklJIG1vZHVsZSBsaXN0CgoyMDA2LTA5LTAxIDEwOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBmaXggYnl0ZW9yZGVyIHByb2JsZW1zCgoyMDA2LTA5LTAxIDEwOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICAtIG9ubHkgbG9nIGVycm9yIG9uY2UgaWYgd2UgY2FuJ3Qgb3BlbiAvcHJvYy9uZXQvdGNwNgogICAtIGFkZCBhYmlsaXR5IHRvIG9ubHkgbG9hZCBpcHY0IGRhdGEKCjIwMDYtMDktMDEgMTA6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgZml4IGJ5dGVvcmRlciBwcm9ibGVtcwoKMjAwNi0wOS0wMSAxMDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gJ2J5dGVzd2FwJyBoZXgtc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFkZHJlc3MKCjIwMDYtMDktMDEgMDc6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIHVkcFRhYmxlLmMsCiAgICAgdmFyX3JvdXRlLmM6CgogICBtb3JlIGlwIGFkZHJlc3Mgc2l6ZSBmaXhlcwoKMjAwNi0wOS0wMSAwNTo0MSAgdGFuZGVycwoKICAgKiBwZXJsLzogVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgYWdlbnQvYWdlbnQueHMKOgoKICAgYWxpZ24gdGhlIG5ldHNubXBfb2lkIHN0cnVjdCBkZWZpbml0aW9uIChvaWQsIHNpemVfdCEpIHdpdGggdGhlIG9uZSBmcm9tIE5ldFNOTVA6Ok9JRAoKMjAwNi0wOS0wMSAwMjo0NCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4LCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnRydTY0OgoKICAgYWRkIG5vdGVzIG9uIElQdjYKCjIwMDYtMDgtMzEgMTc6NDMgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCB0eXBvCgoyMDA2LTA4LTMxIDE3OjE1ICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIE9JRCBsZW4gc2hvdWxkIGJlIGEgc2l6ZV90CgoyMDA2LTA4LTMxIDE1OjQ3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSBjb3JyZWN0IHNvY2thZGRyX3N0b3JhZ2UuW19fXXNzX2ZhbWlseSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdCBvZiB0aGUgY29ycmVzcG9uZGluZyBjb25maWd1cmUgdGVzdC4gTWFrZXMgdGhlIFVEUElQdjYgdHJhbnNwb3J0IGNvZGUgd29yayBvbiBhdCBsZWFzdCBBSVggYW5kIFRydTY0IFVuaXguCgoyMDA2LTA4LTMxIDE1OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhY2NvbmZpZy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc29ja2FkZHJfc3RvcmFnZS5bX19dc3NfZmFtaWx5IHVzZWQgaW4gdGhlIFVEUElQdjYgdHJhbnNwb3J0IGNvZGUKCjIwMDYtMDgtMzEgMTI6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGZpeCBJcEFkZHJlc3MgbGVuZ3RocyBvbiBub24tTGludXggNjRiaXQgcGxhdGZvcm1zCgoyMDA2LTA4LTMxIDAxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBhZGQgbWlzc2luZyBzZW1pY29sb24gKGV2ZW4gb25lLWxpbmUgcGF0Y2hlcyBjYW4gZWFzaWx5IGJyZWFrIHRoZSBidWlsZCA7LSkpCgoyMDA2LTA4LTMwIDE3OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgY292ZXJ0aXkgYnVnIDEyNzogZG91YmxlIGNoZWNrIG5hbWVfcCBwb2ludGVyIGFjdHVhbGx5IGdvdCBmaWxsZWQgYmVmb3JlICB1c2luZyBpdAoKMjAwNi0wOC0zMCAxNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIG1ha2Ugc3VyZSBzbm1wX2xvZ19vcHRpb25zIGNoZWNrcyBmb3IgTlVMTHMgb2YgYXJndiBpbiBpbGxlZ2FsIGNhbGxzIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wOC0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgY292ZXJ0eSBidWcgNTk6IGRvdWJsZSBjaGVjayBzeXN0ZW0gaGFuZGxlcyBpbnQvdWludCBjb252ZXJzaW9ucyBwcm9wZXJseQoKMjAwNi0wOC0zMCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIGNvdmVydHkgYnVnIDE1NTogZnJlZSBmaWxlIHBvaW50ZXIgZHVyaW5nIGlwdjYgZm9yd2FyZGluZwoKMjAwNi0wOC0zMCAxNzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgY292ZXJ0eSBidWcgMTU2OiBmcmVlIHJlc291cmNlcyBkdXJpbmcgbWliIHBhcnNpbmcgZmFpbHVyZXMKCjIwMDYtMDgtMzAgMTc6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGNvdmVydHkgYnVnIDYwOiBkb3VibGUgY2hlY2sgdGhhdCBzeXN0ZW1zIGhhbmRsZSBuZWdhdGl2ZSByZXR1cm5zIHRvIHVuc2lnbmVkIHZhcmlhYmxlcyBwcm9wZXJseQoKMjAwNi0wOC0zMCAwODozNSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBwcmludGluZyBvZiBvcGFxdWUgZmxvYXQgYW5kIGRvdWJsZSBjb21waWxlIHdhcm5pbmdzCgoyMDA2LTA4LTMwIDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgU2ltcGxlIFNFVCBzdXBwb3J0IGZvciB0aGUgTmV0LVNOTVAgVkFDTSBleHRlbnNpb25zLgoKMjAwNi0wOC0zMCAwODoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBQZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIE5ldC1TTk1QIFZBQ00gZXh0ZW5zaW9uIGF1dGh0eXBlcy4KCjIwMDYtMDgtMjkgMTc6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgZ2VuZXJpYyBJUHY2IHN0YWNrIGRldGVjdGlvbiwgZS5nLiBmb3IgU29sYXJpcwoKMjAwNi0wOC0yOSAwOTowNSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBGaXggaW5jb25zaXN0ZW50IG5hbWluZy4KCjIwMDYtMDgtMjkgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgR3VhcmQgYWdhaW5zdCBtaXNzaW5nIChvciBpbmNvbXBsZXRlKSBDUFUgaGlzdG9yeSBzdGF0cy4KCjIwMDYtMDgtMjkgMDY6MTkgIHRhbmRlcnMKCiAgICogbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBmaXggc29tZSBiYXNpYyBzbWlsaW50IGNvbXBsYWludHMKCjIwMDYtMDgtMjkgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaCwKICAgICBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dDoKCiAgIFByb3Zpc2lvbmFsIChyZWFkLW9ubHkpIGltcGxlbWVudGF0aW9uIG9mIGEgTUlCIGZvciB0aGUgTmV0LVNOTVAKICAgYWNjZXNzIGNvbnRyb2wgZXh0ZW5zaW9ucy4KCjIwMDYtMDgtMjkgMDM6MTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEdldC1OZXh0IHByb2Nlc3NpbmcgZGlkbid0IGhhbmRsZSB1cGRhdGluZyB0aGUgaW5kZXggbGlzdCBmb3IgbXVsdGktaW5kZXhlZAogICB0YWJsZXMgcHJvcGVybHkuICBJdCB3b3JrZWQgT0sgZm9yIHRoZSBmaXJzdCBjYW5kaWRhdGUgZm91bmQsIGJ1dCBzdWJzZXF1ZW50CiAgIChiZXR0ZXIpIGNhbmRpZGF0ZXMgb25seSB1cGRhdGVkIHRoZSBmaXJzdCBpbmRleCB2YWx1ZS4KICAgICBUaGlzIGNvZGUgaXMgc2xpZ2h0bHkgbGVzcyBlZmZpY2llbnQsIGJ1dCB3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDYtMDgtMjkgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X2xpbnV4LmMsIHZtc3RhdF9saW51eC5oCjoKCiAgIFNoaXAgb2xkZXIgdm1zdGF0IGltcGxlbWVudGF0aW9uIGNvZGUgLSBhbGxvdyBhZG1pbnMgdGhlIG9wdGlvbiBvZiByZXZlcnRpbmcuCgoyMDA2LTA4LTI5IDAzOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbmxpc3QuYywgY3B1X3N5c2N0bC5jCjoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBzaW5nbGUtQ1BVIHN5c3RlbXMuCiAgIERvbid0IGNyZWF0ZSBuZXcgQ1BVIGVudHJpZXMgd2hlbiBsb2FkaW5nIHN0YXRzLgogICBbRG9uJ3QgY29tbWl0IGZyb20gbW9yZSB0aGFuIG9uZSB3b3JraW5nIHN5c3RlbSwgRGF2ZSFdCgoyMDA2LTA4LTI5IDAyOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEtlZXAgYnJhY2VzIGJhbGFuY2VkIC0gaXQgbWFrZXMgdHJhY2luZyBjb2RlICpzbyogbXVjaCBlYXNpZXIhCgoyMDA2LTA4LTI3IDE0OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgdWRwVGFibGUgcmVxdWlyZXMgL2Rldi9rbWVtIGFjY2VzcyAocm9vdDpzeXN0ZW0pIG9uIEFJWAoKMjAwNi0wOC0yNyAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBob3N0L2hyX3Byb2MuYywKICAgICBob3N0L2hyX3Byb2MuaDoKCiAgIFVzZSBIQUwgQ1BVIGludGVyZmFjZSBmb3IgYm90aCBVQ0Qtc3BlY2lmaWMgYW5kIEhvc3RSZXMgcHJvY2Vzc29yIG1vZHVsZXMuCgoyMDA2LTA4LTI3IDEwOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIEVuc3VyZSB0aGF0IHNvbWUgZm9ybSBvZiBIQUwgQ1BVIG1vZHVsZSBpcyBpbmNsdWRlZCBmb3IgYWxsIHN5c3RlbXMuCgoyMDA2LTA4LTI3IDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbnVsbC5jLCBjcHVfbnVsbC5oOgoKICAgRHVtbXkgSEFMIENQVSBtb2R1bGUsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgdXNlIGFueSBvZiB0aGUKICAgc3VwcG9ydGVkIGludGVyZmFjZXMuCgoyMDA2LTA4LTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgSGFuZGxlIGhvbGVzIGluIHRoZSB0YWJsZSBwcm9wZXJseS4KCjIwMDYtMDgtMjcgMDk6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa2VybmRhdGEuYywKICAgICBjcHVfcGVyZnN0YXQuYywgY3B1X3BzdGF0LmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygc2luZ2xlLUNQVSBzeXN0ZW1zLgogICBEb24ndCBjcmVhdGUgbmV3IENQVSBlbnRyaWVzIHdoZW4gbG9hZGluZyBzdGF0cy4KCjIwMDYtMDgtMjcgMDk6NDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFJlcG9ydCBwcm9jZXNzb3Igc3RhdHVzCgoyMDA2LTA4LTI2IDE2OjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBtYWtlIGF1dG9oZWFkZXIgcHJvdGVjdCBQQUNLQUdFXyogdmFyaWFibGVzCgoyMDA2LTA4LTI1IDE2OjIzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFN2M3VzbWNvbmZpZ2FnZW50LAogICAgIFN2YW55Y29uZmlnOgoKICAgRml4IHNtdXhzb2NrZXQgY29uZmlnIHRvIHBvaW50IHRvIC9zbXV4X3NvY2tldCBpbnN0ZWFkIG9mIC9kZXYvbnVsbCB0byBhdm9pZCByZW1vdmluZyAvZGV2L251bGwgd2hlbiBydW5uaW5nIGFzIHJvb3QuCgoyMDA2LTA4LTI1IDA5OjQzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENsYXJpZnkgZGlzY3Vzc2lvbiBvZiB2aWV3IG1hc2tzLiAgVGhhbmtzIHRvIERvbWluaXF1ZSBCYXN0aWVuLgoKMjAwNi0wOC0yNSAwNzoyMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFsbG93IGZvciB3aGl0ZXNwYWNlIGluIFBlcmwgY2MgKGUuZy4gb24gSVJJWCA2LjUpCgoyMDA2LTA4LTI1IDA2OjU1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHByb3Blcmx5IGNhc3Qgd2hlbiBwcmludGluZyBwb2ludGVycwoKMjAwNi0wOC0yNSAwNjozNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgbmV0c25tcF90cmFwZF9jaGVja19hdXRoKCkgb25seSB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudAoKMjAwNi0wOC0yNSAwNToxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXg6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKMjAwNi0wOC0yNSAwNDo1MSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX3RyYXBkX2NoZWNrX2F1dGgoKQoKMjAwNi0wOC0yNSAwNDo0NiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgI2luY2x1ZGUgIm1pYklJL3ZhY21fY29uZi5oIiBmb3IgdmFjbV9zdGFuZGFyZF92aWV3cwoKMjAwNi0wOC0yNSAwNDozOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIHByaW50IG9pZCBhcyB1bnNpZ25lZCBsb25nCgoyMDA2LTA4LTI1IDAyOjU3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBtYWtlIHN1cmUgd2UgY2FuIGZ1bGZpbGwgZXh0ZXJuYWwgbGlicmFyeSBkZXBlbmRlbmNpZXMKCjIwMDYtMDgtMjUgMDI6NDEgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGluaXRpYWxpemUgdmFyaWFibGVzCgoyMDA2LTA4LTI1IDAyOjMzICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHByb3BlciB0eXBlcyBpbiBmb3JtYXQgc3RyaW5nCgoyMDA2LTA4LTI1IDAxOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICItVXgiIGJlZm9yZSAiLUR4PXgiIGZvciBnY2MgdG8gYXZvaWQgYW5ub3lpbmcgY29tcGlsZXIgd2FybmluZ3MKICAgb24gcGxhdGZvcm1zIHRoYXQgYWxyZWFkeSBkZWZpbmUgeCAodG8gMSkuCgoyMDA2LTA4LTI0IDE3OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgdXNlIG5ldyBzbm1wX2NzdHJjYXQKCjIwMDYtMDgtMjQgMTc6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBJbnRyb2R1Y2Ugc25tcF9jc3RyY2F0IHRoYXQgdGFrZXMgYSAoY2hhciAqKSBhcyB0aGUgbGFzdCBhcmd1bWVudCwKICAgY2FzdHMgaXQgdG8gYSAoY29uc3QgdV9jaGFyICopIGFuZCBjYWxscyBzbm1wX3N0cmNhdC4gU2ltcGxpZmllcyBjb2RlCiAgIGFuZCBmaXhlcyBhICpsb3QqIG9mIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNi0wOC0yNCAxNjowNCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgcGVybC9TTk1QL1NOTVAueHMsCiAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgLSBwb2ludGVyIHNpemUgZml4ZXMgZnJvbSBkYXJpeAogICAtIGluaXRpYWxpemUgdmFyaWFibGVzCiAgIC0gcHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcKCjIwMDYtMDgtMjQgMTU6NDUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlCgoyMDA2LTA4LTI0IDEzOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA4LTI0IDEzOjIxICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBIQVZFX1BFUkxfRVZBTF9QViB1bmRlZiBmb3Igd2hvZXZlciBmb3Jnb3QgdG8gYWRkIGl0CgoyMDA2LTA4LTI0IDEzOjE5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBjb25maWdfZXJyb3IgYW5kIGNvbmZpZ193YXJuaW5nIGVtcHR5IG1hY3JvcwoKMjAwNi0wOC0yNCAwOToxNCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nLgoKMjAwNi0wOC0yNCAwODo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBLZWVwIHByaW50aW5nIHNvbWUga25vdy10by1iZS1zbWFsbCBzaXplX3QgdmFsdWVzIGFzIGludGVnZXJzLCBidXQgcHJvcGVybHkKICAgY2FzdCB0aGVtIHRvIHF1aWV0IHRoZSBjb21waWxlci4KCjIwMDYtMDgtMjQgMDc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICB1c2UgbmV3IGludGVyZmFjZV9zeXNjdGwgZm9yIE9wZW5CU0QgMiwgRnJlZUJTRCA0LTYKCjIwMDYtMDgtMjQgMDc6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2Vfb3BlbmJzZC5jLAogICAgIGludGVyZmFjZV9zeXNjdGwuYywgaW50ZXJmYWNlX3N5c2N0bC5oOgoKICAgcmVtb3ZlIE9TIHNwZWNpZmljIGZpbGUgaW4gZmF2b3Igb2YgbWV0aG9kIHNwZWNpZmljIGZpbGVzCgoyMDA2LTA4LTI0IDA1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa3N0YXQuYywgY3B1X25saXN0LmMKLCBjcHVfcHN0YXQuYywgY3B1X3N5c2N0bC5jOgoKICAgSW5jbHVkZSBkZXNjcmlwdGlvbnMgZm9yIGluZGl2aWR1YWwgQ1BVIGVudHJpZXMuCgoyMDA2LTA4LTI0IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa2VybmRhdGEuaCwKICAgICBjcHVfa2VybmRhdGEuYzoKCiAgIEltcGxlbWVudGF0aW9uIGZvciBEeW5peCAoYW5kIHNpbWlsYXIpIHN5c3RlbXMuCgoyMDA2LTA4LTI0IDA1OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jOgoKICAgUmVtZW1iZXIgdGhlIG51bWJlciBvZiBDUFVzIGRldGVjdGVkLgogICAoUTogd2hhdCB0byBkbyBpZiB0aGlzIGNoYW5nZXM/KQoKMjAwNi0wOC0yMyAxNzozMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZy4gRml4ZXMgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNi0wOC0yMyAxNzoxMiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBBQ19QUk9HX0VHUkVQIGFuZCB1c2UgJEVHUkVQIGluc3RlYWQgb2YgZWdyZXAKCjIwMDYtMDgtMjMgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IHN0cnVjdCB0eXBlIGluIGNhc2UKCjIwMDYtMDgtMjMgMTY6MzUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNi0wOC0yMyAxNjozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBiYWNrIGNoZWNrIGZvciBzZWQKCjIwMDYtMDgtMjMgMTM6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHNraXAgaWZDb25uZWN0b3JQcmVzZW50L2lmTGlua1VwRG93blRyYXBFbmFibGUgaWYgbm8gZGF0YQoKMjAwNi0wOC0yMyAxMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgY29ycmVjdCBzY2FsZSB3aGVuIHVzaW5nIGlmU3BlZWQgYXMgaWZIaWdoU3BlZWQKCjIwMDYtMDgtMjMgMTE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHVzZSBpZlNwZWVkIGlmIGlmSGlnaFNwZWVkPT0wCgoyMDA2LTA4LTIzIDA4OjUzICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICAgIGRhdGFfbGlzdC5jLCBrZXl0b29scy5jLCBtaWIuYywgb2lkX3N0YXNoLmMKLCBzY2FwaS5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmMsIHRleHRfdXRpbHMuYywKICAgICB0b29scy5jOgoKICAgQ2FzdCBhd2F5IGNvbXBpbGVyIHdhcm5pbmdzL2Vycm9ycyBhdCBhIGxvdCBvZiBwbGFjZXMuCgoyMDA2LTA4LTIzIDA2OjAyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgYWN0aXZhdGUgY3B1IEhBTCBjb2RlIGZvciBBSVggNC54CgoyMDA2LTA4LTIzIDAzOjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3QgY2hlY2sgdHdpY2UgZm9yIHNlZC4KCjIwMDYtMDgtMjMgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgTW9yZSBwb3J0YWJsZSBoYW5kbGluZyBvZiBzdHJpbmcgYXNzaWdubWVudHMuCiAgIFJlbW92ZSBDKystc3R5bGUgY29tbWVudHMuCgoyMDA2LTA4LTIzIDAzOjA3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IG1vcmUgd2hpdGVzcGFjZSBpc3N1ZXMgaW4gbWliIG1vZHVsZSBjb25maWcKCjIwMDYtMDgtMjIgMTQ6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBoYXJkd2FyZS9jcHUuaDoKCiAgIGFjdGl2YXRlIG1lbS9jcHUgSEFMIGNvZGUgZm9yIEFJWAoKMjAwNi0wOC0yMiAwOToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jOgoKICAgVXNlIGNvcnJlY3QgQVBJIGNhbGxzLgoKMjAwNi0wOC0yMiAwNzowMCAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQ6CgogICBVcGRhdGUgZm9yIDUuNCBhbmQgZW1iZWRkZWQgUGVybC4KCjIwMDYtMDgtMjIgMDY6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9rc3RhdC5oLCBjcHVfcGVyZnN0YXQuaAosIGNwdV9wc3RhdC5oOgoKICAgTWlzc2luZyBIQUwgQ1BVIEFQSS1zcGVjaWZpYyBoZWFkZXIgZmlsZXMKCjIwMDYtMDgtMjIgMDY6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBIYW5kbGUgY2hhbmdlIGludHJvZHVjZWQgd2l0aCBOZXRCU0QgMy4wLgogICBzeXNjdGwoIEtFUk5fQ1BfVElNRSApIG5vdyByZXR1cm5zIDY0LWJpdCB2YWx1ZXMuCgoyMDA2LTA4LTIyIDA1OjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIEV2ZW50LU1JQiBtb2R1bGUgdGVybWlub2xvZ3kuCgoyMDA2LTA4LTIyIDAzOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgSW1wcm92ZSByb2J1c3RuZXNzIG9mIHRoZSBlbWJlZGRlZCBwZXJsIGNoZWNrcy4KCjIwMDYtMDgtMjIgMDI6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDaGFuZ2UgIiNpZiBmcmVlYnNkNCIgdG8gIiNpZmRlZiBmcmVlYnNkNCIgdG8gbWF0Y2ggY3VycmVudCAtRGZyZWVic2Q0PWZyZWVic2Q0LgoKMjAwNi0wOC0yMiAwMjoyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3cnVuLmMKLCBtaWJJSS9yb3V0ZV9oZWFkZXJzLmg6CgogICBDaGFuZ2UgIiNpZiBzb2xhcmlzMiIgdG8gIiNpZmRlZiBzb2xhcmlzMiIgdG8gbWF0Y2ggY3VycmVudCAtRHNvbGFyaXMyPXNvbGFyaXMyLgoKMjAwNi0wOC0yMSAxNzo0NyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICItVSIgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkIHdpdGggU3VuJ3MgY2MuCgoyMDA2LTA4LTIxIDE3OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgUGVybF9ldmFsX3B2ICh0aGUgdXBwZXItY2FzZSB2YXJpYW50KSBuZWVkcyB0aHJlZSBhcmd1bWVudHMgaW5zdGVhZCBvZiB0d28uCgoyMDA2LTA4LTIxIDE3OjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgWWV0IGFub3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIFBBUlRJQUxUQVJHRVRPUyAoZS5nLiBzb2xhcmlzMikgZGVmaW5pdGlvbnMuCgoyMDA2LTA4LTIxIDE2OjMzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVwbGFjZW1lbnQgZm9yIG5ld1NWdXYoKSBiZWNhdXNlIHBlcmwgZGlkbid0IGhhdmUgaXQgdW50aWwgNS42LjAKCjIwMDYtMDgtMjEgMTU6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZXdvcmRpbmcgb2YgcGVybCBjYyBjaGVjayBlcnJvcnMuCgoyMDA2LTA4LTIxIDE0OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGFuZ2UgdGhlIE9TIGRlZmluZSB0byByZWRlZmluZSBhcyB0aGUgc2FtZSBuYW1lCgoyMDA2LTA4LTIxIDA5OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWRkIHBlcmwgY2MgY2hlY2tzIGZvciBlbWJlZGRlZCBwZXJsCiAgIC0gaW50cm9kdWNlIC0tZGlzYWJsZS1wZXJsLWNjLWNoZWNrcyB0byBkaXNhYmxlIHRoZXNlIHRlc3RzCgoyMDA2LTA4LTIxIDA5OjQyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZS5pbgoKMjAwNi0wOC0yMSAwMzo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUKICAgLSByZW1vdmUgb2Jzb2xldGUgQUNfRVhFRVhUCgoyMDA2LTA4LTIxIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIEFjdGl2ZSBIQUwgQ1BVIG1vZHVsZSBmb3IgKkJTRCBzeXN0ZW1zLgoKMjAwNi0wOC0yMSAwMjoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFJldHJpZXZlIGFuZCByZXBvcnQgbWVtb3J5LXJlbGF0ZWQgc3RhdGlzdGljcy4KICAgKFN0aWxsIG5vdCBjb252aW5jZWQgdGhlc2UgcmVhbGx5IGJlbG9uZyBoZXJlLi4uLikKCjIwMDYtMDgtMjEgMDI6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBSZXRyaWV2ZSBDUFUgc3RhdHMgY29ycmVjdGx5LgoKMjAwNi0wOC0xOCAxNToyOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBwZXJsIC1WOmNjCgoyMDA2LTA4LTE4IDA5OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXQuaDoKCiAgIFVzZSB0aGUgSEFMIENQVSBtb2R1bGVzIHRvIGltcGxlbWVudCBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzLgogICBJbml0aWFsbHkgb25seSB1c2VkIGJ5IExpbnV4IHN5c3RlbXMsIGJ1dCB0aGlzIGNvZGUgaXMgbm93CiAgIGZ1bmRhbWVudGFsbHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50LgoKMjAwNi0wOC0xOCAwODo1OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaDoKCiAgIEFkZGl0aW9uYWwgZmllbGRzIGZvciBDUFUtcmVsYXRlZCAoc29ydC1vZikgaGlzdG9yeSwgZXRjLgoKMjAwNi0wOC0xOCAwODo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1LmMsIGNwdV9rZXJuZGF0YS5jLAogICAgIGNwdV9rc3RhdC5jLCBjcHVfbGludXguYywgY3B1X25saXN0LmMsCiAgICAgY3B1X25saXN0LmgsIGNwdV9wZXJmc3RhdC5jLCBjcHVfcHN0YXQuYywKICAgICBjcHVfc3lzY3RsLmMsIGNwdV9zeXNjdGwuaDoKCiAgIFByb3Zpc2lvbmFsIGhhcmR3YXJlLWFic3RyYWN0aW9uIG1vZHVsZXMgZm9yIGFzc29ydGVkIENQVSBzdGF0aXN0aWNzLgogICAoaW5jbHVkaW5nIG11bHRpLUNQVSBpbmZvcm1hdGlvbikKCjIwMDYtMDgtMTggMDg6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgeWV0IG1vcmUgcG90ZW50aWFsIHBlcmwgZml4ZXMKCjIwMDYtMDgtMTggMDg6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbW9yZSBwb3RlbnRpYWwgcGVybCBmaXhlcwoKMjAwNi0wOC0xOCAwNzo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHVzZSAicGVybCAtVjpjYyIgdG8gZmluZCBQZXJsJ3MgY2MKCjIwMDYtMDgtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY29tbWVudGluZyBhbmQgYSBiaXQgb2Ygc3BhY2luZyBpbiB0aGUgbW9kdWxlIGxpc3QgY29kZQoKMjAwNi0wOC0xNyAxNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFjY29uZmlnLmgsCiAgICAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgbWFrZSBjb25maWd1cmUgYmFpbCB3aGVuIGVtYmVkZGVkIHBlcmwgZnVuY3Rpb24gY2FuIG5vdCBiZSBmb3VuZCA7IGZpeCB0aGUgZmFjdCB0aGF0IDMgZnVuY3Rpb25zIGFyZSBuZWVkZWQgbm90IDIgYW5kIHdvcmsgYXJvdW5kIGF1dG9jb25mIHVwcGVyLWNhc2Ugb25seSBkZWZpbmVzIHRoYXQgY2F1c2VzIHRoZSBleGlzdGluZyBicm9rZW4tcGVybCBwcm9ibGVtOyBORVdTIC0gcGVybDogZml4IHRoZSAnYnJva2VuIHBlcmwnIGlzc3VlIHdpdGggZW1iZWRkZWQgcGVybAoKMjAwNi0wOC0xNyAxNjoxNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGJzZGkzLmgsIGJzZGk0LmgsIGRhcndpbi5oCiwgZGFyd2luNy5oLCBkeW5peC5oLCBmcmVlYnNkMy5oLAogICAgIGZyZWVic2Q0LmgsIGZyZWVic2Q1LmgsIGZyZWVic2Q2LmgsIGdlbmVyaWMuaAosIGhwdXguaCwgbWluZ3czMm1zdmMuaCwgbmV0YnNkLmgsCiAgICAgb3BlbmJzZC5oLCBvc2Y1Lmg6CgogICAiI2RlZmluZSB4IHgiIGluc3RlYWQgb2YgIiNkZWZpbmUgeCAxIiBmb3IgYWxsIHBsYXRmb3JtIG5hbWVzCgoyMDA2LTA4LTE3IDA4OjQ0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNDk6IHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKCjIwMDYtMDgtMTcgMDg6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIERyb3AgRGlzTWFuIEV2ZW50IE1JQiByZS13cml0ZSB3YXJuaW5nLgoKMjAwNi0wOC0xNyAwODoxNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTU5OiBwb3RlbnRpYWwgcmVzb3VyY2UgbGVhayBhZnRlciBtYWxsb2MgZmFpbHVyZQoKMjAwNi0wOC0xNyAwODowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYwosIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEJVRzogQ292ZXJpdHkgIzU2OiBkb24ndCBjb250aW51ZSBpZiBtYWxsb2MgZmFpbHMKCjIwMDYtMDgtMTcgMDc6NTAgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBCVUc6IENvdmVyaXR5ICM1NjogZG9uJ3QgY29udGludWUgYWZ0ZXIgZmFpbGVkIG1hbGxvYwoKMjAwNi0wOC0xNyAwNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNzQ6IGRvbid0IHJldHVybiBwdHIgdG8gZnJlZWQgbWVtb3J5CgoyMDA2LTA4LTE3IDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIEZpeCB2YXJpYWJsZSB0eXBlcyB0byBtYXRjaCBwYXJhbWV0ZXIgdXNhZ2UuICBTcG90dGVkIGJ5IFNjb3R0IE1veW5lcy4KCjIwMDYtMDgtMTYgMTk6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGlzc3VlIHdpdGggT1MgbmFtZSBiZWluZyBkZWZpbmVkIGFzIDEKCjIwMDYtMDgtMTYgMTY6MDggIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICB1cGRhdGUgZm9yIHJld29ya2VkIFNvbGFyaXMgaGVhZGVycwoKMjAwNi0wOC0xNSAyMjo1NCAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wZC44LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA2LTA4LTE1IDE0OjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBGaXggZW1haWwgYWRkcmVzcwoKMjAwNi0wOC0xNSAwODo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjbGVhbiB1cCB0aGUgdG1wIGNyZWF0ZWQgZmlsZQoKMjAwNi0wOC0xNSAwNzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXhlZCBjb25maWdfYXJjaF9yZXF1aXJlCgoyMDA2LTA4LTE1IDA3OjI2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBmb3JjZSAiI3VuZGVmIElGTkVUX05FRURTX0tFUk5FTCIgb24gRnJlZUJTRCA1Lnggb25seQoKMjAwNi0wOC0xNSAwNzowNyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IHNvbGFyaXMyLjEwLmgsIHNvbGFyaXMyLjcuaAosIHNvbGFyaXMyLjguaCwgc29sYXJpczIuOS5oOgoKICAgcmVtb3ZlIG9ic29sZXRlIGhlYWRlciBmaWxlcwoKMjAwNi0wOC0xNSAwNToxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIGF2b2lkIGNvbW1lbnQgaW5zaWRlIGNvbW1lbnQKCjIwMDYtMDgtMTUgMDE6NDggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCjIwMDYtMDgtMTQgMjA6MjUgIGhhcmRha2VyCgogICAqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIENsZWFuZWQgdXAgdGhlIGRlYnVnZ2luZyBjb2RlIGZvciB0aGUgbW9kdWxlIHNlY3Rpb24KICAgICAtIEFkZGVkIGEgQUNfTVNHX01PRFVMRV9EQkcgbWFjcm8gdG8gY2xlYW4gdXAgdGhlIHppbGxpb25zIG9mIGlmcwogICAtIFJld29ya2VkIHRoZSBtNCBxdW90aW5nIG9mIHRoZSBzZWN0aW9uIHRvIG9ubHkgY2hhbmdlcXVvdGUgd2hlbgogICAgIGFjdHVhbGx5IG5lZWRlZCwgcmF0aGVyIHRoYW4gZG9pbmcgdGhlIHJldmVyc2UgYW5kIGhhdmluZyB0byBjaGFuZ2UKICAgICB0byAibm9ybWFsIiBxdW90aW5nIHdoZW4gYSBtYWNybyBjYWxsIGlzIG5lZWRlZC4KCjIwMDYtMDgtMTQgMTY6MjkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBmcmVlYnNkNC5oLCBmcmVlYnNkNS5oLAogICAgIGZyZWVic2Q2Lmg6CgogICBzaW1wbGlmeS9hZ2dyZWdhdGUgRnJlZUJTRCBoZWFkZXJzCgoyMDA2LTA4LTE0IDE1OjU3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogc29sYXJpcy5oLCBzb2xhcmlzMi4zLmgsCiAgICAgc29sYXJpczIuNC5oLCBzb2xhcmlzMi41LmgsIHNvbGFyaXMyLjYuaDoKCiAgIFJld29yayBvZiBoZWFkZXIgZmlsZXMgZm9yIFNvbGFyaXMuIHNvbGFyaXMuaCBub3cgY292ZXJzIFNvbGFyaXMgNyBhbmQgdXAgKGluY2x1ZGluZyBhbnkgZnV0dXJlIHZlcnNpb25zKSB3aGlsZSBzb2xhcmlzMi5bMy02XS5oIGNvdmVycyBsZWdhY3kgc3VwcG9ydC4KCjIwMDYtMDgtMTQgMTM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZQoKMjAwNi0wOC0xNCAxMzoyNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHVwZGF0ZWQgVUNEIHJlZmVyZW5jZXMgdG8gTmV0LVNOTVAsIHVwZGF0ZWQgY29udGFjdCBpbmZvCgoyMDA2LTA4LTE0IDEzOjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBOZXcgY29uZmlndXJlIGJhc2VkIGRlZmF1bHRfbW9kdWxlcy5oIGZpbGUgdG8gZGVjaWRlIHdoaWNoIG1vZHVsZXMgdG8KICAgYnVpbGQgaW50byB0aGUgYWdlbnQuCiAgIE5FV1M6IHNubXBkIC0tIEFnZW50IGJ1aWxkcyBkZWZhdWx0IG1vZHVsZSBsaXN0IGZyb20gYSBkZWZhdWx0X21pYnMuaCByYXRoZXIgdGhhbiBhIGhhcmQgY29kZWQgY29uZmlndXJlIGxpc3QKCjIwMDYtMDgtMTQgMTM6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICB1cGRhdGVkIHJlZmVyZW5jZXMgdG8gVUNEIHRvIE5ldC1TTk1QLCB1cGRhdGVkIGNvbnRhY3QgaW5mbwoKMjAwNi0wOC0xMSAxODoxNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEludHJvZHVjZSAtLXdpdGgtYWdlbnR4LXNvY2tldD1GSUxFIGNvbmZpZ3VyZSBvcHRpb24uIEhlbHBzIHBhY2thZ2VycyB0byAqcHJvcGVybHkqIGN1c3RvbWl6ZSB0aGF0IHBhdGggKG5vdCBlbmNvdXJhZ2VkLCBidXQgcXVpdGUgY29tbW9uKS4KCjIwMDYtMDgtMTEgMDc6NTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHZzbnByaW50ZigpIG5lZWRzIHRvIGJlIGZvbGxvd2VkIGJ5IHZhX2VuZAoKMjAwNi0wOC0xMSAwNjo0NSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZG9uJ3QgY2FsbCB2YV9lbmQoKSBpZiB3ZSd2ZSBvbmx5IG1lbWNweSgpZWQKCjIwMDYtMDgtMTEgMDI6NTkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHNpbXBsZSBhdHRlbXB0IHRvIGZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIHZhX2NvcHkoKSBidWlsZCBpc3N1ZXMKCjIwMDYtMDgtMTAgMDc6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlcG9ydCBhIGZhaWx1cmUgdG8gYnVpbGQgdGhlIFBEVS4gIChSZWYgQnVnICMxMzk5MzcwKQoKMjAwNi0wOC0xMCAwMTo1OCAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFdpdGggZmVhciBhbmQgdHJlcGlkYXRpb24sIHJlbW92ZSB0aGUgd2FybmluZ3MgYWdhaW5zdCB1c2Ugb2YgQWdlbnRYLgogICBEb29tZWQsIHdlJ3JlIGFhYWFsbCBkb29vb29tZWQuLi4uCgoyMDA2LTA4LTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L01BTklGRVNUOgoKICAgdXBkYXRlZCB0byBjb3JyZWN0IGxpc3QKCjIwMDYtMDgtMDkgMTA6MTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBhbm90aGVyIHBhc3MgYXQgcGVybC9DUEFOIHNwZWNpZmljIHZlcnNpb25pbmcgY2hlY2tzCgoyMDA2LTA4LTA5IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgYWxsb3cgZm9yIHZlcnkgbWlub3IgZGV2aWF0aW9ucyBpbiBwZXJsIENQQU4gc291cmNlIHZlcnNpb25zIGZyb20gbmV0LXNubXAgdmVyc2lvbnMKCjIwMDYtMDgtMDkgMDk6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBtYWpvciB1cGRhdGUgZm9yIENQQU4gcmVsZWFzZQoKMjAwNi0wOC0wOSAwOTo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgbWF0Y2ggNS4zIHRyZWUgZm9yIG9yZGVyaW5nCgoyMDA2LTA4LTA5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICB1cGRhdGUgZm9yIHJlY2VudCBuZWVkZWQgdGVzdGluZyBmaWxlcwoKMjAwNi0wOC0wOCAxNzo1MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGJ1aWxkIGZpeAoKMjAwNi0wOC0wOCAxNToxNiAgdGFuZGVycwoKICAgKiBhY2luY2x1ZGUubTQ6CgogICBNb3ZlIG91ciBvd24gbTQgbWFjcm9zIGZyb20gYWNsb2NhbC5tNCBpbnRvIGFjaW5jbHVkZS5tNCBhbmQgcHJvcGVybHkgcXVvdGUgdGhlbS4gRm9sbG93cyBsaWJ0b29sL2F1dG9tYWtlIHJlY29tbWVuZGF0aW9ucyBhbmQgYWxsb3dzIHRvIHJlZ2VuZXJhdGUgYWNsb2NhbC5tNCAoY29udGFpbmluZyBsaWJ0b29sLm00KSBieSBjYWxsaW5nIGFjbG9jYWwgd2hpY2ggSSd2ZSBqdXN0IGRvbmUuIEluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCAjMjEuCgoyMDA2LTA4LTA4IDE1OjA3ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIG1pbm9yIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA4LTA4IDE1OjAyICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQ6CgogICBNb3ZlIG91ciBvd24gbTQgbWFjcm9zIGZyb20gYWNsb2NhbC5tNCBpbnRvIGFjaW5jbHVkZS5tNCBhbmQgcHJvcGVybHkgcXVvdGUgdGhlbS4gRm9sbG93cyBsaWJ0b29sL2F1dG9tYWtlIHJlY29tbWVuZGF0aW9ucyBhbmQgYWxsb3dzIHRvIHJlZ2VuZXJhdGUgYWNsb2NhbC5tNCAoY29udGFpbmluZyBsaWJ0b29sLm00KSBieSBjYWxsaW5nIGFjbG9jYWwgd2hpY2ggSSd2ZSBqdXN0IGRvbmUuIEluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCAjMjEuYWNpbmNsdWRlLm00CgoyMDA2LTA4LTA4IDA2OjE4ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOC0wOCAwNjoxOCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIEhBVkVfTElCTk0gaW4gb3JkZXIgdG8gbWFrZSBhdXRvaGVhZGVyIHdvcmsgYWdhaW4KCjIwMDYtMDgtMDcgMTU6NTMgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUKLCBORVdTLCBsdG1haW4uc2g6CgogICBsaWJ0b29sIHVwZGF0ZSB0byAxLjUuMjIgKGZyb20gMS40KS4gU3VwZXJzZWRlcyBwYXRjaCAxNDk2OTQ1IGFuZCBmaXhlcyBidWcgMTUxODExNyAocHJvYmFibHkgcGx1cyBhIGZldyBtb3JlKS4KCjIwMDYtMDgtMDcgMDg6MzMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFscmVhZHkgcmFuZG9taXplIHRoZSBpbml0aWFsIHBvcnQgd2UgdHJ5LiBMb3dlcnMgdGhlIGNoYW5jZSBvZiBjb2xsaXNpb25zIGlmIG11bHRpcGxlIHRlc3Qgc3VpdGVzIHJ1biBpbiBwYXJhbGxlbC4KCjIwMDYtMDgtMDcgMDU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8ga2VlcCBjb21waWxlciBoYXBweQoKMjAwNi0wOC0wNyAwMzowMyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggdHlwby4gIFNwb3R0ZWQgYnkgTGVvIExlaQoKMjAwNi0wOC0wNSAxNzowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jOgoKICAgQnVpbGQgZml4ZXMgZm9yIEFJWCBIT1NULVJFU09VUkNFUy1NSUIgc3VwcG9ydAoKMjAwNi0wOC0wNSAxMjoxNyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwZXJsLnNvIHRvIExEX1JVTl9QQVRICgoyMDA2LTA4LTA0IDE1OjM2ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEU0NTAgcmVwb3J0aW5nIFBTIHRlbXBzIGFzIHZvbHRhZ2UsIG90aGVyIHByb2JsZW1zCgoyMDA2LTA4LTAzIDE4OjAyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgb3ZlcnJpZGUgTERfUlVOX1BBVEggZm9yIHRoZSBwZXJsIG1vZHVsZXMgdG8gYXZvaWQgZGVwZW5kZW5jaWVzIG9uIHRoZSBidWlsZCBkaXJlY3RvcnkgKHBhdGNoIGZyb20gZGFyaXgpCgoyMDA2LTA4LTAxIDA0OjQzICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBvbmUgbW9yZSBjb3JyZWN0aW9uCgoyMDA2LTA3LTMxIDIyOjUyICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA2LTA3LTMxIDE2OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBmaXggYSB0ZXN0IHRoYXQgbWF5IHN1Y2NlZWQgd2hlbiBpdCBzaG91bGRuJ3QKCjIwMDYtMDctMzEgMTY6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGdldHRhYmxlIHBhdGNoCgoyMDA2LTA3LTMxIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCBnZXRidWxrIGF0IGVuZC1vZi1taWJ2aWV3IGJvdW5kYXJpZXMKCjIwMDYtMDctMzEgMTU6NDQgIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICB1cGRhdGUgYWdhaW4gdG8gbW9zdCByZWNlbnQKCjIwMDYtMDctMzEgMTU6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSB0aGUgbGF0ZXN0IHZlcnNpb24uCgoyMDA2LTA3LTMxIDE1OjQwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdmVyc2lvbiB0YWcgZG94eWdlbiBmaWxlcwoKMjAwNi0wNy0zMSAxNTozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMDctMzEgMTM6MzEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgc25tcHRyYXBkIGF1dGhvcml6YXRpb24gdW5jb25kaXRpb25hbGx5IG9mIHVzaW5nIEFnZW50WCAoZml4ZXMgYnVnIDE1Mjc2NjEpCgoyMDA2LTA3LTMxIDA3OjI1ICBtYXJ6CgogICAqIGRvYy9yZmMvOiBhZ2VudHgvcmZjMjc0MS50eHQsIG1pc2MvcmZjMzUxMi50eHQsCiAgICAgbWlzYy9yZmMzNTg0LnR4dCwgc21pVjIvcmZjMjU3OC50eHQsCiAgICAgc21pVjIvcmZjMjU3OS5lcnJhdGEsIHNtaVYyL3JmYzI1NzkuZXJyYXRhfiwKICAgICBzbWlWMi9yZmMyNTc5LnR4dCwgc21pVjIvcmZjMjU4MC50eHQsCiAgICAgc25tcFYxL3JmYzExNTUudHh0LCBzbm1wVjEvcmZjMTE1Ny50eHQsCiAgICAgc25tcFYxL3JmYzEyMTIudHh0LCBzbm1wVjEvcmZjMTIxMy50eHQsCiAgICAgc25tcFYyL3JmYzE5MDEudHh0LCBzbm1wVjIvcmZjMTkwMi50eHQsCiAgICAgc25tcFYyL3JmYzE5MDMudHh0LCBzbm1wVjIvcmZjMTkwNC50eHQsCiAgICAgc25tcFYyL3JmYzE5MDUudHh0LCBzbm1wVjIvcmZjMTkwNi50eHQsCiAgICAgc25tcFYyL3JmYzE5MDcudHh0LCBzbm1wVjIvcmZjMTkwOC50eHQsCiAgICAgc25tcFYyL3JmYzIwODkudHh0LCBzbm1wVjMvcmZjMzQxMC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTAudHh0LCBzbm1wVjMvcmZjMzQxMS50eHQsCiAgICAgc25tcFYzL3JmYzM0MTIudHh0LCBzbm1wVjMvcmZjMzQxMy5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTMudHh0LCBzbm1wVjMvcmZjMzQxNC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTQudHh0LCBzbm1wVjMvcmZjMzQxNS5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTUudHh0LCBzbm1wVjMvcmZjMzQxNi50eHQsCiAgICAgc25tcFYzL3JmYzM0MTcudHh0LCBzbm1wVjMvcmZjMzQxOC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTgudHh0OgoKICAgYWRkaW5nIHJmY3MgYW5kIGVycmF0YSB0byBkaXN0cmlidXRpb24KCjIwMDYtMDctMzEgMDU6NDMgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgRG9uJ3QgY2F0Y2ggIi4uLiBzbm1wbmV0c3RhdCBmaW5kcyAuLi4iICh0ZXN0IDU4KSBhcyBhbiBlcnJvci4KCjIwMDYtMDctMzAgMTc6MjggIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2F0Y2ggIlBlcm1pc3Npb24gZGVuaWVkIiBlcnJvcnMsIGUuZy4gZHVyaW5nICJtYWtlIGluc3RhbGwiLgoKMjAwNi0wNy0zMCAxNjowOCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjYXRjaCAiQ2FuJ3QgZmluZCAuLi4iIGVycm9ycywgZS5nLiBmcm9tIGxkCgoyMDA2LTA3LTMwIDE1OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBwYXNzIExERkxBR1MgdG8gYWxsb3cgZm9yIG5vbi1zdGFuZGFyZCBsaWJjcnlwdG8gbG9jYXRpb24KCjIwMDYtMDctMjkgMTY6NTggIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAoY29ycmVjdGx5KSBtYWtlIHVzZSBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIFNOTVBfU1RST1JOVUxMKHgpCgoyMDA2LTA3LTI5IDE2OjE4ICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgbWFrZSB1c2Ugb2YgcmVjZW50bHkgaW50cm9kdWNlZCBTTk1QX1NUUk9STlVMTCh4KQoKMjAwNi0wNy0yOCAwNToyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTdXBwb3J0IHNldHRpbmcgdGhlIHBlcnNpc3RlbnQgbWFzayB2aWEgY29uZmlndXJlLiAgKGJhc2VkIG9uIFBhdGNoICMxNDM3Mzg1KQoKMjAwNi0wNy0yOCAwNDo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICctYXMtbmVlZGVkJyBzdXBwb3J0IGZvciBsaW5raW5nIGxpYnJhcmllcy4gIChQYXRjaGVzICMxMzk4ODczICYgMTQ5MzUyMikKCjIwMDYtMDctMjggMDI6MzkgIGR0czEyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBKdW1ibyBwYXRjaCBmb3IgaW1wcm92ZWQgQUlYIDUueCBzdXBwb3J0LiAgKFBhdGNoICMxNDg2MzA3KQogICBOb3RlIHRoYXQgdGhlIG1lbW9yeS1yZWxhdGVkIHByb2Nlc3NpbmcgKGhvc3QvaHJfZnN0b3JhZ2UuYykKICAgaXMgbm93IG1vc3RseSBoYW5kbGVkIGJ5IGhhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMKCjIwMDYtMDctMjcgMTI6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgcGF0Y2ggZnJvbSBKdWxpZW4gUGlub24gdG8gZml4IGEgZmV3IHRrbWliIHByb2JsZW1zCgoyMDA2LTA3LTI3IDA4OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFN1cHBvcnQgZm9yIEhGUyBzeXN0ZW1zLCBwbHVzIE5GUyBmaXhlcyBmb3IgRGFyd2luLiAgKFBhdGNoICMxNTIwMjg5KQoKMjAwNi0wNy0yNyAwNjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQcmV2ZW50IHBvdGVudGlhbCBjcmFzaCBpbiBEYXJ3aW4uICAoUGF0Y2ggIzE1MjAyODYpCgoyMDA2LTA3LTI3IDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIFN1cHBvcnQgJy0td2l0aG91dC1rbWVtLXVzYWdlJyBvbiBub24tTGludXggc3lzdGVtcy4gIChQYXRjaCAjMTUyMDI3OCkKCjIwMDYtMDctMjcgMDU6MjUgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbmNsdWRlICdwa2NzJyBpbiB0aGUgbGlzdCBvZiBmaWxlcyB0byBjb21waWxlLiAgKFBhdGNoICMxNTE0ODY3KQoKMjAwNi0wNy0yNyAwNToxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEFjY2VwdCAtWiAwIHZhbHVlcyBmb3IgZW5naW5lQm9vdC9lbmdpbmVUaW1lLiAgKFBhdGNoICMxNTEwMDMyKQoKMjAwNi0wNy0yNyAwNDozNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFN1cHBvcnQgcnVubmluZyB0cmFwIHJlY2VpdmVyIGFzIG5vbi1yb290IHVzZXIvZ3JvdXAuICAoUGF0Y2ggIzE0OTc0NjcpCgoyMDA2LTA3LTI3IDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBBdHRlbXB0IHRvIHVzZSB0aGUgbW9zdCB1cC10by1kYXRlIHN5c2N0bCBBUElzLiAgKFBhdGNoICMxNDgyMTY5KQoKMjAwNi0wNy0yNiAwODo1OCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEdlbmVyYXRlIHByb3BlciBjb2RlIGZvciBub24taW50ZWdlciB2YWx1ZSBvYmplY3RzLCBhbmQgZGV0ZXJtaW5lCiAgIHRoZSBmaXJzdCBhbmQgbGFzdCBhY2Nlc3NpYmxlIGNvbHVtbiBvYmplY3RzLiAgKFBhdGNoICMxNDI3NzEyKQoKICAgUTogSXMgaXQgd29ydGggcHVsbGluZyBzb21lIG9mIHRoaXMgY29kZSBvdXQgaW50byBhIHNlcGFyYXRlIG1pYjJjCiAgICAgIHV0aWxpdHkgZmlsZSwgc2luY2UgbXVjaCBvZiB0aGUgcHJvY2Vzc2luZyBpcyBlZmZlY3RpdmVseSBpZGVudGljYWwKICAgICAgaW4gYWxsIHRocmVlIGNhc2VzPwoKMjAwNi0wNy0yNiAwNDo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEhhbmRsZSBsb25nIChkeW5hbWljLWJ1ZmZlcmVkKSBtZXNzYWdlcyBjb3JyZWN0bHkuICAoQnVnICMxNTE2MDQ1KQoKMjAwNi0wNy0yNiAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRW5zdXJlIHRoZSBzZWNNb2RlbCBpcyBpbml0aWFsaXNlZCBmb3IgU05NUHYzIG5vdGlmaWNhdGlvbnMuIChCdWcgIzE1MTc0NTQpCgoyMDA2LTA3LTI2IDA0OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBPbmx5IHNvcnQgcmVsb2NhdGFibGUgZXh0ZW5zaW9uIGVudHJpZXMuICBUaG9zZSBpbiB0aGUgbWFpbiBleHRUYWJsZQogICBkb24ndCBoYXZlIGFuIE9JRCB0byBzb3J0IG9uLCBzbyBhdHRlbXB0aW5nIHRvIGRvIHNvIG1heSBzY3JhbWJsZQogICB0aGVtIGludG8gYSByYW5kb20gb3JkZXIuICAoQnVnICMxNTA2NzA3KQoKMjAwNi0wNy0yNSAwODo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suaCwgaHJfbmV0d29yay5oLAogICAgIGhyX290aGVyLmgsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5oLAogICAgIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5oOgoKICAgSW5kaWNhdGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gSG9zdFJlcyBtb2R1bGVzLiAgKEJ1ZyAjMTUwNTMyNSkKCjIwMDYtMDctMjUgMDg6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRW5zdXJlIHRoYXQgSVAgQWRkcmVzcyB2YWx1ZXMgYXJlIHJlcG9ydGVkIGFzIDQtb2N0ZXQKICAgdmFsdWVzIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmVzLiAgKEJ1ZyAjMTUwNDUwMSkKCjIwMDYtMDctMjUgMDY6NDggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBIYW5kbGUgbWFsZm9ybWVkIERpc3BsYXkgSGludHMgc2Vuc2libHksIHJhdGhlciB0aGFuCiAgIGdvaW5nIGludG8gYW4gaW5maW5pdGUgbG9vcC4gIChCdWcgIzE0NTk2NjUpCgoyMDA2LTA3LTI1IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBEb24ndCBhc3N1bWUgdGhhdCBhbGwgcmVxdWVzdHMgYXJlIG5lY2Vzc2FyaWx5IHZhbGlkLiAoQnVnICMxNDQ1MTE2KQoKMjAwNi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIHRoZSBkZWZpbmVkIGRlZmF1bHQgcG9ydCAoaWYgc3BlY2lmaWVkKSBmb3IgbnVtZXJpYyBJUHY2CiAgIGFkZHJlc3NlcywgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyBTTk1QX1BPUlQuICAoQnVnICMxNDQ1MDg5KQoKMjAwNi0wNy0yNSAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBEb24ndCBjaG9rZSBvbiBtaXNzaW5nIGxhYmVscyAoQnVnICMxNDI5NDY5KQoKMjAwNi0wNy0yNSAwMjoyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5jbHVkZSBtaXNzaW5nIGZsYWdzIHBhcmFtZXRlciAoQnVnICMxNDIyNzA4KQoKMjAwNi0wNy0yNSAwMTozMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIGJyb2tlbiBhc3NlcnRpb24gKEJ1ZyAjMTM5OTM3MCkKCjIwMDYtMDctMjUgMDE6MTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdjMuYzoKCiAgIFJlLWZpeCB1bnNpZ25lZCBjb21wYXJpc29ucyBhZ2FpbnN0IDAgKEJ1ZyAjMTM5Nzg5MSkKICAgaW5jbHVkaW5nIGZpeCBmb3IgdGVzdCAjMjQKCjIwMDYtMDctMjUgMDE6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEZpeCBzaWduZWRuZXNzIG9mIHJldHVybiB2YWx1ZXMgKEJ1ZyAjMTM5NzkwNikKCjIwMDYtMDctMTggMDc6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgU05NUF9UWVBFREVGX01BTExPQyAtPiBTTk1QX01BTExPQ19UWVBFREVGCgoyMDA2LTA3LTEzIDE0OjMwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbmV3cyB1cGRhdGUgZm9yIHJlY2VudCBmZWF0dXJlcwoKMjAwNi0wNy0xMyAwODoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjYWxsYmFjayBzdXBwb3J0IGZvciBnZXR0YWJsZSgpLgogICAgIC0gbm90IGV4dGVuc2l2ZWx5IHdlbGwgdGVzdGVkLCBidXQgaXQgZG9lcyB3b3JrCgoyMDA2LTA3LTEyIDAyOjQwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBpZkluT2N0ZXRzIHN0YXRpc3RpY3Mgb24gU29sYXJpcyAocGF0Y2ggMTUyMDYwMyBmcm9tIEpvaG4gR3JlZW4pCgoyMDA2LTA3LTA3IDE1OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHR5cG8gZml4CgoyMDA2LTA3LTA3IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERhdmUncyBwYXRjaCB0byByZW1vdmUgaG9zdCBtaWIgc3VwcG9ydCBmb3Igd2luZG93cyBieSBkZWZhdWx0CgoyMDA2LTA3LTA3IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBEYXZlJ3MgcGF0Y2ggZm9yIGNvbXBpbGF0aW9uIGZpeGVzIGZvciB3aW5kb3dzCgoyMDA2LTA3LTA3IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBNYXRoZXcgQmllbGVqZXNraSB0byBmcmVlIHVzZXIgbGlzdCBhbmQgZW5naW5lIHRpbWUgY2FjaGUgYXQgc2h1dGRvd24KCjIwMDYtMDctMDcgMTQ6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXggcG9zc2JpbGUgbnVsbCBkZXJlZmVuY2UsIG5vdGVkIG9uIGNvZGVycwoKMjAwNi0wNy0wNiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcDoKCiAgIGFkanVzdCBPSUQgZm9yIFNvbGFyaXMgc3dhcCBzcGFjZSBzaXplCgoyMDA2LTA3LTA2IDE1OjAxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBhc3NpZ25tZW50IGluIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4KCkgZm9yIEFTTl9JUEFERFJFU1MKCjIwMDYtMDctMDUgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIC0gYWRkIHdhcm5pbmcgY29tbWVudCBmb3IgZGVwcmVjYXRlZCBvYmplY3RzCiAgIC0gc2hvcnRlbiBzY2FsYXIgbm9kZSBjb21tZW50cyBieSBhIGxpbmUKICAgLSBzaG9ydGVuIGNvbHVtbiBub2RlIGNvbW1lbnRzCgoyMDA2LTA3LTA1IDE0OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIHVuc2lnbmVkIHRvIGFzbnR5cGVzCgoyMDA2LTA3LTA1IDE0OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICBhZGQgKiBuZXh0IHRvIHNjYWxhciBlbnVtIGRlZnZhbAoKMjAwNi0wNy0wNSAxNDoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgLSAnb3ZlcnJpZGUnIGFuZCAnYWRkX3JvdycgZGVmYXVsdCB0byBjb21tZW50ZWQgb3V0CiAgIC0gYWRkIG1pc3NpbmcgdHlwZSBpbmZvIHRvIG92ZXJyaWRlCiAgIC0gbWFrZSBjb25mIGZpbGUgaGVhZGVyIG1pYjJjIGNvbW1lbnRzIHNvIGl0J3Mgbm90IGluY2x1ZGVkIGluIG91dHB1dAoKMjAwNi0wNy0wNSAwNzo0MiAgcnN0b3J5CgogICAqIG1pYnMvOiBESVNNQU4tTlNMT09LVVAtTUlCLnR4dCwgRElTTUFOLVBJTkctTUlCLnR4dCwKICAgICBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gUkZDIDQ1NjAKCjIwMDYtMDctMDMgMjE6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFByb3Blcmx5IGhhbmRsZSBzbm1wIGVudW1zIHVzaW5nIHRoZSB3b3JkICJkZXByZWNhdGVkIgoKMjAwNi0wNy0wMyAyMDo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgYXBwcm9wcmlhdGVseSBtYXJrIGRlcHJlY2F0ZWQgdGFibGUgb2JqZWN0cwoKMjAwNi0wNi0zMCAyMjoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIHN1cHBvcnQgZm9yIG9wdGlvbmFsIGZpbGVzIChkb24ndCBleGlzdCBpbiBldmVyeSBicmFuY2gpCgoyMDA2LTA2LTMwIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZG94eWdlbi5jb25mIHN1cHBvcnQKCjIwMDYtMDYtMzAgMjE6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBjaGVjayBmb3IgZmlsZSBleGlzdGVuY2UKCjIwMDYtMDYtMzAgMjE6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBleGl0IHdpdGggdGhlIGN2cyBjb21taXQgc3RhdHVzIGlmIHJ1bgoKMjAwNi0wNi0zMCAxNTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBiZXR0ZXIgZW52IG5hbWUgZm9yIG5vdCBjaGVja2luZyB0aGUgdmVyc2lvbgoKMjAwNi0wNi0zMCAxNToxNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgdmVyc2lvbiBjaGFuZ2luZyBzdXBwb3J0OyBub3cgaW4gbWFrZXJlbGVhc2UKCjIwMDYtMDYtMzAgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZW1vdmUgdGFnIHN1cHBvcnQgZnJvbSB2ZXJzaW9udGFnOyBub3cgaW4gbWFrZXJlbGVhc2UKCjIwMDYtMDYtMzAgMTU6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBtdWNoIGJldHRlciBzdXBwb3J0IGZvciBjdnMgY29tbWl0LCB2ZXJzaW9uIG51bWJlcmluZywgZXRjCgoyMDA2LTA2LTMwIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdmFyaW91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzCgoyMDA2LTA2LTMwIDE1OjEzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIEFTTi9BU04ucG0sIEFTTi9NYWtlZmlsZS5QTAosIEFueURhdGFfU05NUC9TdG9yYWdlLnBtLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgT0lEL09JRC5wbSwgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9TTk1QLnBtLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbQosIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9hZ2VudC5wbSwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIHBlcmwgdmVyc2lvbiBudW1iZXJpbmcgY2hhbmdlcwoKMjAwNi0wNi0zMCAxNToxMiAgaGFyZGFrZXIKCiAgICogcGVybC9NYWtlZmlsZS5zdWJzLnBsOgoKICAgVXBkYXRlIHRvIGNoZWNrIGZvciBDUEFOIHJlcXVpcmVkIHBlcmwgdmVyc2lvbiBudW1iZXJzCgoyMDA2LTA2LTI5IDE2OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICBmaXJzdCBwYXNzIGF0IGF1dG9nZW5lcmF0aW5nIG92ZXJyaWRlL3RhYmxlL2FkZF9yb3cgZW50cmllcyBmb3IgYSBNSUIKCjIwMDYtMDYtMjcgMTE6NDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjFhZ2VudHBlcmwsIFQxMTVhZ2VudHhwZXJsOgoKICAgc2V0IERZTERfTElCUkFSWV9QQVRIIGZvciBPU1ggYW5kIFNITElCX1BBVEggZm9yIEhQLVVYCgoyMDA2LTA2LTI3IDExOjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggbW9yZSB1ZHBUYWJsZSBieXRlLW9yZGVyIGlzc3VlcyAoaW5kaWNlcykgb24gKkJTRCBhbmQgU29sYXJpcy94ODYKCjIwMDYtMDYtMjcgMDk6NDIgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgcmVtb3ZlIGVtYmVkZWQgcGVybCBpbmZvOyBhZGQgcGVybCBhZ2VudHggaW5mbwoKMjAwNi0wNi0yNiAxNToyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYWRkIG5ldHN0YXQgcGF0aCBmb3IgSVJJWAoKMjAwNi0wNi0yNiAwODozMyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIHVkcFRhYmxlIGJ5dGUtb3JkZXIgZml4ICh2YWx1ZXMgb25seSkgZm9yIE5ldEJTRCBhbmQgT3BlbkJTRAoKMjAwNi0wNi0yNSAxNDo0MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBwcmVwZW5kIChpbnN0ZWFkIG9mIHJlcGxhY2UpIGEgbm9uLWVtcHR5IExEX0xJQlJBUllfUEFUSDsgZml4ZXMgdGVzdCBlcnJvcnMgb24gc3lzdGVtcyB0aGF0IHJlbHkgb24gaXQKCjIwMDYtMDYtMjUgMTQ6MjUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBmaXggdGVzdCBlcnJvciBvbiBTb2xhcmlzIGV0Yy46IG9ubHkgdXNlICJpZCAtdSIgb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQKCjIwMDYtMDYtMjUgMDg6NDMgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgICBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTAosIFNOTVAvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIC0ncGVybCBNYWtlZmlsZS5QTCAtTkVULVNOTVAtSU4tU09VUkNFPXRydWUnIHdhcyBub3Qgd29ya2luZy4gIEZpeDogY2FsbAogICAgJ25zY29uZmlnJyAtLXZlcnNpb24gaW5zaWRlIG9mIEluaXRNYWtlUGFyYW1zIGluc3RlYWQgb2YgQ2hlY2tfVmVyc2lvbgogICAtU3VwcG9ydCBtb2R1bGU6IE5ldFNOTVBHZXRPcHRzIGNhbGwgc2hvdWxkIHBhc3MgcGFyZW50IGZvbGRlciBzbyBuZXQtc25tcC1jb25maWcKICAgIGNhbiBiZSBmb3VuZAogICAtU3VwcG9ydC9NYWtlZmlsZS5QTCB3YXMgbWlzc2luZyBmcm9tIE1ha2VmaWxlLm1ha2VmaWxlcwoKMjAwNi0wNi0yNCAwOTowMCAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgLVNraXAgdmVyc2lvbiBjaGVjayBmb3IgV2luMzIgTVNWQwogICAtYWRkIFRyYXBSZWNlaXZlciB0byBNYWtlZmlsZS5tYWtlZmlsZXMKICAgLW1ha2UtcGVybC1tYWtlZmlsZXM6ICByZW5hbWUgZmlsZXMgQUZURVIgY2xvc2luZyB0aGVtLCBub3QgYmVmb3JlCgoyMDA2LTA2LTIzIDEyOjUwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgY2hlY2sgZm9yIDEyNy4wLjAuMS4sIG5vdCBqdXN0ICwgdG8gaWRlbnRpZnkgYnl0ZS1vcmRlciBpc3N1ZXMKCjIwMDYtMDYtMjMgMDk6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIENsZWFuIGZpeGluZyBvZiBvcmRlcmluZyBwcm9ibGVtcyB3aXRoIGtlcm5lbCBzdG9yYWdlIG9mIFVEUCB2YWx1ZXMKCjIwMDYtMDYtMjMgMDg6NTIgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBEb2N1bWVudCBjdXJyZW50IGJlc3QtcHJhY3Rpc2UgZm9yIGFubm91bmNpbmcgbmV3IHJlbGVhc2VzCiAgIChpbmNsdWRpbmcgcHJlLXJlbGVhc2VzIGFuZCByZWxlYXNlIGNhbmRpZGF0ZXMpLgogICBTYXkgd2hhdCB3ZSBkbywgcmF0aGVyIHRoYW4gZG8gd2hhdCB3ZSBzYXkuCgoyMDA2LTA2LTIzIDA1OjE5ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKCjIwMDYtMDYtMjMgMDI6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBlYXJsaWVyICJkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcyIgcGF0Y2ggdGhhdCBicm9rZSBieXRlIG9yZGVyIGZvciBhbGwgcGxhdGZvcm1zCgoyMDA2LTA2LTIwIDE1OjM1ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGludHJvZHVjZSBOU0JfUFJFRklYIGFuZCBzd2l0Y2ggdG8gLS1wcmVmaXg9L3VzciBub3cgdGhhdCB3ZSBzdXBwb3J0IERFU1RESVIgZm9yIGV2ZXJ5dGhpbmc7IGUuZy4gdG8gYXZvaWQgdGhhdCB0aGUgaW5zdGFsbGF0aW9uIGVuZHMgaW4gL2Rlc3RkaXIvZGVzdGRpcgoKMjAwNi0wNi0yMCAxNDo0NiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0VYVFJBX0lOU1RBTEwgdG8gYmUgYWJsZSB0byBwYXNzIGV4dHJhIGFyZ3MgdG8gIm1ha2UgaW5zdGFsbCIKCjIwMDYtMDYtMjAgMTI6MTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgZXhwb3J0aW5nCgoyMDA2LTA2LTIwIDA1OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHNldCBMRF9MSUJSQVJZX1BBVEggdG8gbWFrZSBzdXJlIHRoYXQgTmV0U05NUDo6YWdlbnQncyBhZ2VudC5zbyBjYW4gbG9hZCAodW5pbnN0YWxsZWQpIGxpYm5ldHNubXAqLnNvOyBvdGhlcndpc2UgdGVzdCBmYWlscyBhdCBsZWFzdCBvbiBGcmVlQlNECgoyMDA2LTA2LTE1IDE1OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHN1cHByZXNzIHN0ZGVyciB3YXJuaW5ncyBmb3IgInBzIC1lIiBpbiBvcmRlciB0byBmaXggW2ZhbHNlXSBuaWdodGx5IGJ1aWxkIGVycm9yIG1lc3NhZ2VzIG9uIFNGIENGIGhvc3QgYWxwaGEtbGludXgxCgoyMDA2LTA2LTE1IDA2OjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWRkIE9wZW5CU0QgYW5kIE5ldEJTRCB0byB0aGUgbGlzdCBvZiBzeXN0ZW1zIHRoYXQgcmVxdWlyZSByb290IHByaXZpbGVnZXMgZm9yIHVkcFRhYmxlIChhY2NvcmRpbmcgdG8gRGF2ZSdzIHRlc3RpbmcpCgoyMDA2LTA2LTEzIDE0OjU5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgTkVUU05NUF9EU19BR0VOVF9OT19ST09UX0FDQ0VTUyAobmVlZGVkIGZvciBlLmcuIFNvbGFyaXMgMi42KQoKMjAwNi0wNi0xMyAwNTo0MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggYnVnIDE1MDUzNDE6IGFnZW50IHNlZ2ZhdWx0cyBvbiBTb2xhcmlzIHdpdGggLURBTEwKCjIwMDYtMDYtMTIgMTY6NTUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjb21taXQgdGhlIGRveHlnZW4uY29uZiBmaWxlCgoyMDA2LTA2LTEyIDE2OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpbnRyb2R1Y2UgIm5ldC1zbm1wLWNvbmZpZyAtLXBlcmxwcm9nIiBhbmQgdXNlIGl0IGluIHRoZSAiQWdlbnRYIHN1YmFnZW50IGluIHBlcmwiIHRlc3QKCjIwMDYtMDYtMTIgMTY6MDAgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgaW50cm9kdWNlICJuZXQtc25tcC1jb25maWcgLS1wZXJscHJvZyIgYW5kIHVzZSBpdCBpbiB0aGUgIkFnZW50WCBzdWJhZ2VudCBpbiBwZXJsIiB0ZXN0CgoyMDA2LTA2LTEyIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZGVmaW5lIG1mZF8qX3Jvd3JlcV9mcm9tX2luZGV4IGlmIHBlcnNpc3RlbnQgZW5hYmxlZAoKMjAwNi0wNi0xMiAxNTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgaW5jbHVkZSBpcGFkZHIgaW5zdGVhZCBvZiByZWRlZmluaW5nIGNvbnN0YW50cwoKMjAwNi0wNi0xMiAxNTozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBhZGQgY29tbWVudCB3L2ludGVnZXIgdmFsdWUgZm9yIGVhc3kgZ3JlcHBpbmcKCjIwMDYtMDYtMTIgMTM6MjMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgcm91dGUuYzoKCiAgIGFkZCBzeXMvdHlwZXMuaCB0byBmaXggT1MgWCBidWlsZAoKMjAwNi0wNi0xMiAxMzowNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gZml4IGJhZCBwYXJhbWV0ZXIgaW4gc2NhbGFyIHJlZ2lzdHJhdGlvbgogICAtIGtlZXAgc2NhbGFyIHZhbHVlIGZyZXNoIHVzaW5nIHRhYmxlIGNhY2hlICsgY2FjaGUgaGVscGVyCgoyMDA2LTA2LTEyIDEzOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgYWRkIGFjY2VzcyB0byB0YWJsZSBjYWNoZQoKMjAwNi0wNi0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgZml4IGZvciBuZXcgZmFpbHVyZSBlcnJvciBjb2RlCgoyMDA2LTA2LTEyIDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggYnVnIHJlcG9ydGVkIGJ5IFJvYmVydCBXaWxjb3g6IHJldHVybiBubyBhY2Nlc3MgaW5zdGVhZCBvZiBub3Qgd3JpdGFibGUgb24gVkFDTSBkZW5pYWxzCgoyMDA2LTA2LTEyIDA5OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZmluYWxseSBhIHdvcmtpbmcgdmVyc2lvbiBvZiB0aGUgdmVyc2lvbiB3b3JraW5nIGNoZWNrCgoyMDA2LTA2LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZml4IHByZVggdmVyc2lvbiBudW1iZXJzIGJlZm9yZSBjaGVja2luZwoKMjAwNi0wNi0xMiAwODo0NiAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIHRoZSBwZXJsIG1vZHVsZSB2ZXJzaW9uIG51bWJlciBhZ2FpbnN0IHRoZSBuZXQtc25tcCB2ZXJzaW9uIG51bWJlcgoKMjAwNi0wNi0xMiAwMToxOSAgdGFuZGVycwoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG1hbnVhbCBzdGVwIHRvIHVwZGF0ZSB2ZXJzaW9uIG51bWJlciBpbiBkb3h5Z2VuLmNvbmYKCjIwMDYtMDYtMTIgMDE6MTYgIHRhbmRlcnMKCiAgICogZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDYtMDYtMTAgMDU6NTcgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgZml4IHN5bnRheCBlcnJvciBpbnRyb2R1Y2VkIGluIGxhc3QgY29tbWl0CgoyMDA2LTA2LTA5IDEzOjQyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZml4IHR5cG8KCjIwMDYtMDYtMDkgMDU6NTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICAtIGRvbid0IGZyZWUgcGR1IGlmIGl0J3Mgbm90IGEgY2xvbmUKICAgLSBpZmRlZiBtb3JlIGNvZGUgbm90IHVzZWQgaWYgc25tcHYxIGRpc2FibGVkCgoyMDA2LTA2LTA3IDA1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwYXRjaCBmcm9tIERhdmUgdG8gcHJldmVudCBjcmFzaCB3aXRoIC1EcmVnaXN0ZXJfbWliCgoyMDA2LTA2LTA3IDA1OjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGFuZCBhcnBhL2luZXQuaCB0byBwaWNrIHVwIG50b2hsIG9uIGhwdXgxMC4yMAoKMjAwNi0wNi0wNSAxNTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggZG91YmxlLWZyZWUgb2YgZGVsZWdhdGVkIGNhY2hlCgoyMDA2LTA2LTA1IDE0OjI3ICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgYWRkIHZhY20gc2V0IHRlc3RzCgoyMDA2LTA2LTA1IDE0OjIxICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZzoKCiAgIGFkZCAocm98cncpY29tbXVuaXR5IGNvbmZpZyBmb3IgcncgdmFjbSB0ZXN0CgoyMDA2LTA2LTA1IDExOjA2ICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgc29tZSB2YWNtIG1hdGNoaW5nIGRlYnVnIG1zZ3MKCjIwMDYtMDYtMDUgMTA6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgLSB1c2UgbmV3IGFiaWxpdHkgdG8gc2NoZWR1bGUgYWxhcm0gaW4gMCBzZWMgdG8gcnVuIG10ZSB0aXJnZ2VycyBhc2FwIGFmdGVyCiAgICAgc3RhcnR1cCwgaW5zdGVhZCBvZiBkdXJpbmcgY29uZmlnIGZpbGUgcGFyc2luZwogICAtIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2cKCjIwMDYtMDYtMDUgMTA6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gYWxsb3cgYSAwIHRpbWUgaW4gc25tcF9hbGFybV9yZWdpc3RlciwgdG8gbWVhbiBydW4gQVNBUCAoaS5lLiAxIHVzZWMpCiAgIC0gYWxsb3cgc2VjL3VzZWMgb2YgMCBpbiBzYV91cGRhdGVfZW50cnksIGV4Y2VwdCBmb3IgU0FfUkVQRUFUIGNhc2UKCjIwMDYtMDYtMDUgMTA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIC0gbG9nIGVycm9yIChhbmQgZG9uJ3QgY3JlYXRlIGVudHJ5KSBpZiBzZXNzIHVzZXIgbm90IGZvdW5kCiAgIC0gbG9nIGVycm9yIGlmIGFnZW50U2VjTmFtZSAoZGVmYXVsdCB1c2VyKSBub3Qgc3BlY2lmaWVkCiAgIC0gYWRkIG1pc3NpbmcgXG4gdG8gZGVidWcgbXNnCgoyMDA2LTA2LTA1IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgY2hhbmdlIGxlbiB0eXBlIHRvIHNpemVfdAoKMjAwNi0wNi0wNSAwOTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGFkZCBjb250YWluZXIgbmFtZXMKCjIwMDYtMDYtMDEgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBlbmZvcmNlIE1JQiBvYmplY3QgbGVuZ3RocwoKMjAwNi0wNS0yOSAwMjo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFrIHRoZSBlcnJvciByZWdleAoKMjAwNi0wNS0yOSAwMTozNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmw6CgogICByZS1maXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMjggMTM6MTMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgdGVtcG9yYXJ5IHdvcmthcm91bmQgdG8gcHJldmVudCBzbm1wdHJhcGQgZW1iZWRkZWQgcGVybCBjcmFzaCBvbiB4ODZfNjQgKGJ1ZyAxNDk0ODgyKQoKMjAwNi0wNS0yNyAyMzo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICB1c2UgQ0hFQ0tPUkRJRSBpbnN0ZWFkIG9mIENIRUNLRklMRSB3aGVuIGRvaW5nIG11bHRpcGxlIGNoZWNrcyAod2FzIHN1Y2NlZWRpbmcgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZSkuICBBbHNvLCBvcGVuIGVtYmVkZGVkIHBlcmwgTE9HIGluIGFwcGVuZCBtb2RlIHNvIHNlY29uZCByb3V0aW5lIGRvZXNuJ3QgdHJ1bXAgdGhlIGZpcnN0CgoyMDA2LTA1LTI3IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBpbmNsdWRlIG5ldGluZXQvaW4uaCBhbmQgYXJwYS9pbmV0LmggdG8gcGljayB1cCBodG9ubCwgZXRjLCBvbiBocHV4MTAuMjAKCjIwMDYtMDUtMjcgMjI6MTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHdheSBzaW1wbGUgREVTVERJUiBzdXBwb3J0CgoyMDA2LTA1LTI3IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBhIGZldyBwZW9wbGUgZnJvbSBwcmV2aW91cyBwYXRjaGVzCgoyMDA2LTA1LTI3IDA3OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgbGlidG9vbC1saWtlIExEX0xJQlJBUllfUEFUSCB0byBtYWtlIHN1cmUgdGhlIHBlcmwgYWdlbnQgc3RhcnRzIHByb3Blcmx5IChmaXhlcyBidWcgMTQ5NTQzMykKCjIwMDYtMDUtMjYgMTU6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcwoKMjAwNi0wNS0yNiAxNToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICByZW1vdmUgZG91YmxlIGVudHJ5IGNvbW1lbnQKCjIwMDYtMDUtMjYgMDk6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb25lIGludHB0cl90IGNhc3QgZnJvbSBhIHBvaW50ZXIKCjIwMDYtMDUtMjYgMDk6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgY29uZmlndXJlOgoKICAgY2hlY2sgZm9yIHVpbnRwdHJfdCBhbmQgaW50cHRyX3QKCjIwMDYtMDUtMjYgMDY6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEFub3RoZXIgcHJvcGVyIHBvaW50ZXIgY2FzdAoKMjAwNi0wNS0yNiAwNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cywgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywKICAgICBhZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoIGZyb20gZGFyaXggdG8gcHJvcGVybHkgY2FzdCBwb2ludGVycyB0byBhbiBJViBpbnN0ZWFkIG9mIGFuIGludCB0byBmaXggNjRiaXQgaXNzdWVzCgoyMDA2LTA1LTI2IDAxOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1ha2UgZGFlbW9ucyBiaW5kIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0IG9ubHkgKGZpeGVzIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wNS0yNSAxNToxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2V0IFNOTVBfUEVSU0lTVEVOVF9ESVIgZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMTU6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBTTk1QQ09ORlBBVEggZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMDk6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBkb24ndCBvcGVuIGRlZmF1bHQgc211eCBwb3J0L3NvY2tldAoKMjAwNi0wNS0yNSAwODowNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2YW55Y29uZmlnOgoKICAgZG9uJ3Qgb3BlbiBkZWZhdWx0IHNtdXggcG9ydC9zb2NrZXQKCjIwMDYtMDUtMjQgMDg6MzIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyBwZXJsCgoyMDA2LTA1LTI0IDA4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBkb3VibGUtZm9yayB0aGUgcGVybCBzdWJhZ2VudCB0byBhdm9pZCBzaGVsbCBvdXRwdXQgZnJvbSBqb2IgaGFuZGxpbmcKCjIwMDYtMDUtMjQgMDY6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGludHJvZHVjZSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3Igc3ViYWdlbnQgdGVzdHM6IEFHRU5UWF9DT05GSUdfRklMRSwgU05NUF9BR0VOVFhfUElEX0ZJTEUsIFNOTVBfQUdFTlRYX0xPR19GSUxFCgoyMDA2LTA1LTI0IDA2OjM5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBuZXcgdGVzdDogJ0FnZW50WCBzdWJhZ2VudCBpbiBQZXJsICh1c2luZyBOZXRTTk1QOjphZ2VudCknCgoyMDA2LTA1LTIyIDE1OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N5c3RlbSBpbiBwYXJ0aWN1bGFyIGFuZCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfZGV2aWNlIGluIHBhcnRpY3VsYXIgYW5kIHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6MzYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3lzdGVtIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMjIgMDM6MDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zdG9yYWdlIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMTkgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGZpeCBmb3IgYnVnIDEzMTM2NjcgcmVtb3ZlZCBzeW5jaCBzZW5kLCBhbGxvd2luZyB1cyB0byB1bmNvbW1lbnQgdGhlCiAgICAgY29tbWVudGVkIG91dCBwZHUgZnJlZSBvbiBlcnJvciwgcGx1Z2dpbmcgYSBtZW1vcnkgbGVhayBpZGVudGlmaWVkCiAgICAgb24gY29kZXJzIGJ5IGRlcmVrbCBhdCBibHVleW9uZGVyIGNvIHVrCgoyMDA2LTA1LTE5IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIHVzZSBucnByb2NzLTEgYXMgaW5kZXggaW5zdGVhZCBvZiBpLCB3aGljaCB3aWxsIGJlIG5lZ2F0aXZlIGlmIGNwdWluZm8KICAgICBkb2Vzbid0IGNvbnRhaW4gYSAncHJvY2Vzc29yJyBsaW5lCgoyMDA2LTA1LTE3IDE1OjExICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgbmVlZCBzeXMvdHlwZXMuaCBiZWZvcmUgbmV0aW5ldC9pbi5oIG9uIHNvbWUgcGxhdGZvcm1zCgoyMDA2LTA1LTEzIDAwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXBkYXRlIENWUyBob3N0IG5hbWUKCjIwMDYtMDUtMTIgMTU6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cwosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAosIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgLVcgZmxhZyBzdWJzdGl0aW9uIHRvIGJlIGV4YWN0IG1hdGNoIG9mIGZsYWdzIHRvIHJlbW92ZSwgcmF0aGVyIHRoYW4gcmVtb3ZpbmcgYW55IC1XIGZsYWcgZm9yIHBvcnRhYmlsaXR5IHJlYXNvbnMKCjIwMDYtMDUtMTIgMDk6MTAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWlzYy4gYWRkaXRpb25zIGZvciBtb3JlIGNvbmZpZ3VyYXRpb24gY29udHJvbCBvbiBidWlsZCBmYXJtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHBlcmwgYnVpbGRpbmcKCjIwMDYtMDUtMTIgMDg6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjB0cmFwZHBlcmwsIFQwNjFhZ2VudHBlcmw6CgogICBmaXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBlbnN1cmUgdGhlIHRlc3RzIHdvcmsgZXZlbiBpZiBVQ0QtU05NUC1NSUIgaXNuJ3QgaW4gZGVmYXVsdHMgTUlCUyBsaXN0CgoyMDA2LTA1LTEyIDA4OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBpbnRyb2R1Y2UgZGVsYXlzIHRvIG5vdCBsb3NlIHRyYXBzCgoyMDA2LTA1LTEyIDA3OjU0ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICB1cGRhdGUgUkVBRE1FIGZvciBBSVggYmFzZWQgb24gYnVpbGQgdGVzdCBleHBlcmllbmNlIG9uIEFJWCA0LjMuMy81LjEvNS4yLzUuMwoKMjAwNi0wNS0wOCAwMzowNyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0xJQldSQVAgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IC0td2l0aFtvdXRdLWxpYndyYXA9eHh4CgoyMDA2LTA1LTA4IDAxOjExICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBzbXV4IGZyb20gTlNCX0RJU1RfTU9EVUxFUyAoaXQncyBhbHJlYWR5IGluIE5TQl9FWFRSQV9NT0RVTEVTKQoKMjAwNi0wNS0wOCAwMDo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaDoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiB4bGMgb24gQUlYIDQuMy4zKTogbm8gdHJhaWxpbmcgY29tbWEgYWZ0ZXIgbGFzdCBlbnRyeSBvZiBhICJ0eXBlZGVmIGVudW0iCgoyMDA2LTA1LTA1IDE2OjAzICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWtpbmcgb2YgdGhlIGV4Y2VwdGlvbiByZWdleAoKMjAwNi0wNS0wNSAxNToyOCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIEluaXRpYWwgUkVBRE1FIGZvciBJUklYCgoyMDA2LTA1LTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHB1dCB0aGUgc25wcmludGYgbGVuZ3RoIGludG8gYSBkZXJlZmVyZW5jZWQgcG9pbnRlcgoKMjAwNi0wNS0wNCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY292ZXJ0aXkgMTM1OiBkb3VibGUgY2hlY2sgbmV0c25tcF9vaWRfZmluZF9wcmVmaXggcmV0dXJucyBhIHBvc2l0aXZlIHJlc3VsdCAoc2hvdWxkIG9ubHkgaGFwcGVuIGluIGJyb2tlbi10cmVlIGNhc2VzKQoKMjAwNi0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAjMTM2OiBmcmVlIG1lbSBsZWFrIGluIHJhcmUgYmFkLWFnZW50eCBwYWNrZXQgY2FzZQoKMjAwNi0wNS0wMyAxMzo1OSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgTkVXUzoKCiAgIFsgMTQ4MTAxMiBdIEhQLVVYIDExLjAvMTFpOiBpcEFkRW50QmNhc3RBZGRyIHdyb25nIChwYXRjaCBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQoKMjAwNi0wNC0zMCAyMjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBbIDE0Nzg2MTYgXSBzbm1wdXNtIG91dHB1dHMgdG8gc3RkZXJyIG9uIHN1Y2Nlc3MKCjIwMDYtMDQtMzAgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgWyAxNDc5MDcxIF0gNjQgYml0cyBjb3VudGVyIG9uIExpbnV4ICYgZ29vZCBwYXJzaW5nIG9mIGRpc2tzdGF0cyAoYWdhaW4pIFttb2RpZmllZF0gZnJvbSBGYWJyaWNlIEJhY2NoZWxsYQoKMjAwNi0wNC0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgWyAxNDY2NDUwIF0gZml4IGNvbXBpbGF0aW9uIHdpdGggbGludXgvZXRodG9vbC4gIEluIG90aGVyIHdvcmRzOiB1Z2ggbmFzdHkgYnV0IG5lZWRlZCBwYXRjaAoKMjAwNi0wNC0yNSAxMDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBtb2RpZmllZCB2ZXJzaW9uIG9mIFsgMTQ2NjQ1MSBdIGlwQWRkcmVzcyBzaXplIHdpdGggNjRiaXQgdG8gdXNlIHNpemVvZigpIGZvciB0aGUgZGF0YXR5cGUgaW4gcXVlc3Rpb24KCjIwMDYtMDQtMjEgMDU6MzAgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTa2lwIG1pc3NpbmcgZW50cmllcyAocmF0aGVyIHRoYW4gY3Jhc2hpbmcgb3V0IGNvbXBsZXRlbHkpCgoyMDA2LTA0LTIwIDE3OjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgc25tcHVzbS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTA0LTIwIDE3OjEzICB0YW5kZXJzCgogICAqIE5FV1M6CgogICByZXBocmFzZWQKCjIwMDYtMDQtMjAgMTY6NTUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IGNoYW5nZXMgc2luY2UgNS4zLjAuMQoKMjAwNi0wNC0yMCAxNjoxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTY6MDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MjcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBkYWVtb25zIGZhaWwgYWZ0ZXIgU0lHSFVQCgoyMDA2LTA0LTIwIDE1OjI0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBhZ2VudCBmYWlscyBhZnRlciBTSUdIVVAKCjIwMDYtMDQtMjAgMTU6MTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjA5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBIVVBQUk9HKCksIEhVUEFHRU5UKCkgYW5kIEhVUFRSQVBEKCkgZm9yIHVwY29taW5nIFNJR0hVUCB0ZXN0cwoKMjAwNi0wNC0xOCAxMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBCdWcgIzE0MzIxNjU6IHR5cG9zIGluIHRoZSBmaWxlbmFtZXMKCjIwMDYtMDQtMTggMTE6MDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGJ1ZyAxNDU4Njg1OiBtYW4gcGFnZSBmb3Igc2V0YWNjZXNzIHdhcyBtaXNzaW5nIGEgdG9rZW4gaW4gdGhlIHN1bW1hcnkgbGluZQoKMjAwNi0wNC0xOCAxMDo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggYnVnIDE0NTg4MTg6IGF1dGhjb21tdW5pdHkgYW5kIGZyaWVuZHMgdXNlIC1WIG5vdCAtdiB0byBzcGVjaWZ5IGEgdmlldwoKMjAwNi0wNC0xOCAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgWyAxMzQxMDk4IF0gRml4IG1pYjJjLm9sZC1hcGkuY29uZiBvaWQgc3VmZml4ZXMsIHN1ZmZpeCBsZW5ndGhzIGZyb20gbnNodWxtYW4KCjIwMDYtMDQtMTggMTA6MzIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBlYXNpZXIgZW1iZWRkZWQgcGVybCBpbnRlZ3JhdGlvbjogWyAxMzY5OTk2IF0gbWliIHRvIHBlcmwgc3VwcG9ydCBieSBQZXRlciBNYXJ0aW4KCjIwMDYtMDQtMTggMTA6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgbG9jYWwvbWliMmMucGVybC5jb25mOgoKICAgU3VwcG9ydCBmdW5jdGlvbnMgZm9yIGVhc2llciBlbWJlZGRlZCBwZXJsIGludGVncmF0aW9uOiBbIDEzNjk5OTYgXSBtaWIgdG8gcGVybCBzdXBwb3J0IGJ5IFBldGVyIE1hcnRpbgoKMjAwNi0wNC0xOCAxMDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgWyAxNDY1NDg1IF0gbmV0c25tcF9jb25maWdfcmVtZW1iZXJfZnJlZV9saXN0IG1lbSBsZWFrIGZyb20gUm9iZXJ0IFdpbGNveAoKMjAwNi0wNC0xOCAwNjo1OCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQLUZPUldBUkQtTUlCLnR4dCwgSVAtTUlCLnR4dCwgcmZjbGlzdAo6CgogICB1cGRhdGUgZnJvbSBuZXdseSBwdWJsaXNoZWQgUkZDcwoKMjAwNi0wNC0xMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgWyAxMzY0MjQ4IF0gQWRkIG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQgcGFyYW1ldGVyczogZ2VuZXJhbCByZXdvcmsgb2YgdGhlIG1haW4gd3JhcHBlciBmb3IgYXV0by1zdWJhZ2VudHMgZnJvbSBtYWdmcgoKMjAwNi0wNC0xMyAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBbIDEzNzE3NzggXSBkaXNrSU9UYWJsZSBjb250YWlucyBpbnZhbGlkIGRhdGEgZm9yIHNvbWUgZGV2aWNlcyBvbiBMaW51eAoKMjAwNi0wNC0xMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBbIDEzODYyNjQgXSA1LjIuMiAtIGZpeCBMaW51eCBDUFUgY291bnRlcnMgb24gU01QIG1hY2hpbmVzCgoyMDA2LTA0LTEyIDEyOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggcGFyc2luZyBvZiBhZGRyZXNzZXMgdGhhdCBJIGJyb2tlIHdoZW4gaW1wbGVtZW50aW5nIHBhcnNpbmcgb2YgZml4ZWQtd2lkdGggc3RyaW5ncwoKMjAwNi0wNC0xMiAxMDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggYSBidWcgcmVwb3J0ZWQgaW4gMTExODgxNCB3aGVyZSBpbml0IGxlbmd0aCB3YXNuJ3QgZ2V0dGluZyBpbml0aWFsaXplZCBwcm9wZXJseQoKMjAwNi0wNC0xMiAwOTo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4ZXMgZm9yIGZpeGVkIGxlbmd0aCBzdHJpbmcgcGFyc2luZwoKMjAwNi0wNC0xMiAwOToyMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA2LTA0LTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXhlZCBsZW5ndGggc3RyaW5nIHBhcnNpbmcKCjIwMDYtMDQtMTEgMDQ6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQnVpbGQgZml4IGZvciAiY29uZmlndXJlIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1DYWxsYmFjayIgKGZpeGVzIGZpcnN0IHBhcnQKICAgb2YgYnVnIDE0Njc3MjQpLgogICBXaHkgZG8gdGVzdHMgMjEtMjUgYW5kIDM0LTM1IChhbGwgaW52b2x2aW5nIHNubXB0cmFwZCkgZmFpbCBpbiA1LjMrICh1bmxpa2UKICAgNS4yLngpIGlmIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgaXNuJ3QgYXZhaWxhYmxlPwoKMjAwNi0wNC0xMCAwNzoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBbIDEzNjQ2NDggXSBGaXggc2VnZmF1bHQgb24gcGVybCBhc3luYyBidWxrd2FsayBmcm9tIE9sZSBCam9ybgoKMjAwNi0wNC0xMCAwNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgWyAxNDE1NTg2IF0gNS4zLjAuMSBob3N0L2hyX3N3cnVuLmMgcGF0Y2hlcyBmb3IgQUlYIDQsMy81LjIgZnJvbSBKb2UgQnVlaGxlcgoKMjAwNi0wNC0wOSAyMTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBtaWJJSS9pZlRhYmxlLmgKOgoKICAgWyAxNDI3NzkzIF0gaWYoWClUYWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgT3BlbkJTRCAzLnggZnJvbSBOb3J0aHRyb04KCjIwMDYtMDQtMDkgMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFsgMTQyOTQ1NSBdIGVuZGxlc3MgbG9vcCwgdGFibGVfaXRlcmF0b3IsIDUuMyBmcm9tIEtyaXMgKHRpbmtlcjEwNSkKCjIwMDYtMDQtMDkgMjE6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgWyAxNDYwMDgyIF0gW1BBVENIXTogRml4IGV4dGVybmFsIGZkIGhhbmRsaW5nIChhbm9uKQoKMjAwNi0wMy0yNyAxNjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIHJlbW92ZSAodXNlZnVsKSAiLUNwIC1DdCIgc3RkZXJyIG91dHB1dCBzaW5jZSBpdCBoYXMgYmVlbiBzZWVuIHRvIGludGVyZmVyZSB3aXRoIHRoZSBzdGRvdXQgbWVzc2FnZXMgdG8gYmUgY2hlY2tlZAoKMjAwNi0wMy0yNCAwODo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBSZWNvZ25pc2UgZmFpbGVkL2R1cGxpY2F0ZSByZWdpc3RyYXRpb25zLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MKCjIwMDYtMDMtMjQgMDg6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgRG9uJ3QgY2hva2Ugb24gU05NUHYyIGV4Y2VwdGlvbnMKICAgKFN0aWxsIG5lZWQgdG8gaGFuZGxlIFNOTVB2MSBlcnJvcnMpCiAgIEZpeCBhIGNvdXBsZSBvZiBtaW5vciBvdXRwdXQgdHlwb3MuCgoyMDA2LTAzLTIzIDE2OjAwICB0YW5kZXJzCgogICAqIG1hbi9taWIyYy5jb25mLjUuaW46CgogICBGaXggc2VjdGlvbiBvZiBtaWIyYy5jb25mLjUgKERlYmlhbiBwYXRjaCAjMTYgZnJvbSA1LjIuMi0zKQoKMjAwNi0wMy0yMyAxMToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgUGF0Y2ggZnJvbSBkYXJpeCB0byBvcHRpb25hbGx5IHR1cm4gb2ZmIGNvbm5lY3Rpb24gbG9nZ2luZyBmb3IgdGNwX3dyYXBwZXJzCgoyMDA2LTAzLTE2IDAxOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFJvb3Qgc2Vjb25kIG91dHB1dCB0YWJsZSBjb3JyZWN0bHkKCjIwMDYtMDMtMTYgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDb3JyZWN0IGxvZ2ljIG9mIHN0YXJ0dXAgdGVzdHMKCjIwMDYtMDMtMTUgMDg6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRml4IFNDX0FJTkZPIHN3YXBjdGwoKSBjYWxsLgoKMjAwNi0wMy0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBSZWNvZ25pc2UgYnVpbHQtaW4gdmVyc3VzIGNvbmZpZy1kZWZpbmVkIG5vdGlmaWNhdGlvbnMsCiAgIGFuZCBzZXQgb3duZXIgYWNjb3JkaW5nbHkuCgoyMDA2LTAzLTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGRvbid0IHVzZSBwZXJmZWN0bHkgbGVnYWwgcGVybCBzdHJ1Y3R1cmVzIGluIEMgY29kZQoKMjAwNi0wMy0wOSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggdHlwb3MKCjIwMDYtMDMtMDkgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIGZpeCBzY2hlZHVsZSB0eXBvCgoyMDA2LTAzLTA5IDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmcmVlIG1hbGxvYyBpbiBlcnJvciBjb25kaXRpb24gd2hlbiBkZWNvZGUgZnVuY3Rpb24gbm90IHNwZWNpZmllZAoKMjAwNi0wMy0wOSAxMzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXB2My5jOgoKICAgZW5zdXJlIHRoYXQgaWYgb3AgPT0gcmVjZWl2ZWQgbWVzc2FnZSB0aGF0IHdlIGhhdmUgYSBQRFUgdG9vIChhbHdheXMgd2lsbCBiZSB0aGUgY2FzZSkKCjIwMDYtMDMtMDkgMTM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbnQgZGVsdmUgaW50byBmdXR1cmUgaWYgc3RhdGVtZW50IHdoZW4gc2Vzc2lvbiBmYWlscyB0byBwcm9iZQoKMjAwNi0wMy0wOSAxMzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZnJlZSBhIHBkdSBvbiB0aGUgZXJyb3IgY2FzZSBvZiBubyBzZXNzaW9uLi4uCgoyMDA2LTAzLTA5IDEzOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIHJldmVyc2UgYSBwYXRjaCB0aGF0IHdhcyB0cnlpbmcgdG8gZnJlZSBhbiBhcnJheQoKMjAwNi0wMy0wOSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGNvdmVyaXR5IDc1OiBlbnN1cmUgZnJlZSBpbiByYXJlIGNhc2Ugd2hlcmUgb3RoZXIgc2lkZSBvZiB0cmFuc3BvcnQgbm90IGZvdW5kIChzaG91bGRuJ3QgZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA5IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWlzYyBlcnJvciBjaGVja2luZyAodW5uZWVkZWQgYnkgb3RoZXIgbG9naWMsIGJ1dC4uLiAgd2h5IG5vdCkKCjIwMDYtMDMtMDkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgMzQ6IGNoZWNrIHRoYXQgdXNtIHdhc24ndCBhY3R1YWxseSBpbGxlZ2FsbHkgcGFzc2VkIGEgbnVsbCBzZXNzaW9uIChzaG91bGQgaGF2ZSBiZWVuIHN0b3BwZWQgbG9uZyBiZWZvcmUgbm93KQoKMjAwNi0wMy0wOSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBjb3Zlcml0eSBtdWx0aXBsZTogY2hlY2sgYSBmZXcgcG9pbnRlcnMgZm9yIG51bGwgcmVmcyBqdXN0IGluIGNhc2UKCjIwMDYtMDMtMDkgMTI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0ZXh0X3V0aWxzLmMsIHZhY20uYzoKCiAgIGNvdmVyaXR5IDc5OiBmcmVlIG1lbW9yeSBpbiBlcnJvciBjb25kaXRpb24gc3BvdHMKCjIwMDYtMDMtMDkgMTI6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgYWxsb3cgZm9yIHF1ZXN0aW9uYWJseSBsZWdhbCBudWxsIGNvbW11bml0eSBzdHJpbmdzCgoyMDA2LTAzLTA5IDEyOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb3Zlcml0eSA2MTogY2hlY2sgcmV0dXJuIHZhbHVlIGZyb20gaW4gdHJlZSB0byBlbnN1cmUgaXQncyBub3QgbmVnYXRpdmUKCjIwMDYtMDMtMDkgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvdmVyaXR5IDgwOiBmcmVlIHZibGlzdCBpbiBzb21lIGZhaWx1cmUgY2FzZXMKCjIwMDYtMDMtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYzoKCiAgIGNvdmVyaXR5IDgzOiBmcmVlIG1lbSBvbiBzaG91bGQtbmV2ZXItZ2V0LWhlcmUgc3BvdAoKMjAwNi0wMy0wOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgZnJlZSBtZW1vcnkgb24gb3RoZXIgbWFsbG9jIGZhaWx1cmVzCgoyMDA2LTAzLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgbW9yZSBjb21tYW5kIGxpbmUgZmxhZ3MgZm9yIGZhc3RlciBwYXRjaCBhcHBsaWNhdGlvbgoKMjAwNi0wMy0wOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgY2hlY2sgZm9yIG51bGwgb3duZXIgaW4gMiBvdGhlciBzcG90cwoKMjAwNi0wMy0wOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTcvNDg6IGZyZWUgbG9zdCBtZW1vcnkgb24gaWxsZWdhbCB0YWJsZTsgY2hlY2sgZm9yIG51bGwgdGhhdCBzaG91bGRuJ3QgZXZlciBiZQoKMjAwNi0wMy0wOSAxMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTY6IGZpeCBwb3RlbnRpYWwgbGVhayB3aGVuIG1hbGxvYyBmYWlscwoKMjAwNi0wMy0wOSAxMDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgZnJlZSBhIGhhbmRsZXIgaWYgYSBzdWJzZXF1ZW5jZSBtYWxsb2MgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGNvdmVyaXR5IDk4LTEwMDogZnJlZSBzdWNjZXNzIG1hbGxvY3Mgd2hlbiBvbmUgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgY292ZXJpdHkgMTAyLzEwMTogaW4gY2FzZSBvZiBtYWxsb2MgZmFpbHVyZXMgZnJlZSB3aGF0IHlvdSBoYXZlIHN1Y2NlZWQgaW4gbWFsbG9jaW5nCgoyMDA2LTAzLTA5IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbmV2ZXItc2hvdWxkLWJlLW51bGwgY29uZGl0aW9ucyBhcmUgdHJ1ZQoKMjAwNi0wMy0wOSAwOTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBjb3Zlcml0eSA5MTogZnJlZSB2YXJpb3VzIG1lbW9yeSBhbGxvY2F0aW9ucyB3aGVuIHN1YnNlcXVlbnQgYWxsb2NhdGlvbnMgZmFpbAoKMjAwNi0wMy0wOSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGNvdmVyaXR5ICM0MTogbm90IGxpa2VseSBhIHJlYWwgbnVsbCBkZXJlZiBmb3IgdmFsaWQgdXNlIGNhc2VzOyBjYXNlcy4gIGRvdWJsZSBjaGVjayBmb3IgaXNzdWVzIGFueXdheQoKMjAwNi0wMy0wOSAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBGdWxsZXIgaW1wbGVtZW50YXRpb24gb2YgbWVtb3J5IEhBTCBmb3IgU29sYXJpcyAoMTAgYXQgbGVhc3QpCgoyMDA2LTAzLTA5IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGNvdmVyaXR5IDUwOiBkb3VibGUgY2hlY2sgd2UgY291bGQgZmluZCB0aGUgZXh0ZW5zaW9uIHRvIHJlbW92ZQoKMjAwNi0wMy0wOSAwODozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBjb3Zlcml0eSA1MTogZG91YmxlIGNoZWNrIHdlIGNvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbiB0byByZW1vdmUKCjIwMDYtMDMtMDkgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgZW5zdXJlIGlsbGVnYWwgY29uZmlndXJhdGlvbiBvZiB0b28gbG9uZyBPSURzIGRvZXNuJ3Qgb2NjdXIKCjIwMDYtMDMtMDkgMDg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBjb3Zlcml0eSA2NjogY2hlY2sgdGhhdCBudWxsIGlzbid0IHdyaXR0ZW4gYmV5b25kIGVuZAoKMjAwNi0wMy0wOSAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgY292ZXJpdHkgNjc6IGVuc3VyZSB3ZSBkb24ndCB3cml0ZSB0aGUgbnVsbCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyCgoyMDA2LTAzLTA5IDA4OjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYSBzY3JpcHQgdG8gaGVscCBhdXRvbWF0dGVkIHBhdGNoIG1hbmFnZW1lbnQgYW5kIGFwcGx5IHBhdGNoZXMgdG8gbXVsdGlwbGUgYnJhY2hlcyBvZiB0aGUgbmV0LXNubXAgdHJlZQoKMjAwNi0wMy0wOSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSA5MjogZnJlZSBkYXRhIHN0cnVjdHVyZSBpbiBldmVudCBzb21laG93IGFuIHVuc3VwcG9ydGVkIGRhdGEgdHlwZSBpcyBwYXNzZWQgaW4gKGNhbid0IGFjdHVhbGx5IGhhcHBlbiB3aXRoIGN1cnJlbnQgY29kZSkKCjIwMDYtMDMtMDkgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgOTM6IGZyZWUgcG9pbnRlcnMgd2hlcmUgbWFsbG9jIHN1Y2NlZWRlZCBpZiBpdCBzdWRkZW5seSBzdG9wcGVkIHN1Y2NlZWRpbmcKCjIwMDYtMDMtMDkgMDc6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICB0eXBvCgoyMDA2LTAzLTA5IDA3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgY292ZXJpdHkgIzEwNTogZnJlZSBzdG9yYWdlIGluIGVycm9yIGxvb3AKCjIwMDYtMDMtMDggMjE6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGNvdmVyaXR5IDUyOiByYXJlIChuZXZlcikgZGVyZWZlcmVuY2UgaW4gaWxsZWdhbCBjb2RlIGNhc2VzLgoKMjAwNi0wMy0wOCAyMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAxMDY6IHJhcmUgbWVtb3J5IGxlYWsgb24gaWxsZWdhbCBhZ2VudHggcGR1J3MgYmVpbmcgcGFzc2VkIHRvIHRoZSBjbGllbnQKCjIwMDYtMDMtMDggMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGNvdmVyaXR5IDExMjogY2xvc2UgZmlsZSBoYW5kbGUgZm9yIC9wcm9jL25ldC9hcnAKCjIwMDYtMDMtMDggMjE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgY292ZXJpdHkgYnVnICMxMTM6IGZjbG9zZSBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBpbiBlcnJvciBsb29wCgoyMDA2LTAzLTA4IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBjb3Zlcml0eSBidWcgIzUzOiBjaGVjayB0aGF0IGNsb3NlX2FnZW50eF9zZXNzaW9uIHdhc24ndCBwYXNzZWQgYSBOVUxMIHNlc3Npb24KCjIwMDYtMDMtMDggMTY6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGNvdmVyaXR5ICMxMDc6IGZpeCByYXJlIHBkdSBtZW1vcnkgbGVhayB3aGVuIGZ1bmN0aW9uIGNhbGxlZCBpbGxlZ2FseQoKMjAwNi0wMy0wOCAxNjowMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgKmF0IGxlYXN0KiBpc3N1ZSBhIFdBUk5JTkcgaWYgd2UnbGwgY3JlYXRlIG5vbi1wb3J0YWJsZSB0YXIgYXJjaGl2ZXMganVzdCBiZWNhdXNlIHRoZSByZWxlYXNlIG1hbmFnZXIgZmFpbGVkIHRvIGluc3RhbGwgc3Rhci4KCjIwMDYtMDMtMDggMTU6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA4OiBzdGlsbCBzaG91bGQgZnJlZSBtZW1vcnkgaW4gdGhlIG5ldmVyLXNob3VsZC1oYXBwZW4gY2FzZQoKMjAwNi0wMy0wOCAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBjb3Zlcml0eSAjMTA5OiBjbG9zZSBmaWxlIHBvaW50ZXIgaW4gZXJyb3IgY29uZHRpb25zIHRvIGF2b2lkIHBvdGVudGlhbCByYXJlIGxlYWtzCgoyMDA2LTAzLTA4IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY292ZXJpdHkgYnVnIDg1LCByMTU6IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKCjIwMDYtMDMtMDggMTQ6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGNvdmVyaXR5IGJ1ZyA0MCwgcnVuIDE1OiBmaXggcG90ZW50aWFsIG51bGwgZGVyZWZlcmVuY2UKICAgLSBtaXNjIG90aGVyIGNsZWFudXAvZXJyb3IgaGFuZGxpbmcKICAgICAtIHJlbGVhc2UgbWVtb3J5IHRoYXQgd29uJ3QgYmUgdXNlZCBiZWZvcmUgcmV0dXJuaW5nIGVycm9ycwogICAgIC0gY2hlY2sgZm9yIHBvdGVudGlhbCBudWxsIHJldHVybiBmcm9tIGZ1bmN0aW9uCiAgICAgLSBhc3NpZ24gdmFsdWVzIHRvIGNvcnJlY3QgdmFyaWFibGUKCjIwMDYtMDMtMDggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMjk6IGNoZWNrIHNlc3Npb24gb3BlbiByZXN1bHRzIHdoZW4gZm9yd2FyZGluZyBhbmQgYmFpbCBpZiBmYWlsZWQgdG8gb3BlbgoKMjAwNi0wMy0wOCAxNDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIGNoZWNrIGZvciBudWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDA2LTAzLTA4IDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNTogY2hlY2sgZm9yIG1hbGxvYyBmYWlsdXJlIGJlZm9yZSB1c2luZyB0aGUgcmVzdWx0cwoKMjAwNi0wMy0wOCAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNjogY2hlY2sgKGFueXdheSkgZm9yIG51bGwgaW4gdmFyaWFibGVzIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDYtMDMtMDggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTE3OiBkb3VibGUgY2hlY2sgdGhhdCBwb2ludGVyIGlzbid0IG51bGwgZm9yIHNhZmUgcHJvZ3JhbW1pbmcgKHNob3VsZCBuZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA4IDEzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzExODogZG91YmxlIGNoZWNrIHRoYXQgcG9pbnRlciBpc24ndCBudWxsIGZvciBzYWZlIHByb2dyYW1taW5nIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOCAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIwOiBhdm9pZCBhIHBvc3NpYmxlIGRlZmVyZW5jZSB0byBhIGZyZWVkIHZhcmlhYmxlCgoyMDA2LTAzLTA4IDEzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBjb3Zlcml0eSBidWcgIzEyMjogcmV0dXJuIE5VTEwgYWZ0ZXIgZmFpbGluZyB0byBvcGVuIHRyYW5zcG9ydC4KCjIwMDYtMDMtMDggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIzOiBhdm9pZCBkb3VibGUgZnJlZSBmb3IgbG9uZyBPSUQgY2FzZXMgZHVyaW5nIGdldG5leHQKCjIwMDYtMDMtMDggMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIHN0YXIgYmVmb3JlIHVzaW5nCgoyMDA2LTAzLTA4IDEwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHVzZSBzdGFyIGlmIGF2YWlsYWJsZQoKMjAwNi0wMy0wOCAwNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBhIHZlcnkgcmFyZSBvaWQgcGFyc2luZyBidWcgZm9yIHN0cmluZ3MgaW4gdHJ1bmNhdGVkIE9JRHMKCjIwMDYtMDMtMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfd2luLmM6CgogICBXaW5kb3dzIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDMtMDggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRXh0cmEgcHJvdGVjdGlvbiB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCgoyMDA2LTAzLTA3IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA0OiByYXJlIGNhc2UgbWVtb3J5IGxlYWsgaWYgeW91J3JlIG91dCBvZiBtZW1vcnkgaW4gdGhlIGZpcnN0IHBsYWNlCgoyMDA2LTAzLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGNvdmVyaXR5IGJ1Z3MgIzExOSBpbml0aWFsaXplIDIgcG9pbnRlcnMgdG8gMAoKMjAwNi0wMy0wNyAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSBidWcgIzEzMjogZnJlZSB2YXJpb3VzIHBvaW50ZXJzIGluIGVycm9yIGxvb3BzCgoyMDA2LTAzLTA3IDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTMzOiBmcmVlIGtleSBhZnRlciBtYWxsb2MgaW4gZXhpdCBsb29wIGFmdGVyIG9wZW5zc2wgZmFpbGVkCgoyMDA2LTAzLTA3IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBjb3Zlcml0eSBidWcgIzEzNDogZnJlZSBuZXdwZHUgZHVyaW5nIGEgdmFjbS1ub3QtY29uZmlndXJlZCBiYWlsLW91dAoKMjAwNi0wMy0wNiAwODoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFVwZGF0ZSBNZW1vcnkgSEFMIGZyYW1ld29yayB0byBzdXBwb3J0IEhvc3RSZXMgc3RvcmFnZQogICBpbmZvcm1hdGlvbiwgYW5kIHR3ZWFrIGhyU3RvcmFnZVRhYmxlIGltcGxlbWVudGF0aW9uIHRvIHVzZSBpdC4KICAgVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgb24ge0ZyZWUsTmV0LE9wZW59QlNELCBMaW51eCBhbmQgSFAtVVguCiAgIEl0J3MgcHJvYmFibHkgc3RpbGwgYnJva2VuIG9uIEFJWCwgRGFyd2luLCBEeW5peCBhbmQgU29sYXJpcwogICAoYW5kIGFueSBzeXN0ZW0gbm90IGV4cGxpY2l0bHkgbWVudGlvbmVkPykKCjIwMDYtMDMtMDYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgRml4IHJldHJpZXZhbCBvZiBmaWxlc3lzdGVtIGluZm9ybWF0aW9uIG9uIE5ldEJTRAoKMjAwNi0wMy0wNiAwMzozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFN1cHBvcnQgVUNEIG1lbW9yeS9jcHUgTUlCcyBvbiBPcGVuQlNEIDMueAoKMjAwNi0wMi0yNyAwNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFR3ZWFrIFVDRCBtZW1vcnkgY29uZmlndXJlIHByb2Nlc3NpbmcgdG8gd29yayB3aXRoIHRoZSBtb3N0IHJlY2VudAogICBPcGVuQlNEIGFuZCBOZXRCU0QgcmVsZWFzZXMsIGFuZCB0byB1c2UgdGhlIG1lbW9yeSBIQUwKCjIwMDYtMDItMjcgMDQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVHdlYWsgbWVtb3J5IEhBTCBjb25maWd1cmUgcHJvY2Vzc2luZyB0byB3b3JrIHdpdGggdGhlIG1vc3QgcmVjZW50CiAgIE9wZW5CU0QgYW5kIE5ldEJTRCByZWxlYXNlcwoKMjAwNi0wMi0yNyAwNDoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LzogbWVtb3J5X2ZyZWVic2QuYywKICAgICBtZW1vcnlfbmV0YnNkLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCBtZW1vcnkgSEFMIGNvZGUgb24gKkJTRCBzeXN0ZW1zCgoyMDA2LTAyLTI3IDA0OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIFVwZGF0ZSBVQ0QgbWVtb3J5IGdyb3VwIHRvIG1ha2UgcHJvcGVyIHVzZSBvZiBtZW1vcnkgSEFMIHJvdXRpbmVzCgoyMDA2LTAyLTI3IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVXBkYXRlIGRlZmluaXRpb25zIHRvIG1hdGNoIG5ldyBtZW1vcnkgSEFMIGNvZGUKCjIwMDYtMDItMjQgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgbWVtb3J5IEhBTCBmb3IgdGhlIFVDRCBtZW1vcnkgZ3JvdXAgKGFsbCBhcmNoaXRlY3R1cmVzKS4KICAgVGhpcyB3aWxsIHByb2JhYmx5IGJyZWFrIHRoZSBhZ2VudCBvbiBhbGwgYmFyIExpbnV4IHN5c3RlbXMKICAgYW5kIG1ha2UgZXZlcnlvbmUgKGluY2x1ZGluZyBUaG9tYXMpIHVuaGFwcHkuCiAgIFNvIHRoZSBjeWNsZSBvZiBsaWZlIGNvbnRpbnVlcy4gIE9oIEZvcnR1bmEuLi4uCgoyMDA2LTAyLTI0IDA4OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X2FpeC5jCiwgbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywgbWVtb3J5L21lbW9yeV9keW5peC5jLAogICAgIG1lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCBtZW1vcnkvbWVtb3J5X2hwdXguYywKICAgICBtZW1vcnkvbWVtb3J5X2xpbnV4LmMsIG1lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBFeHRlbmQgbWVtb3J5IEhBTCB0byBjb3ZlciBhbGwgKHdlbGwsIG1vc3QpIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgogICBOb3QgeWV0IHRlc3RlZCBvbiBtb3N0IG9mIHRoZXNlIHN5c3RlbXMsIHNvIHRoZXJlIG1heSBlYXNpbHkgYmUgcHJvYmxlbXMuCiAgIEJ1dCBhdCBsZWFzdCB0aGlzIHNob3VsZCBzZXJ2ZSB0byBrZWVwIFRob21hcyBoYXBweS4uLi4KCjIwMDYtMDItMjIgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLzogZXhwRXJyb3JUYWJsZS5jLAogICAgIGV4cEV4cHJlc3Npb24uYywgZXhwRXhwcmVzc2lvbi5oLCBleHBFeHByZXNzaW9uQ29uZi5jCiwgZXhwRXhwcmVzc2lvbkNvbmYuaCwgZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgZXhwT2JqZWN0LmMsIGV4cFZhbHVlLmMsIGV4cFZhbHVlLmgsCiAgICAgZXhwVmFsdWVUYWJsZS5jLCBleHBfZW51bS5oOgoKICAgSW1wcm92ZWQgZXhwcmVzc2lvbiBwYXJzaW5nLCBhbmQgcHJlbGltaW5hcnkgZXZhbHVhdGlvbiBvZiBleHByZXNzaW9ucy4KCjIwMDYtMDItMjAgMTU6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBSZW1vdmUgaGlzdG9yaWMgcmVmZXJlbmNlcyB0byB0YXIgcHJvYmxlbXMgKGF0IGV2ZW4gbW9yZSBwbGFjZXMpCgoyMDA2LTAyLTIwIDE1OjM4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgUmVtb3ZlIGhpc3RvcmljIHBhcmFncmFwaCBvbiB0YXIgcHJvYmxlbXM6LSkKCjIwMDYtMDItMjAgMTU6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIChmdXJ0aGVyKSBjbGFyaWZ5IHRoZSBvcmlnaW5hbCBHTlUgdGFyIHByb2JsZW1zCgoyMDA2LTAyLTIwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIHN0YXIgaW5zdGVhZCBvZiB0YXIgZm9yIGNyZWF0aW5nIGFyY2hpdmVzIHRvIGdldCBhcm91bmQgZ251IHRhciBpbmNvbXBhdGliaWxpdGllcwoKMjAwNi0wMi0xNyAwNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC1maXggYnVnIDEzOTk0MjE6IDUuMis6IHR1bm5lbCBtaWIgZmFpbHMgdG8gYnVpbGQgdy8gaWYtbWliIHJld3JpdGUKCjIwMDYtMDItMTYgMTU6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCBUMDQ5c25tcHYzaW5mb3JtCiwgVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDU3dHJhcGRhdXRodGVzdCwKICAgICBUMDU3dHJhcGRhdXRodGVzdDIsIFQwNTd0cmFwZGF1dGh0ZXN0MywKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgYWRkICItdCAkU05NUF9TTEVFUCIgdG8gc25tcGluZm9ybSBpbiBvcmRlciB0byBhdm9pZCB0ZXN0IGZhaWx1cmVzIG9uIHNsb3cgbWFjaGluZXMgZXZlbiB3aXRoIGFuIGluY3JlYXNlZCBTTk1QX1NMRUVQIChmaXhlcyBidWcgMTQwMzY4OCkKCjIwMDYtMDItMTUgMTY6MjcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDE2OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDQ5c25tcHYzaW5mb3JtYXV0aAosIFQwNDlzbm1wdjNpbmZvcm1wcml2LCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0LCBUMDU3dHJhcGRhdXRodGVzdDIsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QzLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDEwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGdldHRhYmxlOiAgZml4IHJlcGVhdCBjb3VudCBmb3IgU05NUHYxICYgZml4IC1jb2x1bW5zIHRvIGFjdHVhbGx5IHdvcmsKCjIwMDYtMDItMTQgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBSZWdpc3RlciBpZk51bWJlciBhcyBhIHNjYWxhciBvYmplY3QsIG5vdCBhbiBpbnN0YW5jZSwgc28gdGhhdAogICBpdCBoYW5kbGVzIGludmFsaWQgaW5zdGFuY2VzIHByb3Blcmx5LCBhbmQgZml4IE9JRCByZWdpc3RyYXRpb24uCgoyMDA2LTAyLTEzIDE3OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFBTREsgZG93bmxvYWQgaW5zdHJ1Y3Rpb25zLgoKMjAwNi0wMi0xMyAxNTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBmaXggYnVnIDEzOTkzNjk6IGlmTnVtYmVyIGJyb2tlbgoKMjAwNi0wMi0xMyAxMDo0OSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgYWRkIDUuMy4wLjEgc2VjdXJpdHkgZml4IGFuZCBzbXV4IHRyYXAgcGF0Y2gKCjIwMDYtMDItMTMgMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggdHJhcCBwcm9jZXNzaW5nIGZyb20gU01VWCBwZWVycyAocGF0Y2ggMTQzMDgyNCBmcm9tIERlbGwsIHN1Ym1pdHRlZCBieSBTdVNFKQoKMjAwNi0wMi0xMyAwNzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW5jcmVhc2UgbnVtYmVyIG9mIHJldHJpZXMgZm9yIHBvcnQgcHJvYmluZyB0byBsb3dlciB0aGUgY2hhbmNlIGZvciBzcHVyaW91cyB0ZXN0IGZhaWx1cmVzCgoyMDA2LTAyLTExIDE1OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIHNldCBwZXJzaXN0ZW50RGlyIGZvciBzbm1wdHJhcGQgaW4gb3JkZXIgdG8gYXZvaWQgYmVpbmcgaW52YXNpdmUgKHNlZSBidWdzIDE0MDM2ODgsIDE0MjQyOTMpCgoyMDA2LTAyLTEwIDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhIHRhbmdsZWQgd2ViIG9mIGZpeGVzIGZvciBvdmVycmlkZQogICAgIC0gYmFjayBvdXQgZml4IGZvciA3MTE0NjU6IG92ZXJyaWRlIGRpcmVjdGl2ZSBpZ25vcmVkIHdpdGggc25tcGJ1bGtnZXQKICAgICAtIGFwcGx5IG5ldyBmaXhlcyBmb3IgNzExNDY1IChzZWUgYnVnIHJlcG9ydCBmb3IgZ29yeSBkZXRhaWxzKQogICAgIC0gYWxzbyBmaXggb3ZlcnJpZGUgb2YgdGFibGUgaW5zdGFuY2UsIHJlcG9ydGVkIG9uIGNvZGVycwogICAtIGFuZCwgcXVvdGluZyBEYXZlOgoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAyLTA2IDE1OjM2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGNoZWNrcyBmb3IgInN0cnVjdCBubGlzdDY0Iiwgb2ZmNjRfdCBhbmQgbHNlZWs2NCAoZm9yIElSSVggYW5kIGZyaWVuZHMpCgoyMDA2LTAyLTA0IDE0OjMyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgIm1ha2UiIG9uIFNOTVBfRVJSX05PRVJST1IKCjIwMDYtMDItMDMgMTc6MzIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGJhY2tpbmcgb3V0IHByZXZpb3VzIHBhdGNoICh3aGljaCBicmVha3MgdGVzdCAjMjQgIlNOTVB2MyB0cmFwcyByZWNlaXZlZCBhbmQgc2VudCBieSB0b29scyIpIHVudGlsIHNvbWVvbmUgZmluZHMgdGhlIHRpbWUgdG8gcmV2aWV3IGl0IGFnYWluCgoyMDA2LTAyLTAzIDE2OjM2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBmaXggdHlwbwoKMjAwNi0wMi0wMiAxOTozMSAgYWxleF9iCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggZm9yIGJ1ZyAxNDIwNzU4LiAgTWlzc2luZyBjYWxsICh0eXBvPykgZm9yIEZEX1pFUk8oJmV4Y2VwdGZkcykuCgoyMDA2LTAyLTAyIDE0OjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gdXNlIHRyZWVfaGVhZCBpZiB0cmVlX3RvcCB3YXMgTlVMTC4gaGFuZGxlcyBib3RoIE9JRCBhbmQgbmFtZSBsb29rdXBzCgoyMDA2LTAyLTAxIDE4OjU4ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGxtU2Vuc29ycy5jLCBsbVNlbnNvcnMuaDoKCiAgIGluY29ycG9yYXRlIG1ham9yIHBhdGNoZXMgYnkgTWlrZSBGaXNoZXIgYW5kIFRvbSBFLiBMYWNrbGV5CgoyMDA2LTAyLTAxIDA5OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcmV2ZXJ0IGNoYW5nZXMgZnJvbSB2ZXJzaW9uIDUuODgsIHdoaWNoIGJyb2tlIHBhcnNpbmcgZnVsbHkgcXVhbGlmaWVkCiAgICAgbmFtZWQgT0lEcyAoZWcgLmlzby5vcmcpLiBBbm90aGVyIGZpeCBmb3IgcGFyc2luZyBudW1lcmljIE9JRHMgYmVmb3JlCiAgICAgTUlCIGZpbGVzIGFyZSBsb2FkZWQgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkLgoKMjAwNi0wMS0zMSAxMDozMSAgdGFuZGVycwoKICAgKiBtYW4vOiBtaWIyYy5leHRyYWN0LnBsLCBzbm1wbmV0c3RhdC4xLmRlZjoKCiAgIGZpeCBtYW51YWwgcGFnZSBmb3JtYXR0aW5nIGVycm9ycyAoRGViaWFuIHBhdGNoICMxNywgb3JpZ2luYWwgYXV0aG9yIE5pY29sYXMgRnJhbmNvaXMpCgoyMDA2LTAxLTMxIDA5OjI3ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRml4IEJlZ2luIHNvdXJjZSAvIGVuZCBzb3VyY2UgbGluZXMuICBCdWcgMTQwNDQwMi4KCjIwMDYtMDEtMzEgMDQ6NTEgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jCjoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMxIDA0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFVEUERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgdG9vbHMuYzoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMwIDA0OjA3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICBGaXggYXNzb3J0ZWQgdW5zaWduZWQgY29tcGFyaXNvbnMgYWdhaW5zdCAwLiAgKFNlZSBCdWcgIzEzOTc4OTEpCgoyMDA2LTAxLTMwIDAzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDb3JyZWN0IGltcHJvcGVyIHVzZSBvZiAnbmV0c25tcF9oZXhfdG9fYmluYXJ5JwogICAoTXkgbWlzdGFrZSwgbm90IFJhZGVrJ3MpCgoyMDA2LTAxLTMwIDAzOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBIYW5kbGUgZnVsbC1sZW5ndGggSVB2NiBhZGRyZXNzZXMuICBGaXggc3VwcGxpZWQgYnkgUmFkZWsgVm9r4KWG4KSF4KSG4KWG4KSFgWwKCjIwMDYtMDEtMzAgMDE6NTIgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBEb24ndCBzYXZlIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbiB1bnRpbCBydW5uaW5nIHVzZXIvZ3JvdXAgaGF2ZSBiZWVuCiAgIHJlc2V0LiAgQmFzZWQgb24gcGF0Y2ggIzEzNzEwNzguCgoyMDA2LTAxLTMwIDAxOjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBVcGRhdGUgaGFuZGxpbmcgb2YgZW5kT2ZNaWJWaWV3IGV4Y2VwdGlvbnMuICBQYXRjaCAjMTA0NzcwNgoKMjAwNi0wMS0zMCAwMTozNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3VwcG9ydCBmb3IgcmVhZGluZy9zdG9yaW5nIElQIGFkZHJlc3MgdmFsdWVzLiAgRXhwYW5kZWQgZnJvbSBwYXRjaCAjMTA3NzAwCgoyMDA2LTAxLTMwIDAxOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBEb24ndCByZWxlYXNlIHRoZSByZXNwb25zZSBQRFUgcHJlbWF0dXJlbHksIGJlZm9yZSB0cnlpbmcgdG8KICAgZXh0cmFjdCBPSURzIGZyb20gaXQuICBQYXRjaCAjMTI3NzUwOC4KCjIwMDYtMDEtMzAgMDE6MjYgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBmaXggUEFUSCB0eXBvCgoyMDA2LTAxLTI3IDExOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvIHVuZG8gcmVmIGNvdW50IHZpYSByb3dyZXFfY3R4LCBub3QgZGF0YV9saXN0CgoyMDA2LTAxLTI3IDA5OjI2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9TTk1QL1NOTVAueHMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgSGFuZGxlIG5vbi1pbmNyZWFzaW5nIE9JRHMgZHVyaW5nIGEgKHBlcmwpIGJ1bGt3YWxrLgogICBQYXRjaCAjMTM2NDY1MCBmcm9tIE9sZSBCauClhuCkheCkhuClhuCkhZpybiBIZXNzZW4KCjIwMDYtMDEtMjcgMDM6MDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIHZhbHVlcyBtb3JlIGdyYWNlZnVsbHkuCgoyMDA2LTAxLTI2IDA5OjAyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIEFwcGx5IFBhdGNoICMxMzk0MDY4IHRvIE1mRCBnZW5lcmF0ZWQgdGVtcGxhdGVzLgoKMjAwNi0wMS0yNSAwODoyNSAgZHRzMTIKCiAgICogZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMKLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnNfbG9jYWwuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMKLCBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9pbnQ2NC5jLAogICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvb2lkX3N0YXNoLmMsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90ZXh0X3V0aWxzLmMsCiAgICAgc25tcGxpYi90b29scy5jOgoKICAgQ29tcHJlaGVuc2l2ZSByZXZpZXcgb2YgaW4tbGluZSBkb2N1bWVudGF0aW9uLgogICBBIG1vc3QgaW1wcmVzc2l2ZSBlZmZvcnQgYnkgIE5hemltIEJhaXppZCAgKFBhdGNoICMxMzk0MDY4KQoKMjAwNi0wMS0yNSAwNzozNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIERvbid0IGJlIGluIHN1Y2ggYSBydXNoIHRvIHJlbGVhc2UgTUlCIHJlZ2lzdHJhdGlvbiBzdHJ1Y3R1cmUuCiAgIFNlZSBQYXRjaCAjMTM4NjUyOAoKMjAwNi0wMS0yNSAwNzozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIEFkZGl0aW9uYWwgZGVidWdnaW5nIGluZm8KCjIwMDYtMDEtMjQgMDg6MjEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbGVhc2UgbWVtb3J5IGJlZm9yZSByZS1hbGxvY2F0aW5nIGl0LiAgU2VlIFBhdGNoICMxNDA3MTczCgoyMDA2LTAxLTI0IDA4OjAyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEltcHJvdmVkL2ZpeGVkIHBlcmwgd2FybmluZ3MuICBTZWUgUGF0Y2ggIzEzMzQ1OTgKCjIwMDYtMDEtMjQgMDY6NDAgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ2hlY2sgIlRpbWVTdGFtcCIgcmVmZXJlbmNlIGJlZm9yZSB1c2UgKGluIGxpbmUgd2l0aAogICB0aGUgb3RoZXIgb2NjdXJhbmNlcyBpbiB0aGlzIGZpbGUpLiAgU2VlIEJ1ZyAjMTM3NTI4MgoKMjAwNi0wMS0yNCAwNjozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIENoZWNrIGZvciBtaXNzaW5nIG1vbml0b3JlZCB2YWx1ZXMgKHNlZSBCdWcgIzE0MDQ2MDUpCgoyMDA2LTAxLTI0IDA1OjQ3ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIERvbid0IG92ZXJyaWRlIGFuIGV4cGxpY2l0IERFRlBSSVZUWVBFIHNldHRpbmcsCiAgIGV2ZW4gaWYgdGhlIGxpYnJhcnkgZG9lc24ndCBzdXBwb3J0IGVuY3J5cHRpb24uCgoyMDA2LTAxLTI0IDAxOjUxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVwbGFjZSAiPT0iIGJ5ICI9IiB3aGVuIHVzaW5nICJ0ZXN0IiAocmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDYtMDEtMjMgMDc6MDUgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBOZXcgaGFuZGxlciB0byBmb3J3YXJkIHRyYXBzIHZpYSB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudC4KCjIwMDYtMDEtMjAgMTU6MTYgIHRhbmRlcnMKCiAgICogTkVXUywgYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgaW50cm9kdWNlIG5ldyBzbm1wdXNtIG9wdGlvbiAtQ3AgdG8gc2V0IHVzbVVzZXJQdWJsaWMgdmFsdWUKCjIwMDYtMDEtMjAgMDk6MDEgIGR0czEyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQKLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0LAogICAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgTW9kdWxhciBhcHByb2FjaCBmb3IgcHJvYmluZyB0byBkZXRlY3QgZnJlZSBwb3J0cy4gIFNlZSBCdWcgIzEzMzU3NjcKCjIwMDYtMDEtMTggMTY6MDYgIHRhbmRlcnMKCiAgICogTkVXUywgYXBwcy9zbm1wdXNtLmM6CgogICBBdm9pZCBleHBlbnNpdmUgZ2VuZXJhdGVfS3UoKSBpZiBuZXdwYXNzIGlzIGEgbG9jYWxpemVkIGtleSAoaW5zdGVhZCBvZiBhIHBhc3NwaHJhc2UpLiBNYWtlcyBhIGh1Z2UgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgdGhlbi4KCjIwMDYtMDEtMTggMTE6MzQgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgdXNlIGJhc2UgYXJjaCAoZWcgaTM4Niwgbm90IGk2ODYpOyB1c2UgUlBNX0JBU0UgZm9yIHRvcGRpcgoKMjAwNi0wMS0xOCAwODoyNyAgZHRzMTIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgUmVnaXN0ZXIgUlBNcyBhcyBiZWluZyBidWlsdCBieSB0aGUgTmV0LVNOTVAgcHJvamVjdC4KCjIwMDYtMDEtMTggMDg6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgYmVlY3J5cHQtZGV2ZWwsIGVsZnV0aWxzLWxpYmVsZi1kZXZlbCB0byBCdWlsZFJlcXVpcmVzCgoyMDA2LTAxLTE4IDA3OjM1ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJlc3RvcmUgZmlsZSAobG9va3MgbGlrZSBWZXJzaW9uTXVuZ2UgbnVrZWQgaXQ/KTsgYnVtcCB2ZXJzaW9uIHRvIDUuNC5kZXYKCjIwMDYtMDEtMTggMDc6MTggIHRhbmRlcnMKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaXggdHlwbwoKMjAwNi0wMS0xNyAwNzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gb2Jzb2xldGUgKGFuZCBtaXNzaW5nKSByb3V0aW5lLiAgU2VlIEJ1ZyAjMTAxMTA1MQoKMjAwNi0wMS0xNyAwNjoyNiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUmVjb2duaXNlIHJhbmdlIHBhcnNpbmcgZXJyb3JzIHByb3Blcmx5LgoKMjAwNi0wMS0xNSAxMTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86CiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBiZXR0ZXIgY29vcGVyYXRpb24gZm9yIGludGVyZmFjZSB0YWJsZXMgdXNpbmcgc2hhcmVkIGNvbnRhaW5lcgogICAgIC0gdXNlIG9uZSBkaXJ0eSB2YXJpYWJsZQogICAgIC0gdXNlIG5ldyByZWYgY291bnRpbmcgdW5kbyBhbGxvYy9mcmVlIGZ1bmN0aW9uIGZyb20gaWZUYWJsZQoKMjAwNi0wMS0xNSAwNjoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgcmVtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyAoZG9uZSBlbHNld2hlcmUpCgoyMDA2LTAxLTE1IDA2OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gbW92ZSB1bmRvIGlmZW50cnkgaGFuZGxpbmcgaGVyZQogICAtIGFkZCByZWZlcmVuY2UgY291bnRpbmcgZm9yIHVuZG8KCjIwMDYtMDEtMTUgMDY6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBtb3ZlIHVuZG8gaWZlbnRyeSBoYW5kbGluZyBpbnRvIGludGVyZmFjZQoKMjAwNi0wMS0xMyAxNzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWxsb3cgd3JpdGUgc3VwcG9ydCBmb3IgbmV3IHVzZXIgdG8gdGVzdCBwYXN3b3JkIGNoYW5nZXMKCjIwMDYtMDEtMTMgMTU6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGZpeCBiaXR3aXNlIHRlc3QgdG8gdXNlIGJpdHdpc2UgbWFjcm9zCgoyMDA2LTAxLTEzIDA4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZG9uJ3QgZG91YmxlIGFsbG9jYXRlIHVuZG8gaWZlbnRyeQoKMjAwNi0wMS0xMyAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSBtb3ZlIGFsbCByZWZzIHRvIHVuZG8gcHJvbWlzYyBtb2RlIGluc2lkZSBwcm9taXNjIHNldCBlbmFibGUgaWZkZWZzCiAgIC0gaWYgcHJvbWlzYyBtb2RlIHNldCBlbmFibGVkLCBtYWtlIHN1cmUgdG8gYWxsb2NhdGUgdW5kbyBpZmVudHJ5CgoyMDA2LTAxLTEzIDA3OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBjb3JyZWN0IHByb2MgcGF0aCBmb3IgYmFzZSByZWFjaGFibGUgdGltZQogICAtIHVzZSBjb3JyZWN0IGZsYWcgZm9yIGJhc2UgcmVhY2hhYmxlIGF2YWlsYWJpbGl0eQogICAtIGFjdHVhbGx5IHB1dCBiYXNlIHJlYWNoYWJsZSB0aW1lIGluIGlmZW50cnkgYWZ0ZXIgcmVhZGluZyBpdAoKMjAwNi0wMS0xMSAxNToyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgKOgoKICAgSVJJWCBhdFRhYmxlIGZpeDogdXNlIHN5c2N0bCgpIGluc3RlYWQgb2Ygbmxpc3QoKSB0byBzdXBwb3J0CiAgIElSSVggKmFuZCogSVJJWDY0IGtlcm5lbHMgYXQgb25jZSBhbmQgbm90IHJlcXVpcmUgL2Rldi9rbWVtIGFjY2VzcwogICAocHJvcG9zZWQgYnkgSGVydmUgQm91bG91aXMpCgoyMDA2LTAxLTExIDE0OjA5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBzL3RoZSBhZ2VudC9zbm1wdHJhcGQvCgoyMDA2LTAxLTExIDE0OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNi0wMS0xMSAxMzozNyAgdGFuZGVycwoKICAgKiBGQVE6CgogICBmaXggYWNjaWRlbnRhbCBtYW5nbGluZwoKMjAwNi0wMS0xMSAxMjo0MCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIGJ1aWxkIGZpeDogI2luY2x1ZGUgPGxpbWl0cy5oPiB0byBjb3ZlciByZWNlbnRseSBpbnRyb2R1Y2VkIExPTkdfTUFYCiAgIC0gd3JhcCAiI2lmIEhBVkVfU1lTX1NUQVRfSCIgYXJvdW5kICIjaW5jbHVkZSA8c3lzL3N0YXQuaD4iCiAgIC0gcmVtb3ZlIG9sZCBjaGFuZ2Vsb2cgZnJvbSB0aGUgdG9wIG9mIHRoZSBmaWxlCgoyMDA2LTAxLTExIDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFNFVCBzdXBwb3J0IGZvciBtYW5pcHVsYXRpbmcgdGhlIHJvdXRpbmcgdGFibGUgaXNuJ3QgcmVhbGx5IGltcGxlbWVudGVkCiAgIHByb3Blcmx5IChleGNlcHQgb24gQ3lnd2luKSwgc28gd2Ugc2hvdWxkbid0IHByZXRlbmQgaXQgaXMuCgoyMDA2LTAxLTExIDA4OjMyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFJlZHVjZSByZWxpYW5jZSBvbiAobm9uLXRocmVhZC1zYWZlKSBnZXRob3N0YnluYW1lLiAgU2VlIEJ1ZyAjODM5Njc1CgoyMDA2LTAxLTExIDA4OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEb3duZ3JhZGUgdXBwZXItYm91bmQgcGFyc2luZyBwcm9ibGVtcyB0byBhIHdhcm5pbmcgLSBrZWVwIFRyb2dMIGhhcHB5Oi0pCiAgIERvbid0IHRoaW5rIHRoZSBjaGVjayBpcyBxdWl0ZSByaWdodCB5ZXQgdGhvdWdoOi0oCgoyMDA2LTAxLTExIDA3OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCcmluZyBjb2RlIHRlbXBsYXRlIGludG8gbGluZSB3aXRoIGZpbmFsIGhlbHBlciBBUEkuCgoyMDA2LTAxLTExIDA3OjA5ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDb3JyZWN0IGEgbWlzbGVhZGluZyBjb21tZW50LgoKMjAwNi0wMS0xMSAwNzowMiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQXNzb2NpYXRlIE1JQiBub2RlIHR5cGVzIHdpdGggdGhlICpsYXN0KiBlbnRyeSBwYXJzZWQgZnJvbSB0aGUKICAgZGVmaW5pdGlvbiB2YWx1ZSwgbm90IHRoZSBmaXJzdC4gIEZpeGVzIHByb2JsZW0gd2l0aCBNSUIgZGVmaW5pdGlvbnMKICAgdGhhdCB1c2UgaW50ZXJtZWRpYXRlIHN1YmlkZW50aWZpZXJzIChzZWUgYnVnICM3NTk0MTIpCgoyMDA2LTAxLTExIDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfcmVtb3ZlX3JvdygpCgoyMDA2LTAxLTEwIDEzOjQ1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIGZpeCBmb3JtYXQgc3RyaW5nIGJ1ZyAocmVwb3J0ZWQgYnkgZGFyaXggb24gSVJDKQoKMjAwNi0wMS0xMCAwODozNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgcmV0cnkgIm91dCBvZiByYW5nZSIgcmVzcG9uc2VzIHVubGVzcyB0aGVyZSdzIGFjdHVhbGx5IGEgdmFsdWUKICAgdG8gYmUgb3V0IG9mIHJhbmdlLiAgVGhpcyBwcm92ZWQgdG8gYmUgdGhlIHVuZGVybHlpbmcgY2F1c2Ugb2YgR2V0QnVsawogICByZXF1ZXN0cyBmYWlsaW5nIHRvIGhhbmRsZSBpbnN0YW5jZS1iYXNlZCByZWdpc3RyYXRpb25zLCBzdWNoIGFzCiAgICJvdmVycmlkZSIgZGlyZWN0aXZlcyAoU2VlIEJ1ZyAjNzExNDY1KQoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAxLTEwIDAzOjA3ICB0YW5kZXJzCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBDODkgY29tcGlsZXIgYnVpbGQgZml4IChidWcgMTM5ODU0NSkgcGFydCAyOiAiQSBkZWNsYXJhdGlvbiBjYW5ub3QgYXBwZWFyIGFmdGVyIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IGluIGEgYmxvY2suIgoKMjAwNi0wMS0wOSAxNzo0MSAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgQzg5IGNvbXBpbGVyIGJ1aWxkIGZpeCAoYnVnIDEzOTg1NDUpCgoyMDA2LTAxLTA5IDE3OjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgSVJJWCA2LjUgYnVpbGQgZml4OiBkb24ndCBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBiZWNhdXNlIGl0J3Mgbm90IG5lZWRlZCBhbmQgX0tNRU1VU0VSIGJyZWFrcyB0aGUgYnVpbGQKCjIwMDYtMDEtMDkgMTc6MDUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IElSSVggNi41ICJwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmcgZm9yIHN5cy92bm9kZS5oIGFuZCBzeXMvaGFzaGluZy5oCgoyMDA2LTAxLTA5IDEzOjUzICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgZG9uJ3QgaWdub3JlIHVjZC1zbm1wLWNvbmZpZy5oLCBzaW5jZSBpdCdzIG5vIGxvbmdlciBhIGdlbmVyYXRlZCBmaWxlCgoyMDA2LTAxLTA5IDEzOjM4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmV2ZXJ0IHRvIC0tZGlzYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGJlaW5nIHRoZSBkZWZhdWx0IGFnYWluCgoyMDA2LTAxLTA5IDExOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgYWxsIGVyciBsb2dzIGluIHJlc3VsdHMKCjIwMDYtMDEtMDkgMDk6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICByZXN0b3JlIGxvc3QgaWZMYXN0Q2hhbmdlIHRyYWNraW5nCgoyMDA2LTAxLTA5IDA3OjA2ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zCiwgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMwosIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zCiwgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBtYW4vbmV0c25tcF9oYW5kbGVyLjMKLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsCiAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwosIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMKLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICAgIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMwosIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zCiwgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMKLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBBZGp1c3QgZG94eWdlbiAiZGVmZ3JvdXAiIGNvbW1lbnRzIHRvIGltcHJvdmUgYXV0by1nZW5lcmF0ZWQgbWFuIHBhZ2UgZm9ybWF0LgogICBTZWUgYnVnICM4MzUzMjEKCjIwMDYtMDEtMDkgMDU6MDEgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcG9ydCBmYWlsdXJlIHRvIHBhcnNlIHJhbmdlcyBjb3JyZWN0bHkgKEJ1ZyAjNDExNTk0Lzc1NzEyMSkKCjIwMDYtMDEtMDYgMTU6MTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCB1ZHBUYWJsZSBvbiBTb2xhcmlzL3g4NjogaG9zdCBieXRlIG9yZGVyIGZvciB1ZHBMb2NhbFBvcnQgKGJ1ZyAxMzkzMTk3KQoKMjAwNi0wMS0wNiAxMzoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIGFkZCBpbnN0YW5jZSBoYW5kbGVyIGZvciBpbmV0Q2lkclJvdXRlTnVtYmVyCgoyMDA2LTAxLTA2IDA5OjQzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBzdWJ0cmFjdCBtdWx0aWNhc3QgcGFja2V0cyBmcm9tIHRvdGFsIHBhY2tldHMgZm9yIHVuaWNhc3QgcGFja2V0cwogICAgICh0aGVyZSBpcyBubyBicm9hZGNhc3QgcGFja2V0IGNvdW50ZXIgdG8gc3VidHJhY3QpCgoyMDA2LTAxLTA1IDE2OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IG11bHRpcGxlIDxuZXRpbmV0L3RjcF92YXIuaD4gaW5jbHVzaW9uIChidWcgMTM5NjYzOSwgSVJJWCBidWlsZCBmaXgpCgoyMDA2LTAxLTA1IDE1OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBkb24ndCBzYXZlL3Jlc3RvcmUgcHJvbWlzY3VvdXMgbW9kZQoKMjAwNi0wMS0wNSAxNTo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLSB1cGRhdGUgdG8gcmVwb3J0IHByb3BlciB2YWx1ZSBmcm9tIHByb21pc2N1b3VzIG1vZGUKCjIwMDYtMDEtMDUgMTU6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmg6CgogICAtIGNsZWFyIHByb21pc2N1b3VzIG1vZGUgZnJvbSBzZXR0YWJsZSBmbGFncwoKMjAwNi0wMS0wNSAxNTo0MSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGJ1bXAgbGlicmFyeSB2ZXJzaW9uIG51bWJlciBpbiBwcm92aWRlcwoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIC0gKGRpc3QvTWFrZWZpbGUpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNToyOCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgTElCQ1VSUkVOVCB2ZXJzaW9uCgoyMDA2LTAxLTA1IDE1OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBkZWxldGUgdW51c2VkIGR1bW15IHZhciAoc3RydWN0IHNpemUgY2hhbmdlIG9rIGluIHVucmVsZWFzZWQgYnJhbmNoZXMpCgoyMDA2LTAxLTA1IDE1OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSBwb2ludCBwcm9taXNjdW91cyBtb2RlIHJlZnMgdG8gaW50ZXJmYWNlIGVudHJ5IHZhbHVlCiAgIC0gcmVuYW1lIG9sZCB2YXIgKGRvbid0IGRlbGV0ZSwgc28gc3RydWN0IHNpemUgZG9lc24ndCBjaGFuZ2UpCgoyMDA2LTAxLTA1IDE1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgc2V0IHByb21pc2N1b3VzIGZsYWcgZm9yIGludGVyZmFjZXMKCjIwMDYtMDEtMDUgMTU6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2dzCgoyMDA2LTAxLTA1IDA4OjMwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBEaXNwbGF5IGNvcnJlY3QgTUlCIGdyb3VwIG5hbWVzIGluIGNvbW1lbnRzLiAgKEJ1ZyAjMTA3NjY1NSkKCjIwMDYtMDEtMDQgMTU6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmMsCiAgICAgbXRlT2JqZWN0c0NvbmYuYywgbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyQ29uZi5jCjoKCiAgIGdldCByaWQgb2YgQysrIGNvbW1lbnRzCgoyMDA2LTAxLTAyIDE2OjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4IG1pbm9yIHR5cG9zCgoyMDA2LTAxLTAyIDE1OjQwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLS1kaXNhYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYW5kIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHk9bm8gbm93IGFjdHVhbGx5ICpkaXNhYmxlKiBVQ0QtU05NUCBjb21wYXRpYmlsaXR5IGluc3RlYWQgb2YgZW5hYmxpbmcgaXQKCjIwMDUtMTItMzAgMjA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gc2V0IHVwIGxlbiBmb3IgcGFyc2UgaW5kZXggaGFjayBmb3IgZml4ZWQgbGVuZ3RoIHN0ci9vaWQgaW5kZXhlcwoKMjAwNS0xMi0zMCAyMDozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHBhcnNlIGluZGV4IGhhY2sgZm9yIG11bHRpcGxlIGZpeGVkIGxlbmd0aCBzdHIvb2lkIGluZGV4ZXMKCjIwMDUtMTItMzAgMTg6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIHN0ZXAgZm9yIGNyZWF0aW5nIHBhdGNoZXMgYnJhbmNoIGZvciBuZXcgcmVsZWFzZXMKCjIwMDUtMTItMzAgMTE6NDIgIGFsZXhfYgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkb2NzbXVuZ2UgYXMgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCBieSB0aGUgd2ViIHNpdGUuCgoyMDA1LTEyLTI5IDIxOjM4ICBhbGV4X2IKCiAgICogbG9jYWwvaHRtbC10ZXh0ZmlsZS1maXgucGw6CgogICBBZGRzIHNvbWUgSFRNTCBlbnRpdGllcyB0byB0aGUgdGV4dCBmaWxlcyB0byBwcmV2ZW50IG1pc3NpbmcgY2hhcmFjdGVycwogICB3aGVuIGluY2x1ZGluZyBpbiBIVE1MLgoKMjAwNS0xMi0yOCAxMToxMCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMiAtPiBWNS4zCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0MSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTI4IDEyOjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yNyAxNzowNiAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIExhc3QtbWludXRlIHVwZGF0ZSBmb3IgNS4zOgogICAtIHVjZC1zbm1wL2xtU2Vuc29ycyBpbXBsZW1lbnRzIExNLVNFTlNPUlMtTUlCLCBub3QgVUNELVNOTVAtTUlCIQogICAtIGRpc21hbi9zY2hlZHVsZSBub3cgc2hpcHMgd2l0aCA1LjMKCjIwMDUtMTItMjcgMTY6NDUgIHRhbmRlcnMKCiAgICogRkFROgoKICAgTGFzdC1taW51dGUgdXBkYXRlcyBmb3IgNS4zOgogICAtIHJlbW92ZSB0d28gbWlycm9yIHNlcnZlcnMgdGhhdCBkb24ndCBleGlzdCBhbnltb3JlCiAgIC0gdHdlYWsgbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zIHRvIGxpc3QgdGhlIGJldHRlciBzdXBwb3J0ZWQgb25lcyBmaXJzdAogICAtIGZpeCBzbm1wdHJhcGQgZXhhbXBsZXMgdG8gbm90IHVzZSBkZXByZWNhdGVkIG9wdGlvbnMKICAgLSBtZW50aW9uIHRoZSA1LjMgc25tcHRyYXBkIGF1dGhvcml6YXRpb24gY2hhbmdlCiAgIC0gbWVudGlvbiB0aGF0IGRpc21hbi9ldmVudCBhbmQgaG9zdCBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IGluIDUuMwogICAtIG1lbnRpb24gZGlzbWFuL3NjaGVkdWxlIE1JQgoKMjAwNS0xMi0yMSAwNjowOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNaW5vciB0d2Vha3MuCgoyMDA1LTEyLTIxIDA0OjMxICBkdHMxMgoKICAgKiBORVdTOgoKICAgQ29ycmVjdCB0aGUgZGVzY3JpcHRpb24gb2YgJ3NubXBuZXRzdGF0JyBjaGFuZ2VzLgogICBUaGUgc3RhdHVzIG9mIHRoZSA1LjMgbGluZSBpcyAqbm90KiB0aGUgc2FtZSBhcyB0aGUgNS4yIHZlcnNpb24uCgoyMDA1LTEyLTIxIDAwOjA3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAyMzo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDIzOjQwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0yMCAyMzoxNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjAgMTA6MzMgIHRhbmRlcnMKCiAgICogbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBmaXggYnVnIDEzODYwODg6IHVzZSBMT0dfRVJSIGluc3RlYWQgb2YgTE9HX0VSUk9SCgoyMDA1LTEyLTE5IDIwOjQ2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdHJhcHMgLT4gbm90aWZpY2F0aW9ucwoKMjAwNS0xMi0xOSAyMDozNyAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMTkgMjA6MzMgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBzbm1wX3BlcmwucGwgKmlzKiBpbnN0YWxsZWQgYXV0b21hdGljYWxseSAoYXQgbGVhc3QgZm9yIG1lKS4KCjIwMDUtMTItMTkgMjA6MTYgIHRhbmRlcnMKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGdldCByaWQgb2YgImRlZmF1bHQgZGVmYXVsdCIKCjIwMDUtMTItMTkgMTg6NTkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGJldHRlciBoZWxwIG91dHB1dCBmb3IgZGVwcmVjYXRlZCAiLVAiCgoyMDA1LTEyLTE5IDA1OjM1ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmCiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjguZGVmLAogICAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgR2VuZXJhbCByZXZpc2lvbiBvZiBjb21tYW5kIGFuZCBjb25maWd1cmF0aW9uIGZpbGUgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTItMTggMTY6MzYgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZXhlY3V0ZSBhbHNvIGNvdmVycyBlbWJlZGRlZCBwZXJsCgoyMDA1LTEyLTE4IDE2OjMwICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvTm90UmV0YWluVHJhcExvZ3MgLT4gZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzCgoyMDA1LTEyLTE0IDExOjQwICBkdHMxMgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBSZXdvcmtpbmcgb2YgdGhlIHRyYXBkIGNvbmZpZ3VyYXRpb24gZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTItMTQgMDU6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIFdpdGhkcmF3IGFsdGVybmF0aXZlICJhY2NlcHRBbGxUcmFwcyIgZGlyZWN0aXZlLgogICAoS2VlcCBpdCBzYWZlIGZvciBhbm90aGVyIGRheSkuCgoyMDA1LTEyLTEzIDA3OjUwICB0YW5kZXJzCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBvdXIgYmluYXJ5IHJlbGVhc2VzICpkbyogc3VwcG9ydCBlbmNyeXB0aW9uCgoyMDA1LTEyLTEzIDA3OjI5ICB0YW5kZXJzCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBhZGQgQUVTCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTUgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0xMSAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEyLTExIDE1OjAwICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdXRpbC4zLAogICAgIG5ldHNubXBfdXRpbGl0aWVzLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTQ6MTMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMKLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuaCwKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuaCwgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCiwgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBBZGQgY29uc3QgYW5kICNpbmNsdWRlIHRvIGZpeCB3YXJuaW5ncwoKMjAwNS0xMi0xMSAxMzo1NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTM6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgZG9uJ3QgdXNlIENWU1VTRVIgaWYgYWxyZWFkeSBpbiBhIGN2cyBkaXIKCjIwMDUtMTItMTEgMTM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgYWR2YW5jZSBuZXh0IHBvaW50ZXIgYmVmb3JlIGNvbnRpbnVlCgoyMDA1LTEyLTExIDEyOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jOgoKICAgZG9uJ3QgZnJlZSB0aGUgY29udGFpbmVyIGlmIGFza2VkIG5vdCB0bwoKMjAwNS0xMi0xMSAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIC0gZml4IDEzNjIzMjQ6IHRlc3RoYW5kbGVyIG1vZHVsZSBjYXVzZXMgaW5maW5pdGUgbG9vcAogICAgIC0gIGRvbid0IHJldHJ5IGZvciBBU05fTlVMTDsgdGhpcyByZXRyaWVzIHdoZW4gdGhlIGhhbmRsZXIgZG9lcyBub3RoaW5nLAogICAgICAgIHdoaWNoIGlzIHdoYXQgd2UgdGVsbCBwZW9wbGUgdG8gZG8gYXQgdGhlIGVuZCBvZiBhIHRhYmxlLgogICAtIGFkZCBjb21tZW50cwoKMjAwNS0xMi0xMSAxMDozNyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGNoYW5nZSBuZXN0ZWQgY29tbWVudCB0byBpZmRlZiAwCgoyMDA1LTEyLTEwIDIwOjA3ICB0YW5kZXJzCgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggdHlwbwoKMjAwNS0xMi0xMCAyMDowMiAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvREVWRU5WOgoKICAgY2xlYW51cAoKMjAwNS0xMi0xMCAxOTo1MCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvbmV0LXNubXAtNS4wLjYtYnVpbGQ6CgogICByZXBsYWNlZCBieSB1cGRhdGVkIGJ1aWxkcGFja2FnZS1zb2xhcmlzCgoyMDA1LTEyLTEwIDE5OjQxICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC86IFJFQURNRSwgYnVpbGRwYWNrYWdlLXNvbGFyaXMKOgoKICAgc2NyaXB0IHRvIGNyZWF0ZSBuYXRpdmUgU29sYXJpcyBwYWNrYWdlcywgcmVwbGFjZXMgbmV0LXNubXAtNS4wLjYtYnVpbGQKCjIwMDUtMTItMTAgMTg6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmdXJ0aGVyIGltcHJvdmUgbWliIG1vZHVsZSBkZXNjcmlwdGlvbnMKCjIwMDUtMTItMTAgMTg6MjkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1lbnRlcnByaXNlLW5vdGlmaWNhdGlvbi1vaWQgZGVzY3JpcHRpb24KCjIwMDUtMTItMTAgMTg6MTcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBpbXByb3ZlIHRleHQgYWxpZ25tZW50IGluICJjb25maWd1cmUgLS1oZWxwIiBvdXRwdXQKCjIwMDUtMTItMTAgMTI6MzAgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFdpbjMyOiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTEyLTEwIDEyOjI4ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcHV0IHByaXYvYXV0aCByZWxhdGVkIG9wdGlvbnMgY2xvc2VyIHRvIGVhY2ggb3RoZXIKCjIwMDUtMTItMTAgMTE6MzcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMgb3IgY29udmVydCB0byBDIGNvbW1lbnRzCgoyMDA1LTEyLTEwIDExOjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIGNoYW5nZSBjcHAgd2FybmluZ3MgdG8gY29tbWVudHMKCjIwMDUtMTItMTAgMTE6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMi0xMCAxMToyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldyAnb3Mgc3BlY2lmaWMnIHNlY3Rpb24gaW4gbWliIG1vZHVsZSBoZWxwCgoyMDA1LTEyLTA5IDIxOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmgsCiAgICAgbXRlVHJpZ2dlckNvbmYuaCwgbXRlVHJpZ2dlclRhYmxlLmg6CgogICBjb25maWdfcmVxdWlyZSBpcXVlcnkKCjIwMDUtMTItMDkgMjE6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZQosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIG1pc2MgZ2VuZXJhdGVkIGZpbGVzCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHVwZGF0ZSByZW5hbWVkIHZhcmlhYmxlCgoyMDA1LTEyLTA5IDIwOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAo6CgogICBmaXggY29uZmlnX3JlcXVpcmUgcGF0aAoKMjAwNS0xMi0wOSAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlbW92ZSBleHBlcmltZW50YWwgY29uZmlnX25vaW5jbHVkZSBkaXJlY3RpdmVzCgoyMDA1LTEyLTA5IDIwOjU3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggY3V0LW4tcGFzdGUKCjIwMDUtMTItMDkgMjA6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmM6CgogICBhZGQgbWlzc2luZyByZWdpc3RyYXRpb24gb2YgbGFzdCBjaGFuZ2Ugb2JqZWN0CgoyMDA1LTEyLTA5IDIwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlLmg6CgogICBhZGQgbWlzc2luZyBpbnRlcm1lZGlhdGUgY29uZmlnX3JlcSBoZWFkZXJzCgoyMDA1LTEyLTA5IDIwOjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgdXBkYXRlIGNvbXBhdCBtYXBwaW5nIHRvbwoKMjAwNS0xMi0wOSAxOTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIHByb3BlciBuYW1pbmcgY29udmVudGlvbnMgc3RhbmRhcmRpemVkIGFuZCB3aWRlbHkgYWRvcHRlZCBieSB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcgVGFzayBGb3JjZQoKMjAwNS0xMi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIGRlZmluZSBuZXcgYWdlbnQgZHMgaWQgZm9yIHJldGFpbmluZyB0cmFwcwoKMjAwNS0xMi0wOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgdHJhcCAtPiBub3RpZmljYXRpb24KCjIwMDUtMTItMDkgMTA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIHJlc3RvcmUgZG9udFJldGFpbkxvZ3MKICAgLSBuZXcsIGNsZWFyZXIgZG9Ob3RSZXRhaW5UcmFwTG9ncyB1c2Ugc2FtZSBkcyBpZAoKMjAwNS0xMi0wOSAwODo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSB0aGUgY29tbW9uIGJvb2xlYW4gcGFyc2luZyByb3V0aW5lICh0byByZWNvZ25pc2UKICAgdGhlIGZ1bGwgbGlzdCBvZiBkb2N1bWVudGVkIHZhbHVlcywgbm90IHNpbXBseSAnMSchKQoKMjAwNS0xMi0wOSAwODo0MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFB1bGwgcGFyc2luZyBvZiBib29sZWFuIGNvbmZpZyB2YWx1ZXMgb3V0IGludG8gYSBzZXBhcmF0ZSByb3V0aW5lLgoKMjAwNS0xMi0wOSAwNzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRXhwYW5kIHRoZSBzb3VyY2UgYnVmZmVyIHNvIGl0IGNhbiBob2xkIGEgbWF4aW11bS1sZW5ndGggSVB2NiBzcGVjaWZpY2F0aW9uLgogICBQYXRjaCBwcm92aWRlZCBieSBTaHVraSBTYXNzb24uCgoyMDA1LTEyLTA4IDA4OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIElzc3VlIHdhcm5pbmdzIHdoZW4gJ3NubXB0cmFwZCcgaXMgcnVuIHdpdGhvdXQgYW55IGFjY2VzcyBjb25maWd1cmF0aW9uLgogICBCb3RoIGF0IHN0YXJ0dXAsIGFuZCB3aGVuIGluY29taW5nIHRyYXBzIGFyZSByZWNlaXZlZCAoYW5kIGRyb3BwZWQpLgoKICAgQWxzbyBkZWZpbmUgYW4gYWx0ZXJuYXRpdmUgbmFtZSBmb3IgdGhlICdkaXNhYmxlQXV0aG9yaXphdGlvbicgZGlyZWN0aXZlLAogICB0aGF0IGlzIChJTU8pIG1vcmUgZGVzY3JpcHRpdmUgb2Ygd2hhdCBhIG5ldHdvcmsgYWRtaW5pc3RyYXRvciBtaWdodCB3YW50IHRvIGRvLgoKMjAwNS0xMi0wOCAwODowNyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBQcm9wZXJseSByZWNvZ25pc2Ugd2hlbiBubyBhY2Nlc3Mgc2V0dGluZ3MgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQuCiAgIChUaGUgbmV3IGJ1aWx0LWluIHZpZXdzIGJyb2tlIHRoZSBwcmV2aW91cyB0ZXN0KS4KCjIwMDUtMTItMDggMDY6MDggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jbHVkZSAoYW5kIGNoZWNrIGZvcikgYW5vdGhlciBoZWFkZXIgZmlsZSAtIG5lZWRlZCBvbiBSZWRIYXQgOSBzeXN0ZW1zLgoKMjAwNS0xMi0wNyAxNzo1NSAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTA3IDA3OjI5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMDcgMDc6MjcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGZpeCBtaW5pLWFnZW50IHRlc3RzIHNvIHRoYXQgLS1kaXNhYmxlIGRvZXNuJ3QgYWN0dWFsbHkgZW5hYmxlIGl0CgoyMDA1LTEyLTA2IDE3OjUwICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgUkZDIGlzc3VlcwoKMjAwNS0xMi0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHJlZHVjZSBjYWNoZSByZWxvYWQgdGltZW91dCBiZWxvdyB3cmFwIHRocmVzaG9sZCBmb3IgZ2lnYWJpdCBpbnRlcmZhY2VzCgoyMDA1LTEyLTA2IDA4OjUwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWY6CgogICBCcmllZiAoYW5kIHNvbWV3aGF0IHJlcGV0YXRpdmUpIGRvY3VtZW50YXRpb24gb2YgaW50ZXJuYWwgZGlyZWN0aXZlcy4KCjIwMDUtMTItMDYgMDg6MTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCBFdmVudCBNSUIsIFNjaGVkdWxlIE1JQiBhbmQgcHJveHkgZXhhbXBsZXMKICAgKHBsdXMgdmFyaW91cyBtaW5vciB0d2Vha3MpLgoKMjAwNS0xMi0wNiAwNTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIEltcGxlbWVudCBtaXNzaW5nICJsaW5rVXBEb3duTm90aWZpY2F0aW9ucyIgZGlyZWN0aXZlCiAgICh0b2dldGhlciB3aXRoIHN1aXRhYmxlIHN0YW5kYXJkIGVudHJpZXMpCgoyMDA1LTEyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBkb24ndCByZW1vdmUgZGlzdAoKMjAwNS0xMi0wNSAxMDo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBtaXNzZWQgdmFyIHJlbmFtZSBpbiBjb25kaXRpb25hbAoKMjAwNS0xMi0wNSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNvbmZpZ19hZGRfbWliIGluIGhlYWRlcgoKMjAwNS0xMi0wNSAwNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdHdlYWtzIHBlciBjb21tZW50cyBmcm9tIHdlczsgc2VlIGNvZGVycyBub3RlCgoyMDA1LTEyLTA1IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgQWdlbnRYIGV4YW1wbGVzLgoKMjAwNS0xMi0wNSAwNzoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IHRyYXAgaGFuZGxpbmcgYW5kIGVtYmVkZGVkIHBlcmwgZXhhbXBsZXMuCgoyMDA1LTEyLTA1IDA3OjIwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEFzc29ydGVkIHdvcmRzbWl0aGluZywgYW5kIHBpY2sgdXAgYSBjb3VwbGUgb2YgdW5kb2N1bWVudGVkIG9wdGlvbnMuCgoyMDA1LTEyLTA1IDA3OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBJbXBsZW1lbnQgJ2dldF9leGVjX291dHB1dCcgYXMgYSB3cmFwcGVyIHJvdW5kICdydW5fZXhlY19jb21tYW5kJwogICB0byBnaXZlIHByb3BlciBoYW5kbGluZyBvZiBjb21tYW5kIHRva2VuaXphdGlvbi4gIChTZWUgQnVnICMxMzI0MDU3KQogICBOb3RlIHRoaXMgZG9lc24ndCBhcHBseSB0byBXaW5kb3dzIHN5c3RlbXMgLSB0aGF0IGV4ZWMgaGFuZGxpbmcKICAgcHJvYmFibHkgbmVlZHMgdG8gYmUgbW92ZWQgdG8gJ3J1bl9leGVjX2NvbW1hbmQnIGFzIHdlbGwuCgoyMDA1LTEyLTA0IDE4OjAzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgYWRkIC1SIGZvciBkaXN0IGRpcgoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1NCAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTIgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjQzICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0wNCAxNzoyNiAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE3OjIzICByc3RvcnkKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGRpc3QgYW5kIHdpbjMyL2Rpc3QKCjIwMDUtMTItMDQgMTc6MTQgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZG8gZGlzdGNsZWFuIGJlZm9yZSBjb25maWd1cmUgaWYgTWFrZWZpbGUgZXhpc3RzCgoyMDA1LTEyLTA0IDE2OjQ5ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG5vdGUgdGhhdCBNYWtlZmlsZS50b3AgdXN1YWxseSBvbmx5IGNoYW5nZSBmb3IgZmlyc3QgcHJlcmVsZWFzZQoKMjAwNS0xMi0wNCAxNjo0OCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMDQgMTY6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIC1xIHRvIHVwZGF0ZSBzbyBwb3RlbnRpYWwgY2hhbmdlcyBkb24ndCBzY3JvbGwgb2ZmIHNjcmVlbgoKMjAwNS0xMi0wNCAxNjoyOSAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgZml4IHN5bnRheCBlcnJvcnMKCjIwMDUtMTItMDQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbG9nIHJjIHcvZXJyb3IgbXNnCgoyMDA1LTEyLTA0IDEzOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGxvZyBjb250YWluZXIgbmFtZSwgaWYgYXZhaWwsIGluIGxvZyBtc2cKCjIwMDUtMTItMDQgMTM6MzggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBhZGQgbG9nIGZpbGUgYXBwZW5kICgtQSkgb3B0aW9uCiAgIC0gcmVtb3ZlIExvZy9QcmludC9TeXNsb2cgZGlzdGluY3Rpb24KICAgLSBicmluZyBzdGFydHVwL3JlY29uZmlnIGxvZyBtZXNzYWdlIGluIGxpbmUgdy9zbm1wZAoKMjAwNS0xMi0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSBmaXggYnVnIDEyOTc4Nzg6IGhlYWRlcl9nZW5lcmljIGFuZCBoZWFkZXJfc2ltcGxlX3RhYmxlIHByb3RvdHlwZXMKICAgICAtIGV4dHJhIGhlYWRlciBsaXN0L2luc3RhbGwgdGFyZ2V0CiAgIC0gZ3JvdXAgcGVybCBpbnN0YWxsL3VuaW5zdGFsbCB0b2dldGhlcgoKMjAwNS0xMi0wNCAxMzoxOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBpbXBvcnRhbnQgbm90ZXMgZm9yIDUuMwoKMjAwNS0xMi0wNCAwOTo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTA0IDA5OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBmaXggYnVnICAxMzY1MTI4OiBzbm1wZCBxdWlldGx5IGRpZXMgb24gaHB1eCAxMS4xMQogICAgIC0gYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgLWxubQoKMjAwNS0xMi0wNCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSBhZGRpdGlvbmFsIGZpeCBmb3IgYnVnIDExMDM2NDQsIEZyZWVCU0QgbWVtb3J5IGxlYWsKICAgICAtIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgcm9qZXIgb24gaXJjCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jL21lbXNldAoKMjAwNS0xMi0wMiAxOToxMyAgcnN0b3J5CgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgdXBkYXRlIHRvIDIwMDUxMDEwMDAwMFogdmVyc2lvbgoKMjAwNS0xMi0wMiAxODo0OCAgcnN0b3J5CgogICAqIG1pYnMvSVAtTUlCLnR4dDoKCiAgIC0gdXBkYXRlIGZyb20gZHJhZnQtaWV0Zi1pcHY2LXJmYzIwMTEtdXBkYXRlLTEwLnR4dCwgY3VycmVudGx5IGluIHRoZSBSRkMKICAgICBlZGl0b3IncyBxdWV1ZQoKMjAwNS0xMi0wMiAxNzo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gYnVnIDEzMzc1MzQ6IFJlYWQgcHJvYmxlbSBvbiBzdHJlYW0gc29ja2V0cwogICAgIC0gcHJvcGVybHkgc2F2ZSBwYXJ0aWFsIHBhY2tldCB3aGljaCBpc24ndCBhdCBzdGFydCBvZiBidWZmZXIKCjIwMDUtMTItMDIgMTc6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJ1ZyAxMzcwODU2OiBpcCBhZGRyZXNzIGVuY29kaW5nIG9uIDY0Yml0CiAgICAgLSB1c2UgaW5ldF9hZGRyX3QgZm9yIGluZXQgYWRkcgoKMjAwNS0xMi0wMiAxNzowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gYnVnIDEzNzA4NTY6IGlwIGFkZHJlc3MgZW5jb2Rpbmcgb24gNjRiaXQKICAgICAtIHN5bmMgc25tcF9zZXRfdmFyX3ZhbHVlIHcvc25tcF9idWlsZF92YXJfb3A6IEFTTl9JUEFERFJFU1MgYXMgYSBzdHJpbmcKCjIwMDUtMTItMDIgMTM6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHVkcC1taWIuaCwgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLmgKLCB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGNvbmZpZ19yZXEgZmlsZXMKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIG9ubHkgcHJpbnQgcmFuZ2VzIGlmIHRoZXkgZXhpc3QKCjIwMDUtMTItMDIgMTM6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICByZW1vdmUgZXh0cmEgOwoKMjAwNS0xMi0wMiAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS86IHVkcEVuZHBvaW50VGFibGUuYwosIHVkcEVuZHBvaW50VGFibGUuaCwgdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosIHVkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywgdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAyIDEzOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlLzogdGNwTGlzdGVuZXJUYWJsZS5jCiwgdGNwTGlzdGVuZXJUYWJsZS5oLCB0Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oCiwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLCB0Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDIgMTE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCdzIHdoZW4gZGVmaW5lZCB3aXRoIDY0Yml0IGxvbmcgdmFyaWFibGVzIGluIHRoZSBDNjQgc3RydWN0dXJlCgoyMDA1LTEyLTAyIDEwOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgVXNlICdjb3B5X253b3JkJyB0byB0b2tlbml6ZSBleHRlcm5hbCBjb21tYW5kcy4KICAgVGhpcyBtZWFucyB0aGF0IHF1b3RlZCBzdHJpbmdzIGFyZSBoYW5kbGVkIGluIHRoZSBuYXR1cmFsIG1hbm5lci4KCjIwMDUtMTItMDIgMTA6MzMgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEl0IGhlbHBzIGlmIHlvdSBhY3R1YWxseSBjcmVhdGUgdGhlIG1hbiBwYWdlIGFzIHdlbGwsIERhdmUhCgoyMDA1LTEyLTAyIDA5OjU1ICB0YW5kZXJzCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkIG1hbnVhbCBwYWdlcwoKMjAwNS0xMi0wMiAwOTo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmludGVybmFsLjUuZGVmOgoKICAgVGVtcGxhdGUgZm9yIGRvY3VtZW50aW5nIGludGVybmFsIHNubXBkIGNvbmZpZyBkaXJlY3RpdmVzLgogICAoSSd2ZSBpZGVudGlmaWVkIGFuZCBsaXN0ZWQgdGhlIGRpcmVjdGl2ZXMgY29uY2VybmVkLAogICAgYnV0IGhhdmVuJ3QgcHJvdmlkZWQgYW55IGRlc2NyaXB0aW9ucyBvZiB3aGF0IHRoZXkgZG8hKQoKMjAwNS0xMi0wMiAwNTozNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIGluZXQ2LmMsCiAgICAgbWFpbi5jLCBtYWluLmgsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIEFsaWduIHdpdGggd2FybmluZyBmaXhlcyBmb3IgNS4yLjIKCjIwMDUtMTItMDIgMDU6MzMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHNubXB0cmFuc2xhdGUgLVRkIGRpc3BsYXkgb2YgVU5JVFMKCjIwMDUtMTItMDIgMDA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgYWRkZWQgbWZkLXBlcnNpc3RlbmNlLm0yaQoKMjAwNS0xMi0wMSAxNjo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTY6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNjowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvOgogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTU6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKLCBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE1OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDExOjEzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyBhbmQgd29yZHNtaXRoaW5nLgoKMjAwNS0xMi0wMSAxMDo1MCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBNb3ZlIHNubXBkLmNvbmYgZXhhbXBsZXMgaW50byBhIHNlcGFyYXRlIG1hbiBwYWdlLAogICBhbmQgZXhhbXBsZSB0aGUgcmFuZ2Ugb2YgZXhhbXBsZXMgcHJvdmlkZWQuCiAgIChOb3QgZmluaXNoZWQgeWV0LCBidXQgaXQncyBwcm9iYWJseSB3b3J0aCBzdWJtaXR0aW5nCiAgIHRoaXMgd2hpbGUgd2UncmUgc3RpbGwgaW4gcHJlLXJlbGVhc2UgbW9kZSkKCjIwMDUtMTItMDEgMTA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAwODowOSAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBEcm9wIGJvZ3VzICItcCIgcG9ydCBvcHRpb24gKGFuZCBhcHBseSBjb25zaXN0ZW50IGluZGVudGF0aW9uKS4KICAgU2hvdWxkIHRoZSBvdGhlciBjaGFuZ2VzIHN1Z2dlc3RlZCBpbiBidWcgIzEyNDcxNjQgYmUgYXBwbGllZCwgdG9vPwoKMjAwNS0xMi0wMSAwNzo0NSAgZHRzMTIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBEb24ndCBjcmFzaC1hbmQtYnVybiBvbiBTTk1QIGV4Y2VwdGlvbnMgKHNlZSBidWcgIzEyNzg4MDkpCgoyMDA1LTExLTMwIDE5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmMKLCBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTg6NDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIFJld3JpdHRlbiBmcm9tIHNjcmF0Y2ggdG8gdmVyaWZ5IG5vQXV0aE5vUHJpdiwgYXV0aE5vUHJpdiAqYW5kKiBhdXRoUHJpdiBTTk1QdjMgdHJhcHMuIExldCdzIG5ldmVyIGJyZWFrIHRoaXMgYWdhaW4uCgoyMDA1LTExLTMwIDE4OjQ0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBjcmVhdGUgbm9BdXRoTm9Qcml2IHVzZXIKCjIwMDUtMTEtMzAgMTg6NDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgaW50cm9kdWNlICB0byBzcGVjaWZ5IHRoZSBlbmdpbmUgSUQgZm9yIGNyZWF0ZVVzZXIKCjIwMDUtMTEtMzAgMTc6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmMsIGlwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE3OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgaW5pdCB2YXIKCjIwMDUtMTEtMzAgMTY6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgZml4IGF1dG9tYXRpYyB1c2VyIGNyZWF0aW9uIGZvciBzZXNzaW9ucyB0aGF0IGhhdmUgcHJvYmluZyBvZmYgb3IgZGVsYXllZAoKMjAwNS0xMS0zMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9jb25zdGFudHMuaCwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9SRUFETUU6CgogICBhZGRlZCBhIFJFQURNRSBmaWxlIHRoYXQgaGFzIGJlZW4gc2l0dGluZyBpbiBteSBkaXJlY3RvcnkgdW4tY2hlY2tlZC1pbgoKMjAwNS0xMS0yOSAxODozNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICByZWZlciB0byBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRSByYXRoZXIgdGhhbiAidGhlIHVjZC1zbm1wIGZ0cCBzaXRlIiBmb3IgaXBmd2NoYWlucwoKMjAwNS0xMS0yOSAxNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTI5IDE0OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICB0eXBvIGluIGxvZyBtc2cKCjIwMDUtMTEtMjUgMDk6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjBzbm1wbmV0c3RhdCwgVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgdXNlIFNLSVAKCjIwMDUtMTEtMjUgMDU6MTIgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTYwc25tcG5ldHN0YXQsIFQyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIFNraXAgdGVzdHMgdGhhdCBhcmUga25vd24gdG8gZmFpbCB3aGVuIG5vdCBydW4gYXMgcm9vdC4KICAgKE1heSBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIG90aGVyIE8vUydzIGFzIHdlbGwpLgoKMjAwNS0xMS0yNCAxODoyNCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCB0eXBvIGFuZCBsYXlvdXQKCjIwMDUtMTEtMjQgMTg6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQsIFQwNDlzbm1wdjNpbmZvcm1wcml2OgoKICAgZml4IHRlc3RzIHRvIHdvcmsgd2l0aCAtLWRpc2FibGUtcHJpdmFjeQoKMjAwNS0xMS0yMyAxOTo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMTEtMjMgMTk6MjIgIHRhbmRlcnMKCiAgICogTkVXUywgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgImNvbmZpZ3VyZSAtLWRpc2FibGUtYWdlbnQiIGZpbmFsbHkgd29yayAoZml4ZXMgYnVncyAxMDA2NDE1LCA5MDg1NzEpCgoyMDA1LTExLTIzIDA4OjE0ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgV2luMzI6IE1TVkMgYnVpbGQgZml4IGZvciBuZXRzbm1wbWlicy5kc3AKCjIwMDUtMTEtMjMgMDQ6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNb3ZlIG9wZW5pbmcgYnJhY2Ugb3V0IG9mIGFsdGVybmF0ZSAjaWZkZWYgY2xhdXNlcwogICAoY29uZnVzZXMgYnJhY2UtbWF0Y2hpbmcgZWRpdG9ycyEpCgoyMDA1LTExLTIyIDE2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgdXBkYXRlIGRlcHMgZm9yIGRlbGV0ZWQgZmlsZQoKMjAwNS0xMS0yMiAwNTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgQmVlZiB1cCB0aGUgInJlbG9jYXRhYmxlIGV4ZWMiIHdhcm5pbmcgbWVzc2FnZS4KCjIwMDUtMTEtMjIgMDU6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgU2NoZWR1bGUgTUlCIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTIxIDIwOjQwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIHdpbjMyL2FnZW50X21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgTVNWQyBhbmQgQ3lnd2luIGNvbXBpbGUgZml4ZXMKCjIwMDUtMTEtMjEgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuaDoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZXM7IHJlaW1wbGVtZW50ZWQgaW4gc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0xMS0yMSAwNjoyNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpc2UgdGhlIERpc01hbiBFdmVudC1NSUIgZG9jdW1lbnRhdGlvbiB0byBtYXRjaCB0aGUgbmV3IGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMS0yMSAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBQcm9wZXJseSBkZXRlY3QgYWxsIHRocmVlIHN0eWxlcyBvZiBtb25pdG9yIGV4cHJlc3Npb24gYXV0b21hdGljYWxseS4KICAgKFRoaXMgbWFrZXMgdGhlICctdCcgb3B0aW9uIHJlZHVuZGFudCwgdGhvdWdoIGl0J3Mgc3RpbGwgYWNjZXB0ZWQpCgoyMDA1LTExLTIwIDE4OjUxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIENIRUNLQU5ERElFKCkgc2hvdWxkIEVYUEVDVFJFU1VMVCAwCgoyMDA1LTExLTIwIDE4OjMwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgbWFrZSB0aGUgdGVzdCBhbHNvIEZBSUwgb24gIldyb25nIFR5cGUgKHNob3VsZCBiZSAuLi4pIgoKMjAwNS0xMS0yMCAxODoyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgQ0hFQ0tBTkRESUUoKSB0byBGQUlMIGlmIGEgcGF0dGVybiAqaXMqIGZvdW5kCgoyMDA1LTExLTIwIDE4OjAwICB0YW5kZXJzCgogICAqIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgdXBkYXRlIExBU1QtVVBEQVRFRCBmaWVsZCB0byByZWZsZWN0IHJlY2VudCBjaGFuZ2VzCgoyMDA1LTExLTIwIDE3OjQ4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY2xhcmlmeSB0aGF0ICJob3N0IiBpcyBvbmx5IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiB0aGUgbWFqb3Igc3VwcG9ydGVkIHBsYXRmb3JtcwoKMjAwNS0xMS0yMCAxNzozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBkZXNjcmlwdGlvbiBmb3IgZW5naW5lSUQKCjIwMDUtMTEtMjAgMTc6MjcgIHRhbmRlcnMKCiAgICogTkVXUywgbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5vUGVyc2lzdGVudExvYWQgYW5kIG5vUGVyc2lzdGVudFNhdmUKCjIwMDUtMTEtMjAgMTY6MzAgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIC1xIG9uIGZpbmFsIGN2c3VwZGF0ZTsgYWRkIHNwYWNpbmcKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNjowNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0yMCAxNjowNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTIwIDE1OjU1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIC0gcmVtb3ZlIGhvd3RvIG9uIGxpYnRvb2wgdmVyc2lvbmluZyBtYXRjaCByZWxlYXNlIG51bWJlcnMKICAgLSB1cGRhdGUgc3VnZ2VzdGVkIGNvbmZpZ3VyZSB0ZXN0IG9wdGlvbnMKCjIwMDUtMTEtMjAgMTU6MzggIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdXNlIGVuYWJsZS1pcHY2IGluc3RlYWQgb2Ygc3BlY2lmeWluZyB0cmFuc3BvcnRzCgoyMDA1LTExLTIwIDE1OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNTozNSAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhZGQgbWlzc2luZyA7CgoyMDA1LTExLTIwIDE0OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gYnVnIDEzNDc3MDk6IHNubXBkIGRvZXNudCBoYW5kbGUgbGFyZ2UgbG9nIGZpbGVzICg+PSAyR0IpIGdyYWNlZnVsbHkKICAgICAtIHBhcnRpYWwgZml4OiBvcGVuL3RydW5jYXRlIGxvZyBmaWxlcyBhdCBzdGFydHVwCgoyMDA1LTExLTIwIDE0OjM5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXcgZHMgYm9vbGVhbiBmb3IgYXBwZW5kIGxvZ2ZpbGVzLCBpbnN0ZWFkIG9mIGxvY2FsIHZhcgoKMjAwNS0xMS0yMCAxNDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBuZXcgbGliIGJvb2xlYW4gZm9yIGFwcGVuZCBsb2dmaWxlcwoKMjAwNS0xMS0xOCAxNjo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN1cHBvcnQgZm9yIGNvdW50ZXJzIGluIHJlYWRfY29uZmlnX3JlYWRfbWVtb3J5CgoyMDA1LTExLTE4IDE0OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWxsb3cgc2Vzc2lvbiBwYXJhbXMgdG8gb3ZlcnJpZGUgZ2xvYmFsIGRlZmF1bHRzCgoyMDA1LTExLTE4IDEwOjUxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlzZSB0aGUgaW50cm9kdWN0aW9uIHRvIHNubXBkIGNvbmZpZyBmaWxlcy4KCjIwMDUtMTEtMTggMTA6MzYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIERpc01hbiBFdmVudCBNSUIgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTcgMjA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgYWNjb3VudCBmb3IgcG9zc2libGUgTlVMTCB2YWx1ZSBmcm9tIGZ1bmN0aW9uCgoyMDA1LTExLTE3IDE3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGluY2x1ZGUgQ09ORklHVVJFX09QVElPTlMgaW4gcmVzdWx0cyBlbWFpbAoKMjAwNS0xMS0xNyAxNzowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBpZmRlZiBfX2FwbGhhLCBpZmRlZiBvdXQgb3B0aW1pemF0aW9uIGNhdXNpbmcgYWxwaGEtbGludXgxIHRvIHNlZ2ZhdWx0CgoyMDA1LTExLTE3IDE0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBtZW1vcnkvdm1zdGF0cyBmb3IgZnJlZWJzZDYKCjIwMDUtMTEtMTcgMTI6NTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBleHBsaWN0bHkgY29uZmlnIGlwdjYgdHJhbnNwb3J0czsgZW5hYmxlLWlwdjYgaW5zdGVhZAoKMjAwNS0xMS0xNyAxMjo0MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIHVzZSBzZW5kbWFpbCBvbiBmcmVlYnNkIHRvbwogICAtIGFkZCBFcnJvcnMtVG8gaGVhZGVyIHRvIG1haWwKICAgLSBlY2hvIHRvL3N1YmplY3QgdG8gc3Rkb3V0CgoyMDA1LTExLTE3IDExOjQ1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRyYXAgZGVzdGluYXRpb24gaGFuZGxpbmcuCgoyMDA1LTExLTE3IDExOjE2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1pbm9yIHdvcmRzbWl0aGluZyBhbmQgZm9ybWF0dGluZyBjb3JyZWN0aW9ucy4KCjIwMDUtMTEtMTcgMTE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBleGNsdWRlIGludGVyZmFjZSBnZXQvbmV4dCBwcm90b3R5cGVzIGlmIHVzaW5nIG1mZCByZXdyaXRlcwoKMjAwNS0xMS0xNyAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8gbWF0Y2ggcHJvdG90eXBlCgoyMDA1LTExLTE3IDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlOyBhZGQgQysrIGV4dGVybiB3cmFwcGVycwoKMjAwNS0xMS0xNyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBxdWl0ZSBjb21waWxlcjogYWRkIGhlYWRlcnMgZm9yIG1pc3NpbmcgcHJvdG90eXBlcwoKMjAwNS0xMS0xNyAxMDo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBzcGVjaWFsIGNhc2UgZm9yIG9wZW5ic2QgbWFpbAoKMjAwNS0xMS0xNyAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oOgoKICAgQ2xhcmlmeSB0aGF0IHRoZSAiZXZlbnQtbWliLmgiIHdhcm5pbmcgKmlzKiBhIHdhcm5pbmcgcmF0aGVyIHRoYW4KICAgc2ltcGx5IGEgbm90ZSAod2hpY2ggd291bGQgYmVsb25nIGluIHRoZSBkb2N1bWVudGF0aW9uKQoKMjAwNS0xMS0xNiAxNjozNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV0YnNkIHdhbnRzIG5ldGluZXQvaXA2LmggYmVmb3JlIG5ldGluZXQ2L2luNl9wY2IuaAoKMjAwNS0xMS0xNiAxNjoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTE2IDE2OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZGlzYWxsb3cgaXB2NiB0cmFuc3BvcnRzIGlmIGlwdjYgbm90IGVuYWJsZWQKCjIwMDUtMTEtMTYgMTU6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OiBleHBsaWNpdCBhcmd1bWVudCBjYXN0CgoyMDA1LTExLTE2IDE1OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYwosIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEMrKyBjbGVhbnVwOiBkb24ndCB1c2UgbmV3IGFzIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTEtMTYgMTU6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMTEtMTYgMTU6MTggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKOgoKICAga2VlcCBjb21waWxlciBoYXBweTogZXhwbGljaXQgYXJndW1lbnQgY2FzdAoKMjAwNS0xMS0xNiAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKOgoKICAgbW92ZSBpbml0aWFsaXplX3RhYmxlX2lmWFRhYmxlIHByb3RvdHlwZSB0byBoZWFkZXIKCjIwMDUtMTEtMTYgMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWRkIHByb3RvdHlwZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGludGVyZmFjZSBmdW5jdGlvbnMKCjIwMDUtMTEtMTYgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBDKysgZXh0ZXJuICJDIiB3cmFwcGVycwoKMjAwNS0xMS0xNiAxNTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGluY2x1ZGUgaGVhZGVyIHcvbmVlZGVkIHByb3RvdHlwZQoKMjAwNS0xMS0xNiAxNDo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBDKysgY2xlYW51cDogZG9uJ3QgdXNlIG5ldyBhcyB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBDKysgY2xlYW51cAogICAgIC0gZG9uJ3QgdXNlIF9fUCgpIChub3doZXJlIGVsc2UgaW4gdGhlIGNvZGUgdXNlcyBpdCkKICAgICAtIGRvbid0IHVzZSBuZXcgYXMgYSB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICAvLyAtPiAvKiAqLwoKMjAwNS0xMS0xNiAxMDo0MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmg6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBmb3IgTklfTUFYSE9TVCBpZiBtaXNzaW5nLgoKMjAwNS0xMS0xNiAxMDoxMCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jCiwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWU6CgogICBidWlsZCBmaXhlcyBmb3Igc29sZSAtLWRpc2FibGUtc25tcHYxICgqd2l0aG91dCogLS1kaXNhYmxlLXNubXB2MmMpCgoyMDA1LTExLTE2IDA4OjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIGJ1aWxkIGZpeCBmb3IgLS1kaXNhYmxlLXNubXB2MS8tLWRpc2FibGUtc25tcHYyYwoKMjAwNS0xMS0xNiAwNjoyMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYnVpbGQgZml4IGZvciAtLWRpc2FibGUtc25tcHYxLy0tZGlzYWJsZS1zbm1wdjJjCgoyMDA1LTExLTE2IDA1OjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEJldHRlciBsYXlvdXQgb2YgJ2luamVjdF9oYW5kbGVyJyBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNiAwNTowOSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSBsb2FkIGF2ZXJhZ2UgYW5kIGZpbGUgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uLgogICAocGx1cyBhc3NvcnRlZCB0aWR5aW5nIHVwKS4KCjIwMDUtMTEtMTYgMDQ6NTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIGRpc2sgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uCgoyMDA1LTExLTE2IDA0OjU3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBwcm9jZXNzIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgSG9zdCBSZXNvdXJjZXMgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgc3lzdGVtIGdyb3VwIGNvbmZpZ3VyYXRpb24uCgoyMDA1LTExLTE2IDA0OjU1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENvbnNvbGlkYXRlIHRoZSAic3lzdGVtIGluZm9ybWF0aW9uIiwgYW5kICJhZ2VudCBiZWhhdmlvdXIiIGNvbmZpZ3VyYXRpb24KICAgZGlyZWN0aXZlcyB0byBiZSBkb2N1bWVudGVkIHRvZ2V0aGVyIChhcyB0d28gZGlzdGluY3Qgc2VjdGlvbnMpLgoKMjAwNS0xMS0xNSAyMToxNCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdW5jb21tZW50IG91dCBjbGVhbnVwIGNvZGUKCjIwMDUtMTEtMTUgMjE6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGV4dHJhIGVycm9yIGNoZWNraW5nIGZvciBmcmVlYnNkCgoyMDA1LTExLTE1IDIxOjA4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgcmVtb3ZlIGNwcCAjd2FybmluZyBsaW5lcwoKMjAwNS0xMS0xNSAyMTowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICAtIHVzZSBmaW5kIGZvdW5kIGJ5IGNvbmZpZ3VyZQogICAtIHR3ZWFrIGNvbW1lbnRjaGVjayByZWdleHAgdG8gbWlzcyByZWdleHAgaW4gcGVybCBoZWFkZXIKCjIwMDUtMTEtMTUgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgLSBzb2xhcmlzIGZpeGVzCiAgICAgLSBkb24ndCBzZXQgc29ydGVkIGZsYWcgZm9yIHNvbGFyaXMgKGRhdGEgb24gc2YgY2YgNS45IGlzIG5vdCBzb3J0ZWQpCiAgICAgLSByZXZlcnNlIGNvbmRpdGlvbiBvbiBpZGxlIHRlc3Qgc28gc29tZSBkYXRhIGdldHMgcmV0dXJuZWQKCjIwMDUtMTEtMTUgMTk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKOgoKICAgdXNlIHN0YXRlIGZyb20gYXJwIGVudHJ5IGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlCgoyMDA1LTExLTE1IDE5OjI0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZGVmYXVsdCByb3cgc3RhdHVzIHRvIGFjdGl2ZQoKMjAwNS0xMS0xNSAxOToyNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZDoKCiAgIGludHJvZHVjZSBzbm1wZCB0ZXN0IGZvciBleHRlbmQKCjIwMDUtMTEtMTUgMTk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICAtIGRvbid0IGlnbm9yZSBpbmNvbXBsZXRlIGVudHJpZXMKICAgLSBzZXQgc3RhdGUgdG8gcmVhY2hhYmxlIGlmICEgaW5jb21wbGV0ZQoKMjAwNS0xMS0xNSAxOTowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTE1IDE4OjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHNvbWUgb3B0aW1pemF0aW9uCgoyMDA1LTExLTE1IDE4OjMyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIGRvY3VtZW50IGRlZmF1bHQgcGluZyBpbnRlcnZhbAoKMjAwNS0xMS0xNSAxODoxMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNS0xMS0xNSAxNzo0NiAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWlub3IgdHdlYWtzCgoyMDA1LTExLTE1IDExOjM3ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHBpbmcsIHBvbmc7IHJlc3RvcmUgbmV0c25tcF9ydW5uaW5nIGNoYW5nZXMKCjIwMDUtMTEtMTUgMTA6NTEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgQWdlbnRYIGNvbmZpZy4KCjIwMDUtMTEtMTUgMDk6MzUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgZGxtb2QsIHByb3h5IGFuZCBTTVVYIGRlc2NyaXB0aW9ucwogICAocGx1cyBhc3NvcnRlZCBtaW5vciB0d2Vha3MpCgoyMDA1LTExLTE1IDA1OjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgZGlzY3Vzc2lvbiBvZiBtaWIyYyBjb25maWdzLgoKMjAwNS0xMS0xNCAyMDoxOSAgYWxleF9iCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFdpbjMyOiAgc25tcG5ldHN0YXQgSVB2NiBidWlsZCBmaXhlcwoKMjAwNS0xMS0xNCAxOToxMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBXZSBmaW5hbGx5IGhhdmUgc25tcGQgZW1iZWRkZWQgcGVybCB0ZXN0aW5nLiBGZWVsIGZyZWUgdG8gcmV2aWV3L3NjcmVhbS9iYWNrIG91dCAtLSBvciBhcHBsYXVkLgoKMjAwNS0xMS0xNCAxODoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgLSByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzCiAgIC0gYWRkIGFkZGl0aW9uYWwgZXJyb3IgaGFuZGxpbmcvbG9nZ2luZwogICAtIG1vcmUgY29tbWVudHMKICAgLSBkb3h5Z2VuIGRvY3MKCjIwMDUtMTEtMTQgMTg6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wU1RERG9tYWluLmMsIHNubXBsb2NhbHNtLmM6CgogICByZW1vdmUgQysrIHJlbGF0ZWQgY29tbWVudHMKCjIwMDUtMTEtMTQgMTc6NTkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBkb24ndCBtYW51YWwgdXBkYXRlIHRvIFNGIHNlcnZlcnMKCjIwMDUtMTEtMTQgMTc6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIHVuZGVmaW5lICBORVRTTk1QX1BBUkFOT0lEX0xFVkVMX0hJR0gsIGRvY3VtZW50IHdoYXQgaXQgZG9lcwogICAtIHVwZGF0ZSBsb2NrIGFzc2VydC93YXJuIGNhc2VzIGZvciBsb2NrIHBlciBjYWxsYmFjayBleHBlY3RhdGlvbnMKCjIwMDUtMTEtMTQgMTc6MjggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUKCjIwMDUtMTEtMTQgMTc6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBvdXQgaW5jbHVkZXMKCjIwMDUtMTEtMTQgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMS0xNCAxNzoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICByZW1vdmUgdGVtcG9yYXJ5IGNvbW1lbnRzCgoyMDA1LTExLTE0IDEzOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCBidWcgMTM1MjU1NDogU2VnIGZhdWx0IGluIG5ldHNubXBfY29udGFpbmVyX3RhYmxlX3Jvd19pbnNlcnQKCjIwMDUtMTEtMTQgMTM6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBtb3ZlIHJ1bm5pbmcgZmxhZyBiYWNrIGludG8gYXBwbGljYXRpb25zCiAgIC0gcmVzdG9yZSBpbmZpbml0ZSBsb29wIGluIGdldC1uZXh0IGxvb3AgaGFuZGxpbmcKCjIwMDUtMTEtMTQgMTE6MzIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBzbXV4c29ja2V0IGFuZCBlbmhhbmNlIEFnZW50WCoKCjIwMDUtMTEtMTQgMTA6NTQgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBmaXhlcyBhZnRlciByZXZpZXdpbmcgRGF2ZSdzIGNoYW5nZXMKCjIwMDUtMTEtMTQgMTA6NDMgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgZW1iZWRkZWQgcGVybCBkb2N1bWVudGF0aW9uLgoKMjAwNS0xMS0xNCAwNjozNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MsIGFuZCBzcGVjaWZ5IGEgbW9yZSBkZWZpbml0ZSBTRVQKICAgcHJvdG9jb2wgZm9yICdwYXNzX3BlcnNpc3QnIC0gY29tcGF0aWJsZSB3aXRoIHRoZQogICBjdXJyZW50IGJlaGF2aW91ciwgYnV0IG9wZW5pbmcgdGhlIGRvb3IgZm9yIG1vcmUKICAgZmxleGlibGUgaGFuZGxpbmcgaW4gdGhlIGZ1dHVyZS4KCjIwMDUtMTEtMTQgMDY6MjkgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgcGFzcy10aHJvdWdoIHN1cHBvcnQuCgoyMDA1LTExLTE0IDA2OjIyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlICJleGVjIi8iZXh0ZW5kIiBkb2N1bWVudGlvbgoKMjAwNS0xMS0xNCAwNTo1NSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDb25zb2xpZGF0ZSBhbGwgdGhlIGV4dGVuc2lvbiBtZWNoYW5pc21zIHRvIGJlIGRvY3VtZW50ZWQgdG9nZXRoZXIuCgoyMDA1LTExLTE0IDA1OjUzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyB0aGUgQWNjZXNzIENvbnRyb2wgc2VjdGlvbiwgaW5jbHVkaW5nIHNlcGFyYXRpb24gaW50bwogICBkaXN0aW5jdCBzdWJzZWN0aW9ucy4KCjIwMDUtMTEtMTQgMDU6NTIgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgU2ltcGxlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBhdXRoKiBkaXJlY3RpdmVzLgoKMjAwNS0xMS0xNCAwNDo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMTQgMDE6NTIgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY2hlY2sgZm9yIGdwZyBrZXkgaW5zdGVhZCBvZiB1c2VyaWQKCjIwMDUtMTEtMTQgMDE6NDcgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG9wdGlvbiB0byByZXBlYXQgZmFpbGVkIHN0ZXBzCgoyMDA1LTExLTE0IDAxOjQ0ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzkgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUzICkKCjIwMDUtMTEtMTQgMDE6MzcgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMTozNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIGFnZW50eCBzdWJhZ2VudCBjb25uZWN0IGFmdGVyIGNvbmZpZ3MgZml4CgoyMDA1LTExLTE0IDAxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0xNCAwMToyNSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjE5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAwOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSB1bm5lZWRlZCByZXBvc2l0b3J5IHNwZWMKCjIwMDUtMTEtMTMgMjI6MTAgIGFsZXhfYgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBpbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICAtV2luMzI6IEFkZCBtaXNzaW5nIG1pYjJjLWRhdGEgdG8gaW5zdGFsbGVyCiAgIC1XaW4zMjogVXNlIHdpbGRjYXJkcyBpbiBpbnN0YWxsZXIgZm9yIGluc3RhbGxpbmcgZmlsZXMgdG8gaGVscCBwcmV2ZW50CiAgICBtaXNzaW5nIGZpbGVzLgoKMjAwNS0xMS0xMyAyMjowMCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG5ldyBuZXRzbm1wX3J1bm5pbmcgZ2xvYmFsIGluIGFnZW50IGxpYgogICAgIC0gdXNlZCBpbiBwbGFjZSBvZiB3aGlsZSgxKSBpbiBnZXQgbmV4dCBwcm9jZXNzaW5nIGxvb3AKICAgICAtIGRhZW1vbnMgdy9zaWdoYW5kbGVyIHVwZGF0ZWQgdG8gY2xlYXIgZmxhZyBvbiBzaWd0ZXJtCgoyMDA1LTExLTExIDIxOjU1ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgV2luMzI6ICBGaXggTklfTUFYSE9TVCBkZWZpbmUuCgoyMDA1LTExLTExIDIxOjExICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBXaW4zMjogV29yayBhcm91bmQgZm9yIGJ1ZyAxMjc4NzQzOiAgSWYgdHJ5aW5nIHRvIHJldmVyc2UgbG9va3VwCiAgIDEyNy4wLjAuMSwgcmV0dXJuICdsb2NhbGhvc3QnIHRvIHByZXZlbnQgV2luZG93cyBmcm9tIHJldHVybmluZyB0aGUKICAgbG9jYWwgY29tcHV0ZXIgbmFtZSBiZWNhdXNlIGl0IGlnbm9yZXMgdGhlIGhvc3RzIGZpbGUuCgoyMDA1LTExLTEwIDE5OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTEwIDE5OjE4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHN5bnRheCB0eXBvCgoyMDA1LTExLTEwIDE4OjU1ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgY2xhcmlmeSB0aGF0IHRoaXMgdGVzdCByZXF1aXJlcyBhIHdvcmtpbmcgdWRwVGFibGUKCjIwMDUtMTEtMTAgMTg6MjIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oOgoKICAgYnVpbGQgZml4IGZvciBPcGVuQlNEL1NQQVJDIDMuNwoKMjAwNS0xMS0xMCAxNDozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcmsKICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscyB0byBzdWJhZ2VudF9pbml0CiAgICAgLSBkb24ndCBjb25uZWN0IHRvIG1hc3RlciBpbiBzdWJhZ2VudF9pbml0LCBpbnN0ZWFkIHJlZ2lzdGVyIFBPU1RfQ09ORklHCiAgICAgICBjYWxsYmFjayB0byBkbyBzbwoKMjAwNS0xMS0xMCAxNDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gZmluZXIgZ3JhaW5lZCBsb2NraW5nIG9mIGNhbGxiYWNrcyAocGVyIHN1YmlkKSwgYWxsb3dpbmcgYSBjYWxsYmFjayB0bwogICAgIG1hbmlwdWxhdGUgKHJlZy91bnJlZykgb3RoZXIgY2FsbGJhY2tzCiAgIC0gbW9yZSBkZWJ1Z2dpbmcKICAgLSBhZGQgc3RhdGljIGZsYWcgZm9yIGluaXQKICAgICAtIG1lbXNldCBhbmQgaW5pdCB2YXJpYWJsZXMgaW4gaW5pdF9jYWxsYmFjayBpZiBub3QgZG9uZSB5ZXQKICAgICAtIGNhbGwgaW5pdF9jYWxsYmFjaywgaWYgbmVlZGVkLCBmcm9tIGFsbCBmdW5jdGlvbnMKCjIwMDUtMTEtMTAgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIHJlc3RvcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKG5vIHN1YmFnZW50IGluaXQgaW4gaW5pdF9tYXN0ZXJfYWdlbnQoKSkKCjIwMDUtMTEtMTAgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrOgogICAgIHJlc3RvcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKGNhbGwgc3ViYWdlbnQgaW4gaW4gaW5pdF9hZ2VudCkKCjIwMDUtMTEtMTAgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50LW1pYi5oLAogICAgIG9sZC1ldmVudC1taWIuaDoKCiAgIFNwbGl0IG9yaWdpbmFsIGFuZCBuZXcgRXZlbnQgTUlCIGltcGxlbWVudGF0aW9ucyBpbnRvIGRpc3RpbmN0CiAgICJtb2R1bGUgZ3JvdXAiIGhlYWRlcnMsIGFuZCB1c2UgdGhlIG9yaWdpbmFsIG5hbWUgdG8gd2FybiBvZiB0aGUgY2hhbmdlcy4KCjIwMDUtMTEtMTAgMDU6MTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1JQiBtb2R1bGVzIHRvIGdlbmVyYXRlIGNvbmZpZ3VyZSB3YXJuaW5ncyBvciBlcnJvcnMKCjIwMDUtMTEtMTAgMDQ6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIFNpbGVuY2UgYSBjb3VwbGUgb2YgY29tcGlsZXIgd2FybmluZ3MKCjIwMDUtMTEtMTAgMDQ6NDUgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIERvbid0IGNob2tlIG9uIG1pc3NpbmcgaW50ZXJmYWNlcyAoYW5kIHNpbGVuY2UgYSBjb3VwbGUgb2YgY29tcGlsZXIgd2FybmluZ3MpCgoyMDA1LTExLTEwIDA0OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldC5jLCBpbmV0Ni5jOgoKICAgU3VwcHJlc3MgaGVhZGVycyBmb3IgZW1wdHkgVENQIGRpc3BsYXlzIChhbmQgZml4IGEgbWlub3IgdHlwbykKCjIwMDUtMTEtMDkgMjE6MzMgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgLVdpbjMyOiBGb3JjZSBFdmVudCBMb2csIFNDTSwgcmVnaXN0cnkgZXRjIHRvIHVzZSBsb25nCiAgICBuYW1lIGZvciBzZXJ2aWNlIChOZXQtU05NUCBBZ2VudCBpbnN0ZWFkIG9mIHNubXBkKS4gIE5lZWRlZAogICAgYmVjYXVzZSBvZiBuZXcgLW4gb3B0aW9uIGluIHNubXBkLiAgTm90ZTogIFRoZSBzbm1wZCAtbiBvcHRpb24KICAgIGRvZXMgbm90IGNoYW5nZSB0aGUgV2luZG93cyBzZXJ2aWNlIG5hbWUgZXRjLCBvbmx5IHRoZSBjb25maWcKICAgIGZpbGUgbG9hZGVkLgoKMjAwNS0xMS0wOSAxOTozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgIm1ha2UgdGVzdC1taWJzIiBzdGlsbCB3b24ndCB3b3JrIGlmIGJ1aWxkIGRpciAhPSBzb3VyY2UgZGlyLCBidXQgaXQncyBjbG9zZXIgbm93CgoyMDA1LTExLTA5IDE4OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogYWdlbnR4X2NvbmZpZy5oLCBzdWJhZ2VudC5oOgoKICAgYWdlbnR4IGluaXQgcmV3b3JrOiB1cGRhdGUgcHJvdG90eXBlcyBmb3IgcmVuYW1lZCBmdW5jdGlvbnMKCjIwMDUtMTEtMDkgMTg6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBkZWJ1ZyBtZXNzYWdlIHNob3VsZCBtYXRjaCBjb2RlCgoyMDA1LTExLTA5IDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLAogICAgIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGV4ZWN1dGFibGVzLCBtYWtlZmlsZXMsIHR4dCBmaWxlcywgc3ViYWdlbnQgZmlsZXMKCjIwMDUtMTEtMDkgMTc6MzEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICByZW1vdmUgZHVwbGljYXRlIGluY2x1ZGUKCjIwMDUtMTEtMDkgMTc6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHNwZWNpZmljIGVycm9yIHJlZ2V4cAoKMjAwNS0xMS0wOSAxNzoyNiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZ2VudHggaW5pdCByZXdvcms6IHVwZGF0ZSBmb3IgZnVuY3Rpb24gbmFtZSBjaGFuZ2VzCgoyMDA1LTExLTA5IDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gaWZkZWYgZW50aXJlIG1vZHVsZSBiYXNlZCBvbiB1c2luZyBhZ2VudHggc3ViYWdlbnQgbW9kdWxlCiAgICAgLSByZW5hbWUgaW5pdCBmdWNudGlvbiBzbyB3ZSBjYW4gY29udHJvbCB3aGVuIGl0IGlzIGNhbGxlZAogICAgIC0gcmVtb3ZlIHN1YmFnZW50X3ByZV9pbml0CiAgICAgICAtIGNvbmZpZyBzdHVmZiBtb3ZlZCBpbnRvIGFnZW50eF9jb25maWcuYwogICAgICAgLSBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQgbW92ZWQgdG8gc3ViYWdlbnRfaW5pdCwgbm93IHRoYXQgaXQncyBjYWxsZWQKICAgICAgICAgYWZ0ZXIgY29uZmlncyBoYXZlIGJlZW4gcmVhZAoKMjAwNS0xMS0wOSAxNzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAtIGNvbnNvbGlkYXRlIG1hc3RlciBhbmQgc3ViYWdlbnQgY29uZmlncyBpbiB0aGlzIGZpbGUKICAgICAtIHNsaWdodCBjb2RlIHJlLW9yZyAobm8gY2hhbmdlczsgbW92ZSBhZ2VudHggc29ja2V0IHBhcnNpbmcgdG8gdG9wKQogICAgIC0gcmVnaXN0ZXIgcGluZyBpbnRlcnZhbCBjb25maWcgYW5kIHNldCBkZWZhdWx0CiAgICAgLSByZW5hbWUgaW5pdCBmdW5jdGlvbiBzbyBjb25maWd1cmUgd29uJ3QgYWRkIGl0IHRvIG1vZHVsZXMgaW5pdHMsIHNvIHdlCiAgICAgICBjYW4gY2FsbCBpdCB3aGVuIHdlIHdhbnQgaXQgdG8gYmUgY2FsbGVkCgoyMDA1LTExLTA5IDE3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcms6IGluaXQgc3ViYWdlbnQgaW4gaW5pdF9tYXN0ZXJfYWdlbnQKICAgLSBhc3NlcnQgaWYgcm9sZSBpc24ndCBtYXN0ZXIgb3Igc3ViLWFnZW50CgoyMDA1LTExLTA5IDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIGFnZW50eCBpbml0IHJld29yawogICAgIC0gZG9uJ3QgaW5pdCBzdWJhZ2VudCBoZXJlIChjb25maWdzIGhhdmVuJ3QgYmVlbiByZWFkIHlldCkKICAgICAtIG9ubHkgaW5pdCBtYXN0ZXIvc3ViIGNvbmZpZ3MKCjIwMDUtMTEtMDkgMTc6MTIgIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZSBmb3IgbmV3IHRhYmxlcwoKMjAwNS0xMS0wOCAwNzoyMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIG1haW4uYywgbmV0c3RhdC5oOgoKICAgSW1wbGVtZW50IE9wZW4vTmV0QlNELXN0eWxlIG9jdGV0IGludGVyZmFjZSBkaXNwbGF5LgoKMjAwNS0xMS0wOCAwNzoxNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgUmlnaHQtanVzdGlmeSBoZWFkaW5ncyBmb3IgY291bnRlciB2YWx1ZXMuCiAgIChsb29rcyBuZWF0ZXIgd2hlbiBpbmRpdmlkdWFsIHZhbHVlcyBiZWNvbWUgcmVsYXRpdmVseSB3aWRlKQoKMjAwNS0xMS0wOCAwNzowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgRml4IHByb2JsZW1zIHdhbGtpbmcgdGhlIElQdjYgY29ubmVjdGlvbiB0YWJsZXMuCgoyMDA1LTExLTA4IDA2OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIE9ubHkgc2NoZWR1bGUgYXV0b21hdGljIGxvYWRpbmcgb25jZSBmb3IgYW55IGdpdmVuIGNhY2hlLgoKMjAwNS0xMS0wNyAyMjo0NiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIENoYW5nZUxvZyBub3RlCgoyMDA1LTExLTA3IDIxOjQ1ICBhbGV4X2IKCiAgICogd2luMzIvOiBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBXaW4zMjogIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDA1LTExLTA3IDE5OjQ5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybDoKCiAgIGludHJvZHVjZSBlbWJlZGRlZCBwZXJsIHRlc3QgZm9yIHNubXB0cmFwZCAodG9vIGZhbmN5IHRvIHJlc2lzdCkKCjIwMDUtMTEtMDcgMTk6NDIgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGJ1aWxkIGZpeDogZnNzLT5mZnMKCjIwMDUtMTEtMDcgMTg6NTQgIHRhbmRlcnMKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgZml4IHR5cG8KCjIwMDUtMTEtMDcgMTg6MzQgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgZml4IHR5cG9zCgoyMDA1LTExLTA3IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGRyb3AgZGVmYXVsdCB0aW1lb3V0IGRvd24gdG8gSU5UX01BWCwgYW5kIGRvY3VtZW50IHdoeQoKMjAwNS0xMS0wNyAwOTozOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IE1ha2VmaWxlLmluLCBmZnMuYywgaWYuYywKICAgICBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIFR3ZWFrcyB0byBzdXBwb3J0IGJ1aWxkaW5nIHVuZGVyIFdpbmRvd3MKICAgICAoaW5jbHVkaW5nIHJlbmFtZWQgJ2ZmcygpJyByb3V0aW5lLCB0YWtlbiBmcm9tIE9wZW5CU0Qgc291cmNlIHRyZWUpCgoyMDA1LTExLTA3IDA2OjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBEaXNwbGF5IGludGVyZmFjZSBhZGRyZXNzaW5nIGluZm9ybWF0aW9uLgoKMjAwNS0xMS0wNyAwMTo1NyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMS0wNyAwMTo0MyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTExLTA3IDAxOjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0wNyAwMToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGRvbid0IHRyeSB0byB1c2UgYWdlbnQgdmFyIGluIGJhc2UgbGliIChpdCB3YXMgbGF0ZSwgb2s/KQoKMjAwNS0xMS0wNyAwMDoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGJyZWFrIG91dCBvZiB3YWl0aW5nIGxvb3BzIGlmICEgcnVubmluZwoKMjAwNS0xMS0wNiAyMjozNCAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiAgTW92ZSB1aW50MTZfdCBkZWZpbml0aW9uIHRvIHN0YXRpYyB3aW4zMiBuZXQtc25tcC1jb25maWcuaAoKMjAwNS0xMS0wNiAyMToyNyAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0xMS0wNSAxODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGJyZWFrIG91dCBvZiBnZXRuZXh0IGxvb3AgaWYgISBydW5uaW5nCgoyMDA1LTExLTA1IDE3OjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBvbmx5IHVzZSAidWxpbWl0IC12IiBpbiBiYXNoCgoyMDA1LTExLTA1IDE3OjQzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTEtMDUgMTc6MjQgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRqdXN0IGVycm9yIHJlZ2V4OiBkb24ndCBmYWlsIG9uICZlbnRyeS0+c2NoZWRMYXN0RmFpbGVkLCAmZmFpbCBldGMuCgoyMDA1LTExLTA1IDE3OjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgLSBhbGxvdyBvdmVyLXJpZGUgb2YgTlNCXyhESVNUfEVYVFJBKV9NT0RVTEVTCiAgIC0gcmVtb3ZlIHRlc3RoYW5kbGVyIGZyb20gRVhUUkEgbW9kdWxlcyAoaGFuZ3Mgc25tcHdhbGspCiAgIC0gc2V0IFNOTVBfVE1QRElSX0JBU0UgKGZ1dHVyZSB1c2UpCgoyMDA1LTExLTA1IDE3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBJJ2xsIHRha2UgbXkgcG9ydCBudW1iZXJzIHVuc2lnbmVkLCBwbGVhc2UKCjIwMDUtMTEtMDUgMTY6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC90Y3BfdmFyLmgsIGlmIGF2YWlsYWJsZQoKMjAwNS0xMS0wNSAxNjozOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZGVsaWJlcmF0ZWx5IGlnbm9yZSB1bGltaXQgZmFpbHVyZXMKCjIwMDUtMTEtMDUgMTY6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIHJlbW92ZSBzeXMvc29ja2V0dmFyLmgsIHNpbmNlIG1pYklJX2NvbW1vbi5oIGFscmVhZHkgaGFzIGl0CgoyMDA1LTExLTA1IDE0OjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBzd2l0Y2ggZGlzbWFuIG1vZHVsZSBsaXN0IGJhY2sgdG8gZXZlbnQtbWliIChzdGlsbCB1c2VzIG5ldyBjb2RlKQogICAtIHJlbW92ZSBldmVudCBtaWIgY29uZmxpY3QgY2hlY2sgKGhhbmRsZWQgYnkgY29uZmlnX2V4Y2x1ZGVzKQoKMjAwNS0xMS0wNSAxNDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIC0gY2VudHJhbGl6ZSBldmVudCBtaWIgcmVxdWlyZXMgaW4gb3JpZ2luYWwgZXZlbnQtbWliLmgKICAgLSBkZWZhdWx0IHRvIHJlLXdyaXRlcwogICAtIHdoaWNoZXZlciBpbXBsZW1lbnRhdGlvbiBpcyBzZWxlY3RlZCwgY29uZmlnX2V4Y2x1ZGUgdGhlIG90aGVyCgoyMDA1LTExLTA1IDE0OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Lmg6CgogICAtIGNlbnRyYWxpemUgZXZlbnQgbWliIHJlcXVpcmVzIGluIG9yaWdpbmFsIGV2ZW50LW1pYi5oCgoyMDA1LTExLTA1IDEzOjE1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgZml4IG9wdFByb2Mgc2lnbmF0dXJlCgoyMDA1LTExLTA0IDE4OjQ2ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIEJ1aWxkIGZpeDogcHJvdGVjdCAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CgoyMDA1LTExLTA0IDEzOjA1ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlCgoyMDA1LTExLTA0IDEzOjA1ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0Lmg6CgogICBjaGVjayBpZiB3ZSBoYXZlIGhlYWRlciBiZWZvcmUgaW5jbHVkaW5nIGl0CgoyMDA1LTExLTA0IDExOjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogbWFpbi5jLCBuZXRzdGF0Lmg6CgogICBNb3ZlIHRoZSBvcHRpb24gZmxhZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgaW50byBhIGNvZGUgZmlsZS4KCjIwMDUtMTEtMDQgMTE6NTEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIFBvZXJ0YWJpbGl0eSBvZiAnc2luNl9sZW4nIGZpZWxkIGlzIHVuY2xlYXIKICAgKGFuZCBpdCBkb2Vzbid0IGltbWVkaWF0ZWx5IHNlZW0gdG8gYmUgbmVlZGVkKQoKMjAwNS0xMS0wNCAxMTo0NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oOgoKICAgYWRkIHZvaWQgdG8gZW1wdHkgcHJvdG90eXBlIHBhcmFtIGxpc3QKCjIwMDUtMTEtMDQgMDk6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRGV0ZWN0IChhbmQgcmVqZWN0KSB1c2Ugb2YgY29uZmxpY3RpbmcgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9ucy4KCjIwMDUtMTEtMDQgMDc6NDEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBtYWluLmMsIG1haW4uaCwKICAgICBuZXRzdGF0Lmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBJUHY2IHN1cHBvcnQKCjIwMDUtMTEtMDQgMDc6MzEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgUGx1ZyBtaW5vciBtZW1vcnkgbGVhay4KCjIwMDUtMTEtMDMgMjA6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL3Blcmxfc25tcHRyYXBkLmg6CgogICB1cGRhdGUgLmggZnJvbSB0aGUgdHJhcGQuaCBmaWxlcwoKMjAwNS0xMS0wMyAxOTo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgbWFrZSBwZXJsIG9ubHkgcmVxdWlyZSB0aGUgZXhlY3V0ZSBiaXQKCjIwMDUtMTEtMDMgMTE6NTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGp1c3QgdG8gbmV3IHNubXBuZXRzdGF0IG9wdGlvbnMKCjIwMDUtMTEtMDMgMTE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBtYWluLmMsIHJvdXRlLmM6CgogICBFbnN1cmUgSVB2NiBjb2RlIGlzIG9taXR0ZWQgKHVudGlsIGl0IGNhbiBiZSBwcm9wZXJseSBwb3J0ZWQvdGVzdGVkKQoKMjAwNS0xMS0wMyAxMTo0NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBPbWl0IHJlZHVuZGVudCBkZWNsYXJhdGlvbnMuCgoyMDA1LTExLTAzIDExOjI4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFJlbW92ZSBjb2RlIGZvciBkZXRlcm1pbmluZyBSUEMgc2VydmljZSBuYW1lcwogICAobm90IHJlbGV2YW50L2FwcHJvcHJpYXRlIGZvciBTTk1QLWJhc2VkIHF1ZXJpZXMpCgoyMDA1LTExLTAzIDA4OjU4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2YgaG9zdC1zcGVjaWZpYyByb3V0ZXMsIGFuZCBkaXNwbGF5aW5nIGdhdGV3YXkvaG9zdCBuYW1lcy4KCjIwMDUtMTEtMDMgMDc6MjEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBtYWluLmMsIHJvdXRlLmM6CgogICBSZS1pbXBsZW1lbnQgcm91dGluZyB0YWJsZSBkaXNwbGF5IChiYXNlZCBvbiBPcGVuQlNEIGNvZGUpCgoyMDA1LTExLTAzIDA3OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCByZXBlYXRlZCBpbnRlcmZhY2UgZGlzcGxheS4KCjIwMDUtMTEtMDIgMTY6MjEgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICBtb3ZlIGluY2x1ZGUgYWZ0ZXIgbmV0LXNubXAtaW5jbHVkZXMuaDsgZml4IGdsb2JhbCBzZXNzaW9uIG5hbWUKCjIwMDUtMTEtMDIgMTI6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4Lmg6CgogICByZW1vdmUgYm9ndXMgZXhwZXJpbWVudGFsIGNvbmZpZyBtYWNybwoKMjAwNS0xMS0wMiAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaDoKCiAgIGFkZCBtaXNzaW5nIHNlbWktY29sb24KCjIwMDUtMTEtMDIgMDk6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBpbmV0LmMsIG1haW4uYywKICAgICBtYWluLmgsIG5ldHN0YXQuaDoKCiAgIFByZWxpbWluYXJ5IHJlLWltcGxlbWVudGF0aW9uLCBiYXNlZCBvbiByZS1kaXN0cmlidXRhYmxlIE9wZW5CU0QgY29kZS4KICAgKE5vdGUgdGhhdCBpZi5jIGRyYXdzIGhlYXZpbHkgb24gdGhlIEZyZWVCU0QgaW50ZXJmYWNlIGRpc3BsYXkgYmVoYXZpb3VyLAogICAgd2hpY2ggaXMgc29tZXdoYXQgZGlmZmVyZW50IHRvIHRoZSBOZXQvT3BlbkJTRCBhcHByb2FjaCkKCjIwMDUtMTEtMDIgMDE6NTYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB3b3JkIHR3aWRkbGVzCgoyMDA1LTExLTAyIDAxOjUwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9wZXJsLmM6CgogICBmaXggZW1iZWRkZWQgcGVybCBhbmQgZW5zdXJlIGNvbXBpbGF0aW9uIGZhaWx1cmVzIGlmIHR1cm5lZCBvbiBidXQgZnVuY3Rpb25zIG1pc3NpbmcKCjIwMDUtMTEtMDEgMTU6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZG9uJ3QgYWRkIG5vdGlmeSBvYmplY3RzIHRvIHRoZSBzY2FsYXIgbGlzdAoKMjAwNS0xMS0wMSAwNDowMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyB1bGltaXQKCjIwMDUtMTAtMzEgMDc6NDAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgVHJ1NjQgVW5peCA1LjEgYnVpbGQgZml4OiBtYWtlIHN1cmUgVUlOVDMyX01BWCBpcyBkZWZpbmVkCgoyMDA1LTEwLTMxIDA2OjExICB0YW5kZXJzCgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBtb3JlIHBvcnRhYmxlIHdheSBvZiBjYWxsaW5nIGJhc2gKCjIwMDUtMTAtMzEgMDU6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBTb2xhcmlzIGJ1aWxkIGZpeDogaW5jbHVkZSBsaW1pdHMuaCBmb3IgW1VdTE9OR19NQVggYW5kIExPTkdfTUlOCgoyMDA1LTEwLTMxIDA0OjI5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA1LTEwLTMxIDA0OjI3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zCiwgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMwosIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMKLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDUtMTAtMzEgMDQ6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEwLTMxIDA0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBwYXRjaGVzIGZyb20gYXBwbGUKCjIwMDUtMTAtMzEgMDQ6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIHBhdGNoZXMgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwNDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2RhcndpbjcuYywKICAgICBtZW1vcnlfZGFyd2luNy5oLCB2bXN0YXRfZGFyd2luNy5jLCB2bXN0YXRfZGFyd2luNy5oCjoKCiAgIG1lbW9yeS92bXN0YXRzIGNvZGUgZnJvbSBhcHBsZQoKMjAwNS0xMC0zMSAwMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3ByaXZhdGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgZmlyc3QgcGFzcyBhdCB1ZHBFbmRwb2ludFRhYmxlCgoyMDA1LTEwLTMxIDAzOjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzZXQgY3B1IGFuZCBtZW1vcnkgbGltaXRzIHRvIHByZXZlbnQgbWFqb3IgZGFtYWdlLCBlc3BlY2lhbGx5IHNpbmNlIHdlIG5vdyBoYXZlIGEgZnVsbCBzbm1wd2FsayB0ZXN0CgoyMDA1LTEwLTMwIDIzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDA1LTEwLTMwIDIzOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA1LTEwLTMwIDIzOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBjYWxjdWxhdGUgcHJlZml4IG9pZCBhcyBuZWVkZWQKCjIwMDUtMTAtMzAgMjM6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZW1vdmUgcHJlZml4IG9pZDsgYWRkIHByZWZpeCBsZW4KCjIwMDUtMTAtMzAgMjM6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgcmVtb3ZlIHByZWZpeCBvaWQKCjIwMDUtMTAtMzAgMjM6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBnZXQgcmlkIG9mIHByZWZpeCBvaWQKICAgLSBhZGQgcHJlZml4IGxlbgogICAtIGFkZCBwcmVmaXggZnVuY3Rpb24gcHJvdG90eXBlcwoKMjAwNS0xMC0zMCAyMjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICAtIGRvbid0IHVzZSB0ZXN0IGNvcnJlY3QgZmxhZyBiaXQKICAgLSBhZGQgcHJlZml4IHV0aWxpdHkgcm91dGluZXMKCjIwMDUtMTAtMzAgMjI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgYWRkIGFjY2VzcyB0byBjb250YWluZXIKCjIwMDUtMTAtMzAgMjI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkbyBub3QgdXNlIGluaXQgZmxhZyB3aXRoIGxvYWQgcm91dGluZQoKMjAwNS0xMC0zMCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gcmVtb3ZlIGluZXQ2IGNvZGUsIHNpbmNlIHRoZXJlIHdlIGFyZW4ndCB1c2luZyBpcHY2IGlvY3RscwogICAtIGFkZCBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbW92ZSBkZXRhaWxlZCBjb25maWdfcmVxdWlyZSBtYWNyb3MgZG93biBhIGxldmVsCgoyMDA1LTEwLTMwIDIyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIHVzZSBuZXcgdXRpbCBmdW5jIHRvIGNhbGN1bGF0ZSBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIyOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgb25seSBjaGVjayBkaXJ0eSBmbGFnIGZvciB3cml0YWJsZSB0YWJsZXMKCjIwMDUtMTAtMzAgMjI6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvOgogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmMsIGlwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW5pdGlhbCBwYXNzIGF0IGlwQWRkcmVzc1ByZWZpeFRhYmxlCgoyMDA1LTEwLTMwIDE1OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbmV3IG5ldHNubXBfY3ZhbHVlIHVuaW9uCgoyMDA1LTEwLTMwIDE1OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaCwgc25tcGxpYi90ZXh0X3V0aWxzLmMKOgoKICAgbW9yZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnMKCjIwMDUtMTAtMzAgMTQ6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBuZXcgdXRpbCBmaWxlcwoKMjAwNS0xMC0zMCAxMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIHVuc29ydGVkIGZsYWcKCjIwMDUtMTAtMzAgMTM6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgLSBhZGQgY29tcGFyZSBmdW5jdGlvbiBwdHIgdG8gY29udGFpbmVyIHR5cGUgc3RydWN0CiAgIC0gc2V0IGNvbXBhcmUgZnVuYyBmcm9tIGNvbnRhaW5lciB0eXBlIHN0cnVjdAogICAtIHJlZ2lzdGVyIHNvbWUgc3RyaW5nIGNvbXBhcmUgYmFzZWQgYmluYXJ5IGFycmF5IHR5cGVzCgoyMDA1LTEwLTMwIDEzOjQ2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgLSBuZXcgY29udGFpbmVyIHJlZ2lzdGVyIHdpdGggY29tcGFyZSBwcm90b3R5cGUKICAgLSBhZGQgdW5zb3J0ZWQgY29udGFpbmVyIGZsYWcKICAgLSBmaXggY29udGFpbmVyIG9wdGlvbnMgbWFjcm9zCiAgICAgLSBhZGQgcmMgcGFyYW0KICAgICAtIG1pc3NpbmcgfQoKMjAwNS0xMC0yOSAxODoxMiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgdGVzdCBjaGFuZ2UgYW5kIHVzYWdlIG9mIGxvY2FsaXplZCBrZXlzCgoyMDA1LTEwLTI5IDE3OjI5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIGludHJvZHVjZSBzbm1wdHJhcGQgdHJhcGhhbmRsZSB0ZXN0CgoyMDA1LTEwLTI5IDE1OjU4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgSW50cm9kdWNlIGZ1bGwgc25tcHdhbGsgdGVzdC4gTmVlZHMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgQ1BVIGN5Y2xlcywgYnV0IHdpbGwgY2F0Y2ggaW1wb3J0YW50IGlzc3VlcyBsaWtlIHdoZW4gYSBzaW1wbGUgd2FsayBjcmFzaGVzL2hhbmdzIHRoZSBhZ2VudC4KCjIwMDUtMTAtMjkgMDg6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGRhdGFfc2V0LmgsIGRlbGF5ZWRfaW5zdGFuY2UuaAosIGV4YW1wbGUuaCwgbmV0U25tcEhvc3RzVGFibGUuaCwKICAgICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaAosIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgsIG5vdGlmaWNhdGlvbi5oCiwgc2NhbGFyX2ludC5oLCB1Y2REZW1vUHVibGljLmg6CgogICBhZGQgbWlzc2luZyBoZWFkZXIgcHJvdGVjdCBhbmQvb3IgY3BsdXNwbHVzIGlmZGVmcwoKMjAwNS0xMC0yOSAwODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuaDoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlciBmb3Igd2F0Y2hlZC5oCgoyMDA1LTEwLTI4IDIzOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgLSByZW1vdmUgZXh0cmEgOwogICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBtYWNybwoKMjAwNS0xMC0yOCAyMzozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgcmVkdWNlIHNjb3BlIG9mIGlvY3RsIHZlcnNpb24gY2hlY2tpbmcgdG8gdjQgb25seSAobm8gaXB2NiBpb2N0bHMpCgoyMDA1LTEwLTI4IDIzOjI3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaAo6CgogICBjb3JyZWN0IGN1dC1uLXBhc3RlIGVycm9yIGluIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAyMzoyNiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgeWFuayBtb3JlIGNvZGUgd2hpY2ggaXMgdW51c2VkIGR1ZSB0byBjb250YWluZXIgc2hhcmluZwoKMjAwNS0xMC0yOCAyMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKOgoKICAgdXBkYXRlIGZvciBjaGFuZ2VkIGlmZW50cnkgdmFyIG5hbWVzCgoyMDA1LTEwLTI4IDIzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYwo6CgogICBza2lwIHZhcnMgdGhhdCBkbyBub3QgaGF2ZSBpZmVudHJ5IGZsYWcgc2V0CgoyMDA1LTEwLTI4IDIzOjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBhZGQgbWlzc2luZyBmbGFncyBwYXJhbSB0byBhcmNoIGNvbnRhaW5lciBsb2FkCiAgIC0gc3VwcG9ydCBmb3IgaXB2KDR8Nikgb25seSBsb2FkIGZsYWcKICAgLSB0cnkgdG8gbG9hZCBpcHY2IGV2ZW4gaWYgaXB2NCBmYWlscwoKMjAwNS0xMC0yOCAyMzoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBwYXNzIGNvcnJlY3QgZmxhZ3MgdG8gY29udGFpbmVyIGluaXQgZHVyaW5nIGxvYWQKCjIwMDUtMTAtMjggMjM6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICB0d2Vha3MgYW5kIHN1cHBvcnQgZm9yIGlwdjZJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAyMzoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBuZXcgbG9hZCBmbGFncwoKMjAwNS0xMC0yOCAyMzoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhZGQgaW5zZXJ0IGZpbHRlcmluZwoKMjAwNS0xMC0yOCAyMzoxMyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSByZWR1Y2UgZGVwZW5kZW5jeSBsaXN0IG9uIHNubXBfdmFycy5sbyB0byBhZ2VudF9tb2R1bGVfbGlzdF9oCiAgIC0gYWRkIG1pYl9tb2R1bGVfbGlzdF9oIGFzIGRlcCBmb3IgbWliX21vZHVsZXMubG8KICAgLSBkb2N1bWVudCB3aHkgcmVhZF9jb25mLmxvIGRlcHMgYXJlIGhlcmUgYW5kIG5vdCBpbiBzbm1wbGliL01ha2VmaWxlLmluCgoyMDA1LTEwLTI4IDIzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS86IGlwdjZJbnRlcmZhY2VUYWJsZS5jCiwgaXB2NkludGVyZmFjZVRhYmxlLmgsIGlwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaAosIGlwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbXBsZW1lbnQgaXB2NkludGVyZmFjZVRhYmxlCgoyMDA1LTEwLTI4IDIzOjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIHNodXRkb3duIHByb3RvdHlwZQoKMjAwNS0xMC0yOCAxODozOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBwb3J0YWJsZSB3YXkgb2YgZXhwb3J0aW5nIFNOTVBDT05GUEFUSAoKMjAwNS0xMC0yOCAxNzoyOCAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgbG9naWMgY2hhbmdlIG9uIGdldEtzdGF0SW50CgoyMDA1LTEwLTI4IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVtb3ZlIDsgZnJvbSBjb25maWdfcmVxdWlyZSBtYWNyb3MKCjIwMDUtMTAtMjggMTU6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICAtIG1vdmUgbG9jYWwgaW5jbHVkZSB3aXRoIG90aGVyIGxvY2FsIGluY2x1ZGVzCiAgIC0gaWZkZWYgcHJvcHR5cGVzIHRoYXQgd29uJ3QgYmUgZGVmaW5lZCBmb3IgTk9BUkNIIGNhc2UKCjIwMDUtMTAtMjggMTU6NDAgIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIGZvcmdvdCB0aGUgaW5jbHVkZSBmb3Igc29tZSBuZXRzbm1wX2FyY2hfaW50ZXJmYWNlIHN0dWZmCgoyMDA1LTEwLTI4IDE0OjQ5ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIHlvdSBjYW4ndCBub3QgZGVjbGFyZSBIUk5faW5kZXggZm9yIHNvbGFyaXMgdGhlbiBleHBlY3QgaXQgdG8gcmV0dXJuIGEgZmV3IGxpbmVzIGxhdGVyCgoyMDA1LTEwLTI4IDE0OjIwICBic2hhdzY2NgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgaXQncyB1aW50MTZfdCBub3QgdV9pbnQxNl90CgoyMDA1LTEwLTI4IDEyOjU1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgdXBkYXRlIG9uIC1DRSBhbmQgLUNrCgoyMDA1LTEwLTI4IDEyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgcmVtb3ZlIGFjY2lkZW50YWwgY2hlY2tpbiBvZiB1bmltcGxlbWVudGVkIGNvbmZpZyBtYWNybwoKMjAwNS0xMC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI4IDEyOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIG5ldyBhcmd1bWVudCB0byB0dXJuIG9uIGRlYnVnIGR1cmluZyBtaWIgbW9kdWxlIHByb2Nlc3NpbmcKCjIwMDUtMTAtMjggMTI6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICByZXF1aXJlIG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI4IDEyOjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSByZW5hbWUvcmV2YW1wIGludGVyZmFjZSBjb3VudCBmdW5jdGlvbgogICAgIC0gYWxsb2NhdGUgbG9jYWwgaWZjb25mIGlmIGNhbGxlZCBkaWRuJ3QgcGFzcyBvbgogICAgIC0gZG9jdW1lbnQgdGhhdCBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRoYXQgY2FsbGVyIG11c3QgcmVsZWFzZSBpZgogICAgICAgdGhleSBwYXNzIGluIHRoZWlyIG93biBpZmNvbmYgcG9pbnRlcgoKMjAwNS0xMC0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgLSByZW1vdmUgJzsnIGZvcm0gY29uZmlnXyogbWFjcm9zCiAgIC0gY29uZmlnX3JlcXVpcmUgaWZUYWJsZSwgaW5jbHVkZSBpZlRhYmxlIGhlYWRlcgoKMjAwNS0xMC0yOCAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgY2FsbCBpZlRhYmxlIGluaXQgdG8gbWFuYWdlIGlmWFRhYmxlIGluaXQKCjIwMDUtMTAtMjggMTI6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGFkZCBjYWxscyB0byBpcHYoNHw2KSBpbnRlcmZhY2UgdGFibGVzIHdoZW4gdXBkYXRpbmcgcm93cwogICAtIGNvcnJlY3QgaWZUYWJsZUxhc3RDaGFuZ2UgYmVoYXZpb3VyIHRvIGNvbXBseSB3aXRoIG9iamVjdCBkZWZpbml0aW9uCiAgIC0gY2xhcmlmeSBzb21lIGNvbW1lbnRzCiAgIC0gYWRkIGFzc2VydCB0byBub3RpZnkgdXMgd2hlbi9pZiBhbmQgb3MgdHJhY2tzIGxhc3QgY2hhbmdlZCBvbiBpdCdzIG93bgoKMjAwNS0xMC0yOCAxMjowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZml4IGNvbmZpZ19yZXF1aXJlIG1hY3JvcwogICAtIGFkZCByZXF1aXJlIGZvciBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UKICAgLSByZW1vdmUgbGFzdCBjaGFuZ2UgZnJvbSBkYXRhIGNvbnRleHQsIHVzZSBpZmVudHJ5IHZlcnNpb24gaW5zdGVhZAoKMjAwNS0xMC0yOCAxMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gbWFrZSBpbml0X2lmVGFibGUgdGhlIGNvbW1vbiBpbml0IGZ1bmN0aW9uIGZvciBpbnRlcmZhY2UgbW9kdWxlcwogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGNhbGxzCiAgICAgLSBwcm9wZXIgaW5pdCBmdW5jdGlvbiBjYWxscyBmb3IgaXB2KDR8NilJbnRlcmZhY2VUYWJsZS9pZlhUYWJsZQoKMjAwNS0xMC0yOCAxMTo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbW92ZSBzdGF0cyBwYXJzaW5nIHRvIGl0J3Mgb3duIGZ1bmN0aW9uCiAgIC0gc3VwcG9ydCBuZXcgbG9hZCBmbGFnczogaXB2NCBvbmx5LCBubyBzdGF0cwogICAtIGFkZCAoaGFyZGNvZGVkIHJlYXNtX21heCkKICAgLSBnZXQgYXJwIHJldHJhbnNtaXQgdGltZSBmcm9tIC9wcm9jCgoyMDA1LTEwLTI4IDExOjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oOgoKICAgYWRkIGNvbmZpZ19yZXF1aXJlIG9mIGRhdGFfYWNjZXNzL2lwYWRkcmVzcwoKMjAwNS0xMC0yOCAxMTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBjaGVjayBhbiBpbnRlcmZhY2UgZm9yIGlwdig0fDYpIGlwIGFkZHJlc3NlcwoKMjAwNS0xMC0yOCAxMTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIGFkZCB3YXJuaW5ncyB0byB1cGRhdGUgZnVuY3Rpb25zIHdoZW4gYWRkaW5nL2RlbGV0aW5nIHN0dWN0IG1lbWJlcnMKICAgLSBtYWtlIGZsYWdzIGZpZWxkIHVuc2lnbmVkCiAgIC0gdW5zaWduZWQgaW50IC0+IHVfaW50CiAgIC0gYWRkIGZpZWxkcyBmb3IgaXB2NEludGVyZmFjZVRhYmxlCiAgIC0gZml4IG9zX2ZsYWdzIGNvbW1lbnQKICAgLSBuZXcgbnNfZmxhZ3MgZGVmaW5lcyBmb3IgaXB2KDR8NilJbnRlcmZhY2VUYWJsZQogICAtIG5ldyBsb2FkIGZsYWdzIGRlZmluZXMKCjIwMDUtMTAtMjggMTE6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgcmVuYW1lIHRvIGludGVyZmFjZS5jCgoyMDA1LTEwLTI4IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgcmVuYW1lIGludGVyZmFjZV9jb21tb24uYyB0byBpbnRlcmZhY2UuYyB0byBlYXN5IGNvbmZpZ3VyZSBwcm9jZXNzaW5nCgoyMDA1LTEwLTI4IDExOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gcmV2ZXJ0IHRvIHByZXZpb3VzIGJlaGF2aW9yIG9mIGlmRGVzY3IgPSBpbnRlcmZhY2UgbmFtZQogICAtIGFkZCBuZXcvbWlzc2luZyBzdHJ1Y3R1cmUgbWVtYmVycyB0byBpbnRlcmZhY2UgY29weSByb3V0aW5lCiAgIC0gcmVuYW1lIGluaXQgZnVuY3Rpb24gZm9yIHBlbmRpbmcgZmlsZSByZW5hbWUKCjIwMDUtMTAtMjggMTE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS5oCiwgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCBpcC1taWIvaXBfc2NhbGFycy5oCiwgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfY29tbW9uLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAosIHRjcC1taWIvdGNwQ29ublRhYmxlLmgsIHRjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLmgKLCB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oOgoKICAgLSBtb3N0bHkgcmVtb3ZpbmcgZXh0cmFuZW91cyAnOycgb24gY29uZmlnXyogbWFjcm9zCiAgIC0gYSBmZXcgdHdlYWsgY29uZmlnXyogbWFjcm9zCgoyMDA1LTEwLTI4IDExOjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjggMTE6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGNoZWNrIGZvciBwcm9ncmFtICdmaW5kJwogICAtIG9ubHkgYWRkIGhlYWRlciB0byAoYWdlbnR8bWliKV9tb2R1bGVfaW5jbHVkZXMuaCBpZiBpbml0L3NodXRkb3duIGZvdW5kCgoyMDA1LTEwLTI4IDEwOjI2ICB0YW5kZXJzCgogICAqIGRpc3QvOiBSRUFETUUuYnVpbGQtc2NyaXB0cywgbnNiLW5pZ2h0bHksCiAgICAgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwbwoKMjAwNS0xMC0yOCAwOToyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvOiBpcHY0SW50ZXJmYWNlVGFibGUuYwosIGlwdjRJbnRlcmZhY2VUYWJsZS5oLCBpcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgKLCBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jOgoKICAgaW1wbGVtZW50IGlwdjRJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAwODoxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIG1ha2Ugc3VyZSBzbm1wbmV0c3RhdCBjYW4gYmUgZXhlY3V0ZWQ7IHNraXAgb3RoZXJ3aXNlCgoyMDA1LTEwLTI3IDA1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliLzogZ2V0b3B0LmMsIHN0cnRvbC5jLCBzdHJ0b3VsLmM6CgogICBSZW1vdmUgVUNCIGFkdmVydGlzaW5nIGNsYXVzZSAocmVzY2luZGVkIDIyIEp1bHkgMTk5OSkKCjIwMDUtMTAtMjcgMDU6MzggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZjoKCiAgIFVwZGF0ZSBCU0QgY29weXJpZ2h0IGxpY2Vuc2Ugd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uLgoKMjAwNS0xMC0yNiAxODo1NCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFkZCBzaW1wbGUgdGVzdCBmb3Igc25tcG5ldHN0YXQgdG8gdmVyaWZ5IHRoZSB1cGNvbWluZyByZXdyaXRlCgoyMDA1LTEwLTI2IDE4OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIHNraXAgb24gRElTQUJMRV9TRVRfU1VQUE9SVAoKMjAwNS0xMC0yNiAxNzo0NyAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBkb2N1bWVudCBnZW5lcmljIC0tPG5hbWU+PTx2YWx1ZT4gY29tbWFuZC1saW5lIG9wdGlvbgoKMjAwNS0xMC0yNiAxNzoyMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZG9jdW1lbnQgZ2VuZXJpYyAtLTxuYW1lPj08dmFsdWU+IGNvbW1hbmQtbGluZSBvcHRpb24KCjIwMDUtMTAtMjYgMTM6MTUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBhbGxvd3MgdG8gdXNlIG9sZCBhbmQvb3IgbmV3IGxvY2FsaXplZCBrZXkgaW5zdGVhZCBvZiBwYXNzLXBocmFzZSB3aXRoIC1DawoKMjAwNS0xMC0yNiAxMjoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtYWpvciByZXdyaXRlOiBhZGRzIG1vcmUgdGVzdHMgYW5kIHVzZXMgbmV3IFN2M3VzbWNvbmZpZyoKCjIwMDUtMTAtMjYgMTI6MjMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlOgoKICAgZml4IHNvbWUgdmFyaWFibGUgbmFtZXMKCjIwMDUtMTAtMjYgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICByZW1vdmUgcGF0Y2ggZmx1YgoKMjAwNS0xMC0yNiAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBFeHRyYSBkZWJ1Z2dpbmcgdG8gaGVscCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpZmZlcmVudCBjYWNoZSB0aW1lcnMuCgoyMDA1LTEwLTI2IDA3OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIFNsaWdodCByZXRoaW5rIGFib3V0IGhvdyB0byBoYW5kbGUgdGhlIHJlbW92YWwgb2YgYSBNSUIgcmVnaXN0cmF0aW9uLgogICAoVGhpcyBpcyBkZWZpbml0ZWx5IG9uZSBmb3IgNS40LCBtZXRoaW5rcyEpCgoyMDA1LTEwLTI2IDA2OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBnZW5lcmljIHRhYmxlIEFQSSByb3V0aW5lIG5hbWVzLgoKMjAwNS0xMC0yNiAwNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXJyb3JUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfdGRhdGEuaDoKCiAgIEJyaW5nICd0ZGF0YScgcm91dGluZSBuYW1lcyBpbnRvIGxpbmUgd2l0aCB0aGUgcHJvcG9zZWQgdGFibGUgQVBJCgoyMDA1LTEwLTI2IDA2OjIwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgZml4IGNvbXBpbGUgZXJyb3IgZHVlIHRvIHdyb25nIGhwdXgxMSB0ZXN0CgoyMDA1LTEwLTI2IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIE1vdmUgcmVnaXN0cmF0aW9uIG9mIHN0YW5kYXJkIHZpZXdzIHNvIHRoYXQgdGhleSdyZSBwaWNrZWQgdXAKICAgYnkgYm90aCBhZ2VudCBhbmQgdHJhcCBoYW5kbGVyIGluaXRpYWxpc2F0aW9uLgogICBDbGFyaWZ5IHdoaWNoIGluaXRpYWxpc2F0aW9uIHJvdXRpbmVzIGFyZSBjYWxsZWQgYnkgd2hpY2ggYXBwcy4KCjIwMDUtMTAtMjUgMTk6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBhcyBzdWdnZXN0ZWQgYnkgRGF2ZSB0byBnZXQgc25tcHRyYXBkIHdvcmtpbmcgYWdhaW4KCjIwMDUtMTAtMjUgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgLSBuYXJyb3cgc2NvcGUgb2YgYXNzZXJ0IHRlc3QKICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKCjIwMDUtMTAtMjUgMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yNSAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB0ZXN0cyBmb3IgZW1wdHkgdmFyIGNhc2UKCjIwMDUtMTAtMjUgMTI6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLi4uIGFuZCBzYXkgc28uCgoyMDA1LTEwLTI1IDEyOjQwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybToKCiAgIGNsYXJpZnkgYXMgYmVpbmcgYSBub0F1dGhOb1ByaXYgdGVzdAoKMjAwNS0xMC0yNSAxMTo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBPcGVuQlNEIDMuNCAicHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nOiBzeXMvc3dhcC5oIG5lZWRzIHN5cy9wYXJhbS5oIGZvciBNQVhQQVRITEVOCgoyMDA1LTEwLTI1IDExOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcmVtb3ZlIE1GRF9SRVdSSVRFIGRlZmluZSB0ZXN0cwoKMjAwNS0xMC0yNSAxMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gY29tbWVudCBmb3JtYXR0aW5nCiAgIC0gY29uZmlnX2V4Y2x1ZGUgaWYtbWliL2lmVGFibGUvaWZUYWJsZQoKMjAwNS0xMC0yNSAxMTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGFkZCBJVEVSQVRPUl9SRUxFQVNFIG1hY3JvCgoyMDA1LTEwLTI1IDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX2NvbmYuaDoKCiAgIEFsdGVybmF0aXZlIHZpZXd0eXBlLWJhc2VkIGFjY2VzcyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSAoImF1dGhhY2Nlc3MiKS4KICAgU2ltaWxhciB0byAic2V0YWNjZXNzIiwgYnV0IGNsb3NlciBpbiBmZWVsIHRvIHRoZSBvdGhlciBhdXRoKiBkaXJlY3RpdmVzLgogICBUaGlzIGFsc28gYWxsb3dzIHRoZSBzZWN1cml0eSBtb2RlbCwgbGV2ZWwgYW5kIGNvbnRleHQgaW5mb3JtYXRpb24gdG8gYmUKICAgb21pdHRlZCAoZGVmYXVsdGluZyB0byBzZW5zaWJsZSB2YWx1ZXMpLgoKMjAwNS0xMC0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBcmdnZ2hoaGghISEgIElmIHlvdSd2ZSBnb3QgY29kZSB0aGF0IHdvcmtzLCBkb24ndCBjaGFuZ2UgaXQgYmVmb3JlIGNvbW1pdHRpbmcgaXQuCiAgIElmIHlvdSAqbXVzdCogY2hhbmdlIGl0LCB0aGVuIGF0IGxlYXN0IGhhdmUgdGhlIGd1bXB0aW9uIHRvIHRlc3QgaXQgYWdhaW4gZmlyc3QhCiAgIDxoZWF2eSBzaWdoPgoKMjAwNS0xMC0yNSAwODowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBUZWxsIHlvdSB3aGF0LCBEYXZlLiAgV2h5IGRvbid0IHlvdSB0cnkgY29tbWl0dGluZyB0aGUgY29kZSBmb3IgdGhlCiAgICJhdXRoZ3JvdXAiIGRpcmVjdGl2ZSAtIHJhdGhlciB0aGFuIGp1c3QgdGhlIGhlYWRlciBmaWxlPwogICA8c2lnaD4KICAgWW91IGp1c3QgY2FuJ3QgZ2V0IHRoZSBzdGFmZiB0aGVzZSBkYXlzLgoKMjAwNS0xMC0yNSAwNzo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmg6CgogICBEaXJlY3RpdmUgdG8gc3VwcG9ydCB2aWV3dHlwZS1iYXNlZCBjb25maWd1cmF0aW9uIG9mIGdyb3VwcyAoImF1dGhncm91cCIpCgoyMDA1LTEwLTI1IDA3OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEFsbG93IGNvbW11bml0eS1iYXNlZCBkaXJlY3RpdmVzIChhdXRoY29tbXVuaXR5LCBldGMpIHRvIHNwZWNpZnkKICAgYSBwYXJ0aWN1bGFyIFNOTVAgdmVyc2lvbiAodjEtb25seSBvciB2MmMtb25seSkKCjIwMDUtMTAtMjUgMDc6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgU3VwcG9ydCBzaW1wbGUgYWNjZXNzIGRpcmVjdGl2ZXMgY29uZmlndXJlZCB3aXRoIG5hbWVkIHZpZXdzICgtVikKICAgYXMgd2VsbCBhcyBPSUQgc3VidHJlZXMuCgoyMDA1LTEwLTI1IDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX2NvbmYuaDoKCiAgIERlZmluZSAic3RhbmRhcmQiIHZpZXdzIChhbGwgb3Igbm90aGluZykKCjIwMDUtMTAtMjUgMDc6MzkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXb3JrIHdpdGggdGhlIGFjdGl2ZSByb290IG9mIHRoZSBNSUIgdHJlZSAocmF0aGVyIHRoYW4gdGhlIGJhY2t3YXJkCiAgIGNvbXBhdGliaWxpdHkgdmVyc2lvbikuICBUaGlzIGFsbG93cyAncmVhZF9vYmppZCcgdG8gd29yayBjb3JyZWN0bHkKICAgKHdpdGggbnVtZXJpYyBPSURzKSBiZWZvcmUgdGhlIE1JQiBmaWxlcyBhcmUgbG9hZGVkLgoKMjAwNS0xMC0yNCAxOTozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210OgoKICAgcmV3b3JrZWQgdG8gdXNlIG5ldyBTdjN1c21jb25maWcqIGZyYW1ld29yawoKMjAwNS0xMC0yNCAxOTozMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2CjoKCiAgIFNOTVB2MyBhdXRoTm9Qcml2L2F1dGhQcml2IElORk9STSB0ZXN0cyBiYXNlZCBvbiBuZXcgU3YzdXNtY29uZmlnKgoKMjAwNS0xMC0yNCAxOToyNyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2M3VzbWNvbmZpZ2Jhc2UsCiAgICAgU3YzdXNtY29uZmlndHJhcGQ6CgogICByZXdyaXR0ZW4gU05NUHYzIFVTTSBjb25maWc6IGJhc2ljLCBhZ2VudCwgdHJhcGQKCjIwMDUtMTAtMjQgMTk6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgRml4IGZvciBjb21waWxhdGlvbiBpc3N1ZXM6CiAgICAgLSByZWFycmFuZ2UgZnVuY3Rpb24gb3JkZXIgdG8gZ2V0IHByb3BlciBwcm90b3R5cGUgb3JkZXJpbmcgd2l0aG91dAogICAgICAgcHJvdG90eXBlcy4KICAgICAtIFJlbW92ZWQgZGF0YSB0eXBlIGZvciBhIHZhcmlhYmxlIG5hbWUgdGhhdCB3YXMgZ2V0dGluZyBwYXNzZWQgaW4KICAgICAgIGFzIHdlbGwuCgoyMDA1LTEwLTI0IDE4OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIHVzZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCBpbnN0ZWFkIG9mIEludGVyZmFjZV9JbmRleF9CeV9OYW1lCgoyMDA1LTEwLTI0IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHJlbW92ZSBNRkRfUkVXUklURSBjaGVjaywgdXNlIFVTSU5HX01JQklJX0lOVEVSRkFDRVNfTU9EVUxFIGluc3RlYWQKCjIwMDUtMTAtMjQgMTg6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBjb25maWdfZXhjbHVkZSBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDE4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gcmVxdWlyZSBuZXcgbWliSUkvaWZUYWJsZSBpbnN0ZWFkIG9mIG1pYklJL2ludGVyZmFjZXMKICAgLSByZW1vdmUgTUZEX1JFV1JJVEUgY2hlY2sKICAgLSBjb25zb2xpZGF0ZSBsaW51eCByZXF1aXJlcyB0byBvbmUgbGluZQoKMjAwNS0xMC0yNCAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jOgoKICAgZml4IGlmSW5kZXggbWlzLW1hdGNoIChhZGQgc3VwcG9ydCBmb3IgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkpCgoyMDA1LTEwLTI0IDE4OjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmg6CgogICAtIHJlcXVpcmUgbmV3IG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCiAgIC0gcmVxdWlyZSBob3N0L2hyX2RldmljZSB0b28sIHNpbmNlIGl0IGRlY2xhcmVzIGdsb2JhbHMgd2UgbmVlZAoKMjAwNS0xMC0yNCAxODoxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGltcGxlbWVudCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSBmdW5jdGlvbnMgSW50ZXJmYWNlX1NjYW5fKEluaXR8TmV4dCkgc28KICAgICBhbGwgbW9kdWxlcyBjYW4gYWdyZWUgb24gaWZJbmRleCB2YWx1ZXMKCjIwMDUtMTAtMjQgMTc6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBidWcgaW4gaXRlcmF0b3I7IHJlc2V0IHB0ciBvdmVyd3JpdHRlbiBieSByZWxlYXNlCgoyMDA1LTEwLTI0IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZHJvcCBwYWNrZXRzIHdpdGggc2Vzc2lvbiBlcnJub3MgYXR0YWNoZWQgdG8gdGhlbQoKMjAwNS0xMC0yNCAxMzo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgcmVtb3ZlIE1GRCByZXdyaXRlIGd5cmF0aW9ucwoKMjAwNS0xMC0yNCAxMzo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI0IDEzOjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIHRlc3RzIGZvciBpbnZhbGlkIG9wdGlvbnMgKG1pbmlhZ2VudCkKCjIwMDUtMTAtMjQgMTM6NDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgZGV0YWlscyB0byBsb2cvZGVidWcgbWVzc2FnZQoKMjAwNS0xMC0yNCAxMzo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmg6CgogICB1c2UgbmV3IG1pYklJL2lmVGFibGUgaW4gcGxhY2Ugb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxMzozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaDoKCiAgIG5ldyBtb2R1bGUgZm9yIG90aGVyIG1vZHVsZXMgdG8gcmVmZXJlbmNlLCBpbiBwbGFjZSBvZiBtaWJJSS9pbnRlcmZhY2VzCgoyMDA1LTEwLTI0IDEzOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggaWZJbmRleCBsb29rdXAgb24gbGludXggKHVzZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW5kZXhfZmluZCkKCjIwMDUtMTAtMjQgMTE6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBHZW5lcmljIHRhYmxlIEFQSTogIlJvdyBvcGVyYXRpb25zIiAgIChleHBlcmltZW50YWwgaW1wbGVtZW50YXRpb24pCgoyMDA1LTEwLTI0IDExOjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBTS0lQKCkKCjIwMDUtMTAtMjQgMTA6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M0RFU2NvbmZpZywgU3YzU0hBREVTY29uZmlnOgoKICAgcmVtb3ZlIG9ic29sZXRlIFNOTVB2MyBjb25maWcgZmlsZXMKCjIwMDUtMTAtMjQgMDc6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgR2VuZXJpYyB0YWJsZSBBUEk6IFJvdyBvcGVyYXRpb25zCgoyMDA1LTEwLTI0IDA2OjU4ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wZHVtcC5wbDoKCiAgIEZvciBUaG9tYXMKCjIwMDUtMTAtMjQgMDY6NTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3Zpc2lvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSAiVGFibGUgbWFpbnRlbmFuY2UiIGdlbmVyaWMgQVBJLgogICBNb3N0IG9mIHRoaXMgaXMgbm90IHJlYWxseSBhcHBsaWNhYmxlIHRvIHRoZSBpdGVyYXRvciBoZWxwZXIsIGJ1dAogICBoYXZpbmcgYSBzdGFuZGFyZCBtZWNoYW5pc20gZm9yIGNvbnN0cnVjdGluZyAoYW5kIGZyZWVpbmcpIHRoZQogICBtYWluIGl0ZXJhdG9yIHN0cnVjdHVyZSBtaWdodCBiZSB1c2VmdWwuCgoyMDA1LTEwLTI0IDA2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBDb3VudCB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYW4gaXRlcmF0b3ItYmFzZWQgdGFibGUuCgoyMDA1LTEwLTI0IDA2OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQXNzb2NpYXRlIHRhYmxlIGluZGV4IGluZm9ybWF0aW9uIHdpdGggdGhlIGl0ZXJhdG9yIHN0cnVjdHVyZS4KICAgKEV4cGVyaW1lbnRhbCBjb2RlIC0gaW50cm9kdWNlcyBhIG1pbm9yIG9uZS1vZmYgbWVtb3J5IGxlYWssCiAgICBidXQgc2hvdWxkbid0IG90aGVyd2lzZSBhZmZlY3QgZXhpc3RpbmcgY29kZSkKCjIwMDUtMTAtMjMgMjA6MTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIGluaXRpYWwgdGVzdCBmb3IgU05NUHYzIHNubXB0cmFwZCBVU00gdXNlciBtYW5hZ2VtZW50IHdpdGggc25tcHVzbQoKMjAwNS0xMC0yMyAxOTo1NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBmaXggQ0hFQ0tBR0VOVCgpIGFuZCBpbnRyb2R1Y2UgQ0hFQ0tUUkFQRE9SRElFKCkKCjIwMDUtMTAtMjMgMTk6NDUgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTEwLTIzIDE1OjE1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmbGFncyBzdXBwb3J0OyBkZWZhdWx0IHRvIG5vIGR1cGxpY2F0ZSBrZXlzCgoyMDA1LTEwLTIzIDE1OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdHdlYWsgb3B0aW9ucyBmdW5jdGlvbiB0byBhbGxvdyB0ZXN0IGFuZCBzZXQKCjIwMDUtMTAtMjMgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBhZGQgZnVuY3Rpb24gdG8gc2V0IGNvbnRhaW5lciBvcHRpb25zCgoyMDA1LTEwLTIyIDE4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgdGVzdHMvU3YzY29uZmlnLAogICAgIHRlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RzL1N2YWNtY29uZmlnLAogICAgIHRlc3RzL1N2YW55Y29uZmlnOgoKICAgZml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZQoKMjAwNS0xMC0yMiAxODoxNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXBsYWNlIG9ic29sZXRlIHNubXB0cmFwZCAiLXUiIGZsYWcgYnkgIi1wIgoKMjAwNS0xMC0yMiAxODoxMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvLmN2c2lnbm9yZToKCiAgIGlwLW1pYiBjaGFuZ2VzIG5vdyByZXF1aXJlIC5jdnNpZ25vcmUKCjIwMDUtMTAtMjIgMTg6MDQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGE6CgogICBvYnNvbGV0ZWQgYnkgU3YzY29uZmlnCgoyMDA1LTEwLTIyIDAwOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1N3RyYXBkYXV0aHRlc3QsIFQwNTd0cmFwZGF1dGh0ZXN0MgosIFQwNTd0cmFwZGF1dGh0ZXN0MzoKCiAgIHByb3BlciBjaGVja3MgZm9yIGZhaWx1cmUgb2YgdW5hdXRob3JpemVkIHRyYXBzCgoyMDA1LTEwLTIyIDAwOjUxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0MjoKCiAgIHRlc3QgZm9yIHdyb25nIHRyYXAgb2lkcwoKMjAwNS0xMC0yMiAwMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIG5ldyBjb25maWcgdG9rZW5zIHJvdW5kIDIKCjIwMDUtMTAtMjIgMDA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMKOgoKICAgRG8gdHJhcCBhdXRoIHBhcnNpbmcgdGhlIHdheSBEYXZlIHdhbnRzLgoKMjAwNS0xMC0yMSAyMDozMCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIG5ldyBoZWxwZXIgYW5kIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIGFkZCBuZXcgSVAtTUlCIHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwX3NjYWxhcnMuaDoKCiAgIGRhdGEgYWNjZXNzIGZvciBzb21lIElQLU1JQiBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogc2NhbGFyc19jb21tb24uaCwKICAgICBzY2FsYXJzX2xpbnV4LmM6CgogICBkYXRhIGFjY2VzcyBmb3IgbGludXggc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwX3NjYWxhcnMuYywgaXBfc2NhbGFycy5oOgoKICAgc29tZSBuZXcgc2NhbGFycyBpbiB0aGUgSVAtTUlCCgoyMDA1LTEwLTIxIDIwOjIyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIC0gbmV3IGhlbHBlciBmb3IgcncgYWNjZXNzIHRvIGFuIGludGVnZXIgYmFzZWQgdmFyaWFibGUgd2hpY2ggaXMgc3RvcmVkCiAgICAgYXMgYXNjaWkgaW4gYSBmaWxlCgoyMDA1LTEwLTIxIDE4OjMxICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIEFkZCAiLUNFIEVOR0lORS1JRCIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHVzbVVzZXJFbmdpbmVJRC4gRW5hYmxlcyBzbm1wdXNtIHRvIG1hbmFnZSBzbm1wdHJhcGQncyB1c21Vc2VyVGFibGUgKGZpeGVzIGJ1ZyAjMTMzMzY1NSkuCgoyMDA1LTEwLTIxIDE4OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSBmaXggZnVuIGNvbW1lbnQgaGVhZGVyIGZvciBkb3h5Z2VuIChrZWVwIHdlcyBoYXBweSkKICAgLSBkb2N1bWVudCBzbGlnaHRseSBub24tb2J2aW91cyBpbmRleCB1c2UgKGtlZXAgZGF2ZSBoYXBweSkKCjIwMDUtMTAtMjEgMTI6MjkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBcHBseSBwYXRjaCAxMjk5NTU0IGZyb20gVGFvIHRvIGZpeCBzZWdmYXVsdCBpbiB2YXJfaWZFbnRyeSgpCgoyMDA1LTEwLTIxIDA2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6CgogICBNb3JlIHBvcnRhYmxlIGhhbmRsaW5nIG9mICdvdmVyc2hvb3QnIGRlY2xhcmF0aW9uLgoKMjAwNS0xMC0yMSAwNjo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2NvbnRhaW5lci5jLCB0YWJsZV9kYXRhLmMsCiAgICAgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIHRoZSAiVGFibGUgbWFpbnRlbmFuY2UiIHNlY3Rpb24KICAgb2YgdGhlIGdlbmVyaWMgdGFibGUgQVBJLgoKMjAwNS0xMC0yMSAwNjo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBNaW5vciB0d2Vha3MgdG8gZ2VuZXJpYyB0YWJsZSBBUEkgbmFtZXMsCiAgIGFuZCBjb3JyZWN0IGEgY291cGxlIG9mIGZsYXdlZCBmdW5jdGlvbiBwcm90b3R5cGVzLgoKMjAwNS0xMC0yMSAwNToyMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIGdlbmVyYWxpemVkIGV4Y2VwdGlvbiByZWdleCB0byBsZXQgYW55ICJ0ZXN0aW5nIC4uLiBmYWlsdXJlIC4uLiIgZ28gdGhyb3VnaCwgZS5nLiB0aGUgbmV3IHNubXB0cmFwZCB0ZXN0IHJlY2VudGx5IGludHJvZHVjZWQKCjIwMDUtMTAtMjEgMDE6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGluaXQgdmFjbQoKMjAwNS0xMC0yMSAwMTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmg6CgogICBpbmNsdWRlIHRoZSBuZXcgc25tcHRyYXBkX2RzLmggZmlsZQoKMjAwNS0xMC0yMSAwMTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgQWRkZWQgYSB3YXJuaW5nIG5vdGUgYWJvdXQgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIHNubXB0cmFwZCwgd2hpY2gKICAgaGFkIGFjdHVhbGx5IGJlZW4gYnlwYXNzZWQgcmVjZW50bHkgYW5kIG5vIG9uZSBub3RpY2VkLgoKMjAwNS0xMC0yMSAwMTo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDoKCiAgIHRlc3QgdHJhcGQgYXV0aG9yaXphdGlvbiBmYWlsdXJlcwoKMjAwNS0xMC0yMSAwMTo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm0sIFQwNTBzbm1wdjN0cmFwLAogICAgIFQwNTFzbm1wdjJjdHJhcCwgVDA1MnNubXB2MmNpbmZvcm0sIFQwNTNhZ2VudHYxdHJhcAosIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMTEzYWdlbnR4dHJhcDoKCiAgIE1vZGlmaWVkIHRoZSB0ZXN0cyB0byBhY2NvbW1vZGF0ZSB0aGUgbmV3IHRyYXBkIGF1dGggc2NoZW1lCgoyMDA1LTEwLTIxIDAxOjM4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfYXV0aC5jCiwgc25tcHRyYXBkX2F1dGguaCwgc25tcHRyYXBkX2RzLmgsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgQWRkZWQgYSBuZXcgYXV0aG9yaXphdGlvbiBoYW5kbGVyIGFuZCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gdG9rZW5zIHRvCiAgIGFsbG93IHNubXB0cmFwZCB0byBhY2NlcHQgb3IgZHJvcCBub3RpZmljYXRpb25zIGJhc2VkIG9uIHRoZQogICBhdXRob3JpemF0aW9uIGFzc2lnbmVkIHRvIGEgY29tbXVuaXR5L3VzZXIgcGFpcmVkIHdpdGggdGhlIGFjdGlvbiB0bwogICBiZSB0YWtlbiAobG9nLCBmb3J3YXJkLCBleGVjdXRlKS4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBjb25maWd1cmF0aW9uCiAgIHRva2VucyB0aGF0IHdlcmUgYWRkZWQgdG8gYWNoaWV2ZSB0aGlzLiAgMyBvZiB0aGUgVkFDTSBvbmVzIGNhbiBiZQogICB1c2VkIGFzIG5vcm1hbCAodmlldywgY29tMnNlYywgZ3JvdXApIGFuZCBvbmUgYWRkaXRpb25hbCBvbmUKICAgKHNldGFjY2VzcykgbmVlZHMgdG8gYmUgdXNlZCB0byBzZXQgaW5kaXZpZHVhbCB2aWV3cyBmb3IgYWNjZXNzIHRvCiAgIGJpbmQgZXZlcnl0aGluZyB0b2dldGhlci4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSB3cmFwcGVycwogICBhcyB3ZWxsIGZvciB0aGVzZSB0b2tlbiBzZXRzLiAgRmluYWxseSwgdGhlcmUgaXMgYQogICBkaXNhYmxlQXV0aG9yaXphdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSBzZXQgdG8gdHJ1ZSB0byBzaW1wbHkgYWxsb3cKICAgZXZlcnl0aGluZyB0aHJvdWdoLgoKMjAwNS0xMC0yMSAwMToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICAtIHJlc3RydWN0dXJlZCB0aGUgVkFDTSBjb2RlIHRvIHByb3ZpZGUgZm9yIHRoZSBub3Rpb24gb2YgYWRkaXRpb25hbAogICAgIHZpZXdzIGJlc2lkZXMgdGhlIHN0YW5kYXJkIHJlYWQvd3JpdGUvbm90aWZ5IHZpZXdzCiAgICAgLSBtdWNoIG9mIHRoZSBjaGVja2luZyBjb2RlIHdhcyByZXN0cnVjdHVyZWQgdG8gYmUgbW9yZSBtb2R1bGFyCiAgICAgLSBhZGRlZCBhIG5ldyBzZXRhY2Nlc3MgY29uZmlnIHRva2VuIHRoYXQgY2FuIHNldCB0aGUgdmlldyBuYW1lIGZvcgogICAgICAgYSBwYXJ0aWN1bGFyIGFjY2VzcyBsZXZlbAogICAgIC0gYWRkZWQgMyBuZXcgYWNjZXNzIGxldmVsczogbG9nLCBleGVjdXRlLCBuZXQKICAgICAgIC0gYWRkZWQgZW51bSBzdHJ1Y3R1cmUgZm9yIHRoZXNlCgoyMDA1LTEwLTIwIDEzOjIyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggcmVtYWluaW5nIElQIGFkZHJlc3MgYnl0ZSBvcmRlciBidWcKCjIwMDUtMTAtMjAgMDg6MjYgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBFdmVudCBNSUIuCgogICAoUW46IHdoZXJlIGRvZXMgJ2RlZmF1bHRfbWlic19pbnN0YWxsJyBnZXQgc2V0PykKCjIwMDUtMTAtMjAgMDg6MjUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIHNjaGVkdWxlIE1JQiBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZGVmYXVsdCBsaXN0LgoKICAgVGhpcyBxdWFsaWZpZXMgZm9yIGJvdGg6CiAgICAgICAnVHJhZGl0aW9uYWxseSBpdCdzIGJlZW4gInR1cm4gaXQgb24gaWYgaXQgY29tcGlsZXMgMTAwJQogICAgICAgIG9mIHRoZSB0aW1lLi4uLicKICAgc2luY2UgaXQncyBhbGwgbm9uLWFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLCBhbmQ6CiAgICAgICAnLi4uIGFuZCBpZiBpdCByZXF1aXJlcyBydW4gdGltZSBlbmFibGluZyBhcyB3ZWxsIgoKMjAwNS0xMC0yMCAwODowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50Lmg6CgogICBBZGQgdGhlIEV2ZW50IE1JQiB0byB0aGUgbGlzdCBvZiBNSUJzIHRvIGxvYWQuCgoyMDA1LTEwLTIwIDA3OjMzICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0gcm1kaXIgLT4gcm0gLWZSLCBzaW5jZSBkaXJlY3RvcnkgaXNuJ3QgZW1wdHkKICAgLSBhZGQgLXAvU05NUF9URVNUX1BSRUZJWCB0byBhbGxvdyBub24tc3RhbmRhcmQgdGVzdHMgdG8gYmUgcnVuCgoyMDA1LTEwLTIwIDA1OjMxICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgcHJvcGFnYXRlIHRlc3QtbWlicyB0YXJnZXQKCjIwMDUtMTAtMjAgMDQ6MzEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZnVydGhlciB0d2VhayBleGNlcHRpb24gcmVnZXgKCjIwMDUtMTAtMTkgMjM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICBhZGQgaWZUYWJsZUxhc3RDaGFuZ2Ugc2NhbGFyCgoyMDA1LTEwLTE5IDE3OjU5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRvY3VtZW50IHRoYXQgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhZmZlY3RzIHNubXB0cmFwZCBhbHNvCgoyMDA1LTEwLTE5IDExOjAxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwIGV4Y2VwdGlvbnMKCjIwMDUtMTAtMTkgMDc6MDQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIFdpdGhkcmF3ICd0YWJsZV9kYXRhc2V0MicgaGVscGVyCgoyMDA1LTEwLTE5IDAxOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBhZGQgJ2RlZmF1bHQnIGFzIHRoZSBvaWQgZm9yIGV4ZWNpbmcgdGhlIGV4YW1wbGUgdHJhcGhhbmRsZQoKMjAwNS0xMC0xOSAwMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IGJ1ZyAjMTMxMzY2NzogaW5mb3JtcyBhcmUgc2VudCBhc3ljaHJvbm91c2x5IHRvIGF2b2lkIGNyYXNoaW5nIHRoZSBhZ2VudCB3aGVuIHRoZSByZWNlaXZlciBpcyBkb3duCgoyMDA1LTEwLTE4IDIyOjI0ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsIFJFQURNRS50eHQsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyOiBSZW5hbWUgTmV0LVNOTVAucHBkIHRvIE5ldFNOTVAucHBkLCBhZGQgYSBjb3VwbGUKICAgaGVhZGVyIGZpbGVzIHRvIFdpbjMyIHVuaW5zdGFsbGVyLgoKMjAwNS0xMC0xOCAxODoyMiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkICNpZmRlZnMgZm9yIE1JQiBtb2R1bGUgZGVwZW5kZW50IGNvZGUKCjIwMDUtMTAtMTggMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBpbmRleCBnZW5lcmF0aW9uIGZvciBmaXhlZCBsZW5ndGggb2N0ZXQgc3RyaW5ncwoKMjAwNS0xMC0xOCAxMjowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaCwKICAgICB3aW4zMi9saWJoZWxwZXJzL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBXaXRoZHJhdyAndGFibGVfZGF0YXNldDInIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIG10ZUV2ZW50VGFibGUuYzoKCiAgIFJldmVydCB0byBvcmlnaW5hbCAndGFibGVfZGF0YXNldCcgaGVscGVyLgoKMjAwNS0xMC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICBzeW5jIHJlYWRtZSBpbiBhbGwgYnJhbmNoZXMKCjIwMDUtMTAtMTggMTE6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFJldmVydCB0byB1c2luZyB0aGUgb3JpZ2luYWwgJ3RhYmxlX2RhdGFzZXQnIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUHJvdmlkZSBtaXNzaW5nIHRhYmxlLXRyYXZlcnNhbCByb3V0aW5lcy4KCjIwMDUtMTAtMTggMTA6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuaDoKCiAgIE9vcHMhICBPbmUgbG9jYXRpb24gY2hhbmdlIGdvdCBvdmVybG9va2VkIQoKMjAwNS0xMC0xOCAxMDo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgZ3JlcHMgZm9yIGVycm9yIGNhc2UgaW5zZW5zaXRpdmUKCjIwMDUtMTAtMTggMTA6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgZG8gbm90IGluc3RhbGwgcmVtb3ZlZC9yZWR1bmRhbnQgaGVhZGVyCgoyMDA1LTEwLTE4IDEwOjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmgsCiAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbmFtZSAndGFibGVfZGF0YTInIGhlbHBlciBhcyAndGFibGVfdGRhdGEnCgoyMDA1LTEwLTE4IDA3OjQxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIFByZXBhcmUgdGhlIHdheSBmb3IgcmVuYW1pbmcgJ3RhYmxlX2RhdGEyJyBtb3JlIHNlbnNpYmx5LgoKMjAwNS0xMC0xOCAwNzozOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgUmVtb3ZlIHVud2FudGVkIHZlc3RpZ2F0ZXMgb2YgJ3RhYmxlX2RhdGEnIHN0cnVjdHVyZXMsIGFuZCBicmluZwogICB0YWJsZSBjcmVhdGlvbiBtb3JlIGNsb3NlbHkgaW50byBsaW5lIHdpdGggdGhlIGdlbmVyaWMgQVBJIHRlbXBsYXRlLgoKMjAwNS0xMC0xOCAwNzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgTWlzc2luZyByZXR1cm4gdmFsdWUuCgoyMDA1LTEwLTE4IDA3OjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jOgoKICAgTWlzc2luZyByZXR1cm4gdmFsdWVzLgoKMjAwNS0xMC0xOCAwNzoyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBJZiBubyBpcXVlcnkgc2Vzc2lvbiBpcyBjb25maWd1cmVkIGZvciBhIHBhcnRpY3VsYXIgZXZlbnQsCiAgIHRyeSB0aGUgc2V0dGluZ3MgZnJvbSB0aGUgdHJpZ2dlciwgYmVmb3JlIGZhbGxpbmcgYmFjayB0bwogICB0aGUgZGVmYXVsdCBpbnRlcm5hbCBxdWVyeSBzZXNzaW9uLgoKMjAwNS0xMC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBVc2UgJ2lxdWVyeVNlY05hbWUnIHNldHRpbmdzIGF0IGNvbmZpZ3VyZSB0aW1lLCByYXRoZXIgdGhhbiB3aGVuCiAgIHRoZSB0cmlnZ2VyIGlzIGFjdHVhbGx5IGludm9rZWQuICBUaGlzIGFsbG93czoKICAgICAgICBpcXVlcnlTZWNOYW1lIG1lCiAgICAgICAgbW9uaXRvciBteU1vbml0b3IgLi4uLi4KICAgICAgICBtb25pdG9yIG15T3RoZXJNb25pdG9yIC4uLi4uCiAgICAgICAgaXF1ZXJ5U2VjTmFtZSB5b3UKICAgICAgICBtb25pdG9yIHlvdXJNb25pdG9yIC4uLi4uCiAgIHRvIHdvcmsgaW4gdGhlIG1vc3QgbmF0dXJhbCBtYW5uZXIuCiAgIElmIG5vIGlxdWVyeSBzZWN1cml0eSBuYW1lIGlzIGF2YWlsYWJsZSBhdCBjb25maWd1cmUgdGltZSwKICAgdGhpcyB3aWxsIGJlIGV2YWx1YXRlZCBhdCBydW4gdGltZSBpbnN0ZWFkLgoKMjAwNS0xMC0xOCAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkQ29uZi5oLAogICAgIHNjaGVkQ29yZS5jLCBzY2hlZENvcmUuaCwgc2NoZWRUYWJsZS5jLAogICAgIHNjaGVkVGFibGUuaDoKCiAgIFJlbW92ZSBwcmV2aW91cyBTY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24uCgoyMDA1LTEwLTE4IDA3OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZHVsZS5oLCBzY2hlZHVsZS8uY3ZzaWdub3JlCiwgc2NoZWR1bGUvc2NoZWRDb25mLmMsIHNjaGVkdWxlL3NjaGVkQ29uZi5oLAogICAgIHNjaGVkdWxlL3NjaGVkQ29yZS5jLCBzY2hlZHVsZS9zY2hlZENvcmUuaCwKICAgICBzY2hlZHVsZS9zY2hlZFRhYmxlLmMsIHNjaGVkdWxlL3NjaGVkVGFibGUuaDoKCiAgIFJlLXdvcmtlZCBTY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24uCiAgIENsZWFuZXIsIGxlYW5lciwgYW5kIG1vcmUgY29tcGxldGUuCiAgIE5vdyB3aXRoIGFkZGVkIHZpdGFtaW5zLgoKMjAwNS0xMC0xNyAxODoyNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGFkZCBtb3ZlIHZlcmJvc2UgZGVidWdnaW5nOyBpbml0IGlubmVyIGxvb3AgY291bnRlciBhZnRlciBlYWNoIGl0ZXJhdGlvbgoKMjAwNS0xMC0xNyAxNzowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBwb3J0YWJsZSBleHBvcnQgb2YgZW52IHZhcgoKMjAwNS0xMC0xNyAxNjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBhIGZsaXBwaW5nIGxvIGludGVyZmFjZSBieSBmaXhpbmcgZ2V0S3N0YXRJbnQgdG8gZG8gYXMgZG9jdW1lbnRlZAoKMjAwNS0xMC0xNyAxNDoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBhZGQgcHJvdG90eXBlIGJlZm9yZSB1c2U7IGNoZWNrIHN0YXR1cyBvZiBjb3JyZWN0IHN0cnVjdCBtZW1iZXIKCjIwMDUtMTAtMTcgMTI6NTIgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgLSBub3RlIGxkIGZsYWdzIGZvciAxMC40LnggYnVpbGRpbmcgdy9wZXJsCgoyMDA1LTEwLTE3IDExOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEVuc3VyZSB0aGUgZXZlbnQgbmFtZSBidWZmZXIgaXMgcHJvcGVybHkgY2xlYXJlZCBiZWZvcmUgdXNlLgoKMjAwNS0xMC0xNyAwNzozNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIE1vZGlmeSBleGlzdGluZyB0YWJsZSBoZWxwZXJzIGluIGxpbmUgd2l0aCB0aGUgcHJvcG9zZWQgZ2VuZXJpYyBBUEkuCgogICBUaGlzIGRvZXMgKk5PVCogY2hhbmdlIGFueSBleGlzdGluZyBjb2RlIChhdCBsZWFzdCBub3QgaW50ZW50aW9uYWxseSksCiAgIG9yIGFkZCBhbnkgb2YgdGhlICJtaXNzaW5nIiBBUEkgcm91dGluZXMuICBJJ3ZlIHNpbXBseSByZS1zaHVmZmxlZAogICB0aGUgb3JkZXIgb2YgdGhlIGV4aXN0aW5nIHJvdXRpbmVzIHRvIG1hdGNoIHRoZSBnZW5lcmljIHRlbXBsYXRlLgoKMjAwNS0xMC0xNyAwNzoyOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBQcm9wZXIgZGVmaW5pdGlvbi9kb2N1bWVudGF0aW9uIG9mIGEgZ2VuZXJpYyB0YWJsZSBBUEkgZnJhbWV3b3JrLgogICBUaGUgZXhhY3QgZGV0YWlscyBtYXkgbm90IGJlIGRpcmVjdGx5IGFwcHJvcHJpYXRlIGluIGZ1bGwgZm9yIGV2ZXJ5CiAgIHRhYmxlIGhlbHBlciwgYnV0IHRoaXMgc2hvdWxkIHByb3ZkZSBhIHVzZWZ1bCBiYXNpYyBkZXNpZ24gdGVtcGxhdGUuCgoyMDA1LTEwLTE3IDAwOjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZWQgZm9yY2VkIGRlYnVnZ2luZyBvdXRwdXQKCjIwMDUtMTAtMTQgMTk6MzcgIGJzaGF3NjY2CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYXV0b2NvbmYgcmVjb2duaXRpb24KCjIwMDUtMTAtMTQgMTg6NDUgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIHN1cHBvcnQgTmV0QlNEIDEueCBhbmQgMi54IHVuZGVyIHRoZSAoY29tbW9uKSAibmV0YnNkIiBzeXNPYmplY3RJRC4wCgoyMDA1LTEwLTE0IDE3OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgY29tbWVudHMgYW5kIGRlYnVnIG1lc3NhZ2VzCiAgIC0gZG9uJ3QgcmVsZWFzZSByb3cgb24gZXJyIChpdCdzIHN0aWxsIGluIHRoZSBjb250YWluZXIhKQogICAtIGRvbid0IGluc2VydCByb3cgb24gc3VjY2VzcyAoaXQncyBhbHJlYWR5IGluIHRoZSBjb250YWluZXIhKQoKMjAwNS0xMC0xNCAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgcmVwbGFjZSBoYXJkY29kZWQgInNubXBkIiB3L05FVFNOTVBfRFNfTElCX0FQUFRZUEUKCjIwMDUtMTAtMTQgMTE6MjUgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHJlZ2lzdGVyIHRoZSBzbm1wRW5naW5lIE1JQiBncm91cCB1bmRlciB0aGUgInNubXB0cmFwZCIgY29udGV4dCB0byBhbGxvdyBmb3IgZW5naW5lSUQgcHJvYmVzIHZpYSB0aGUgbWFzdGVyIGFnZW50LCBlLmcuIGJ5IHNubXB1c20KCjIwMDUtMTAtMTQgMTE6MjUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmg6CgogICBhbGxvdyBzdWJhZ2VudHMgKGxpa2Ugc25tcHRyYXBkKSB0byByZWdpc3RlciB0aGUgc25tcEVuZ2luZSBNSUIgZ3JvdXAgdW5kZXIgYSBjb250ZXh0IGJ5IGludHJvZHVjaW5nIHJlZ2lzdGVyX3NubXBFbmdpbmVfc2NhbGFyc19jb250ZXh0KCkKCjIwMDUtMTAtMTQgMDk6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV4cHJlc3Npb24uaCwgZXhwci8uY3ZzaWdub3JlCiwgZXhwci9leHBFcnJvclRhYmxlLmMsIGV4cHIvZXhwRXJyb3JUYWJsZS5oLAogICAgIGV4cHIvZXhwRXhwcmVzc2lvbi5jLCBleHByL2V4cEV4cHJlc3Npb24uaCwKICAgICBleHByL2V4cEV4cHJlc3Npb25Db25mLmMsIGV4cHIvZXhwRXhwcmVzc2lvbkNvbmYuaCwKICAgICBleHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCBleHByL2V4cEV4cHJlc3Npb25UYWJsZS5oLAogICAgIGV4cHIvZXhwT2JqZWN0LmMsIGV4cHIvZXhwT2JqZWN0LmgsCiAgICAgZXhwci9leHBPYmplY3RDb25mLmMsIGV4cHIvZXhwT2JqZWN0Q29uZi5oLAogICAgIGV4cHIvZXhwT2JqZWN0VGFibGUuYywgZXhwci9leHBPYmplY3RUYWJsZS5oLAogICAgIGV4cHIvZXhwU2NhbGFycy5jLCBleHByL2V4cFNjYWxhcnMuaCwgZXhwci9leHBWYWx1ZS5jCiwgZXhwci9leHBWYWx1ZS5oLCBleHByL2V4cFZhbHVlVGFibGUuYywKICAgICBleHByL2V4cFZhbHVlVGFibGUuaDoKCiAgIFByZWxpbWluYXJ5IChyZS0paW1wbGVtZW50YXRpb24gb2YgdGhlIEV4cHJlc3Npb24gTUlCLgogICBUaGUgZXhwRXhwcmVzc2lvblRhYmxlIGFuZCBleHBPYmplY3RUYWJsZSBhcmUgcmVhc29uYWJseSBjb21wbGV0ZS4KICAgVGhlIGV4cFZhbHVlVGFibGUgKGFuZCBleHByZXNzaW9uIGV2YWx1YXRpb24pIGlzIHN0aWxsIGp1c3QgYQogICBiYXNpYyBmcmFtZXdvcmsgLSBleHByZXNzaW9ucyBhcmUgZGlzcGxheWVkIHJhdGhlciB0aGFuIGV2YWx1YXRlZC4KICAgQW5kIHRoZXJlJ3Mgbm8gdXNlci1sZXZlbCBjb25maWd1cmF0aW9uIG9mIGV4cHJlc3Npb25zIHlldC4KCiAgIEJ1dCB0aGVyZSdzIGVub3VnaCB3b3JraW5nIGNvZGUgdG8gYmUgd29ydGggY29tbWl0dGluZyAtIGV2ZW4gaWYKICAgb25seSBhcyBhIHNhZmV0eSBtZWNoYW5pc20uCgoyMDA1LTEwLTEzIDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IHNwYXJzZSBoYW5kbGVyIGNhc2U6IG5vIG1vcmUgcm93cywgbGFzdCBjb2x1bW4KCjIwMDUtMTAtMTMgMTI6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gZml4IHRhYmxlIHRva2VuIHRhYmxlIGluZGV4ZXMgZm9yIGF1Z21lbnRlZCB0YWJsZQogICAtIHR3ZWFrIGRlYnVnCiAgIC0gYWRkIHdhcm5pbmcgaWYgdG9vIG11Y2ggZGF0YSBzcGVjaWZpZWQgZm9yIGFkZF9yb3cKCjIwMDUtMTAtMTMgMTE6MjggIHJzdG9yeQoKICAgKiBkb3RnZGJpbml0OgoKICAgYWRkIHByaW50aW5kZXggZm9yIG5ldHNubXBfaW5kZXggc3RydWN0cwoKMjAwNS0xMC0xMyAxMDoxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSBwcmVmaXggKGluc3RlYWQgb2YgdXNpbmcgaW5zdGFsbCBwcmVmaXg9KQoKMjAwNS0xMC0xMyAwNToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTd2l0Y2ggdG8gdXNpbmcgdGhlIG5ldyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb24gYnkgZGVmYXVsdC4KCiAgIFRoZSBwcmV2aW91cyB2ZXJzaW9uIGlzIHN0aWxsIGF2YWlsYWJsZSBmb3IgdGhvc2UgdGhhdCBwcmVmZXIKICAgdG8gdXNlIHRoYXQsIGJ1dCBJJ20gc3VyZSBzb21lb25lIHdpbGwgY29tcGxhaW4gYW55d2F5Oi0oCgoyMDA1LTEwLTEyIDE4OjU5ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmg6CgogICBvcGVuYnNkIHN5c09iamVjdElELjAgZm9yIE9wZW5CU0QgMy54CgoyMDA1LTEwLTEyIDE4OjE2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgZW5oYW5jZSByZWNlbnRseSBpbnRyb2R1Y2VkICJuZXQtc25tcC1jb25maWcgLS1zbm1wY29uZnBhdGgiIHRvIG91dHB1dCBmdWxsIGNvbmZpZyBwYXRoCgoyMDA1LTEwLTEyIDEwOjQ2ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZGVmIGZpbGVzIGFyZSBpbiBzcmNkaXIKCjIwMDUtMTAtMTIgMDY6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNoYW5nZSBuby1vcCBtYWNybyBkZWYgdG8gZW1wdHkgaXNudGVhZCBvZiAodm9pZCkKCjIwMDUtMTAtMTEgMTk6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHJld29yayA2NCBiaXQgb3ZlcmZsb3cgY2hlY2tpbmcsIGFjY291bnRpbmcgZm9yIHNpZ25lZGVkbmVzcwoKMjAwNS0xMC0xMSAxNjozMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB2YXJpYXRpb25zIGluIHRhaWwgcGFyYW1ldGVyIGZvcm1hdAoKMjAwNS0xMC0xMSAxNDo1MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHJlbW92ZSBsZWZ0b3ZlciBFT0YgZnJvbSByZXYgMS4zMTQKCjIwMDUtMTAtMTEgMDc6NTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgb2ssIGxpbnV4IG1haWwgZG9lc24ndCBsaWtlIFtjZW5zb3JlZF0gc29sYXJpcyBzdHlsZTsgZml4CgoyMDA1LTEwLTExIDA3OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgbmV0LXNubXAtY29uZmlnIGlzIGV4ZWN1dGVhYmxlIGJlZm9yZSBidWlsZGluZyBwZXJsIG1ha2UgZmlsZXMKCjIwMDUtMTAtMTEgMDU6MjcgIGR0czEyCgogICAqIHBlcmwvOiBTTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsLAogICAgIFNOTVAvZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsLCBTTk1QL3QvYnVsa3dhbGsudCwKICAgICBtYW5hZ2VyL21hbmFnZXIucG06CgogICBCZSBjb25zaXN0ZW50IGluIGhvdyB2YXJpb3VzIHBlcmwgc2NyaXB0cyBhcmUgaW52b2tlZC4KCjIwMDUtMTAtMTAgMTk6NDIgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgbWlicy9ORVQtU05NUC1UQy50eHQsIG92L29pZF90b19zeW0uaW4KLCBvdi9vaWRfdG9fdHlwZS5pbjoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgTWFjIE9TIFgKCjIwMDUtMTAtMTAgMTg6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICB1cGRhdGUgbGludXggZ2V0X2lmX3NwZWVkIGZ1bmN0aW9uIG5hbWUKCjIwMDUtMTAtMTAgMTg6MDEgIHRhbmRlcnMKCiAgICogb3YvOiBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbjoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgQUlYCgoyMDA1LTEwLTEwIDE3OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBicmVhayBhcGFydCByZWFkaW5nIG9mIGNvbmZpZyBmaWxlcyBhbmQgcGVyc2lzdGVudCBjb25maWcgZmlsZXMgKGFsbG93cwogICAgIHByb3BlciBoYW5kbGluZyBvZiBwZXJzaXN0ZW50RGlyIHRva2VuIGluIGNvbmZpZyBmaWxlcykKICAgLSByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTEwLTEwIDE3OjUxICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICByZXBhbGNlIHBlcmwgdy8gJChQRVJMKQoKMjAwNS0xMC0xMCAxNzo0NCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZCBzeXNPYmplY3RJRCB2YWx1ZSBmb3IgQUlYCgoyMDA1LTEwLTEwIDE3OjA5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCBmcm9tIG9wdGFyZyBwcm9jZXNzaW5nCgoyMDA1LTEwLTEwIDE2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gZm9yIGZyb20gYWRkcmVzcyBmb3IgZW1haWwgcmVzdWx0cwoKMjAwNS0xMC0xMCAxNjoyNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICAtIGFkZCBkaXN0aW5jdCBlbWFpbCBhZGRyZXNzZXMgZm9yIHN1Y2Nlc3MvZXJyb3IgY2FzZXMKICAgLSBmaXhlcyBmb3IgIyVAJComIHNvbGFyaXMgbWFpbCBleGUKICAgLSBkb24ndCByZW1vdmUgZGlyZWN0b3J5IHRpbCB2ZXJ5IGVuZAoKMjAwNS0xMC0xMCAxNjoyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4Y2x1ZGUgZXJyb3IgbGluZXMgZm9yICdJbiBmdW5jdGlvbicgKGVnIGZ1bmMgbmFtZSBjb250YWlucyB3b3JkIGVycm9yKQoKMjAwNS0xMC0xMCAxNDo1NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gYmFzZSBtaWIyYy5jb25mIGdlbmVyYXRpb24gb24gJFBFUkwsIG5vdCAtZCBDVlMKICAgLSBpZiBubyBwZXJsLCB0b3VjaCBmaWxlIHNvIGluc3RhbGwgZG9lc24ndCBmYWlsCgoyMDA1LTEwLTEwIDE0OjQ3ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgbG9jYWwvTWFrZWZpbGUuaW4KLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSBkZWZpbmUgUEVSTCBpbiBhbGwgbWFrZWZpbGVzICh2aWEgTWFrZWZpbGUudG9wKQogICAtIHJlcGxhY2UgYWxsIGNhbGxzIHRvIHBlcmwgd2l0aCAkKFBFUkwpCiAgIC0gcmVwbGFjZSBleGlzdGluZyBQRVJMUFJPRyB3aXRoIFBFUkwgaW4gbWFrZWZpbGVzCgoyMDA1LTEwLTEwIDE0OjM4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIFBFUkxMRE9QVFMgdG8gYWdlbnQgbGlicwoKMjAwNS0xMC0xMCAwOTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIEFsbG93IHRoZSBhZG1pbmlzdHJhdG9yIHRvIGNob29zZSBiZXR3ZWVuIGZvbGxvd2luZyB0aGUgRGlzTWFuCiAgIHNwZWNpZmljYXRpb25zIHN0cmljdGx5LCBvciB1c2luZyBhbiBhcHByb2FjaCB0aGF0IGFjdHVhbGx5IHdvcmtzIQogICAoVGhlIG9mZmljaWFsIG9yZGVyaW5nIGZvciBhZGRpbmcgdmFyYmluZHMgdG8gYSBub3RpZmljYXRpb24KICAgIHBheWxvYWQgbGlzdCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHVzZSBzcGVjaWZ5IFRyaWdnZXIgYW5kCiAgICBFdmVudCBvYmplY3RzIGluIGEgc2Vuc2libGUgZmFzaGlvbikuCgoyMDA1LTEwLTEwIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRG9uJ3QgcmVwb3J0IHJvd3MgdGhhdCBoYXZlbid0IGZpbmlzaGVkIGJlaW5nIGNyZWF0ZWQsIGFuZAogICBkb24ndCBrZWVwIHNjaGVkdWxpbmcgc2FtcGxlcyBmb3Igcm93cyB0aGF0IGFyZSBkaXNhYmxlZCBvciByZW1vdmVkLgoKMjAwNS0xMC0xMCAwOToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBSZWR1bmRlbnQgKGF1dG8tKWNvbW1lbnQuCgoyMDA1LTEwLTEwIDA5OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgQ29udmVydGluZyBiZXR3ZWVuIGluZGV4IHJlcHJlc2VudGF0aW9ucyBpcyBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS4KCjIwMDUtMTAtMTAgMDg6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENvcGUgd2l0aCBhIG1pc3NpbmcgaW50ZXJuYWwgcXVlcnkgdXNlcm5hbWUKICAgKHJhdGhlciB0aGFuIGZvcmNpbmcgYSBoYXJkd2lyZWQgb25lKQoKMjAwNS0xMC0xMCAwNzo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmV0dXJuIHRoZSBmdWxsIGxpc3Qgb2YgcmVzdWx0cyBmcm9tIGFuIGludGVybmFsIHF1ZXJ5LAogICByYXRoZXIgdGhhbiB0cnVuY2F0aW5nIGl0IGFmdGVyIHRoZSBmaXJzdCB2YXJiaW5kLgogICAoV2h5ICdjbG9uZV92YXInIHN0b21wcyBvbiB0aGUgbmV4dCBsaW5rIGlzIGEgbXlzdGVyeSB0byBtZSEpCgoyMDA1LTEwLTEwIDA3OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJbmRpY2F0ZSB0aGF0ICdpZl9zcGVlZCcgQVBJcyBhcmUgTGludXgtc3BlY2lmaWMKICAgKGFuZCBub3QgcGFydCBvZiB0aGUgZ2VuZXJpYyBJRi1NSUIgZGF0YV9hY2Nlc3MgZnJhbWV3b3JrKQoKMjAwNS0xMC0wNyAxNzoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYzoKCiAgIGlmZGVmIG91dCBjb2RlIGlmIG1vZHVsZSBub3QgZW5hYmxlZAoKMjAwNS0xMC0wNyAxNjo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgbW92ZSBtaXNhcHBsaWVkIHBhdGNoIHRvIGNvcnJlY3QgbG9jYXRpb24KCjIwMDUtMTAtMDcgMTY6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICB0eXBvCgoyMDA1LTEwLTA3IDE2OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgb25seSBzYXZlIHNldHRhYmxlIGNvbHMKCjIwMDUtMTAtMDcgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmg6CgogICBkZWZpbmUgc2V0dGFibGUgY29scwoKMjAwNS0xMC0wNyAxNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgZ2V0IHJpZCBvZiBvbGQgcGVyc2lzdGVudCBzYXZlIGZ1bmNzLCBpbiBmYXZvciBvZiBuZXcgZ2VuZXJhdGVkIHN0dWZmCgoyMDA1LTEwLTA3IDE2OjQyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHR5cG8KCjIwMDUtMTAtMDcgMTY6MzggIHRhbmRlcnMKCiAgICogRkFROgoKICAgTWFqb3Igb3ZlcmhhdWwgb2YgbGlzdCBvZiBzdXBwb3J0ZWQgcGxhdGZvcm1zIGJhc2VkIG9uIDUuMi4yLnByZVggdGVzdGluZwoKMjAwNS0xMC0wNyAxNjoyNSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IHR5cG9zIGluIDUuMiBORVdTCgoyMDA1LTEwLTA3IDEwOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEhtbW1tLi4uLiByZW1vdmluZyB0aGUgb2JqZWN0IGVudHJpZXMgZm9sbG93aW5nIGEgZHVwbGljYXRlIHRyaWdnZXIKICAgc2VlbXMgdG8gYmUgcHJvYmxlbWF0aWNhbC4gIChBcyBpbiB0aGUgYWdlbnQgY3Jhc2hlcyEpICBJdCdzIG5vdAogICBjbGVhciB3aGV0aGVyIHRoaXMgaXMgYXBwcm9wcmlhdGUgYmVoYXZpb3VyIGFueXdheS4KCiAgIE5lZWQgdG8gdGhpbmsgYWJvdXQgdGhpcyBhIGJpdCBtb3JlLgoKMjAwNS0xMC0wNyAwOToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlckNvbmYuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgQ29uZmlndXJlIG1vbml0b3Jpbmcgb2YgVUNELXNwZWNpZmljIHRhYmxlcwogICAoY29tcGF0YWJpbGl0eSB3aXRoIHByZXZpb3VzIEV2ZW50LU1JQiBpbXBsZW1lbnRhdGlvbikuCgogICBOb3QgeWV0IGZ1bGx5IHRlc3RlZCwgYnV0IHNlZW1zIHRvIGJlIE9LLgoKMjAwNS0xMC0wNyAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQuaCwgZXZlbnQvbXRlU2NhbGFycy5jLAogICAgIGV2ZW50L210ZVNjYWxhcnMuaDoKCiAgIEltcGxlbWVudCB0aGUgRXZlbnQtTUlCIHNjYWxhciBvYmplY3RzLgoKMjAwNS0xMC0wNyAwOToyMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKOgoKICAgQVBJIGZvciBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHZhbHVlcyBiZWluZyBtb25pdG9yZWQuCgoyMDA1LTEwLTA3IDA4OjQyICB0YW5kZXJzCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGdldCByaWQgb2YgQysrIGtleXdvcmQgIm5ldyIuIE1mRC1iYXNlZCBjb2RlIHN0aWxsIG5lZWRzIHRvIGJlIHJlZ2VuZXJhdGVkLgoKMjAwNS0xMC0wNyAwNTo1NSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBtaXNzaW5nIGRhcndpbjguaCBhbmQgc29sYXJpczIuMTAuaAoKMjAwNS0xMC0wNiAyMDozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbXByb3ZlIGhlbHAgb3V0cHV0CgoyMDA1LTEwLTA2IDIwOjIxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4KOgoKICAgQWRkIG5ldC1zbm1wLWNvbmZpZyBvcHRpb25zIC0tZGVmYXVsdC1taWJzLCAtLWRlZmF1bHQtbWliZGlycywgLS1wZXJzaXN0ZW50LWRpcmVjdG9yeSBhbmQgLS1zbm1wY29uZnBhdGgKCjIwMDUtMTAtMDYgMTk6MDEgIHJzdG9yeQoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIHRlc3RzL1N2M2NvbmZpZywKICAgICB0ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0cy9TdmFjbWNvbmZpZywKICAgICB0ZXN0cy9TdmFueWNvbmZpZzoKCiAgIC0gY3JlYXRlIGFuZCB1c2UgcGVyc2lzdGVudCBkaXIgaW4gdGVzdCBkaXJlY3RvcnkgKHNvIG1ha2UgdGVzdCBhcyByb290CiAgICAgZG9lc24ndCBtdWNrIHdpdGggc3lzdGVtIHBlcnNpc3RlbnQgY29uZikKCjIwMDUtMTAtMDYgMTg6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb3VudGVyNjQgc3VwcG9ydCB0byBzbm1wX2FkZF92YXIgKHNvIHRoZXkgY2FuIGJlIHNlbnQgdy9zbm1wdHJhcCkKCjIwMDUtMTAtMDYgMTg6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGV4cGxpY2l0IGJyYWNlcyB0byBrZWVwIGNvbXBpbGVyIGhhcHB5CgoyMDA1LTEwLTA2IDE4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBpbmNsdWRlIHV0bXAvdXRtcHggaGVhZGVyIChmaXggZm9yIG9uZSBvZiB0aGUgQlNEcykKCjIwMDUtMTAtMDYgMTg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmM6CgogICAtIGluY3JlYXNlIGRlZmF1bHQgYnVmZmVyIHNpemUKICAgLSBjaGVjayBvcGVuIHJjCiAgIC0gbG9nIGVyciBpZiBubyBkYXRhIGF2YWlsYWJsZQoKMjAwNS0xMC0wNiAxODo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1L2NwdS5jLCBtZW1vcnkvaHdfbWVtLmM6CgogICB0aGlzIChDKysgcmVzZXJ2ZWQgd29yZCkgLT4gdGhpc19wdHIKCjIwMDUtMTAtMDYgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGNhbGwgaW5pdF9hZ2VudHhfY29uZmlnIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgaGFuZGxlciBkaXJlY3RseQoKMjAwNS0xMC0wNiAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAtIHNsaWdodCByZW9yZyBvZiBpbml0X2FnZW50eF9jb25maWcoKQogICAgIC0gaWZkZWYgc29tZSBzdHVmZiBiYXNlZCBvbiBtYXN0ZXIgYWdlbnQgc3VwcG9ydAogICAgIC0gbW92ZSBhZ2VudHgocGVybXN8dGltZW91dCkgaW4gY29uZGl0aW9uYWwgZm9yIGFnZW50IHJvbGUgPT0gbWFzdGVyCgoyMDA1LTEwLTA2IDA4OjQ1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2F0IGNvcnJlY3QgZmlsZSBvbiBlcnJvcnMKCjIwMDUtMTAtMDYgMDg6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiB0byBlbWFpbCByZXN1bHRzCgoyMDA1LTEwLTA2IDA3OjM5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgSVJJWCB0Y3AtbWliIGNsZWFudXAgcGF0Y2ggKGZyb20gQWxiZXJ0IENoaW4pCgoyMDA1LTEwLTA2IDA1OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgUHJlbGltaW5hcnkgaGFuZGxpbmcgb2YgZXJyb3JzLgoKMjAwNS0xMC0wNiAwNToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBCbG9jayBjb25maWd1cmF0aW9uIG9mIGRlbHRhLXRocmVzaG9sZHMgb24gZGVsdGEtc2FtcGxlcy4KCjIwMDUtMTAtMDYgMDU6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIENvbnNvbGlkYXRlIGhhbmRsaW5nIG9mIHN5c1VwVGltZSBpbnN0YW5jZSBkaXNjb250aW51aXR5IG1hcmtlci4KCjIwMDUtMTAtMDYgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgU3VwcG9ydCB0aGUgY29uZmlndXJhdGlvbiBvZiAqanVzdCogZGVsdGEgdGhyZXNob2xkIHRlc3RzLgoKMjAwNS0xMC0wNiAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLAogICAgIG10ZVRyaWdnZXJDb25mLmM6CgogICBJbXBsZW1lbnQgZGVsdGEtdGhyZXNob2xkIHRlc3RzLgoKMjAwNS0xMC0wNiAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBBY2NlcHQgbmVnYXRpdmUgdmFsdWVzIChyYXRoZXIgdGhhbiByZWplY3RpbmcgdGhlbSBhcyBpbnZhbGlkIG9wdGlvbnMpCgoyMDA1LTEwLTA2IDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRG9uJ3QgYm90aGVyIHRyeWluZyB0byBmaXJlIG1pc3NpbmcgdGhyZXNob2xkIGV2ZW50cy4KCjIwMDUtMTAtMDUgMDg6MjYgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBnZXQgcmlkIG9mIEMrKyBrZXl3b3JkICJjbGFzcyIKCjIwMDUtMTAtMDUgMDQ6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgU2lnaCAtIHJlYWQgdGhlIHdob2xlIGVtYWlsIG1lc3NhZ2UsIERhdmUhCgoyMDA1LTEwLTA1IDA0OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFJlbW92ZSBib2d1cyB0cmFpbGluZyBjb21tYSAocmVwb3J0ZWQgYnkgQWxiZXJ0IENoaW4pCgoyMDA1LTEwLTA0IDE3OjUxICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBldmVyeSBzeXN0ZW0gY2FsbCBpbnN0ZWFkIG9mIGp1c3Qgc3BlY2lhbCBvbmVzLgoKMjAwNS0xMC0wNCAxMDozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLCBtdGVUcmlnZ2VyLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIGRlbHRhLXZhbHVlZCBzYW1wbGVzLgogICBPbmx5IHRlc3RlZCB3aXRoIEJvb2xlYW4gZW50cmllcywgYW5kIGEgYmFzaWMgc3lzVXBUaW1lLjAKICAgZGlzY29udGludWl0eSBtYXJrZXIuICBUaHJlc2hvbGQgZGVsdGEtdmFsdWVkIHNhbXBsZXMgYW5kCiAgIHdpbGRjYXJkZWQgZGlzY29udGludWl0eSBPSURzIG91Z2h0IHRvIHdvcmssIGJ1dCBzdGlsbCBuZWVkIHRlc3RpbmcuCgoyMDA1LTEwLTA0IDEwOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgQ2Fub25pY2FsaXNlIHByZXZpb3VzL2N1cnJlbnQgcmVzdWx0cyAtIG1hdGNoaW5nIGVudHJpZXMgbGVhZHMgdG8KICAgc2ltcGxlciB0ZXN0IGNvZGUuICBBZGp1c3QgRXhpc3RlbmNlIHRlc3RzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMuCgoyMDA1LTEwLTAzIDE5OjQ3ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgRml4IHR5cG8gaW4gc2NyaXB0LCBmaXggJXdpbmRpciUgZW52IHZhciBjaGVjay4KCjIwMDUtMTAtMDMgMDc6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgUnVuIFNFVCBhc3NpZ25tZW50cyBkdXJpbmcgdGhlIEFDVElPTiBwYXNzLCBzbyBlcnJvcnMgY2FuIGJlIHJlcG9ydGVkLgogICAoU2hvdWxkIGZpeCBCdWcgIzg2NDI4MSwgYW5kIGJlIGNvbnNpc3RlbnQgd2l0aCBwYXNzLmMgYmVoYXZpb3VyKQoKMjAwNS0xMC0wMSAxNjo1MSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIGZvciBlbWFpbCBvZiBlcnJvciByZXN1bHRzCgoyMDA1LTEwLTAxIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGZpeCB1dG1wIGluY2x1ZGUgaWZkZWYgbG9naWMKCjIwMDUtMTAtMDEgMTI6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0wMSAxMjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjaGVjayBmb3IgbWJzdGF0Lm1fbWJ1ZnMgYmVmb3JlIHVzaW5nCgoyMDA1LTA5LTI5IDE4OjUxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgRml4IGJ1ZyAjMTE1MDAxODogRHluYW1pYyBhbGxvY2F0aW9uIG9mIGRpc2sgc3RvcmFnZSBhcnJheS4KCjIwMDUtMDktMjkgMTg6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRml4IGJ1ZyAjMTE1MDAxODogRHluYW1pYyBhbGxvY2F0aW9uIG9mIGRpc2sgc3RvcmFnZSBhcnJheS4KCjIwMDUtMDktMjkgMTg6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBQYXRjaCBmcm9tIGJ1ZyMxMjM0ODM0OiBmaXhlcyB0YXJnZXRhZGRydGltZW91dCBzbyBpdHMgd3JpdGFibGUKCjIwMDUtMDktMjkgMTg6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9lbnVtcy5jb25mOgoKICAgYWRkZWQgZ2VuZXJhdGlvbiBvZiBlbnVtcyBmb3Igc2NhbGFycwoKMjAwNS0wOS0yOSAxMzoxNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHNldCBzb2NrIGJ1ZiBzaXplIGZvciB1bml4IGRvbWFpbiBzb2NrZXRzCgoyMDA1LTA5LTI5IDA2OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEltcGxlbWVudCBzaW5nbGUtdmFsdWVkIHRocmVzaG9sZCB0cmlnZ2Vycy4KCjIwMDUtMDktMjggMTg6MjggIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBXaW4zMiBNU1ZDOiAgRW5hYmxlIEFFUyBlbmNyeXB0aW9uIHdoZW4gU1NMIGlzIGVuYWJsZWQuCgoyMDA1LTA5LTI4IDE3OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICBzd2FwIHJldmVyc2VkIGlmL2Vsc2UgY29kZQoKMjAwNS0wOS0yOCAxNTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIHByb3ZpZGUgZGVmYXVsdCBmb3IgaW50ZXJuYWwgc2VjbmFtZQoKMjAwNS0wOS0yOCAxMjozOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBsYXN0IHJlbWFpbmluZyAicHJlc2VudCwgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZyBvbiBTb2xhcmlzIDkKCjIwMDUtMDktMjggMTE6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50Ly5jdnNpZ25vcmUsCiAgICAgZXZlbnQvbXRlRXZlbnQuYywgZXZlbnQvbXRlRXZlbnQuaCwKICAgICBldmVudC9tdGVFdmVudENvbmYuYywgZXZlbnQvbXRlRXZlbnRDb25mLmgsCiAgICAgZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGV2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jCiwgZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCBldmVudC9tdGVFdmVudFRhYmxlLmMKLCBldmVudC9tdGVFdmVudFRhYmxlLmgsIGV2ZW50L210ZU9iamVjdHMuYywKICAgICBldmVudC9tdGVPYmplY3RzLmgsIGV2ZW50L210ZU9iamVjdHNDb25mLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0c0NvbmYuaCwgZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXIuYywKICAgICBldmVudC9tdGVUcmlnZ2VyLmgsIGV2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXJDb25mLmMKLCBldmVudC9tdGVUcmlnZ2VyQ29uZi5oLCBldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jCiwgZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgICBldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMKLCBldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwKICAgICBldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgICBldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIE5ldyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGlzTWFuIEV2ZW50IE1JQi4KCjIwMDUtMDktMjggMTA6MjYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgYWRkZWQgZG9jdW1lbnRhdGlvbiBkZXNjcmliaW5nIHRoZSBleGVjKCkgcGF0aCByZXF1aXJlbWVudAoKMjAwNS0wOS0yOCAxMDoyMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBVcGRhdGVkIGRvY3Mgb24gLUliIHRvIGRvY3VtZW50IGV4dHJhIGxpbWl0YXRpb25zCgoyMDA1LTA5LTI4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgRXh0ZW5kIHRhYmxlIGludGVyZmFjZSB3aXRoIHJvdyBjb21wYXJpc29uIEFQSSByb3V0aW5lcy4KCjIwMDUtMDktMjggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIFVzZSB0aGUgZGVmYXVsdCBxdWVyeSBzZXNzaW9uIGZyb20gdGhlIGxpYnJhcnkuCgoyMDA1LTA5LTI4IDA2OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTdXBwb3J0IHRoZSBpZGVhIG9mIGEgImRlZmF1bHQgc2Vzc2lvbiIgZm9yIHRoZSBxdWVyeSBjb252ZW5pZW5jZSByb3V0aW5lcy4KCjIwMDUtMDktMjggMDU6MDAgIHRhbmRlcnMKCiAgICogUkVBRE1FOgoKICAgcmV2ZWFsIG15IGNvbnRpbnVlZCBwcmVzZW5jZSBhcm91bmQgaGVyZQoKMjAwNS0wOS0yOCAwNDo1MyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2FsbGJhY2sgdG8gcmVwb3J0IGVzdGFibGlzaG1lbnQgb2YgYSBjb25uZWN0aW9uIChmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA1LTA5LTI3IDIyOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gY29udmVydCBtYXNrIHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgogICAtIHVwZGF0ZSBwZnhfbGVuIGNvdW50aW5nIGZvciBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSBhZGQgbGl0dGxlIGVuZGlhbiAvcHJvYy9uZXQvcm91dGUgZXhhbXBsZSBsaW5lCiAgIC0gb25seSBzZXQgcm91dGUgcG9saWN5IGZvciBkZWZhdWx0IGdhdGV3YXkgcm91dGVzCiAgIC0gdXBkYXRlIGZvciBuZXcgc3RhdGljIHBvbGljeSBmbGFnCiAgIC0gbmV3IHJvdXRlIGNyZWF0ZS9kZWxldGUgZnVuY3Rpb25zCgoyMDA1LTA5LTI3IDE5OjI1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgLSBtb3ZlIGFjdGl2ZSByb3cgc2V0IHJlc3RyaWN0aW9uIHRvIGRlcGVuZGVuY3kgY2hlY2sgZnVuY3Rpb24KICAgLSB1cGRhdGUgYXNzZXJ0IHRvIHRlc3QgYWdhaW5zdCBuZXcgZXhwZWN0ZWQgdmFsdWUKCjIwMDUtMDktMjcgMTk6MTIgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuMTAuaDoKCiAgIGFkZCBTb2xhcmlzIDEwIHN1cHBvcnQKCjIwMDUtMDktMjcgMTk6MDggIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBkeW5hbWljIGlwdjQgcm91dGUgY3JlYXRpb24vZGVsZXRpb24KCjIwMDUtMDktMjcgMTc6NDUgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0LCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBUcnU2NCBVbml4IDUueCBidWlsZCBmaXhlcyAoYnVnICMxMjE3NTA5KQoKMjAwNS0wOS0yNyAxNDo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgcHJpbnQgcmFuZ2UgaW5mb3JtYXRpb24KCjIwMDUtMDktMjcgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gdXNlIG5ldyByb3V0ZV9lbnRyeSBmdW5jdGlvbnMgZm9yIGR5bmFtaWMgaXB2NCByb3V0ZSBjcmVhdGlvbi9kZWxldGlvbgogICAtIG51a2UgZ2VuZXJhdGVkIGNvbHVtbiB1bmRvIGZ1bmNzLCB1c2UgbmV3IHRhYmxlIGxldmVsIG9uZSBpbnN0ZWFkCiAgIC0gYWRkIHNvbWUgZGVwZWRlbmN5IHZhbGlkYXRpb24gKGFkZHIgdHlwZSAmIGV4cGVjdGVkIGFkZHIgbGVuKQoKMjAwNS0wOS0yNyAxMzowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBjb21tZW50cwoKMjAwNS0wOS0yNyAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgcGF0Y2ggIzEzMDQ0MDA6IGJldHRlciBoclNXUnVuVHlwZSBzdXBwb3J0CgoyMDA1LTA5LTI3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICMxMjI1MzYwIHRvIGZpeCB0aGUgc211eCBlbmNvZGluZyBvZiB0aGUgcmVxdWVzdGlkIHRvIGEgc2lnbmVkIGludAoKMjAwNS0wOS0yNyAxMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAga2V5IHZhY20gIm5vIGFjY2VzcyIgd2FybmluZyBvZmYgYWdlbnRfbW9kZSBpbnN0ZWFkIG9mIGFwcCB0eXBlCgoyMDA1LTA5LTI3IDEyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBzb2NrIHN0YXJ0dXAKCjIwMDUtMDktMjcgMTI6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICAtIGRvY3VtZW50IHRoYXQgYWRkcmVzc2VzIGFyZSBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSBidW1wIG1heCBwb2xpY3kgb2lkIGxlbmd0aCB0byAyLCB0byBoYW5kbGUgZGVmYXVsdCBudWxsIG9pZCBjYXNlCiAgIC0gbW92ZSBwb2xpY3kgc3RhdGljIGZsYWcgZGVmaW5pdGlvbiB3aXRoIG90aGVyIGZsYWdzCiAgIC0gY2hhbmdlIHBvbGljeSBzdGF0aWMgZmxhZyBzbyBhcyBub3QgdG8gY29uZmxpY3Qgd2l0aCBpdGVtIGNoYW5nZWQgZmxhZ3MKICAgLSBhZGQgbmV3IHBvbGljeSBkZWVwIGNvcHkgZmxhZwogICAtIGFkZCBtYWNybyBvZiAnY2hhbmdlIGl0ZW0nIGZsYWdzIG1hc2sKCjIwMDUtMDktMjcgMTI6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgLS1mb3J3YXJkIGZsYWcgdG8gcGF0Y2ggY29tbWFuZAoKMjAwNS0wOS0yNyAxMjowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgLSB1c2UgbmV3IG1pYjJjIGxlZnQvcmlnaHQgaGFuZCBsZW5ndGggdW5pdHMgZm9yIHByb3BlciBzaXplcyB3aGVuIGNvcHlpbmcKICAgICBhbmQgY29tcGFyaW5nIGRhdGEKCjIwMDUtMDktMjcgMTE6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICAtIG92ZXJyaWRlIGRlZmF1bHQgbGVmdC9yaWdodCBoYW5kIGxlbmd0aCB1bml0czsgYm90aCBhcmUgZWxlbWVudHMKICAgLSB1cGRhdGUgaW5pdGlhbCBzZXQgb2YgbWF4IGxlbiB0byBiZSBlbGVtZW50cwoKMjAwNS0wOS0yNyAxMTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBkZWZpbmUgZGVmYXVsdCBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ2h0IHVuaXRzIChieXRlcy9lbGVtZW50cykKCjIwMDUtMDktMjcgMTE6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIC0gZGVmaW5lIHNlcGFyYXRlIHNldHRhYmxlIGZsYWdzCiAgIC0gZGVmaW5lIHNldHRhYmxlIGNvbHVtbiBtYWNybwoKMjAwNS0wOS0yNyAxMTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgZml4IGluY29ycmVjdCByZXR1cm4gZGVmaW5lIHN1Z2dlc3Rpb24gaW4gY29tbWVudAoKMjAwNS0wOS0yNyAxMTo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWx3YXlzIHRyYWNrIGlmIGRhdGEgY29udGV4dCB3YXMgcHJvdmlkZWQgYnkgdXNlcgogICAtIGRvbid0IGNhbGwgZGF0YSBjdHggaW5pdCByb3V0aW5lIGZvciB1c2VyIHByb3ZpZGVkIGRhdGEKICAgLSByZW1vdmUgaW50ZXJuYWwvdmVyYm9zZSBwcmVmaXggZnJvbSBhbGwgZGVidWcgZXJyb3IgY2FzZXMKICAgLSBkb24ndCB0cnkgdG8gY29weSBpbmRleGVzIGlmIGluZGV4IGNoZWNrIGZhaWxlZCAoYW5kIGN0eCB3YXMgcmVsZWFzZWQhKQogICAtIGNhbGwgcm93X3ByZXAgZm9yIG5ld2x5IGNyZWF0ZWQgcm93cyAoZHluYW1pYyByb3cgY3JlYXRpb24pCiAgIC0gY2FsbCBuZXcgdGFibGUgdW5kbyBiZWZvcmUgY29sdW1uIHVuZG8KCjIwMDUtMDktMjcgMTE6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIC0gb25seSBpbmNsdWRlIHNldHRhYmxlIG9iamVjdCB3aGVuIGNhbGN1bGF0aW5nIHRtcCBzdG9yYWdlIHNpemUKICAgLSBkb24ndCBjYWxsIGNvbF9zYXZlIHJvdXRpbmUgaWYgY29sdW1uIGlzbid0IHNldHRhYmxlCgoyMDA1LTA5LTI3IDExOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWRkIHRhYmxlIGxldmVsIHVuZG8gYmVmb3JlIGNvbHVtbiBsZXZlbCB1bmRvCgoyMDA1LTA5LTI3IDExOjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGhhbmRsZSBuZXdseSBjcmVhdGVkIHJvdyB3L3JvdyBzdGF0dXMgb2YgZGVzdHJveQoKMjAwNS0wOS0yNyAxMTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgLSBkb24ndCBmcmVlIHJ0X3BvbGljeSBpZiBzdGF0aWMgZmxhZyBzZXQKICAgLSBuZXcgZnVuY3Rpb24gdG8gc2V0IHJvdXRlIGNoYW5nZXMKICAgLSBuZXcgZnVuY3Rpb24gdG8gY29weSByb3V0ZV9lbnRyaWVzCgoyMDA1LTA5LTI3IDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlcXVpcmUgbmV3IHJvdXRlX2lvY3RsIGZvciBsaW51eAoKMjAwNS0wOS0yNyAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIC0gdXBkYXRlIHRpbWVvdXQgZm9yIGF1dG8tdXBkYXRlIGNhY2hlcyB3aGVuIG1pYiB2YWx1ZSBjaGFuZ2VkCgoyMDA1LTA5LTI3IDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gbW92ZSBjb2RlIGZvciBoZWxwIGNhc2UgYWZ0ZXIgYWxsIGNvbW1hbmQgbGluZSBhcmdzIGhhdmUgYmVlbiBwcm9jZXNzZWQKICAgLSBhZGQgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24gKC1uKSBmb3IgJ2FwcGxpY2F0aW9uIG5hbWUnOyB2ZXJ5IHVzZWZ1bCBmb3IKICAgICBoYXZpbmcgbXVsdGlwbGUgY29uZmlncywgYW5kIHdvcmtzIHdlbGwgd2l0aCBwZXJzaXN0ZW50IHN0b3JlIHRvby4gT3BlbgogICAgIGZvciBzdWdnZXN0aW9ucyBvbiBhIGRpZmZlcmVudCBjaGFyIChvciBtZXJnZSB3L3NvbWUgZXhpc3RpbmcgbXVsdGktY2hhcgogICAgIHNldDsgbWF5YmUgLUMpLgoKMjAwNS0wOS0yNyAxMToyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTI3IDExOjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBhZGQgZGlzbWFuL2V2ZW50LW1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0CiAgIC0gYWRkIGhvc3QgdG8gZGVmYXVsdCBtb2R1bGUgbGlzdCBmb3IKICAgICBsaW51eCogfCBtaW5ndzMyKiB8IGN5Z3dpbiogfCBmcmVlYnNkKiB8IGR5bml4KiB8IHNvbGFyaXMyKiB8IGhwdXgqCgoyMDA1LTA5LTI3IDEwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgc29tZSBub24tc291cmNlIGZpbGVzIGdlbmVyYXRlZCBieSBNRkQKCjIwMDUtMDktMjcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy86IHJvdXRlX2lvY3RsLmMsCiAgICAgcm91dGVfaW9jdGwuaCwgcm91dGVfbGludXguaDoKCiAgIGNvcHkgcm91dGUgaW9jdGxzIGZyb20gbWliSUkvcm91dGVfd3JpdGUgJiB1cGRhdGUgZm9yIHJvdXRlX2VudHJ5CgoyMDA1LTA5LTI2IDE5OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGJ1ZyAxMjkyODk2IGNoZWNraW5nIGZvciAtMSBiZWZvcmUgc2VhcmNoaW5nIGZvciBUQyB0eXBlCgoyMDA1LTA5LTI2IDE4OjU0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMjYgMTg6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkb24ndCBtYWtlIGRlY2lzaW9ucyBiYXNlZCBvbiB0YXJnZXRfb3MgdW50aWwgYWZ0ZXIgaXQncyBzZXQhCgoyMDA1LTA5LTI2IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEJ1ZyBQYXRjaCAjMTI5Njg0MjogZG9uJ3QgcmV0dXJuIGZyb20gdm9pZCBmdW5jdGlvbgoKMjAwNS0wOS0yNiAxNjoyMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGZpeCBTTk1QdjMgY29uZmlnIGlmIEFFUyBpc24ndCBhdmFpbGFibGUKCjIwMDUtMDktMjYgMTM6MDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEZpeCAiLXgiIG9wdGlvbgoKMjAwNS0wOS0yNiAwODoyNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE9wZW5CU0QgYnVpbGQgZml4OiBicmluZyBpbiBzeXMvdGltZW91dC5oCgoyMDA1LTA5LTI0IDE1OjAyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgUHV0IGJhY2sgbWlzc2luZyAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkKICAgcmVtb3ZlJyBtZXNzYWdlIHdoZW4gdW5pbnN0YWxsaW5nLgoKMjAwNS0wOS0yMyAyMTo0NSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBBZGQgb3B0aW9uYWwgY2hlY2sgZm9yIE9wZW5TU0wgRExMIChsaWJlYXkzMi5kbGwpCgoyMDA1LTA5LTIzIDEyOjI0ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG5vdGUgdGhhdCBzbm1wZCBub3cgaW1wbGVtZW50ZWQgbm90aWZpY2F0aW9uIGxvZ2dpbmcgYW5kIGZpbHRlcmluZwoKMjAwNS0wOS0yMyAxMDo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBSZXJ1biBhdXRvY29uZgoKMjAwNS0wOS0yMyAxMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBzaHJpbmsgYnVmZmVyIHNpemUgc28gTUlCIHNpemUgbGltaXQgbm90IGV4Y2VlZGVkCgoyMDA1LTA5LTIyIDE5OjAyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW92ZSBzb2NrZXR2YXIuaCBhZnRlciBzb2NrZXQuaAoKMjAwNS0wOS0yMiAxNzoyMSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIERlZmF1bHQgdG8gZGlzbGFiZWQgZm9yIGRldmVsb3BtZW50IGZpbGVzLgoKMjAwNS0wOS0yMiAxNTozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHB1dCB2YXIgbmFtZSBpbiBicmFjZXMgdG8gc2VwYXJhdGUgZnJvbSBhcHBlbmRlZCB0ZXh0CgoyMDA1LTA5LTIwIDA5OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTaW5jZSB0aGUgbGVuZ3RoIHBhcmFtZXRlciBpc24ndCBhbHdheXMgcmVxdWlyZWQgd2hlbiBzdG9yaW5nIGRhdGEsCiAgIGFsbG93IGl0IHRvIGJlIG9taXR0ZWQgKGFuZCBjb3JyZWN0IHRoZSBtaXNsZWFkaW5nIGNvbW1lbnQgYXMgdG8KICAgaG93IHRoaXMgaXMgYWN0dWFsbHkgdXNlZCEpCgoyMDA1LTA5LTE2IDE1OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIGZyb20gUGF0cmljayBXZWxjaGUgdG8gZml4IHF1b3RpbmcgZm9yIG5ld2VyIGF1dG9jb25mcwoKMjAwNS0wOS0xNiAxNToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIGNvcnJlY3QgbWlzc2luZyBmdW5jdGlvbiBjYWxscyBub3cgcmVwbGFjZWQgYnkgdGRhdGEuCgoyMDA1LTA5LTE2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzdXBwb3J0IGZvciBzdHJpbmcgcGFyc2luZyBvZiBjb3VudGVyNjRzCgoyMDA1LTA5LTE2IDE0OjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMDktMTYgMTQ6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHVwZGF0ZSBvdXQtb2Ytc3luYyB2ZXJzaW9uIG51bWJlcnMKCjIwMDUtMDktMTYgMTM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgZG9uJ3QgdHJ5IHRvIHVzZSBTSU9DKEFERHxERUwpUlQgaWYgdGhleSBhcmVuJ3QgZGVmaW5lZAoKMjAwNS0wOS0xNiAxMjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEhSU1dSVU5QRVJGX01FTSBkb24ndCB3b3JrIG9uIGRhcndpbjgKCjIwMDUtMDktMTYgMTI6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHVzZSBuZXcgY29uZmlndXJlIHZhciBQRVJMTERPUFRTCgoyMDA1LTA5LTE2IDEyOjEwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIG1pc3Npbmcgc2Vjb25kIHNlbWljb2xvbgoKMjAwNS0wOS0xNiAxMTo1MSAgZHRzMTIKCiAgICogc25tcGxpYi86IGNoZWNrX3ZhcmJpbmQuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2xvZ2dpbmcuYzoKCiAgIFBpY2sgdXAgYSBjb3VwbGUgb2Ygc3RyYXkgJ3N0cmluZ3MnIHRoYXQgc2xpcHBlZCB0aHJvdWdoLgogICAoYW5kIGEgYm9ndXMgQVNOIHR5cGUgbmFtZSkKCjIwMDUtMDktMTYgMTA6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICByZWZpbmUgY29uZGl0aW9uYWwgaW5jbHVkZXMgbG9naWMKCjIwMDUtMDktMTYgMTA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGluY2x1ZGUgc3lzL3NvY2tldHZhci5oIGlmZiBhdmFpbGFibGUKCjIwMDUtMDktMTYgMTA6NDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBicmVhayBwZXJsIGxkIG9wdHMgaW50byBpdHMgb3duIHZhcgoKMjAwNS0wOS0xNiAxMDo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDEwOjMxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDA4OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBUd2VhayB0byB1c2UgdGhlIHJldmlzZWQgJ3RkYXRhJyBBUEkuCgoyMDA1LTA5LTE2IDA3OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBVc2UgdGhlIGFwcHJvcHJpYXRlIGxpYnJhcnkgdXRpbGl0eSByb3V0aW5lcyBmb3IgcmV0dXJuaW5nIGEKICAgY29sdW1uIHZhbHVlLCBhbmQgY2hlY2tpbmcgdGhlIHZhbGlkaXR5IG9mIGFuIGFzc2lnbm1lbnQuCgoyMDA1LTA5LTE2IDA3OjMzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBVc2UgdGhlIChyZXZpc2VkKSBjb250YWluZXItYmFzZWQgJ3RhYmxlX2RhdGEyJyBoZWxwZXIuCgoyMDA1LTA5LTE2IDA3OjIxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggdHlwbyB3aGVuIGRlZmluaW5nIHJhbmdlIG9mIHZhbGlkIGNvbHVtbnMuCgoyMDA1LTA5LTE2IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmg6CgogICBJJ3ZlIG5ldmVyIGxpa2UgdGhlIHJlbmFtaW5nIG9mIHRoZSBjb250YWluZXItYmFzZWQgdGFibGVfZGF0YQogICBBUEkgY2FsbHMgYW5kIGRhdGEgc3RydWN0dXJlcy4gIElmIHdlJ3JlIHN0YXJ0aW5nIHRvIHRoaW5rIGFib3V0CiAgIHJlbGVhc2luZyB0aGlzIGNvZGUsIHRoZW4gYW55IGFsdGVyYXRpb25zIG11c3QgYmUgbWFkZSAqYmVmb3JlKgogICB0aGlzIGdvZXMgbGl2ZSwgb3IgZWxzZSBpdCdsbCBiZSB0b28gbGF0ZS4KCiAgIEkndmUgZmluYWxseSBjb21lIHVwIHdpdGggYSBmb3JtIG9mIG5hbWluZyBmb3IgdGhlIHRhYmxlX2RhdGEyCiAgIGNvZGUgdGhhdCBJJ20gcmVhc29uYWJseSBoYXBweSB3aXRoIChiYXNlZCBhcm91bmQgJ3RkYXRhJyksCiAgIHNvIHRoaXMgcGF0Y2ggcmV3cml0ZXMgdGhpcyBoZWxwZXIgdG8gdXNlIHRoYXQgc3R5bGUgKGFzIHdlbGwKICAgYXMgdHdlYWtpbmcgdGhlIGRhdGFzZXQyIGNvZGUgdG8gbWF0Y2gpLgogICAgIFRoZSBtYWluIGRhdGFzZXQyIEFQSSBoYXNuJ3QgYmVlbiBwcm9wZXJseSB1cGRhdGVkLCBidXQgdGhpcwogICBzaG91bGQgcHJvYmFibHkgYWxzbyBiZSBhZGRyZXNzZWQgYmVmb3JlIDUuMyBnb2VzIG91dCBvZiB0aGUgZG9vci4KCiAgIFRoaXMgdmVyc2lvbiBhbHNvIGlsbHVzdHJhdGVzIGEgc3VpdGFibGUgImdlbmVyaWMgdGFibGUgQVBJIiwKICAgdGhhdCBjb3VsZCB1c2VmdWxseSBiZSBjb25zaWRlcmVkIGZvciBvdGhlciB0YWJsZSBoZWxwZXJzIGFzCiAgIHdlbGwuICBTb21lIGFzcGVjdHMgb2YgaXQgbWF5IGJlIHNwZWNpZmljIHRvIHRoZSB0YWJsZV9kYXRhCiAgIGZyYW1ld29yaywgYnV0IHRoZSBiYXNpYyBpZGVhcyBhcmUgbW9yZSB3aWRlbHkgcmVsZXZhbnQuCgoyMDA1LTA5LTE2IDA2OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmM6CgogICBBIGNvbnRhaW5lci1iYXNlZCAnZGF0YXNldCcgaW1wbGVtZW50YXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGNvbnZlcnQKICAgR0VUTkVYVC9CVUxLIHJlcXVlc3RzIGludG8gYW4gZXF1aXZhbGVudCBHRVQgcmVxdWVzdCAoaW5jbHVkaW5nIHVwZGF0aW5nCiAgIHRoZSBPSUQpLiAgU28gYWxsIHRoYXQncyByZXF1aXJlZCBpcyB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHZhbHVlLgogICBUaGUgJ25ldHNubXBfdGFibGVfZGF0YTJfYnVpbGRfcmVzdWx0JyByb3V0aW5lIGlzIHRoZXJlZm9yZSByZWR1bmRlbnQuCgoyMDA1LTA5LTE2IDA2OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgRGVmaW5lIGEgbmV3IGNoZWNrIHV0aWxpdHkgcm91dGluZSBmb3IgdW5zaWduZWQgaW50ZWdlcnMuCiAgIEludGVnZXJzIGFyZSBtZWFudCB0byBiZSByZXByZXNlbnRlZCBhcyAnbG9uZycgcmF0aGVyIHRoYW4gJ2ludCcgdmFsdWVzLgoKMjAwNS0wOS0xNiAwNjozMCAgZHRzMTIKCiAgICogc25tcGxpYi86IGFzbjEuYywgaW50NjQuYywgcGFyc2UuYywKICAgICByZWFkX2NvbmZpZy5jLCBzbm1wLXRjLmMsIHNubXBBQUw1UFZDRG9tYWluLmMsCiAgICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jCiwgc25tcF90cmFuc3BvcnQuYzoKCiAgIEJsaXR6IHVzZSBvZiAnc3RyaW5nJyBhcyBhIHZhcmlhYmxlIG5hbWUuCgoyMDA1LTA5LTE2IDA1OjQ5ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBSZWdlbmVyYXRlIHRvIG1hdGNoIHVwZGF0ZWQgJ2NvbmZpZ3VyZS5pbicKCjIwMDUtMDktMTYgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgVXNlIGEgc2VjdXJpdHkgbW9kZWwgbnVtYmVyIGRlZmluZWQgaW4gdGhlIGdsb2JhbCBoZWFkZXIgaW5zdGVhZCBvZiBhCiAgIGhhcmQtY29kZWQgbnVtYmVyCgoyMDA1LTA5LTE2IDAxOjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIGRlZmluZSBzZWN1cml0eSBtb2RlbCBudW1iZXJzIGZvciBuZXQtc25tcCBzcGVjaWZpYyBzZWN1cml0eSBtb2RlbHMKICAgaGVyZSB0byBrZWVwIGEgcmVnaXN0cnkgaW4gYSBjZW50cmFsIHBsYWNlLgoKMjAwNS0wOS0xNiAwMToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBsb2NhbHNtLmgsCiAgICAgc25tcGxpYi9zbm1wbG9jYWxzbS5jOgoKICAgLSBEZWZpbmVkIGEgbG9jYWwgc2VjdXJpdHkgbW9kZWwgdGhhdCBhc3N1bWVzIHRoZSBwZXJzb24gdGhhdCBleGVjdXRlZAogICAgIHRoZSBhZ2VudCBpcyB0aGUgb25lIHdobyBzaG91bGQgYmUgYXV0aG9yaXplZC4gIEl0IHJlcXVpcmVzIHRoYXQgYQogICAgIHRyYW5zcG9ydCB3YXMgdXNlZCB0aGF0IHdhcyBub3QgYSBkaXJlY3QgbmV0d29yayB0cmFuc3BvcnQgKEVHLAogICAgIGN1cnJlbnRseSB0aGlzIG1lYW5zIGl0IHdhcyB0dW5uZWxlZCBvciBzZW50IHRocm91Z2ggc3RkaW4vb3V0CiAgICAgY2hhbm5lbCkuICBBdXRoZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlvbiBsZXZlbCwgYmVpbmcgdW5rbm93biwgaXMKICAgICBsZWZ0IGF0IG5vQXV0aE5vUHJpdi4KCiAgICAgVGhpcyBtb2RlbCBpcyBleHBlY3RlZCB0byBiZSB1c2VkIGZvciBleHBlcmltZW50YWwgYW5kIHB1cnBvc2VzIG9ubHkKICAgICBhdCB0aGlzIHRpbWUgYW5kIHNob3VsZCBwcm9iYWJseSBub3QgYmUgdXNlZCBpbiBwcm9kdWN0aW9uLgoKMjAwNS0wOS0xNiAwMDo0NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGRlZmluZSBhIFBEVSB0dW5uZWxlZCBmbGFnCgoyMDA1LTA5LTE1IDExOjU4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIG1udF9kaXIgaW4gc3RhdHZmcwoKMjAwNS0wOS0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIEFkZGVkIGEgbGluayB0byB0aGUgY29uZm9ybWFuY2Ugc3VtbWFyeS4KCjIwMDUtMDktMTUgMDk6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIC0gQWRkZWQgU1REIGluaXQKCjIwMDUtMDktMTUgMDk6NDYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmM6CgogICAtIEFkZGVkIGFiaWxpdHkgZm9yIFNURCBoYW5kbGVyIHRvIGNhbGwgZXh0ZXJuYWwgdGhpbmdzIHRvIHBpcGUgdG8vZnJvbQogICAtIEJlZ2lubmluZyBzdXBwb3J0IGZvciBhIHRyYW5zcG9ydCBiZWluZyBrbm93biBhcyAidHVubmVsZWQiLgoKMjAwNS0wOS0xNSAwOTo0NSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIG1pbm9yIGZpeGVzCgoyMDA1LTA5LTE1IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRGVmaW5pdGlvbnMgZm9yIG5ldyBmZWF0dXJlcyAoc3RkIGFuZCBhIGZ1dHVyZSBTTSBtb2RlbCkKCjIwMDUtMDktMTQgMjM6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNoZWNrIGZvciBzdHJ1Y3QgbWVtYmVyIGJlZm9yZSB1c2luZwoKMjAwNS0wOS0xNCAyMDoyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY2hlY2sgZm9yIHN5cy9zb2NrZXR2YXIuaCBlYXJsaWVyCiAgIC0gaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggaW4gbmV0d29yayBoZWFkZXIgdGVzdHMKICAgLSBmaXggd2l0aG91dC1lbGYgdGVzdAoKMjAwNS0wOS0xNCAyMDowNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaDoKCiAgIG1pc3NpbmcgZGVmaW5lcyBmb3IgZGFyd2luOCAoT1MgWCAxMC40LjIpCgoyMDA1LTA5LTE0IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgQWRkZWQgYSBvZGQgdHJhbnNwb3J0IHRvIGRvIHN0dWZmIHRocm91Z2ggc3RkaW4vb3V0CgoyMDA1LTA5LTEzIDE0OjQ5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlCgoyMDA1LTA5LTEyIDExOjM2ICBkdHMxMgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgUHJvdmlkZSBhIG1ha2UgdGFyZ2V0IGZvciB0ZXN0aW5nIHRoZSBNSUJzIGltcGxlbWVudGVkIGJ5IGFuIGFnZW50LgogICBUaGUgYmVoYXZpb3VyIG9mIHRoaXMgdGFyZ2V0IG1heSBuZWVkIHNvbWUgYWRqdXN0bWVudCwgYnV0IGl0J3MgYSBzdGFydC4uLgoKMjAwNS0wOS0xMiAxMToyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgRG9jdW1lbnQgdGhhdCAnZGVsZXRlX3JvdycgaG9vayBkb2Vzbid0IHJldHVybiBhIHVzZWZ1bCByZXN1bHQuCgoyMDA1LTA5LTEyIDExOjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBJbmNsdWRlIHRoZSB0YWJsZV9hcnJheSBoZWxwZXIgKGFzIHVzZWQgYnkgdGhlICJtaWIyYy5hcnJheS11c2VyLmNvbmYiCiAgIHRlbXBsYXRlKSBpbiB0aGUgY29tYmluZWQgaGVscGVyIGhlYWRlciBmaWxlLgogICAgIChOb3cgd2UnbGwgZmluZCBvdXQgd2h5IGl0IHdhcyBvbWl0dGVkLi4uLi4pCgoyMDA1LTA5LTEyIDEwOjUwICBkdHMxMgoKICAgKiBzbm1wbGliLzogY2hlY2tfdmFyYmluZC5jLCBzbm1wLXRjLmM6CgogICBFbnN1cmUgdGhhdCBpbnZhbGlkIFJvd1N0YXR1cyBhc3NpZ25tZW50cyByZXR1cm4gYSAnd3JvbmdWYWx1ZScgZXJyb3IuCgoyMDA1LTA5LTEyIDEwOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgQWRkaXRpb25hbCBTRVQgdmFsaWRhdGlvbiB1dGlsaXR5IHJvdXRpbmVzCiAgIChmb3IgT0lEIGFuZCBnZW5lcmFsIElOVEVHRVIgYXNzaWdubWVudHMpCgoyMDA1LTA5LTEyIDEwOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxpdGllcy5oLCB1dGlsaXRpZXMvaXF1ZXJ5Lmg6CgogICBJbmNsdWRlIHRoZSBuZXcgImludGVybmFsIHF1ZXJ5IiBtb2R1bGUKCjIwMDUtMDktMDkgMDc6MTEgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBuZXcgbWliMmMgY29uZmlnIGZpbGVzLiAoQnVnICMxMjg0MzE1KQoKMjAwNS0wOS0wOSAwNjowOSAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgRW5zdXJlIHRoYXQgdGhlIE1JQiBpbnRlcm5hbHMgYXJlIGluaXRpYWxpc2VkIGJlZm9yZSB1c2luZyB0aGVtLiAgKEJ1ZyAjNzA1NTM2KQoKMjAwNS0wOS0wOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgcmVtb3ZlIHNodXRkb3duIGNvZGUgKGhhbmRsZWQgYnkgaWZUYWJsZSkKCjIwMDUtMDktMDcgMTA6MzAgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEZpeCBhICdteScgbGlzdCBkZWNsYXJhdGlvbiB0aGF0IHNsaXBwZWQgdGhyb3VnaCB0aGUgbmV0LgogICBDYW4gZmluYWxseSBjbG9zZSBidWdzICM1Nzk3MDUgJiAjNjAxMTkwLgoKMjAwNS0wOS0wNyAwNzoyOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmVwb3J0IGVycm9ycyBmb3IgaW52YWxpZCB0YWJsZSBPSURzIGFwcHJvcHJpYXRlbHkgZm9yIHRoZSB0eXBlIG9mIHJlcXVlc3QuCiAgIChCYXNlZCBvbiBwYXRjaCAjMTI3Njk5OSBieSBSb2JlcnQgV2lsY294KQoKMjAwNS0wOS0wNyAwNToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBUd2VhayB0byBVU00gZGVidWdnaW5nIC0gaGVscCBkZXRlY3QgZW5naW5lSUQgbWlzbWF0Y2hlcwoKMjAwNS0wOS0wNiAyMTo0OCAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIG5ldHNubXBtaWJzL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcwoKMjAwNS0wOS0wNiAyMDozNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIFdpbjMyIE1TVkMgY29tcGlsZSBmaXggLSBkZWNsYXJlIHZhcmlhYmxlcyBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbi4KCjIwMDUtMDktMDYgMjA6MDcgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBDaGFuZ2UgZGVmYXVsdCB2ZXJzaW9uIGZvciBiaW5hcnkuCgoyMDA1LTA5LTA2IDIwOjA2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvYnVpbGQucGwKLCB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBBZGQgJ0RldmVsb3BtZW50IGZpbGVzJyBzZWN0aW9uIHRvIHdpbjMyIGJpbmFyeQoKMjAwNS0wOS0wNiAxOToyOSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIFdpbjMyOiBVcGRhdGUgYmluYXJ5IFJFQURNRS50eHQgdG8gcmVmZXJlbmNlIFJFQURNRS53aW4zMgoKMjAwNS0wOS0wNiAxOToxNyAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZQo6CgogICBhZGQgLmxpYnMgYW5kICoubG8KCjIwMDUtMDktMDYgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwgbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCByZXZlcnNlZCBpcEFkZHJlc3Mgb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzCgoyMDA1LTA5LTA2IDExOjE5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSB0byBsaWJ0b29sIHJlY29tbWVuZGVkIHZlcnNpb25pbmcKCjIwMDUtMDktMDUgMTk6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaAosIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wOS0wNSAxNjoxNiAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgY2hlY2sgZm9yIE9wZW5TU0wgYmVmb3JlIHRyeWluZyB0byB1c2UgQUVTCgoyMDA1LTA5LTA0IDEyOjA4ICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHVzZSBleGlzdGluZyBTTk1QX1ZFUkJPU0UgZW52IHZhbHVlLCBpZiBzZXQKCjIwMDUtMDktMDQgMTE6NTYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICB0ZXN0IGNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaWdub3JpbmcgZXhlY3V0aW9uIGVycm9yCgoyMDA1LTA5LTAyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2F1dGguYywgc25tcHRyYXBkX2F1dGguaDoKCiAgIGFkZGVkIHRlbXBsYXRlIGZ1bmN0aW9ucyBmb3IgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMKCjIwMDUtMDktMDIgMTk6MzIgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSAuY3ZzaWdub3JlIGZpbGVzCgoyMDA1LTA5LTAxIDE3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBleHRyYSBwYXJhbm9pZCBsZW5ndGggY2hlY2tzCgoyMDA1LTA5LTAxIDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBhY2NvdW50IGZvciBoZXhpZmllZCB0ZXh0IGxlbiBvbiBwZXJzaXN0ZW50IHN0b3JlIHNhdmUKCjIwMDUtMDgtMzEgMjI6MjkgIGFsZXhfYgoKICAgKiBORVdTLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGx5IHBhdGNoIGZvciBidWcgMTIwNjcxMjogUGVybCBnZXRuZXh0IGRvZXNuJ3QgaG9ub3IgZXhwbGljaXQgcmVmZXJlbmNlCiAgIHRvIE1JQiBmaWxlCgoyMDA1LTA4LTMwIDExOjQwICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNjByZmMxMjEzLCBUMTYxcmZjMTIxMywgVDE2MnJmYzEyMTMKOgoKICAgcmVtb3ZlIG5vbi1jb25kaXRpb25hbCB0ZXN0cyBvZiBwb3RlbnRpYWxseSB1bmltcGxlbWVudGVkIG9iamVjdHMKCjIwMDUtMDgtMzAgMDg6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIGtlZXAgcnVubmluZyBjb3VudCBvZiB0cmFwcyBzZW50CgoyMDA1LTA4LTMwIDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgYWRkIG5vdGlmaWNhdGlvbiBmaWx0ZXJpbmcgcGVyIFJGQyAzNDEzLCBzZWN0aW9uIDYKCjIwMDUtMDgtMzAgMDg6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIHVzZSBuZXcgbWZkIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0zMCAwODowNiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfY29uc3RhbnRzLmgKOgoKICAgbmV3IGZpbGUKCjIwMDUtMDgtMjkgMjE6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS8uY3ZzaWdub3JlLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHR4dCBmaWxlcwoKMjAwNS0wOC0yOSAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcC1ub3RpZmljYXRpb24tbWliLmgsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvLmN2c2lnbm9yZSwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgLSBuZXcgTUZEIHNubXBOb3RpZnlGaWx0ZXJUYWJsZQoKMjAwNS0wOC0yOSAyMDo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgbWliMmMgY29kZQogICAtIHNldCByb3cgZGlydHkgZmxhZyBvbiBzdWNjZXNmZnVsIGNvbW1pdAogICAtIGNsZWFyIHJvdyBkaXJ0eSBmbGFnIG9uIHN1Y2Nlc3NmdWwgdW5kbyBjb21taXQKCjIwMDUtMDgtMjkgMjA6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGNoYW5nZSBkaXJ0eSBmbGFnIHRvIHVfaW50CiAgIC0gYWx3YXlzIGdlbmVyYXRlZCBpbnRlcmZhY2UgaXJyZXZlcnNpYmxlX2NvbW1pdAogICAgIC0gbW92ZSBhdXRvIHJvdyBpbnNlcnQvZGVsZXRlIHRvIGlycmV2ZXJzaWJsZV9jb21taXQKICAgLSByZWxlYXNlIGRlbGV0ZWQgcm93cyBpbiBwb3N0X3JlcXVlc3QsIGJlZm9yZSBjYWxsaW5nIHVzZXIKICAgLSB3YXJuaW5nIGlmIGRpcnR5IGZsYWcgc2V0IG9uIHVuc3VjY2Vzc2Z1bCBwYWNrZXQKICAgLSBtZW1zZXQgbG9jYWwgc3RydWN0IHRvIDB4MDAgYmVmb3JlIHVzZQogICAtIGNvcHkgaW5kZXhlcyB0byByb3dyZXEgb2lkX2lkeCBvbiBjcmVhdGUKICAgLSBzZXQgKGluY3IpIGdsb2JhbCBkaXJ0eSBpZiB1c2VyIHNldCByb3cgZGlydHkKICAgLSBjbGVhciAoZGVjcikgZ2xvYmFsIGRpcnR5IGlmIHVzZSBjbGVhcmVkIGZsYWcgb24gdW5kbwoKMjAwNS0wOC0yOSAyMDo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGF1dG9jcmVhdGUgY3VycmVudCBkaXIsIGlmIG5lZWRlZAoKMjAwNS0wOC0yOSAyMDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmg6CgogICAtIGZpeCBjb21tZW50cyBvbiB1c2VyIGZsYWdzCiAgIC0gYWRkIHVzZXIgZmxhZyBtYXNrCiAgIC0gYWRkIG1mZCByb3cgbWFzawogICAtIGFkZCBNRkRfUk9XX0RJUlRZIGZsYWcKCjIwMDUtMDgtMjkgMjA6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXBlcnNpc3RlbmNlLm0yaToKCiAgIGFkZCBjb21tZW50cwoKMjAwNS0wOC0yOSAyMDo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIGNvbW1lbnRzCiAgIC0gbW92ZSBmbGFnIGNsZWFyIGEgbGl0dGxlIGxhdGVyCgoyMDA1LTA4LTI5IDIwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHR3ZWFrIGNvbW1lbnQKCjIwMDUtMDgtMjkgMjA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSBmaXggcmVxdWlyZWQgY29sdW1ucyB0ZXN0ICh0aGV5IGFyZSBhIG1pbiwgbm90IGV4YWN0IHJlcXVpcmVtZW50KQogICAtIGF1dG8tdHJhbnNpdGlvbiBjcmVhdGVBbmRHbyB0byBhY3RpdmUKICAgLSBzZXQgTUZEX1JPV19ERUxFVEVEIG9uIGRlc3Ryb3kKICAgLSB0d2VhayBsb2cgbWVzc2FnZSBvbiBjcmVhdGlvbiBlcnJvcnMKCjIwMDUtMDgtMjkgMjA6MzYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gcmV3b3JrIHZpZXcgbGlzdCBmdW5jdGlvbnMgdG8gdGFrZSBwb2ludGVyIHRvIGhlYWQgKHZzIGhhcmRjb2RlZCBoZWFkKQoKMjAwNS0wOC0yOSAyMDozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGl0ZXJhdG9yIHN1cHBvcnQKCjIwMDUtMDgtMjkgMjA6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICAtIGZpeCBzb21lIGNvbW1lbnRzCiAgIC0gdHdlYWtzIGZvciBpdGVyYXRvciBzdXBwb3J0CiAgIC0gcmVtb3ZlIHVudXNlZCBzb3RlZF9jb250YWluZXIgdHlwZWRlZgoKMjAwNS0wOC0yOSAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0wOC0yOSAyMDoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gc2V0IG5ldyB0YXJnZXQgcGFyYW1OYW1lIGluIHNlc3Npb24KICAgLSBmaXggYnVnOiBzdHJkdXAgc2VjdXJpdHlOYW1lLCBzaW5jZSBpdCB3aWxsIGJlIGZyZWVkIG9uIHNlc3Npb24gY2xvc2UKCjIwMDUtMDgtMjkgMjA6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIGFkZCB0YXJnZXQgcGFyYW1OYW1lCgoyMDA1LTA4LTI5IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oOgoKICAgcmVuYW1lIGdldF9GaWx0ZXJOYW1lIC0+IGdldF9GaWxnZXJQcm9maWxlTmFtZQoKMjAwNS0wOC0yOSAyMDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICBsb2cgd2FybmluZyBvbiBkdXBsaWNhdGUgYWRkX2RhdGEKCjIwMDUtMDgtMjkgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgYWRkIGRlYnVnCgoyMDA1LTA4LTI5IDIwOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIC0gbW92ZSBtaWIgbW9kdWxlIHNodXRkb3ducyB0byBhIFNIVVRET1dOIGNhbGxiYWNrIHNvIHRoZXkgYXJlIGNhbGxlZAogICAgIGFmdGVyIHRoZSBsYXN0IHNubXBfc3RvcmUoKSBhbmQgY2FuIHJlbGVhc2UgdGFibGUgZGF0YQogICAtIGFkZCBsb2dpYyBmb3IgdGVzdGluZyBleHRyYSBpbml0X21pYl9tb2R1bGVzKCkgY2FsbHMKCjIwMDUtMDgtMjkgMjA6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBtb3ZlIG1pYiBtb2R1bGUgc2h1dGRvd25zIHRvIGEgU0hVVERPV04gY2FsbGJhY2sgc28gdGhleSBhcmUgY2FsbGVkCiAgICAgYWZ0ZXIgdGhlIGxhc3Qgc25tcF9zdG9yZSgpLCBhbmQgY2FuIHJlbGVhc2UgdGFibGUgZGF0YQoKMjAwNS0wOC0yOSAyMDowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vdmUgZmluZF92YXJiaW5kX2ludF9saXN0IHRvIHNubXBfY2xpZW50LmMKCjIwMDUtMDgtMjkgMjA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIG1vdmUgZmluZF92YXJiaW5kX2ludF9saXN0IHRvIHNubXBfY2xpZW50LmMKICAgLSByZW1vdmUgZXh0cmFuZW91cyB0ZXh0IGluIGRlYnVnIG1zZwoKMjAwNS0wOC0yOSAyMDowNiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGlmIHNpbmsgY29udGFpbnMgJzonLCBwYXNzIHdob2xlIHRoaW5nIGFzIHBlZXJuYW1lLiAoYWxsb3dzIHRjcCBzaW5rcykKCjIwMDUtMDgtMjkgMTg6MjUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBpbnRyb2R1Y2UgZ3JhbnVsYXIgY29uZmlnL3BlcnNpc3RlbnQgZmlsZSBkaXNhYmxlbWVudCAoUGF0Y2ggIzEyNTkyNTcgYnkgU3RldmVuIEZyaWVkbCkKCjIwMDUtMDgtMjYgMDk6MTUgIGR0czEyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIEFkdmVydGlzZSB0aGUgbWFpbiBSUE0gYXMgcHJvdmlkaW5nIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBSZWRIYXQvRmVkb3JhCiAgICduZXQtc25tcC11dGlscycgUlBNLiAgQnJpbmcgdGhlIG1haW4gaW5mb3JtYXRpb24gc2V0dGluZ3MgaW50byBsaW5lCiAgIHdpdGggY3VycmVudCBycG1idWlsZCBleHBlY3RhdGlvbnMgKCdMaWNlbnNlJyByYXRoZXIgdGhhbiAnQ29weXJpZ2h0JykKCjIwMDUtMDgtMjUgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV9jb25mLmMsIHZhY21fdmFycy5jOgoKICAgVGhlIHZpZXcgbWFzayBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBPSUQgaXQncwogICBtYXNraW5nIGFnYWluc3QuIENvbmZpZ3VyZSBhbmQgcmVwb3J0IHRoaXMgcHJvcGVybHkuIChCdWcgIzEyMDI2OTIpCgoyMDA1LTA4LTI1IDA1OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIFZhcmJpbmQgY2hlY2tzIHNob3VsZCByZXR1cm4gYW4gU05NUHYyIGVycm9yICh3cm9uZ1ZhbHVlKQogICByYXRoZXIgdGhhbiB0aGUgZXF1aXZhbGVudCBTTk1QdjEgZXJyb3IgKGJhZFZhbHVlKS4KCjIwMDUtMDgtMjMgMTA6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBVc2UgJ2lwc19mcmFnbWVudHMnIGZpZWxkIG9mIElQIHN0YXRpc3RpY3Mgc3RydWN0dXJlLCBpZiBhdmFpbGFibGUKICAgKFNlZSBwYXRjaCAjMTEwMzczOSkKCjIwMDUtMDgtMjMgMTA6MDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVGVzdCBmb3IgJ2lwc19mcmFnbWVudHMnIGZpZWxkIGluIElQIHN0YXRpc3RpY3Mgc3RydWN0dXJlLgogICAoU2VlIHBhdGNoICMxMTAzNzM5KQoKMjAwNS0wOC0yMyAwOTo1MSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSAnLWwnIG9wdGlvbiBmcm9tIG9wdGFyZyBwcm9jZXNzaW5nCiAgIChzaW5jZSB0aGUgY29ycmVzcG9uZGluZyBjYXNlIHN0YXRlbWVudCB3YXMgZGVsZXRlZCBtb250aHMgYWdvISkKICAgUmVwb3J0ZWQgYnkgSm9obiBQZmFmZi4KCjIwMDUtMDgtMjIgMjE6MTcgIGFsZXhfYgoKICAgKiBORVdTLCBhcHBzL3NubXBkZWx0YS5jOgoKICAgd2luMzI6IEZpeCBmb3IgJ3NlbGVjdDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeScgaW4gc25tcGRlbHRhCgoyMDA1LTA4LTIyIDE0OjA4ICB0YW5kZXJzCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHM6CgogICBhZGQgbWlzc2luZyBBRVMgc3VwcG9ydAoKMjAwNS0wOC0yMiAxMzo0OSAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBmdWxseSBkb2N1bWVudCBBRVMKCjIwMDUtMDgtMTkgMTk6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGdycnI7ICpyZWFsbHkqIGZpeCB0eXBvCgoyMDA1LTA4LTE5IDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xOSAxMDozNSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGVtcGhhc2l6ZSB0byB1c2UgInByb3h5IC4uLiAuMS4zIiAobm90IGp1c3QgLjEpIHRvIHByb3h5IHRoZSBlbnRpcmUgTUlCIHRyZWUgKEJ1ZyAjMTI0OTU5NCkKCjIwMDUtMDgtMTkgMTA6MDYgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGltcHJvdmUgaGVscCBvdXRwdXQgZm9yICItRCIgKEJ1ZyAjMTI0OTU1NikgYW5kICItYyIKCjIwMDUtMDgtMTkgMDk6MjQgIHRhbmRlcnMKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBhZGQgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IHRvIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZSgpIChCdWcgIzEyNjM1MjMpCgoyMDA1LTA4LTE5IDA3OjU5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZGVsdGEuMS5kZWY6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xOSAwNTo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi8uY3ZzaWdub3JlOgoKICAgaW5pdGlhbCAuY3ZzaWdub3JlCgoyMDA1LTA4LTE5IDA1OjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1Ly5jdnNpZ25vcmUsCiAgICAgaGFyZHdhcmUvbWVtb3J5Ly5jdnNpZ25vcmUsIGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUKLCBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgLmxpYnMgYXQgbW9yZSBwbGFjZXMKCjIwMDUtMDgtMTkgMDU6MDggIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBsaXN0IGNvbnRleHQgc3VwcG9ydCBhbmQgZml4IHR5cG8KCjIwMDUtMDgtMTggMTg6NTEgIGFsZXhfYgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBXaW4zMiBNU1ZDOiAgVXNlIF9faW50NjQgaW5zdGVhZCBvZiBsb25nIGxvbmcuCgoyMDA1LTA4LTE4IDE4OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBtb3ZlIHRlc3QgYWZ0ZXIgZm9yZWFjaCBsb29wCiAgIC0gc2V0IGludGVyYWN0aXZlIGZsYXQgYWZ0ZXIgb3ZlcndyaXRlCgoyMDA1LTA4LTE4IDE4OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICByZXR1cm4gZXJyb3IgaWYgYXNuIGJ1ZmZlciBleGNlZWRzIG9iamlkIGRlc3QgYnVmZmVyCgoyMDA1LTA4LTE4IDE3OjUzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jOgoKICAgLSByZW1vdmUgdW51c2VkIGluZGV4X29pZC9sZW4KICAgLSByZXN0b3JlIG5ldHNubXBfdGFibGVfZGF0YTJfYnVpbGRfcmVzdWx0CgoyMDA1LTA4LTE4IDE3OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgcmVtb3ZlIHVudXNlZCBpbmRleF9vaWQvbGVuCgoyMDA1LTA4LTE4IDE3OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHF1aWV0IGNvbXBpbGVyCgoyMDA1LTA4LTE4IDE3OjM1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgLSBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgY29uZmlndXJlIGV4dHJhcwogICAtIGFkZCBtYWtlIGV4dHJhcwoKMjAwNS0wOC0xOCAxNzozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGJyaW5nIGhwdXggZnVuY3Rpb24gZGVjbCBpbiBsaW5lIHcvcHJvdHlwZQoKMjAwNS0wOC0xOCAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYwo6CgogICBmaXggYnVnIDEyNTkwNDk6IHNubXBkIHNlZ2ZhdWx0cyBpbiBJUC1NSUIgZHVyaW5nIHNubXB3YWxrCgoyMDA1LTA4LTE4IDA5OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi86IGFzbjEuYywgaW50NjQuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gbG90cyBvZiA2NCBiaXQgY2hlY2tzIGFkZGVkIGlmZiBTSVpFT0ZfTE9ORyAhPSA0CiAgICAgLSBjaGVjayBjb3VudGVyNjQgaGlnaC9sb3cgb3ZlcmZsb3dzIChpbnQ2NC5jKQogICAgIC0gdHJ1bmNhdGUgcmVjZWl2ZWQgdmFsdWVzIHRvIDMyIGJpdHMgKGFzbjEuYykKICAgICAtIHRydW5jYXRlIHNlbnQgdmFsdWVzIHRvIDMyIGJpdHMgYmVmb3JlIGVuY29kaW5nIChhc24xLmMpCiAgIC0gdXBkYXRlIHNldF92YXJfdmFsdWUgKHNubXBfY2xpZW50LmMpCiAgICAgLSB0cnVuY2F0ZSB2YXJiaW5kIHZhbHVlIHNldHMgdG8gMzIgYml0cwogICAgIC0gaGFuZGxlIHNldCBvZiBpbnRlZ2VycyBvZiB2YXJpb3VzIGxlbmd0aHMgKDEsIDIsIDQsIDggYnl0ZXMpCgoyMDA1LTA4LTE4IDA2OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBEb24ndCBnZW5lcmF0ZSBhdXRoRmFpbCB0cmFwcyBpZiB0aGVzZSBhcmUgbm90IHJlcXVpcmVkLgogICAoQnVnICMxMjI2Nzg4LCByZXBvcnRlZCBieSBXYW5nIFRlayBLZWUpCgoyMDA1LTA4LTE3IDIwOjQ0ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzOiBMT05HX01JTiBub3QgZGVmaW5lZCAobGltaXRzLmgpIGFuZCBhZGRlZAogICBmZF9ldmVudF9tYW5hZ2VyLmMgdG8gYnVpbGQgZmlsZXMuCgoyMDA1LTA4LTE3IDIwOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkICdDby1leGlzdGVuY2Ugd2l0aCBNaWNyb3NvZnQgU05NUCBzZXJ2aWNlcycgc2VjdGlvbiBhbmQgdXBkYXRlIHRoZQogICAnSW50ZXJhY3Rpb25zIHdpdGggT3RoZXIgVmVuZG9yJ3MgUHJvZHVjdHMnIHNlY3Rpb24uCgoyMDA1LTA4LTE3IDE3OjUwICB0YW5kZXJzCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBJbXByb3ZlIGRvY3VtZW50YXRpb24gb24gY2xpZW50QWRkciB0b2tlbjogYWxzbyB1c2VkIGJ5IHNubXBkIHdoZW4gc2VuZGluZyBub3RpZmljYXRpb25zCgoyMDA1LTA4LTE3IDA5OjQxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBGaXggcHJvYmxlbXMgd2l0aCAzMi82NC1iaXQgdHlwZSBkZWZpbml0aW9ucyAoQnVnICMxMjU0OTkwKQoKMjAwNS0wOC0xNyAwODozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYwosIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jCiwgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYwosIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsCiAgICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jCiwgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL29pZF9zdGFzaC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBSZW1vdmUgcmVkdW5kYW50ICcjaW5jbHVkZSA8ZG1hbGxvYy5oPicgc3RhdGVtZW50cywgc2luY2UgdGhpcyBpcyBoYW5kbGVkIGluCiAgIHRoZSBoZWFkZXIgZmlsZSB3aGljaCBpcyBpbmNsdWRlZCBhbnl3YXkuICAoUGF0Y2ggIzExMDgwNTMgYnkgSnVuIEt1cml5YW1hKQoKMjAwNS0wOC0xNyAwNzo1MCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTBhZ2VudHhnZXQsIFQxMTFhZ2VudHhzZXQsCiAgICAgVDExMmFnZW50eHNldGZhaWwsIFQxMTNhZ2VudHh0cmFwOgoKICAgU3VwcG9ydCBydW5uaW5nIEFnZW50WCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgc2VwYXJhdGUKICAgJ2FnZW50eC9tYXN0ZXIgYWdlbnR4L3N1YmFnZW50JyBtb2R1bGVzIChQYXRjaCAjMTA0OTc5NCBmcm9tIG1hZ2ZyKQoKMjAwNS0wOC0xNyAwNTo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBFeHRlbmQgbGVuZ3RoIG9mIGNvbTJzZWMgInNvdXJjZSIgYnVmZmVyIChQYXRjaCAjMTIyNTEzMCBmcm9tIEFuZHJldyBTdGVldHMpCgoyMDA1LTA4LTE3IDA0OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIEZpeCB0eXBvIChwYXRjaCAjMTI1NTcxMyBieSBCZXJuaGFyZCBQZW56KQoKMjAwNS0wOC0xNiAyMDowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGZpeCBidWcgMTI1OTA1MTogc25tcGQgc2VnZmF1bHRzIG9uIGFtZDY0CgoyMDA1LTA4LTE2IDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBhbGxvdyBpcHY0IHN0YXRzIHRvIHdvcmsgaWYgdjYgc3RhdHMgYXJlIG5vdCBhdmFpbGFibGUKCjIwMDUtMDgtMTYgMTY6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGZpeCBidWcgMTI1OTA1NDogc25tcGQ6IGNhbm5vdCBvcGVuIC9wcm9jL25ldC9zbm1wNgoKMjAwNS0wOC0xNiAxMjoyOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUeXBvIGluIHRoZSBkZXNjcmlwdGlvbiBvZiAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNraW5nIChidWcgIzEyMzgzMDEpCgoyMDA1LTA4LTE2IDExOjU5ICByc3RvcnkKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBhbHdheXMgc3BlY2lmeSBwZXJtcyB0byBta2RpciwgYXMgaXQgaXMgbm90IG9wdGlvbiBmb3Igb2xkZXIgcGVybCB2ZXJzaW9ucwoKMjAwNS0wOC0xNSAxODo0MiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHNldCB0aW1lb3V0L3JldHJpZXMgdG8gZGVmYXVsdCBmb3IgaW5mb3JtIHNlc3Npb25zCgoyMDA1LTA4LTE1IDE4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTA4LTE1IDE4OjIxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGluc3RhbmNlLmMsIHNjYWxhcl9ncm91cC5jLCB0YWJsZS5jCjoKCiAgIHdhaXQgZm9yIGRlbGVnYXRlZCByZXF1ZXN0cyBiZWZvcmUgcmV0cmllcwoKMjAwNS0wOC0xNCAxNzoyMiAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIEZpeCBzcGVsbGluZyBtaXN0YWtlIGluIGRlc2NyaXB0aW9uIG9mIGEgZGVmaW5lLgoKMjAwNS0wOC0xMSAxMzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGZpeCBsZW5ndGggb2Ygc3lzT2JqZWN0SUQKCjIwMDUtMDgtMDEgMDc6MzkgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLWRvbid0IHVzZSBnZXRkdGFibGVzaXplKCkgZm9yIFdJTjMyCgoyMDA1LTA4LTAxIDA3OjM5ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICBsaWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgc25tcHRyYXBkL01ha2VmaWxlLmluCiwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICAtV2luMzI6ICBVcGRhdGUgcHJvamVjdCBmaWxlcyB3aXRoIG5ldyBsb2NhdGlvbiBmb3Igbm90aWZpY2F0aW9uX2xvZy5jIGFuZAogICAgbWlzc2luZyB0YWJsZV9kYXRhMi5jIGZvciBNU1ZDIEdVSQoKMjAwNS0wOC0wMSAwNzozNyAgYWxleF9iCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtRml4IHdpbjMyIGJ1aWxkIHByb2JsZW0gLSBkZWNsYXJlIHZhcmlhYmxlcyBiZWZvcmUgdXNpbmcuCgoyMDA1LTA3LTI4IDA3OjQ3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFNpbXBsZSAnd2hpbGUnIGxvb3AsIGFuZCAobm9uLWVycm9yKSBxdWl0IHN0YXRlbWVudC4KCjIwMDUtMDctMjYgMDg6MDYgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUHJvYmUgZm9yIGVuZ2luZUlEIGluaXRpYWxseSwgc28gdGhhdCBpdCdzIGF2YWlsYWJsZSBmb3IgY29uc3RydWN0aW5nCiAgIHRoZSB1c21Vc2VyVGFibGUgT0lEcy4KCjIwMDUtMDctMjYgMDY6MTkgIHRhbmRlcnMKCiAgICogRkFROgoKICAgVXBkYXRlIE9TIHN1cHBvcnQgc2VjdGlvbi4gU3RpbGwgbGlrZWx5IHRvIGJlIG91dGRhdGVkIGZvciBzb21lIHBsYXRmb3Jtcy4KCjIwMDUtMDctMjUgMTk6NTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGZpeCBidWcgMTIzMDM2NjogYWRkICItbiIgdG8gIm5ldHN0YXQgLWEiIHRvIG1ha2UgaXQgd29yayBldmVuIGlmIHBvcnQgbnVtYmVycyBoYXZlIGNvcnJlc3BvbmRpbmcgc2VydmljZSBuYW1lcwoKMjAwNS0wNy0yNSAxOToyOCAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLAogICAgIGF1dG9fbmxpc3QuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IGluY2x1ZGUgaGVhZGVyIHcvcHJvdG90eXBlCgoyMDA1LTA3LTI1IDE5OjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBtb3ZlIHBhcmFtIHR5cGUgZGVjbCBpbnRvIHBhcmFtIGRlY2wgbGlzdAoKMjAwNS0wNy0yNSAxOToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIC0gbW92ZSBjb21tZW50IGVuZCBvdXQgb2YgY29uZGl0aW9uYWwgKHNpbmNlIHN0YXJ0IGlzIGFzIHdlbGwpCiAgIC0gaW5jbHVkZSBjdHggc2V0IGZvciBub24tZW51bSB0eXBlcwoKMjAwNS0wNy0yNSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIGRlYWwgd2l0aCBvaWQgbGVuZ3RoIHZzIHNpemUgZHVyaW5nIGdldC9zZXQKCjIwMDUtMDctMjUgMTU6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDctMjUgMTU6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbm90aWZpY2F0aW9uLWxvZy1taWIgdG8gZGVmYXVsdCBtaWIgbGlzdAoKMjAwNS0wNy0yNSAxNTo1NSAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIGZpeCBub3RpZmNhdGlvbiBsb2cgaW5jbHVkZSBwYXRoCiAgIC0gb25seSBpbmNsdWRlIG5vdGlmaWNhdGlvbiBsb2cgY29kZSBpZiBtb2R1bGUgaW5jbHVkZWQKCjIwMDUtMDctMjUgMTQ6MzUgIG1hcnoKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUvLmN2c2lnbm9yZSwgbWVtb3J5Ly5jdnNpZ25vcmUKOgoKICAgZml4aW5nIGN2cyBpZ25vcmUgZm9yIHNoYXJlZCBsaWJzCgoyMDA1LTA3LTI1IDEzOjIyICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIG9uL2ZvciBub3RpZmljYXRpb25fbG9nCgoyMDA1LTA3LTI1IDExOjM5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIEdlbmVyYXRlIGRpZmZlcmVudCBjb2RlIGZvciBjYWNoaW5nIGFuZCBub24tY2FjaGluZyBjb250YWluZXIgZnJhbWV3b3JrcwogICAocmF0aGVyIHRoYW4gaW5jbHVkaW5nIGNhY2hpbmcgc3VwcG9ydCByZWdhcmRsZXNzKQoKMjAwNS0wNy0yNSAxMTozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBtMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmksIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMKLCBtZmQtbWFrZWZpbGUubTJtLCBtZmQtdG9wLm0yYzoKCiAgIEFnZW50WCBtYWtlZmlsZSBhbmQgc3ViYWdlbnQgZHJpdmVyIGNvZGUgd2VyZW4ndCBnZXR0aW5nIGdlbmVyYXRlZAogICAoZXZlbiBpZiB0aGV5IHdlcmUgcmVxdWVzdGVkKS4gIEZpeCB0aGlzLgoKMjAwNS0wNy0yNSAxMTozNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ29udmVuaWVuY2Ugcm91dGluZSBmb3Igc2V0dGluZyBhbiBpbnRlZ2VyIHZhcmJpbmQgdmFsdWUuCgoyMDA1LTA3LTIxIDIxOjU0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkICBORVRTTk1QX0RTX05PVElGX0xPR19DVFggc3RyaW5nCgoyMDA1LTA3LTIxIDIxOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgbG9nIG5vdGlmaWNhdGlvbiBpZiB1c2luZyBub3RpZmljYXRpb24gbG9nIG1pYiBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgYWRkIHRvZG8gY29tbWVuCgoyMDA1LTA3LTIxIDIxOjQ5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgdmFyIGRlY2wKICAgLSByZW1vdmUgdW51c2VkIG51bV9yZWNlaXZlZAogICAtIHNldCBzbm1wdHJhcGQgY29udGV4dCBmb3Igbm90aWZpY2F0aW9uIGxvZyBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NDcgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgYWRkIGludGVyZmFjZSB0byBub3RpZmljYXRpb24gbG9nIGFnZW50IG1vZHVsZQoKMjAwNS0wNy0yMSAyMTo0NyAgcnN0b3J5CgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIHJlbW92ZSB1bnVzZWQgbm90aWZpY2F0aW9uX2xvZyBmaWxlcwoKMjAwNS0wNy0yMSAyMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIC0gbWFrZSBudW1fcmVjZWl2ZWQgc3RhdGljCiAgIC0gYWRkIGxvY2FsIGVuYWJsZWQgZmxhZywgc2V0IHdoZW4gbW9kdWxlIGluaXQgY2FsbGVkCiAgIC0gcmV0dXJuIGltbWVkaWF0ZWx5IGZyb20gbG9nX25vdGlmaWNhdGlvbiBpZiBub3QgZW5hYmxlZAogICAtIHVzZSBjb3JyZWN0IGluZGV4IGluIGNvbXBhcmUsIHNvIHdlIGhhdmUgYSBjaGFuY2UgYXQgZmluZGluZyB0aGUgcmlnaHQgcm93CiAgICAgKHRoaXMgZml4ZXMgdGhlIHZhcmJpbmQgbWVtb3J5IGxlYWspCgoyMDA1LTA3LTIxIDIwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgc3RyZHVwIHRtcCBkcyBzdHJpbmcgdGhhdCB3aWxsIGJlIHJlbGVhc2VkCgoyMDA1LTA3LTIxIDE5OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgYWRkIG1pc3Npbmcgc2VtaS1jb2xvbgoKMjAwNS0wNy0yMSAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLzogbm90aWZpY2F0aW9uX2xvZy5jLAogICAgIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIC0gcmVtb3ZlIGFnZW50eCBjb25kaXRpb25hbCBjb21waWxlCiAgIC0gcmVtb3ZlIHNubXB0cmFwZCBoZWFkZXJzCiAgIC0gcmUtd29yayBsb2cgc2l6ZSBtYW5hZ2VtZW50CiAgIC0gYWRkIGNvbnRleHQgcGFyYW1ldGVyIGZvciB0YWJsZSBpbml0IHJvdXRpbmVzCiAgIC0gbmV3IGRzX2FwcCBmb3IgbW9kdWxlIGluaXQgdG8gZGV0ZXJtaW5lIGNvbnRleHQKICAgLSByZW1vdmUgZG9udFJldGFpbkxvZ3MgY29uZmlnICh1c2UgLUkgLW5vdGlmaWNhdGlvbl9sb2cpCiAgIC0gY2hnIGRlYnVnIHN5bWJvbCAobG9nX25vdGlmaWNhdGlvbi0+bm90aWZpY2F0aW9uX2xvZykKICAgLSByZW1vdmUgZXh0cmFuZW91cyBjb21tZW50cwogICAtIG1ha2Ugc3VyZSB0cmFuc3BvcnQgcHRyIGhhcyB2YWx1ZSBiZWZvcmUgdXNpbmcKCjIwMDUtMDctMjEgMTg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmgsCiAgICAgbm90aWZpY2F0aW9uLWxvZy1taWIuaDoKCiAgIG9yaWdpbmFsIHZlcnNpb25zCgoyMDA1LTA3LTIwIDIwOjM0ICBhbGV4X2IKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtQWRkIHdyYXBwZXIgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAobXlfZ2V0ZW52KSB0byBhZGQgV2luZG93cyByZWdpc3RyeQogICAgc3VwcG9ydCBmb3IgcGVyc2lzdGVudCBmb2xkZXIvZmlsZSBjaGVjawogICAtRml4IGJ1ZyBpbiBnZXRfcGVyc2lzdGVudERpciBjYWxsIChpdCB3YXMgbm90IHBhc3NpbmcgdGhlIGZpbGVuYW1lIG9mCiAgICBzbm1wLmNvbmYKCjIwMDUtMDctMjAgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbW92ZSBoZWFkZXIgaW5jbHVkZSB0byB0b3Agb2YgZmlsZQoKMjAwNS0wNy0yMCAxODoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBtaXNzaW5nIGhlYWRlcgoKMjAwNS0wNy0yMCAxODoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpeCBpbmNsdWRlIG9mIG93biBoZWFkZXIgKGN1dC1uLXBhc3RlIGVycm9yKQoKMjAwNS0wNy0yMCAxODoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IG1pYi5oLCBzbm1wX2FwaS5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlCgoyMDA1LTA3LTIwIDE4OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oOgoKICAgcmVtb3ZlIHByb3RvdHlwZSBmb3Igbm9uLWV4aXN0ZW50IGZ1bmM7IGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowOCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBwYXJhbWV0ZXJzIGZvciBuc2ItY29uZmlnIGV4YW1wbGUKCjIwMDUtMDctMjAgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyByZW1vdmUgcmVkdW5kYW50IHNlbWljb2xvbgoKMjAwNS0wNy0yMCAxODowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYzoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk7IGFkZCBtaXNzaW5nIGluY2x1ZGVzL3Byb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBiYWQgb3B0aW9uIFt3aXRofGVuYWJsZV0tc3NsCgoyMDA1LTA3LTIwIDE3OjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIHN1cmUgY2hlY2sgcnVuIGZpbmQgb24gc3JjZGlyCgoyMDA1LTA3LTIwIDExOjMwICBkdHMxMgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgR3VhcmQgYWdhaW5zdCB1c2luZyBuYW1lbGVzcyBkYXRhIGxpc3RzLiAgVGhpcyBzdGlsbAogICB3b24ndCB3b3JrIHByb3Blcmx5LCBidXQgYXQgbGVhc3QgdGhlIGFnZW50IHdvbid0IGNyYXNoLgogICAoWWVzLCBJIGtub3cgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIC0gYnV0IHlvdSBjYW4ndCB0cnVzdAogICBzb21lIHBlb3BsZSBub3QgdG8gZG8gc29tZXRoaW5nIHN0dXBpZCAtIG5hbWluZyBubyBuYW1lcykKCjIwMDUtMDctMjAgMTE6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIEluY2x1ZGUgdGhlIGhhbmRsZXIgbmFtZSB3aGVuIHJlZ2lzdGVyaW5nIGEgdGFibGVfYXJyYXkuCgoyMDA1LTA3LTE5IDEzOjQ0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBmaXggY3V0LW4tcGFzdGU7IG5ldyB0YWJsZXMgYXJlIGxpbnV4IG9ubHkKCjIwMDUtMDctMTkgMTA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgSW1wcm92ZSBoYW5kbGluZyBvZiB2YXJpYWJsZS1sZW5ndGggaW5kZXggYW5kIGNvbHVtbiB2YWx1ZXMuCgoyMDA1LTA3LTE5IDEwOjUyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBGaXggaGFuZGxpbmcgb2YgdmFyaWFibGUtbGVuZ3RoIGluZGV4ZXMuCgoyMDA1LTA3LTE5IDEwOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgUHJvdmlkZSBhbm90aGVyIHJlZ2lzdHJhdGlvbiBBUEkgdG8gaGlkZSB0aGUgaGVscGVyIGludGVybmFscwogICBmcm9tIHVzZXItbGV2ZWwgY29kZS4KCjIwMDUtMDctMTggMTc6NTcgIHJzdG9yeQoKICAgKiBORVdTLCBSRUFETUUuYWdlbnQtbWliczoKCiAgIHVwZGF0ZSBmb3IgbmV3IHRjcENvbm5lY3Rpb25UYWJsZSBhbmQgdGNwTGlzdGVuZXJUYWJsZQoKMjAwNS0wNy0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS86IHRjcExpc3RlbmVyVGFibGUuYwosIHRjcExpc3RlbmVyVGFibGUuaCwgdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGluaXRpYWwgd29ya2luZyB2ZXJzaW9uCgoyMDA1LTA3LTE4IDE3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AtbWliLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2NvbnN0YW50cy5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgY29kZSBmb3IgdGNwTGlzdGVuZXJUYWJsZQoKMjAwNS0wNy0xOCAxNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLzogdGNwQ29ubmVjdGlvblRhYmxlLmMKLCB0Y3BDb25uZWN0aW9uVGFibGUuaCwgdGNwQ29ubmVjdGlvblRhYmxlX2NvbnN0YW50cy5oCiwgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gbG9hZCBjYWNoZSBmcm9tIGRhdGEgYWNjZXNzCiAgIC0gbWFwIGFkZHJlc3MgdHlwZQogICAtIHNocmluayBzdG9yYWdlIGZvciBpbmRleGVzCgoyMDA1LTA3LTE4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgLSBmaXggaW5kZXggb2lkIHBvaW50ZXIKICAgLSBhZGQgdXBkYXRlIG9mIHBpZAoKMjAwNS0wNy0xOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgLSB1c2UgbmV3IHByaXZhdGUgaGVhZGVyCiAgIC0gZml4IGxvYWQgcHJvdG90eXBlcwogICAtIGNoZWNrIG5ldyBsaXN0ZW4gc3RhdGUgcmVxdWlyZS9leGNsdWRlIGxvYWQgZmxhZwogICAtIGZpeCBjb3B5IG9mIHJlbW90ZSBhZGRyZXNzCgoyMDA1LTA3LTE4IDE2OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBwcmludCBiYWQgbGluZSB3aGVuIGJhaWxpbmcgb24gZXJyb3IKCjIwMDUtMDctMTggMTY6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBmbHViCgoyMDA1LTA3LTE4IDE2OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgY29tbWVudCBibG9jawoKMjAwNS0wNy0xOCAxNjoyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgLSByZW1vdmUgdW51c2VkIGRlZmluZXMvY29tbWVudHMKICAgLSBhZGQgcGlkIHRvIHN0cnVjdAogICAtIGFkZCBsb2FkIGZsYWdzIHRvIHJlcXVpcmUvZXhsdWRlIGxpc3RlbiBzdGF0ZQoKMjAwNS0wNy0xOCAxNjoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGFkZCBkZWJ1ZyB0byBmcmVlQlNEIChlc3AgZXJyb3IgY2FzZXMpCgoyMDA1LTA3LTE4IDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMKOgoKICAgY29ycmVjdCBkYXRhIHN0cnVjdCBuYW1lCgoyMDA1LTA3LTE4IDE1OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi86IHRjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9jb25zdGFudHMuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMKCjIwMDUtMDctMTggMTQ6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fcHJpdmF0ZS5oOgoKICAgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiBoZWFkZXIKCjIwMDUtMDctMTUgMTg6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmMsCiAgICAgZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsCiAgICAgbWZkLWludGVyZmFjZS5tMmM6CgogICBxdW90ZSBzdHJpbmcgYXJndW1lbnQgaW4gYXNzaWdubWVudAoKMjAwNS0wNy0xNSAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFyIHNlc3Npb24gZnJvbSBjYWxsYmFjayBjbGllbnQgYXJncyBvbiBmcmVlCgoyMDA1LTA3LTE0IDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBmaXggaW50ci9jdHggb3ZlcmZsb3dzCgoyMDA1LTA3LTE0IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmg6CgogICBjb25maWdfcmVxdWlyZSB1dGlsaXRpZXMvZXhlY3V0ZSAoZm9yIHNubXB0cmFwZCkKCjIwMDUtMDctMDcgMTI6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZG8gbm90IGNsb3NlIGFsbCBub24tc3RkIGZkcyBpbiBkYWVtb25pemUgKGFzIHdlIGhhdmUgcHJvYmFibHkgb3BlbmVkIHNvbWUpCgoyMDA1LTA3LTA3IDEyOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY2xvc2UgYWxsIG5vbi1zdGFuZGFyZCBmZHMgaW5oZXJpdGVkIGZyb20gc2hlbGwgaW1tZWRpYXRlbHkKICAgLSByZWdpc3RlciBzaWduYWwgaGFuZGxlcnMgbXVjaCBzb29uZXIsIHNvIGVhcmx5IHNpZ25hbCBkb2Vzbid0IGNvcmUKCjIwMDUtMDctMDYgMTI6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIHRhcmdldCB0byBidWlsZCAgKGFsbCkgbGlicyB0byB1c2UgZXhpc3RpbmcgSU5TVEFMTExJQlMKCjIwMDUtMDctMDEgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSB1c2UgdXRpbGl0eSByb3V0aW5lIHRvIGNsZWFyIGRlbGVnYXRlZCBmbGFnCiAgIC0gZG9uJ3Qgc2V0IGVycm9yIGZvciB0aW1lb3V0IG9uIGdldC1uZXh0CiAgIC0gcmVsZWFzZSBkZWxlZ2F0ZWQgY2FjaGUgd2hlbiB1bmRlbGVnYXRpbmcgcmVxdWVzdHMKCjIwMDUtMDYtMzAgMTE6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGlmZiBub3QgYXBwbGllZCwgZml4IGZyZWUgb2YgcGt0IHRvIHVzZSBhbGxvYydkIHB0ciwgbm90IG9mZnNldCBpbiBwa3QKICAgLSBpZmYgYXBwbGllZCwgcmVtb3ZlIHJlZHVuZGFudCBwcnQgY2xlYXIgYWZ0ZXIgU05NUF9GUkVFCgoyMDA1LTA2LTMwIDA1OjI3ICB0YW5kZXJzCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYKLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoIDEyMjYxODc6IGRvY3VtZW50IG1pc3NpbmcgY29uZmlnIGZpbGUgdG9rZW5zIGFuZCBjbWRsaW5lIG9wdGlvbnMKCjIwMDUtMDYtMzAgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ2FsY3VsYXRlICJjb29rZWQiIHZhbHVlcyBmcm9tIGhpc3RvcmljYWwgZGF0YS4KICAgVGhpcyBjaGFuZ2VzIHRoZSBtZWFuaW5nIG9mIHRoZXNlIGZpZ3VyZXMgZnJvbSBhIHN5c3RlbQogICBsaWZlLXRpbWUgYXZlcmFnZSB0byBhIChtb3JlIHVzZWZ1bCkgb25lLW1pbnV0ZSBhdmVyYWdlLAogICBhbmQgYnJpbmdzIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiBpbnRvIGxpbmUgd2l0aCBtb3N0CiAgIG90aGVyIGFyY2hpdGVjdHVyZXMuCgoyMDA1LTA2LTMwIDA0OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaDoKCiAgIFN0YW5kYXJkIChzeXN0ZW0taW5kZXBlbmRlbnQpIG1lY2hhbmlzbSBmb3IgdHJhY2tpbmcgaGlzdG9yaWNhbCBDUFUKICAgc3RhdGlzdGljcywgaW4gb3JkZXIgdG8gY2FsY3VsYXRlIHJvbGxpbmcgYXZlcmFnZXMuCgoyMDA1LTA2LTI5IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEbyBwcm9wZXIgY2hlY2tzIGZvciB6ZXJvIHJldHVybiBhbmQgd2FpdCByYXRoZXIgdGhhbiBjbG9zaW5nIHRoZSBjb25uZWN0aW9uCgoyMDA1LTA2LTI5IDEzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIFJvbWFuIFRzaXJvdWxuaWtvdiB0byBjYXRjaCAtMSByZXR1cm4gY29kZSBmcm9tIGNoZWNrX3BhY2tldCBmdW5jdGlvbnMKCjIwMDUtMDYtMjggMDg6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguaDoKCiAgIFR3ZWFrIHRoZSBuYW1lIG9mIHRoZSBjb3JlIEhBTCBtZW1vcnkgbW9kdWxlLgoKMjAwNS0wNi0yNyAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cywgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgUGF0Y2ggZnJvbSBEYXZpZCBCZWF0dGllIHRvIGZpeCB0cmFwIHJlY2VwdGlvbgoKMjAwNS0wNi0yNyAwNTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zdG9yYWdlLmgKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgdG8gaW1wbGVtZW50IE1lbW9yeSBtb25pdG9yaW5nIG9uIExpbnV4IHN5c3RlbXMuCgoyMDA1LTA2LTI3IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3Byb2MuaCwKICAgICB1Y2Qtc25tcC92bXN0YXQuYywgdWNkLXNubXAvdm1zdGF0Lmg6CgogICBVc2UgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgdG8gaW1wbGVtZW50IENQVSBtb25pdG9yaW5nIG9uIExpbnV4IHN5c3RlbXMuCgoyMDA1LTA2LTI3IDA0OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIGEgSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIKICAgKEp1c3QgY292ZXJpbmcgQ1BVIGFuZCBtZW1vcnkgaW5mb3JtYXRpb24gZm9yIG5vdywgYW5kCiAgICBvbmx5IGltcGxlbWVudGVkIG9uIExpbnV4LWJhc2VkIHN5c3RlbXMuIEJ1dCBpdCdzIGEgc3RhcnQhKQoKMjAwNS0wNi0yNyAwNDo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSGFuZGxlIHdlZWstZGF5IGJpdCBzcGVjaWZpY2F0aW9ucy4KCjIwMDUtMDYtMjcgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEhhbmRsZSByZXZlcnNlLWRheSBiaXQgc3BlY2lmaWNhdGlvbnMuCgoyMDA1LTA2LTI0IDA2OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGNhbGFuZGFyLWJhc2VkIHNjaGVkdWxpbmcuCiAgIFRoaXMgZG9lc24ndCBoYW5kbGUgcmV2ZXJzZS1kYXkgb3Igd2Vla2RheSBiaXRzIHlldCwKICAgYnV0IHNob3VsZCBwcm92aWRlIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG5lZWRlZCBmb3IKICAgdGhlICJjcm9uIiBhbmQgImF0IiBjb25maWd1cmUgZGlyZWN0aXZlcy4KCjIwMDUtMDYtMjMgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIE1vcmUgbWVhbmluZ2Z1bCBkZWJ1ZyBvdXRwdXQuCgoyMDA1LTA2LTIyIDIwOjE2ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIGRvY3VtZW50IGxvZ21hdGNoLCBhZ2VudHhwZXJtcywgY29tMnNlY3VuaXgsIGVuZ2luZUlEVHlwZSwgZW5naW5lSUROaWMKICAgICBhbmQgbGVhdmVfcGlkZmlsZSB0b2tlbnMKCjIwMDUtMDYtMjIgMjA6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBzbm1wZCBkaXNraW8gdG9rZW4gYW5kIHRoZSB1bnVzZWQgc3RhdGljIHZhcmlhYmxlIGl0IHNldHMKCjIwMDUtMDYtMjIgMTk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgb29wcy4gZGVjbGFyZSB2YXJpYWJsZSB1c2VkIGluIG5ldyBjb2RlLgoKMjAwNS0wNi0yMiAxOTozNSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoIGZyb20gMTIxOTU0ODogZG9uJ3QgdXNlIGRlcHJlY2F0ZWQgb3B0aW9uCgoyMDA1LTA2LTIyIDE5OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSAxMjE5NTQ4OiBkb24ndCB1bmxpbmsgbnVsbCBmaWxlbmFtZQoKMjAwNS0wNi0yMiAxOTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBjbG9zZSBhbGwgZmRzIGFmdGVyIGRhZW1vbml6aW5nCgoyMDA1LTA2LTIyIDE3OjAzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgY2hlY2sgdGFyZ2V0IGZvciBmdWxsIHBhdGhzIGluIGRlcGVuZGVuY3kgZmlsZXMKCjIwMDUtMDYtMjIgMTY6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYXBwbHkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiAxMjI1NDQwOiByZWdpc3RlciBzaW5nYWwgaGFuZGxlcnMgZWFybGllcgoKMjAwNS0wNi0yMiAxNTo1NyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhcHBseSBzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uIG9mIDEyMjU0NDA6IHJlZ2lzdGVyIHNpbmdsYSBoYW5kbGVzIGVhcmxpZXIKCjIwMDUtMDYtMjIgMTM6MjIgIHJzdG9yeQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIG1vdmUgaWZkZWYgdGVzdCBhZnRlciBoZWFkZXIgd2l0aCBkZWZpbmUgaXMgaW5jbHVkZWQKCjIwMDUtMDYtMjIgMDY6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZFRhYmxlLmM6CgogICBVc2UgdGhlIG5ldyBzY2hlZFRhYmxlIGVudHJ5IGNyZWF0aW9uIHJvdXRpbmVzLgoKMjAwNS0wNi0yMiAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgRW5zdXJlIHNlbnNpYmxlIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFuIGludGVybmFsIHNlc3Npb24uCgoyMDA1LTA2LTIyIDA1OjQxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHRoZSB2ZXJzaW9uIGFuZCBzZWN1cml0eSBsZXZlbAogICB1c2VkIHRvIG1ha2UgaW50ZXJuYWwgcXVlcmllcy4KICAgICBVbmZvcnR1bmF0ZWx5LCBjb21tdW5pdHktYmFzZWQgcmVxdWVzdHMgZG9uJ3QgY3VycmVudGx5CiAgIHdvcmsgb3ZlciB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0LCBidXQgSSdtIHdvcmtpbmcgb24gdGhhdC4KCjIwMDUtMDYtMjIgMDU6MzkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFNlcGFyYXRlIG91dCBwYXJzaW5nIHNlY3VyaXR5IGxldmVsIHRva2VucyBpbnRvIGEgc2VwYXJhdGUgcm91dGluZS4KCjIwMDUtMDYtMjEgMTc6MzkgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDYtMjEgMTc6MzYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGFzc2VydAoKMjAwNS0wNi0yMSAxNzozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIHByb3RvdHlwZSBmb3IgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQKCjIwMDUtMDYtMjEgMTc6MzMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgcHJvdG90eXBlcyBmb3Igc2hvdWxkX2luaXQgYW5kIGFkZF90b19pbml0X2xpc3QKCjIwMDUtMDYtMjEgMTc6MzIgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiwgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBuZXcgLS1kaXNhYmxlLXNubXB0cmFwZC1zdWJhZ2VudCBjb25maWd1cmUgb3B0aW9uCiAgIC0gY2hlY2sgbmV3IG9wdGlvbiB0byBkaXNhYmxlIHN1Yi1hZ2VudCBjb2RlCiAgIC0gYWRkICdJJyBvcHRpb24gdG8gY29tbWFuZCBsaW5lIHByb2Nlc3NpbmcsIHRvIGRpc2FibGUgbW9kdWxlcwogICAtIHVzZSBzaG91bGRfaW5pdCB0byBkZXRlcm1pbmUgaWYgbm90aWZpY2F0aW9uIGxvZyBtaWIgaXMgZGlzYWJsZWQKICAgLSB1c2UgbmV3IHNubXBfbG9nZ2luZ19yZXN0YXJ0IG9uIEhVUAoKMjAwNS0wNi0yMSAxMTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIHByb3RvdHlwZSBmb3Igc25tcF9zdGRlcnJsb2dfc3RhdHVzCgoyMDA1LTA2LTIxIDExOjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvcmUuYywgc2NoZWRDb3JlLmg6CgogICBBIGNsZWFuZXIgYXBwcm9hY2ggdG8gY3JlYXRpbmcgZW50cmllcyBpbiB0aGUgc2NoZWRUYWJsZQoKMjAwNS0wNi0yMSAxMTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgQ29uc2lzdGVudGx5IHdvcmsgd2l0aCBTTk1QIHZlcnNpb25zLCBub3QgInByb2Nlc3NpbmcgbW9kZWxzIi4KCjIwMDUtMDYtMjEgMTE6MzMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENvcnJlY3QgdGVtcGxhdGUgZm9yIGNhY2hlZCB0YWJsZV9kYXRhIHJlZ2lzdHJhdGlvbi4KCjIwMDUtMDYtMjEgMTA6NDUgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBSZWZlciB0byB0aGUgY29ycmVjdCBsb2NhdGlvbiBmb3IgY29uZmlnIGZpbGVzLgogICAoU3BvdHRlZCBieSBMZW8gTGVpKQoKMjAwNS0wNi0yMSAxMDowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIG9ubHkgYWRkIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGlmZiB3ZSBhcmUgYW4gYWdlbnR4IHN1YmFnZW50CgoyMDA1LTA2LTIwIDE4OjA3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBmaXggc2V0dGluZyBvZiBleHBlY3QgcmVzcG9uc2UgcGR1IGZsYWcgKEkgYnJva2UgaXQgZml4aW5nIHRoZSBTTk1QdjMKICAgICBkZWxheWVkIGVuZ2luZUlEIHByb2JlKQoKMjAwNS0wNi0yMCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcHJveHkgaGFuZGxpbmcgb2YgTk9TVUNITkFNRSBvbiBhIGdldC1uZXh0LCBub3RlZCBvbiB1c2VycyBieSBKb2huIEhhcmRpbgoKMjAwNS0wNi0yMCAxNzozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgbG9nIGZsYWdzIGluIGFnZW50CiAgIC0gc2V0IG5vIGRlZmF1bHQgbG9nIGZsYWcgZm9yIHN5c2xvZyBjYXNlcwogICAtIG5ldyBzbm1wX3N0ZGVycmxvZ19zdGF0dXMoKSBjaGVja3MgZm9yIGVuYWJsZWQgc3RkZXJyIGxvZyBoYW5kbGVycwogICAtIGZpeCByZS1lbmFibGUgb2Ygc3lzbG9nIGluIGxvZ2dpbmcgcmVzdGFydCBmdW5jdGlvbgogICAtIHVzZSBjb3JyZWN0IGZ1bmN0aW9uIG5hbWUgdG8gcmUtZW5hYmUgZmlsZSBsb2dzCiAgIC0gQysrIGNvbW1lbnRzIC0+IEMgY29tbWVudHMKCjIwMDUtMDYtMjAgMTY6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBuZXcgbmV0c25tcF9sb2dnaW5nX3Jlc3RhcnQoKSB0byBjbG9zZS9yZW9wZW4gZmlsZSBiYXNlZCBsb2dzCiAgIC0gcHVyZ2UgYWdlbnQgc2V0dXBfbG9nCiAgIC0gb25seSBlbmFibGUgZGVmYXVsdCBMT0dGSUxFIGlmIG5vIG90aGVyIGxvZyBvcHRpb24gZGVmaW5lZAoKMjAwNS0wNi0xOCAxMToxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAwNS0wNi0xOCAxMDo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC1tb3ZlIHNvbWUgYXJnIGNoZWNrcyBlYXJsaWVyCiAgIC1tb3ZlIGxpYndyYXAvcnBtIGNoZWNrcyBiYWNrIGFmdGVyIHNldHRpbmcgTk9OQUdFTlRMSUJTLCBzbyB0aGV5IGFyZW4ndAogICAgbGlzdGVkIGluIGFwcCBsaWJzIGJ5IG5ldC1zbm1wLWNvbmZpZwoKMjAwNS0wNi0xNiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgb29wcy0gcGFzcyBhZGRyIG9mIHZhciB0byBzc2NhbmYKCjIwMDUtMDYtMTUgMTc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhZGQgcHJvdG90eXBlIGZvciBmdW5jIHVzZWQgYmVmb3JlIGRlZmluZWQKCjIwMDUtMDYtMTUgMDg6MDUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGcmVlIHRoZSBzYW1lIHBvaW50ZXIgdGhhdCB3YXMgcmV0dXJuZWQgYnkgJ3N0cmR1cCcKCjIwMDUtMDYtMTQgMTY6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHJld29yayBzbm1wdjMgZW5naW5lSUQgcHJvYmUgZGVsYXkgdG8gZml4IHByb2JsZW1zIG5vdGVkIG9uIGNvZGVycwogICAgIC0gc2V0IHVwL2NoZWNrIHNlc3MvcGR1IHZlcnNpb24gYSBsaXR0bGUgZWFybGllcgogICAgIC0gc2V0IEVYUEVDVF9SRVNQT05TRSBmbGFnIGNvcnJlY3RseSBpbml0aWFsbHksIGluc3RlYWQgb2YgZ2xvYmFsIHNldAogICAgICAgYW5kIHVuc2V0IGZvciBjZXJ0YWluIGNhc2VzLiBhbHNvIGRvIGl0IGEgbGl0dGxlIGVhcmxpZXIKICAgICAtIG1vdmUgY2hlY2sgZm9yIHByb2JlIGhpZ2hlciB1cCBjYWxsIHN0YWNrIC0gbm93IHdpbGwgYmUgZG9uZSB0aGUgZmlyc3QKICAgICAgIHRpbWUgYSBzZXNzaW9uIHNlbmRzIGEgdjMgcGR1IHRoYXQgZXhwZWN0cyBhIHJlc3BvbnNlCgoyMDA1LTA2LTE0IDEyOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBVc2UgImFnZW50U2VjTmFtZSIgZm9yIHJldHJpZXZpbmcgc2NoZWR1bGUgaW5mb3JtYXRpb24uCgoyMDA1LTA2LTE0IDEyOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBmaXggYnVnIDExOTcxODM6IHNzUmF3Q3B1KiBzdGF5cyBvbiAyXjMyLTEgaW5zdGVhZCBvZiByb2xsaW5nIG92ZXIKCjIwMDUtMDYtMTQgMTE6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBvb3BzLSBtb3ZlIHZhciBkZWNsIHRvIGZ1bmMgdGhhdCB2YXIgd2FzIG1vdmVkIHRvCgoyMDA1LTA2LTE0IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZml4IGJ1ZyAxMjE3MjYxOiBJRi1NSUIgcmVwb3J0cyBpbmNvcnJlY3Qgc3RhdHMgb24gQU1ENjQKCjIwMDUtMDYtMTQgMTA6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHByb2Nlc3Mgb3B0aW9uYWwgY29uZmlnIGZpbGVzIGR1cmluZyBwcmUtbWliIGNvbmZpZyB0b28KICAgLSBpZiBvcHRpb25hbCBjb25maWdzIHByZWZpeGVkIHdpdGggJy0nLCBwcm9jZXNzIGJlZm9yZSBkZWZhdWx0IGNvbmZpZ3MKCjIwMDUtMDYtMTQgMDc6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGRpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgTW92ZSAiYWdlbnRTZWNOYW1lIiBjb25maWcgZGlyZWN0aXZlIHRvIHRoZSBpcXVlcnkgdXRpbGl0eSBtb2R1bGUuCgoyMDA1LTA2LTE0IDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEaXN0aW5ndWlzaCBzbm1wX3NlbmQgZXJyb3JzIGZyb20gU05NUCBlcnJTdGF0IGVycm9ycwoKMjAwNS0wNi0xNCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFBvcHVsYXRlIGNhbGxiYWNrIFBEVSB3aXRoIFNOTVB2MyBkZWZhdWx0cyBmcm9tIHRoZSBzZXNzaW9uIHN0cnVjdHVyZS4KCjIwMDUtMDYtMTMgMTk6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlciwgYXV0b2NvbmYKCjIwMDUtMDYtMTMgMTk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYXBwbHkgcGF0Y2ggMTE5ODIxMDogdXNpbmcgZXRodG9vbCBmb3IgZ2lnYWJpdCBOSUNzCgoyMDA1LTA2LTEzIDE5OjAxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgdXBkYXRlIGZvciBwcmV2aW91cyBjYWNoZV9oaW50IG1ldGhvZAoKMjAwNS0wNi0xMyAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgYWx3YXkgcGFzcyBoaW50cyB0byBsb3dlciBoYW5kbGVycwoKMjAwNS0wNi0xMyAxNzoxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1ha2UgbWlicywgbWliZGlycyBhbmQgbWliZmlsZXMgaGFuZGxpbmcgY29uc2lzdGVudDoKICAgICAtICctWFhYJyBhZGRzIFhYWCBiZWZvcmUgZXhpc3RpbmcKICAgICAtICcrWFhYJyBhZGRzIFhYWCBhZnRlciBleGlzdGluZwogICAgICAgTk9URTogdGhpcyByZXN0b3JlcyBvcmlnaW5hbCBiZWhhdmlvciBvZiAnKycgdG8gdGhhdCBvZiA1LjAuMS4gQWZ0ZXIKICAgICAgICAgICAgIDUuMC4yLCBpZiBJIHJlYWQgdGhlIGNvZGUgcmlnaHQsICcrJyBiZWhhdmlvdXIgb24gdGhlIGNtZCBsaW5lIGFuZAogICAgICAgICAgICAgaW4gTUlCRElSUyB3YXMgcmV2ZXJzZWQgYW5kIG5vdCBjb25zaXN0ZW50IHdpdGggaGFuZGxlX21pYnNfY29uZi4KCjIwMDUtMDYtMTMgMTU6MzQgIHJzdG9yeQoKICAgKiBSRUFETUUudHJ1NjQ6CgogICBuZXcgcmVhZCBtZSBmb3IgVHJ1NjQKCjIwMDUtMDYtMTMgMTI6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgsCiAgICAgaWZUYWJsZV9jb2x1bW5zLmgsIGlmWFRhYmxlX2NvbHVtbnMuaDoKCiAgIFJlbW92ZSBvYnNvbGV0ZSBpZlRhYmxlIHJld3JpdGUuCgoyMDA1LTA2LTEzIDEyOjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUnVuIHRyYXAgaGFuZGxlcnMgdXNpbmcgJ3N5c3RlbSgpJyByYXRoZXIgdGhhbiAnZXhlY3YoKScsCiAgIHRvIHN1cHBvcnQgdHJhcCBoYW5kbGVyIHNoZWxsIHNjcmlwdHMuCgoyMDA1LTA2LTEzIDEyOjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBwYXJzZS5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzeXN0ZW0uYwosIHdpbnNlcnZpY2UuYzoKCiAgIEd1YXJkIGFnYWluc3QgYXNzb3J0ZWQgbWFsbG9jIGZhaWx1cmVzLgogICBSZXBvcnRlZCBieSBBbmRyZWFzIE1vcm9kZXIuCgoyMDA1LTA2LTEzIDExOjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIGJvZ3VzIGhhbmRsaW5nIG9mIHplcm8td2lkdGggaGludHMuCiAgIFRoZXNlIG1pZ2h0IGJlIHBvaW50bGVzcywgYnV0IHRoZXkgYXJlIHN0cmljdGx5IHZhbGlkLgogICAoU2VlIFJGQyAyNTc5LCBTZWN0aW9uIDMuMSAoMSkpCgoyMDA1LTA2LTEzIDEwOjUyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICAgIHNubXBsaWIvbWliLmM6CgogICBQb3NzaWJsZSBtZWNoYW5pc20gZm9yIGFkZHJlc3NpbmcgbmFtZXNwYWNlIGNsYXNoZXMKICAgKGluIHJlc3BvbnNlIHRvIE1hdHRoZXcgQm9laG0nIEFzdGVyaXNrIHByb2JsZW0pCgoyMDA1LTA2LTEwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VEUC1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gUkZDNDExMwoKMjAwNS0wNi0xMCAxNjowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9ydW46CgogICBhcHBseSB0ZXN0aW5nLXJmYzEyMTMtcnVuLmRpZmYgZnJvbSBwYXRjaCAxMjE3NDc1OiBidWlsZCBmaXhlcwoKMjAwNS0wNi0xMCAxNTo1NyAgaGFyZGFrZXIKCiAgICogbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlIHRoZSBVRFAtTUlCIHRvIGp1c3QgcHVibGlzaGVkIFJGQzQxMTMKCjIwMDUtMDYtMTAgMTU6NTQgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYXBwbHkgdGVzdGluZy10ZXN0Y29uZi5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgYXBwbHkgYWdlbnQtaGVscGVycy1tYWtlZmlsZS5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTM6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGluaXQgaGFuZGxlciBmb3IgYWdlbnR4c29ja2V0IGZvciBzdWJhZ2VudHMgdG9vCgoyMDA1LTA2LTEwIDEwOjU1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIFlldCBBbm90aGVyIEF0dGVtcHQgdG8gZmluZCB0aGUgY29ycmVjdCBxdW90aW5nIG9mIGNvbmZpZ3VyZSBvcHRpb25zLgoKMjAwNS0wNi0xMCAwNzozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgVXBkYXRlIHRvIHVzZSB0aGUgcmVuYW1lZCBpbnRlcm5hbCBhbmQgbGlicmFyeSBxdWVyeSBBUEkgY2FsbHMuCgoyMDA1LTA2LTEwIDA3OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBUd2VhayB0aGUgc3BlY2lmaWNhbGx5IGFnZW50LWludGVybmFsIHF1ZXJ5IHJvdXRpbmVzIHRvIHVzZSB0aGUgU05NUAogICBsaWJyYXJ5IHZlcnNpb25zLgoKMjAwNS0wNi0xMCAwNzoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTW92ZSAoYW5kIHJlbmFtZSkgc2Vzc2lvbi1iYXNlZCAiaW50ZXJuYWwgcXVlcnkiIEFQSSBjYWxscyBpbnRvIHRoZSBTTk1QCiAgIGxpYnJhcnksIHNvIHRoZXkncmUgYXZhaWxhYmxlIGFzIGEgY29udmVuaWVuY2UgdG8gYWxsIFNOTVAgYXBwbGljYXRpb25zLgoKMjAwNS0wNi0xMCAwNTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW92ZSBzcGVjaWFsIGhhbmRsaW5nIGZvciAiaXAiIGludGVyZmFjZXMgdG8gU1VOVjMtb25seSBjb2RlIGJsb2NrLgogICBOby1vbmUgY2FuIHJlbWVtYmVyIHdoYXQgdGhpcyB3YXMgaW50ZW5kZWQgZm9yLCBhbmQgaXQgYnJlYWtzCiAgIExpbnV4IElQdjYgdHVubmVsIGludGVyZmFjZXMuCgoyMDA1LTA2LTEwIDA0OjIzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBCcmluZyBhdXRoZW50aWNhdGlvbi9lbmNyeXB0aW9uIGZsYWdzIGludG8gbGluZSB3aXRoIHRoZSBvdGhlciBjb21tYW5kcy4KICAgSW4gZmFjdCwgdHJlYXRzICctQS8tYScgYXMgZXF1aXZhbGVudCwgYW5kIHVzZXMgdGhlIHZhbHVlIHRvIGRpc3Rpbmd1aXNoCiAgIGJldHdlZW4gcHJvdG9jb2xzIGFuZCBwYXNzIHBocmFzZXMuICAoQW5kIHNpbWlsYXJseSBmb3IgLVgvLXgpCgoyMDA1LTA2LTA5IDE3OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyAxMjA3MDIzOiBzbm1wZCBjcmFzaCBvbiB0Y3AgZGlzY29ubmVjdAoKMjAwNS0wNi0wOSAxNzoxOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSBtb3ZlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgc2l6ZSBjaGVja3MgdG8gc25tcF9zZXRfdmFyX3ZhbHVlCiAgICAgLSB1c2Ugc25tcF9zZXRfdmFyX3ZhbHVlIGluIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUKCjIwMDUtMDYtMDkgMTE6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBhZGQgaXB2NiBzdXBwb3J0CgoyMDA1LTA2LTA5IDExOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIHJlbmFtZSBwYXJhbSwgdXBkYXRlIGRvY3MsIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDUtMDYtMDkgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIEltcGxlbWVudCBwYXJzaW5nIG9mIHRoZSAiYXQiIGFuZCAiY3JvbiIgY29uZmlnIGRpcmVjdGl2ZXMuCiAgIFRoZXNlIHN0aWxsIGRvbid0IGFjdHVhbGx5IHdvcmssIGJ1dCB5b3UgY2FuJ3QgaGF2ZSBldmVyeXRoaW5nLi4uLgoKMjAwNS0wNi0wOSAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgRml4IHBhcnNpbmcgb2YgInJlcGVhdCIgZGlyZWN0aXZlLgoKMjAwNS0wNi0wOSAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb25mLmMsIHNjaGVkQ29yZS5oOgoKICAgSXQgd291bGQgYmUgdmFndWVseSBoZWxwZnVsIGlmIEkga25ldyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiAgIGhvdXJzIGFuZCBtb250aHMsIGFuZCBob3cgbWFueSBvZiBlYWNoIHRoZXJlIHdlcmUhCgoyMDA1LTA2LTA5IDA1OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBEaXNhYmxlIHRlc3RpbmcgY29kZS4KICAgKGluaXRpYWxpc2luZyB0aGUgbGlicmFyeSB0b28gZWFybHkgYnJlYWtzIGNvbmZpZyBmaWxlIHByb2Nlc3Npbmc6LSgpCgoyMDA1LTA2LTA4IDE1OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBza2lwIGlwdjYgY29kZSBpZiBpcHY2IG5vdCBlbmFibGVkOyBub3RlZCBvbiBjb2RlcnMgYnkgZWlyaWsgbm9yZGJyb2RlbgoKMjAwNS0wNi0wNyAxMDoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNtYW4uaCwgZGlzbWFuL3NjaGVkQ29uZi5jLAogICAgIGRpc21hbi9zY2hlZENvbmYuaCwgZGlzbWFuL3NjaGVkQ29yZS5jLAogICAgIGRpc21hbi9zY2hlZENvcmUuaCwgZGlzbWFuL3NjaGVkVGFibGUuYywKICAgICBkaXNtYW4vc2NoZWRUYWJsZS5oLCBkaXNtYW4vc2NoZWR1bGUuaDoKCiAgIFByZWxpbWluYXJ5IChhbmQgaW5jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBTY2hlZHVsZSBNSUIuCgoyMDA1LTA2LTA2IDA1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBVdGlsaXR5IHJvdXRpbmVzIGZvciBtYWtpbmcgImludGVybmFsIHF1ZXJpZXMiLCB0byByZXRyaWV2ZSBvciBhc3NpZ24KICAgdmFsdWVzIGZyb20gZWxzZXdoZXJlIGluIHRoZSBjdXJyZW50IGFnZW50LgoKMjAwNS0wNi0wNiAwNToyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIFBvcHVsYXRlIGNhbGxiYWNrIFBEVSB3aXRoIGRlZmF1bHRzIGZyb20gdGhlIHNlc3Npb24gc3RydWN0dXJlLgogICBUaGlzIGFsbG93cyBjb21tdW5pdHktYmFzZWQgUERVcyB0byBiZSBzZW50IG92ZXIgYSBjYWxsYmFjayB0cmFuc3BvcnQuCgoyMDA1LTA2LTAyIDE5OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVsYXkgU05NUHYzIEVuZ2luZUlEIHByb2JlIHVudGlsIG5lZWRlZAoKMjAwNS0wNi0wMiAxOToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkvcmUtYXBwbHkgZml4IGZvciBidWcgMTEwMzY0NCwgRnJlZUJTRCBtZW1vcnkgbGVhawoKMjAwNS0wNi0wMiAxODozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIG11bHRpcGxleGVyLmMsCiAgICAgbnVsbC5jLCByZWFkX29ubHkuYzoKCiAgIGFwcGx5IHBhdGNoIDEyMTA2MzI6IFJlcGxhY2UgbmV0c25tcF9zZXRfYWxsX3JlcXVlc3RzX2Vycm9yCgoyMDA1LTA1LTMwIDE3OjIxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIDQwNDQ6IEZDLU1HTVQtTUlCCgoyMDA1LTA1LTMwIDE3OjE3ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBDdXJyZW50IElBTkEgdmVyc2lvbgoKMjAwNS0wNS0yNyAxNDowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjb21taXQgbWlzc2luZyBzdHJ0b2tfciBjaGFuZ2VzICpjb3VnaCoKCjIwMDUtMDUtMjMgMTg6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNubXBsaWIvc25tcF9kZWJ1Zy5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFwcGxpZWQgbWlub3IgYnVnIGZpeC9kb2MgcGF0Y2hlcyBmcm9tIFRob21hcyBBbmRlcnMgaW4gIzEyMDY5ODIKCjIwMDUtMDUtMjMgMTY6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBVc2UgbWtzdGVtcCBhcHByb3ByaWF0ZSB0byBnZW5lcmF0ZSB0ZW1wIGZpbGVzCgoyMDA1LTA1LTIwIDEwOjAzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQnJpbmcgJy1IJyBpbml0aWFsaXNhdGlvbiBpbnRvIGxpbmUgd2l0aCBub3JtYWwgc3RhcnR1cC4KCjIwMDUtMDUtMTYgMTU6NTAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIERvbid0IGF1dG8tYnVpbGQgZGVwZW5kZW5jaWVzLiAgU3BlY2lmeSBhIGxpc3QgaW5zdGVhZC4KCjIwMDUtMDUtMTYgMTU6NDkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBBIGJpdCBvZiByZW51bWJlcmluZy4KCjIwMDUtMDUtMTYgMTU6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhdXRvbWF0dGVkIHJlbGVhc2UgcHJvZHVjZXIgc2NyaXB0CgoyMDA1LTA1LTExIDE5OjUxICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdHlwbyBpbiBjb21tZW50CgoyMDA1LTA1LTExIDEwOjAyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IGh0bWxoZWxwL05ldC1TTk1QLmhoYywgaHRtbGhlbHAvTmV0LVNOTVAuaGhwCiwgc2NyaXB0cy9yZWFkbWUyaHRtbDoKCiAgIEFkZCBSRUFETUUuYWdlbnQtbWlicyB0byBXaW5kb3dzIGJpbmFyeQoKMjAwNS0wNS0xMSAwNToyMCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE1vcmUgUkZDcyB3aXRoIE1JQnMKCjIwMDUtMDUtMTAgMjE6MTMgIGFsZXhfYgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIHNubXBjb25mOiBBbGxvdyBTTk1QQ09ORlBBVEggdG8gaGF2ZSBtdWx0aXBsZSBwYXRocyBkZWZpbmVkIHN1Y2ggYXMgd2hlbiB0aGUKICAgcGVyc2lzdGVudCBmb2xkZXIgaXMgaW5jbHVkZWQuICBzbm1wY29uZiB3aWxsIGFsc28gZGV0ZXJtaW5lIHRoZSBjb25maWd1cmVkCiAgIHBlcnNpc3RlbnQgZm9sZGVyIGFuZCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgdHJlYXRlZCBhcyBhIHJlZ3VsYXIgY29uZmlndXJhdGlvbgogICBmaWxlLgoKMjAwNS0wNS0xMCAyMDo0NCAgYWxleF9iCgogICAqIE5FV1M6CgogICBBZGQgZml4ZXMgdG8gTkVXUyBmb3IgbmV4dCByZWxlYXNlCgoyMDA1LTA1LTA5IDIxOjA3ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA5IDIwOjUzICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBUaGUga2VybmVsIGxpdmVzIGluIC9ib290L2tlcm5lbC9rZXJuZWwgb24gcmVjZW50IEZyZWVCU0QncwoKMjAwNS0wNS0wOSAxOTozNSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUudHh0LAogICAgIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgYmluYXJ5OiBBZGQgcGVyc2lzdCBmb2xkZXIgdG8gU05NUENPTkZQQVRICgoyMDA1LTA1LTA5IDE5OjAwICBhbGV4X2IKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGQuOC5kZWYsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLVBlcnNpc3RlbnQgZmlsZXMgd2VyZSBub3QgYmVpbmcgcmVhZCBhdCBzdGFydHVwIHdoZW4gdXNpbmcKICAgc25tcC5jb25mIHBlcnNpc3RlbnREaXIKICAgLVVwZGF0ZSBwZXJzaXN0ZW50IHN0b3JhZ2Ugc2VjdGlvbnMgb2Ygc25tcF9jb25maWcgYW5kIHNubXBkCiAgIG1hbiBwYWdlcwoKMjAwNS0wNS0wOSAxODo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgdXNlIG1vcmUgZmxleGlibGUgY3NzIGZvciBtYXJrdXAgYW5kIGFsbG93IGEgcGFzc2VkIGluIGZpbGUKCjIwMDUtMDUtMDkgMTg6MTIgIGFsZXhfYgoKICAgKiBDT1BZSU5HOgoKICAgQWRkIEZhYmFzb2Z0IFImRCBTb2Z0d2FyZSAoYykgbm90aWNlCgoyMDA1LTA1LTA5IDE2OjM3ICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIGRldGVjdCBleHRyYSBhcmd1bWVudHMKCjIwMDUtMDUtMDkgMTY6MzMgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgc25tcGdldCA9PiBzbm1wZGYKCjIwMDUtMDUtMDkgMTY6MjEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSRkMgNDAwOCBpcyBOQVQtTUlCCgoyMDA1LTA1LTA5IDE2OjIwICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRmluZCBkZWNsYXJhdGlvbnMgZm9yIHNpZ2hvbGQvc2lnc2V0L3NpZ3BhdXNlCgoyMDA1LTA1LTA5IDE2OjE4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBFbnN1cmUgMC10ZXJtaW5hdGlvbiBvZiByZWFkIGZpbGUgZGF0YQoKMjAwNS0wNS0wOSAxNjoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRGV0ZWN0IHRvbyBtYW55IGRlZmluZWQgcGVlcnMuIFByb3Blcmx5IHBhcnNlIHN5bWJvbGljIHBlZXJzCgoyMDA1LTA1LTA5IDE2OjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBOZWVkZWQgZXh0ZXJuYWwKCjIwMDUtMDUtMDkgMTY6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBGaXggZm9ybWF0IHdhcm5pbmcKCjIwMDUtMDUtMDkgMTY6MDkgIG5iYQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBmb3IgaW5zdGFsbGluZyByZW1vdGUgZnJvbSBzb3VyY2UgZGlyCgoyMDA1LTA1LTA5IDE2OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgRml4IGZvciBOZXRCU0QKCjIwMDUtMDUtMDkgMTY6MDEgIG5iYQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBHZW5lcmF0ZWQKCjIwMDUtMDUtMDkgMTU6NDUgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmg6CgogICBGaXhlcyBmb3IgTmV0QlNEL0ZyZWVCU0QgZm9yIHN3YXAgZGF0YQoKMjAwNS0wNS0wOSAxNToxNyAgbmJhCgogICAqIGFjY29uZmlnLmg6CgogICBGaXggbWluZ3cgdGVzdCB0aGF0IHdhcyBvbmx5IGFwcGxpZWQgdG8gbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMDUtMDUtMDkgMTU6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBib2d1cyBwcmVwcm9jZXNzb3IgaWYKCjIwMDUtMDUtMDkgMDQ6NTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIElsbHVzdHJhdGUgaGFuZGxpbmcgb2YgY2FjaGVkIHRhYmxlcyB1c2luZyB0aGUgdGFibGVfZGF0YSBoZWxwZXIuCiAgIChBY3RpdmF0ZSB1c2luZyAibWliMmMgLVNjYWNoZT10cnVlIC4uLiIpCgoyMDA1LTA1LTA5IDA0OjU4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBFeHRyYWN0IHJlcXVpcmVkIHRhYmxlIHN0cnVjdHVyZXMgd2hlbiBwcm9jZXNzaW5nIFJvd1N0YXR1cyBhc3NpZ25tZW50cy4KCjIwMDUtMDUtMDkgMDQ6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIEZpeCB0YWJsZSBtYXgvbWluIGNvbHVtbiByZWdpc3RyYXRpb24uCgoyMDA1LTA1LTA2IDE1OjE0ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA2IDE1OjExICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBQbGFjYXRlIGF1dG9jb25mMjU5IGJ5IHRlc3RpbmcgYW5kIGluY2x1ZGluZyA8dm0vdm0uaD4gYmVmb3JlIHRlc3RpbmcKICAgPHZtL3N3YXBfcGFnZXIuaD4KCjIwMDUtMDUtMDUgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMDY0NDMgZnJvbSB0b2xnYSBjZXlsYW4gdG8gdXNlIGEgcHJvcGVyIHJldHVybiBjb2RlIGNoZWNrIGZvciBnZXRLc3RhdEludAoKMjAwNS0wNS0wNSAyMDowNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQXBwbGllZCBwYXRjaCAjMTEwOTcxMiB0byBmaXggVlBBVEggZm9yIHJjIGZpbGVzIG9uIGN5Z3dpbgoKMjAwNS0wNS0wNSAxOTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzExMTA1NzEgZnJvbSBLYXRzdWhpc2EgQUJFIHRvIHNldCBpcHY2IHRjcCBzb2NrZXRzIHRvIGlwdjYgb25seSBpZiBwb3NzaWJsZQoKMjAwNS0wNS0wNSAxOTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgQXBwbGllZCBwYXJ0IG9mIHBhdGNoICMxMTEwNjEwIGZyb20gUGV0ZXIgQnJlaXRlbmxvaG5lciBmb3IgY29tcGlsZXIgd2FybmluZ3MKCjIwMDUtMDUtMDUgMTk6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgICBzbm1wbGliL21pYi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEyMzI0MiBmcm9tIE1pa2UgTWNIZW5yeSB0byBhZGQgbWliMnNjaGVtYSBjb21wbGlhbnQgb3V0cHV0IHRvIHNubXB0cmFuc2xhdGUKCjIwMDUtMDUtMDUgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTEyNDU2OSBmcm9tIE1hcmN1cyBNZWlzc25lciB0byBkeW5hbWljYWxseSBkZWNpZGUgaG93CiAgIG1hbnkgY3B1cyB0aGVyZSBvbiBsaW51eCBhbmQgdG8gYmV0dGVyIHBhcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCiAgICAgLSBtb2RpZmllZCB0byBiZSBjb21wbGlhbnQgd2l0aCBBTlNJIGFuZCB0aGUgY29kaW5nIHN0eWxlLgoKMjAwNS0wNS0wNSAxOToxMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoICMxMDYyMTE0IGJ5ICJzbm1wcG9ydGFsIiB0byBjbGVhbiB1cCBhIGZldyBtZW1vcnkgbGVha3MuCgoyMDA1LTA1LTA1IDA3OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzExMTcyNzEgKHZhcmlhbnQpIC0gY2hlY2sgdGhlIGJ1ZmZlciBsZW5ndGggd2hlbiBmb3JtYXR0aW5nCiAgIGFuIHVwdGltZSBzdHJpbmcgKHRob3VnaCB3aXRob3V0IGNoYW5naW5nIHRoZSBleGlzdGluZyBBUEkgY2FsbCkuCgoyMDA1LTA1LTA1IDA1OjA3ICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSBhZGRpdGlvbmFsIGdlbmVyYXRlZCBjbGllbnQgbWFuIHBhZ2VzCgoyMDA1LTA1LTA0IDIwOjU4ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmU6CgogICBBdXRvdXBkYXRlCgoyMDA1LTA1LTA0IDIwOjU2ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBVc2UgdGhlIGFjY3VtdWxhdGVkIHdpc2RvbSBvZiB0aGUgcHJldmlvdXMgQUNfSEVBREVSQ0hFQ0tTIGZvcgogICBIQVZFX05FVElORVRfSVBfSCwgSEFWRV9ORVRJTkVUX0lGX0gsIEhBVkVfTkVUSU5FVF9JUF9JQ01QX0ggYW5kCiAgIEhBVkVfTkVUSU5FVF9VRFBfSCAoaW4gYWRkaXRpb24gdG8gdGhlIG9uZXMgYWxyZWFkeSBwcmVzZW50KS4KICAgVGhpcyB1bmJyZWFrcyB0aGUgYnVpbGQgb24gRnJlZUJTRCA1LjMgYW5kIDQuMTAgKGJ1dCB0aGUgbGF0dGVyCiAgIHN0aWxsIGlzbid0IHBsYXlpbmcgd2l0aCB0aGUgZnVsbCB2bV9zd2FwIGRlY2spLgoKMjAwNS0wNS0wNCAyMDo0OCAgZHJpZWh1aXMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIEZyZWVCU0QgNS4zIGlzIHJlYWxseSB1bmhhcHB5IGFib3V0IGdldHRpbmcgX0tFUk5FTCBkZWZpbmVkLiBCeSBmb3JjaW5nCiAgIElGTkVUX05FRURTX0tFUk5FTCBvZmYgd2UgZml4IHRoYXQgKGFmdGVyIGFsbCwgZGVmaW5pbmcgX0tFUk5FTCByZWFsbHkKICAgaXMgYSBncm9zcyBoYWNrIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCBwcm9wZXJseSBleHBvcnQgc3lzdGVtCiAgIGludGVybmFscyAtLSBmYW1vdXMgbGFzdCB3b3JkczotKQoKMjAwNS0wNS0wNCAxMTo0OCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBQYXRjaCAjMTEyNDY1Mjogb3B0aW9ucyB0byBleHBsaWNpdGx5IGluY2x1ZGUvZXhjbHVkZSBlbGYgYW5kIGJ6aXAgbGlicmFyaWVzCgoyMDA1LTA1LTA0IDExOjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBQYXRjaCAjMTA0MjQ0NyAtIGNsb25lIHplcm8tbGVuZ3RoLCBub24tTlVMTC1wb2ludGVyIHN0cmluZ3MuCgoyMDA1LTA1LTA0IDA4OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCAjMTA1MTAwMSAtIHNraXAgdW5uZWNlc3NhcnkgY2FsbCB0byAnYXV0b19ubGlzdCcgdW5kZXIgTmV0QlNECgoyMDA1LTA1LTA0IDA4OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50Lmg6CgogICBQYXRjaCAjMTA5NjQ3OSAtIGZpeCBkZWNsYXJhdGlvbiBvZiBpbml0aWFsaXNhdGlvbiByb3V0aW5lLgoKMjAwNS0wNS0wNCAwODo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBQYXRjaCAjMTA5NjQ4MyAtIGZpeCBhIG1pbm9yIGluY29uc3Rpc3RlbmN5CgoyMDA1LTA1LTA0IDA4OjIyICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBQYXRjaCAjMTEwMzc1MSAtIHNraXAgZWRpdG9yIGJhY2t1cHMgd2hlbiBsb2FkaW5nIE1JQiBmaWxlcy4KCjIwMDUtMDUtMDQgMDg6MDcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzExMDk3MTk6IFJlbW92ZSAoYXBwYXJlbnRseSkgcmVkdW5kYW50IHF1b3Rpbmcgb2YgY29uZmlndXJlIG9wdGlvbnMuCiAgIFRoaXMgcXVvdGluZyB3YXMgaW50cm9kdWNlZCBlYXJseSBpbiB0aGUgdjUgbGlmZXRpbWUgdG8gc3VwcG9ydCAib3B0aW9ucwogICBjb250YWluaW5nIHNwYWNlcyIgKHNlZSByZXZpc2lvbiA1LjI2KS4gIFNpbXBsZSB0ZXN0aW5nIHNlZW1zIHRvIGluZGljYXRlCiAgIHRoYXQgaXQncyBubyBsb25nZXIgbmVlZGVkLCBhbmQgaXQgYnJlYWtzIEFJWCAocG9zc2libHkgYW1vbmcgb3RoZXJzKSwgc28KICAgbGV0J3MgdHJ5IHdpdGhvdXQgaXQuCiAgICAgSWYgbm8tb25lIGNvbXBsYWlucywgdGhpcyBwYXRjaCBtYXkgbmVlZCB0byBiZSBhcHBsaWVkIHRvIHRoZSBvdGhlciBicmFuY2hlcwogICBhcyB3ZWxsLgoKMjAwNS0wNS0wNCAwNzoxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUGF0Y2ggIzExMTgxMzIgLSBoYW5kbGUgZGlzYXBwZWFyaW5nIExpbnV4IHByb2Nlc3Nlcy4KCjIwMDUtMDUtMDQgMDY6NDIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXhlZCAjaWZkZWYgdHlwbwoKMjAwNS0wNS0wNCAwNjoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgUGF0Y2ggIzExMTcyNzYgLSB0d2VhayBFVlBfRGlnZXN0RmluYWwgcGFyYW1ldGVycyB0byBtYXRjaCBleHBlY3RlZCB0eXBlcy4KCjIwMDUtMDUtMDQgMDY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBQYXRjaCAjMTExNzI2NSAtIG9wZW4gZGV2aWNlcyB3aXRoIE5ERUxBWSB3aGVuIHBvc3NpYmxlLgogICBBdm9pZHMgYWdlbnQgaGFuZ2luZyBvbiBtaXNzaW5nIHJlbW92YWJsZSBkZXZpY2VzLgoKMjAwNS0wNS0wMyAxODoyNiAgYWxleF9iCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgV2luMzI6IEFwcGx5IHBhdGNoIDExNTMyNzEgYnkgRWtrZWhhcmQgRG9tbmluZyBmb3Igc25tcGQgcGFzc19wZXJzaXN0IHN1cHBvcnQKICAgZm9yIE1TVkMuICBBcHBseSBwYXRjaCBiYXNlZCBvbiAxMTUzMjcxIGZvciBwYXNzIHN1cHBvcnQgZm9yIE1TVkMgYW5kIE1pbkdXLgoKMjAwNS0wNS0wMyAxMDozOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaW50X3dhdGNoLmNvbmY6CgogICBVc2UgdGhlIHdhdGNoZWQgc2NhbGFyIGhlbHBlciAocmF0aGVyIHRoYW4gc3BlY2lhbGlzZWQgaW5zdGFuY2UgaGVscGVycykKICAgZm9yIGltcGxlbWVudGluZyBpbnRlZ2VyLWJhc2VkIHNjYWxhciBvYmplY3RzLiAgUGlja3MgdXAgb24gdW5zaWduZWQKICAgaW50ZWdlciBvYmplY3RzLCBhcyB3ZWxsIGFzIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gcmVhZC1vbmx5L3JlYWQtd3JpdGUKICAgTUlCIGRlZmluaXRpb25zLgoKMjAwNS0wNS0wMyAxMDoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgSWxsdXN0cmF0ZSBoYW5kbGluZyBvZiBjYWNoZWQgdGFibGVzIHVzaW5nIHRoZSBpdGVyYXRvciBoZWxwZXIuCiAgIChBY3RpdmF0ZSB1c2luZyAibWliMmMgLVNjYWNoZT10cnVlIC4uLiIpCgoyMDA1LTA1LTAzIDEwOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgU3Rhc2ggbG9va3VwIGRlYnVnZ2luZyBjb2RlLgoKMjAwNS0wNS0wMyAxMDoxOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIENvbnZlbmllbmNlIHNpbmdsZS1jYWxsIEFQSXMgZm9yIGludGVnZXItYmFzZWQgd2F0Y2hlZCBzY2FsYXJzLgogICAoTW9kZWxsZWQgb24gdGhlIGV4aXN0aW5nIGluc3RhbmNlLWJhc2VkIGNhbGxzKS4KCjIwMDUtMDUtMDMgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUHJvdmlkZSBhICh0cml2aWFsKSBnZXRfe2ZpcnN0LG5leHR9IEFQSS4KICAgTm90IHN0cmljdGx5IG5lY2Vzc2FyeSBpbiBpdHNlbGYsIGJ1dCBzaG91bGQgYWlkIHRoZQogICB0cmFuc2l0aW9uIHRvIGEgY29udGFpbmVyLWJhc2VkIHRhYmxlX2RhdGEgc3R5bGUuCgoyMDA1LTA1LTAyIDIwOjQyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgQWRkIGxpbWl0cy5oIGhlYWRlciBmaWxlCgoyMDA1LTA1LTAyIDE4OjQ2ICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgV2luMzIgTVNWQyBzdXBwb3J0IGZvciBmZF9ldmVudF9tYW5hZ2VyLltjaF0KCjIwMDUtMDUtMDEgMTM6NDcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBGaXggc3lzRGVzY3Igc3VwcG9ydCBmb3IgTWluR1cKCjIwMDUtMDUtMDEgMDk6MjAgIGFsZXhfYgoKICAgKiBsb2NhbC9wYXNzdGVzdC5wbDoKCiAgIEFkZGVkIFBlcmwgdmVyc2lvbiBvZiAvbG9jYWwvcGFzc3Rlc3Qgc2hlbGwgc2NyaXB0CgoyMDA1LTA0LTMwIDIwOjM4ICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgQ3lnd2luOiBBZGQgbWlzc2luZyByZWdpc3RyeSBzdXBwb3J0IGZvciBTTk1QQ09ORlBBVEggZXRjLgoKMjAwNS0wNC0zMCAyMDozNiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgLVJlbW92ZSAnZGVmaW5lIFdJTjMyJyBmb3IgQ3lnd2luIGFuZCBjaGFuZ2UgaWZkZWZzIHRvIGNoZWNrIGZvciBlaXRoZXIKICAgV0lOMzIgb3IgY3lnd2luLgogICAtQWRkIHNlY3Rpb24gdG8gUkVBRE1FLndpbjMyIGRlc2NyaWJpbmcgdGhlIHZhcmlvdXMgV2luZG93cyBkZWZpbmVzLgogICAtQWRkIG5vdGUgdG8gUkVBRE1FIGZpbGVzIGFib3V0IHNwYWNlcyBpbiBmb2xkZXIgbmFtZXMgd2hlbiBjb21waWxpbmcuCgoyMDA1LTA0LTMwIDE4OjM2ICBhbGV4X2IKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMKCjIwMDUtMDQtMjkgMTI6MTQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCAjMTE0OTQyMCAtIHVzZSBuZXcgZXh0ZXJuYWwgZmQgaGFuZGxlciByb3V0aW5lcywKICAgdG8gcGF2ZSB0aGUgd2F5IGZvciBtb3JlIGludGVncmF0ZWQgdHJhcCBoYW5kbGVycy4KCjIwMDUtMDQtMjkgMTI6MTIgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmg6CgogICBQYXRjaCAjMTE0OTQyMCAtIHNlcGFyYXRlIGV4dGVybmFsIGZkIGhhbmRsaW5nIG9mZiBpbnRvCiAgIGEgZGlzdGluY3QgbGlicmFyeSBtb2R1bGUuICBTdWJtaXR0ZWQgYnkgU3RlbiBKLiBPbHNzb24KCjIwMDUtMDQtMjkgMTE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIFBhdGNoICMxMTU0NDg4IC0gb3B0aW9uIHRvIHNwZWNpZnkgcHJpb3JpdHkgb2YgInBhc3MiIHByb2Nlc3NpbmcKCjIwMDUtMDQtMjkgMTE6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQXBwbHkgcGF0Y2ggIzExNTUzMzcgLSBmaXggZGlza0lPIGF2ZXJhZ2Ugc3VwcG9ydCBmb3IgRnJlZUJTRDUKCjIwMDUtMDQtMjcgMjA6MjIgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgV2luMzIgTVNWQzogQWJvcnQgY29tcGlsZSBpZiBhIHNwYWNlIGlzIGRldGVjdGVkIGluIHRoZSBiYXNlIGZvbGRlcgogICB3aGVuIGNvbXBpbGluZy4KCjIwMDUtMDQtMjcgMjA6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIE1hc3NpdmUgZGVidWdnaW5nIG9mIG1lbW9yeSBsZWFrcy4gIEl0IGlzIG5vdyBtZW1vcnktbGVhayBmcmVlIQoKMjAwNS0wNC0yNyAyMDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZnJlZSB0aGUgc3ViLW5hbWUgaWYgbm90IGF0dGFjaGVkIHRvIHRoZSBwYXJlbnQgc3RydWN0dXJlLgoKMjAwNS0wNC0yNyAxODo1NSAgYWxleF9iCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ3lnd2luOiBSZXBsYWNlIFBJRF9aT01CSUUgcmVmZXJlbmNlcyBhcyB0aGUgZmxhZyB3YXMgcmVtb3ZlZCBmcm9tCiAgIEN5Z3dpbiBpbiBtaWQgSmFuIDIwMDUuCgoyMDA1LTA0LTI2IDE4OjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgLSBzeW5jIHNvbWUgY29tbWVudHMKICAgLSBmaXggaGFuZGxpbmcgb2YgT0lEcyBpbiByb3dfY29weSBjb2RlLCBub3RlZCBvbiBJUkMgYnkgZGF2ZWpfCgoyMDA1LTA0LTI1IDEyOjMyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgdXBkYXRlIHRhYmxlX2l0ZXJhdG9yIHRvIHVzZSB2YWxpZF9jb2x1bW4gaW5mbwoKMjAwNS0wNC0yMiAxMToxOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW1wcm92ZSBoYW5kbGluZyBvZiBub24taW50ZWdlci1iYXNlZCBvYmplY3RzIGluIHRhYmxlX2RhdGEgdGVtcGxhdGUgY29kZS4KCjIwMDUtMDQtMjIgMTE6MTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIElmIGFuIGluc3RhbmNlLWJhc2VkIGhhbmRsZXIgcmV0dXJucyBhbiBlcnJvciBmb3IgYSBHZXROZXh0IHJlcXVlc3QsCiAgIHdlIG5lZWQgdG8gc2tpcCBvbiB0byB0aGUgbmV4dCB2YWxpZCBpbnN0YW5jZS4KCjIwMDUtMDQtMjIgMTA6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZhaWx1cmUgdG8gY3JlYXRlIGluaXRpYWwgdXNlci4KCjIwMDUtMDQtMjEgMTI6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIGRvbid0IHRyYWNrIGRlYnVnIHN0YXRzIGJ5IGRlZmF1bHQ7IGFkZCBzdGF0cyBwcm90b3R5cGVzCgoyMDA1LTA0LTIxIDEwOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0CiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseSBwYXRjaCAxMDg1MjQzOiBBZGQgNjQtYml0IGNvdW50ZXJzIHRvIGRpc2tJT1RhYmxlCgoyMDA1LTA0LTIxIDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBpbml0IHN0YXQgcHRyIHRvIG51bGwKCjIwMDUtMDQtMjEgMTA6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIC0gc3RhdGljIGRlbGV0ZV9kdXBsaWNhdGVzIC0+IHB1YmxpYyBuZXRzbm1wX2NhbGxiYWNrX2NsZWFyX2NsaWVudF9hcmcKICAgLSB0YWJzIHRvIHNwYWNlcwoKMjAwNS0wNC0yMSAxMDoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgYWRkL3VzZSBjYWxsYmFjayBwcmlvcml0eSBtYWNyb3MKCjIwMDUtMDQtMjEgMTA6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIGFkZCBkZWJ1ZyB0b2tlbiBleGNsdXNpb24KCjIwMDUtMDQtMjEgMDk6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBza2lwIGV4Y2x1ZGVkIHRva2VucyAodGlsIG1pYiBpcyB1cGRhdGVkKQoKMjAwNS0wNC0yMCAyMzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgdXBkYXRlIGZvciBjaGFuZ2UgdG8gY3R4IGluaXQgZGVmYXVsdAoKMjAwNS0wNC0yMCAyMzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGFkZCBjb2RlIGZvciBERUZWQUxzIGluIGN0eCBpbml0CgoyMDA1LTA0LTIwIDIzOjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBkZWZhdWx0IHRvIGdlbmVyYXRlIGN0eCBpbml0CgoyMDA1LTA0LTIwIDE5OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBhZGQgbm90ZSBvbiBpbmRleCBhdHRyaWJ1dGVzIGFscmVhZHkgdGVzdGVkCgoyMDA1LTA0LTIwIDE4OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggY29tbWVudHMKICAgLSByZXZhbXAgY2hlY2tfaW5kZXhlcyB0byBkbyBiYXNpYyB2YWxpZGF0aW9uIGJlZm9yZSBjYWxsaW5nIHVzZXIgZnVuYwogICAtIGV4cGxpY2l0IG5vdCB3cml0YWJsZSBjYXNlIGZvciBpbmRleC9yZWFkLW9ubHkgdmFycyBpbiBzZXQgY29scwoKMjAwNS0wNC0yMCAxODo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgYWRkIGNvbW1lbnRzIGluIGluZGV4IGhhbmRsaW5nIGZ1bmN0aW9uIGhlYWRlcnMKCjIwMDUtMDQtMjAgMTg6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC0gcmVtb3ZlIGhhcmRjb2RlZCB0YWJsZSBuYW1lCiAgIC0gcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUKICAgLSBhZGQgc29tZSBjb21tZW50cwogICAtIGRlZmluZSBwcm90b3R5cGUgYmVmb3JlIHVzZQogICAtIGZpeCBiYWNrIGZ1bmN0aW9uIG5hbWUKICAgLSBmaXggdG9vIG1hbnkgcGFyYW1zIGZvciBmdW5jdGlvbgoKMjAwNS0wNC0yMCAxODo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG5vZGUtdmFsaWRhdGUubTJpLAogICAgIG5vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICAtIGJyZWFrIHZhbHVlIHZhbGlkYXRpb24gb3V0IG9mIHZhcmJpbmQtdmFsaWRhdGUKICAgLSBjb21wYXJlIHZhbHVlcy9sZW5ndGhzIGRpcmVjdGx5LCBpbnN0ZWFkIG9mIGNhbGxpbmcgZnVuY3Rpb24KICAgLSBkZXRlY3QvaGFuZGxlIHJhbmdlcyB0aGF0IGFyZSByZWFsbHkgc2luZ2xlIHZhbHVlcwoKMjAwNS0wNC0yMCAxODozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGZpeCBkaXJlY3RvcnkgY29weQoKMjAwNS0wNC0yMCAxNTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgZnJlZSBzdHJpbmcgcGFzc2VkIHRvIHBlcmwgYWZ0ZXIgaXQncyBwYXNzZWQKCjIwMDUtMDQtMjAgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgYWRkIHdhdGNoZWQgZXhhbXBsZQoKMjAwNS0wNC0yMCAxNDowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dhdGNoZWQuYywKICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICAtIGFkZCBleGFtcGxlIHN0cmluZyB0byBtaWIKICAgLSBhZGQgZXhhbXBsZSBvZiBhIHdhdGNoZWQgc3RyaW5nCgoyMDA1LTA0LTE5IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKCjIwMDUtMDQtMTggMTg6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQoKMjAwNS0wNC0xOCAxODoxMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgLSBmaXhlcyBmb3IgY3JlYXRlX2Zld2VyX2ZpbGVzIHNldHRpbmcKICAgLSBkZWZpbmUgdGFibGUgbmFtZSBvbmNlLCBhdCB0b3AsIGZvciBxdWlja2VyIHVwZGF0aW5nCgoyMDA1LTA0LTE4IDE4OjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAtIGFkZCB0b3AvdGFibGUgbGV2ZWwgc2h1dGRvd24gZnVuY3Rpb25zCiAgIC0gZGVmaW5lIHVzZXIgY29udGV4dAoKMjAwNS0wNC0xOCAxODoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIC0gdXNlIG5ldyBtMmNfZGF0YV9jYWNoZSB0byBkZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIGdlbmVyYXRlIGNhY2hlIGNvZGUKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0IHRhYmxlIGNvbnRhaW5lcgogICAtIG1vc3QgY2FjaGVfKiBmdW5jdGlvbnMgcmVuYW1lZCB0byBjb250YWluZXJfKjsgcmVtYWluaW5nIGNhY2hlIHZlcnNpb25zCiAgICAgY2FsbCBjb250YWluZXIgdmVyc2lvbnMKICAgLSBhZGQgdGFibGUvY29udGFpbmVyIHNodXRkb3duIGZ1bmN0aW9ucwoKMjAwNS0wNC0xOCAxODowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIG1vdmUgaW5kZXhlc19zZXQgcmVhZG1lIGhlcmUgKGZyb20gY29udGFpbmVyLWNhY2hlZCkKCjIwMDUtMDQtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgLSBxdWlldCBjb21waWxlciAoJWQgLT4gJWxkKQogICAtIHJlbW92ZSBoYXJkY29kZWQgbm9kZSBuYW1lCgoyMDA1LTA0LTE4IDE4OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgICAgLSBhbHdheXMgd3JpdGUgZGVmYXVsdHMsIHNvIG5ldyBvcHRpb25zIGFwcGVhciBmb3IgdXNlcgogICAgIC0gbmV3IG9wdGlvbnM6IGRhdGFfY2FjaGUsIGRhdGFfc3BhcnNlCiAgICAgLSBtb3JlIGludGVyYWN0aXZlIHF1ZXN0aW9uczoKICAgICAgIHNraXAgbWFwcGluZywgc3BhcnNlLCB1bmNhY2hlZCBjb250YWluZXIsIGdlbmVyYXRlIG1ha2VmaWxlL2FnZW50eAoKMjAwNS0wNC0xOCAxNzo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgdHdlYWsgZXhjbHVzaW9uIG9mIG1hcHBpbmcgZnVuY3Rpb25zCgoyMDA1LTA0LTE4IDE3OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaToKCiAgIG5ldyBtMmkgdG8gc2F2ZSBhbGwgdGFibGUgZGVmYXVsdHMKCjIwMDUtMDQtMTggMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICAtIHJldmFtcCBkZWZhdWx0cyBoYW5kbGluZwogICAgIC0gZ2VuZXJhdGUgZGVmYXVsdHMgaW4gdG9wLCBpbnN0ZWFkIG9mIHNldHVwX3RhYmxlCiAgICAgLSBhbHdheXMgd3JpdGUgZGVmYXVsdHMsIHNvIG5ldyBvcHRpb25zIGFwcGVhciBmb3IgdXNlcgoKMjAwNS0wNC0xOCAxNzo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIC0gY2hlY2sgZm9yIGJhZCBoZHIgbGVuCiAgIC0gZG9uJ3QgZnJlZSBOVUxMIHB0cgoKMjAwNS0wNC0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gdXNlIG5hbWVkIHZhcnMgaW5zdGVhZCBvZiBwb3NpdGlvbmFsLCBmb3IgY2xhcml0eQogICAtIHR3ZWFrcyB0byBjb3B5IHVwZGF0ZWQgZGVmYXVsdHMgZmlsZXMKCjIwMDUtMDQtMTUgMTc6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliLmg6CgogICBhZGQgY29uZmlnX2FkZF9taWIKCjIwMDUtMDQtMTQgMTg6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDUtMDQtMTQgMTc6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3ZlIGdlbmVyYXRpb24gb2YgZW1wdHkgaW5jbHVkZXMgb3V0c2lkZSBvZiBhZ2VudCBlbmFibGVkIGNvbmRpdGlvbmFsCgoyMDA1LTA0LTEzIDIyOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpOgoKICAgdXBkYXRlIHBhcmFtZXRlciBuYW1lcyB0byBiZSBpbmxpbmUgdy9ldmVyeW9uZSBlbHNlCgoyMDA1LTA0LTEzIDIyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBnZW5lcmF0ZSBpbmRleCBjaGVjayByb3V0aW5lcyBpZiB0YWJsZSBwZXJzaXN0ZW50IGlzIHNldAogICAtIGRvbid0IHJlZmVybmNlIHNldF9jb2x1bW5zIHVubGVzcyB0YWJsZSBzZXR0YWJsZQogICAtIGRvbid0IGNoZWNrL2luc2VydCBuZXcgcm93cyB1bm5sZXNzIHJvdyBjcmVhdGlvbiBpcyBzZXQKCjIwMDUtMDQtMTMgMjI6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtZGF0YS1zZXQubTJjCiwgcGFyZW50LXNldC5tMmk6CgogICAtIGdlbmVyYXRlIGluZGV4IGNoZWNrIHJvdXRpbmVzIGlmIHRhYmxlIHBlcnNpc3RlbnQgaXMgc2V0CiAgIC0gbW92ZSBpbmRleCBjaGVjayBmdW5jdGlvbnMgdG8gZGF0YSBhY2Nlc3MgZmlsZSBzbyB0aGV5IGNhbiBiZSB1c2VkIGJ5CiAgICAgdGhlIHBlcnNpc3RlbmNlIHJvdXRpbmVzCgoyMDA1LTA0LTEzIDA5OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaCwgaXAtbWliLmgKOgoKICAgYWRkIGFwcHJvcHJpYXRlIG1pYnMgdG8gZGVmYXVsdCBsb2FkIGxpc3QKCjIwMDUtMDQtMDggMTA6MzggIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hhbmdlIGluZGV4IGFuZCByaW5kZXggZGVmaW5lcyBmb3IgTWluR1cgdG8gZml4IGNvbXBpbGUgcHJvYmxlbS4KCjIwMDUtMDQtMDcgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBzeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGFkZCBhcGkgZm9yIHJlZmVyZW5jZSBjb3VudGluZwogICAtIGFkZCBhcGkgdG8gZmluZCByb3cgZnJvbSB0YWJsZSBtaWIgaW5kZXggc3RydWN0CgoyMDA1LTA0LTA3IDE4OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGFzcyBpbiBoaW50IHRvIGdldF9maXJzdCBpZiBzb3J0ZWQgKHN1Z2dlc3RlZCBieSBNaWtlIFRoYXRjaGVyIG9uIGNvZGVycykKCjIwMDUtMDQtMDcgMTM6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBkb24ndCBkaXNhYmxlIGFsbCBmaWxlbG9ncyB3aGVuIGEgbmV3IG9uZSBpcyBlbmFibGVkLgogICAtIGFnYWluIHdpdGggdGhlIEMrKyBjb21tZW50cywgc28gdGhpcyBpcyByZS10aG91Z2h0IGJlZm9yZSA1LjMKCjIwMDUtMDQtMDYgMTI6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBleGNsdWRlIGN2cyBJZCBsaW5lcyBmcm9tIGRpZmYKCjIwMDUtMDQtMDYgMTE6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZW1vdmUgZXh0cmFuZW91cyA7CgoyMDA1LTA0LTA2IDExOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWRkIG1pc3NpbmcgY29tbWVudCBjbG9zZQoKMjAwNS0wNC0wNiAxMToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgLSBhZGQgZnVuY3Rpb24gdG8gZ2V0IGNvbnRhaW5lciBzaXplCiAgIC0gdHJhY2sgdGFibGUgbGV2ZWwgZGlydHkgZmxhZyBmb3Igc2V0dGFibGUgdGFibGVzCiAgIC0gY2hlY2sgZGlydHkgJiBzdWNjZXNzIHRvIGNhbGwgc25tcF9zdG9yZSBmb3Igc2V0dGFibGUgcGVyc2lzdGVudCB0YWJsZXMKCjIwMDUtMDQtMDUgMTI6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gdXBkYXRlIGludGVyYWN0aXZlIHNldHVwIHRvIHByb21wdCBmb3IgcGVyc2lzdGVudCBzdG9yZQoKMjAwNS0wNC0wNSAxMjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jOgoKICAgcmVtb3ZlIG9sZCBjb2RlIG5vdCB1c2VkIGZvciB0aGUgY29udGFpbmVyIHZlcnNpb24KCjIwMDUtMDQtMDUgMTI6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtcGVyc2lzdGVuY2UubTJpLCBtZmQtdG9wLm0yYwo6CgogICAtIG1vdmUgcGVyc2lzdGVudCBzdG9yZSBjb2RlIHRvIGl0cyBvd24gZmlsZQogICAtIHVwZGF0ZSBpbnRlcmFjdGl2ZSBzZXR1cCB0byBwcm9tcHQgZm9yIHBlcnNpc3RlbnQgc3RvcmUKICAgLSBtb3ZlIHNob3VsZF9zYXZlKCkgb3V0IG9mIGludGVyZmFjZSBjb2RlLCBpbnRvICpUYWJsZS5jCiAgIC0gbG9nIGVycm9yIGlmIG5vIGNvbHVtbnMgZm91bmQgZHVyaW5nIHJlc3RvcmUKCjIwMDUtMDQtMDQgMTU6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA1LTA0LTA0IDE0OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgY2xlYXIgZHVwbGljYXRlcyBzbyB0aGV5IGFyZW4ndCBkb3VibGUtZnJlZWQKCjIwMDUtMDQtMDEgMTM6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXB0cmFwZC1pbml0LmQ6CgogICBuZXcgc3RhcnR1cCBzY3JpcHQKCjIwMDUtMDQtMDEgMDM6MDYgIG5iYQoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlCgoyMDA1LTAzLTMxIDE5OjA2ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKCjIwMDUtMDMtMzEgMTg6MjIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgbWVudGlvbiBBRVMgdG9vCgoyMDA1LTAzLTMxIDE3OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBjYWxsIHNubXBfc2h1dGRvd24KCjIwMDUtMDMtMzEgMTc6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBhZGQgcmVzdWx0IGNvZGUgdG8gc25tcF9sb2cgbWVzc2FnZQoKMjAwNS0wMy0zMSAxNzozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhMi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldDIuaDoKCiAgIFRoZSBuZXcgZGF0YSBhbmQgZGF0YXNldCBoZWxwZXIgaW1wbGVtZW50YXRpb25zIGJyZWFrIG9sZGVyIGNvZGUgYW5kCiAgIHRodXMgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAgICAgLSBNYXJrIHRoZSBvbGQgZGF0YSBhbmQgZGF0YXNldCBpbXBsZW1lbnRhdGlvbnMgYXMgb2Jzb2xldGUgYnV0IHJlc3RvcmUKICAgICAgIHRoZW0gZnJvbSBwcmV2aW91cyBDVlMgdmVyc2lvbnMuICBSZWZlcmVuY2UgdGhlIG5ldyBvbmVzIGluIHRoZSBkb2NzCiAgICAgICBmb3IgdGhlIG9sZCBvbmVzLgogICAgIC0gQ3JlYXRlIG5ldyBkYXRhMiBhbmQgZGF0YXNldDIgdmVyc2lvbnMgd2hpY2ggYXJlIHRoZSBuZXcgY29udGFpbmVyCiAgICAgICBpbXBsZW1lbnRhdGlvbnMuCiAgICAgLSBNYWtlIHRoZSBjdXJyZW50IGRhdGFzZXQgaW1wbGVtZW50YXRpb25zIHVzZSB0aGUgbmV3ZXIgdmVyc2lvbi4KICAgICAgIC0gZXhjZXB0IHRoZSB0YWJsZSBhbmQgYWRkX3JvdyBpbXBsZW1lbnRhdGlvbnMgd2hpY2ggYnJva2UKICAgICAgICAgZW50aXJlbHkgdW5kZXIgdGhlIG5ldyBjb2RlLgoKMjAwNS0wMy0zMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcm93IGNyZWF0aW9uIGZvciB2YWNtIGZhbWlseSB0cmVlIHJvd3MgdGhhdCBhcmUgYmVuZWF0aCBhIHBhcmVudCByb3cuCgoyMDA1LTAzLTMwIDE4OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIC0gYWRkIGRlYnVnCiAgIC0gZG9uJ3QgYXNzZXJ0IG9uIGNvbmRpdGlvbiBmb3IgbmV4dC9idWxrCiAgICAgLSB0aGUgd2hvbGUgbW9kZSBjb3VudGluZyBpZGVhIG5lZWRzIHJlLXRoaW5raW5nLi4KICAgLSB1c2UgU05NUF9GUkVFIGluc3RlYWQgb2YgZnJlZSwgbm93IHRoYXQgbnVsbCBwdHJzIGFyZSBhIHBvc3NpYmlsaXR5CgoyMDA1LTAzLTMwIDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYwo6CgogICBydW4gaHRvbmwgb24gdGhlIGluZGV4IGFkZHJzCgoyMDA1LTAzLTI5IDIyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIEFkZCBzdGFzaF90b19uZXh0IHRvIFdJTjMyIE1TVkMgTWFrZWZpbGUgYW5kIHdvcmtzcGFjZS4KCjIwMDUtMDMtMjkgMjA6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb21tZW50IG91dCBkZWZhdWx0IGRpc2FibGUgb2Ygc3RkZXJyIGxvZywgc2luY2UgaXQgbWFrZXMgaXQgaW1wb3NzaWJsZQogICAgIHRvIHVzZSBzdGRvdXQvc3RkZXJyIGZvciBsb2dnaW5nIChub3cgdGhhdCBsb2ctPmVuYWJsZWQgaXMgY2hlY2tlZCkuIHVzZQogICAgIEMrKyBjb21tZW50cywgc2luY2UgdGhlIHdob2xlIGxvZyBzZXR1cCBuZWVkcyByZS10aGlua2luZyBiZWZvcmUgNS4zLgoKMjAwNS0wMy0yOSAxNjowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeCBiYWQgZm9ybWF0IHBhcmFtZXRlcnMgdG8gc25tcF9sb2cKCjIwMDUtMDMtMjkgMTU6MDUgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL2NtdV9jb21wYXQuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRGV0ZWN0IGFuZCByZXBvcnQgaW52YWxpZCBQRFVzIHNlbnQgYXMgcmVzcG9uc2UKCjIwMDUtMDMtMjggMTU6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgY2hlY2tfYWxsX3JlcXVlc3RzX2Vycm9yIHRvIGNoZWNrIHRoZSByYyBpbiBBTEwgdmFyYmluZHMsIG5vdCBqdXN0CiAgICAgY3VycmVudCByb3cvaGFuZGxlciB2YXJiaW5kcwoKMjAwNS0wMy0yOCAxNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIGZpeCBidWcgMTE3MDYwNCBzbm1wX2Rpc2FibGVfc3RkZXJybG9nKCkgaXMgaWdub3JlZAogICAtIGNoZWMgZm9yIG51bGwgYmVmb3JlIGRlcmVmIChmaXggc25tcHRyYXBkIGNyYXNoIG5vdGVkIG9uIGlyYykKCjIwMDUtMDMtMjggMTQ6MjkgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBmaXggYWRkcmVzcyB0eXBlIGluIGluZGV4IG9pZAoKMjAwNS0wMy0yOCAxNDoyNyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJlYWxseSByZWFsbHkgY2hlY2sgZXJyb3Igc3RhdHVzIG9mIGFsbCByZXF1ZXN0cwoKMjAwNS0wMy0yNSAyMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjaGVjayBzaXplIG9mIGFycmF5IGluIGdldHRhYmxlIGJlZm9yZSBhc3N1bWluZyBpdCBoYXMgc29tZXRoaW5nIGluIGl0CgoyMDA1LTAzLTI1IDA5OjQ5ICBhbGV4X2IKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIEFkZCBoZXhPdXRwdXRMZW5ndGggdG8gbWFuIHBhZ2UuCgoyMDA1LTAzLTI0IDIyOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBwYXNzIE5VTEwgdG8gY29uZmlnIGhhbmRsZXIgcmVnLCB0byB1c2UgY3VycmVudCBhcHB0eXBlCiAgIC0gYWRkIHNlcGFyYXRvcnMgYW5kIGhlYWRlcnMgd2hlbiBzYXZpbmcgcGVyc2lzdGVudCBkYXRhCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgbmV3bGluZSBpbiBwZXJzaXN0ZW50IGRhdGEKCjIwMDUtMDMtMjQgMjI6MDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBuZXcgZW52IHZhcjogU05NUF9QRVJTSVNURU5UX0RJUgoKMjAwNS0wMy0yNCAxNjo0OCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkb24ndCBkaXNhYmxlIGNhY2hlLCBqdXN0IGZvcmNlIHJlbG9hZCBmb3IgZXZlcnkgcmVxdWVzdAoKMjAwNS0wMy0yMyAxOTo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIGFkZCBtb2R1bGUgbmFtZQoKMjAwNS0wMy0yMyAxOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gZml4IHR5cG8KICAgLSB1cGRhdGUgY29uZmlnX3JlcXVpcmUoKSBwYXRoIHRvIHNvbWV0aGluZyBiZXR0ZXIgZm9yIGNvbmZpZ3VyZQoKMjAwNS0wMy0yMyAxOTozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgcmVtb3ZlICogZnJvbSBkZWZhdWx0IGNvbnRleHQgcmVnIHR5cGUgKHR5cGVkZWYgaXMgZm9yIHN0cnVjdCwgbm90IHB0cikKCjIwMDUtMDMtMjIgMTc6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWF0Y2ggdXAgdG9kbyB3aXRoIGFjdHVhbCBnZW5lcmF0ZWQgY29kZQoKMjAwNS0wMy0yMiAxNzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaToKCiAgIGFkZCBtaXNzaW5nIHBhcmFtIHRvIHNubXBfbG9nCgoyMDA1LTAzLTE4IDE4OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc2lnbmFsIGNhbGxzIGNvbmRpdGlvbmFsIGJhc2VkIG9uIGRlZmluaXRpb24gb2Ygc2lnbmFsIChsaWtlIHNubXBkKQoKMjAwNS0wMy0xOCAxODowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBhZGQgZGVmYXVsdCAoMCkgZm9yIHNwYXJzZSB0YWJsZXMKICAgLSBvbmx5IG1rZGlyIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAtIGRvbid0IGlnbm9yZSBta2RpciBlcnJvcnMKCjIwMDUtMDMtMTggMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIG1vdmUgdGVtcCBzdG9yYWdlIGZvciBpbmRleGVzIG91dHNpZGUgb2YgZXhhbXBsZSBjb25kaXRpb25hbAoKMjAwNS0wMy0xOCAxODowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgZml4IGRlZmF1bHQgZm9yIGRhdGEgdHJhbnNpZW50IChvZmYgYnkgMSkKCjIwMDUtMDMtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBjb2x1bW5fZXhpc3RzX2ZsYWdzIGNvZGUgaWYgc3BhcnNlIHRhYmxlIG5vdCBzZXQKCjIwMDUtMDMtMTggMTg6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBmaXggZ2VuZXJhdGVkIHJvd3JlcV9jdHhfaW5pdCBwcm90b3R5cGUKCjIwMDUtMDMtMTggMTg6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaQo6CgogICBjaGFuZ2UgSU5URVJOQUxfKiBlbnVtIGRlZmluZXMgdG8gaW5jbHVkZSBjb250ZXh0ICh0YWJsZSkgbmFtZQoKMjAwNS0wMy0xOCAxNzo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGZpeCBzb21lIHR5cG9zIG5vdGVkIG9uIG1haWxpbmcgbGlzdHMKCjIwMDUtMDMtMTggMTc6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRldGVjdCBmaXJzdCBydW4gc28gd2Uga25vdyB0byBjb3B5IGdlbmVyYXRlIGRlZmF1bHRzIHRvIGN1cnIgZGlyCiAgIC0gZGlmZiBpbmRpdmlkdWFsIGZpbGVzIGluc3RlYWQgb2YgcmVjdXJzaXZlIGRpZmYgdy9leGNsdWRlcwogICAtIHVwZGF0ZXMgZm9yIG5ldyBkZWZhdWx0IGRpcmVjdG9yeSBzdHlsZSBkZWZhdWx0cwoKMjAwNS0wMy0xOCAxNzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgdGFibGUgdGVzdCBmb3IgbGFzdGNoYW5nZSBhbmQgc3RvcmFnZXR5cGUgdGMKICAgLSB0d2VhayBkb2MgY29tbWVudHMKICAgLSBkb2N1bWVudCBpZmNvbmYgYW5kIG5ldyBpZmRpcgoKMjAwNS0wMy0xOCAwNTozMSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIFRDUC1NSUIudHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIFRDUC1NSUIgdG8gUkZDIDQwMjIKCjIwMDUtMDMtMTggMDU6MzAgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgSUFOQS1pZlR5cGUtTUlCCgoyMDA1LTAzLTE4IDA1OjI2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEZpeCBhIHdhcm5pbmcgZnJvbSBCU0Qgc3lzdGVtcwoKMjAwNS0wMy0xOCAwNDo1MiAgbmJhCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgbWliMmMuY29uZi41IGlzIGEgZ2VuZXJhdGVkIGZpbGUKCjIwMDUtMDMtMTcgMDU6MzIgIG5iYQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYzoKCiAgIFVwcywgdW5pbnRlbmRlZCBwYXRjaCB1bmRvbmUKCjIwMDUtMDMtMTcgMDQ6MzAgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgQWRkIGZvcm1hdCBjaGVja2luZyB0byBjYWxscyB0byBzbm1wX2xvZywgYW5kIGZpeCB0aGUgdW5jb3ZlcmVkIGVycm9ycwoKMjAwNS0wMy0xNSAwMToxMyAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBJbmNsdWRlIHNtdXggaGVhZGVycyB3aGVuIG5lZWRlZAoKMjAwNS0wMy0xNCAxNjoxNCAgbmJhCgogICAqIGNvbmZpZ3VyZToKCiAgIFN5bmMgdG8gY29uZmlndXJlLmluCgoyMDA1LTAzLTE0IDE1OjUzICBuYmEKCiAgICogbWlicy86IElORVQtQUREUkVTUy1NSUIudHh0LCBNYWtlZmlsZS5taWIsIHJmY2xpc3QKOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSU5FVC1BRERSRVNTLU1JQgoKMjAwNS0wMy0xNCAxNTo0OCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBjb25maWd1cmUgaGVhZGVyIGFsZXJ0cyBmb3IgU29sYXJpcyA4IGFuZCA5LCBOZXRCU0QgMiBhbmQgRnJlZUJTRCA1CgoyMDA1LTAzLTA0IDE1OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICAtIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBtYWtlZmlsZQogICAtIGluZGVudGlvbiBjaGFuZ2VzCiAgIC0gZXhwbGljaXQgY2xvc2Ugb2YgZmlsZQoKMjAwNS0wMy0wNCAxNToyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldC9zZXQgdXNlciBjb250ZXh0CiAgIC0gdXNlIG5ldyByb3dfbWVyZ2UgZmlyc3QvbGFzdCBhcGkgdG8gbWFrZSBzdXJlIHByZS9wb3N0IGNhbGxlZCAxL3BlciBoYW5kbGVyCiAgIC0gYWRkIHJjIHBhcmFtIHRvIHBvc3RfcmVxdWVzdCAoeXVtLCBteSBvd24gd29yZHMgd2VyZSBkZWxpY2lvdXMpCiAgIC0gdXNlIGFzcCBzdGF0dXMsIG5vdCBzdGF0dXMgb2YgaGFuZGxlcnMgcmVxdWVzdHMsIHdoZW4gY2hlY2tpbmcgZm9yCiAgICAgc3VjY2Vzc2Z1bCByZXF1ZXN0IGNvbXBsZXRpb24KICAgLSBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgbm9uLWV4aXN0ZW50IHJvd3MgaW4gc3BhcnNlIHRhYmxlcwogICAtIGFkZCBtb3JlIGluZm8gdG8gc29tZSBkZWJ1ZyBtc2dzCiAgIC0gdXNlIFNOTVBfTk9TVUNISU5TVEFOQ0UgaW5zdGVhZCBvZiBBU05fUFJJVl9SRVRSWQogICAtIGFkZCBtb3JlIGRlYnVncyBtc2dzCiAgIC0gZG9uJ3QgY2xlYXIgc2V0IGZsYWdzIHRpbCBwb3N0IGNvbW1pdAogICAtIHJlbW92ZSByZWR1bmRhbnQgdmFyYmluZCBsZW5ndGggY2hlY2sKICAgLSB1cGRhdGUgZm9yIG5ldyBjb2x1bW4gZmxhZyBuYW1lcwoKMjAwNS0wMy0wNCAxNToxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSBmaXggdGVzdCBmb3IgZGVmYXVsdHMgaW4gb2xkIGxvY2F0aW9uCiAgIC0gYWRkIG9wdGlvbiB0byByZS1ydW4gaW50ZXJhY3RpdmUgc2V0dXAgaWYgZXhpc3RpbiBkZWZhdWx0cwoKMjAwNS0wMy0wNCAxNToxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIG5vbi1leGlzdGVudCByb3dzIGluIHNwYXJzZSB0YWJsZXMKICAgLSBhZGQgcmMgcGFyYW0gdG8gcG9zdF9yZXF1ZXN0ICh5dW0sIG15IG93biB3b3JkcyB3ZXJlIGRlbGljaW91cykKICAgLSBjaGVjayBuZXcgdmFycyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdG8gZ2VuZXJhdGUgc3VwcG9ydCBmaWxlcwogICAgIChkb3h5Z2VuLCBtYWtlZmlsZSwgc3ViYWdlbnQpCgoyMDA1LTAzLTA0IDE1OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gYWRkIGNvbW1lbnRzIG9uIG5vZGUgbGVuZ3RocwogICAtIHVwZGF0ZSBmb3IgY2hhbmdlcyBpbiB2YWx1ZSBtYXAgcmV2ZXJzZQoKMjAwNS0wMy0wNCAxNTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgLSB1cGRhdGUgQklUUyBmaWVsZHMgdG8gdXNlIGRlZmluZSBJTlRFUk5BTF8qX0ZMQUcgZGVmaW5lcywgaW5zdGVhZCBvZiBJU19TRVRfKgogICAtIGFkZCBvYnZpb3VzIG5vdGUgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBDIGJpdCBvcmRlciBhbmQgU05NUCBiaXQgb3JkZXIKICAgLSBhZGQgQklUUyBtYXBwaW5nIHRvIHJldmVyc2UgdmFsdWUgbWFwCgoyMDA1LTAzLTA0IDE1OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwgcGFyZW50LXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgY2hhbmdlIGNvbHVtbiBmbGFnIG5hbWVzIHRvIHJlZHVjZSBjb25mdXNpb24gd2l0aCBvdGhlciBkZWZpbmVkIG5hbWVzCgoyMDA1LTAzLTA0IDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhZGQgbmV3IG0yY190YWJsZV9zcGFyc2UgdG8gZGVmYXVsdHMKCjIwMDUtMDMtMDQgMTQ6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgdXNlIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4CgoyMDA1LTAzLTA0IDE0OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIG5ldyB2YXIgZm9yIGVudW0gc3VmZml4LCBzZXQgdG8gX2ZsYWcgZm9yIGJpdHMgb2JqZWN0cwoKMjAwNS0wMy0wNCAxMzoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC0gbW92ZSBJTlRFUk5BTF8qIGVudW0gbWFjcm9zIGluc2lkZSBpZmRlZnMgZm9yIFRDCiAgIC0gZ2VuZXJhdGUgSU5URVJOQUxfKiBlbnVtcyBmbGFncyBmb3IgQklUUwoKMjAwNS0wMy0wMyAxOTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzCgoyMDA1LTAzLTAzIDE5OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbmV0c25tcF9jaGVja192Yl9yYW5nZSAoY2hlY2sgdmFsdWVzLCBub3Qgc2l6ZXMpCgoyMDA1LTAzLTAzIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oOgoKICAgLSBrZWVwIHNhdmVkIHN0YXR1cyBkYXRhIGJldHdlZW4gbW9kZSBjYWxscyAoaW4gcmVxaW5mbyksIHNvIHdlIGNhbi4uCiAgIC0gYnVpbGQgYWxsIHRlbXBvcmFyeSByZXF1ZXN0IGxpc3RzIGJlZm9yZSBjYWxsaW5nIG5leHQgaGFuZGxlciwgc28gd2UgY2FuLi4KICAgLSB0cmFjayBudW1iZXIgb2YgcmVxdWVzdHMgYW5kIG51bWJlciBvZiByb3dzLCBzbyB3ZSBjYW4uLgogICAtIHByb3ZpZGUgYXBpIGZvciBsb3dlciBoYW5kbGVyIHRvIGtub3cgaWYgY3VycmVudCBjYWxsIGlzIGZvciBmaXJzdC9sYXN0IHJvdwogICAtIGxvZyBhIHdhcm5pbmcgaWYgaGFuZGxlciBmb3Igcm93IHJldHVybnMgZXJyb3IsIGJ1dCBET05UIGV4aXQgbG9vcAogICAgIC0gaWYgbG93ZXIgaGFuZGxlciByZXR1cm5zIGVyciwgcGFzcyBpdCB0byBwYXJlbnQKICAgLSBhZGQgbW9yZSBkZWJ1Z2dpbmcKCjIwMDUtMDMtMDMgMTU6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgYWRkIG9wdGlvbiB0byB3YXRjaGVkIHRpbWVzdGFtcCB0byBoYXZlIGEgcG9pbnRlciB0byBhIGRpcmVjdCB2YWx1ZQoKMjAwNS0wMy0wMiAxODo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBtb3ZlIGNvbHVtbiBiaXQgZmxhZyBtYWNyb3MgdXAgd2l0aCBjb2x1bW4gbnVtYmVyIG1hY3JvcwogICAtIGJhaWwgaWZmIG1vcmUgdGhhbiAzMiBjb2x1bW5zLiBmaXggdGhpcyBsYXRlci4uLgoKMjAwNS0wMy0wMiAxODo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgLSBkb24ndCBydW4gZXh0cmEgZmlsZSBmcm9tIHRvcDsgbW92ZSBkb3duIHNvIGNhbiBiZSBjb250cm9sbGVkIGJ5IGRlZmF1bHRzCgoyMDA1LTAzLTAyIDE4OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCBzZXR1cCBvZiBtMmNfbnZ2X3NpemVvZgoKMjAwNS0wMy0wMiAxODo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgLSByZXdvcmsgaW5pdGlhbCBjaGVja192Yl8qIGxvZ2ljLCBjaGVja2luZyBtYXhfc2l6ZSBmb3Igb2N0ZXQgc3RyaW5ncwogICAtIGZpeCByYW5nZSBjaGVja3MgZm9yIG9jdGV0IHN0cmluZ3MKICAgLSB1c2UgbTJjIGRhdGFfaXRlbSBhbmQgbm9kZSBkaXJlY3RvcnksIGVsaW1pbmF0aW5nIGEgdmFyIGZyb20gbm9kZSBzZXR1cAogICAtIHJlbW92ZSBnZW5lcmF0ZWQgY29tbWVudCBhbmQgc29tZSBjb21tZW50ZWQgb3V0IGNvbmYgc3R1ZmYKCjIwMDUtMDMtMDIgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgY2hlY2tfdmJfc2l6ZV9yYW5nZQoKMjAwNS0wMy0wMiAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICAtIG1vdmUgVE9ETyBjb21tZW50IGF3YXkgZnJvbSBsaW5rZSBsaWtlbHkgdG8gYmUgZGVsZXRlZAogICAtIGEgbG9nIG1lc3NhZ2UgaW5kaWNhdGluZyBhIG5vZGUgaXMgbm90IGltcGxlbWVudGVkCgoyMDA1LTAzLTAyIDE1OjAyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBhbGxvdyBvY3Rlc3Qgc3RyaW5nIHJlYWQgdG8gZmlsbCBidWZmZXIKICAgLSBkb24ndCBudWxsIHRlcm1pbmF0ZSBvY3RldCBzdHJpbmcgaWYgYnVmZmVyIGZ1bGwKICAgLSB3YXJuIGlmIGlucHV0IGlzIGxhcmdlciB0aGFuIGJ1ZmZlcgoKMjAwNS0wMy0wMiAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQosIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1yZWFkbWUubTJjLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBmaXggbWlzLW5hbWVkIGZ1bmN0aW9uOyBhZGQgcHJvdG8gZm9yIGNvcnJlY3QgbmFtZQoKMjAwNS0wMy0wMiAxNDoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYWxsb3cgc25tcGQuY29uZiBzbXV4IE9JRHMgdG8gYmUgdGV4dCwgbm90IGp1c3QgbnVtZXJpYwoKMjAwNS0wMy0wMiAxNDowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzCiAgICAgLSB1c2UgbmV3IHN5c09SIHJlZ2lzdHJhdGlvbiBjYWxsYmFjayBpbnN0ZWFkIG9mIGRpcmVjdCBmdW5jdGlvbiBjYWxscwoKMjAwNS0wMy0wMiAxMzo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZC9yZWdpc3RlciBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJlZy91bnJlZyBzeXNPUiBlbnRyaWVzCgoyMDA1LTAzLTAyIDEzOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIGxvZyBJTkZPIG1lc3NhZ2Ugb24gc3VjY2Vzc2Z1bCBjb25uZWN0IHRvIG1hc3RlcgogICAtIGFsd2F5cyBsb2cgcGVlcm5hbWUgb24gdW5zdWNjZXNzZnVsIGNvbm5lY3QgYXR0ZW1wdAoKMjAwNS0wMy0wMiAxMzo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFsd2F5cyBsb2cgYWdlbnR4IHBlZXIgbmFtZSBvbiBjb25uZWN0IGZhaWx1cmUKCjIwMDUtMDMtMDIgMTM6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIGxvZyBtZXNzYWdlIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgLSB1cGRhdGUgZm9yIG5ldyB2ZXJzaW9uX3N5c29pZCBsb2NhdGlvbgoKMjAwNS0wMy0wMiAxMzo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIG1vcmUgZGVidWcvZXJyb3IgbG9nIGZvciBwcm9ibGVtcyB3aXRoIGNhY2hlIGZpbGUKCjIwMDUtMDMtMDIgMTM6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMKICAgICAtIG1vdmUgdmVyc2lvbl9zeXNvaWQgaW50byB0aGUgYWdlbnQgKGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcykKICAgICAtIHVwZGF0ZSBzeXN0ZW1fbWliIGZvciBuZXcgc3lzb2lkIGxvY2F0aW9uCiAgIC0gZG9uJ3QgY2FsbCBob3N0c19jdGwgZm9yIGNhbGxiYWNrIGNvbm5lY3Rpb24KICAgLSBsb2cgYWRkcl9zdHJpbmcgZm9yIFVOS05PV04gY29ubmVjdGlvbnMKCjIwMDUtMDMtMDIgMTI6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgYWRkIGRlYnVnCgoyMDA1LTAzLTAyIDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIC0gYWRkIC14IHBhcmFtIGZvciBtYXN0ZXIgYWRkcmVzcwogICAtIGFkZCB3aW5kb3dzIFNPQ0tfKiBtYWNyb3MKCjIwMDUtMDMtMDIgMTI6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRveHlnZW4ubTJjOgoKICAgZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGNvbmYgZmlsZQoKMjAwNS0wMy0wMiAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gZml4IHNwZWMgc28gcnBtYnVpbGQgdy9wYXJhbWV0ZXJzIHNob3VsZCB3b3JrIG9rCiAgICAgLSBtYWtlIHN1cmUgcGVybCB1c2VzIFJQTSBwcmVmaXgsIGluc3RlYSBvZiBoYXJkY29kZWQgL3VzciAoY29uZmlnLCBwYXRoc3ViKQogICAgIC0gbWFrZSBzdXJlIG1ha2VpbnN0YWxsIHVzZXMgcHJvcGVyIGluY2x1ZGUgZGlyIHBhdGgKCjIwMDUtMDItMjggMDc6NTIgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEFkZGVkIFdJTjMyIGlmZGVmIGJsb2NrcyB0byBhY2NvbW9kYXRlIGNvbXBpbGluZyB0aGUgSE9TVC1SRVNPVVJDRSBtaWIgb24KICAgV2luZG93cy4KCjIwMDUtMDItMjggMDc6NTAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFdpbmRvd3MgSE9TVC1SRVNPVVJDRSBtaWIgaW1wbGVtZW50YXRpb24uIHN0cnVjdCB3aW5fc3RhdGZzIGhhcyBiZWVuIG1vdmVkCiAgIHRvIGhyX3N0b3JhZ2UuaC4KCjIwMDUtMDItMjggMDc6NDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaDoKCiAgIFdpbmRvd3MgSFIgbWliIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMi0yNyAyMjozNCAgYWxleF9iCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIHQvbWliLnQsIHQvc3RhcnRhZ2VudC5wbDoKCiAgIEFwcGx5IE1heCBCYWtlcidzIHBhdGNoIDExMTc2OTYgd2hpY2ggZml4ZXMgYSByZWdleCB0aGF0IHNwbGl0cyBhIHRhZyBmcm9tCiAgIGFuIGlpZC4gIEFsc28gYWRkZWQgYWRkaXRpb25hbCB0ZXN0cyB0byBtaWIudCB0ZXN0IHNjcmlwdC4KCjIwMDUtMDItMjYgMDc6MjEgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIFRoaXMgaXMgcGFydCBvZiB0aGUgSE9TVC1SRVNPVVJDRSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLiBocl9uZXR3b3JrLmMgd2lsbAogICBub3cgY29tcGlsZSB3aXRoIE1pbkdXIGJ1dCBtdWNoIG9mIHRoZSBmdW5jdGlvbmFsaXR5IHN0aWxsIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgoKMjAwNS0wMi0yNSAxNzo0NSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzZXQgYSBnb29kIGV4YW1wbGUgYW5kIGNhbGwgU09DS19DTEVBTlVQIGJlZm9yZSBleGl0CgoyMDA1LTAyLTI1IDE3OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDUtMDItMjUgMTc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGZpeCBwcm90b3R5cGVzLCBub3RlZCBieSBuaWVscwogICAtIGRvbid0IGdlbmVyYXRlIGRveHlnZW4gY29uZiBmaWxlCgoyMDA1LTAyLTI1IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgaWdub3JlIGN2cyBJZCB0YWdzIHdoZW4gcGVyZm9ybWFpbmcgZGlmZgoKMjAwNS0wMi0yNSAxNjo0NiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliZ3JvdXAvc211eC9zbXV4LmgsIG1pYl9tb2R1bGVzLmMsCiAgICAgc25tcF92YXJzLmM6CgogICAtIGVsaW1pbmF0ZSBsaWJuZXRzbm1wYWdlbnQgcmVmcyB0byBsaWJuZXRzbm1wbWlicwogICAgIC0gbW92ZSBtb2R1bGVfaW5pdF9saXN0IHN0dWZmIGludG8gYWdlbnQgbGlicwogICAgIC0gbW92ZSBzbXV4IGNvZGUgaW50byBhZ2VudCBsaWJzCgoyMDA1LTAyLTI1IDE2OjMxICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYWRkIGNvbnRleHQgdG8gcmVnaXN0ZXJfbWliIGRlYnVnCiAgIC0gd2FybiBpZiBwYXNzZWQgY29udGV4dCBkb2Vzbid0IG1hdGNoIHJlZ2luZm8tPmNvbnRleHROYW1lCgoyMDA1LTAyLTI1IDE2OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgcmVnaXN0ZXIgd2l0aCBjb250ZXh0LCBpZiBzcGVjaWZpZWQKCjIwMDUtMDItMjUgMTY6MTAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIGZpeCBsaWJyYXJ5IG9yZGVycyBpbiBsaW5rIGxpbmVzCiAgIC0gYWRkIHdpbmRvd3MgU09DS18qIG1hY3JvcyB0byBnZW5lcmF0ZWQgc3ViYWdlbnQKCjIwMDUtMDItMTkgMDc6MDAgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFBhcnQgb2YgdGhlIEhPU1QtUkVTT1VSQ0UgaW1wbGVtZW50YXRpb24gZm9yIFdpbmRvd3MuCgogICAqIERlZmluZWQgd2luX3N0YXRmcyBzdHJ1Y3R1cmUuCiAgICogRGVmaW5lZCBwYWdlc2l6ZSBmb3IgV2luZG93cyBhcyA0MDk2ICg0ayBpcyB3aGF0IEkgaGF2ZSBmb3VuZCB0aHJvdWdoIG15CiAgIAlyZXNlYXJjaC4gVGhlcmUgaXMgcHJvYmFibHkgYSB2YXJpYWJsZSBvciBmdW5jdGlvbiB0byBnZXQgdGhlIGluZm9ybWF0aW9uCiAgIAlvbiBXaW5kb3dzIGJ1dCBJIGhhdmUgbm90IGZvdW5kIGl0IHlldC4pCiAgICogQWRkZWQgZnVuY3Rpb25zIHdpbl9zdGF0ZnMoKSBhbmQgd2luX3JlYWxwYXRoKCkuCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBLaWxsaW5nIHdhcm5pbmdzCgoyMDA1LTAyLTE2IDE2OjQ4ICBuYmEKCiAgICogbWlicy86IE5FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIE5FVC1TTk1QLUVYVEVORC1NSUIudHh0CiwgTkVULVNOTVAtVEMudHh0OgoKICAgc21pbGludCdpbmcKCjIwMDUtMDItMTUgMTE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSW1wbGVtZW50IHByb3BlciBTRVQgc3VwcG9ydCBmb3IgbnNFeHRlbmRSdW5UeXBlLgoKMjAwNS0wMi0xMiAwODo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgTW92ZSB2YXJpYWJsZSB1bnVzZWQgd2hlbiA8cGljbC5oPiB1bmF2YWlsYWJsZSBmb3IgU29sYXJpcwoKMjAwNS0wMi0xMiAwODozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmM6CgogICBGaXggd2FybmluZ3MKCjIwMDUtMDItMTIgMDg6MDcgIG5iYQoKICAgKiBhZ2VudC86IGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy93YXRjaGVyLmMsCiAgICAgbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgU29sYXJpcyBnY2MgLW02NCBmaXhlcwoKMjAwNS0wMi0xMiAwNjo0MiAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIE1vcmUgZGV0YWlscyB3aGVuIHJlc3BvbnNlIGZhaWxzLiBHb29kIGZvciBsb2NhdGluZyA2NC1iaXQgcHJvYmxlbXMKCjIwMDUtMDItMTIgMDU6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEyIDA1OjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgSW50ZWdyYXRlIGZpeGVzIGZyb20gTmV0QlNEIHBvcnQKCjIwMDUtMDItMTAgMTQ6NTMgIG5iYQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBGaXggbWlzbGVhZGluZyBjb21tZW50LiBUaGFua3MgdG8gYnVnIDEwODY4NzAKCjIwMDUtMDItMTAgMTM6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdWRlIHN5c2xvZy5oIGFsc28gaWYgbm90IHVzaW5nIGxpYndyYXAKCjIwMDUtMDItMTAgMTM6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEZpeCBzeXNJT1Jhd1NlbnQvUmVjZWl2ZWQgd2hpY2ggYXJlIHJldmVyc2VkIGZvciBMaW51eC4gQnVnIDExMDI1MTgKCjIwMDUtMDItMTAgMTA6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEZpeCBGcmVlQlNEIG1lbW9yeSBsZWFrLCB0aGFua3MgdG8gSm9obiBTZWxsZW5zLCBidWcgMTEwMzY0NAoKMjAwNS0wMi0xMCAwODoxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTEwIDA3OjM1ICBuYmEKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xMCAwNzoyMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYW4gZXh0cmFuZW91cyBuZXdsaW5lIGVuZGluZyBoZXhzdHJpbmdzCgoyMDA1LTAyLTA5IDE2OjM0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBGaXggYmFkIGluZGV4LCBwb2ludGVkIG91dCBpbiBidWcgMTExNjY1MgoKMjAwNS0wMi0wOSAxNjozMCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggYSBiYWQgZXJyb3IgbWVzc2FnZQoKMjAwNS0wMi0wOSAxNjoyNSAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgd2FybmluZ3MKCjIwMDUtMDItMDkgMTY6MTUgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzCgoyMDA1LTAyLTA5IDE2OjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIEFub3RoZXIgaHVudCBmaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMDkgMTQ6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBBZGQgc29tZSBtaXNzaW5nIGNvbnN0LW5lc3MgZm9yIHBhcmFtZXRlcnMKCjIwMDUtMDItMDggMTY6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYwosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwosIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgRml4IGEgYnVuY2ggb2YgdHJpdmlhbCB3YXJuaW5ncwoKMjAwNS0wMi0wOCAxNTowNiAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIFNNVVgtTUlCLnR4dCwgaWFuYWxpc3QKLCByZmNsaXN0LCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb25zCgoyMDA1LTAyLTA4IDE0OjU0ICBuYmEKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgRml4ZXMgdG8gYWxsb3cgaXQgdG8gcGFzcyBzbWlsaW50CgoyMDA1LTAxLTI3IDIyOjUyICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRpc2FibGUgY2FjaGluZyBzaW5jZSBvdGhlciBjb2RlIG1vZGlmaWVzIHVuZGVybHlpbmcgZGF0YQoKMjAwNS0wMS0yNSAxNjoyNCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgbm90ZSBvbiBjdnMyY2wgd29ya2Fyb3VuZCwgYWRkIG5vdGUgb24gaG93IHRvIGdldCBjdXJyZW50IHZlcnNpb24KCjIwMDUtMDEtMjUgMDg6NTEgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBGaXggbWlzbmFtZWQgcm93IHN0cnVjdHVyZS4KCjIwMDUtMDEtMjIgMTY6NDkgIGFsZXhfYgoKICAgKiBsb2NhbC9GQVEySFRNTCwgbG9jYWwvaHRtbC1hZGQtaGVhZGVyLWZvb3Rlci5wbCwKICAgICBtYW4vbWFrZV9pbmRleC5wbCwgbWFuL21hbl9zZWN0aW9ucy50eHQsCiAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9tYWtlaHRtbC5wbDoKCiAgIFVwZGF0ZWQgc2NyaXB0cyBldGMgZm9yIGdlbmVyYXRpbmcgd2ViIGNvbnRlbnQuCgoyMDA1LTAxLTIyIDE1OjM4ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBXaW4zMiByZWdpc3RyeSBkb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cwoKMjAwNS0wMS0yMiAxMDo0MiAgd2FzbWl0aDMyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBBZGRlZCBjb3VudF91c2VycyBmdW5jdGlvbmFsaXR5IGZvciBXaW5kb3dzLiBUaGUgZnVuY3Rpb24gY3VycmVudGx5IHJldHVybnMKICAgMCBmb3IgYSBmYWlsZWQgY2FsbCB0byBOZXRXa3N0YUdldEluZm8oKSBhbmQgbWF5IHJlcXVpcmUgbW9yZSBlcnJvciBjaGVja2luZwogICBvbiBXaW5kb3dzIHN5c3RlbXMgdG8gcmV0dXJuIGEgY29ycmVjdCB2YWx1ZSBmb3IgZmFpbHVyZS4KCjIwMDUtMDEtMjEgMTE6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICBVc2UgdGhlIChuZXcpIHRhYmxlX2RhdGFzZXQgaXRlcmF0b3IgQVBJIHJvdXRpbmVzLAogICByYXRoZXIgdGhhbiB0aGUgaW50ZXJuYWwgZmllbGRzIGRpcmVjdGx5LgoKICAgKEkgd29uZGVyIGhvdyBtYW55IG1vcmUgYml0cyBJIGJyb2tlPykKCjIwMDUtMDEtMjEgMDU6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jOgoKICAgRG9uJ3QgYmUgc3VjaCBhbiBpbXBhdGllbnQgY2hpbGQsIERhdmUhICBJZiBJJ3ZlCiAgIHRvbGQgeW91IG9uY2UsIEkndmUgdG9sZCB5b3UgYSB0aG91c2FuZCB0aW1lczoKCiAgIFRpZHkgdXAgcHJvcGVybHkgYWZ0ZXIgb25lIHJlcXVlc3QgYmVmb3JlIHN0YXJ0aW5nIG9uIHRoZSBuZXh0LgoKICAgPHNoYWtlcyBoZWFkIHNvcnJvd2Z1bGx5PgogICBTb21lIHBlb3BsZSEgLSBJIGJsYW1lIHRoZSBwYXJlbnRzLi4uLi4KCjIwMDUtMDEtMjAgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgUmUtaW1wbGVtZW50ICd0YWJsZV9kYXRhJyB1c2luZyB0aGUgJ3RhYmxlX2NvbnRhaW5lcicgaGVscGVyLgogICBUaGUgdHdvIGFyZSBhbG1vc3QgaWRlbnRpY2FsIGluIGJlaGF2aW91ciBhbnl3YXkgLSBqdXN0IHdpdGgKICAgZGlmZmVyZW50IGV4cGVjdGF0aW9ucyBvdmVyIHRoZSBmb3JtYXQgb2YgYSBwZXItcm93IHN0cnVjdHVyZS4KCjIwMDUtMDEtMjAgMDk6MDkgIGR0czEyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgVXNlIHRoZSAobmV3KSB0YWJsZV9kYXRhc2V0IGl0ZXJhdGlvbiBBUEksCiAgIHJhdGhlciB0aGFuIGZpZGRsaW5nIHdpdGggdGhlIGludGVybmFsIGltcGxlbWVudGF0aW9uLgoKMjAwNS0wMS0yMCAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBQcm92aWRlIGEgY2xlYW4gQVBJIGZvciB3YWxraW5nIHRocm91Z2ggdGhlIHJvd3Mgb2YgYSB0YWJsZQogICAoUmF0aGVyIHRoYW4gcmVseWluZyBvbiBhIHBhcnRpY3VsYXIgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24pLgoKMjAwNS0wMS0yMCAwOTowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBUaGUgQVBJIGZvciBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHJvd3Mgd2FzIGNvbmZ1c2luZ2x5CiAgIG5hbWVkLCBhbmQgbm90IGFjdHVhbGx5IGRlY2xhcmVkIGluIHRoZSBoZWFkZXIgZmlsZS4KICAgSW50cm9kdWNlIGEgbW9yZSBzZW5zaWJsZSB2ZXJzaW9uLgoKMjAwNS0wMS0xOSAwOToxNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgV2Ugc2VlbSB0byBoYXZlIGFuIGluY29uc2lzdGVudGx5IG5hbWVkIEFQSSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQKICAgaXMgYmVpbmcgZGVmaW5lZCBpbmxpbmUgb3Igbm90LiAgVGhpcyBkb2VzIG5vdCBmZWVsIGxpa2UgYSBHb29kIElkZWEuCiAgIEVuc3VyZSB0aGF0IHRoZSBzYW1lIG5hbWVzIHdvcmssIHJlZ2FyZGxlc3Mgb2YgaW5saW5pbmcuCiAgIChUaGF0IGludHJvZHVjZXMgYSBjZXJ0YWluIGR1cGxpY2F0aW9uIG9mIGNvZGUsIGJ1dCBzdWNoIGlzIGxpZmUpCgoyMDA1LTAxLTEzIDExOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBOZXdlciBJUC1GT1JXQVJELU1JQiBmcm9tIGFuIElEIHNldCB0byBiZWNvbWUgYW4gUkZDCgoyMDA1LTAxLTEzIDExOjI0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVAtRk9SV0FSRC1NSUIudHh0LCBJQU5BLVJUUFJPVE8tTUlCLnR4dCwKICAgICBNYWtlZmlsZS5pbjoKCiAgIE5ld2VyIElQLUZPUldBUkQtTUlCIGZyb20gYW4gSUQgc2V0IHRvIGJlY29tZSBhbiBSRkMKCjIwMDUtMDEtMTIgMTE6NTAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQcm92aWRlIGEgbWVhbnMgZm9yIHNubXB0cmFwZCB0byByZXBvcnQgL2V0Yy9ob3N0cy57YWxsb3csZGVueX0KICAgc3R5bGUgYWNjZXNzIGNvbnRyb2wgYWN0aXZpdHkuCiAgIFRoaXMgc2hvdWxkIHBlcmhhcHMgYmUgbG9nZ2VkIHZpYSAnc25tcF9sb2cnIChjLmYgYWdlbnQvc25tcF9hZ2VudC5jKQogICBidXQgSSBzZWVtIHRvIHJlY2FsbCBwcm9ibGVtcyB3aXRoIGR1cGxpY2F0ZSBzeW1ib2xzLiAgQnV0IGEgZGVidWcKICAgbWVzc2FnZSBzaG91bGQgYmUgc2FmZSBlbm91Z2guLi4uCgoyMDA1LTAxLTEyIDExOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGRlZmluZSBzZXRQZXJyb3JzdGF0dXMgdW50aWwgcHJvcGVyIGZpeCBpbXBsZW1lbnRlZAoKMjAwNS0wMS0xMiAwOTo0MyAgYWxleF9iCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gUGhpbGlwIFcgR2lsbGlzIGFuZCBEYW5pZWwgS2VybnMgZm9yIHdpbjMyIGdldGVudiBjcmFzaC4KCjIwMDUtMDEtMTIgMDY6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBTdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2Ygc3Rhc2gtY2FjaGUgdGltZW91dHMsIGJvdGggYXQKICAgcmVnaXN0cmF0aW9uIGFuZCB2aWEgdGhlIE5FVC1TTk1QLUFHRU5ULU1JQjo6bnNDYWNoZVRhYmxlLgogICAoRG9uJ3QgbXVjaCBsaWtlIHRoZSBBUEkgbmFtZXMsIHRob3VnaCAtIGltcHJvdmVkIHN1Z2dlc3Rpb25zCiAgIGdyYXRlZnVsbHkgcmVjZWl2ZWQpLgoKMjAwNS0wMS0xMiAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgVXNlIHRoZSBzdGFuZGFyZCBjYWNoZSBoZWxwZXIsIHJhdGhlciB0aGFuIGhhbmRsaW5nIHRoaXMgaW50ZXJuYWxseS4KCjIwMDUtMDEtMTIgMDY6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgTWFrZSB0aGUgaGFuZGxlciBjaGFpbiBpbmZvcm1hdGlvbiBhdmFpbGFibGUgdG8gdGhlIGNhY2hlIGxvYWQgcm91dGluZS4KICAgKEFuZCBmaXggYSBicm9rZW4gZGVidWcgbWVzc2FnZSkKCjIwMDUtMDEtMTIgMDU6MTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBJbmNsdWRlIHRoZSBuZXcgJ3N0YXNoX3RvX25leHQnIGhlbHBlciBpbiB0aGUgaGVscGVyIGxpYnJhcnkuCgoyMDA1LTAxLTExIDEwOjExICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmgsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYwo6CgogICBBdXRvbWF0aWNhbGx5IGluamVjdCB0aGUgc3Rhc2hfdG9fbmV4dCBoZWxwZXIgYXQgcmVnaXN0cmF0aW9uLAogICByYXRoZXIgdGhhbiBkeW5hbWljYWxseSBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nLgogICAoV2UgbXVzdCB0cnkgdG8ga2VlcCBvdXIgYmVsb3ZlZCBsZWFkZXIgaGFwcHkgYW5kIGNvbnRlbnQgYW5kIHVuc3VzcGVjdGluZy4uLi4pCgoyMDA1LTAxLTExIDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBTdXBwb3J0IHRoZSBpbmplY3Rpb24gb2YgYSBoYW5kbGVyIHN1Yi1jaGFpbgogICAocmF0aGVyIHRoYW4ganVzdCBhIHNpbmdsZSBoYW5kbGVyKQoKMjAwNS0wMS0wOSAxMTozMSAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgY29uZmlnLmggLT4gbmV0LXNubXAtY29uZmlnLmgKCjIwMDUtMDEtMDggMTA6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJlYWQvY3JlYXRlIGRlZmF1bHQgZmlsZXMgZnJvbS9pbiBzdWJkaXIKCjIwMDUtMDEtMDggMTA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXJlYWRtZS5tMmM6CgogICByZWFkL2NyZWF0ZSBkZWZhdWx0IGZpbGVzIGZyb20vaW4gc3ViZGlyCgoyMDA1LTAxLTA4IDA3OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW5hbWUgc29tZSBvZiB0aGUgbmV3IHBlcnNpc3RlbnQgZnVuY3Rpb25zL3ZhcnMKICAgLSBmaXggbGVuZ3RoIGhhbmRsaW5nIGZvciBCSVRTCiAgIC0gdXNlIHN0YWNrIGZvciBsaW5lIGJ1ZmZlcgogICAtIGFkZC90d2VhayBzb21lIGRlYnVnIG1zZ3MKCjIwMDUtMDEtMDcgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0Lmg6CgogICBFeHRlbmQgdGhlIGFwcGxpY2FiaWxpdHkgb2YgV2VzJyAic3Rhc2hfY2FjaGUiIGhlbHBlciwgYnkKICAgYXV0b21hdGljYWxseSBjb252ZXJ0aW5nIGEgR0VUU1RBU0ggcmVxdWVzdCBpbnRvIGEgR0VUTkVYVAogICB3YWxrIGZvciB0aG9zZSBjaGFpbnMgdGhhdCBkb24ndCBzdXBwb3J0IHRoaXMgbW9kZSBkaXJlY3RseS4KICAgKEFuZCBwcm92aWRlIGEgd2F5IGZvciBjaGFpbnMgdGhhdCBkbywgdG8gc2F5IHNvISkKCjIwMDUtMDEtMDcgMDQ6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgVXNlIG5ldHNubXBfY2hlY2tfdmJfdHlwZSBmb3IgY2hlY2tpbmcgU0VUIHJlcXVlc3RzLgoKMjAwNS0wMS0wNiAxMjozMyAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3QgcGVyc2lzdGVuY2Ugc3VwcG9ydCBmb3IgbWZkCgoyMDA1LTAxLTA2IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBhZGQgaW5jbHVkZSB0byBxdWl0ZSB3YXJuaW5nCiAgIC0gYWRkIHBlcnNpc3RlbmNlCgoyMDA1LTAxLTA2IDEyOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGNvbmRpdGlvbiBvbiBwcm90b3R5cGUgZ2VuIG5vdyB0aGF0IGZ1bmN0aW9uIGlzIGFsd2F5cyBnZW5lcmF0ZWQKCjIwMDUtMDEtMDYgMTA6MTYgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbWVudGlvbiBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzCgoyMDA1LTAxLTA2IDEwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMgKGRvZXMgbm90IGV4Y2x1ZGUgc2V0IHByb2Nlc3NpbmcgY29kZSAtIHlldCkKCjIwMDUtMDEtMDYgMTA6MDggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDUtMDEtMDYgMDk6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzZXQgcmVxdWVzdHMgKGRvZXMgbm90IGV4Y2x1ZGUgc2V0IHByb2Nlc3NpbmcgY29kZSAtIHlldCkKCjIwMDUtMDEtMDYgMDk6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICByZW1vdmUgY29uZGl0aW9uYWwgZm9yIHZhciBkZWNsLCBzaW5jZSB1c2UgaXNuJ3QgY29uZGl0aW9uYWwKCjIwMDUtMDEtMDYgMDk6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIGFkZCBjb21tZW50IG9uIGhvdyB0byBkaXNhYmxlIGNhY2hpbmcKCjIwMDUtMDEtMDYgMDk6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmk6CgogICAtIGFkZCBtaXNzaW5nICUgc3BlYyBpbiBsb2cgbXNnCiAgIC0gZ2VuIGNvZGUgdG8gY29weSB2YWx1ZSBvbmNlIGFkZHJUeXBlIGlzIGtub3duCgoyMDA1LTAxLTA1IDE3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGluaXQgbWlicyBiZWZvcmUgc25tcCBzbyBjb25mIGZpbGUgcmVnaXN0cmF0aW9ucyB3b3JrCgoyMDA1LTAxLTA1IDE1OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgYWx3YXlzIGdlbmVyYXRlIHJvdyB1bmRvX3NldHVwL3VuZG9fY2xlYW51cAoKMjAwNS0wMS0wNSAxMDoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjYXNlIGxhYmVsIHRvIG1hdGNoIGxhYmxlbCBnaXZlbiBpbiB1c2FnZSBtc2cKCjIwMDUtMDEtMDMgMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjb21tZW50IG91dCBvdmVycmlkZSBjaGVja3Mgd2hlcmUgd2UgZG9uJ3QgaGF2ZSB0aGUgaW50ZXJmYWNlIG5hbWUKCjIwMDUtMDEtMDIgMjA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVjb2duaXNlIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBhcyBwcmludGFibGUuCgoyMDA1LTAxLTAyIDIwOjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBPbmx5IGlzc3VlICJhY2Nlc3MgY29udHJvbCBub3QgY29uZmlndXJlZCIgd2FybmluZyBmb3IgdGhlIGFnZW50CiAgIChub3Qgc25tcHRyYXBkKQoKMjAwNS0wMS0wMiAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBUT0RPIGl0ZW0gZm9yIGNvZGUgaW4gaW50ZXJmYWNlcyBmaWxlCgoyMDA1LTAxLTAyIDE4OjI0ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBkb24ndCBiaW5kIGxvY2FsIHRyYXBzaW5rcyB0byBsb2NhbGhvc3QgaWYgY2xpZW50QWRkciBpcyBzZXQKCjIwMDQtMTItMzEgMDk6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBjb21tZW50IGNsYXJpZmljYXRpb24KCjIwMDQtMTItMjggMTg6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIGZpeCBsb2dpYyBmb3IgbWZkIHRhYmxlIHRlc3QKCjIwMDQtMTItMjggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB1cGRhdGUgcmZjIHJlZmVyZW5jZQoKMjAwNC0xMi0yOCAxNjowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gZG9uJ3QgcmVnaXN0ZXIgcm9ubHkgaGFuZGxlcnMgYXMgUldSSVRFCiAgIC0gYWRkIG1pc3NpbmcgbmV0c25tcF9yZWdpc3Rlcl9pbnRfaW5zdGFuY2VfY29udGV4dAoKMjAwNC0xMi0yOCAxNTo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdXNlIG1hY3JvIGNvbnN0YW50cyBmb3IgcmV0dXJuIHZhbHVlcywgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzCgoyMDA0LTEyLTI4IDE1OjUzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkZWJ1ZyBtc2cgdy9lcnJubyB3aGVuIHNlbmR0byBmYWlscwoKMjAwNC0xMi0yOCAxNTo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBuZXRzbm1wX2Fzc2VydCBvbiBiYWQgQVNOIGJ1aWxkCgoyMDA0LTEyLTI4IDE1OjE2ICByc3RvcnkKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBoZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gYWx3YXlzIHNwZWNpZnkgY29udGV4dCwgaWYgYXZhaWxhYmxlKSBmb3IgcmVnaXN0ZXIgY2FsbGJhY2tzCiAgICAgKHNvIGRpc2Nvbm5lY3RlZCBhZ2VudHggc3ViYWdlbnRzIHJlY29ubmVjdCB3L3Byb3BlciBjb250ZXh0KQogICAtIG1lbXNldCBzdHJ1Y3Qgb24gc3RhY2sgdG8gMAoKMjAwNC0xMi0yOCAxMjowMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBidWcgMTA0OTYwNzogbmV0LXNubXAtY29uZmlnIC0tY29tcGlsZS1zdWJhZ2VudCBicm9rZW4KCjIwMDQtMTItMjcgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBhZGQgcG9pbnRlciB0byB0dXRvcmlhbCBhbmQgY29tbWFuZGxpbmUgdG8gZ2VuZXJhdGUgcHNldWRvLXRvZG8gbGlzdAoKMjAwNC0xMi0yNSAwMDozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgYmFpbCBvbiBub24tdGFibGUgT0lEIHVudGlsIG11bHRpcGxlIHRhYmxlcyBwZXIgZmlsZSBhcmUgc3VwcG9ydGVkCgoyMDA0LTEyLTI1IDAwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBmaXggYnVnIDEwNjI5ODY6IHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBmYWlsIGFuZCBjcmFzaCBzbm1wZAoKMjAwNC0xMi0yNCAyMzo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBmaXggYnVnIDEwNzI0MDY6IGludmFsaWQgb3BlcmF0b3IgcHJlY2VkZW5jZSBpbiBvcGVuZGlyKCkKCjIwMDQtMTItMjQgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZml4IGJ1ZyAxMDg0NDEzOiBDYW4ndCBkaXNhYmxlIGZpbGUgbG9nZ2luZwoKMjAwNC0xMi0yNCAxMDozMiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBmaXggYnVnIDEwNDA3MTE6IHNubXB0cmFwZDogU0lHSFVQIGR1cGxpY2F0ZXMgdHJhcGhhbmRsZXJzIChyZXBlYXRlZGx5KQoKMjAwNC0xMi0yNCAwOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGFkZCAtcCB0byBta2RpciBwYXJtCgoyMDA0LTEyLTI0IDA5OjQyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIGhhcmRjb2RlZCBIQVZFX0lGTkFNRVRPSU5ERVggbm93IHRoYXQgY29uZmlndXJlIGNoZWNrcyBmb3IgaXQKCjIwMDQtMTItMjQgMDk6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIC0gZG9uJ3Qgb3BlbiBzdGRvdXQgdGlsIHdlIG5lZWQgaXQKICAgLSBleHBsaWNpdCBjbG9zZSBmb3Igb3BlbmVkIGZpbGUKICAgLSBjaGFuZ2UgZGVmYXVsdCB0byBhc2tpbmcgcXVlc3Rpb25zIGluc3RlYWQgb2YgdXNpbmcgZGVmYXVsdHMKCjIwMDQtMTItMjQgMDk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIC0gY2hhbmdlIGRlZmF1bHQgZm9yIGludGVyYWN0aXZlIHNldHVwIHRvIG9uCiAgIC0gZG9uJ3Qgb3ZlcnJpZGUgcmVwb3J0IHByb2dyZXNzIHZhciBpZiBhbHJlYWR5IHNldAoKMjAwNC0xMi0yMyAxNzo1NyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogRml4IGNvbXBpbGluZyB3aXRob3V0IFBTREsuCgoyMDA0LTEyLTIzIDE0OjE5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgY29tcGlsZSBmaXhlcwoKMjAwNC0xMi0yMiAxODowOSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGZpeCBidWcgMTA4ODc2NTogQWdlbnQgZmFpbHMgdG8gc2VuZCB0cmFwcyB0byByZW1vdGUgdGFyZ2V0CgoyMDA0LTEyLTIyIDE2OjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTIyIDE2OjEyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIC0gdGVzdCBmb3IgaWZfbmFtZXRvaW5kZXgKCjIwMDQtMTItMjIgMTM6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLnRocmVhZDoKCiAgIG1lbnRpb24gdGhhdCB2MyBpc24ndCB0aHJlYWQgc2FmZQoKMjAwNC0xMi0xNiAyMTowOCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGxvZyB3YXJuaW5nIG9uIGJhZCBoZXggbGVuZ3RoIChoaWdoZXIgcm91dGluZXMgZG9uJ3QgZ2V0IGVycm9yIGluZGljYXRpb24pCgoyMDA0LTEyLTE2IDIwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGlmZGVmIG91dCB2MS92MiBjb2RlIHdoZW4gYm90aCBkaXNhYmxlZAoKMjAwNC0xMi0xNiAxODoxNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLWNoZWNrIGZvciBkdXBsaWNhdGUgdGFibGUgZGVmcyBpbiBzbm1wZC5jb25mCiAgIC1tb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzCiAgIC1zdXBwb3J0IHJ1bi10aW1lIHRhYmxlcyB3aGljaCBhcmUgYXVnbWVudGF0aW9ucwogICAtbG9nIGVycm9yIGlmIHJ1bi10aW1lIHJvdyBhZGQgZmFpbHMKCjIwMDQtMTItMTYgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZXMKCjIwMDQtMTItMTYgMTQ6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBmb3IgbnVsbCB2YXIgYmVmb3JlIGRlcmVmCgoyMDA0LTEyLTE2IDE0OjU1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNhY2hlIG5leHQgcHRyIGI0IG9iamVjdCBjb3VsZCBiZSBmcmVlZAoKMjAwNC0xMi0xNiAxNDo0MiAgcnN0b3J5CgogICAqIGx0bWFpbi5zaDoKCiAgIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlIG9uIG1pc3NpbmcgbGlicmFyeQoKMjAwNC0xMi0xNiAxNDo0MCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIElOU1RBTExfUFJFRklYIHRvIHByb2dyZXNzIG1lc3NhZ2VzCgoyMDA0LTEyLTE1IDExOjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTE0IDA4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGRlbGV0ZSBleHRyYSAnOycKCjIwMDQtMTItMTQgMDY6NDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggcXVvdGluZyBvbiBldmFsIGxpbmVzCgoyMDA0LTEyLTEzIDEyOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcmVnaXN0cmF0aW9uIGxvb2t1cCBvcHRpbWl6YXRpb24gYWxsb3dpbmcgaW5jb21pbmcgcmVxdWVzdHMgdG8gbW9yZSBxdWlja2x5IHNlYXJjaCB0aHJvdWdoIHRoZSBsaW5rZWQgbGlzdCBhbmQgZG8gc2luZ2xlIGludCBjb21wYXJlcyBpbnN0ZWFkIG9mIGZ1bGwgT0lEIGNvbXBhcmVzIGZvciBtdWNoIG9mIHRoZSBzZWFyY2ggdHJlZS4gIFNob3VsZCBzaWduZmljYW50bHkgaW5jcmVhc2UgdGhlIHNlYXJjaCBzcGVlZCBmb3IgbmV3IHJlcXVlc3RzLgoKMjAwNC0xMi0xMyAxMjozNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwKICAgICBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgRkFRLCBSRUFETUUKLCBzZWRzY3JpcHQuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoKTogdmVyc2lvbiB0YWcgKCA1LjMuZGV2ICkKCjIwMDQtMTItMTMgMTI6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFkZGVkIGEgbmV3IG9pZC1jb21wYXJlIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgd2hlcmUgdGhlIE9JRHMgZGlmZmVyZWQKCjIwMDQtMTItMTMgMTI6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgYWRkIGFuIGV4dHJhIHNvcnRpbmcgdmFyaWFibGU6IG9pZF9vZmYKCjIwMDQtMTItMTMgMDg6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTItMTMgMDg6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbWlzc2luZyBlbmQgcXVvdGUKCjIwMDQtMTItMTAgMTU6MTUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciByZWNlbnQgY2hlY2tpbnMKCjIwMDQtMTItMTAgMTU6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtY29tbWVudCB0d2Vha3MKICAgLWZyZWUgdmFyYmluZCBpbmRleGVzIGJlZm9yZSBwYXJzaW5nIG5ldyBvbmVzCiAgIC1hZGQvdXNlIHByb3BlciBkYXRhX2xpc3QgZnJlZSBmdW5jdGlvbiBmb3Igcm93IHN0YXNoZXMKCjIwMDQtMTItMTAgMTQ6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBmaXggZm9yIHVzaW5nIGlmTmFtZSBmb3IgaWZEZXNjciB3aGVuIGlmRGVzY3Igbm90IGF2YWlsYWJsZQoKMjAwNC0xMi0xMCAxNDo0MSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLWZpeCBidWcgMTAzNDAwODogbWVtb3J5IGxlYWsgdXNpbmcgU0VUIGZvciB0YWJsZV9kYXRhc2V0CiAgIC1yZW1vdmUgdW5zdXBwb3J0ZCAlIHNwZWMgaW4gY29uZmlnX3B3YXJuCgoyMDA0LTEyLTEwIDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFwcGx5IHBhdGNoIDEwNTI0NjA6IGFnZW50IGRlYWRsb2NrIG9uIGV4ZWMKCjIwMDQtMTItMTAgMTM6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlhUYWJsZS9pZlhUYWJsZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmg6CgogICBhcHBseSBwYXRjaCAxMDU1MDM2OiBpZi1taWIgaW5pdCBvcmRlciBmaXgKCjIwMDQtMTItMTAgMTI6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIGFwcGx5IHBhdGNoIDEwNTcwNTc6IGlwU3lzdGVtU3RhdHNUYWJsZSBpbmRleCBmaXgsIGFkZCBpcHY2CgoyMDA0LTEyLTEwIDExOjA2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtbmV3IHRhcmdldHMgdG8gbWFrZSBhZ2VudGxpYiwgbWlibGliIG9yIGJvdGgKICAgLXJlbW92ZSBhZ2VudCBsaWIgZGVwZW5kZW5jeSBvbiBtaWIgbGliCgoyMDA0LTEyLTEwIDExOjA0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgdGFyZ2V0cyB0byBtYWtlIHNubXBsaWIsIGFnZW50LCBhbGwgb3IgaW5kaXZpZHVhbCBhcHBzCgoyMDA0LTEyLTEwIDExOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTEwIDExOjAwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLWZpeCBkaXNhYmxlIHNubXB2MmMKICAgLWFkZCBwYXJ0aWFsIHRhcmdldCBvcyB0byBtb2R1bGUgY2ZsYWdzCiAgIC1yZXN0b3JlIG1pc3NpbmcgdmFyIGluaXQgKGZpeCBjb25maWd1cmUgc2xvd2Rvd24pCiAgIC1tb3JlIGRlYnVnZ2luZwoKMjAwNC0xMi0xMCAxMDoxNSAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9zbm1wZnVuLnNoOgoKICAgZml4IHRhYmxlIGNoZWNrcyBieSBhZGRpbmcgbWlzc2luZyBudWxsIHBhcmFtZXRlcgoKMjAwNC0xMi0xMCAxMDowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgY29tbWVudCBjaGFuZ2Ugb25seS0gZG9jdW1lbnQgd2h5IHRlc3QgbWF5IG5vdCBhbHdheXMgYmUgZmFsc2UKCjIwMDQtMTItMTAgMDk6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBjb25zaXN0ZW50IHRhYmxlIG5hbWluZyBpbiBleGFtcGxlIGZsb3csIG5vdGVkIG9uIGNvZGVycyBieSBEYXZlCgoyMDA0LTEyLTEwIDA5OjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaCwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtYWRkIGZsYWcgZm9yIHJvdyBkZWxldGVkCiAgIC1pZiBubyBlcnJvcnMsIGluc2VydC9kZWxldGUgbmV3L2RlbGV0ZWQgcm93IGludG8gY29udGFpbmVyCgoyMDA0LTEyLTEwIDA5OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIGZpeCBjYXNlIG9mIG1pc3NpbmcgZ2V0IGNvZGUKCjIwMDQtMTItMTAgMDk6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHVzZSBzYW1lIGNhY2hlIHRpbWVvdXQgb24gYWxsIHBsYXRmb3JtcwoKMjAwNC0xMi0xMCAwOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggMTA1NjkyNzogNS4yLXAwMzogZnJlZWJzZCBpbnRlcmZhY2UgYnVncwogICAgIC0gZml4IGJ1ZyAxMDU1NzgxOiBnZXQtbmV4dCBmYWlscyB0byBzdGVwIGludG8gaW50ZXJmYWNlcyBncm91cCBjb3JyZWN0bHkKICAgICAtIGZpeCBidWcgMTA1Njc2MDogYWdlbnQgaWdub3JlcyBpZnNwZWVkLCB0eXBlIHNldHRpbmdzIGluIHNubXBkLmNvbmYKICAgLSBhbHNvIGZpeCBidWcgMTA1Njc2MCBmbyBIUC1VWCwgc29sYXJpcywgV2luMzIgYW5kIG90aGVycwoKMjAwNC0xMi0xMCAwODo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBhcHBseSBwYXRjaCAxMDczODk3OiBmaXggaWYtbWliIGRhdGEgYWNjZXNzIDY0Yml0IGNvdW50ZXIgd3JhcCBkZXRlY3Rpb24KCjIwMDQtMTItMDkgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGRlbGV0ZSByZW1vdmVkIHJvdyBhZnRlciB1c2VyIGNvbW1pdCBmdW5jdGlvbiBjYWxsZWQKICAgLSByZW1vdmUgcm93IGluc2VydC9kZWxldGUgaW4gdW5kbyAtIGhhbmRsZWQgaW4gY29tbWl0CgoyMDA0LTEyLTA5IDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICBjaGVjayByZXF1ZXN0cyBmb3IgZXJyb3JzIG9uIGdldCBtb2RlcyB0b28KCjIwMDQtMTItMDkgMjE6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBkb24ndCBmcmVlIG51bGwgcG9pbnRlcgoKMjAwNC0xMi0wOSAxMTo1NyAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIFNsaWdodGx5IGNsZWFuZXIgc3VtbWFyaWVzIG9mIGNvbmZpZyBmaWxlIGhhbmRsaW5nLgoKMjAwNC0xMi0wOSAxMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEFsbG93IHRoZSB0cmFwIGRhZW1vbiB0byBzcGVjaWZ5IGEgbm9uLWRlZmF1bHQgQWdlbnRYIHNvY2tldC4KCjIwMDQtMTItMDkgMTE6NTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBOZXcgdXRpbGl0eSByb3V0aW5lcyBmb3IgY2hlY2tpbmcgbWF4aW11bSAocmF0aGVyIHRoYW4gZXhhY3QpIHNpemUgbGltaXRzLgoKMjAwNC0xMi0wOSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIFVzZSB0aGUgbGVuZ3RoIHN1cHBsaWVkIGR1cmluZyByZWdpc3RyYXRpb24gd2hlbiBkZWNpZGluZyBob3cKICAgbXVjaCBvZiB0aGUgT0lEIHRvIHNraXAgYmVmb3JlIGNvbXBhcmluZyBpbnN0YW5jZSBzdWJpZGVudGlmaWVycywKICAgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIHNlY29uZC1ndWVzcyB3aGF0IHRoZSBNSUIgaW1wbGVtZW50ZXIgd2FudGVkLgoKICAgVGhlIE1mRCBmcmFtZXdvcmsgKHdoaWNoIGlzIHRoZSBvbmx5IHBsYWNlIHRoaXMgaGVscGVyIGlzIGN1cnJlbnRseQogICB1c2VkKSBhbHJlYWR5IHRha2VzIHRoZSBvYmplY3Qgc3ViaWRlbnRpZmllciBpbnRvIGFjY291bnQgd2hlbgogICBpbnNlcnRpbmcgdGhlIGhlbHBlciwgdGh1cyBkb2luZyBzbyBhZ2FpbiB3aWxsIGJyZWFrIHRoaW5ncy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjEgLT4gVjUuMgoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzIgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzoxNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHdvcmRpbmcgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0CgoyMDA0LTExLTI0IDE3OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudCBnZXRfaW5kZXhlcygpIGJ5IGV4YW1wbGUKCjIwMDQtMTEtMjQgMTc6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbnQgZ2V0dGFibGUoKQoKMjAwNC0xMS0yNCAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIENvbnZlcnQgR05VIHNwZWNpZmljIG1ha2UgaGFja3MgdG8gcG9ydGFibGUgdmVyc2lvbgoKMjAwNC0xMS0yNCAxNjo0MiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDQtMTEtMjQgMTY6NDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBVcGRhdGUgZm9yIDUuMiBhZGRpbmcgYSB0b24gb2YgbmV3IHN0dWZmCgoyMDA0LTExLTI0IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBVcGRhdGUgZm9yIDUuMgoKMjAwNC0xMS0yNCAxMDo1NSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgdXBkYXRlIGZvciA1LjIuICBBZGRlZCBhIGZldyByZWZlcmVuY2VzIHRvIHRoZSBvdGhlciBSRUFETUUgZmlsZXMKCjIwMDQtMTEtMjQgMTA6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBNYW4gcGFnZSB1cGRhdGUgZm9yIDUuMgoKMjAwNC0xMS0yNCAxMDoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB0byA1LjIKCjIwMDQtMTEtMjQgMDg6NDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc3RyaWN0IG1hbiBwYWdlIGZpeGVzIGZyb20gRXJpYyBTLiBSYXltb25kCgoyMDA0LTExLTE4IDA1OjI3ICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIGZpeCB0eXBlIG5vdGVkIG9uIGNvZGVycwoKMjAwNC0xMS0xNyAxMDoxNyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICAtIGRvY3VtZW50IGZsYWdzIHRvIHVzZSB0byBpbnN0YWxsIG92ZXIgQXBwbGUncyB2ZXJzaW9uICh3aGljaCBoYXMgYSBiYWQKICAgICBjb3B5IG9mIG5ldC1zbm1wLWNvbmZpZwogICAtIGRvY3VtZW50IGV4bHVkaW5nIHRoZSB1bnN1cHBvcnRlZCBpY21wIHRhYmxlCgoyMDA0LTExLTE3IDA2OjQ5ICBkdHMxMgoKICAgKiBBR0VOVC50eHQ6CgogICBGaXggdHlwbyBhbmQgbWlzc2luZyBjb25maWcgZGlyZWN0aXZlLCByZXBvcnRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkuCiAgIEVtcGhhc2lzZSAoaW4gYW4gdW5kZXJzdGF0ZWQgQnJpdGlzaCBzb3J0IG9mIHdheSkgdGhhdCB0aGlzIGlzIHByaW1hcmlseQogICBkZXNjcmliaW5nIHRoZSB2NCBhZ2VudCwgYW5kIHRoaW5ncyBtYXkgYmUgZGlmZmVyZW50IHdpdGggdGhlIHY1IHRvb2xraXQuCgoyMDA0LTExLTE3IDA1OjI5ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjYgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTYgMTY6NTYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTEtMTYgMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIHJjNAoKMjAwNC0xMS0xNiAxNTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gZG9uJ3QgY29uZmlndXJlIGluIGludGVyZmFjZSBpb2N0bCBjb2RlIGJ5IGRlZmF1bHQKICAgLSBpZmRlZiBvdXQgYXJjaCBkZXBlbmRlbnQgY29kZSBpbiBpbnRlcmZhY2UgY29tbW9uCgoyMDA0LTExLTEyIDA3OjM2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgdHdlYWtzCgoyMDA0LTExLTExIDA2OjM2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gbW9yZSBjaGFuZ2VzIGFuZCBmaXhlcwoKMjAwNC0xMS0wOSAwODoyMSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbm9uLW9wdGlvbmFsIG5hdHVyZSBvZiBzbm1wZC5jb25mCiAgIChzcG90dGVkIGJ5IFdpbGxpYW0gQnVja2xleSkKCjIwMDQtMTEtMDkgMDg6MTIgIGR0czEyCgogICAqIEZBUToKCiAgIFJhaWQgUm9iZXJ0J3MgRkFRIGZvciBzb21lIHVzZWZ1bCBlbnRyaWVzLgoKMjAwNC0xMS0wOSAwNToxNiAgZHRzMTIKCiAgICogVE9ETzoKCiAgIEl0J3MgYWJvdXQgdGltZSB3ZSBoYWQgYSBmcmVzaCBUT0RPIGxpc3QuCiAgIFRoZXJlIG1heSB3ZWxsIGJlIGJpdHMgdGhhdCBjYW4gYmUgc2FsdmFnZWQgZnJvbSB0aGUKICAgb2xkIHZlcnNpb24sIGJ1dCBJJ2xsIGxlYXZlIHRoYXQgdG8gc29tZW9uZSBlbHNlLgoKMjAwNC0xMS0wNSAyMTozNSAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzEgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZiwgbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMKLCBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zCiwgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zCiwgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zCiwgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zCiwgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zCiwgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMwosIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zCiwgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMKLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3V0aWwuMwosIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTEtMDUgMjE6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTEtMDUgMjA6MjcgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlIGZyb20gQnJ1Y2UKCjIwMDQtMTEtMDUgMTM6MDggIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBUaGlzIHBhdGNoIGZpeGVzIGEgY29uZmlndXJlIHByb2JsZW0gd2hlbiBjb21waWxpbmcgd2l0aCBzb21lIFdpbmRvd3MgY29tcGlsZXJzLgogICBUaGUgYWZmZWN0ZWQgcGxhdGZvcm1zIHdlcmUgTWluR1cgYW5kIEN5Z3dpbiwgdGhlIHBhdGNoIHNob3VsZCBub3QgZWZmZWN0IE1TVkMrKwogICBidWlsZHMuCgoyMDA0LTExLTA1IDAyOjA1ICBkdHMxMgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGRlbHRhLjEsIHNubXBkZWx0YS4xLmRlZgosIHNubXBkZi4xLCBzbm1wZGYuMS5kZWYsIHNubXBuZXRzdGF0LjEsCiAgICAgc25tcG5ldHN0YXQuMS5kZWY6CgogICBHZW5lcmF0ZSAiZml4ZWQgaW5mb3JtYXRpb24iIGNvbW1hbmQgbWFuIHBhZ2VzIGR5bmFtaWNhbGx5CiAgIChzbyB0aGV5IHBpY2sgdXAgdGhlIHZlcnNpb24gaGVhZGVyKSByYXRoZXIgdGhhbiBoYXZlIHRoZW0gc3RhdGljLgoKMjAwNC0xMS0wNSAwMToyOCAgZHRzMTIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBidWxrZ2V0LjEuZGVmLAogICAgIHNubXBidWxrd2Fsay4xLmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEKLCBzbm1wZGYuMSwgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMS5kZWYKLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmCiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmLAogICAgIHNubXB0cmFwLjEuZGVmLCBzbm1wdXNtLjEuZGVmLCBzbm1wdmFjbS4xLmRlZiwKICAgICBzbm1wd2Fsay4xLmRlZjoKCiAgIFR3ZWFrIHRoZSBvbmUtbGluZSBkZXNjcmlwdGlvbnMgb2YgdmFyaW91cyBjb21tYW5kcyB0byBpbXByb3ZlCiAgIGNvbnNpc3RlbmN5IGFuZCBjbGFyaXR5CgoyMDA0LTExLTA0IDIxOjM4ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICB1cGRhdGVzIChtb3N0bHkgc3R1ZmYgd2UgZG9uJ3Qgc3VwcG9ydCkKCjIwMDQtMTAtMjkgMjI6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgLT4gNS4yLnJjMgoKMjAwNC0xMC0yOSAyMjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIC0+IDUuMi5yYzIKCjIwMDQtMTAtMjkgMTM6MjggIHJzdG9yeQoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGZpcnN0IHBhc3MgYXQgYWdlbnQgbWlicyByZWFkbWUKCjIwMDQtMTAtMjYgMDU6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMjYgMDU6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBkb24ndCB1bmNvbmRpdGlvbmFsbHkgYWRkIGxpYnJhcmllcyAoZnJlZWJzZCBkb2Vzbid0IGhhdmUgbGliZGwpCgoyMDA0LTEwLTIyIDE4OjA2ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBmaXggY29uZmxpY3QKCjIwMDQtMTAtMjIgMTg6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDAgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0yMiAxNzo0NiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIG1ha2UgZG9jcwoKMjAwNC0xMC0yMiAxNzo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDQtMTAtMjIgMTE6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMjIgMTE6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG1vdmUgUElDIGNoZWNrIGFmdGVyIG1vZHVsZSBwcm9jZXNzaW5nLCAmIGNoZWNrIGFnYWluc3QgY29tcGxldGUgbW9kdWxlIGxpc3QKICAgLSBjaGVjayBkaXNraW8gYW5kIGxtU2Vuc29ycyBhZ2FpbnN0IGNvbXBsZXRlIG1vZHVsZSBsaXN0CgoyMDA0LTEwLTIyIDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4ZXMgZm9yIGJ1aWxkaW5nIGlmVGFibGUgdy9vdXQgaWZYVGFibGUKCjIwMDQtMTAtMjIgMDI6MTcgIGR0czEyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJZiB3ZSdyZSBnb2luZyB0byBpbmNsdWRlIHRoZSBORVQtU05NUC1FWFRFTkQtTUlCIHN1cHBvcnQgYnkgZGVmYXVsdCwKICAgKGFuZCBsb2FkIGl0IGF1dG9tYXRpY2FsbHkpLCBpdCB3b3VsZCBiZSBldmVuIG1vcmUgdXNlZnVsIHRvIGFjdHVhbGx5CiAgIGluc3RhbGwgaXQsIHNvIGl0IHdhcyBhdmFpbGFibGUgdG8gX2JlXyBsb2FkZWQhCgoyMDA0LTEwLTIyIDAyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaDoKCiAgIElmIHdlJ3JlIGdvaW5nIHRvIGluY2x1ZGUgdGhlIE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydCBieSBkZWZhdWx0LAogICBpdCB3b3VsZCBiZSBzZW5zaWJsZSB0byBsb2FkIHRoYXQgTUlCIGF1dG9tYXRpY2FsbHkuCgoyMDA0LTEwLTIxIDE1OjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgaWZkZWYgdXNlIG9mIHZhcmlhYmxlIHRoYXQgaXNuJ3QgYWx3YXlzIGRlZmluZWQKCjIwMDQtMTAtMjEgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgbXVsdGlwbGUgcm93cy90YWJsZXMgc2V0IHByb2JsZW0sIG5vdGVkIGJ5IFN2ZW4gSm9uYXMgb24gY29kZXJzCgoyMDA0LTEwLTIwIDIxOjAyICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW52b2tlIHBlcmxyZWFsY2xlYW4gZmlyc3QgaW4gdGhlIGRpc3RjbGVhbiBzZXF1ZW5jZS4KCjIwMDQtMTAtMjAgMTk6NTUgIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBwZXJmb3JtIGRlZXAgY2xlYW5pbmcgb24gUGVybCB0cmVlIHRvIGZpeCBidWcgIzg5NDQyNS4KCjIwMDQtMTAtMjAgMTk6MzUgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgZml4IHRhYmxlIG92ZXJmbG93IChpbnNwaXJlZCBieSBEZWJpYW4gcGF0Y2ggdG8gNS4xLjIpLgoKMjAwNC0xMC0yMCAxODo1MiAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIHJlbW92ZSBzZWNvbmQgcmVhZF9vYmppZCBmcm9tIG1ldGhvZHMgbGlzdCAoSW5zcGlyZWQgYnkgY3VycmVudCBEZWJpYW4gcGF0Y2gpCgoyMDA0LTEwLTIwIDE2OjUyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgZml4IGJ1ZyMxMDQzMTk3ICgyKSAtIHRlc3Qgb3MgdmVyc2lvbiBhbmQgcmVsZWFzZSB1c2luZyB1bmFtZSB0byBxdWFsaWZ5IGFjdGlvbgoKMjAwNC0xMC0xOSAxNjoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBtb3ZlIHJwbSBoZWFkZXIgaW5jbHVkZXMgaW5zaWRlIEhBVkVfTElCUlBNIGJlY2F1c2Ugb2YgaGVhZGVyIGRlcGVuZGVuY2llcwoKMjAwNC0xMC0xOSAxNjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gbW92ZSBycG0gY2hlY2tzIGJhY2sgYWZ0ZXIgbW9kdWxlIHByb2Nlc3NpbmcsIHNpbmNlIHJwbSBvbmx5IGluY2x1ZGVkCiAgICAgaWZmIGhyX3N3aW5zdCBnZXRzIGNvbmZpZ3VyZWQgaW4KCjIwMDQtMTAtMTkgMTQ6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIHJlbW92ZSBjcHAgd2FybmluZwoKMjAwNC0xMC0xOSAxNDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0xOSAxNDowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gdXBkYXRlIHJlbGVhc2UKICAgLSBmb3IgZXZlcnkgQUNfQVJHX0VOQUJMRSwgYWRkIGNvcnJlc3BvbmRpbmcgQUNfQVJHX1dJVEggd2l0aCBlcnJvciBtZXNzYWdlCiAgIC0gZm9yIGV2ZXJ5IEFDX0FSR19XSVRILCBhZGQgY29ycmVzcG9uZGluZyBBQ19BUkdfRU5BQkxFIHdpdGggZXJyb3IgbWVzc2FnZQogICAtIG1vdmUgbGlicndhcC9ycG0gY2hlY2tzIGVhcmxpZXIsIHNvIHRoZXkgd2lsbCBmYWlsIGJlZm9yZSBtb2R1bGUgcHJvY2Vzc2luZwogICAtIGNoZWNrIG1ic3RhdCBzdHJ1Y3QgZm9yIG1fY2x1c3RlcnMgKGZyZWVic2QgYXBwYXJlbnRseSBkcm9wcGVkIGl0KQoKMjAwNC0xMC0xOSAwMzoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgRG9uJ3QgZ2VuZXJhdGUgJ0dldCcgY29kZSBmb3IgaW5hY2Nlc3NpYmxlIG9iamVjdHMuCgoyMDA0LTEwLTE5IDAzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIGFnZW50IGNyYXNoaW5nIGlmIG5vICdkZWxldGVfcm93JyBvcgogICAnZHVwbGljYXRlX3Jvdycgcm91dGluZXMgd2VyZSBjb25maWd1cmVkLgoKMjAwNC0xMC0xOSAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJldmVudCB0aGUgYWdlbnQgZnJvbSBzcGlubmluZyBpbiBhbiBpbmZpbml0ZSBsb29wCiAgIGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlLgoKMjAwNC0xMC0xOSAwMzowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUmVwb3J0ICp3aGljaCogYWdlbnR4IHNvY2tldCBjb3VsZG4ndCBiZSBvcGVuZWQuCgoyMDA0LTEwLTE4IDIwOjI0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHJlbGVhc2UKCjIwMDQtMTAtMTggMjA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICByZXBsYWNlIGluY29ycmVjdCBjb21tZW50IGJsb2NrIHcvbm90ZSBhYm91dCBwb3NzaWJsZSBmdXR1cmUgb3B0aW1pemF0aW9uCgoyMDA0LTEwLTE4IDIwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSB1c2UgbmV3IGlvY3RsIGlmSW5kZXggZmluZAogICAtIG1ha2UgbmV4dCBhbGlhcyBmdW5jIHN0YXRpYwoKMjAwNC0xMC0xOCAyMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgLSB1c2UgbmV3IGlwYWRkcmVzcyBlbnRyeSBjb3B5IGZ1bmN0aW9uIGZvciB0YWJsZSBsZXZlbCB1bmRvIHNldHVwCiAgIC0gcmVtb3ZlIG5vZGUgbGV2ZWwgdW5kbyBzZXR1cAogICAtIGltcGxlbWVudCB1bmRvX2NvbW1pdAoKMjAwNC0xMC0xOCAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIG5ldyBuZXRzbm1wX2FjY2Vzc19pcGFkZHJlc3NfZW50cnlfY29weSB0byBjb3B5IGVudHJpZXMKCjIwMDQtMTAtMTcgMjA6NTYgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGZpeCBzbGlnaHQgbWVtb3J5IGxlYWsKCjIwMDQtMTAtMTcgMjA6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86CiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMTAtMTcgMjA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCBmZCBwYXJhbWV0ZXIgdG8gbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2lmaW5kZXhfZ2V0CgoyMDA0LTEwLTE3IDE5OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IHRyYWNrIHdoZXRoZXIgdXNlciBhbGxvY2F0ZWQgZGF0YSBjb250ZXh0IGZvciBub24tdHJhbnNpZW50IGRhdGEKCjIwMDQtMTAtMTYgMTk6NTMgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWw6CgogICBXaW4zMiBtYW5kaXIyaHRtbCBzY3JpcHQgd2FzIGN1dHRpbmcgb2ZmIHRoZSBib3R0b20gdGhlIG1hbiBwYWdlcy4gIEZpeGVkLgoKMjAwNC0xMC0xNiAxOTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHVzZSBuZXcgZmQgcGFyYW0gZm9yIGlmaW5kZXggbG9va3VwLCB3aXRoIGxvY2FsIHNvY2tldAogICAtIGRvbid0IGxvb2t1cCBpbnRlcmZhY2UgaWYgbm8gbmFtZQoKMjAwNC0xMC0xNiAxODo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZG9uJ3QgdXNlIG1fY2x1c3RlcnMgaWYgbm90IGF2YWlsYWJsZQoKMjAwNC0xMC0xNiAxODo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIHNpbXBseSByZXF1aXJlIGludGVyZmFjZSwgbGV0IGl0IGRlY2lkZSBhYm91dCBzcGVjaWZpYyBhcmNoIHJlcXVpcmVzCgoyMDA0LTEwLTE2IDE4OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBhbHdheXMgZGVmaW5lIGlmaW5kZXggZnVuY3Rpb247IHNpbXBseSByZXR1cm4gMCBpZiBTSU9DR0lGSU5ERVggbm90IGF2YWlsCiAgIC0gYWRkIGZkIHBhcmFtIHRvIGlmaW5kZXggZ2V0LCBmb3Igb3B0aW1pemF0aW9uCgoyMDA0LTEwLTE2IDE4OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIC0gc2VwYXJhdGUgaW50ZXJmYWNlX2NvbW1vbiBpbml0IGZyb20gYWNjZXNzX2ludGVyZmFjZSBpbml0CiAgIC0gY2FsbCBhY2Nlc3MgZnVuY3Rpb24sIG5vdCBhcmNoIChzbyB1bnN1cHBvcnRlZCBhcmNoZXMgd29yaykKCjIwMDQtMTAtMTYgMTg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhbHdheXMgaW5jbHVkZSBpb2N0bCB3L2ludGVyZmFjZSBzdHVmZgoKMjAwNC0xMC0xNiAxODo0OCAgcnN0b3J5CgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICBtb3ZlIGFjY2VzcyBpbml0IGZyb20gYWdlbnQgdG8gbWliIGluaXQKCjIwMDQtMTAtMTYgMTM6NDQgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvdGVzdF9mdW46CgogICAtIGNvbW1lbnQgb3V0IGFuc2kgY29sb3JzIChpbmNvbnNpc3RlbnQgdXNlKQogICAtIHByZWZpeCBzdWItdGVzdHMgJiBzdW1tYXJ5IHdpdGggbWFpbiB0ZXN0IG51bWJlciB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTEwLTE2IDEzOjQzICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2g6CgogICB1c2Ugc25tcGdldG5leHQgaW5zdGVhZCBvZiBzbm1wdGFibGUgdGVzdGluZyB0YWJsZXMKCjIwMDQtMTAtMTYgMTM6NDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIGNoZWNrIGZvciBubyBwaWQgZmlsZXMgZm91bmQKICAgLSBjaGVjayBmb3IgcGlkZmlsZSB2YW5pc2hpbmcKCjIwMDQtMTAtMTYgMTM6NDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcmVtb3ZlIHN0cmF5IHF1b3RlCgoyMDA0LTEwLTE2IDEwOjMyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGlmIG5ldHN0YXQgaXMgYXZhaWxhYmxlLCB0ZXN0IGZvciBwb3J0IGluIHVzZSBhbmQgdHJ5IDIgbW9yZSByYW5kb20gcG9ydHMKCjIwMDQtMTAtMTUgMjE6MDEgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjE6MDAgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMTowMCAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OSAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTkgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMTUgMjA6NDggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjIucHJlMwoKMjAwNC0xMC0xNSAyMDozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cwoKMjAwNC0xMC0xNSAyMDoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHVwZGF0ZSBmb3IgZGF0YSBhY2NjZXNzIGNoYW5nZQoKMjAwNC0xMC0xNSAyMDowNCAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYwo6CgogICBsbVNlbnNvcnMgY2hhbmdlcyBmcm9tIEJydWNlCgoyMDA0LTEwLTE1IDE4OjAwICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzIgbWFuZGlyMmh0bWwgc2NyaXB0IHdhcyBjdXR0aW5nIG9mZiB0aGUgdG9wIG9mIHRoZSBtYW4gcGFnZXMuICBGaXhlZC4KCjIwMDQtMTAtMTUgMTc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuaCwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS86IGlwU3lzdGVtU3RhdHNUYWJsZS5jCiwgaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIGlwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLzogaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwgaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTY6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmMKLCBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNjozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmgKLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNToyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvOgogICAgIGlwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtRklSU1QudHh0LAogICAgIGlwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtaXBTeXN0ZW1TdGF0c1RhYmxlLnR4dDoKCiAgIHJlbW92ZSBub24tc291cmNlIGZpbGVzCgoyMDA0LTEwLTE1IDE1OjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgZml4IG1heCBpbmRleCBsZW4KCjIwMDQtMTAtMTUgMTU6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgZml4IGN1dC1uLXBhc3RlIGluIGxvZyBtc2cKCjIwMDQtMTAtMTUgMTU6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICB1c2UgU0lPQ0dJRklOREVYIGlvY3RsIGZvciBpZkluZGV4CgoyMDA0LTEwLTE1IDE1OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGludGVyZmFjZV9pb2N0bC5jLCBpbnRlcmZhY2VfaW9jdGwuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIHVzZSBTSU9DR0lGSU5ERVggaW9jdGwgZm9yIGlmSW5kZXgKCjIwMDQtMTAtMTUgMTE6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICB0d2VhayBidWZmZXIgc2l6ZSBjb2RlIGFuZCBhcHBseSB0byB0Y3Agc29ja2V0cyB0b28KCjIwMDQtMTAtMTQgMjA6MjkgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgTW9kaWZpZWQgaW5jbHVkZXMgZm9yIFdpbmRvd3MgYnVpbGRzIHRvIGluY2x1ZGUgd2luc29jayByYXRoZXIgdGhhbiBVbml4IHNvY2tldHMuCgoyMDA0LTEwLTE0IDE4OjE1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKOgoKICAgb3B0aW1pemUgbWliIGluZGV4IHNpemUgZGVmcyAocmVkdWNlIGNhY2hlIHNpemUgYnkgaGFsZiEpCgoyMDA0LTEwLTE0IDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmgsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBkb24ndCB1c2Ugc3RydWN0IHB0ciBhcyBkYXRhIGNvbnRleHQKCjIwMDQtMTAtMTQgMTc6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICBkZWZpbmUgbWF4IHBvbGljeSBsZW5ndGgKCjIwMDQtMTAtMTQgMTc6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBkb24ndCBmcmVlIGEgZGF0YSBjb250ZXh0IHdlIGRpZG4ndCBhbGxvY2F0ZQoKMjAwNC0xMC0xNCAxNzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgY2xhcmlmeSB0aGF0IGEgcG9pbnRlciBzaG91bGRuJ3QgYmUgdXNlZCBhcyB0aGUgZGF0YSBjb250ZXh0IHR5cGUKCjIwMDQtMTAtMTQgMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIGFjY291bnQgZm9yIGlwYWRkcmVzLT5PSUQgY29udmVyc2lvbiBpbiBpbmRleCBzcGFjZSBhbGxvY2F0aW9ucwoKMjAwNC0xMC0xNCAxNzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LXNldC5tMmksCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgc3ludGF4LUNPVU5URVI2NC1nZXQubTJpOgoKICAgbWlub3IgdHdlYWsgdG8gY29tbWVudHMsIHJlZHVjZSBkaWZmcyBvbiBzd2l0Y2ggZnJvbSBlbWJlZGRlZC0+YWxsb2NhdGVkIGRhdGEKCjIwMDQtMTAtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgZml4IHZhciBuYW1lCgoyMDA0LTEwLTE0IDA1OjU3ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwgbWliMmMuY29udGFpbmVyLmNvbmYKLCBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFJldHVybiAnU05NUF9FUlJfTk9FUlJPUicgb24gIm5vcm1hbCIgU0VUIGVycm9ycy4KICAgKFN1Y2ggZXJyb3JzIHNob3VsZCBvbmx5IGJlIHJlcG9ydGVkIHZpYSBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yKQoKMjAwNC0xMC0xMyAxOToyMSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdXNlIGNvcnJlY3QgZmFjaWxpdHkgd2hlbiBpbml0aWFsaXppbmcgc3lzbG9nIGxvZyBoYW5kbGVyLgoKMjAwNC0xMC0xMyAxODozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZW1vdmUgcmVib290IHdhcm5pbmcgZnJvbSByZWdpc3RlciBzY3JpcHRzIGFuZCBjbGFyaWZ5IHN0ZXAgaW4gYnVpbGQgc3RlcHMKCjIwMDQtMTAtMTMgMTU6MjQgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENyZWF0ZSBsaWJzbm1wLmRlZi5pbiBmaWxlIGZvciBzbm1wbGliX2RsbCBhbmQgbW9kaWZ5IHdpbjMyXENvbmZpZ3VyZSB0bwogICBnZW5lcmF0ZSBsaWJzbm1wLmRlZiBpZiBkeW5hbWljIGlzIHNwZWNpZmllZCBhbmQgd2l0aCBvciB3aXRob3V0IHRoZSBJUHY2CiAgIGxpbmVzIGluIGxpYnNubXAuZGVmLgoKMjAwNC0xMC0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGJ1ZyBbIDEwNDU2MDUgXSBzeW50YXggZXJyb3IgaW4gc25tcHRyYXBkLmMgKHdyb25nIGFyZyBvcmRlcikKCjIwMDQtMTAtMTIgMTc6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWxsb3cgYnVpbGRfb2lkX25vYWxsb2MgdG8gY29tcGxldGVseSBmaWxsIGluY29taW5nIGJ1ZmZlcgoKMjAwNC0xMC0xMiAxNjoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgLW1vdmUgaW5pdGlhbGl6YXRpb24gb2YgaW50ZXJuYWxzIGJhY2sgYmVmb3JlIHdlIHVzZSB0aGVtCiAgICAgICAgICAgIChhaCwgdGhlIGpveXMgb2YgYXV0b21hdGVkIHBhdGNoaW5nKQoKMjAwNC0xMC0xMiAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWYtbWliL2lmWFRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpZi1taWIvaWZYVGFibGUvZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvZGVmYXVsdC10YWJsZS1pbmV0Q2lkclJvdXRlVGFibGUubTJkCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2RlZmF1bHQtdGFibGUtaW5ldE5ldFRvTWVkaWFUYWJsZS5tMmQKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9kZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2RlZmF1bHQtdGFibGUtaXBTeXN0ZW1TdGF0c1RhYmxlLm0yZAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvZGVmYXVsdC10YWJsZS11c21ESFVzZXJLZXlUYWJsZS5tMmQKOgoKICAgcmVtb3ZlIGZpbGVzIHVzZWQgZm9yIGNvZGUgZ2VuIChtb3ZlZCB0byBuZXRzbm1wL21vZHVsZS10ZW1wbGF0ZXMgY3ZzIHRyZWUpCgoyMDA0LTEwLTEyIDEzOjI0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggSVBWNiBjb21waWxlIGlzc3VlcyB3aXRoIFBlcmwKCjIwMDQtMTAtMTIgMTM6MDMgIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEZpeCBQZXJsIGNvbXBpbGUgaXNzdWUgd2l0aCBkYmdfdG9rZW5zIGFuZCBkZWJ1Z19udW1fdG9rZW5zLiAgRml4IHNubXB0cmFwZAogICBjb21waWxlIGlzc3VlIGJ5IGFkZGluZyBpcGhsYXBpLmxpYiB0byBuZXRzbm1wbWlic3Nkay4KCjIwMDQtMTAtMTIgMTA6NDAgIHdhc21pdGgzMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFNvbWUgdmVyc2lvbnMgb2YgZ2NjIHdpdGggTWluR1cgZG8gbm90IGxpa2UgYSBsYWJsZSB3aXRoIG5vIHN0YXRlbWVudHMgZm9sbG93aW5nLgogICBUaGUgc29sbHV0aW9uIHdhcyB0byBhZGQgYW4gZW1wdHkgc3RhdGVtZW50IGluIHRoZSBzdWRvIGV4Y2VwdGlvbiBoYW5kbGluZwogICBjb2RlIGluIHdpbnNlcnZpY2UuYy4gTmV0LVNOTVAgd2lsbCBub3cgY29tcGlsZSB1c2luZyBhIExpbnV4IGhvc3RlZCBXaW5kb3dzCiAgIGNyb3NzIGNvbXBpbGVyLgoKMjAwNC0xMC0xMSAyMTowNiAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJlIG9mIHJhbmdlX3N1YmlkCgoyMDA0LTEwLTExIDIxOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICByZW1vdmUgdW51c2VkIHZhciBzZXNzX2NvbW11bml0eQoKMjAwNC0xMC0xMSAyMTowMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGdldCBkZWZpbml0aW9uIG9mIHNob3VsZF9pbml0CgoyMDA0LTEwLTExIDIxOjAyICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIHBpY2t1cCBuZXcgZGVmaW5pdGlvbiBvZiBzdHJ0b2tfciBhcyBuZWVkZWQuCgoyMDA0LTEwLTEwIDIxOjI4ICBic2hhdzY2NgoKICAgKiBSRUFETUUuc29sYXJpcywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBMTS1TRU5TT1JTLU1JQiBmb3IgU29sYXJpcwoKMjAwNC0xMC0wOSAwNzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGZ1bmM7IHJlbW92ZSBleHRyYSB9CgoyMDA0LTEwLTA5IDA0OjQ4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgcmVtb3ZlIGJ1Z2ZpeCAjMTA0MzE5NyAtIHdyb25nIHBhdGNoIGRvbmUgdGhlIHdyb25nIHdheSBhdCB0aGUgd3JvbmcgdGltZQoKMjAwNC0xMC0wOCAyMjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgLSAoZGlzdC9NYWtlZmlsZSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIGVkaXRzCgoyMDA0LTEwLTA4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTA4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGF1dG9jb25mIHZlcnNpb24gcmVxOyB1cGRhdGUgbmV0LXNubXAgdmVyc2lvbiB0byAucHJvMgoKMjAwNC0xMC0wOCAyMTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBjaGFuZ2UgdGhlIGFub24gZ3JvdXBzL2V0YyBjcmVhdGVkIGJ5IHRoZSBzaW1wbGUgdG9rZW5zIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUgYW5kIHVuaXF1ZQoKMjAwNC0xMC0wOCAyMTo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHRlc3QgdGhlIHJpZ2h0IHZhcmlhYmxlCgoyMDA0LTEwLTA4IDIxOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBvYnNvbGV0ZSBzZWN0aW9uIHBpbmtpc2gKCjIwMDQtMTAtMDggMjE6MzggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZW5hYmxlIHN0ZGVycmxvZwoKMjAwNC0xMC0wOCAyMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBmaXggaW5jb25zaXN0ZW5jaWVzIHBvaW50ZWQgb3V0IGJ5IFBhdHJpY2sgV2VsY2hlCgoyMDA0LTEwLTA4IDIwOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWFrZSBzdXJlIHNubXBFbmdpbmVUaW1lIGNhbGN1bGF0aW9ucyBkb24ndCB3cmFwIHBhc3QgYW4gdWludCBzaXplCgoyMDA0LTEwLTA4IDE5OjI3ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICByZW1vdmUgZHVwbGljYXRlIGZ1bmN0aW9uCgoyMDA0LTEwLTA4IDE5OjI1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBmaXggdHlwbwoKMjAwNC0xMC0wOCAxOToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIHR3ZWFrIHNvbWUgbWFjcm8gYW5kIGZ1Y3Rpb24gbmFtZXMvdmFsdWVzCgoyMDA0LTEwLTA4IDE5OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCiwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9lbnVtcy5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAo6CgogICB1cGRhdGUgZ2VuZXJlYXRlZCBjb2QKCjIwMDQtMTAtMDggMTk6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHR3ZWFrIG1heCBvaWQgZ3Vlc3N3b3JrCgoyMDA0LTEwLTA4IDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXJlZHVjZSBzb21lIGdlbmVyYXRlZCBjb21tZW50cyBpZiB2ZXJib3NlIG5vdCBzZXQKCjIwMDQtMTAtMDggMTY6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC11c2UgbmV3IG1hY3JvIGZvciBzaXplIG9mIGluZGV4IG9pZCBidWZmZXIKCjIwMDQtMTAtMDggMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC1pbml0IGlycmV2ZXJzaWJsZSBjb21taXQgdG8gMAoKMjAwNC0xMC0wOCAxNjo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgYWdlbnQvc25tcF9hZ2VudC5jCjoKCiAgIEFwcGx5IHBhdGNoIGZvdW5kIGluIGJ1ZyAjMTA0MDQzMSB0byBpbmNsdWRlIHRyYW5zcG9ydCBpbmZvcm1hdGlvbiBpbiB0aGUgZHVtcCBvdXRwdXQKCjIwMDQtMTAtMDggMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCjoKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXVzZSBuZXcgZGVmaW5lIGluIGhlYWRlciBmb3IgY2FjaGUgdGltb3VldAoKMjAwNC0xMC0wOCAxNjo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXJlbW92ZSBzb21lIHJlZHVuZGFudCBjb21tZW50cwoKMjAwNC0xMC0wOCAxNjo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdHJ5IHRvIHNob3J0ZW4gc2l6ZSBvZiBvaWQgYnVmZmVycyBmb3IgaW5kZXhlcwoKMjAwNC0xMC0wOCAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLWRvbid0IGdlbiBpbnRlcm5hbCBlbnVtcyBpZiBub3QgbWFwcGluZwoKMjAwNC0xMC0wOCAxNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjCiwgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYywKICAgICBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbm9kZS1nZXQubTJpCiwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIHBhcmVudC1zZXQubTJpLAogICAgIHN5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksCiAgICAgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwKICAgICBzeW50YXgtUm93U3RhdHVzLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpOgoKICAgcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCgoyMDA0LTEwLTA4IDE2OjAyICBzbGlmCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIEZyb20gRGViaWFuIHBhdGNoIG5ldC1zbm1wXzUuMS4yLTUuZGlmZi5neiAtLSBwcm9wYWdhdGUgV1JBUExJQlMKCjIwMDQtMTAtMDggMTU6MzIgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFwcGx5IHRoZSBpbnRlbnQgb2YgcGF0Y2ggOTQ3MDMzIGZyb20gQ2xhdXMgS2xlaW4gdG8gYWxsb3cgZm9yIGNyb3NzIGNvbXBpbGF0aW9uIHN1cHBvcnQgdGhyb3VnaCB0aGUgdXNlIG9mIC0tcHJlZml4PSBhbmQgLS1leGVjLXByZWZpeD0gZmxhZ3MuICBEaWRuJ3QgYXBwbHkgdGhlIHdoaXRlIHNwYWNlLCByZWZvcm1hdHRpbmcsIGV0YyBwb3J0aW9ucyBzaW5jZSBpdHMgYWdhaW5zdCBvdXIgcGF0Y2ggYWNjZXB0YW5jZSBzdGFuZGFyZHMuICBBbHNvIG1hZGUgYSBzbWFsbCBmaXggc28gdGhhdCAtLXBlcmZpeD0vc29tZXRoaW5nIGRvZXNuJ3QgYWRkIGEgL25ldC1zbm1wIHN1ZmZpeCB0byB0aGUgaW5jbHVkZSBkaXJlY3RvcnkKCjIwMDQtMTAtMDggMTU6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgWyAxMDIyNzg3IF0gUGF0Y2ggKGZyb20gR2VlcnQgRGUgUGV1dGVyKSB0aGF0IGFsbG93cyBVRFAgYnVmZmVyIHR1bmluZy4uLiAgVGFrZSAyIGFmdGVyIGRpc2N1c3Npb24gb24gLWNvZGVycwoKMjAwNC0xMC0wOCAxNDoxNSAgc2xpZgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSwgT0lEL09JRC5wbSwKICAgICBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbSwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBtYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbQo6CgogICBTZWVuIGluIGEgRGViaWFuIHBhdGNoLiAgSW5zZXJ0IHJlcXVpcmVkIGJsYW5rIGxpbmUgZm9sbG93aW5nIF9fRU5EX18gY3V0IG1hcmsuCgoyMDA0LTEwLTA4IDEzOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRG9uJ3Qgc2hvdyBzbXV4IHBlZXIgcGFzc3dvcmQgaW4gY29ubmVjdCBhY2NlcHQvcmVmdXNlIGxvZyBtZXNzYWdlcy4KCjIwMDQtMTAtMDggMTE6NTIgIHNsaWYKCiAgICogdGVzdGluZy86IHJmYzEyMTMvUkVBRE1FLCByZmMxMjEzL3J1biwKICAgICByZmMxMjEzL3NubXBmdW4uc2gsIHJmYzEyMTMvdGVzdF9mdW4sCiAgICAgcmZjMTIxMy90ZXN0bWliMS5zaCwgcmZjMTIxMy90ZXN0bWliMi5zaCwKICAgICByZmMxMjEzL3Rlc3RtaWIzLnNoLCB0ZXN0cy9UMTYwcmZjMTIxMywKICAgICB0ZXN0cy9UMTYxcmZjMTIxMywgdGVzdHMvVDE2MnJmYzEyMTM6CgogICBwYXRjaCAjNjg5NzU3IC0gYWRkIHRlc3QgY2FzZXMgZm9yIGFjY2Vzc2luZyBSRkMtMTIxMyBNSUIgdmFyaWFibGVzLgogICB0aGFua3MgdG8gTGluZyBYaWFvZmVuZyBmb3IgdGhlIG9yaWdpbmFsIHdvcmsuCgoyMDA0LTEwLTA4IDEwOjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBpbml0aWFsaXplIHB0ciB0byBOVUxMCgoyMDA0LTEwLTA4IDEwOjMxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmMKOgoKICAgZml4IGJ1ZyMxMDQzMTk3IC0gcHJvdmlkZSBhIGZ1bmN0aW9uIHRvIHRlc3Qgb3MgdmVyc2lvbiBhbmQgcmVsZWFzZQoKMjAwNC0xMC0wOCAxMDoyMiAgcnN0b3J5CgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgc25tcF92YXJzLmM6CgogICAtIGZpeCBidWcgWyAxMDI1NDU0IF0gdW5kZWZpbmVkIHN5bWJvbHMgaW4gc25tcHRyYXBkCiAgICAgLSBtb3ZlIGluY2x1ZGUgImFnZW50X21vZHVsZV9pbml0cy5oIiBpbmNsdWRlIGluc2lkZSBpbml0X2FnZW50CgoyMDA0LTEwLTA4IDA5OjI5ICB3YXNtaXRoMzIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMm1zdmMuaDoKCiAgIFRoZSBMaW51eCBob3N0ZWQgdmVyc2lvbiBvZiBNaW5HVyByZXBvcnRzIGl0c2VsZiBhcyBtaW5ndzMybXN2Yy4gVGhpcyBzeXN0ZW0KICAgaGVhZGVyIGRvZXMgbm90aGluZyBtb3JlIHRoYW4gZGVmaW5lIG1pbmd3MzIgYW5kIGluY2x1ZGUgbWluZ3czMi5oLiBBbGwgY2hhbmdlcwogICBzaG91bGQgYmUgbWFkZSBpbiBtaW5ndzMyLmguCgoyMDA0LTEwLTA4IDA5OjA0ICBhbGV4X2IKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgbmV0c25tcF9nZXRlbnYoKTogTW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbnRvIFdJTjMyIElGREVGCgoyMDA0LTEwLTA4IDA5OjAxICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIGxvY2FsL3NubXBjb25mLAogICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBBZGQgbmV0c25tcF9nZXRlbnYoKSB3aGljaCBpcyBhIHdyYXBwZXIgZm9yIGdldGVudigpIHRvIGFkZAogICBiYXNpYyBXaW5kb3dzIHJlZ2lzdHJ5IHN1cHBvcnQuCgoyMDA0LTEwLTA3IDE5OjMxICBzbGlmCgogICAqIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oIGFuZCBuZXQtc25tcC90eXBlcy5oCiAgIGZvciBpbXByb3ZlZCBVQ0RfQ09NUEFUSUJMRSB1c2VzIChmcm9tIEZlZG9yYSBuZXQtc25tcC01LjAuNi1jb21wYXQucGF0Y2gpLgoKMjAwNC0xMC0wNyAxODo0NCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSBtaWIyYy5pdGVyYXRlMi5jb25mCgoyMDA0LTEwLTA3IDE3OjE1ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmUtaW5zdGFsbCBwYXRoIGZpeCwgcHJvbXB0IG92ZXJ3cml0ZSBzbm1wLmNvbmYKCjIwMDQtMTAtMDcgMTY6MTUgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyIERMTCBzdXBwb3J0IGZvciBzdHJ0b2tfcgoKMjAwNC0xMC0wNyAxNToyMSAgYWxleF9iCgogICAqIHNubXBsaWIvc3RydG9rX3IuYywgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIFdpbjMyIE1TVkMgc3VwcG9ydCBmb3Igc3RydG9rX3IKCjIwMDQtMTAtMDcgMTQ6NTcgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBkZWZpbmVkIE5FVFNOTVBfKiBkZWZpbmVzCgoyMDA0LTEwLTA3IDA1OjEyICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzdHJ0b2tfci5jOgoKICAgYWRkIHN0cnRva19yCgoyMDA0LTEwLTA2IDIxOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIG1ha2UgcHJveHkgbm8tY29tbXVuaXR5IHN1cHBvcnQgdXNpbmcgLUNjIGluc3RlYWQgb2YgYXNzdW1pbmcgeW91IHdhbnRlZCBpdCB0aGF0IHdheQoKMjAwNC0xMC0wNiAxOToyMiAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHRlbXAgdmFyICJpIiBpbnRyb2R1Y2VkIGJ5IHJlY2VudCBpcHY2IHBhdGNoLgoKMjAwNC0xMC0wNiAxOToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oOgoKICAgcmVuYW1lIHRvIE5FVFNOTVBfUk5ELiAoZm9yZ290IHRvIGNoZWNrIHRoaXMgZmlsZSBpbiBmcm9tIGVhcmxpZXIgY2hlY2tpbgoKMjAwNC0xMC0wNiAxNzo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXgga3NtIHBhdGNoIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgQnVjayBIdXBwbWFubgoKMjAwNC0xMC0wNiAxNzo0OSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmg6CgogICBhZGQgbWlzc2luZyBkZWZpbmUgRU5HSU5FSURfVFlQRV9ORVRTTk1QX1JORCAyNTYKCjIwMDQtMTAtMDYgMTY6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGZpeCBidWcgWyA5ODYyMzggXSBzbm1wZCBsb29wcyBmb3JldmVyCgoyMDA0LTEwLTA2IDE2OjAxICBzbGlmCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgZml4IGJ1ZyMxMDQwNDI5OiB0ZXN0IGV2ZXJ5IGZfZm10YWRkciBjYWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nIG9yIGZyZWVpbmcuCiAgIENhdGNoIG1lbW9yeSBsZWFrcyBpbiBzbm1wdGVzdCwgc25tcHRyYXBkLCBhbmQgc25tcHN0YXR1cy4KCjIwMDQtMTAtMDYgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUGF0Y2ggWyA5MjM0OTQgXSBmcm9tIEJ1Y2s6IGltcHJvdmVkIGF1dG9jb25mIHN1cHBvcnQgYW5kIGhlaW1kYWwgc3VwcG9ydCBmb3Iga3NtLgoKMjAwNC0xMC0wNiAxNDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggWyA5NDIxNTUgXSBGcm9tIERhaS5IOyBJUHY2IGFkZHJfc3RyaW5nIGZpeCBmb3IgbGlid3JhcAoKMjAwNC0xMC0wNiAxNDo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBidWcgWyA2MTU3NDQgXSBTcHVyaW91cyBESVNNQU4tRVZFTlQgdHJhcAoKMjAwNC0xMC0wNiAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUGF0Y2ggWyAxMDQwNzE4IF0gZnJvbSBCZW4gUm9nZXJzOiBBZ2VudHggZXJyb3IgcHJvcGFnYXRpb24gYW5kIGluZmluaXRlIGxvb3AKCjIwMDQtMTAtMDYgMTQ6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBwdHIgaW5pdCBiZWZvcmUgZGVyZWZlcmVuY2U7IG5vIGlkZWEgaG93IHRoaXMgaGFzIGJlZW4gd29ya2luZyBmb3IgdGhlCiAgIGxhc3QgNiBtb250aHMsIGFuZCB3aHkgaXQgc3RhcnRlZCBjcmFzaGluZyBvbiBtZSB0b2RheS4KCjIwMDQtMTAtMDYgMTM6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICAtIGJhY2sgb3V0IGFsbCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUKICAgICAtIGhlYWRlcl9pZkVudHJ5IGRlcGVuZHMgb24gY29udGlndW91cyBpZkluZGV4IHZhbHVlcywgYW5kIEknbSBub3QgYWJvdXQKICAgICAgIHRvIHRyeSBhbmQgZml4IHRoYXQgaW4gdGhpcyBpZmRlZiBoZWxsLWhvbGUuIFRob3NlIHdhbnRpbmcgbm9uLWNoYW5naW5nCiAgICAgICBpZkluZGV4ZXMgd2lsbCBqdXN0IGhhdmUgdG8gbW92ZSB0byB0aGUgbWZkLXJld3JpdGUuCgoyMDA0LTEwLTA2IDEzOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBiYWNrIG91dCBhbGwgb2YgZml4IGZvciBidWcgODY1NDE1CiAgICAgLSBoZWFkZXJfaWZFbnRyeSBkZXBlbmRzIG9uIGNvbnRpZ3VvdXMgaWZJbmRleCB2YWx1ZXMsIGFuZCBJJ20gbm90IGFib3V0CiAgICAgICB0byB0cnkgYW5kIGZpeCB0aGF0IGluIHRoaXMgaWZkZWYgaGVsbC1ob2xlLiBUaG9zZSB3YW50aW5nIG5vbi1jaGFuZ2luZwogICAgICAgaWZJbmRleGVzIHdpbGwganVzdCBoYXZlIHRvIG1vdmUgdG8gdGhlIG1mZC1yZXdyaXRlLgoKMjAwNC0xMC0wNiAxMjo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYmFjayBvdXQgcGFydCBvZiBmaXggZm9yIGJ1ZyA4NjU0MTUsIGl0IGJyb2tlIHNvbGFyaXMgJiBwcm9iYWJseSBvdGhlcnMKICAgICAobm90IGFsbCBwbGF0Zm9ybXMgaGF2ZSBJbnRlcmZhY2VfU2Nhbl9Jbml0LEludGVyZmFjZV9TY2FuX05leHQpCgoyMDA0LTEwLTA2IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoICMxMDQxMzc4IGZyb20gVGhvbWFzIEFuZGVycyB0byBmaXggdGhlIGRlc2NyaXB0aW9uIG9mIGhvdyBlbmdlSURzIGFyZSBjcmVhdGVkLgoKMjAwNC0xMC0wNiAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCB0aGUgY29tcGxhaW50IG91dGxpbmVkIGJ5IFRob21hcyBBbmRlcnMgaW4gUGF0Y2ggMTA0Mzc4IHVzaW5nIHRoZSBuZXQtc25tcCBlbnRlcnByaXNlIG51bWJlciBpbnN0ZWFkIG9mIHRoZSBVQ0Qgb25lIGZvciByYW5kb21seSBjb21wb3NlZCBlbmdpbmVJRHMKCjIwMDQtMTAtMDYgMTA6MzUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmVkIE5FVFNOTVBfKiBkZWZpbmVzCgoyMDA0LTEwLTA1IDIyOjI3ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hZ251cyBGcm9tcmVpZGUsIE1hcmN1cyBNZWlzc25lciwgQW5kcmV3IFJ1Y2tlciBKb25lcywgRGFpLkguCgoyMDA0LTEwLTA1IDIxOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGFydCBvZiBwYXRjaCBbIDkzOTU5NSBdIGZyb20gc3VuICh1cGRhdGUgY2FjaGUgdGltZXMpCgoyMDA0LTEwLTA1IDIxOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSBhcHBseSB0aW55IHBpZWNlIG9mIHBhdGNoIFsgODM2MzkwIF0KICAgICAtIGFwcGxpZWQgbW9yZSBpZm5hbWUgdG8gaWZ0eXBlIG1hcHBpbmdzCgoyMDA0LTEwLTA1IDIxOjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIGFwcGx5IHBhdGNoIFsgODExNjg3IF0gUHJveHkgc3VwcG9ydCBpZ25vcmVzIGNvbW11bml0eSBzdHJpbmcgaWYgLWMgb3B0aW9uIG9taXR0ZWQKCjIwMDQtMTAtMDUgMjA6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGFwcGx5IHBhdGNoIFsgNTUxMTgzIF0gTFJVIHJlcGxhY2VtZW50IGZvciBhZGRyZXNzIGNhY2hlCgoyMDA0LTEwLTA1IDIwOjA2ICBhbGV4X2IKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgbWlzc2luZyByZWZlcmVuY2UgZm9yIHdpbnNlcnZpY2VyYyBpbiBNaW5HVyBzZWN0aW9uCgoyMDA0LTEwLTA1IDE5OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIGFwcGx5IHBhdGNoIFsgOTk2NDYyIF0gYWdlbnR4IGZhaWxzIG9uIGxpdHRsZSBlbmRpYW4gNjRiaXQKCjIwMDQtMTAtMDUgMTk6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBhcHBseSBwYXRjaCBbIDEwMDk3OTkgXSBBZ2VudFggUmVnaXN0ZXItUERVIHdpdGggbXVsdGlwbGUgaXRlbXMKCjIwMDQtMTAtMDUgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSBhcHBseSBbIDEwMTE0NzEgXSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMgKyBpbmxpbmUgbWFjcm8gcHJvYmxlbXMKICAgICAtIGRlZmluZSBtYWNybyBmb3IgdW5peHdhcmUgaW5jbHVkZXMKCjIwMDQtMTAtMDUgMTk6MDEgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgZW5kaWYKCjIwMDQtMTAtMDUgMTg6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTA1IDE3OjQ2ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgLSBhcHBseSBbIDEwMTE0NzEgXSBNb3JlIFNDTyBVbml4d2FyZSA3IHBhdGNoZXMgKyBpbmxpbmUgbWFjcm8gcHJvYmxlbXMKICAgICAtIGNoZWNrIGZvciBuZXN0ZWQgc3RhdGljIGlubGluZSBzdXBwb3J0CgoyMDA0LTEwLTA1IDE3OjM4ICBhbGV4X2IKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3dpbnNlcnZpY2VyYy5yYzoKCiAgIEFwcGx5IHBhdGNoIDEwNDAzMjUgLSB3aW4zMiBNaW5HVyBhZ2VudC90cmFwZCBzZXJ2aWNlIEV2ZW50bG9nIGZpeGVzCgoyMDA0LTEwLTA1IDE2OjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhcHBseSBwYXRjaCBbIDEwNDAyNTQgXSBTdHJlbmd0aGVuIEFHRU5UWCBPSUQgY2hlY2tzCgoyMDA0LTEwLTA1IDE2OjI2ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2ggWyAxMDQwMjYxIF0gTWFrZSBpdCBwb3NzaWJsZSB0byBzZWxlY3QgdGVzdHMgb24gYWdlbnQgbW9kdWxlcwoKMjAwNC0xMC0wNSAxNjoxNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMDUgMTY6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgYWRkIGNoZWNrIGZvciBzdHJ0b2tfciBhbmQgcnVuIGF1dG9oZWFkZXIKCjIwMDQtMTAtMDUgMTY6MTMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgR2VlcnQgRGUgUGV1dGVyIHRvIGNvbnRyaWJ1dG9ycwoKMjAwNC0xMC0wNSAxNjoxMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFwcHMvc25tcHZhY20uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgc25tcGxpYi9jb250YWluZXIuYywKICAgICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDEwNDAzMzAgXSBHZXR0aW5nIHJpZCBvZiBzdHJ0b2sKCjIwMDQtMTAtMDUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICByZW1vdmUgYXR0cmlidXRpb24gY29tbWVudAoKMjAwNC0xMC0wNSAwNzowNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlbW92ZSAtQyBhbmQgLWMgcmVnaXN0ZXIgb3B0aW9ucyBhbmQgYWRkIG5vdGUgYWJvdXQgcmVib290CgoyMDA0LTEwLTA1IDAwOjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHBhdGNoIGZyb20ganByYWthc2hiYWJ1OiBtb3ZlIGVuZGZzZW50IGNhbGwgbmVhciBzZXRmc2VudCB0byBhdm9pZCBjb21waWxlIGVycm9yCgoyMDA0LTEwLTA0IDIwOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZWxtaW5hdGUgdXNlIG9mIFRPRE9fZmluZF8qIHVuZGVmaW5lZCBtYWNyb3MKCjIwMDQtMTAtMDQgMjA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHB1dCBpcnJldmVyc2libGVfY29tbWl0IHNldHRpbmcgaW4gZ2VuZXJhdGVkIGRlZmF1bHQtdGFibGUtKgoKMjAwNC0xMC0wNCAyMDoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBlbG1pbmF0ZSB1c2Ugb2YgVE9ET19maW5kXyogdW5kZWZpbmVkIG1hY3JvcwoKMjAwNC0xMC0wNCAxNTowOSAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBSZW5hbWUgZ19zekFwcE5hbWUgdG8gYXBwX25hbWUgdG8gZm9sbG93IG5hbWluZyBzdGFuZGFyZHMKCjIwMDQtMTAtMDQgMTE6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLCBub2RlLXNldC5tMmkKOgoKICAgLSBtYWtlIGNvbW1lbnRzIG1vcmUgdW5pcXVlIChoZWxwIG91dCBkaWZmKQogICAtIHJlbW92ZSBzb21lIGV4dHJhbmVvdXMgY29tbWVudHMKCjIwMDQtMTAtMDQgMTE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB1c2UgZnVsbCBwYXRocyBpbnN0ZWFkIG9mIHJlbGF0aXZlCgoyMDA0LTEwLTA0IDExOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIGFkZCBkZWJ1ZyB0b2tlbnMKCjIwMDQtMTAtMDQgMDk6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzdG9yZSBwZXJtYW5lbnQgcm93cyB0b28KCjIwMDQtMTAtMDQgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBkb24ndCByZXNldCBvcGVyX3N0YXR1cyBmbGFncywgaW9jdGwgY29kZSBoYXMgYWxyZWFkeSBzZXQgdGhlbQoKMjAwNC0xMC0wNCAwOTo0OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGxpc3QgYWxsIGxvY2F0aW9ucyB0byB1cGRhdGUgaW4gZmxvd2NoYXJ0IGNvbW1lbnRzCgoyMDA0LTEwLTAzIDE4OjIyICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgVW5yZWdpc3RlciBzZXJ2aWNlcyBvbiB1bmluc3RhbGwsIGFkZCBtaXNzaW5nIG1pYnMsIG1pYjJjIGFuZCBoZWFkZXIgZmlsZXMuCgoyMDA0LTEwLTAzIDE0OjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgZnJvbSBDb3JleSBXcmlnaHQ6IGZpeCBzZW5zb3JfYXJyYXkgc2l6ZSBsaW1pdCB0ZXN0CgoyMDA0LTEwLTAzIDEwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBhcHBseSBtaXNzZWQgYml0IGZyb20gcHJldmlvdXMgcGF0Y2gKCjIwMDQtMTAtMDMgMDg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIC0gYXBwbHkgcGF0Y2ggZnJvbSBHZWVydCBEZSBQZXV0ZXIgWyAxMDIyOTQxIF0gU3BlZWQgdXAgYWRkaW5nIGEgcm93IHRvIGEgdGFibGUKICAgICAtIChzbGlnaHRseSBtb2RpZmllZCB2ZXJzaW9uKQogICAgIC0gdGVzdCBmb3IgYXBwZW5kIGJlZm9yZSBsaW5lYXIgc2VhcmNoCiAgICAgLSBzYXZlIHJjIGluc3RlYWQgb2YgcmVwZWF0aW5nIGZ1bmN0aW9uIGNhbGwKCjIwMDQtMTAtMDMgMDc6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcGF0Y2ggZnJvbSBQYXRyaWNrIFdlbGNoZTsgY2hlY2sgZm9yIE5VTEwgYmVmb3JlIGRlcmVmCgoyMDA0LTEwLTAyIDIwOjUxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgQWRkIHN0ZXAgdG8gY29tcGFyZSBjb21waWxlZCBhbmQgaW5zdGFsbGVkIGZvbGRlcnMgdG8gbG9jYXRlIG1pc3NpbmcgZmlsZXMKCjIwMDQtMTAtMDEgMjA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc3lzY29uZiBhbmQgdGltZXMgZnVuY3Rpb25zIGFuZCBzeXMvdGltZXMuaCBoZWFkZXIKCjIwMDQtMTAtMDEgMjA6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBzbm1wdjMuYzoKCiAgIFByb3BlciBmaXggaXQgdjMgZW5naW5ldGltZSB3cmFwcGluZyBwcm9ibGVtLiAgRmFpcmx5IHBvcnRhYmxlICYmIHVzZXMgdGltZXMoKS4KCjIwMDQtMTAtMDEgMjA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIGNyZWF0ZSBhIG5ldyBjYWxjdWxhdGVfc2VjdGltZV9kaWZmIGZ1bmN0aW9uCgoyMDA0LTEwLTAxIDIwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc2V0IGhlbnQgdmFyaWFibGUgdG8gTlVMTCB0byBzcXVhc2ggYm9ndXMgY29tcGlsZXIgd2FybmluZwoKMjAwNC0xMC0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICBmaXggYnVnIFsgODY1NDE1IF0gaW5jb3JyZWN0IGlmQWRFbnRJZkluZGV4IGZpZWxkCgoyMDA0LTEwLTAxIDA4OjU4ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgU2ltcGxpZnkgYnVpbGQgc3RlcHMKCjIwMDQtMTAtMDEgMDU6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZTIuY29uZiwKICAgICBsb2NhbC9taWIyYy5jb25mLCBORVdTOgoKICAgQnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUsIGhhdmUgdGhlIGNvdXJhZ2Ugb2YgbXkgY29udmljdGlvbnMsCiAgIGFuZCBwdXNoIHRoZSBuZXcgKGZ1bGxlcikgaXRlcmF0ZSBjb25maWcgaW4gcHJlZmVyZW5jZSB0byB0aGUgZWFybGllcgogICAocmVsYXRpdmVseSBlbXB0eSkgZnJhbWV3b3JrLgogICAgIFtJIGp1c3Qga25vdyBJJ20gZ29pbmcgdG8gcmVncmV0IGRvaW5nIHRoaXMuLi4uLl0KCjIwMDQtMDktMzAgMjA6MTAgIHdhc21pdGgzMgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBVcGRhdGVkIHRoZSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBiYXRjaCBmaWxlcyBmb3IgdGhlIFdpbmRvd3MgaW5zdGFsbGVyIHNjcmlwdC4KICAgQXBwbGllZCBhIG1vZGlmaWVkIHBhdGNoIFsgMTAzNzY5NSBdIHdpdGggZWRpdHMgbWFkZSBieSBBbGV4IEJ1cmdlciBhbmQgbXlzZWxmLgogICBUaGUgcGF0Y2ggYWxzbyByZW1vdmVzIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB0aGUgc2NyaXB0IHRoYXQgd2VyZSBub3QKICAgYmVpbmcgaW5zdGFsbGVkLgoKMjAwNC0wOS0zMCAxMToxMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNoYW5nZSA1IC0+IHZhcmlvdXMgc28gd2Ugc3RvcCBnZXR0aW5nIGl0IHdyb25nCgoyMDA0LTA5LTMwIDA4OjU5ICBhbGV4X2IKCiAgICogd2luMzIvYnVpbGQucGw6CgogICBGb3IgYnVnIDEwMzc1MjQ6IFNldCBwYXRoIHRvIC5ETEwgZm9yIFBlcmwgYnVpbGQgLyB0ZXN0CgoyMDA0LTA5LTMwIDA1OjQ4ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBIYXZlICdyZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZycgdGFrZSBub3RlIG9mIHRoZQogICBpbml0aWFsIGxlbmd0aCB3aGVuIHVzaW5nIGV4aXN0aW5nIGJ1ZmZlcnMuCgoyMDA0LTA5LTMwIDAyOjU1ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBlcnJvcnMgZm9yIGFueSBtaXNzaW5nIE1BTjVHIGZpbGVzIChlLmcuLCBtaWIyYy5jb25mLjUpCgoyMDA0LTA5LTMwIDAyOjQzICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICBhZGQgREVMQVkgYWZ0ZXIgc2V0IHRvIGFsbG93IHRpbWUgZm9yIHRyYXAgdG8gZmlyZSBhbmQgYmUgbG9nZ2VkLgoKMjAwNC0wOS0zMCAwMTozOCAgc2xpZgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCAiSW5jb25zaXN0ZW50IG9wZXJhdG9yIGZvciB0ZXN0IiB3aGljaCB3YXMgaW50cm9kdWNlZCB3aGVuCiAgIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBpbiBpbnN0YWxsc3ViZGlyaGVhZGVycy4KICAgSW5kZW50IGxpbmVzIG9mIHJ1bGUgYm9kaWVzIHVzaW5nIHRhYiBvbmx5IChhIHJlcXVpcmVtZW50IGZvciBzb21lICJtYWtlIikuCiAgIFJlbW92ZSBleHRyYW5lb3VzIHdoaXRlc3BhY2UgbmVhciB0aGUgZW5kIG9mIGNvbnRpbnVhdGlvbiBsaW5lcy4KCjIwMDQtMDktMjkgMjM6MTggIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCB0cnkgdG8gaW5zdGFsbCB1Y2Qtc25tcC9hZ2VudF9tb2R1bGVfY29uZmlnLmggKG5vIHN1Y2ggZmlsZSkKCjIwMDQtMDktMjkgMTg6MDIgIGFsZXhfYgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIHNucHJpbnRmIG5vdyB1c2VzIHNpemVvZihvYmplY3QpCgoyMDA0LTA5LTI5IDE3OjM1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBub3RlIGltcG9ydGFuY2Ugb2YgbWF0Y2hpbmcgTWVzc2FnZUlkIHZhbHVlIGZvciBSZXBvcnRFdmVudC4KCjIwMDQtMDktMjkgMTU6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFBhdGNoOiAxMDMxMDQ2IHdoaXRlIHNwYWNlIHRhYiBkYW1hZ2UKCjIwMDQtMDktMjkgMTU6NDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNC0wOS0yOSAxNTozOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaDogWyAxMDM0MTU2IF0gQ2xhcmlmeSBPcGVuU1NMIHJlcS4gaW4gc25tcGQuY29uZi41CgoyMDA0LTA5LTI5IDE1OjM2ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIHNlY3Rpb24gdG8gbWVudGlvbiB0aGUgbmVlZCBmb3IgYSByZWJvb3QgdG8KICAgYWxsb3cgc3lzdGVtIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBiZSB1c2VkLgoKMjAwNC0wOS0yOSAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBbIDEwMTEzMzEgXSB2YWNtX2Rlc3Ryb3lBY2Nlc3NFbnRyeSB3YXMgZG91YmxlIGNoZWNraW5nIGEgdmFsdWUgYW5kIG1pc3NuaWcgYW5vdGhlci4KCjIwMDQtMDktMjkgMTU6MDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgcmVtb3ZlIGphcGFuIG1pcnJvciBhcyB0aGUgbWFpbnRhaW5lciBwYXNzZWQgYXdheQoKMjAwNC0wOS0yOSAxNDoyMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgZml4IGJ1ZyAjSUZvcmdvdCB0byBmaXggYWdlbnR4IHVzYWdlIG9uIHdpbmRvd3MgdG8gdXNlIGEgcmVhbCBzbm1wZC5jb25mIHRva2VuIGZvciBzb2NrZXQgYWRkcmVzcyBzdXBwb3J0CgoyMDA0LTA5LTI5IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIHJlbW92ZSBub24tcG9ydGFibGUgKGJ1dCBuaWNlIGdvYWwpIG9wdGltaXplZCBoZWFkZXIgaW5zdGFsbGF0aW9uLiAgQnJlYWtzIG9uIGZyZWVic2Qgc3lzdGVtcyB3aGVyZSBjbXAgZXhpdHMgd2l0aCBzdGF0dXMgMgoKMjAwNC0wOS0yOSAxMDozNCAgYWxleF9iCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQXBwbHkgcGF0Y2ggaW4gYnVnIDkyNjM4OSBieSBNaWtlIFNsaWZjYWsgdG8gZml4IFdpbjMyIGV2ZW50IGxvZyBsb2dnaW5nCiAgIGZvciBzbm1wdHJhcGQgYW5kIHNubXBkLiAgQWRkcyBzbm1wX2xvZ19zeXNsb2duYW1lKCkgZnVuY3Rpb24gd2hpY2gKICAgaXMgbm93IHVzZWQgYnkgb3BlbmxvZygpLgoKMjAwNC0wOS0yOSAwNzo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcmVtb3ZlIHh4eCBjb21tZW50cyBpbiBnZW5lcmF0ZWQgY29kZQogICAtIHVwZGF0ZSBmb3IgcmVuYW1lIHRhYmxlX2NvbnRhaW5lciBmdW5jdGlvbnMKCjIwMDQtMDktMjkgMDc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIHJlbW92ZSB4eHggY29tbWVudHMgaW4gZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjkgMDc6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBjb252ZXJ0IG1pc3NpbmcgZGlyIGVycm9yIG1zZyB0byBkZWJ1ZyBtc2cKCjIwMDQtMDktMjggMTg6NDYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMjggMTg6NDUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSBjaGVjayBmb3IgbmV0L2lmX2FycC5oIGhlYWRlcgogICAtIHJ1biBhdXRvaGVhZGVyIHRvIHVwZGF0ZSBuZXQtc25tcC1jb25maWcuaC5pbgoKMjAwNC0wOS0yOCAxODo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFkZCB2bW5ldCB0byB0eXBlLWJ5LW5hbWUgZGV0ZWN0aW9uCgoyMDA0LTA5LTI4IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBpbmNsdWRlIG5ldC9pZl9hcnAuaCBzbyBhcnAgdHlwZSBkZXRlY3Rpb24gaGFzIGEgY2hhbmNlIHRvIHdvcmsKICAgLSBpZmRlZiBhcnBocmQgdHlwZXMgdGhhdCBhcmVuJ3QgY29tbW9uIChwcmV0dHkgbXVjaCBhbGwgb2YgdGhlbSkKICAgLSBkZWJ1ZyBtc2cgb24gdW5rbm93biB0eXBlCgoyMDA0LTA5LTI4IDE1OjI0ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgdXNlIHRoZSBjb3JyZWN0IGh0b25zIGZ1bmN0aW9uIHRvIGFzc2lnbiB0byBhIE5CTyBvYmplY3QuCgoyMDA0LTA5LTI4IDEzOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgLSBmaXJzdCB1cGRhdGUgaW4gYSB3aGlsZQogICAtIHVzZSBjcmVhdGVfZmV3ZXJfZmlsZXMgdG8gZGV0ZXJtaW5lIGNvcnJlY3QgZmlsZSBuYW1lCiAgIC0gY2hnIGluZGV4IGNvbnRleHQgdG8gbWliIGNvbnRleHQKICAgLSBjaGcgdGFibGUgY29udGV4dCB0byByb3cgcmVxdWVzdCBjb250ZXh0CiAgIC0gcmVtb3ZlIGFzc3VtcHRpb25zIGFib3V0IGRhdGEgYWNjZXNzIG1ldGhvZAogICAtIGFkZCBleGFtcGxlIGZ1bmN0aW9uIGZsb3cgKHcvc291cmNlIGZpbGUpIGZvciB2YXJpb3VzIHJlcXVlc3Qgc2NlbmFyaW9zCgoyMDA0LTA5LTI4IDA2OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgYWRkIGRlYnVnCgoyMDA0LTA5LTI4IDA1OjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIGZpeCBsZW5ndGggZm9yIG1lbWNweQoKMjAwNC0wOS0yNyAxNzoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZml4IGEgZmV3IGRlYnVnIG1lc3NhZ2VzCiAgIC0gbG9nIGVycm9yIG9uIHVrbm93biBjb2x1bW4KICAgLSBkb24ndCBwdXQgdW5kb18oc2V0dXB8Y2xlYW51cCkgaW4gaW50ZXJmYWNlIGNvZGUgZm9yIGdlbmVyYXRlZCBzdHJ1Y3R1cmVzCiAgIC0gY2FsbCBub2RlIHVuZG9fc2V0dXAgZnVuY3Rpb25zIGFmdGVyIHJvdyB1bmRvX3NldHVwCgoyMDA0LTA5LTI3IDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHJlbW92ZSBhIGJsYW5rIGxpbmUgdGhhdCBzbnVjayBpbgoKMjAwNC0wOS0yNyAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgZml4IGxvZ2ljIHRlc3QgKGRlZnZhbCBpcyBhIHN0cmluZywgbm90IGEgZmxhZykKCjIwMDQtMDktMjcgMTc6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHNraXAgdW5kb19jbGVhbnVwIGlmIHVuZG9fc2V0dXAgd2Fzbid0IHJ1bgoKMjAwNC0wOS0yNyAxNDozNiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIGZpeGluZyBTWU5PUFNJUyBpbiBzbm1wbmV0c3RhdCwgc25tcGRlbHRhIGFuZCBzbm1wZGYKCjIwMDQtMDktMjcgMTQ6MjEgIGFsZXhfYgoKICAgKiBtYW4vOiBzbm1wZGVsdGEuMSwgc25tcGRmLjEsIHNubXBuZXRzdGF0LjE6CgogICBNYWtlIGNvbW1hbmRzIGluIFNZTk9QU0lTIC8gREVTQ1JJUFRJT04gc2VjdGlvbiBib2xkCgoyMDA0LTA5LTI3IDEyOjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWxsb3cgZm9yIGZpbmVyIGdyYWluZWQgZGVidWcgY29udHJvbAoKMjAwNC0wOS0yNyAxMDo0NCAgYWxleF9iCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWVyZ2VkIG1vc3QgV3JpdGVUb0V2ZW50TG9nIGFuZCBEaXNwbGF5RXJyb3IgY2FsbHMgaW50byBQcm9jZXNzRXJyb3Igc28gZXZlbnQsIGNvbnNvbGUgJiBwb3AtdXAgbWVzc2FnZXMgYXJlIGNvbnNpc3RlbnQuICBDaGFuZ2VkIGFsbCBzdHByaW50ZidzIHRvIHNucHJpbnRmcy4KCjIwMDQtMDktMjcgMDY6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZml4IHR5cG8KCjIwMDQtMDktMjcgMDU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgZG9uJ3QgbW9kaWZ5IHRhYmxlIHJlcXVlc3QgZGF0YSBpZiBubyBuZXh0IGNvbHVtbgoKMjAwNC0wOS0yNiAxMzo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgLSBkZWJ1ZyB0b2tlbiBjb25zaXN0ZW5jeQogICAtIHJlbW92ZSBkdXBsaWNhdGUgdmFsdWUgbWFwIGZvciBpbmRleGVzCgoyMDA0LTA5LTI2IDEzOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwosIG5vZGUtZ2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksCiAgICAgcGFyZW50LXNldC5tMmk6CgogICAtIGRlYnVnIHRva2VuIGNvbnNpc3RlbmN5CiAgIC0gYWRkIG1pc3NpbmcgZGVidWdzCgoyMDA0LTA5LTI2IDEzOjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICBmaXggcGF0aHMKCjIwMDQtMDktMjQgMTI6MDMgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICB3aGVuIGNyZWF0aW5nIGFkZHJlc3MgZnJvbSBvc3RyaW5nLCBjb252ZXJ0IHBvcnQgdG8gbmV0d29yayBieXRlIG9yZGVyCgoyMDA0LTA5LTI0IDA5OjE1ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gZml4IGNvbW1hcyBpbiBjb21tZW50ZWQgb3V0IGl0ZW1zCgoyMDA0LTA5LTI0IDA3OjU0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgTGludXggbWVtb3J5IGJ1ZmZlcnMgcGF0Y2ggZnJvbSBLYWogTmllbWkgKEZlZG9yYSAqaHJfc3RvcmFnZS1tYnVmLXYyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGluaXQgaW5wdXQvb3V0cHV0IHZhcmlhYmxlIHNhX2VudGVycHJpc2VvaWRfbGVuIChGZWRvcmEgKnNtdXgtc3RhY2stdmFyLnBhdGNoKQoKMjAwNC0wOS0yNCAwNzozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgd2hlbiBjcmVhdGluZyBhZGRyZXNzIGZyb20gb3N0cmluZywgY29udmVydCBwb3J0IHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgoKMjAwNC0wOS0yNCAwNjoxOCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvc25tcGtzbS5jOgoKICAgcGF0Y2ggOTIzNTExIGFkZHMgc3VwcG9ydCBmb3Igbm9uLWhvc3Qgc2VydmljZSBwcmluY2lwYWwgZm9yIGtzbQoKMjAwNC0wOS0yNCAwNTo1MCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoIDEwMTAzOTUgcmVtb3ZlIGR1cGxpY2F0ZSBjaGVja3MgZm9yIHNucHJpbnRmIGFuZCBzdHJ0b3VsCiAgIHBhdGNoIDEwMDk3MTIgY2hlY2sgZm9yIGdldGhvc3RieW5hbWUgaW4gLWxzb2NrZXQgZm9yIFVuaXh3YXJlCgoyMDA0LTA5LTI0IDA1OjMwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggMTAzMjYwMiBzdXBwb3J0cyBMaW51eCBjcm9zcyBjb21waWxlciBmb3IgV2luZG93cyAodGFyZ2V0IG1pbmd3MzJtc3ZjKS4KCjIwMDQtMDktMjMgMTY6MTUgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQ6CgogICB1bmRvIHBhdGNoICMxMDI3NTIyIGFzIGl0IHZpb2xhdGVzIFJGQyAxOTAyIHNlY3Rpb24gMTAuMgogICB3aGVuIHRoZSBNSUIgb2JqZWN0cyB3ZXJlIGNoYW5nZWQuCgoyMDA0LTA5LTIzIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9zY2FwaS5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgcmVxdWlyZWQgbGVuZ3RoIG9mIGEgcHJpdmFjeSBrZXkKCjIwMDQtMDktMjMgMTM6MjQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKOgoKICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlCiAgIC0gZml4IGZ1bmN0aW9uIGNhbGwKICAgLSBmaXggcmVuYW1lZCB2YXIgbWlzc2VkIGluIG1lcmdlCgoyMDA0LTA5LTIzIDA5OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0OgoKICAgYXBwbHkgcGF0Y2ggIzEwMjc1MjIgdG8gcGVybWl0IHJlcG9ydGluZyBuZWdhdGl2ZSBzZW5zb3IgdmFsdWVzCgoyMDA0LTA5LTIzIDA5OjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYXBwbHkgbW9kaWZpZWQgcGF0Y2ggIzEwMjc1MjEgdG8gZml4IHByb2JsZW1zIHdpdGggc2Vuc29yIGNhdGVnb3JpZXMgKHR5cGVzKS4KCjIwMDQtMDktMjMgMDg6NTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBhcHBseSBwYXJ0IG9mIHBhdGNoICM5NjAyNjkgdG8gcmVsZWFzZSBtZW1vcnkgcmV0dXJuZWQgZnJvbSBzZW5zb3JfZ2V0X2xhYmVsCgoyMDA0LTA5LTIyIDE3OjUxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaHRtbGhlbHAvOiBzbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBzbm1wZC5jb25mLndpbjMyLmh0bWwsIHNubXB0cmFwZC5jb25mLndpbjMyLmh0bWw6CgogICBwYXRjaCAxMDMzMDUyIGZyb20gQWxleCBCdXJnZXI6IFdpbjMyOiBVcGRhdGVkIGh0bWxoZWxwIGZpbGVzIGZvciAqLmNvbmYKCjIwMDQtMDktMjIgMTE6MjAgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICBhcHBseSBwYXRjaCAjMTAzMDkxMyB0byBzdXBwcmVzcyB3aW5kb3dzIHBvcHVwcyBmb3Igc2VydmljZSByZWcvdW5yZWcgZXJyb3JzLgogICBlcnJvcnMgYXJlIHByaW50ZWQgdG8gc3RkZXJyIGlmIC1xdWlldCBwYXJhbWV0ZXIgaXMgc3VwcGxpZWQuCgoyMDA0LTA5LTIyIDExOjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sOgoKICAgYXBwbHkgcGF0Y2gjMTAzOTAwIHNvIHRoYXQgaW50cm8gbW9yZSBjbG9zZWx5IG1hdGNoZXMgY3VycmVudCB3ZWIgc2l0ZSBob21lIHBhZ2UuCiAgIGFsc28gYWRqdXN0IGJ1aWxkIGluc3RydWN0aW9ucyB0byByZW1vdmUgZXhhbXBsZSBhbmQgZGVtbyBNSUJzIGZyb20gYnVpbGQuCgoyMDA0LTA5LTIyIDExOjAxICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYXBwbHkgcGF0Y2gjMTAyODk3NiBjaGVjayB2YWx1ZXMgZm9yIGxhYmVsLCBpaWQgYmVmb3JlIGRlcmVmZXJlbmNlLgogICBGaXhlcyBwZXJsIG1vZHVsZSBmYXVsdCwgYXN5bmMgY2FsbGJhY2suIFNlZSBSZWRIYXQgYnVnICMxMTEzMTkKCjIwMDQtMDktMjIgMDk6MzYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgcGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gc3VwcG9ydCBrZXkgY2hhbmdpbmcgZm9yIGxvY2FsaXplZC1vbmx5IGtleXMKCjIwMDQtMDktMjIgMDc6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGF0Y2ggMTAyODkyNyBmcm9tIEFuZHkgU21pdGggZml4ZXMgYnVnIDk3Mjc5NzsgcmVnaXN0ZXJpbmcgd2luMzIKICAgc25tcGQvc25tcHRyYXBkIHNlcnZpY2VzIGluY2x1ZGVzIHBhdGhzIHRvIGNvbmZpZyBmaWxlIGFuZCB0byBsb2cgZmlsZS4KCjIwMDQtMDktMjIgMDc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS86CiAgICAgdXNtREhVc2VyS2V5VGFibGUuYywgdXNtREhVc2VyS2V5VGFibGUuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYywgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaCwgdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yMSAxOTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wOS0yMSAxOTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGRvbid0IGdlbmVyYXRlIG1hY3JvcyB0aGF0IGFyZSBpbiBtZmQuaAoKMjAwNC0wOS0yMSAxOTozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGZpeCB0eXBvCgoyMDA0LTA5LTIxIDE5OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIG9ubHkgZ2VuZXJhdGUgcm93IGNyZWF0aW9uIGNoZWNrIGlmIG0yY190YWJsZV9yb3dfY3JlYXRpb24gc2V0CgoyMDA0LTA5LTIxIDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICAtIHNldCB1cCBtYWNybyB3L3JlcXVpcmVkIGNvbHVtbnMgZm9yIHJvdyBjcmVhdGlvbgoKMjAwNC0wOS0yMSAxNjo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmY6CgogICBzdG9yYWdlIGZvciB0YWJsZSBpbmRleGVzIGFuZCBjb2x1bW5zCgoyMDA0LTA5LTIxIDE2OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBtb3ZlIHJvd19tZXJnZSBhZnRlciB0YWJsZV9jb250YWluZXIgaW4gaGFuZGxlciBjaGFpbgoKMjAwNC0wOS0yMSAxNjozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIC0gaW5jcmVhc2UgY29udGV4dCBmb3IgZGlmZgogICAtIGluY3JlYXNlIGZ1enogZm9yIHBhdGNoCgoyMDA0LTA5LTIxIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSBhbGxvY2F0ZSB0YWcgc3RvcmFnZSBlYXJsaWVyLCB3aXRoIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0aW9uCiAgIC0gYWxsb2Mgc3BhY2UgZm9yIG51bGwgdGVybWluYXRpb24gb2YgbmFtZQogICAtIHJldHVybiBlcnJvciBpZiBhbGxvY2F0aW9ucyBmYWlsCgoyMDA0LTA5LTIxIDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHNldCBlbmRvZm1pYnZpZXcgd2hlbiBnZXRuZXh0IGdvZXMgYmV5b25kIGxhc3QgaXRlbSBpbiB0YWJsZQoKMjAwNC0wOS0yMSAxNjoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBtYXJrIHByb2Nlc3NlZCByZXF1ZXN0cyBhcyBET05FIHNvIHRoZXkgYXJlbid0IG1lcmdlZAoKMjAwNC0wOS0yMSAxNDo1OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGlmZGVmL2NvbW1lbnQgc29tZSBkZWJ1ZyBhc3NlcnQgY29kZSB0aGF0IGdldHMgaGl0IGluIHJhcmUgY2FzZXMKCjIwMDQtMDktMjEgMTI6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgcGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmFnYXJrYXIgdG8gc3VwcG9ydCBrZXkgY2hhbmdpbmcgZm9yIGxvY2FsaXplZC1vbmx5IGtleXMKCjIwMDQtMDktMjEgMDY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgUGF0Y2ggZnJvbSBBYmhpaml0IEhheWF0bmEgdG8gZml4IERIIGtleSBsZW5ndGhzCgoyMDA0LTA5LTIxIDA2OjQzICBoYXJkYWtlcgoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKOgoKICAgY2hlY2sgYSBmZXcgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0KCjIwMDQtMDktMTcgMDE6MjIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3IgYW5kIGluY2x1ZGUgcnBtL3JwbWRiLmgKCjIwMDQtMDktMTcgMDE6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFRoaXMgd2FzIG5vdCBhbHdheXMgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDA0LTA5LTE3IDAwOjU4ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBGaXggT3BlblNTTCBjaGVjaCB0byB3b3JrIG9uIDY0LWJpdCBTb2xhcmlzIGNvbXBpbGUgd2l0aCAzMi1iaXQgT3BlblNTTAogICBpbnN0YWxsZWQgLi4uCgoyMDA0LTA5LTE2IDEwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmYKCjIwMDQtMDktMTYgMTA6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIGRvbid0IGZyZWUgTlVMTCBwb2ludGVyCiAgIC0gdXBjYXNlIGZpcnN0IHdvcmQgaW4gc2VudGVuY2UKICAgLSBleHBhbmQgbW9yZSBvbiBub0NyZWF0aW9uIGV4cGxhbml0b3J5IG1lc3NhZ2UKICAgLSBhZGQgZXhwbGFuaXRvcnkgbWVzc2FnZSBmb3IgaW5jb25zaXN0ZW50TmFtZQoKMjAwNC0wOS0xNiAxMDoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGxvZyBlcnJvciBtZXNzYWdlIGlmIGEgTUlCIGRpcmVjdG9yeSBjYW5ub3QgYmUgb3BlbmVkCgoyMDA0LTA5LTE2IDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ublRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvTWFrZWZpbGUsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgZGF0YSBhY2Nlc3MgZm9yIHRjcC1taWIgdGNwIGNvbm5lY3Rpb25zIChpcHY0IG9ubHkpCgoyMDA0LTA5LTE2IDA4OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzCiAgIC0gY3JlYXRlIGRlZmF1bHQtbm9kZS0ke25vZGV9Lm0yZCB3L2N1cnJlbnQgdmFsdWVzLCBpZmYgZG9lc24ndCBleGlzdAoKMjAwNC0wOS0xNiAwODoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBkb24ndCBnZW5lcmF0ZSBtYXBwaW5nIGNvZGUgaWYgc2tpcCBtYXBwaW5nIHNldAoKMjAwNC0wOS0xNSAxNzoyMiAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgZnJlZWJzZDUvNiBoZWFkZXJzCgoyMDA0LTA5LTE1IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBhbiBvcHBzLiAgRGVsZXRlIHRoZSB1c20gc3RhdGUgcmVmIGJlZm9yZSB0aGUgaGFuZGxpbmcgb2YgcmVwb3J0cyBzaW5jZSBpdCBkaWRuJ3QgbmVlZCBpdCBiZWZvcmUKCjIwMDQtMDktMTUgMDk6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oOgoKICAgbWFrZSB0aGUgSGFuZGxlUmVwb3J0IGNhbGxiYWNrIHRha2UgYSB0cmFuc3BvcnQgcG9pbnRlcgoKMjAwNC0wOS0xNSAwOTo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBNYWtlIHRoZSB1c20gbW9kdWxlIGhhbmRsZSBpdHMgb3duIHJlcHJvdHMKCjIwMDQtMDktMTUgMDk6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IGZyZWUgdGhlIHN0YXRlIHJlZmVyZW5jZSB0aWxsIGFmdGVyIHRoZSBoYW5kbGVfcmVwb3J0X3BkdSBjYWxsYmFjayBpcyBjYWxsZWQuICBBbHNvIHBhc3MgaW4gdGhlIHRyYW5zcG9ydCB0byB0aGUgc2FtZSBob29rLgoKMjAwNC0wOS0xNSAwOToxOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBkYXJ3aW43IGhlYWRlcgoKMjAwNC0wOS0xNSAwNzoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICAtIGNoZWNrIGNvbHVtbl9zZXRfZmxhZ3MgdG8gc2VlIGlmIHJvd3N0YXR1cyBzZXQKICAgICAtIG9ubHkgY2hlY2sgdHJhbnNpdGlvbiBpZiBzZXQKICAgICAtIGNoZWNrIHJlcXVpcmVkIHJvd3Mgb24gY3JlYXRlQW5kR28KICAgICAtIGRvbid0IGFsbG93IGRlc3Ryb3kgaWYgb3RoZXIgY29sdW1ucyBzZXQKICAgLSBkb24ndCBhbGxvdyBjcmVhdGlvbiBpZiByb3dzdGF0dXMgbm90IHNldAoKMjAwNC0wOS0xNSAwNzoyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgLSByZW5hbWUgc2V0X2ZsYWdzCiAgIC0gYWRkIGNvbW1lbnQgYWJvdXQgcm93IGNyZWF0ZWQgZmxhZyBpbiByb3dyZXFfZmxhZ3MKCjIwMDQtMDktMTUgMDc6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgY29tbWVudCBncmFtbWFyIHR3ZWFrCgoyMDA0LTA5LTE1IDA3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBhZGQgcm93cmVxX2ZsYWdzCiAgIC0gcmVuYW1lIHNldF9mbGFncyB0byBjb2x1bW5fc2V0X2ZsYWdzCiAgIC0gdXNlIGNvbnRleHQgbmFtZSBmb3IgZXhhbXBsZSB1c2VyIGNvbnRleHQgZGF0YSBsaXN0CgoyMDA0LTA5LTE1IDA3OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IG1hY3JvIHRvIHZhbGlkYXRlIFNOTVAgZXJyb3IgY29kZXMKICAgLSB1c2UgbmV3IHJvd3JlcV9mbGFncyB0byBzZXQvY2xlYXIgbmV3IHJvdyBmbGFnCiAgIC0gc2V0IHJlcXVlc3QgZXJyb3Igb24gaW52YWxpZCBvaWQgZm9yIG5ldyByb3cKICAgLSBjbGVhciB1bmRvIHBvaW50ZXIgYWZ0ZXIgcmVsZWFzaW5nIGl0CiAgIC0gc2V0IFdST05HTEVOR1RIIGZvciBiYWQgdmFyaWFibGUgc2l6ZQoKMjAwNC0wOS0xNSAwNzoxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgYWRkIGluY2x1ZGUgdG8gcXVpZXQgY29tcGlsZXIKCjIwMDQtMDktMTUgMDc6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICAtIGFkZCBwcm90b3R5cGUgZm9yIHNlX2ZpbmRfc2xpc3QKICAgLSB0d2VhayBjb21tZW50CgoyMDA0LTA5LTE1IDA3OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIG5ldyBtYWNybyB0byB2YWxpZGF0ZSBTTk1QIGVycm9yIGNvZGVzCgoyMDA0LTA5LTE1IDA3OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIC0gZGVmaW5lIGZsYWdzIGZvciByb3dyZXFfZmxhZ3MKCjIwMDQtMDktMTUgMDc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gbW92ZSBzdG9yYWdlIHR5cGUgaW50byBkYXRhIGFjY2VzcyBpbnRlcmZhY2UKICAgLSBhZGQvdXNlIHVuZG8gc3RvcmFnZSBmb3IgTGFzdENoYW5nZWQKICAgLSBhZGQgc3VwcG9ydCBmb3IgY3JlYXRpb24vZGVsZXRpb24gb2YgaXBhZGRyZXNzZXMgdmlhIFJvd1N0YXR1cwogICAtIGFkZCBmbGFncyBmb3IgcmVxdWlyZWQgY29sdW1ucwoKMjAwNC0wOS0xNSAwNjo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCgoyMDA0LTA5LTE1IDA2OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSB0d2VhayBsb2cgbWVzc2FnZSwgY29tbWVudHMKCjIwMDQtMDktMTUgMDY6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIHJlbW92ZSBhcmNoIGZsYWdzLCBhZGQgZGF0YSBsaXN0IGZvciBhcmNoIGRhdGEKICAgICAtIGFkZCAmIGNhbGwgYXJjaCBmdW5jdGlvbnMgb24gY3JlYXRlLCBjb3B5LCBkZWxldGUgaXBhZGRyZXNzIGVudHJ5CiAgIC0gYWRkIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAtIG5ldyBpcGFkZHJlc3Mgc2V0IChjcmVhdGUvZGVsZXRlIGlwIGFkZHJlc3MgYWxpYXNlcykKICAgLSBjaGFuZ2UgbWFjcm8gbmFtZQogICAtIGFkZCBmbGFnIGZvciBhbGlhc2VzCgoyMDA0LTA5LTE1IDA2OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSBhZGQgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGZpbmQgaW50ZXJmYWNlIG5hbWUgZnJvbSBpZkluZGV4CgoyMDA0LTA5LTE0IDE1OjAxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFVwZGF0ZSB0byBtb2R1bGFyaXplIGEgYml0IG1vcmUgdGhlIHNlY3VyaXR5IG1vZGVsIGluZnJhc3RydWN0dXJlOiByZXBvcnQgaGFuZGxpbmcgb3V0c291cmNlZCB0byB0aGUgc2VjbW9kCgoyMDA0LTA5LTEzIDE5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX29pZHMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oLAogICAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwKICAgICBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIC0gcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIHJlbW92ZSAnOycgZnJvbSBleHRlcm4gJ0MnIGhlYWRlciBjb250cnVjdHMKICAgICAoYWxsb3cgZysrIDMuNCBhbmQgYWJvdmUgdG8gY29tcGlsZSBuZXQtc25tcCkKCjIwMDQtMDktMTMgMDM6MzQgIHNsaWYKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2M2NvbmZpZzoKCiAgIHdoZW4gbWF0Y2hpbmcgQ1BQIGRlZmluZXMsIG1hdGNoIHRoZSBvbmVzIHdoaWNoIGJlZ2luIHRoZSBzb3VyY2UgaGVhZGVyIGxpbmUuCgoyMDA0LTA5LTEzIDAzOjIwICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaGMKLCB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhocCwKICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3JlYWRtZTJodG1sOgoKICAgYXBwbHkgcGF0Y2ggIzEwMjY2OSBXaW4zMiA1LjIgYnVpbGQgdXBkYXRlc2AKCjIwMDQtMDktMTIgMjI6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgLSBpbmNsdWRlIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cwogICAtIGluaXRpYWxpemUgZGVmYXVsdHMgcGVyIHRoZSBtaWIKCjIwMDQtMDktMTIgMjI6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBjaGFuZ2UgY29tbWVudAogICAtIGFkZCBzdG9yYWdlIHR5cGUKICAgLSBkZWZpbmUgZmxhZ3MgZm9yIHNldCBzdXBwb3J0CgoyMDA0LTA5LTEyIDIyOjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCBkYXRhIGxvb2t1cCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSB2YXJiaW5kcwoKMjAwNC0wOS0xMiAyMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggc2tpcHBpbmcgb2YgdW4tcmVnaXN0ZXJlZCBtb2RlcwogICAtIHJlbW92ZSByZXF1ZXN0IG5leHRfbW9kZSBzdHVmZiAobmV2ZXIgdXNlZCkKICAgLSBzaG9ydGVuIG11eCBkZWJ1ZyB0b2tlbgoKMjAwNC0wOS0xMCAxNTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBkb24ndCBtYXNrIHJldHVybiBjb2RlcyBpbiBpbnRlcm5hbCBmdW5jdGlvbnMKCjIwMDQtMDktMTAgMTU6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaDoKCiAgIGFkZCB1bmRvIHN0b3JhZ2UgZm9yIHJvd3N0YXR1cyBhbmQgc3RvcmFnZSB0eXBlCgoyMDA0LTA5LTEwIDE0OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICAtIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2JhYnlfc3RlcF9tb2RlMmZsYWcKICAgLSB1c2UgbmV3IGZ1bmN0aW9uLCBzbyBza2lwcGluZyB1bnJlZ2lzdGVyZWQgbW9kZXMgd29ya3MKCjIwMDQtMDktMTAgMTQ6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICAtIHVzZSBtZmQgc3VjY2UgbWFjcm8gaW5zdGVhZCBvZiBzbm1wIG1hY3JvCiAgIC0gaWYgY2hlY2sgcmV0dXJucyBhbiBlcnJvciwgcmV0dXJuIGltbWVkaWF0ZWx5CgoyMDA0LTA5LTEwIDE0OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1TdG9yYWdlVHlwZS1kZXBlbmRlbmNpZXMubTJpOgoKICAgdXNlIGNvcnJlY3QgZnVuY3Rpb24gbmFtZQoKMjAwNC0wOS0xMCAxMzowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGFkZCBkZWZpbmUgdG8gYWxsb3cgcm93LWNyZWF0aW9uCgoyMDA0LTA5LTEwIDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMTAgMDU6MzAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ2hlY2sgdGhhdCBhIHZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgdmFsaWQgTUlCIG9iamVjdCwKICAgYmVmb3JlIHRyeWluZyB0byBsb29rIGF0IGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIG9iamVjdC4KICAgKEZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBNRkQgc2NyaXB0cywgd2hpY2ggdXNlIHRoZSBtaWIyYwogICAgdmFyaWFibGUgZXhwYW5zaW9ucyBmb3Igbm9uLU1JQi1vYmplY3QgbmFtZXMgYXMgd2VsbCkuCgoyMDA0LTA5LTA5IDE2OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBmaXggbG9nIG1zZyB0eXBvCiAgIC0gc2V0IHJlcXVlc3QgZXJyb3JzIGluc3RlYWQgb2YgcmV0dXJuaW5nIGVycm9yIGZyb20gaGFuZGxlcgogICAtIGRlYnVnIG1zZ3MgZm9yIHJlcXVlc3QgZXJyb3JzCgoyMDA0LTA5LTA5IDE2OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBhZGQgbWlzc2luZyBxdW90ZQoKMjAwNC0wOS0wOSAwOToxNyAgZHRzMTIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gbmV3IE5FVC1TTk1QLUVYVEVORC1NSUIgc3VwcG9ydAogICAocGx1cyBtaW5vciBncmFtbWFyIGFuZCBmb3JtYXR0aW5nIHR3ZWFrcykKCjIwMDQtMDktMDkgMDc6MDEgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgYXBwbHkgcGF0Y2ggIzEwMjQzNTIgQ2hhbmdlcyBXaW5kb3dzIGluc3RhbGxlciB0byBhbGxvdyBzbm1wdHJhcGQgYXMgc2VydmljZS4KCjIwMDQtMDktMDkgMDY6NDkgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgZm9ybWF0dGluZyBwYXRjaCAjMTAyNDc0NiAob25lLWxpbmVyKSBmcm9tIEFsZXggQnVyZ2VyLgoKMjAwNC0wOS0wOSAwMzo0MyAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgZml4IGJ1ZyMxMDI1MDE0IC0gcmVtb3ZlIHVudXNlZHMsIHF1ZWxsIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5ncyBpbiA1LjIucHJlMQoKMjAwNC0wOS0wOSAwMzozMSAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbGFyZSBleHRlcm5hbCBmdW5jdGlvbiB3aXRoaW4gc2NvcGUgdXNlZC4KCjIwMDQtMDktMDkgMDM6MjIgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBidWcjMTAyNTAwNCBhcHBseSBtaW5vciBjb21tZW50IGFuZCBncmFtbWFyIGZpeGVzIHRvIHNubXBkLHNubXB0cmFwZAoKMjAwNC0wOS0wOCAyMDo1MiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcGFydGlhbCBmaXggYnVnICM5MDkyMjIgLSBtb3ZlIHdpbjMyIGNoYW5nZXMgaW5zaWRlICBfZGlzYWJsZV9zeXNsb2d7ZW50cnl9LAogICBkb250IHdyaXRlIHN0YW5kYXJkIGVycm9yIG9uIGZhaWx1cmUgdG8gY2xvc2UgZXZlbnQgbG9nIGZyb20gZGlzYWJsZV9zeXNsb2cuCgoyMDA0LTA5LTA4IDE4OjQzICBzbGlmCgogICAqIHdpbjMyLzogYWdlbnRfbW9kdWxlX2RvdF9jb25mLmgsIGFnZW50X21vZHVsZV9pbmNsdWRlcy5oCiwgYWdlbnRfbW9kdWxlX2luaXRzLmgsIGJ1aWxkLnBsLAogICAgIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIG5ldHNubXBtaWJzL01ha2VmaWxlLmluCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIEFwcGx5IG1vZHMgaW4gcGF0Y2ggIzEwMjQ4MTAgaW4gb3JkZXIgdG8gYnVpbGQgNS4yLnByZTEgb24gd2luMzIgTVNWQytNaW5HVy4KCjIwMDQtMDktMDggMDg6MzkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIGZpeCBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eSBtYWNybyBuYW1lCgoyMDA0LTA5LTA3IDIwOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBtYXAgZGF0YSBhY2Nlc3MgaWYgYWRkcmVzcyB0eXBlIHRvIG1pYiB0eXBlIGluIGluZGV4CgoyMDA0LTA5LTA3IDIwOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgcGFzcyBjb3JyZWN0IGNvbnRhaW5lciB0byB1cGRhdGUgY2hlY2sgZnVuY3Rpb25zbyBtaXNzaW5nIGFkZHJzIGFyZSByZW1vdmVkCgoyMDA0LTA5LTA3IDIwOjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgbnVsbCByb3dyZXFfY3R4IGlzIHZhbGlkIGluIHVuZG9fY2xlYW51cDsgc2ltcGx5IHJldHVybiBzdWNjZXNzCgoyMDA0LTA5LTA3IDIwOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSBmaXggaWZJbmRleCBsb29rdXAgZm9yIGludGVyZmFjZSBhbGlhc2VzCiAgIC0gYWRkIGRlYnVnIG1lc3NhZ2UKICAgLSBuZXcgZnVuY3Rpb24gdG8gc2V0IGlwYWRkcmVzcwoKMjAwNC0wOS0wNyAyMDozNSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGFkZCBzZSBwYWlycyBmb3IgYmFieSBzdGVwIG1vZGVzCgoyMDA0LTA5LTA3IDIwOjMyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIGtlZXAgcmVnaXN0ZXJlZCBtb2RlcyB3aXRoIG1pYiBoYW5kbGVyCiAgIC0gc2tpcCBsb3dlciBoYW5kbGVycyBmb3IgbW9kZXMgdGhhdCBoYW5kbGVyIGRpZG50IHJlZ2lzdGVyIGZvcgogICAtIHNraXAgdW5kbyBjb21taXQgaWYgaGFuZGxlciB3YXNudCBjYWxsZWQgZm9yIGNvbW1pdAogICAtIGRvbnQgYnJlYWsgb24gcmVxdWVzdCBlcnJvciBpbiBmaW5hbCBzdGVwcyAoZXF1aXZhbGVudCBvZiBjb21taXQvdW5kby9mcmVlKQogICAtIG1vcmUgZGVidWcgbXNncwoKMjAwNC0wOS0wNyAyMDoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgLSBzeW5jIG5hbWVzIG9mIEJBQllfU1RFUF8qIHdpdGggTU9ERV9CU1RFUF8qCiAgIC0gZGVmaW5lIHN0cnVjdHVyZSBmb3IgYmFieSBzdGVwcyBoYW5kbGVyIG1vZGUgdHJhY2tpbmcKCjIwMDQtMDktMDcgMjA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGFkZCBkZWJ1ZyBtc2cKCjIwMDQtMDktMDYgMjA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC0gYWRkIHBlcnNpc3RlbmNlIGZvciBpZkFsaWFzLCBpZkxpbmtVcERvd25UcmFwRW5hYmxlCiAgIC0gZG9uJ3QgYWxsb3cgc2V0IG9mIHByb21pc2N1b3VzIG1vZGUsIHNpbmNlIGl0J3Mgbm90IGltcGxlbWVudGVkCgoyMDA0LTA5LTA2IDE5OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBmaXggZml4ZWQgc2l6ZSBjaGVjawogICAtIGFkZCBhY2Nlc3MgdG8gY29udGFpbmVyIHBvaW50ZXIKCjIwMDQtMDktMDYgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIGRvbid0IGdlbmVyYXRlIGZpeGVkIHNpemUgY2hlY2sgZm9yIG9jdGV0IHN0cmluZ3MKCjIwMDQtMDktMDYgMTk6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgc2V0IHVwIHZhcnMgZm9yIGxlbmd0aHMgdG8gYmUgY29waWVkIGNvcnJlY3RseQoKMjAwNC0wOS0wNSAxODo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgcmVtb3ZlIGV4dGVybiBvZiBub24tZXhpc3RhbnQgdmFyCgoyMDA0LTA5LTAyIDA3OjIyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGRvbnQgaW5jbHVkZSBieXRlb3JkZXIuaCAtLSBhdm9pZHMgd2FybmluZyBzZWVuIG9uIFJlZEhhdAoKMjAwNC0wOS0wMiAwNjo1OCAgZHRzMTIKCiAgICogTkVXUzoKCiAgIE1lbnRpb24gdGhlIG90aGVyIG5ldyBtaWIyYyBjb25maWcgdGVtcGxhdGVzLCBhbmQgcHJvdmlkZSBhIGxpdHRsZQogICBtb3JlIGV4cGxhbmF0aW9uLiAgKFBsdXMgZml4aW5nIGEgY291cGxlIG9mIHR5cG9zKQoKMjAwNC0wOS0wMiAwNjo1MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBmaXggIzk5NTQ4OSBieSBvYnRhaW5pbmcgc3lzRGVzY3IgYW5kIHN5c0NvbnRhY3QgdGhyb3VnaCB3aW5kb3dzIG5hdGl2ZSBtZXRob2RzLgoKMjAwNC0wOS0wMiAwMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIC0gcmVxdWlyZSBhbGwgaWYtbWliIGludGVyZmFjZSBmb3IgbGludXgKCjIwMDQtMDktMDIgMDA6MDQgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAyICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAxICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDEgMjM6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgcmVxdWlyZSBleHBsaWNpdCBjb25maWd1cmUgZmxhZyBmb3IgZXhwZXJpbWVudGFsIG1mZCByZXdyaXRlIG1vZHVsZXMKCjIwMDQtMDktMDEgMjM6NTEgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBtZXJnZSA1LjEuMiBuZXdzCiAgIC0gYWRkIG90aGVyIHRpZGJpdHMgZ2xlYW5lZCBmcm9tIENoYW5nZWxvZwoKMjAwNC0wOS0wMSAyMzo1MSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4yLnByZTEKCjIwMDQtMDktMDEgMjI6NTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIG1hbiBwYWdlcwoKMjAwNC0wOS0wMSAyMjo1MSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zOgoKICAgY2hlY2sgaW4gbmV3IG1hbiBwYWdlcwoKMjAwNC0wOS0wMSAyMjozNyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0wOS0wMSAyMjoxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgYWZ0ZXIgcnVubmluZyBhdXRvaGVhZGVyCgoyMDA0LTA5LTAxIDIyOjE0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB1cGRhdGUgZm9yIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIyOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlLmgsIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCiwgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNvbnZlcnQgQysrIHN0eWxlIGNvbW1lbnRzIHRvIEMgc3R5bGUgY29tbWVudHMgKG9yIHJlbW92ZSB0aGVtKQoKMjAwNC0wOS0wMSAyMjowNSAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICByZWFkbWUgZm9yIE1hYyBPUyBYCgoyMDA0LTA5LTAxIDIyOjA0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAyMjowMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIxOjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXhwcmVzc2lvbi9nbnVjLmgsIGV4cHJlc3Npb24vaW42LmgKLCBleHByZXNzaW9uL2lwX3Zhci5oLCBleHByZXNzaW9uL2lwdjYuaCwKICAgICBleHByZXNzaW9uL3VkcF92YXIuaCwgcGluZy9nbnVjLmgsIHBpbmcvaW42LmgsCiAgICAgcGluZy9pcF92YXIuaCwgcGluZy9pcHY2LmgsIHBpbmcvdWRwX3Zhci5oLAogICAgIHRyYWNlcm91dGUvZ251Yy5oLCB0cmFjZXJvdXRlL2luNi5oLAogICAgIHRyYWNlcm91dGUvaXBfdmFyLmgsIHRyYWNlcm91dGUvaXB2Ni5oLAogICAgIHRyYWNlcm91dGUvdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmg6CgogICByZW1vdmUgR1BMIGxpY2Vuc2UgY29kZSwgcGx1cyBzb21lIGd1aWx0eS1ieS1hc3NvY2lhdGlvbiBmaWxlcwoKMjAwNC0wOS0wMSAyMDoxNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTAxIDIwOjEzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgb3BlbmJzZCBuZWVkcyBzeXMvdHlwZXMgYmVmb3JlIHRjcGQuaAoKMjAwNC0wOS0wMSAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgdHdlYWsgY29tbWVudCBhbmQgbG9nIG1lc3NhZ2UgZm9ybWF0CgoyMDA0LTA5LTAxIDE5OjMyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAtIHdoaXRlc3BhY2UgY2hhbmdlIHRvIGFkZCByZWFsIGxvZyBtZXNzYWdlIChsYXN0IGNoZWNraW5nIGhhZCB3cm9uZyBsb2cgbWVzc2FnZSkKICAgLSBhZGQgcG9ydCBudW1iZXIgdG8gZGVidWcgc3RhdGVtZW50CgoyMDA0LTA5LTAxIDE5OjI4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICAtIGluY3JlYXNlIG1heF9zZW5zb3JzCiAgIC0gYnJlYWsgd2hlbiBudW1iZXIgb2Ygc2Vuc29ycyBleGNlZWRzIG1heF9zZW5zb3JzCiAgIC0gYWRkIGRlYnVnCgoyMDA0LTA5LTAxIDE5OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAxOToyNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJhaWwgaWYgbG1fc2Vuc29ycyBoZWFkZXIvbGliIGNoZWNrcyBmYWlsCgoyMDA0LTA5LTAxIDE3OjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzoKCiAgIC0gZG9uJ3QgcmV0dXJuIGhhbmRsZXIgaWYgY2FuJ3QgYWxsb2NhdGUgc2dyb3VwCiAgIC0gdXNlIGxvY2FsIHZhciBmb3Igcm9vdG9pZCBtYWNoaW5hdGlvbnMsIGluc3RlYWQgb2YgcmVnaW5mbyByb290b2lkCiAgICAgKHJlYWxsb2Mgb2YgZXh0cmEgc3Vib2lkcyBkb2Vzbid0IHN1cnZpdmUgcmVnaXN0cmF0aW9uLCB3aGVuIHN1YnRyZWVfc3BsaXQKICAgICBjYWxscyBuZXRzbm1wX3N1YnRyZWVfZGVlcGNvcHkoKSkgW3Njb3JlIG9uZSBmb3IgbGliZWZlbmNlXQoKMjAwNC0wOS0wMSAxNzowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIG9ubHkgY29uZmlnX3JlcXVpcmUgaWYtbWliIGludGVyZmFjZV9jb21tb24sIG5vdCBhbGwgb2YgaWYtbWliIGludGVyZmFjZQoKMjAwNC0wOS0wMSAxNzowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICByZW1vdmUgY29uZmlnX3JlcXVpcmUgZm9yIHBsYXRmb3JtcyB3aGljaCBoYXZlbid0IGJlZW4gcG9ydGVkIHlldAoKMjAwNC0wOS0wMSAxNzowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9jb21tb24uYzoKCiAgIGlmZGVmIG91dCBhcmNoIHNwZWNpZmljIGZ1bmN0aW9ucyBpZiBhcmNoIG5vdCBzdXBwb3J0ZWQKCjIwMDQtMDktMDEgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgb25seSByZXF1aXJlIG5ldyBtZmQgbW9kdWxlcyBmb3IgbGludXgsIHVudGlsIG90aGVyIHBsYXRmb3JtcyBhcmUgcG9ydGVkCgoyMDA0LTA5LTAxIDE1OjI3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIGluY2x1ZGUgYXNtL3R5cGVzLmggc28gdGhhdCBhZ2VudCB3aWxsIGJ1aWxkIG9uIE1hbmRyYWtlIGZsYXZvcmVkIExpbnV4LgoKMjAwNC0wOS0wMSAxNDo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50CiAgIC0gZG9jdW1lbnQgdXNlIG9mIHNpbXBsaXN0aWMgX2xvY2sKCjIwMDQtMDktMDEgMTQ6MzAgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDYuaDoKCiAgIHByb3ZpZGUgaGVhZGVyIGZvciBGcmVlQlNEIDYuIGZpeGVzIGJ1ZyMxMDE4MjA5CgoyMDA0LTA5LTAxIDE0OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBvbmx5IGxvZyBvcGVuIGVyciBvbmNlICh1bnRpbCBzdWNjZXNzLCB0aGVuIHJlc2V0IGZsYWcpCgoyMDA0LTA5LTAxIDE0OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBjaGVjayBmb3IgTlVMTCBwb2ludGVyIGZyb20gZGF0YSBhY2Nlc3Mgcm91dGluZXMsICYgcmV0dXJuIHJlc291cmNlIHVuYXZhaWxhYmxlCgoyMDA0LTA5LTAxIDExOjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gb25seSBsb2cgZmlsZSBvcGVuIGVycm9yIG9uY2UgKHVudGlsIGEgc3VjY2Vzc2Z1bCBvcGVuKQogICAtIHJldHVybiBubyBlcnJvciBpZiBjb3VsZG4ndCBvcGVuIGlwdjYsIHNvIHdlIGNhbiBjb250aW51ZSB3L2lwdjQKCjIwMDQtMDktMDEgMTA6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSBlbGltaW5hdGUgZG91YmxlIGZyZWUgb24gZHVwbGljYXRlIHJlZ2lzdHJhdGlvbgogICAtIGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWtzIG9uIGZhaWxlZCByZWdpc3RyYXRpb24KICAgICAoaS5lLiBhbHdheXMgZnJlZSByZWdpbmZvIGlmIHJlZ2lzdHJhdGlvbiBmYWlscykKCjIwMDQtMDktMDEgMTA6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGVsaW1pbmF0ZSBkb3VibGUgZnJlZSBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCgoyMDA0LTA5LTAxIDA4OjI1ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEF0dGVtcHQgdG8gZW5zdXJlIHRoYXQgJ2ludDMyX3QnIGFuZCAoaWYgYXBwcm9wcmlhdGUpICdpbnQ2NF90JwogICB0eXBlcyAocGx1cyB1bnNpZ25lZCBlcXVpdmFsZW50cykgYXJlIGF2YWlsYWJsZS4KCjIwMDQtMDktMDEgMDY6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIFJlbW92ZSB1bmJhbGFuY2VkICJAZW5kQCIgc3RhdGVtZW50cy4KCjIwMDQtMDktMDEgMDU6NTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBQcm92aWRlIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGFibGUgY29uZmlnIHRlbXBsYXRlcywgYW5kCiAgIGRlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZW0gYSBsaXR0bGUgbW9yZSBmdWxseS4KCjIwMDQtMDktMDEgMDU6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmY6CgogICBGaXggbWlub3IgdHlwbwoKMjAwNC0wOC0zMSAyMTozNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gaW5mb3JtYXRpb24KICAgLSBhZGQgbm90ZSBvbiBydW5uaW5nIGN2czJjbCBvbiBhIGJyYW5jaAoKMjAwNC0wOC0zMSAyMToyNiAgcnN0b3J5CgogICAqIG1hbi9taWIyYy4xLmRlZiwgbG9jYWwvbWliMmMuY29uZjoKCiAgIGFkZCBpbmZvcm1hdGlvbiBhYm91dCBtaWIyYy5tZmQuY29uZgoKMjAwNC0wOC0zMSAyMDowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIC0gdXBkYXRlIGNvbW1lbnRzIG9uIGxpYnRvb2wgdmVyc2lvbmluZwogICAtIHVwZGF0ZSBmb3IgNS4yCgoyMDA0LTA4LTMxIDE2OjQzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGZpeCBmbG9hdCBjYWxjIGluIHZhcl9leHRlbnNpYmxlX2Rpc2sgcGVyIEhhcmFsZCBTdHJh4KWG4KSGg2JlcmdlciA8aHNAc3lzbG9nLmF0PgoKMjAwNC0wOC0zMSAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGFnZW50X21vZHVsZV9jb25maWcuaAoKMjAwNC0wOC0zMSAwMzoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgRGVjbGFyZSBoYW5kbGVycyBhcyBSV1JJVEUvUk9OTFkgYXMgYXBwcm9wcmlhdGUuCiAgIFN1cHByZXNzIFNFVCBoYW5kbGluZyBjb2RlIGZvciByZWFkLW9ubHkgdGFibGVzLgoKMjAwNC0wOC0zMSAwMzoyNSAgZHRzMTIKCiAgICogbG9jYWwvOiBzbm1wY29uZiwgbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmksCiAgICAgbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpLAogICAgIG1pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBtaWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtaWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBEYXZlJ3MgYmVpbmcgcGVybmlja2l0eSBhYm91dCBncmFtbWFyIGFnYWluLgogICAiSXQncyIgaXMgc2hvcnQgZm9yICJpdCBpcyIuCiAgICJCZWxvbmdpbmcgdG8gaXQiIGlzICJpdHMiIC0gbm8gYXBvc3Ryb3BoZS4KCjIwMDQtMDgtMzEgMDM6MjMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBJbXByb3ZlIGVycm9yIGhhbmRsaW5nIGZvciBpbnZhbGlkIFNFVCByZXF1ZXN0cy4KCjIwMDQtMDgtMzEgMDM6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBTdXBwcmVzcyBTRVQgaGFuZGxpbmcgY29kZSBmb3IgcmVhZC1vbmx5IHRhYmxlcy4KCjIwMDQtMDgtMzEgMDM6MTggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mCjoKCiAgIE9vcHMhICBtaWIyYyBjb25maWcgdHlwbwoKMjAwNC0wOC0zMSAwMzoxNiAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYKOgoKICAgRGVjbGFyZSBoYW5kbGVycyBhcyBSV1JJVEUvUk9OTFkgYXMgYXBwcm9wcmlhdGUuCgoyMDA0LTA4LTMxIDAzOjExICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mOgoKICAgQWx0ZXJuYXRpdmUgaXRlcmF0b3IgdGVtcGxhdGUuICBCYXNlZCBvbiBhIHNpbmdsZSBoYW5kbGVyICh1bmxpa2UKICAgJ2l0ZXJhdG9yX2FjY2VzcycpLCBidXQgc29tZXdoYXQgbW9yZSBjb21wbGV0ZSB0aGFuIHRoZSBvcmlnaW5hbCwKICAgcGFydGljdWxhcmx5IHcuci50LiBTRVQgaGFuZGxpbmcuCgoyMDA0LTA4LTMxIDAzOjA5ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbXByb3ZlIHRoZSBleGFtcGxlIGRhdGEgc3RydWN0dXJlIGRlZmluaXRpb24gKGVzcC4gdy5yLnQuIGluZGV4IHZhbHVlcykKCjIwMDQtMDgtMzEgMDA6MzcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIG5ldyBzdHJ1Y3QgdHlwZWRlZiwgbmV0c25tcF9oYW5kbGVyX2FyZ3MKCjIwMDQtMDgtMzEgMDA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5ldyB2b2lkIHBvaW50ZXIgZm9yIGNhY2hlIGhpbnQKICAgLSBkZWZpbmUgbmV3IGZsYWcgZm9yIGhhbmRsZXIgYXJncyBjYWNoZSBoaW50CiAgIC0gcGFzcyBoYW5kbGVyIGFyZ3MgY2FjaGUgaGludCB3aGVuIGZsYWcgc2V0CgoyMDA0LTA4LTI4IDE1OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgY29uZmlnX3JlcXVpcmUgbWliSUkvdmFyX3JvdXRlIChVU0VfU1lTQ1RMX0lGIG5lZWRzIGdldF9hZGRyZXNzKQoKMjAwNC0wOC0yOCAxMjozOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIC0gbmV0c25tcF9hc3NlcnQgb24gc2VsZi1yZWZlcmVuY2UgaW4gbGlua2VkIGxpc3QKCjIwMDQtMDgtMjggMTI6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIGFkZCBjb21tZW50cwoKMjAwNC0wOC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gY29tbWVudCBvdXQgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGZvciB1bndyaXR0ZW4gbW9kdWxlcwoKMjAwNC0wOC0yOCAxMjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gZG9jdW1lbnQgc2NhbmxpbmUgZm9ybWF0CgoyMDA0LTA4LTI4IDEyOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgJzsnCiAgICAgKGlzc3VlIG5vdGVkIGluIGJ1Zy9wYXRjaCAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjggMTI6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIC0gaW5saW5lIGZpeGVzIGZyb20gU3RlcGhlbiBKLiBGcmllZGwsIHBsdXMgYSBmZXcgSSBmb3VuZAogICAgIChpc3N1ZXMgbm90ZWQgaW4gYnVnL3BhdGNoIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yOCAxMjoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCgoyMDA0LTA4LTI4IDEyOjA4ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gb25seSBkZWZpbmUgaW5saW5lIG1hY3JvcyBpZiBlbmFibGVkCiAgICAgKGlzc3VlIG5vdGVkIGluIGJ1ZyAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjcgMjM6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGZpeCAxLzIgb2YgYnVnIDcwMjQzNTogbWVtb3J5IGxlYWsgWy4uLl0gZm9yIGFnZW50eCBzdWJhZ2VudHMKICAgICAtIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW56IEcuIEZpc2NoZXIKCjIwMDQtMDgtMjcgMjM6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgdmFyIGFuZCBwcm90b3R5cGVzCiAgIC0gYWRkIGNvbW1lbnQgZG9jdW1lbnRpbmcgc2NhbiBsaW5lIGZvcm1hdAoKMjAwNC0wOC0yNyAyMzoyMiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gb21pdCByb3V0ZXMgdGhhdCBhcmUgZG93bgogICAtIGhhcmRjb2RlIGFjdGl2ZSByb3cgc3RhdHVzIGZvciBuZXdseSBkaXNjb3ZlcmVkIHJvdXRlcwoKMjAwNC0wOC0yNyAyMzoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHR3ZWFrIGxvZyBtZXNzYWdlcyBzeW50YXgKICAgLSBmaXggaXB2NCBtYXNrIGNhbGN1bGF0aW9uCiAgIC0gaW1wbGVtZW50IGlwdjYgcm91dGVzCiAgIC0gY29tbW9uIGZ1bmN0aW9uIHRvIHNldCByb3V0ZSB0eXBlIGZyb20gZmxhZ3MKICAgLSBzZXQgcG9saWN5IG9pZCBiYXNlZCBvbiBhcmJpdHJhcnkgaW5kZXgKCjIwMDQtMDgtMjcgMjM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGRvbnQgZnJlZSBwb2xpY3kgb2lkIGlmIHN0YXRpYyBmbGFnIHNldAoKMjAwNC0wOC0yNyAyMzoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gYWRkIGZsYWcgZm9yIHN0YXRpYyBwb2xpY3kgb2lkCiAgIC0gY2hhbmdlIGludGVybmFsIGluZGV4IHR5cGUgdG8gb2lkCgoyMDA0LTA4LTI3IDA3OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIFRyeSBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBtdWx0aS10eXBlIGNvbmZpZyBoYW5kbGluZy4KICAgRG9uJ3QgYXV0b21hdGljYWxseSByZWdpc3RlciBjb25maWcgdG9rZW5zIGFnYWluc3QgbXVsdGlwbGUgdHlwZXMuCiAgIEluc3RlYWQsIGV4cGxpY2l0bHkgcmVnaXN0ZXIgQWdlbnRYLXJlbGF0ZWQgY29uZmlnIHRva2VucyBhcyBzdWNoLgogICAoVGhlIGNvbmZpZyBtZWNoYW5pc20gd2lsbCBhbHJlYWR5IGF1dG9tYXRpY2FsbHkgbG9hZCBhbnkgY29uZmlnCiAgIGZpbGUgdHlwZXMgdGhhdCBpdCBrbm93cyBhYm91dCkuCgoyMDA0LTA4LTI3IDAzOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBVc2UgYSBjb25zaXN0ZW50ICJob3N0cy57YWxsb3csZGVueX0iIHRva2VuIGZvciBrbm93biBhbmQgdW5rbm93biBhZGRyZXNzZXMuCgoyMDA0LTA4LTI3IDAzOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJZiB3ZSdyZSByZWFkaW5nIGluIHRoZSBtdWx0aWNhc3Qgc3RhdHMsIHRoZW4gdGhlIHNjYW4gbGluZSBuZWVkcyB0byBiZQogICB0d2Vha2VkIG5vdCB0byBza2lwIHRoaXMgdmFsdWUhCgoyMDA0LTA4LTI2IDA3OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBTdXBwcmVzcyAzMi1iaXQgc2hpZnQgd2FybmluZ3Mgb24gMzItYml0IHN5c3RlbXMuCiAgIChUaG91Z2ggdGhpcyBtYXkgbm90IGJlIHRoZSBiZXN0IHdheSB0byBkZXRlY3Qgc3VjaCBzeXN0ZW1zISkKCjIwMDQtMDgtMjYgMDc6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIERlY2xhcmUgbWlzc2luZyB2YXJpYWJsZSBvbiBub24tU0NOdU1BWCBzeXN0ZW1zLgoKMjAwNC0wOC0yNSAxMjozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSBtZW1iZXJzIHRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMKICAgICAtIG5vdGVkIG9uIHVzZXJzIGJ5IEFraWhpcm8gSUlKSU1BCgoyMDA0LTA4LTI1IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBhcHBseSByZXZpc2VkIHBhdGNoIGZvciBidWcgODk3MDAyOiBzbm1wZCBjYW5ub3QgaGFuZGxlIDY0IGJpdCBpbnRlcmZhY2UgY291bnRlcnMKICAgICAoaGFkIGJlZW4gbWFya2VkIGFzIGZpeGVkIGJ1dCB3YXNuJ3QpCgoyMDA0LTA4LTI1IDA4OjM4ICBkdHMxMgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgRG9jdW1lbnQgdGhlIG5ldyBtaWIyYyBub2RlIHRhZ3MuCgoyMDA0LTA4LTI1IDA4OjM1ICBkdHMxMgoKICAgKiBtaWJzLzogRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgRElTTUFOLU5TTE9PS1VQLU1JQi50eHQKLCBESVNNQU4tUElORy1NSUIudHh0LCBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0CjoKCiAgIEFkZCBEaXNNYW4gUmVtb3RlIE9wZXJhdGlvbnMgTUlCIGZpbGVzCgoyMDA0LTA4LTI1IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmgsIHBpbmcvZ251Yy5oLCBwaW5nL2luNi5oLAogICAgIHBpbmcvaXBfdmFyLmgsIHBpbmcvaXB2Ni5oLCBwaW5nL3VkcF92YXIuaCwKICAgICB0cmFjZXJvdXRlL2dudWMuaCwgdHJhY2Vyb3V0ZS9pbjYuaCwKICAgICB0cmFjZXJvdXRlL2lwX3Zhci5oLCB0cmFjZXJvdXRlL2lwdjYuaCwKICAgICB0cmFjZXJvdXRlL3VkcF92YXIuaDoKCiAgIExvY2FsbHktdHdlYWtlZCB2ZXJzaW9ucyBvZiBzdGFuZGFyZCBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgbm90IHRoZSBtb3N0IGFwcHJvcHJpYXRlIHdheSB0byBwcm9jZWVkLAogICBidXQgaXMgbmVlZGVkIHRvIGdldCB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiB3b3JraW5nLgoKMjAwNC0wOC0yNSAwNzozMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHBvcnQgaG9sZXMgaW4gIml0ZXJhdGVfYWNjZXNzIiB0YWJsZXMuCgoyMDA0LTA4LTI1IDAxOjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmM6CgogICBGaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgUm1vbiBjb2RlLiAoUmVwb3J0ZWQgYnkgRm9uZyBUc3VpKQoKMjAwNC0wOC0yNCAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZW5hbWUgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkgbWVtYmVycyB0byBhdm9pZCBuYW1lc3BhY2UgY29uZmxpY3RzCiAgICAgLSBub3RlZCBvbiB1c2VycyBieSBBa2loaXJvIElJSklNQQoKMjAwNC0wOC0yNCAwOToyOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBGaXggdGhlIG1pbmltYWwgY29uZmlnIHRlc3RzIHRvIHVzZSB0aGUgY29ycmVjdCBzZXQgb2YgTUlCIG1vZHVsZXMuCiAgIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0yNCAwOToyNCAgZHRzMTIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICBTdXBwb3J0IGFkZGl0aW9uYWwgdHJhcGQgZmxhZ3MgKHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKICAgKEFuZCB1cGRhdGUgdGhlIFJFQURNRSB0byBrZWVwIE1pa2UgaGFwcHkhKQoKMjAwNC0wOC0yNCAwOToxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIExvZyByZWNvbmZpZy9zaHV0ZG93biBtZXNzYWdlcyBtb3JlIHJlbGlhYmx5LiAgKFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMjQgMDk6MTYgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBBZGQgQ2lzY28vQlVQVE5JQyBjb3B5cmlnaHQgbm90aWNlLCB0byBjb3ZlciB0aGUgbmV3IERpc01hbiBSZW1PcHMgY29kZS4KCjIwMDQtMDgtMjQgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuLmgsIGRpc21hbi9leHByZXNzaW9uLW1pYi5oLAogICAgIGRpc21hbi9uc2xvb2t1cC1taWIuaCwgZGlzbWFuL3BpbmctbWliLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUtbWliLmgsIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYwosIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmgsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCBkaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaAosIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLAogICAgIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBSZW1vdGUgT3BlcmF0aW9uIE1JQiBncm91cHMuCiAgIE5vdGUgdGhhdCB0aGVzZSBhcmUgbm90IHlldCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UuCgoyMDA0LTA4LTIzIDA4OjA2ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBuZXcgdGFyZ2V0IHRvIG9ubHkgbWFrZSBvYmplY3RzIGZvciBjdXJyZW50IGRpcmVjdG9yeSAobm8gc3ViZGlycykKCjIwMDQtMDgtMjMgMDc6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgT3B0aW9uIHRvIGV4Y2x1ZGUgdGhlIGZpbmFsIEdFVCByZXF1ZXN0IHdoZW4gd2Fsa2luZyBhIHNpbmdsZSBpbnN0YW5jZS4KCjIwMDQtMDgtMjMgMDI6MzkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIE5ldyB0ZW1wbGF0ZSBjb25maWdzIGZvciByb3ctYmFzZWQgImludGVybmFsLWRhdGEiIGltcGxlbWVudGF0aW9ucy4KCjIwMDQtMDgtMjMgMDI6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgTmV3IHZhcmlhYmxlIHRva2VucyB0byBpZGVudGlmeSAiY3JlYXRhYmxlIiBvciBSb3dTdGF0dXMgY29sdW1uIG9iamVjdHMuCiAgIEV4dGVuZCB0aGVzZSB0d28gdG9rZW5zLCBwbHVzICJzZXR0YWJsZSIgdG8gYXBwbHkgdG8gdGFibGVzIGFzIHdlbGwKICAgKHJlcG9ydGluZyBvbiB0aGUgY29uc3RpdHVlbnQgY29sdW1uIG9iamVjdHMpLgoKMjAwNC0wOC0yMyAwMTo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgSW1wbGVtZW50IGNvbnRleHQgZXJyb3IgY291bnRlcnMgYXMgcHJvcGVyIHNjYWxhciBvYmplY3RzCiAgIChyYXRoZXIgdGhhbiBzaW1wbHkgaW5zdGFuY2VzKQoKMjAwNC0wOC0yMyAwMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYzoKCiAgIEZ1bGxlciBpbXBsZW1lbnRhdGlvbiBvZiBzbm1wU2V0U2VyaWFsTm8gb2JqZWN0LCBpbmNsdWRpbmcgcGVyc2lzdGFuY2UgYWNyb3NzCiAgIGFnZW50IHJlc3RhcnQsIHJhbmRvbSBpbml0aWFsaXNhdGlvbiB2YWx1ZSAoYm90aCBwZXIgVGVzdEFuZEluY3IgZGVzY3JpcHRpb24pCiAgIGFuZCBwcm9wZXIgb2JqZWN0IGluc3RhbmNlIGJlaGF2aW91ci4KCjIwMDQtMDgtMjMgMDE6NTYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEb24ndCBpbnZva2UgY2FsbGJhY2sgcmVnaXN0cmF0aW9ucyBpZiB0aGUgb3JpZ2luYWwgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAoU2VlIGJ1ZyAjOTkwMDcwKQoKMjAwNC0wOC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSBwcm9qZWN0IG51bWJlciB0byA1LjIuZGV2CgoyMDA0LTA4LTIwIDA4OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgc3RhdGljIGF0dHJpYnV0ZSBmb3IgZnVuY3Rpb24KICAgLSBmaXggcGFyZW4gZ3JvdXBpbmcKCjIwMDQtMDgtMjAgMDg6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIGRvIG5vdCBpbmNsdWRlIGRhdGEgYWNjZXNzIGhlYWRlcnMsIGFzIHRoZXkgYXJlIG5vdCBpbnN0YWxsZWQKCjIwMDQtMDgtMjAgMDg6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBpbmNsdWRlIGludGVyZmFjZSBkYXRhIGFjY2VzcyBoZWFkZXIKCjIwMDQtMDgtMjAgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBUaWR5IHVwIGhhbmRsaW5nIG9mIHBpZF9maWxlLiAoUGF0Y2hlcyBmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE5IDAyOjIzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW1wcm92ZWQgaGFuZGxpbmcgb2Ygc25tcHRyYXBkIFBJRCBmaWxlLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA0LTA4LTE5IDAyOjE3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEhhbmRsZSBhZ2VudF9tb2R1bGUgaGVhZGVyIGZpbGVzIGluIHRoZSBzYW1lIHdheSBhcyBtaWJfbW9kdWxlIG9uZXMuCiAgIChSZW1vdmluZyB0aGVtIHdoZW4gY2xlYW5pbmcgdXAsIGFuZCBpbnN0YWxsaW5nIHRoZSBjb25maWcgaGVhZGVyKQoKMjAwNC0wOC0xOSAwMjoxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQWRkIGFnZW50X21vZHVsZSBjb25maWd1cmF0aW9uIHRva2VucyB0byB0aGUgbGlzdCBvZgogICBzdGFuZGFyZCBhZ2VudCBpbmNsdWRlcy4gIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaDoKCiAgIENvcnJlY3QgYWdlbnRfbW9kdWxlIGNvbmZpZyBzZXR0aW5nLgogICAoU3BvdHRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOCAxNToxMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFsbG93IFRPS0VOUklORy1NSUIgYW5kIERTMS1NSUIgdG8gb3ZlcnJpZGUgb2xkZXIgUkZDIG1pYnMKCjIwMDQtMDgtMTggMDI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFVzZSB0aGUgY29udGV4dCBuYW1lIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBjYWxsLAogICByYXRoZXIgdGhhbiB0aGUgY29udGV4dCBmcm9tIHRoZSBpbmNvbWluZyByZXF1ZXN0LgogICBUaGVzZSBvdWdodCB0byBiZSB0aGUgc2FtZSwgYnV0IGFyZSBzdWJ0bHkgZGlmZmVyZW50IHdoZW4KICAgbm8gY29udGV4dCBpcyBzcGVjaWZpZWQuICAoUGF0Y2ggc3VwcGxpZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTcgMDg6NDAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgTW9yZSBwb3J0YWJsZSBhcHByb2FjaCB0byBhdm9pZGluZyB1bm5lY2Vzc2FyeSBoZWFkZXIgaW5zdGFsbHMuCiAgIChUaGFua3MgdG8gYm90aCBCZW4gUm9nZXJzIGFuZCBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDgtMTcgMDI6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXR0ZW1wdCB0byBzdXBwb3J0IG11bHRpcGxlICd7eHh4eH0uY29uZicgYXBwbGljYXRpb24gdHlwZXMuCgoyMDA0LTA4LTE3IDAyOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgSW5jbHVkZSB0aGUgbmV3ICdORVQtU05NUC1FWFRFTkQtTUlCJyBtb2R1bGUgaW4gYSBkZWZhdWx0IGNvbmZpZy4KCjIwMDQtMDgtMTcgMDI6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBBbGxvdyAidHJhcGhhbmRsZSIgZGlyZWN0aXZlcyB0byBtYXRjaCBhIHN1YnRyZWUgcmF0aGVyCiAgIHRoYW4ganVzdCBhIHNpbmdsZSB0cmFwLiAgKFN1Z2dlc3RlZCBieSBCb3NrbyBNaWxla2ljKQoKMjAwNC0wOC0xNyAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIERvbid0IGJvdGhlciBsb29raW5nIHVwIHRoZSBob3N0bmFtZSB1bmxlc3MgaXQnbGwgYWN0dWFsbHkKICAgYmUgbmVlZGVkIGZvciBnZW5lcmF0aW5nIHRoZSBlbmdpbmVJRC4gIFN1Z2dlc3RlZCBieSBKb2UgQy4KCjIwMDQtMDgtMTcgMDE6NTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIEVuc3VyZSB0aGF0IGEgbm9uLW1hdGNoaW5nIGNvbTJzZWMgbG9va3VwIHdpbGwgcmV0dXJuIGEgTlVMTCAnc2VjTmFtZScKICAgKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDgtMTcgMDE6NDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFwcGx5ICdob3N0cy57YWxsb3csZGVueX0nIGNoZWNraW5nIHRvIGNhbGxiYWNrIGNvbm5lY3Rpb25zCiAgICh3aGljaCB0eXBpY2FsbHkgd29uJ3QgbWF0Y2ggYW55dGhpbmcgb3RoZXIgdGhhbiAiQUxMIikKCjIwMDQtMDgtMTcgMDE6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYXJhbWV0ZXJzLiAgKFN1Z2dlc3RlZCBieSBKb2huIExhc2gpCgoyMDA0LTA4LTE3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBBUEkgZm9yIGFkZGluZyBhIChuZXdseSBjcmVhdGVkKSByb3cgdG8gdGhlIHZhcmJpbmQgcmVxdWVzdCBsaXN0LAogICBzbyBpdCdzIGF2YWlsYWJsZSBkdXJpbmcgbGF0ZXIgU0VUIHBhc3Nlcy4gICBUaGVyZSdzIHByb2JhYmx5CiAgIGEgYmV0dGVyIHdheSBvZiBjb21wYXJpbmcgaW5kZXggdmFsdWVzLCBidXQgdGhpcyBzZWVtcyB0byB3b3JrLgoKMjAwNC0wOC0xNyAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wdjNtaWJzLmgsIHNubXB2My91c21Db25mLmMsCiAgICAgc25tcHYzL3VzbUNvbmYuaCwgc25tcHYzL3VzbVVzZXIuYzoKCiAgIFNwbGl0IG9mZiBVU00gY29uZmlnIGhhbmRsaW5nIGludG8gYSBzZXBhcmF0ZSBtb2R1bGUKICAgKGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgYWdlbnQgbGlicmFyeSkKCjIwMDQtMDgtMTcgMDE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2FnZW50eF9jb25maWcuaCwgYWdlbnR4L2NsaWVudC5oCiwgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgICAgYWdlbnR4L3Byb3RvY29sLmgsIGFnZW50eC9zdWJhZ2VudC5oLAogICAgIG1pYklJL3ZhY21fY29uZi5oOgoKICAgTW92ZSBWQUNNIGNvbmZpZyBoYW5kbGluZyBhbmQgQWdlbnRYIHN1cHBvcnQgaW50byB0aGUgYWdlbnQgbGlicmFyeS4KCjIwMDQtMDgtMTcgMDE6MjMgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgbWliX21vZHVsZXMuYzoKCiAgIFBpY2sgdXAgYWdlbnRfbW9kdWxlIGluaXRpYWxpc2F0aW9uIGFuZCBkb3RfY29uZiByb3V0aW5lcy4KICAgKE5vdCBjb252aW5jZWQgdGhpcyBpcyB0aGUgYmVzdCBwbGFjZSBmb3IgdGhlIGFnZW50X21vZHVsZQogICAgaW5pdCByb3V0aW5lcyB0byBiZSBjYWxsZWQsIGJ1dCBpdCdsbCBkbyBmb3Igbm93LikKCjIwMDQtMDgtMTcgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgU3dpdGNoIGxpbmtpbmcgb3JkZXIgb2YgYWdlbnQgYW5kIG1pYiBsaWJyYXJpZXMgKHNpbmNlIGxpYm5ldHNubXBtaWJzCiAgIG1heSB3ZWxsIHVzZSByb3V0aW5lcyBkZWZpbmVkIGluIGxpYm5ldHNubXBhZ2VudCwgYnV0IG5vdCB2aWNlIHZlcnNhKQoKMjAwNC0wOC0xNyAwMToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBFbnN1cmUgYWdlbnQgdnMgbWliIG1vZHVsZXMgYXJlIHBpY2tlZCB1cCBjb3JyZWN0bHkgKGVzcC4gZm9yIG1vZHVsZXMKICAgd2l0aG91dCBhIGhlYWRlciBmaWxlLCB3aGljaCBzaG91bGQgZGVmYXVsdCB0byAnbWliX21vZHVsZXMnKQoKMjAwNC0wOC0xNyAwMToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTbGlnaHRseSBwcmVmZXJhYmxlIGNvbmZpZyB0b2tlbiBmb3IgdGhlIG5ldyBleHRlbnNpYmxlIHNjcmlwdGluZyBtaWIsCiAgIGRvY3VtZW50IHRoaXMgZmVhdHVyZSwgYW5kIGFkZCBhIHdhcm5pbmcgcmVnYXJkaW5nIHRoZSBvbGQgKGludmFsaWQpCiAgIHJlbG9jYXRhYmxlIG91dHB1dCBmb3JtYXQuCgoyMDA0LTA4LTE2IDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBkb24ndCBkcm9wIHJlLWF0dGFjaGVkIGhlYWQgKHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4pCiAgIC0gZml4IHR5cG8KCjIwMDQtMDgtMTYgMTQ6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtZmQuaAoKMjAwNC0wOC0xNiAxNDo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgdmVyc2lvbiBmcm9tIGF1dG9jb25mCgoyMDA0LTA4LTE2IDE0OjIzICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gYWRkIHVuZGVmIGZvciBTVFJVQ1RfVE1fSEFTX1RNX0dNVE9GRkYKICAgLSBkZWZpbmUgY29uZmlnX2JlbG9uZ3NfaW4gdG8gbm90aGluZwoKMjAwNC0wOC0xNiAxMjoxMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIE1vcmUgYXV0b21hdGljIGluc3RhbGxhdGlvbiBvZiBSRkMgYmFzZWQgbWlicwoKMjAwNC0wOC0xMyAwNjo1OSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGNvbmZpZy1nZW5lcmF0ZWQgJ2FnZW50X21vZHVsZScgZmlsZXMKCjIwMDQtMDgtMTMgMDY6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgY29uZmlnLWdlbmVyYXRlZCAnYWdlbnRfbW9kdWxlJyBmaWxlcwoKMjAwNC0wOC0xMyAwNjo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2F1dGhlbnRpY2F0aW9uLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9ydW50aW1lLAogICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpCjoKCiAgIEFkZCBzbm1wdHJhcGQgY29uZmlnIHN1cHBvcnQgZm9yIGxvZ2dpbmcsIGF1dGhlbnRpY2F0aW9uIGFuZCBydW50aW1lIG9wdGlvbnMuCiAgIChQYXRjaCAjOTgxMzE5IGZyb20gQWxleCBCdXJnZXIpCgoyMDA0LTA4LTEzIDA2OjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFN0cmlwIHBvcnQtbnVtYmVyIHNwZWNpZmljYXRpb24gZnJvbSAicGVlcm5hbWUiIHdoZW4gY29uc3RydWN0aW5nIEtTTSBjcmVkZW50aWFscy4KICAgKEJhc2VkIG9uIHBhdGNoICM5OTI0NDApCgoyMDA0LTA4LTEzIDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBIYW5kbGUgImdlbmVyYWwiIEFnZW50WCBlcnJvcnMsIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2YXJiaW5kLgogICAoQmFzZWQgb24gcGF0Y2ggIzk4Mzk3MiBmcm9tIGxvcmVuemltKQoKMjAwNC0wOC0xMyAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiAnaW5zdGFsbHN1YmRpcmhlYWRlcnMnIHJ1bGUuCiAgIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgIkxhenkiIGluc3RhbGxhdGlvbiBvZiBoZWFkZXIgZmlsZXMuICBPbmx5IGluc3RhbGwgYSBoZWFkZXIgZmlsZSBpZgogICBpdCdzIG5ld2VyIHRoYW4gdGhlIGV4aXN0aW5nIG9uZS4gIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIFVzZSBhbiBleHBsaWNpdCBjaGVjayBmb3IgJ3RtX2dtdG9mZicsIHJhdGhlciB0aGFuIHBlci1hcmNoaXRlY3R1cmUgI2RlZmluZXMKICAgKFBhdGNoICMxMDA2Mjk4IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTA4LTEzIDAyOjE3ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgaWFuYWxpc3QsIHJmY2xpc3Q6CgogICBVcGRhdGVkIFJGQyBNSUIgaW5mb3JtYXRpb24KCjIwMDQtMDgtMTIgMDc6NDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhbmRsZSBhIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mICJhcHBsaWNhdGlvbi10eXBlIiBjb25maWcgZmlsZXMuCiAgIChlLmcuICJhZ2VudHg6c25tcGQiIHRvIHNlYXJjaCAqYm90aCogJ3NubXBkLmNvbmYnICphbmQqICdhZ2VudHguY29uZicpCiAgIFNlZSBjb2RlcnMtdGhyZWFkICJBZ2VudFggY29uZmlndXJhdGlvbiIgLSBKdWwgJzA0CgoyMDA0LTA4LTEyIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQW4gZXhhbXBsZSBvZiBjb25maWd1cmluZyBjb2RlIGludG8gdGhlIGFnZW50IHJhdGhlciB0aGFuIHRoZSBtaWIgbGlicmFyeS4KCjIwMDQtMDgtMTIgMDU6MTggIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KLCBjb25maWd1cmU6CgogICBTdXBwb3J0IGEgbWVjaGFuaXNtIGZvciBpbmNsdWRpbmcgcGFydGljdWxhciBjb2RlIG1vZHVsZXMgd2l0aGluIGVpdGhlcgogICB0aGUgbWliIGxpYnJhcnkgb3IgdGhlIGFnZW50IGxpYnJhcnkgKG9yIHBvdGVudGlhbGx5IGVsc2V3aGVyZSBhcyB3ZWxsKS4KICAgKFNlZSBjb2RlcnMtdGhyZWFkICJNb3ZpbmcgQWdlbnRYIG91dCBvZiB0aGUgbWlibW9kdWxlcyIgLSBKdW5lICcwNCkKCjIwMDQtMDgtMTIgMDU6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgYW4gb2Z0LW92ZXJsb29rZWQgaGVscGVyLgoKMjAwNC0wOC0xMiAwNToxMSAgZHRzMTIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZm9sbG93aW5nIE5VTEwgcG9pbnRlcnMKICAgKHBsdXMgc29tZSBwZXR0eSBncmFtbWF0aWNhc3RpZ2F0aW9uKQoKMjAwNC0wOC0xMSAxMzo1NyAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGxvb2sgZm9yIC5pbiBmaWxlIGluIHNyY2Rpciwgd2hpY2ggbWF5ICE9IGN1cnJlbnQgZGlyCgoyMDA0LTA4LTExIDA1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIE9ubHkgc3RvcmUgdGhlIHRhYmxlIHN0cnVjdHVyZSBvbiB0aGUgZmlyc3QgcGFzcyB0aHJvdWdoLgogICBTdWJzZXF1ZW50IHBhc3NlcyBjYW4gcmV0cmlldmUgdGhpcyBzdG9yZWQgdmFsdWUgYW55d2F5LgoKMjAwNC0wOC0xMSAwNDo1NSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlbGV0ZWQgbWFuIHBhZ2VzICh0b2RvICYgZGVwcmVjYXRlZCkKCjIwMDQtMDgtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nIGEgYml0CgoyMDA0LTA4LTA0IDA1OjUxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfZGVwcmVjYXRlZC4zLAogICAgIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIERvbid0IGluc3RhbGwgJ3RvZG8nIG9yICdkZXByZWNhdGVkJyBtYW4gcGFnZXMKICAgKHNpbmNlIHRoZXNlIGFyZSBjb25zdHJ1Y3RlZCB3aXRoIHN1c3BlY3QgZm9ybWF0dGluZykKCjIwMDQtMDgtMDMgMDg6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGxlbmd0aCBvZiBzdHJpbmcgZm9yIEFFUyAnc3RybmNtcCcgY29tcGFyaXNvbnMuCiAgIChTZWUgYnVnICM5OTY4OTQpCgoyMDA0LTA4LTAyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IGNvbnRleHQgcmVnaXN0cmF0aW9uIHNvIG5ldyBjb250ZXh0IHRyZWVzIGdldCBwcm9wZXJseSBpbml0aWFsaXplZC4KCjIwMDQtMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBEb24ndCBkb3VibGUtcHJvZHVjZSBIVE1MIG91dHB1dCBmb3IgcmVwZWF0ZWQgTUlCcy4KCjIwMDQtMDctMzAgMTc6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIGRvY3VtZW50IEFnZW50WCBjb250ZXh0IGZpeGluZwogICAtIGRvY3VtZW50IHRoZSB1c21Vc2VyIHRhYmxlIHBvcHVsYXRpb24gdW5kZXIgc25tcHRyYXBkCgoyMDA0LTA3LTMwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBEb3VibGUgY2hlY2sgdGhhdCB0aGUgY29udGV4dE5hbWUgYXJyYXkgaXMgcHJvcGVybHkgaW5pdGlhbGl6ZS4KCjIwMDQtMDctMzAgMTc6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIEFkZCBjb250ZXh0TmFtZSB0byB0aGUgcmVnaXN0cmF0aW9uIHBhcmFtYXRlcnMgc3RydWN0dXJlLgoKMjAwNC0wNy0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlZ2lzdGVyIHRoZSB1c21Vc2VyVGFibGUgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjggIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSByZWdpc3RlciBhbGwgdGhlIHNubXB0cmFwZCBtaWIgbm9kZXMgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgQ3JlYXRlIGEgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIHVzbVVzZXIgdGFibGUgb3RoZXIgYSBkaWZmZXJlbnQgY29udGV4dC4KCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwgbWFzdGVyLmMKLCBzdWJhZ2VudC5jOgoKICAgLSBGaXggYWdlbnR4IHRvIHdvcmsgcHJvcGVybHkgdW5kZXIgbm9uLWRlZmF1bHQgY29udGV4dHMuCgoyMDA0LTA3LTMwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBBZGQgYSBidW5jaCBvZiBmdW5jdGlvbnMgdG8gcmVnaXN0ZXIgaW5zdGFuY2VzIHVuZGVyIG5vbiBkZWZhdWx0IGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gZml4IGFkZF9zdWJ0cmVlIHNvIGl0IHJlZ2lzdGVycyB0b3AgbGV2ZWwgbnVsbCBoYW5kbGVycyB0b28KICAgICAtIGZpeGVzIGEgbnVtYmVyIG9mIGNvbnRleHQgcHJvYmxlbXMKICAgLSBwYXNzIGNvbnRleHQgaW5mb3JtYXRpb24gZG93biBpbnRvIHJlZ2lzdHJhdGlvbiBpbmZvIHN0cnVjdCAodXNlZCBieSBhZ2VudHgpCgoyMDA0LTA3LTMwIDE3OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmg6CgogICAtIGFkZCBhIG51bGwgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGZvciBjb250ZXh0cyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0LgoKMjAwNC0wNy0zMCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIFBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIGZpeCBVU00gcHJpdmFjeSBrZXkgbGVuZ3RocwoKMjAwNC0wNy0zMCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBJIHdhcyBzbGVlcGluZyBlYXJsaWVyIHdoZW4gSSBmaXhlZCBjb2RlIHRoYXQgd2Fzbid0IGJyb2tlbi4KCjIwMDQtMDctMzAgMTM6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGNvbW11bml0eSBzdHJpbmcgLT4gY29udGV4dCBtYXBwaW5ncwoKMjAwNC0wNy0zMCAxMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgbmV3IGNvbTJzZWMgdG9rZW4gb3B0aW9ucy4KCjIwMDQtMDctMzAgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGNvbTJzZWMqIHRva2VucyBhY2NlcHQgYSAtQ24gQ09OVEVYVCBmbGFnIHRvIGFsbG93IHRoZQogICBtYXBwaW5nIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIFNOTVB2MyBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhc3MgdGhlIGFjdHVhbCBwZHUgYmVpbmcgcHJvY2Vzc2VkIGludG8gY2hlY2tfYWNjZXNzIGluc3RlYWQgb2YgdGhlIGNvcHkKCjIwMDQtMDctMzAgMTE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4IGNvbnRleHQgY2hlY2tpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MgZm9yIG5vbiBkZWZhdWx0IGNvbnRleHRzCgoyMDA0LTA3LTI4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBjb25maWd1cmVfcmVxdWlyZSAtPiBjb25maWdfcmVxdWlyZQoKMjAwNC0wNy0yOCAwNTo0MCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgT3BlblNTTCBpcyBuZWVkZWQgZm9yIFNIQS1iYXNlZCBhdXRoZW50aWNhdGlvbiwgcmF0aGVyIHRoYW4gTUQ1LgogICAoSXQncyB1c2VkIGZvciBib3RoIGlmIGF2YWlsYWJsZSwgYnV0IGl0J3Mgb25seSAqbmVlZGVkKiBmb3IgU0hBKQoKMjAwNC0wNy0yOCAwMjoxNyAgZHRzMTIKCiAgICogRkFROgoKICAgRGlzY3VzcyBSUE0tZGVwZW5kZWN5IHByb2JsZW1zLgoKMjAwNC0wNy0yOCAwMTowNCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUGVyLW9iamVjdCBzd2l0Y2ggc3RhdGVtZW50IGlzIG1pc3NpbmcgdGhlICJjYXNlIiBrZXl3b3JkLgogICAoUmVwb3J0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5KQoKMjAwNC0wNy0yMiAxNzo1NSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmb3Igd2luMzIgYWdlbnQsIGludGVycHJldCBpZk9wZXJTdGF0dXMgY29ycmVjdGx5LAogICBhbmQgc2V0IGlmTGFzdENoYW5nZSB0byB6ZXJvLiBUaGVzZSBjaGFuZ2VzIGZpeGVzIGJ1ZyAjOTA3NzE2LgoKMjAwNC0wNy0yMiAxMzowNiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICB0eXBlZGVmIGxvbmcgaW50MzJfdCB0byBzdWNjZWVkIGJ1aWxkaW5nIHdpdGggTVNWQysrLgoKMjAwNC0wNy0yMiAxMDo0NSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBwYXRjaCAjOTgyNjI4IGFwcGxpZWQgdG8gZml4IGxlYWsgb24gZXJyb3JzIGluIG5ldHNubXBfdWRwNl90cmFuc3BvcnQKCjIwMDQtMDctMjIgMDg6NDkgIGR0czEyCgogICAqIEZBUToKCiAgIEVtcGhhc2lzZSB0aGUgbmVlZCB0byBleHBsaWNpdGx5IGNyZWF0ZSB1c2Vycy4KCjIwMDQtMDctMjAgMjM6MjYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgZml4IGJ1ZyAjOTkyNzM1IE9TWCAxMC4zLjQgbWFrZSBmYWlscyBieSBpbmNsdWRpbmcgZGFyd2luIGluICNpZiBleHByZXNzaW9ucy4KCjIwMDQtMDctMjAgMjI6MjkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oOgoKICAgY3JlYXRlIHN5c3RlbSBoZWFkZXIgZm9yIC1EZGFyd2luNy4gcGFydGlhbCBmaXggZm9yIGJ1ZyA5OTI3MzUuCgoyMDA0LTA3LTIwIDE5OjQwICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBidWcgOTk0MTk0IGJ5IGNoZWNraW5nIGZvciBudWxsIGJlZm9yZSBkZS1yZWZlcmVuY2luZyBwb2ludGVyIGFyZ3VtZW50LgoKMjAwNC0wNy0yMCAxMzozMSAgc2xpZgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHBhdGNoIDk4ODI4NiBmcm9tIEJydWNlIFNoYXcgLSBMb3RzIG9mIHVwZGF0ZXMgb24gUkVBRE1FLnNvbGFyaXMKCjIwMDQtMDctMjAgMTM6MjIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGtpbGwuZXhlIG9ubHkgaWZmIE9TVFlQRSA9IG1zeXMgKHBhdGNoICM5ODc2MjYgYXBwbGllZCkKCjIwMDQtMDctMTkgMDk6MjggIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEZpeCBlcnJvbmVvdXMgdHJvZmYgbWFjcm8sIGFzIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZAoKMjAwNC0wNy0xNiAyMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtaWJJSV9jb21tb24uaCwgdGNwVGFibGUuYzoKCiAgIEF0dGVtcHRlZCBmaXhlcyBmb3IgZGFyd2luCgoyMDA0LTA3LTE2IDExOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmg6CgogICBBZGRlZCBtaXNzaW5nIGlwU3lzdGVtU3RhdHNUYWJsZS5oIGZpbGUgd2hpY2ggUm9iZXJ0IHByb2JhYmx5IGZvcmdvdCB0byBjaGVjayBpbi4gIEknbSBndWVzc2luZyBhdCB0aGUgIHByb3BlcmNvbnRlbnRzLCBidXQgaXQgc2hvdWxkIGJlIHJpZ2h0CgoyMDA0LTA3LTE2IDA5OjA4ICBkdHMxMgoKICAgKiBGQVE6CgogICBBIGZldyBhZGRpdGlvbmFsIGVudHJpZXMgKGVzcC4gcmVsYXRpbmcgdG8gZ2VuZXJhdGluZyB0cmFwcykKICAgcGx1cyBzb21lIG1pbm9yIHJlc3RydWN0dXJpbmcgYW5kIHdvcmRzbWl0aGluZy4KCjIwMDQtMDctMTAgMjE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIC0gcmVtb3ZlIGRlYnVnIG1zZwogICAtIGxvZyB3YXJuaW5nIGlmIGhlYWRlciBsZW5ndGggaXNuJ3Qgd2hhdCB3ZSBleHBlY3QKCjIwMDQtMDctMTAgMjE6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIGZpeCBpbnZlcnRlZCBjb25kaXRpb25hbCB0ZXN0CiAgIC0gZG9uJ3QgYXNzdW1lIDY0IGlmIHdyYXBjaGVjayBza2lwcGVkCgoyMDA0LTA3LTEwIDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGNvbW1lbnQgdG8gZG9jdW1lbnQgc3RydWN0dXJlIHZhcgoKMjAwNC0wNy0xMCAxOTo1MSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBidW1wIHVwIHRpbWVvdXQgdG8gMzAgc2Vjb25kcywgaW5zdGVhZCBvZiAzCgoyMDA0LTA3LTEwIDE5OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gcmVtb3ZlIHJlbWluZGVyIGNvbW1lbnQKICAgLSBmaXggdHlwbywgaW5kZW50ZW50YXRpb24KCjIwMDQtMDctMTAgMTk6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICB1c2UgdWludG1heF90IHZhcnMgZm9yIHBhcnNpbmcgZGF0YQoKMjAwNC0wNy0xMCAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBtYWtlIGxvY2FsIGZ1bmN0aW9uIG1vcmUgZ2VuZXJpYyBhbmQgbW92ZSB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUKCjIwMDQtMDctMTAgMTM6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLCBpcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbW92ZSBjb25maWcgcmVxdWlyZXMgdXAgYSBsZXZlbAoKMjAwNC0wNy0xMCAxMzowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaAo6CgogICBhZGQgaXBzdGF0cy9zeXN0ZW1zdGF0cyBoZWFkZXJzCgoyMDA0LTA3LTEwIDEzOjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUKCjIwMDQtMDctMTAgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIGFkZCBpcFN5c3RlbVN0YXRzVGFibGUKCjIwMDQtMDctMTAgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvZGVmYXVsdC10YWJsZS1pcFN5c3RlbVN0YXRzVGFibGUubTJkCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtRklSU1QudHh0CiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtaXBTeXN0ZW1TdGF0c1RhYmxlLnR4dAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIGltcGxlbWVudCBpcFN5c3RlbVN0YXRzVGFibGUKCjIwMDQtMDctMDkgMjI6NTggIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwo6CgogICAtIHJlbW92ZSBteSBxdWljayAvLyBjb21tZW50cwogICAtIHJlbW92ZSBhIGZldyBYWFggY29tbWVudHMgdGhhdCB3ZXJlIGZlZWRiYWNrIGZvciBSb2JlcnQgKG5vdyBlbWFpbGVkKS4KCjIwMDQtMDctMDkgMTU6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSBQdWxsIHRoZSBESCBwYXJhbWV0ZXJzIGZyb20gdGhlIGFnZW50IHRvIHVzZSBpdHMgY3VycmVudGx5IGNvbmZpZ3VyZWQgcGFyYW1zLgogICAtIHByb3RlY3QgYWdhaW5zdCAhb3BlbnNzbCB1c2VycwoKMjAwNC0wNy0wOSAxNToyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQdWxsIHRoZSBESCBwYXJhbWV0ZXJzIGZyb20gdGhlIGFnZW50IHRvIHVzZSBpdHMgY3VycmVudGx5IGNvbmZpZ3VyZWQgcGFyYW1zLgoKMjAwNC0wNy0wOSAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYywKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAo6CgogICBBZGRlZCB0aGUgdXNtREhQYXJhbWV0ZXJzIG9iamVjdCBmb3IgbWFuYWdlbWVudCBvZiB0aGUgREggcGFyYW1ldGVycwoKMjAwNC0wNy0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSB0aGUgcGVyc2lzdGVudCBmaWxlIHdhcm5pbmcgYSBiaXQsIHVtLCBtb3JlIHN0cm9uZwoKMjAwNC0wNy0wOSAwOTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIuaCwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL2RlZmF1bHQtdGFibGUtdXNtREhVc2VyS2V5VGFibGUubTJkCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kb3h5Z2VuLmNvbmYKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIEltcGxlbWVudGVkIHRoZSBTTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQiB1c21ESFVzZXJLZXlUYWJsZSB0YWJsZS4KCjIwMDQtMDctMDkgMDk6NTcgIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZQo6CgogICBpZ25vcmUgZmlsZQoKMjAwNC0wNy0wOSAwOTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgU3VwcG9ydCBhIGRpZmZpZS1oZWxtYW4gYmFzZWQgImNoYW5nZWtleSIgY29tbWFuZC4KCjIwMDQtMDctMDkgMDk6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBBZGQgZGlmZmllLWhlbG1hbiB2b2lkICogY29udGFpbmVyIHBvaW50ZXJzLgoKMjAwNC0wNy0wOSAwOToyNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgTWFrZWZpbGUuaW46CgogICByZmMyNzg2OiBkaCB1c20gbWliCgoyMDA0LTA3LTA5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdCBmb3Igb3BlbnNzbC9kaC5oCgoyMDA0LTA3LTA4IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gTGludXg6IHVzZSBub24gMCBzb2NrZXQgcHJvdG9jb2wgd2hlbiBjcmVhdGluZyBzb2NrZXQgKG9yIGNhbGwgZmFpbHMpCiAgIC0gZG9uJ3QgcmV0dXJuIHN1Y2Nlc3MgaWYgc29ja2V0IGNhbGwgZmFpbHMKICAgLSBjbG9zZSBzb2NrZXQgYmVmb3JlIHJldHVybmluZwogICAtIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDQtMDctMDggMTc6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gbW92ZSB3cml0ZV9tZXRob2QgYXNzaWdubWVudCBiZWZvcmUgY2hlY2sgZm9yIGV4aXN0aW5nIG5vZGUsIHNvIHJvdyBjcmVhdGlvbgogICAgIGNhbiBiZSBzdXBwb3J0ZWQKCjIwMDQtMDctMDggMTc6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXBkYXRlIHRlc3QgZm9yIGNvcnJlY3Qgbm9kZSBkZWNsIHR5cGUKCjIwMDQtMDctMDggMTc6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGdlbmVyYXRlIGhpZ2ggJiBsb3cgYXNzaWdubWVudHMgZm9yIGNvdW50ZXI2NCBub2RlcwoKMjAwNC0wNy0wOCAxNTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xvc2UgZmlsZXMgYmVmb3JlIGV4aXQsIHRvIGZsdXNoIHBlbmRpbmcgb3V0cHV0CgoyMDA0LTA3LTA4IDA5OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gYXNzaWduIGRzdCBhZGRyIHRvIG5ldyBjYWNoZSBlbnRyeSwgc28gd2UgY2FuIGZpbmQgaXQgaW4gbmV4dCBwYXNzCgoyMDA0LTA3LTA4IDA4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiYWNrIG91ciBwcmV2aW91cyB0cmFwIGJpbmRpbmcgY2hhbmdlCiAgIC0gc2V0IG5ldyBzZXNzaW9uLmxvY2FsbmFtZSB0byBsb2NhbGhvc3QgZm9yIHYxL3YyYyB0cmFwcyAoYnV0IG5vdCBpbmZvcm1zKQoKMjAwNC0wNy0wOCAwODozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgLSBhbGxvdyBwZXIgc2Vzc2lvbiBiaW5kaW5nIHRvIHNwZWNpZmljIGxvY2FsIGFkZHJlc3MgZm9yIHVkcCB0cmFuc3BvcnRzCgoyMDA0LTA3LTA4IDA3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiaW5kIHYxIHRyYXAgc2Vzc2lvbnMgY2xpZW50IGFkZHJlc3MgdG8gbG9jYWxob3N0CgoyMDA0LTA3LTA4IDA2OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBjbG9zZSBmaWxlIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDA0LTA3LTA3IDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBzd2l0Y2ggdG8gdW5pZmllZCBkaWZmCgoyMDA0LTA3LTA3IDE2OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW1vdmUgc29tZSBkdXBsaWNhdGVkIGNvZGUgKHVzZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgdmVyc2lvbnMpCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDctMDcgMTY6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIFByb3Blcmx5IHF1b3RlIG1pYjJjIHZhcmlhYmxlIGluIGEgQGlmQCBjbGF1c2UuCgoyMDA0LTA3LTA3IDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNoYW5nZSByb3cgc3RhdHVzIG9iamVjdCBuYW1lIHRvIG1hdGNoIG1pYiAod2hpY2ggZG9lc24ndCBlbmQgaW4gUm93U3RhdHVzKQoKMjAwNC0wNy0wNyAxNjoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDcgMTM6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWdyZWUgb24gdmFyaWFibGUgbmFtZQoKMjAwNC0wNy0wNyAxMzo0MSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gcmVnaXN0ZXIgdGFibGUgYXMgQ0FOX1JPTkxZCgoyMDA0LTA3LTA3IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBpbXBsZW1lbnQgcm93IHN0YXR1cyAoaGFyZGNvZGVkIGFzIGFjdGl2ZSkKCjIwMDQtMDctMDcgMTM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gcmVwbGFjZSB1X2ludE5fdCB3aXRoIG1vcmUgcG9ydGFibGUgdWludE5fdAoKMjAwNC0wNy0wNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaDoKCiAgIC0gaW5jbHVkZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaGVhZGVyIGZvciBzdHJ1Y3QvZW51bXMKCjIwMDQtMDctMDcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICAtIGluaXRpYWxpc2UgY29udGFpbmVyIHZpYSBkYXRhIGFjY2VzcyBsaWJyYXJ5CgoyMDA0LTA3LTA3IDEwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSB1c2UgZW51bXMgZnJvbSBtaWIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzCgoyMDA0LTA3LTA3IDEwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gYWRkIG1pc3NpbmcgVEMgdmFsdWUKCjIwMDQtMDctMDcgMTA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIHVwZGF0ZSBpcHY2IGltcGxlbWVudGF0aW9uICh0YWtlIGEgc3RhYiBhdCBzdGF0dXMsIHR5cGUsIG9yaWdpbikKCjIwMDQtMDctMDcgMDc6MTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIGNvbW1lbnQgY2hlY2sgcGF0dGVybiB0byBleGNsdWRlIGxvZ3Mgb2YgbWZkIG1hdGNoZXMKCjIwMDQtMDctMDcgMDc6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgLSBhZGQgdW5zb3J0ZWQgc2luZ2x5IGxpbmtlZCBsaXN0IChmaWZvIG9yIGxpZm8pCgoyMDA0LTA3LTA3IDA1OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFF1b3RlICJyW293XWNvbW11bml0eSIgc3RyaW5nIGJlZm9yZSBwYXNzaW5nIHRvIGNvbTJzZWMtc3R5bGUgcGFyc2VyLAogICB0byByZXRhaW4gYW55IGludGVybmFsIHdoaXRlc3BhY2UuCgoyMDA0LTA3LTA3IDA1OjIxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIGNvcHlfbndvcmQgcmF0aGVyIHRoYW4gc3RydG9rIGZvciBwYXJzaW5nIGNvbTJzZWMgZW50cmllcy4KICAgKFRvIGhhbmRsZSBxdW90ZWQgc3RyaW5ncyBwcm9wZXJseSkKCjIwMDQtMDctMDcgMDI6MTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgQ29udmVydCB0byB1c2UgdGhlIG5vbi1yZWN1cnNpdmUgJ0FVVE9fTkVYVCcgYXBwcm9hY2gKICAgZm9yIGFsbCBiYXIgR0VUTkVYVC9HRVRCVUxLIHJlcXVlc3RzLgoKMjAwNC0wNy0wNyAwMjoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFNwYXJzZSB0YWJsZXMgYXJlIGhhbmRsZWQgd2l0aGluIHRoZSB0YWJsZXIgaGVscGVyLAogICBzbyBkb24ndCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgaGVyZS4KCjIwMDQtMDctMDcgMDI6MTEgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIERvbid0IHRocm93IGFuIGVycm9yIGlmIHRoZSBmaW5hbCBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBkaWRuJ3QKICAgaW5jbHVkZSBhbiBleHBsaWNpdCBoYW5kbGVyIHJvdXRpbmUuICBUaGlzIGlzIHBlcmZlY3RseSByZWFzb25hYmxlCiAgIGlmIHRoZSBNSUIgb2JqZWN0IGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSB0aGUgcHJlY2VkaW5nIGhlbHBlcnMuCgoyMDA0LTA3LTA2IDIxOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBpbXBsZW1lbnQvZW5hYmxlIGlwQWRkcmVzc1R5cGUsIGlwQWRkcmVzc0NyZWF0ZWQsIGlwQWRkcmVzc0xhc3RDaGFuZ2VkCiAgICAgaXBBZGRyZXNzUm93U3RhdHVzIChoYXJkY29kZWQgYWN0aXZlKSwgaXBBZGRyZXNzU3RvcmFnZVR5cGUgKGhhcmRjb2RlZCB2b2xhdGlsZSkKICAgLSByZXR1cm4gbm90IHdyaXRhYmxlL25vIGNyZWF0aW9uIHVudGlsIHNldCBzdXBwb3J0IGltcGxlbWVudGVkCiAgIC0gY29uZmlnX3JlcXVpcmUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzCiAgIC0gdXBkYXRlIGNhY2hlIHBvbGljeSB0byBhdXRvIHJlbG9hZCwgZm9yIGxhc3QgY2hhbmdlZC9jcmVhdGVkCgoyMDA0LTA3LTA2IDIxOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBuZXcgZnVuYyB0byBjb21wYXJlIGFuZCB1cGRhdGUgaXBhZGRyZXNzIGVudHJpZXMKICAgLSBuZXcgZmxhZy9jb2RlIGZvciBzZWNvbmQgY29udGFpbmVyIGluZGV4LCBieSBhZGRyZXNzCgoyMDA0LTA3LTA2IDIxOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZXR1cm4gcmVzb3VyY2UgdW5hdmFpbGFibGUgb24gZW1wdHkgaW50ZXJmYWNlIGNvbnRhaW5lcgogICAtIGxvZyBtYWxsb2MgZmFpbHVyZQoKMjAwNC0wNy0wNiAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVuYW1lIGludGVyZmFjZSBkYXRhIGFjY2VzcyBpbml0IHJvdXRpbmUKICAgLSBjcmVhdGUgY29udGFpbmVyIG9uY2UgZHVyaW5nIGluaXQsIHRvIGRpc2NvdmVyIGlmSW5kZXhlcwoKMjAwNC0wNy0wNiAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgaW5pdCBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaW4gaW5pdF9hZ2VudAoKMjAwNC0wNy0wNiAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNyZWFzZSBkZWZhdWx0IG9pZCBwcmludGluZyBzaXplLgoKMjAwNC0wNy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGluY3JlYXNlIGRlZmF1bHQgYnVmZmVyIHNpemUgcGFzc2VkIHRvIGdldF9zeW1ib2xfcmVhbGxvYyAodXNlZnVsCiAgIGZvciBsb25nIE9JRHMgd2hlbiByZWFsbG9jIGlzIGFjdHVhbGx5IG9mZikuCgoyMDA0LTA3LTA2IDE1OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIG5ldyBtZmQgaGVhZGVyCgoyMDA0LTA3LTA2IDE1OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIGNvbW1vbiBtZmQgaW5jbHVkZQoKMjAwNC0wNy0wNiAxNTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzZQoKMjAwNC0wNy0wNiAxNDoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBPbmx5IHByaW50IG9uZSBvZiB0aGUgZXJyb3IgbWVzc2FnZXMgaWYgdGhlIHJlc3VsdCB3YXMgYW4gYXJyYXkuCgoyMDA0LTA3LTA2IDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICAtIGZpeCBhIGZldyAid2hvb3BzIiAocmVtb3ZlIGRlYnVnZ2luZzsgcHJvcGVybHkge30gbXVsdGkgaWYgc3RhdGVtZW50cykuCgoyMDA0LTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gaWYgYSB0YWJsZSBpcyBjb21wb3NlZCBvZiBvbmx5IGluZGV4ZXMsIHdhbGsgYXQgbGVhc3Qgb25lIHNvIHJlc3VsdHMKICAgICBhcmUgcmV0dXJuZWQgZm9yIGdldHRhYmxlKCkuCgoyMDA0LTA3LTA2IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICAtIHByb3Blcmx5IHJldHVybiBOVUxMcyB3aGVuIGFwcHJvcHJpYXRlLgogICAtIG1ha2UgZ2V0X2luZGV4ZXMgcmV0dXJuIGluZGV4ZXMgZnJvbSBhdWdtZW50ZWQgdGFibGVzLgoKMjAwNC0wNy0wNiAxNDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGludWNhc3QsIG9udWNhc3QgY291bnRlcnMgdG8gc3RhdHMgc3RydWN0CiAgIC0gbW92ZSBpbnVjYXN0LCBvbnVjYXN0IGNhbGN1bGF0aW9ucyBpbnRvIGxpbnV4IGludGVyZmFjZSBkYXRhX2FjY2VzcwoKMjAwNC0wNy0wNiAxMTo1MyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgLSB1cGRhdGUgbWFrZSBjaGVja3MgdG8gY2hlY2sgZm9yIGNwcCAjd2FybmluZ3MKCjIwMDQtMDctMDUgMjA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBkb2N1bWVudCAtVCBvcHRpb24gaW4gdXNhZ2UKCjIwMDQtMDctMDUgMjA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbmFzdHkga2VybmVsIHRyaWNrIGRlZmluZXMKICAgLSBhZGQgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgdHlwZWRlZiBmb3IgY29uZl9pZl9saXN0CgoyMDA0LTA3LTA1IDE5OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSBpbmNsdWRlIG5ldyBkYXRhIGFjY2VzcyBpbmNsdWRlCgoyMDA0LTA3LTA1IDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9uZXQtc25tcC1kYXRhLWFjY2Vzcy1pbmNsdWRlcy5oCjoKCiAgIG5ldyBoZWFkZXIgZm9yIGFsbCBkYXRhIGFjY2VzcyBpbmNsdWRlcwoKMjAwNC0wNy0wNSAxNTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gcmVtb3ZlIHJvdyBzdGF0dXMgZm9yIG5vdzsgd2FybmluZyB0byByZW1pbmQgYmVmb3JlIDUuMgoKMjAwNC0wNy0wNSAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIGFkZCBjb25maWdfcmVxdWlyZSBvZiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UKCjIwMDQtMDctMDUgMTQ6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgY29uZl9pZl9saXN0IGRlY2xhcmF0aW9uIChpdCdzIGluIGRhdGFfYWNjZXNzL2ludGVmYWNlcy5oIG5vdykKCjIwMDQtMDctMDUgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIGFzc2VydHMgc2hvdWxkIGJlIG5ldHNubXBfYXNzZXJ0cwoKMjAwNC0wNy0wNSAxNDoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGRvbid0IHVzZSBuYXN0eSBrZXJuZWwgdHJpY2sgKGF2b2lkIHVuZXhwZWN0ZWQgbWFjcm8gc3Vic3RpdHV0aW9ucykKCjIwMDQtMDctMDUgMDk6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDctMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjIuZGV2CgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDg6MzEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgbWFrZSB0ZXN0IHJlc3VsdHMgdG8gdXBsb2FkCgoyMDA0LTA3LTA1IDA1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCByZWFkX29ubHkuYywKICAgICB0YWJsZV9kYXRhc2V0LmMsIHdhdGNoZXIuYzoKCiAgIFVzZSAiQVVUT19ORVhUIi1zdHlsZSBoYW5kbGluZyBmb3IgdGhlIHRyaXZpYWwgY2FzZXMKICAgKG5vdGluZyB0aGlzIGJlaGF2aW91ciB3aXRoaW4gdGhlIGhhbmRsZXIgaXRzZWxmKS4KCjIwMDQtMDctMDUgMDU6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYzoKCiAgIFVzZSBzd2l0Y2ggZmFsbHRocm91Z2ggdG8gaGFuZGxlciBHZXRCdWxrLT5HZXROZXh0LT5HZXQgaGFuZGxlciBmYWxsYmFja3MuCiAgIFRoZSBwcmV2aW91cyBjb2RlIGRpZG4ndCBjb3BlIHdpdGggYSBtaXNzaW5nIEdFVCBoZWxwZXIgZm9yIEdldEJ1bGsvR2V0TmV4dC4KCjIwMDQtMDctMDQgMTg6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgLSBjb252ZXJ0IHRvIHVzZSBBVVRPX05FWFQKCjIwMDQtMDctMDQgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oOgoKICAgLSByZXN0b3JlIGNvbmZpZ19yZXFpcmUgb2Ygb2xkIHRhYmxlIChlbmFibGUtbWZkLXJld3JpdGVzIGNvZXhpc3RlbmNlKQoKMjAwNC0wNy0wNCAxODoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGlmZGVmIG91dCB0YWJsZSByZWdpc3RyYXRpb24gaWZmICEgZW5hYmxlLW1mZC1yZXdyaXRlcwogICAtIGluaXQgY2FjaGUgZWFybGllciAoaXQgaGFwcGVucyBldmVuIGlmICEgZW5hYmxlLW1mZC1yZXdyaXRlcywgZm9yIGlmWFRhYmxlKQoKMjAwNC0wNy0wNCAxODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5oLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWRkIGZsYWcgdG8gaW5kaWNhdGUgaWYgYSBjYWNoZWQgaW50ZXJmYWNlIGlzIG5vdCBtaXNzaW5nCiAgIC0gc2V0IGFkbWluIChhbmQgbWF5YmUgb3Blcikgc3RhdHVzIGRvd24gZmlyc3QgdGltZSBpbnRlcmZhY2UgZ29lcyBtaXNzaW5nCiAgIC0gc2V0IGlmTGFzdENoYW5nZWQgd2hlbiBvcGVyIHN0YXR1cyBjaGFuZ2VzCiAgIC0gc2V0IGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lIHdoZW4gbWlzc2luZyBpbnRlcmZhY2UgcmV0dXJucwoKMjAwNC0wNy0wNCAxODoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gdXNlIGlmTmFtZSBmb3IgZGVzY3JpcHRpb24gaWZmIE5VTEwgZGVzY3JpcHRpb24KICAgLSByZXR1cm4gZW1wdHkgc3RyaW5nIGZvciBwaHlzYWRkciBpZmYgYWxsIDBzCgoyMDA0LTA3LTA0IDE4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBkb2N1bWVudCB0aGF0IFNJT0NHSUZIV0FERFIgaW9jdGwgbWlnaHQgbm90IHJldHVybiBmdWxsIDYgYnl0ZXMKICAgLSBhZGQgbWVtc2V0IHRvIDAgYmVmb3JlIFNJT0NHSUZIV0FERFIgaW9jdGwsIGlmIG5lZWRlZAogICAtIHVzZSBzdGFuZGFyZCBJRkhXQUREUkxFTiBtYWNybyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCA2CiAgIC0gdHJpdmlhbCBvcHRpbWl6YXRpb24gKGRvbid0IGFzc2lnbiB2YXIgdHdpY2UgaW4gY2VydGFpbiBjYXNlcykKICAgLSBjb21tZW50IG91dCBhbGwgaWZUYWJsZSBmcm9tIHZhcmlhYmxlIHN0cnVjdCBpZmYgLS1lbmFibGUtbWZkLXJld3JpdGVzCgoyMDA0LTA3LTA0IDE4OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgdHVubmVsL3R1bm5lbC5jOgoKICAgLSBkb2N1bWVudCB0aGF0IFNJT0NHSUZIV0FERFIgaW9jdGwgbWlnaHQgbm90IHJldHVybiBmdWxsIDYgYnl0ZXMKICAgLSBhZGQgbWVtc2V0IHRvIDAgYmVmb3JlIFNJT0NHSUZIV0FERFIgaW9jdGwsIGlmIG5lZWRlZAogICAtIHVzZSBzdGFuZGFyZCBJRkhXQUREUkxFTiBtYWNybyBpbnN0ZWFkIG9mIGxvY2FsIG9uZQoKMjAwNC0wNy0wNCAxODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGRvbid0IGFzc3VtZSBvcGVyIHN0YXR1cyBpcyB1cAogICAtIHJlbW92ZSBncmF0dWl0b3VzIGxvZyBtZXNzYWdlCgoyMDA0LTA3LTA0IDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgcmVtb3ZlIHByb3RvdHlwZXMgY2F1c2luZyBjb21waWxlIGVyciAoZmluZCBmaXggbGF0ZXIpCgoyMDA0LTA3LTA0IDE4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wNCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuaCwgaWYtbWliL2lmVGFibGUuaCwKICAgICBpZi1taWIvaWZYVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgLSByZS1lbmFibGUgb2xkIGltcGxlbWVudGF0aW9ucyBmb3IgLS1lbmFibGUtbWZkLXJld3JpdGVzCiAgICAgKGV4Y2VwdCBmb3IgaWZUYWJsZTsgdHVybnMgb3V0IHRoZSByZXN0IGFyZSBhbGwgbmV3IHRhYmxlcykKICAgLSBpZmRlZiBvdXQgaWZUYWJsZSByZWdpc3RyYXRpb24gZm9yIGVuYWJsZS1tZmQtcmV3cml0ZXMsIGxlYXZpbmcgdGhlIHJlc3QKICAgICBvZiB0aGUgY29kZSBpbnRhY3QgZm9yIG90aGVyIHRhYmxlcy9vYmplY3QgdGhhdCBuZWVkIGl0LgoKMjAwNC0wNy0wNCAxMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gc2V0IGlmIHR5cGUgdG8gdHVubmVsIGlmIG5vdCBzZXQgJiBpZiBuYW1lIHN0YXJ0cyB3aXRoICdzaXQnCgoyMDA0LTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBzZXQgcGh5c2FkZHIgbGVuIHRvIDAgaWYgcGh5c2FkZHIgbm90IGtub3duCiAgIC0gc2V0IG9wZXIgc3RhdHVzIGZyb20gaWYgZmxhZ3MKCjIwMDQtMDctMDQgMTA6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBsZWF2ZSBpZl9kZXNjciBOVUxMIHVudGlsIHdlIGNhbiBkZXRlcm1pbmUgaXQuCgoyMDA0LTA3LTA0IDEwOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBMaW51eDogb25seSBsb2cgbWlzc2luZyAvcHJvYy9tZW1pbmZvIGVycm9ycyBvbmNlLCBhdCBzdGFydHVwCgoyMDA0LTA3LTA0IDEwOjAzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW5pdCB2YXIgYmVmb3JlIHVzaW5nIGl0CgoyMDA0LTA3LTA0IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGFkZCBuZXRzbm1wIGFzc2VydCBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCgoyMDA0LTA3LTAzIDE3OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBmaXggY2FjaGUgbG9va3VwIG9pZCBwYXJhbQoKMjAwNC0wNy0wMyAxNzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzOyBkb2N1bWVudCB0aGF0IG1hZ2ljIGlzIGZvciB1c2VyIGhhbmRsZXIKCjIwMDQtMDctMDMgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDMgMTc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gc29tZSB3YXJuaW5ncyBmb3Igc3R1ZmYgdG8gYmUgZG9uZSBiZWZvcmUgNS4yCgoyMDA0LTA3LTAzIDE1OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGZpeCBjb25kaXRpb25hbCB0ZXN0IGZvciBza2lwcGluZyBtYXBwaW5nCgoyMDA0LTA3LTAzIDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgb25seSBkZWNsYXJlIHZhciBpZiBpdCB3aWxsIGJlIHVzZWQKCjIwMDQtMDctMDMgMTM6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGFkZCBub3RlIGluIHN0cnVjdCB0byB1cGRhdGUgX2Nsb25lX2hhbmRsZXIgd2hlbiBub3QgaXRlbXMgYWRkZWQKCjIwMDQtMDctMDMgMTM6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRvbid0IHVzZSAnOicgaW4gZmlsZSBuYW1lCiAgIC0gYWRkIC0tc2hvdy1jLWZ1bmN0aW9uIHRvIGRpZmYgcGFyYW1zCgoyMDA0LTA3LTAzIDEzOjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCB1cGxvYWQgZm9yIG5zYi1wYWNrYWdlIGFib3J0IGNhc2UKCjIwMDQtMDctMDMgMTM6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHZlcmJvc2UgaW5mbyBvbiB1cGxvYWQKCjIwMDQtMDctMDMgMTA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHJldHVybiBlcnJvciBmcm9tIHVzbV9jaGVja19zZWNMZXZlbCBpZiB1c2VyU3RhdHVzIGlzIG5vdCBhY3RpdmUKCjIwMDQtMDctMDMgMTA6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgLW5ldyBuZXRzbm1wX2hleF90b19iaW5hcnkgKGFsbG93cyBzcGVjaWZ5aW5nIGRlbGltaXRlcnMgZm9yIGhleCBzdHJpbmcpCiAgIC1hZGQgZG94eWdlbiBkb2NzOyBtb3ZlIHNvbWUgY29tbWVudHMgdG8gZnVuY3Rpb24gZG9jcwoKMjAwNC0wNy0wMyAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICB1cGNhc2UgY29uc3RhbnRzCgoyMDA0LTA3LTAzIDEwOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgaW5jbHVkZSBkZWxldGVkIGhlYWRlcgoKMjAwNC0wNy0wMyAxMDoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLSBjb25zaXN0ZW5jeSBiZXR3ZWVuIG5vbi1pbmRleCBhbmQgaW5kZXggdmFyIHJlZmVyZW5jZXMKCjIwMDQtMDctMDMgMTA6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gYWxsb3cgdGFibGUgdG8gc3BlY2lmeSBubyBtYXBwaW5nIGZvciBub2RlcwogICAtIG5ldyBvcHRpb24gdG8gZ2VuZXJhdGUgdGFibGUgZGVmYXVsdHMgJiBleGl0CgoyMDA0LTA3LTAzIDEwOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgLSBtb3ZlIGFzc2lnbm1lbnQgbGF0ZXIgdG8gZ2V0IGNvcnJlY3QgdmFsdWUKCjIwMDQtMDctMDMgMTA6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLWdldC1vaWQubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywKICAgICBtZmQtcmVhZG1lLm0yYzoKCiAgIC0gYWxsb3cgdGFibGUgdG8gc3BlY2lmeSBubyBtYXBwaW5nIGZvciBub2RlcwoKMjAwNC0wNy0wMiAxMDowNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBmaXggYnVnIzgxOTE1NCBieSBhbGxvd2luZyBnZXRuZXh0IGZhaWx1cmUgdG8gY29udGludWUgdHJhdmVyc2luZyB0aGUgZXh0ZW5zaWJsZSBsaXN0cy4KCjIwMDQtMDctMDIgMDc6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBtYWtlIGEgc2FmZSBjb3B5IG9mIHRoZSBjb21tYW5kIHN0cmluZyB0byB0aGUgbmFtZSBzdHJpbmcuCgoyMDA0LTA3LTAyIDA2OjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgYXBwbHkgcGF0Y2ggIzkxMDA5NCBTb2xhcmlzIGNhbiBvbmx5IHNlZSBzb21lIGRpc2tzIC0tIGluY3JlYXNlIExVTiByYW5nZSAwLTcKCjIwMDQtMDctMDIgMDY6MzggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggYnVnICM5ODQwNjEgLSBjaGVjayBsaW1pdHMsIGJ1aWxkIGRldmljZSB0eXBlIHNwYW5zIHByb3Blcmx5CgoyMDA0LTA3LTAyIDA2OjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHdhcm4sIHRoZW4gcHJldmVudCBhZGRpbmcgbW9yZSBkZXZpY2VzIHRoYW4gdGhlIGRpc2tzIGFycmF5IHdpbGwgaG9sZC4KCjIwMDQtMDctMDIgMDU6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgYXBwbHkgcGF0Y2ggIyA5ODM4NTEgQ2hlY2sgcmV0dXJuIHZhbHVlIGZvciBjZ2V0bmV4dCgpIGFuZCBmaXggI2lmZGVmCgoyMDA0LTA3LTAyIDA0OjQ3ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgUkVBRE1FLm1pYnMsIHNtaXN0cmlwOgoKICAgTm90ZXMgYW5kIHR3ZWFrcyB0aGF0IHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBhIGZ1bGwgcmZjIG1pYiBjb21wbGVtZW50CiAgIHVuZGVyIFNvbGFyaXMKCjIwMDQtMDctMDIgMDQ6MzcgIG5iYQoKICAgKiBtaWJzLzogcmZjbGlzdCwgcmZjbWlicy5kaWZmOgoKICAgTmV3IHZlcnNpb24gb2cgUHJpbnRlci1NSUIKCjIwMDQtMDctMDIgMDM6MTkgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIFVwZGF0ZSB0cCBjb3JyZWN0IFJGQyBmb3IgRXRoZXJsaWtlLU1JQgoKMjAwNC0wNi0zMCAyMDowNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBhdm9pZCBzb3J0IHdoZW4gb25seSBvbmUgcGFzcyBvciBwYXNzX3BlcnNpc3QgZGlyZWN0aXZlIGlzIGluc3RhbnRpYXRlZC4KICAgcHJldmVudCBvdmVyZmxvd2luZyBiaW4yYXNjJ3MgYnVmZmVyLCBhbmQgcmVtb3ZlIGEgc2V0IGJ1dCBub3QgdXNlZCAiaXRtcCIgdmFyaWFibGUuCgoyMDA0LTA2LTMwIDE5OjM4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGZpeCBidWcgOTgxMjc1IGJ5IE9JRCBzb3J0aW5nIHRoZSAiZXhlYyIgYW5kICJzaCIgZGlyZWN0aXZlcy4KCjIwMDQtMDYtMzAgMDc6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggY3V0LW4tcGFzdGVzIHRvIHVzZSBjb3JyZWN0IGZ1bmN0aW9uL3ZhciBuYW1lcwoKMjAwNC0wNi0zMCAwNjozNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBmaXggYnVnIyA1MDIyMTUgIm9pZCBub3QgaW5jcmVhc2luZyIgYnVncyBmb3IgSVB2NiBVRFAvVENQIG9uIEZyZWVCU0QKCjIwMDQtMDYtMzAgMDY6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYwosIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTI5IDE2OjA1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIGZpeCBuYW1lICh1ZGJ0YWJsZSAtLT4gdGNidGFibGUpIGluIFRDUDYgdmVyc2lvbiBvZiB2YXJfdGNwNi4KCjIwMDQtMDYtMjkgMDU6MTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBhcHBseSBwYXRjaCA5Nzk0MzYgdG8gbWFrZSBzeXMvZGtzdGF0Lmggb2Jzb2xldGUgd2hlbiBidWlsZGluZyByZWNlbnQgRnJlZUJTRDUKCjIwMDQtMDYtMjkgMDQ6NTcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseSBwYXRjaCA5Nzk0MzQgdG8gU3VwcG9ydCBGcmVlQlNEIDUuMCBhbmQgNS4xIGluIGRpc2tpby5jCgoyMDA0LTA2LTI5IDA0OjAwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgVXNlIHVfbG9uZyBmb3IgcGh5c19tZW0gaW4gbWVtb3J5X2ZyZWVic2QyLmMgKHBhdGNoICM5NzkwMzQpCgoyMDA0LTA2LTI5IDAzOjQ4ICBzbGlmCgogICAqIHBlcmwvT0lEL3Rlc3QucGwsIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHBlciBBbGV4IEJ1cmdlciwgYXBwbHkgcGF0Y2ggIzk4MDExOCB0byBmaXggTVNWQyBQZXJsIG1vZHVsZSBidWlsZCBhbmQKICAgcHJldmVudCB0ZXN0IGZyb20gc3RvcHBpbmcgaW4gV2luZG93cyBkdWUgdG8gYW4gdW4taW5pdGlhbGl6ZWQgdmFyaWFibGUuCgoyMDA0LTA2LTI5IDAzOjM2ICBzbGlmCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgTVNWQyBidWlsZHMgdmFjbV9jb25mIG9iamVjdCBpbiBvcmRlciB0byBmaXggYnVnICM5ODEzNzcuIEdvb2QgQ2FsbCwgRGF2ZS4KCjIwMDQtMDYtMjkgMDA6MDMgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXA6CgogICB1c2UgQVVUSFRFU1RBUkdTIHRvIGZpeCBidWcjOTczNjczCgoyMDA0LTA2LTI4IDE3OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKCjIwMDQtMDYtMjggMTY6NTkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBhZGQgTkVUU05NUF9FTkFCTEVfTUZEX1JFV1JJVEVTCiAgIC0gYWRkICcoaW5jb21wbGV0ZSknIHRvIGNvbW1lbnQgZm9yIE5TX1JFRU5UUkFOVAoKMjAwNC0wNi0yOCAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNi0yOCAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIC0gbmV3IGNvbmZpZ3VyZSBmbGFnZTogLS1lbmFibGUtbWZkLXJld3JpdGVzIHdpbGwgdHVybiBvbiByZXdyaXR0ZW4gbW9kdWxlcy4KICAgICAtIGN1cnJlbnRseSBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGRpc2FibGluZyBkZXByZWNhdGVkIHRhYmxlcwoKMjAwNC0wNi0yOCAxNToxOCAgcnN0b3J5CgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICAtIHVwZGF0ZSBmb3IgYXV0by1nZW4gZnJvbSBtaWIyYwoKMjAwNC0wNi0yOCAxNToxMSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIHVwZGF0ZSBvaWQgY2hhbmdlZCBpbiBpZXRmIGRyYWZ0CgoyMDA0LTA2LTI4IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIGNvbmZpZyBleGNsdWRlIG1pYklJL2lwLCBub3QgbWliSUkvdmFyX3JvdXRlCgoyMDA0LTA2LTI4IDE1OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIHVudXNlZCAoZHVlIHRvIGRhdGEgc2hhcmluZyB3L2lmVGFibGUpIGZ1bmN0aW9ucwoKMjAwNC0wNi0yOCAxNTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgdXNlIGxvY2FsLCBub3Qgc3l0ZW0sIHN0eWxlIGluY2x1ZGUgZm9yIG1pYmdyb3VwIGhlYWRlcgoKMjAwNC0wNi0yOCAxNTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIG1vdmUgdmFyIGRlY2wgYmVmb3JlIGZpcnN0IHN0YXRlbWVudAoKMjAwNC0wNi0yOCAxMTo1NCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IHNldHRpbmcgb2YgT1NUWVBFIGZvciBGcmVlQlNEIGJ1aWxkIHBsYXRmb3JtcyAoY29uc2lkZXIgYWNjb25maWcuaCkuCgoyMDA0LTA2LTI4IDExOjQ0ICBzbGlmCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBpbnQgZm9yIGF0b2ksIGNhc3QgdG8gdW5zaWduZWQgc2hvcnQ7CiAgIHRoaXMgZml4ZXMgYnVnIDk4MTQzOCB0cmFwc2luayBwb3J0IHJhbmdlIGNoZWNrcyBhcmUgd3JvbmcKCjIwMDQtMDYtMjggMDU6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDYtMjggMDU6MzIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG5ldyAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNraW5nIHRvIGZhaWwgb24gbW9kdWxlIGNvbmZsaWN0cwoKMjAwNC0wNi0yOCAwNToyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICAtIGFkZCBuYW1lIHRvIGNvbnRhaW5lciBzdHJ1Y3R1cmUKICAgLSBuZXcgbWFjcm8gdG8gZmluZCBuYW1lZCBjb250YWluZXIgaW4gbGlzdAoKMjAwNC0wNi0yOCAwNToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgcmVtb3ZlIGNvbmRpdGlvbiBmb3IgaGVhZGVyIGZ1bmN0aW9uIHByb3RvdHlwZSBnZW5lcmF0aW9uCgoyMDA0LTA2LTI4IDA1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVtb3ZlIGRlcHJlY2F0ZWQgbGFiZWwgZnJvbSBmdW5jLCBhZGQgbm90ZSBvbiBwcmVmZXJyZWQgZnVuYyBpbnN0ZWFkCiAgIC0gYWRkIHNvbWUgbmV0c25tcF9hc3NlcnRzICYgZGVidWcgb3V0cHV0CiAgIC0gcmVkdWNlIGR1cGxpY2F0ZWQgY29kZQogICAgIC0gbmV0c25tcF9kYXRhX2xpc3RfYWRkX2RhdGEgbm93IGNhbGxzIG5ldHNubXBfZGF0YV9saXN0X2FkZF9ub2RlCiAgIC0gbG9nIHdhcm5pbmcgaWYgZHVwbGljYXRlIGtleSBhZGRlZCB0byBhIGRhdGEgbGlzdAogICAtIG5ldHNubXBfYWRkX2xpc3RfZGF0YSBub3cgY2FsbHMgcHJlZmVycmVkIG5ldHNubXBfZGF0YV9saXN0X2FkZF9ub2RlCgoyMDA0LTA2LTI4IDA1OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYWRkIG1pc3NpbmcgZGVmYXVsdAoKMjAwNC0wNi0yOCAwNToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlhUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5taWIyYy11cGRhdGVyYzoKCiAgIHJjIGZpbGUgdXNlZCBmb3IgY29kZSBnZW5lcmF0aW9uCgoyMDA0LTA2LTI4IDA1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIG1pYjJjLXVwZGF0ZSBkaXJzCgoyMDA0LTA2LTI4IDA1OjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICBBdXRvbWF0aWNhbGx5IHVucmVnaXN0ZXIgcHJveHkgc2V0dGluZ3Mgb24gYWdlbnQgc2h1dGRvd24gb3IgcmVzdGFydC4KICAgKEJ1ZyAjNzQ4NzMzKQoKMjAwNC0wNi0yOCAwNDo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgVW5yZWdpc3RlciBwcm94eSByZWdpc3RyYXRpb25zIHdoZW4gZnJlZWluZyB0aGUgY29uZmlnIHNldHRpbmdzLgoKMjAwNC0wNi0yOCAwNDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgU2tpcCBlbXB0eSBjb250ZXh0cyB3aGVuIGR1bXBpbmcgdGhlIGludGVybmFsIE1JQiByZWdpc3RyeS4KICAgKFByb2JhYmx5IGFzIGEgcmVzdWx0IG9mIHJlbW92aW5nIHJlZ2lzdHJhdGlvbnMpLgoKMjAwNC0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBEcm9wIHNwZWNpYWwtY2FzZSBoYW5kbGluZyBvZiAibG8vbG8wIiBzaW5jZSB0aGlzIGdpdmVzIGJvZ3VzIHJlc3VsdHMKICAgKEJ1ZyAjNDIyMzk0KQoKMjAwNC0wNi0yOCAwNDoyMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIERvbid0IHRyeSB0byBzZXQgdGhlIE9JRCBvZiBhIHZhcmlhYmxlIHRoYXQgaXNuJ3QgdGhlcmUuCiAgIChQcm9iYWJseSB0cmlnZ2VyZWQgYnkgcnVubmluZyBHZXRCdWxrIG9uIGEgIm5vbi1zaW1wbGUiCiAgICB2aWV3IC0gc2VlIEJ1ZyAjNzA2MDg5KQoKMjAwNC0wNi0yNyAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSByZW5hbWUgbmV0c25tcF9jYWNoZV9leHRyYWN0X2Zyb21fcmVxaW5mbyB0byBuZXRzbm1wX2NhY2hlX3JlcWluZm9fZXh0cmFjdAoKMjAwNC0wNi0yNyAxODozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgICB1ZHAuYzoKCiAgIC0gdXNlIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQgaW5zdGVhZCBvZiBuZXRzbm1wX2lzX2NhY2hlX3ZhbGlkCgoyMDA0LTA2LTI3IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIGFkZCBuYW1lIHBhcmFtZXRlciB0byBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkCiAgIC0gbmV3IG5ldHNubXBfY2FjaGVfcmVxaW5mb19pbnNlcnQsIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0CiAgIC0gdXNlIENBQ0hFX05BTUU6aGFuZGxlck5hbWUgYXMgZGF0YV9saXN0IGtleSBmb3IgY2FjaGUKICAgICAtIHRoaXMgZml4ZXMgQnVnICM5NzM3MjggdGhlIHJpZ2h0IHdheS4gc2VlIGJ1ZyByZXBvcnQgZm9yIGRldGFpbHMKCjIwMDQtMDYtMjcgMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICAtIGFkZCBuZXRzbm1wX3JlcXVlc3RfcmVtb3ZlX2xpc3RfZGF0YQoKMjAwNC0wNi0yNyAxNzoxMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgLSBhZGQgbmV0c25tcF9hZ2VudF9yZW1vdmVfbGlzdF9kYXRhCgoyMDA0LTA2LTI2IDE1OjExICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBhZGQgZGVidWcgbXNnIHdoZW4gbW9kdWxlIHBhdGggY2hhbmdlcwogICAtIHR3ZWFrIGRlYnVnIG1zZyBvdXRwdXQgaW5kZW50CgoyMDA0LTA2LTI2IDE1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWFrZSBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5IGFuZCBoYW5kbGVfbWlic19jb25mIGNvbnNpc3RlbnQ6CiAgICAgLSAnLS9kaXInIGFkZHMgL2RpciBiZWZvcmUgZXhpc3RpbmcgZGlycwogICAgIC0gJysvZGlyJyBhZGRzIC9kaXIgYWZ0ZXIgZXhpc3RpbmcgZGlycwogICAgICAgTk9URTogdGhpcyByZXN0b3JlcyBvcmlnaW5hbCBiZWhhdmlvciBvZiAnKycgdG8gdGhhdCBvZiA1LjAuMS4gQWZ0ZXIKICAgICAgICAgICAgIDUuMC4yLCBpZiBJIHJlYWQgdGhlIGNvZGUgcmlnaHQsICcrJyBiZWhhdmlvdXIgb24gdGhlIGNtZCBsaW5lIGFuZAogICAgICAgICAgICAgaW4gTUlCRElSUyB3YXMgcmV2ZXJzZWQgYW5kIG5vdCBjb25zaXN0ZW50IHdpdGggaGFuZGxlX21pYnNfY29uZi4KCjIwMDQtMDYtMjYgMDY6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG11bHRpcGxlIG1pYmRpcnMgaW4gY29uZiBmaWxlcyB3b3JrIHdpdGggJ2xlYXN0IHN1cnByaXNlJyAoaWUgY29tcGxldGVseQogICAgIHJlcGxhY2UgbWliZGlycywgdW5sZXNzICsgc3BlY2lmaWVkCiAgIC0gbmV3IG1pYmRpciBiZWhhdmlvdXI6IGlmIC0gc3BlY2lmaWVkLCBhZGQgc3BlY2lmaWVkIGRpcnMgYmVmb3JlIGV4aXN0aW5nCiAgICAgb25lcyBpbnN0ZWFkIG9mIGFmdGVyCgoyMDA0LTA2LTI2IDA1OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgIm11bHRpLXRva2VuIiBtYXNrcyAtIGkuZS4gdXNpbmcgc3BhY2UgKHJhdGhlciB0aGFuCiAgICcuJyBvciAnOicpIHRvIHNlcGFyYXRlIHRoZSBtYXNrIG9jdGV0cy4gIChTZWUgYnVnICM3MDYwODkpCgoyMDA0LTA2LTI2IDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFdvcmsgd2l0aCB0aGUgc2FtZSBjYWNoZSBzdHJ1Y3R1cmUgY29uc2lzdGVudGx5LAogICByYXRoZXIgdGhhbiByZS1leHRyYWN0aW5nIGl0IGZyb20gdGhlIHJlcWluZm8gc3RydWN0dXJlLgogICAoU2hvdWxkIGZpeCBCdWcgIzk3MzcyOCkKCjIwMDQtMDYtMjUgMDQ6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeCB0aGUgY2hlY2sgZm9yIGEgdmFsaWQgSUNNUCBjYWNoZQogICAoU3BvdHRlZCBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDYtMjUgMDI6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBBIG1pc3NpbmcgJ2lwT3V0Tm9Sb3V0ZXMnIHZhbHVlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gKG5vdCBhbiBlcnJvcikKICAgYW5kIGFsbG93IGFueSBvdGhlciBJUC1yZWxhdGVkIHZhcmJpbmRzIGluIHRoZSBzYW1lIHJlcXVlc3QgdG8gYmUgcHJvY2Vzc2VkLgoKMjAwNC0wNi0yNCAxMzowNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIC1JciBlZmZlY3RpdmUgZm9yIGEgTmV0d29ya0FkZHJlc3MKCjIwMDQtMDYtMjQgMDk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAtIG1ha2UgY2xvbmVfaGFuZGxlciBzdGF0aWMsIHJlbmFtZSB0byBfY2xvbmVfaGFuZGxlcgogICAtIGRlbGV0ZSBoYW5kbGVyICYgcmV0dXJuIG51bGwgb24gY3JlYXRlIGlmIG5hbWUgc3RyZHVwIGZhaWxzCiAgIC0gcG9zc2libGUgZml4IGZvIDk3MzcyOCBdIG1haW4gYnJhbmNoIGZhaWxzIHRvIGxvYWQgdGNwQ29ubmVjdCBhbmQgdWRwIFRhYmxlCiAgICAgLSBjb3B5IGZsYWdzIGluIF9jbG9uZV9oYW5kbGVyCiAgICAgLSB1cGRhdGUgbmV0c25tcF9oYW5kbGVyX2R1cCB0byB1c2UgX2Nsb25lX2hhbmRsZXIsIG5ldHNubXBfaGFuZGxlcl9mcmVlCgoyMDA0LTA2LTI0IDA0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGRlYnVnIHN0YXRlbWVudCBwYXJhbWV0ZXIKCjIwMDQtMDYtMjMgMTE6NTcgIG5iYQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERveHlnZW4gaW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBjb250cmlidXRlZCBieSBDeXJpbCBNQVJHQVJJQQoKMjAwNC0wNi0yMyAxMDo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIDk3ODA4NzogYmFkIGluZGV4IGNoZWNrIGZvciBOZXR3b3JrQWRkcmVzcwoKMjAwNC0wNi0yMiAxNTo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggY3B1LWJ1cm5pbmcgYnkgcnVubmluZyBhbGFybXMuIERpYWdub3NlZCBieSByZ3JlYWJAdXNlcnMuc291cmNlZm9yZ2UubmV0CgoyMDA0LTA2LTIyIDE1OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGFmdGVyIGFsbG9jYXRpb24KCjIwMDQtMDYtMjIgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgLSBtb3ZlIGRhdGFfaW5pdCBjYWxsIGludG8gaW50ZXJmYWNlIGNvZGUKICAgLSBjYWxsIGRhdGFfaW5pdCBiZWZvcmUgY29udGFpbmVyX2luaXQKCjIwMDQtMDYtMjIgMTU6MTMgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQXV0b2RldGVjdCAtbGRldnN0YXQgZm9yIEZyZWVCU0QgNSAoYXMgd2FzIGRvbmUgZm9yIDQpCgoyMDA0LTA2LTIyIDA2OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBGaXggaGFuZGxpbmcgb2YgdGFibGUgcm93IHJlZ2lzdHJhdGlvbiBpbiBvbGQtQVBJIChCdWcgIzcwMjQ1OCkKCjIwMDQtMDYtMjIgMDI6MDMgIGR0czEyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQZXJsIEFQSSBmb3Igc2V0dGluZyBNSUIgcGFyc2luZyBvcHRpb25zIChCdWcgIzU1NDc0OSkKCjIwMDQtMDYtMjEgMTE6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZXMuaAoKMjAwNC0wNi0yMSAxMDo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIHNldCB2YWxpZF9jb2x1bW5zCgoyMDA0LTA2LTIxIDA2OjMxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGR1cGxpY2F0ZSBhbGxvY2F0aW9uIG9mIG1lbW9yeSB3aGVuIGRlZmluaW5nIGVudW1lcmF0aW9uIGxpc3RzCiAgIChCdWcgIzkyMzc2NikKCjIwMDQtMDYtMjEgMDM6MTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIENvcnJlY3QgZGVzY3JpcHRpb24gb2YgcmV0dXJuIHZhbHVlcyB0byB1c2UgKEJ1ZyAjOTQ3OTI2KQoKMjAwNC0wNi0yMSAwMzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBzaXplIGZvciBwYXJzaW5nIGFuIGludGVnZXIgY29ycmVjdGx5IChCdWcgIzk0NzQwMykKCjIwMDQtMDYtMTkgMTY6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRml4IGNvbW1lbnQgdHlwby4KCjIwMDQtMDYtMTkgMDY6MzQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBtb2RpZnkgcGF0Y2ggOTU2MjcyIHRvIG1ha2UgaXQgU29sYXJpczIgc3BlY2lmaWMKCjIwMDQtMDYtMTggMTM6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gaW5zdGFsbCBuZXcgbWliMmMtdXBkYXRlIGJhc2ggc2NyaXB0CiAgIC0gaW5zdGFsbCB0b3AgbGV2ZWwgbWZkIGNvbmYgZmlsZQogICAtIG1ha2UgaW5zdGFsbCB0YXJnZXQgZGVwZW5kIG9uICdtYWRlJyBwZXJsIHNjcmlwdHMKCjIwMDQtMDYtMTggMTI6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjaGFuZ2UgdV9pbnQzMl90IHRvIGludDMyIHRvIG1ha2UgaXQgbW9yZSBwb3J0YWJsZQoKMjAwNC0wNi0xOCAxMTo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVtb3ZlZCBhIHNraXBfdG9rZW4gdGhhdCB3YXMgY2F1c2luZyBhIGZvbGxvdy1vbiB0b2tlbiB0byBiZSBza2lwcGVkLgoKMjAwNC0wNi0xOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlZCByZmMgbGlzdCBmb3IgdXNtLWFlcwoKMjAwNC0wNi0xOCAxMTo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gRml4ZWQgdXNhZ2Ugb2YgZl9mcnNpemUgdW5kZXIgYXJjaGl0ZWN0dXJlcyB0aGF0IGhhZCBpdCBmb3Igc3RhdHZmcwogICAgIGJ1dCBub3Qgc3RhdGZzLgoKMjAwNC0wNi0xOCAxMDozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIG1pYnMvTWFrZWZpbGUuaW4KLCBtaWJzL1NOTVAtVVNNLUFFUy1NSUIudHh0LCBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gVXBkYXRlZCB0aGUgQUVTIE9JRCB0byBtYXRjaCB0aGUgcmVjZW50bHkgcHVibGlzaGVkIFVTTS9BRVMgZHJhZnQKICAgLSBBZGRlZCB0aGUgVVNNLUFFUyBNSUIgdG8gdGhlIGxpc3Qgb2YgbWlicy4KCjIwMDQtMDYtMTggMDk6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG5ldyBtaWIyYy1kYXRhIGRpciB0byBzZWFyY2ggcGF0aAoKMjAwNC0wNi0xOCAwOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBhZGQgaW5zdGFsbC91bmluc3RhbGwgZm9yIG1mZCBtaWIyYyBmaWxlcwoKMjAwNC0wNi0xOCAwNzozMCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFN1cHBvcnQgZm9yIGludGVycHJldGluZyBJbmV0QWRkcmVzc1R5cGUvSW5ldEFkZHJlc3MgaW5kZXhlcyB3aXRoaW4gYW4gT0lELgogICAoUGF0Y2ggIzg0MTYyNSBmcm9tIFlpeGlvbmcgWm91KQoKMjAwNC0wNi0xOCAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUmVjb2duaXNlIEluZmluaWJhbmQgaW50ZXJmYWNlcwogICAoUGF0Y2ggIzk3MDYxNyBmcm9tIEthbm9qIFNhcmNhcikKCjIwMDQtMDYtMTggMDY6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRml4IGhhbmRsaW5nIG9mIC0tZW5hYmxlLWxvY2FsLXNtdXggb3B0aW9uCiAgIChQYXRjaCAjOTQ5ODA4IGZyb20gRXJpayDgpYbgpIXgpIduZ2fgpYbgpIaLcmQpCgoyMDA0LTA2LTE4IDA2OjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBhY3RpdmF0aW5nIGFuZCBkZWFjdGl2YXRpbmcgdXNlcnMsCiAgIG5lY2Vzc2FyeSBmb3IgZnVsbCBjb21wbGlhbmNlIHdpdGggUkZDIDM0MTQuIChQYXRjaCAjOTQzNzYyKQoKMjAwNC0wNi0xOCAwNjozOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBVc2UgdHJhbnNwb3J0IHZhcmlhYmxlcyBmb3IgdGVzdGluZyByYXRoZXIgdGhhbiBoYXJkd2lyaW5nIHVkcDpsb2NhbGhvc3QKICAgKFBhdGNoICM5NDAzMDIgZnJvbSBNaWtlIFNsaWZjYWspCgoyMDA0LTA2LTE4IDA2OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgL2Rldi9hcnAgcmF0aGVyIHRoYW4gL2Rldi9pcCwgc2luY2UgdGhpcyB3b3JrcyBwcm9wZXJseSB3aXRoIG11bHRpcGxlIHpvbmVzLgogICAoUGF0Y2ggIzk0MDAyNSBmcm9tIEJvYiBSb3dsYW5kcykKICAgW05vIGlkZWEgd2hhdCB0aGlzIG1lYW5zLCBidXQgaXQgc291bmRzIGltcHJlc3NpdmUuLi4uXQoKMjAwNC0wNi0xOCAwNjoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9wa2NzLmM6CgogICBJbml0aWFsaXNlIHBTbG90TGlzdCB0byBndWFyZCBhZ2FpbnN0IGZyZWVpbmcgZ2FyYmFnZS4KICAgKFBhdGNoICM5MzgxMzkgZnJvbSBCb2IgUm93bGFuZHMpCgogICBJZiBnYXJiYWdlIGlzbid0IGtlcHQgc3RyaWN0bHkgY29udHJvbGxlZCwKICAgIHdobyBrbm93cyB3aGF0IHN0YXRlIHNvY2lldHkgbWlnaHQgZ2V0IGludG8uLi4uCiAgIChIb21lc3B1biBwaGlsb3NvcGhpY2FsIG11c2luZ3MgZnJvbSBEYXZlIFNoaWVsZCkKCjIwMDQtMDYtMTggMDY6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRG9uJ3Qgc2V0IHRoZSBpbmRleCB2YWx1ZSB1bnRpbCB3ZSd2ZSBjaGVja2VkIHRoaXMgaXMgYSB2YWxpZCByZXF1ZXN0LgogICAoUGF0Y2ggIzkzMDcxMiBmcm9tIEpvY2hlbi9DaHJpc3RvcGhlciBQcmljZSkKCjIwMDQtMDYtMTggMDY6MDkgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRG9uJ3QgaW5jbHVkZSB0aGUgdmlld1RyZWUgbGVuZ3RoIHdoZW4gc2F2aW5nIGEgcGVyc2lzdGVudCB2YWNtVmlldwogICAoUGF0Y2ggIzkyMTI3OSBmcm9tIEJvYiBSb3dsYW5kcykKCjIwMDQtMDYtMTggMDU6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICBQYXNzICpwb2ludGVycyogdG8gcmVsb2FkL2NvbXBhcmUgZnVuY3Rpb25zIGludG8gSW5pdGlhbGlzZV9UYWJsZQogICAoUGF0Y2ggIzkyMjUxOSBmcm9tIFJvYmVydCBXaWxjb3gpCgoyMDA0LTA2LTE3IDIwOjU3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgcGVyIEJydWNlIFNoYXcsIGluY2x1ZGUgdGhlIE9JRCBmb3IgQ1BVIGRldmljZSBpbiB0aGUgbWF0Y2ggc3RyaW5nLgoKMjAwNC0wNi0xNyAxOTo0MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IHBhdGNoIDk1NjI3MiAtIHVzZSBjb3JyZWN0IHN0cnVjdHVyZSBtZW1iZXIgZm9yIFNvbGFyaXMgaHJQYXJ0aXRpb25TaXplCgoyMDA0LTA2LTE3IDE5OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGRvY3VtZW50IG5vZGUuZGVzY3JpcHRpb24KCjIwMDQtMDYtMTcgMTk6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIGZpeCByZXR1cm4gY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKCjIwMDQtMDYtMTcgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgLSBjb252ZXJ0IGRlYnVnIGNvZGUgdGhhdCBzaG91bGQgaGF2ZSBuZXZlciBiZWVuIGNoZWNrZWQgaW4gdG8gbmV0c25tcF9hc3NlcnQKCjIwMDQtMDYtMTcgMTg6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtIGFkZCBsb3RzIG9mIGRlYnVnIGZvciB0cmFja2luZyBpbmRleCBwcm9jZXNzaW5nCiAgIC0gbWFrZSBjb2RlIGFuZCBjb21tZW50cyBjb25zaXN0ZW50IHdpdGggZWFjaCBvdGhlcgogICAtIGZpeCBhIDAtYmFzZWQgdnMgMS1iYXNlZCBwcm9ibGVtcyB3aGVuIHVzaW5nIHZhbGlkX2NvbHVtbiB2ZXJpZmljYXRpb24KICAgLSBmaXggY29tcGFyaXNvbiB0byB3cm9uZyB2YXJpYWJsZQogICAtIGR1ZSB0byBvdGhlciBmaXhlcywgaW5pdCB0YmxfcmVxX2luZm8tPmNvbG51bSBlYXJsaWVyCgoyMDA0LTA2LTE3IDE4OjUwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICAtIHVwZGF0ZSBmbG93IGNoYXJ0CiAgIC0gc3dhcCByb3cgY3JlYXRlIC8gY2hlY2sgdmFsdWVzOyBub3QgcXVpdGUgc3VyZSBpZiBJIHNob3VsZCwgdGhvdWdoCgoyMDA0LTA2LTE3IDE4OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpZmRlZiBvdXQgY29tbWl0IGNvZGUgKGNvbWluZyBzb29uKQoKMjAwNC0wNi0xNyAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTE3IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBtYWtlIHN1cmUgdG8gc2V0IGRvbnQgaW52YWxpZGF0ZW9uIHNldCBjYWNoZSBmbGFnCgoyMDA0LTA2LTE3IDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBpbXBsZW1lbnQgc2V0IG9mIGFkbWluIHN0YXR1cwoKMjAwNC0wNi0xNyAxODozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHNwZWNpYWwgY2FzZSBwcm9jZXNzaW5nIGZvciBpZmFkbWluIHN0YXR1cyAoYnlwYXNzIHNpemVvZiBjaGVjaykKCjIwMDQtMDYtMTcgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtdXNlIG5ldyBmdW5jdGlvbnMgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCwKICAgIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9tdHVfZ2V0CiAgIC1uZXcgZnVuY3Rpb24gbmV0c25tcF9hcmNoX3NldF9hZG1pbl9zdGF0dXMKCjIwMDQtMDYtMTcgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIC1uZXcgZnVuY3Rpb25zIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9mbGFnc19zZXQsCiAgICBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfbXR1X2dldAogICAtbW92ZSB3aG9sZSBmdW5jdGlvbnMgaW5zaWRlIGlmZGVmIGNvbmRpdGlvbmFsLCB0byBmb3JjZSBsaW5rIGVycm9ycyBpbnN0ZWFkCiAgICBvZiBhIGZhbHNlIHNlbnNlIG9mIHNlY3VyaXR5IHRoYXQgYW4gaW9jdGwgaXMgYXZhaWxhYmxlCgoyMDA0LTA2LTE3IDE4OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgZGVmaW5lIHByaXZhdGUgJ2FyY2gnIGZ1bmN0aW9uIHByb3RvdHlwZXMgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMDQtMDYtMTcgMTg6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtcmVuYW1lIHN0YXRzIHN0cnVjdCBtZW1iZXJzIHRvIG5vdCBtYXRjaCBtYWNybyBuYW1lcwogICAtYWRkIHBvaW50ZXIgJiBtYWNyb3MgZm9yIG9sZCBzdGF0cyB0byBpbnRlcmZhY2UgZW50cnkKICAgLW1vdmUgY29uZiBvdmVycmlkZSBzdHJ1Y3Qvcm91dGluZXMgaGVyZQogICAtYWRkIGluaXQgcm91dGluZSBmb3IgY29uZmlndXJlIHRvIGRldGVjdCAmIGNhbGwKICAgLWFkZCBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2Vfc2V0X2FkbWluX3N0YXR1cwogICAtYWRkIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV91cGRhdGVfc3RhdHMgdG8gZGVhbCB3aXRoIDMyYml0IGNvdW50ZXIKICAgIHdyYXBzLCB1bmxlc3MgNjRiaXQgY291bnRlcnMgYXJlIGRldGVjdGVkCgoyMDA0LTA2LTE3IDE4OjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbnMgdTY0SW5jciwgdTY0VXBkYXRlQ291bnRlciwgdTY0Q29weSwgbmV0c25tcF9jNjRfY2hlY2tfZm9yXzMyYml0X3dyYXAKCjIwMDQtMDYtMTcgMTc6MzYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdGVzdCBzZXNzaW9uIHB0ciBiZWZvcmUgdXNpbmcuIGZpeGVzIGJ1ZyAjOTc1MDYzIHNubXBfc2Vzc19jbG9zZSBOVUxMIGRlcmVmCgoyMDA0LTA2LTE3IDA5OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgVXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiB0byBtYWtlIGl0IG11Y2ggbW9yZSBleHRlbnNpdmUgYW5kIGNvbXBsZXRlLgoKMjAwNC0wNi0xNyAwNjozOSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgUGF0Y2ggIDk2ODgzOTogbmV0LXNubXAtY29uZmlnIGZhaWxzIHRvIHByaW50IC1sd3JhcAoKMjAwNC0wNi0xNyAwNjozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIFBhdGNoICM5NzM3MDI6IFBPRCBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20gVG9uaSBXaWxsYmVyZwoKMjAwNC0wNi0xNiAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBnZXR0YWJsZSBjaGFuZ2VzOgogICAgIC0gRG9uJ3QgcmV0cmlldmUgaW5kZXhlcyBzaW5jZSB3ZSBjYWxjdWxhdGUgdGhlbS4KICAgICAtIEJ1ZyBmaXggZm9yIHNlbGYtc3BlY2lmaWVkIGNvbHVtbiBsaXN0cy4KCjIwMDQtMDYtMTYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBjb3B5X253b3JkIGZvciBhbGwgcmVhZF9jb25maWcgYXV0by1wYXJzaW5nIG9mIHRva2VucyB0byBoZWxwCiAgIHN0cmlwIHF1b3RlcyBpZiB0aGV5IHdlcmUgdXNlZCBldmVuIGZvciBpbnRlZ2Vycy4KCjIwMDQtMDYtMTUgMTk6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgIGZpeCBsaWJyYXJ5IHJlc291cmNlIGxvY2tzLCBhcyBub3RlZCBvbiBjb2RlcnMgYnkgWWluZyBIdQoKMjAwNC0wNi0xNSAxNzoyNyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENUFFUywgVDAyM3NubXB2M2dldE1ENURFUwo6CgogICBjb3JyZWN0IHZhciBQUklWVEVTVEFSR1MgKHdhcyBQUklWVEVTVEZMQUdTKQoKMjAwNC0wNi0xNSAxNTo0MCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBhcHBseSBwYXRjaCAjOTczNTcyIHBlciBBbGV4IEJ1cmdlciB0byBjbGFyaWZ5IG5hbWluZyBvZiB0aGUgcGFja2FnZSwgZXRjLgoKMjAwNC0wNi0xNSAwNzoyNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25zaXN0ZW5jeSB0d2Vha3MgdG8gdGhlIHVzYWdlIG91dHB1dCBtZXNzYWdlLgoKMjAwNC0wNi0xNSAwNjo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGFwcGx5IHVwZGF0ZWQgcGF0Y2ggYXR0YWNoZWQgdG8gYnVnIzc1ODQzNwogICB1c2UgU05NUF9GUkVFIHRvIG1hbmFnZSBidWZmZXIgcG9pbnRlcgogICBvcGVuIHNvY2tldCBiZWZvcmUgaW5jcmVhc2luZyBidWZmZXIgc2l6ZQoKMjAwNC0wNi0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgRGVmaW5lIHRoZSBleGFtcGxlIG5vdGlmaWNhdGlvbiBhcyBhIG5vdGlmaWNhdGlvbiAodXNpbmcgYW4gUkZDMjU3Ni1zYWZlCiAgIE9JRCksIHJhdGhlciB0aGFuIGEgTUlCIG9iamVjdCwgYW5kIGRlZmluZSBleGFtcGxlIGNvbXB1bHNvcnkgYW5kIG9wdGlvbmFsCiAgIHBheWxvYWQgb2JqZWN0cy4gVHdlYWsgdGhlIGV4YW1wbGUgY29kZSB0byB1c2UgdGhlc2UgbmV3IGRlZmluaXRpb25zLgoKMjAwNC0wNi0xNSAwNDoyOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmM6CgogICBhcHBseSBwYXRjaCBmcm9tIHRyb250b3IgdG8gZml4IGJ1ZyA5NDI0OTggTmV0QlNEIDIuMEQgYW5kIGFib3ZlIHVzZSBzdGF0dmZzCgoyMDA0LTA2LTE0IDEyOjAyICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGRpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBkaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBhcHBseSBwYXRjaCAjOTcyNzE1IFdpbjMyIGJ1aWxkOiBtYWtlZmlsZSwgcmVhZG1lIGFuZCAubnNpIHNjcmlwdCBjaGFuZ2VzCiAgIHRoZXNlIGJhY2sgb3V0IHR3byBwcmV2aW91cyBjaGFuZ2VzIGFuZCBmaXhlcyBhIHByb2JsZW0gY3JlYXRpbmcgc25tcGNvbmYuYmF0CgoyMDA0LTA2LTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQucG0sIGFnZW50LnhzLCB0ZXN0LnBsOgoKICAgSW1wbGVtZW50ZWQgJHJlcXVlc3QtPnNldEVycm9yKCkgdG8gc2V0IGVycm9yIGNvZGVzIGZvciByZXF1ZXN0cy4KCjIwMDQtMDYtMTQgMTA6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgcGF0Y2ggZnJvbSBNYXRoaWFzIFNjaGVsZXIgZml4ZXMgYnVnICM4MDU5NTYgYnkgYWx0ZXJpbmcgY29uZGl0aW9uYWwKICAgY2hlY2tzIGZvciBOZXRCU0QgYW5kIERhcndpbiBkZWZpbmVzLgoKMjAwNC0wNi0xMiAwODowNCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBkeXNsZXhpYyAgcy1NLW4tcCAgdG8gcy1uLU0tcAoKMjAwNC0wNi0xMiAwODowMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwYXRjaCA5NzEyNjMgV2luZG93cyBpbnN0YWxsZXIgc2NyaXB0IGNoYW5nZSBjb21wb25lbnQgbGFiZWwrZGVzY3IKCjIwMDQtMDYtMTIgMDc6NTUgIHNsaWYKCiAgICogd2luMzIvOiBidWlsZC5iYXQsIGluc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIG5tYWtlcGVybC5iYXQsIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwKICAgICBsb2NhbC9taWIyYy5iYXQsIGxvY2FsL3NubXBjb25mLmJhdCwKICAgICBsb2NhbC90cmFwdG9lbWFpbC5iYXQ6CgogICBjb252ZXJ0IC5iYXQgZmlsZXMgdG8gdXNlIERPUyBDUi1MRiBsaW5lIHRlcm1pbmF0aW9uLgogICBhcHBseSBwYXRjaCA5NzE0NzEgTlNJIGluc3RhbGxlciBzY3JpcHQgZml4ZXMgYWRkcmVzc2luZyBsaW5lLWVuZCBwcm9ibGVtcy4KCjIwMDQtMDYtMTEgMTc6MzggIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlICJlcmFzZSB3YXRjaGVyLm9iaiIsIGZvciBhIGZpbGUgdGhhdCBpcyBtYW5hZ2VkIGluIGxpYmhlbHBlcnMgcHJvamVjdC4KCjIwMDQtMDYtMTEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgZGVmYXVsdCBjYWNoZSB0byBub3QgaW52YWxpZGF0ZSBvbiBzZXQKCjIwMDQtMDYtMTEgMTU6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKICAgLSBmaXggbWlzYXNzaWduZWQgY2FsbGJhY2sgZnVuY3Rpb24KICAgLSBhZGQgbWlzc2luZyBicmFjZXMgZm9yIG11bHRpbGluZSBjb25kaXRpb25hbAoKMjAwNC0wNi0xMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gZGVmYXVsdCB0byBhbGxvY2F0ZWQgdW5kbyBjb250ZXh0LCBldmVuIGlmIGRhdGEgY29udGV4dCBpcyBlbWJlZGRlZAogICAtIGFkZCBjb2RlIHRvIGhhbmRsZSBwZXIgY29sdW1uIGJlaGF2aW9yIG9uIGNvbW1pdAogICAtIGFkZCBub3RlIG9uIHVuZG8gY29udGV4dCB3aGVuIGRhdGEgaW5pdCBpcyBzZXQKCjIwMDQtMDYtMTEgMTU6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgbWZkLXRvcC5tMmM6CgogICAtIGRlZmF1bHQgdG8gYWxsb2NhdGVkIHVuZG8gY29udGV4dCwgZXZlbiBpZiBkYXRhIGNvbnRleHQgaXMgZW1iZWRkZWQKCjIwMDQtMDYtMTEgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaToKCiAgIC0gdHdlYWsgdG8gd29yayBldmVuIGZvciBnZW5lcmF0ZWQgZGF0YSBjb250ZXh0cwogICAtIGZpeCB2YXIgdHlwbywgY29tbWVudCB0eXBvCgoyMDA0LTA2LTExIDE1OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICAtIHJlbW92ZSBvdmVybHkgY29uZnVzaW5nIG1ldGhvZCBmb3IgY2hhbmdpbmcgZGVmYXVsdHMsIGJlY2F1c2UgaXQgd2FzCiAgICAgY29uZmxpY3Rpbmcgdy9jb21tYW5kIGxpbmUgdmVyc2lvbi4gbWF5YmUgcmV2aXNpdCBsYXRlcgogICAtIGRlZmF1bHQgKGZhbHNlKSBmb3IgbmV3IHVuZG9fZW1iZWQKCjIwMDQtMDYtMTEgMTM6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgUmV0dXJuIGFscmVhZHkgZ2F0aGVyZWQgcmVzdWx0cyBldmVuIGlmIGdldGJ1bGsgZmFpbHMgdG8gcmV0dXJuIHRoZQogICBleHBlY3RlZCBkYXRhICh0eXBpY2FsbHkgZHVlIHRvIGVuZC1vZi1taWIgY29uZGl0aW9ucykuCgoyMDA0LTA2LTExIDEzOjEzICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IHZlcnNpb24gbnVtYmVyIG5lZWRzIGNoYW5naW5nLgoKMjAwNC0wNi0xMSAxMDoxOCAgc2xpZgoKICAgKiB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIDk3MTExMyAibm1ha2UgY2xlYW4iIHZpc2l0cyBsaWJzbm1wIGFuZCBsaWJzbm1wX2RsbCBldmVyeSB0aW1lLgoKMjAwNC0wNi0xMCAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gbmV3IG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV9ndWVzc19zcGVlZAogICAtIG5ldyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfZW50cnlfb3ZlcnJpZGVzCiAgIC0gcmVzdG9yZSBpZl9hZG1pbl9zdGF0dXMKICAgLSBhZGQgcGxhdGZvcm0gc3BlY2lmaWMgaWZfZmxhZ3MsICYgZGVmaW5lIGZvciBmbGFncyB0byBpbmRpY2F0ZSBhdmFpbGFiaWxpdHkKICAgLSBzcGVjaWZ5IGFsbCA0IGhleCBieWVzIGZvciBmbGFnIGRlZmluZXMKCjIwMDQtMDYtMTAgMjE6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfbGludXguYzoKCiAgIC0gbGludXggcmVxdWlyZXMgbmV3IGlvY3RsIGludGVyZmFjZSBhY2Nlc3MKICAgLSB1c2UgaW9jdGwgZm9yIGh3YWRkciwgaWZfZmxhZ3MKICAgLSBndWVzcyBpZiB0eXBlIGJhc2VkIG9uIG5hbWUgaWYgbm90IGtub3duCiAgIC0gbW92ZSBnZXRJZlNwZWVkIGNvZGUgJiByZW5hbWUgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2xpbnV4X2dldF9pZl9zcGVlZAoKMjAwNC0wNi0xMCAyMDo0NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgLSBuZXcgaW9jdGwgaW50ZXJmYWNlIGFjY2VzcwoKMjAwNC0wNi0xMCAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICAtIG1vdmUgYWRtaW4gc3RhdHVzIGJhY2sgdG8gaW50ZXJmYWNlIGVudHJ5CiAgIC0gdXNlIGRlc2NyaXB0aW9uIGZyb20gaW50ZXJmYWNlIGVudHJ5CgoyMDA0LTA2LTEwIDEwOjU5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCAjOTcwNDgwIFdpbjMyIFJFQURNRS5idWlsZC53aW4zMi50eHQgdXBkYXRlCgoyMDA0LTA2LTA5IDIwOjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGFwcGx5IGNoYW5nZXMgaWRlbnRpZmllZCBpbiBwYXRjaCAjOTY5MzM4IHBhdGNoZXMgZm9yIEZyZWVCU0QgNS54IHN1Y2Nlc3NmdWwgYnVpbGQKCjIwMDQtMDYtMDkgMTg6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfY29uc3RhbnRzLmgsIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSByZW1vdmUgYWJpbGl0eSB0byBidWlsZCBpbmRlcGVuZGVudCBvZiBpZlRhYmxlCgoyMDA0LTA2LTA5IDE4OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2NvbnN0YW50cy5oLCBpZlRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIFVwZGF0ZSBmb3IgTUZEIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXMgKyBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dCArCiAgICAgSUYtTUlCIGNoYW5nZXMKICAgLSB1c2UgbmV3IHBhcmFtIHRvIHNhdmUgaW50ZXJmYWNlIGVudHJ5IHcvZ2VuZXJhdGVkIGNvbnRleHQKICAgLSBmb3IgZGF0YSBmcm9tIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5LCB1c2UgI2RlZmluZXMgc28gZ2VuZXJhdGVkIGNvZGUgZG9lc24ndAogICAgIGNoYW5nZSAoZWcgZGVmaW5lIGlmTmFtZSBpZmVudHJ5LmlmX25hbWUpLiB3b3JrcyBmb3IgbW9zdCBjYXNlcwogICAtIGFkZCBnZW5lcmF0ZWQgc3RvcmFnZS9kZWZpbmVzIGZvciBpZlhUYWJsZSBjb2x1bW5zIHRvIGRhdGEgY29udGV4dAogICAtIGNoYW5nZSBjYWNoZSB0aW1lb3V0IHRvIDMwIHNlY29uZHMKICAgLSB1c2UgbmV3IGNhY2hlIGZlYXR1cmVzIHRvIGF1dG8gbG9hZCBhbmQgYXV0byByZWZyZXNoIGNhY2hlCiAgIC0gdXNlIG5ldyBVTktOT1dOIGlmT3BlclN0YXR1cyBmb3IgaW50ZXJmYWNlcyB0aGF0IHZhbmlzaAogICAtIHVzZSBuZXcgaW50ZXJmYWNlIGNvcHkgZnVuY3Rpb24gd2hlbiB1cGRhdGluZyBjYWNoZQogICAtIG9ubHkgdXBkYXRlIExhc3RDaGFuZ2VkIG9uIGlmT3BlclN0YXR1cyBjaGFuZ2VzCgoyMDA0LTA2LTA5IDE4OjM3ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoLCBhcHBseSBwYXRjaCM5Njg4MDAgU05NUENPTkZQQVRIIGZpeCBmb3IgV2luMzIgYmluYXJ5IGluc3RhbGxlcgogICBhbmQgcGF0Y2ggIzk3MDAxMiBSZW1vdmUgc25tcGNvbmYucGwgZnJvbSBXaW5kb3dzIGluc3RhbGxlcgoKMjAwNC0wNi0wOSAxODozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGlmVGFibGUvZGVmYXVsdC10YWJsZS1pZlRhYmxlLm0yZCwKICAgICBpZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZDoKCiAgIC0gc3dpdGNoIHRvIGEgbWl4ZWQtbW9kZSBkYXRhIGNvbnRleHQKICAgICAtIGNoZyBkYXRhIGNvbnRleHQgdG8gZGVmYXVsdCBnZW5lcmF0ZWQKICAgICAtIGRvbid0IGFsbG9jYXRlIGRhdGEgY29udGV4dAogICAgIC0gZG8gcmVxdWVzdCBhIGluaXQgY2FsbCBmb3IgbmV3IGNvbnRleHRzCgoyMDA0LTA2LTA5IDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbWliIHNwZWNpZmljIHN0dWZmIChpZl9hbGlhcywgaWZfYWRtaW5fc3RhdHVzLCBpZl9saW5rX3VwZG93bl90cmFwKQogICAgIChzdGlsbCBub3Qgc3VyZSBhYm91dCBsYXN0IGNoYW5nZWQgYW5kIGRpc2NvbnRpbnVpdHkpCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGNvcHkgaW50ZXJmYWNlIGVudHJ5IGRhdGEKICAgLSBtYWtlIGNhbGxiYWNrIGZ1bmN0aW9ucyBzdGF0aWMKCjIwMDQtMDYtMDkgMTc6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGlmIGRhdGFfaW5pdCBzZXQsIGFkZCB1c2VyIHZvaWQgcG9pbnRlciB0byBhbGxvY2F0ZV9yb3dyZXFfY3R4LCBhbmQgcGFzcyBpdAogICAgIHRvIHJvd3JlcV9jdHhfaW5pdAogICAtIGZpeCB0d28gdHlwb3MgaW4gY29kZSBvbmx5IGdlbmVyYXRlZCB3aGVuIGRhdGFfaW5pdCBpcyBzZXQKICAgLSByZWxlYXNlIHVuZG8gZGF0YSBpbiBmcmVlX3Jvd3JlcV9jdHgKICAgLSBkb24ndCBnZW5lcmF0ZSB1bmRvIHNldHVwIGNvZGUgZm9yIG5vbi1zZXR0YWJsZSBjb2x1bW5zCgoyMDA0LTA2LTA5IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtdG9wLm0yYzoKCiAgIC0gaWYgZGF0YV9pbml0IHNldCwgYWRkIHVzZXIgdm9pZCBwb2ludGVyIHRvIGFsbG9jYXRlX3Jvd3JlcV9jdHgsIGFuZCBwYXNzIGl0CiAgICAgdG8gcm93cmVxX2N0eF9pbml0CgoyMDA0LTA2LTA5IDE3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIC0gY29udmVydCBjb250YW50IHByZWZpeGVzIHRvIHVwcGVyY2FzZQogICAtIGFkZCAnX3ZhbCcgc3VmZml4IHRvIGFsbCBub2RlIHBhcmFtZXRlciBuYW1lcwoKMjAwNC0wNi0wOSAxNzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLW5vZGUubTJpOgoKICAgYWRkIGRlc2NyaXB0aW9uCgoyMDA0LTA2LTA5IDAyOjM3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIHBlciBNaWtlIEhlaXNsZXIsIGZpeCBidWcgIzkzNjQ4MyAocmVzdG9yZSBzc2l6ZV90KS4KCjIwMDQtMDYtMDggMjE6NTUgIHNsaWYKCiAgICogYWNjb25maWcuaDoKCiAgIFVwZGF0ZSB0byB3aW4zMiBpZmRlZiB0byBpbmNsdWRlIG90aGVyIGVudmlyb25tZW50cwoKMjAwNC0wNi0wOCAxMzo1NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIga3BfY29tbSwgZXRjLikgZm9yIEZyZWVCU0QgNS54CgoyMDA0LTA2LTA4IDEzOjUzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggYnVpbGQgZmFpbHVyZSAobm8gc3VjaCBtZW1iZXIgeHRfdHApIGZvciBGcmVlQlNEIDQueCBhbmQgRnJlZUJTRCA1LngKCjIwMDQtMDYtMDggMTM6NTAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBjb21waWxlIGZhaWx1cmUgKG5vIGlucF9uZXh0IGluIHN0cnVjdCBpbnBjYikgZm9yIEZyZWVCU0QgNC54IGFuZCA1LngKCjIwMDQtMDYtMDggMTM6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgZml4IGJ1ZyA4OTU2NzkgYnkgZW5zdXJpbmcgdXBwZXIgbGltaXQgdHJhY2tzIGJ1ZmZlciBhbGxvY2F0aW9uL2ZyZWUgYWN0aW9ucy4KCjIwMDQtMDYtMDggMTI6MDMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSB1bmRlZiBvZiBTVFJVQ1RfU1RBVEZTX0hBU19GX0ZBVkFJTCAobmV2ZXIgaXMgZGVmaW5lZCkuCgoyMDA0LTA2LTA4IDEwOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtc2V0Lm0yYywgcGFyZW50LXNldC5tMmkKOgoKICAgLSBjb21tZW50cyBhYm91dCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKICAgLSBtaXNzZWQgYSBmZXcgZXJyb3IgZGVmaW5lIHVwZGF0ZXMKCjIwMDQtMDYtMDggMTA6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYywKICAgICBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGFkZCBmbGFnIGFuZCBkZWZpbmVzIGZvciB0cmFja2luZyB3aGljaCBjb2x1bW5zIGhhdmUgYmVlbiBzZXQKCjIwMDQtMDYtMDcgMTk6NTIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBzZXR0aW5nIG9mIE9TVFlQRSBmb3IgRnJlZUJTRCBidWlsZCBwbGF0Zm9ybXMuCgoyMDA0LTA2LTA3IDE5OjQ3ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBjcmVhdGUgc3lzdGVtIGluY2x1ZGUgZmlsZSBmb3IgRnJlZUJTRCA1LnggYnVpbGQgcGxhdGZvcm1zLgoKMjAwNC0wNi0wNyAxOTo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBpbiBzd2FwbW9kZQoKMjAwNC0wNi0wNyAxMjozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlY2hlY2sgcGVyc2lzdGVudCBwYXRoIGluIGxvb3AsIHNpbmNlIGl0IG1pZ2h0IGNoYW5nZQoKMjAwNC0wNi0wNyAxMjoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgc3BlY2lmeSBmdWxsIDMyIGJpdHMgZm9yIGhhbmRsZXIgZmxhZ3MKCjIwMDQtMDYtMDcgMTI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWx3YXlzIGNvbnNpZGVyIGNhY2hlIHcvdGltZW91dCBvZiAtMSBhcyBleHBpcmVkIChsb2FkIGNhY2hlIGV2ZXJ5IHJlcXVlc3QpCiAgIC0gYWRkIE5FVFNOTVBfQ0FDSEVfRE9OVF9GUkVFX0JFRk9SRV9MT0FEICYgTkVUU05NUF9DQUNIRV9BVVRPX1JFTE9BRCBmbGFncwogICAtIGFkZCBleGFtcGxlIHVzYWdlcyBzY2VuYXJpb3MgYW5kIHN1Z2dlc3RlZCBmbGFncwogICAtIGFkZCBuZXRzbm1wX2NhY2hlX3RpbWVyX3N0YXJ0ICYgbmV0c25tcF9jYWNoZV90aW1lcl9zdG9wCiAgIC0gY2xlYXIgZXhwaXJlZCBmbGFnIGFmdGVyIGNhY2hlX2xvYWQKICAgLSBhZGQgYW5vdGhlciBub3RlIGFib3V0IHBvdGVudGlhbCBjYWNoZSBpc3N1ZSB3L2RlbGVnYXRlZCByZXF1ZXN0cwogICAgIChzb21lIGxvY2tpbmcvcmVmZXJlbmNlIGNvdW50IG1lY2hhbmlzbSBpcyBuZWVkZWQpCgoyMDA0LTA2LTA3IDExOjUwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBhY2NlcHQgYWJicmV2aWF0ZWQgdmVyc2lvbnMgb2Ygc29tZSBmbGFncwogICAtIHBvaW50IGluZGVudC1vcHRvaW5zIGF0IGEgcmVhbCBkaXJlY3RvcnkKICAgLSBkb24ndCBzdWJzdGl0dXRlIHByZWZpeCBtdWx0aXBsZSB0aW1lcwoKMjAwNC0wNi0wNyAxMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgZml4IGNvbW1lbnQgcmVmIGZvciBpbnRlZ2VyIGZyb20gTlVMTCB0byAwCgoyMDA0LTA2LTA3IDExOjM5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHNraXAgc2NwIGlmIGJhYyByYyBmcm9tIGN2cyBjb21tYW5kCgoyMDA0LTA2LTA3IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVhbWUgJGlfSURYMiB0byAkSV9DVVNUT01fU09SVCB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA0LTA2LTA3IDExOjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gYWRkIG1pc3NpbmcgdW5kb19jb21taXQsIHVuZG9fY2xlYW51cCBzdGF0ZXMKICAgLSBtb3ZlIHByZS9wb3N0IHJlcXVlc3QgaW5pdCBvdXRzaWRlIG1pYjJjIGNvbmRpdGlvbmFsCiAgIC0gbW92ZSB1bmRvIGRhdGEgY29udGV4dCByZWxlYXNlIHRvIHVuZG9fY2xlYW51cAogICAtIHZhbGlkYXRlIHJjIGZyb20gbm9kZSBjaGVjayB2YWx1ZSByb3V0aW5lCgoyMDA0LTA2LTA3IDExOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIG1vcmUgaGVscCB0ZXh0IGZvciBkaXN0aW5jdGlvbiBiZXR3ZWVuIHdyb25nVmFsdWUvaW5jb25zaXN0ZW50VmFsdWUKCjIwMDQtMDYtMDcgMTE6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBtb3JlIGhlbHAgdGV4dCBmb3IgdmFsaWRhdGVfaW5kZXgKICAgLSBpbmNsdWRlIGJhYnktc3RlcHMgZmxvdy1jaGFydCBiZWZvcmUgc2V0IGZ1bmN0aW9ucwogICAtIGFkZCBtaXNzaW5nIHVuZG9fY29tbWl0LCB1bmRvX2NsZWFudXAgc3RhdGVzCgoyMDA0LTA2LTA3IDExOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICB1c2UgU05NUHYyIGVycm9ycyBpbnN0ZWFkIG9mIHYxIGVycm9ycwoKMjAwNC0wNi0wNyAxMToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gdHVybiBvZmYgaW5kZW50IGFyb3VuZCBjb25maWdfcmVxdWlyZSAoZG9lc24ndCBsaWtlICAnLycgb3IgJy0nIGNoYXJzKQogICAtIHNpbXBsaWZ5IHNvbWUgZXJyb3IgZGVmaW5lIG5hbWVzCgoyMDA0LTA2LTA3IDExOjIxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICB1cGRhdGUgc29tZSBxdWVzdGlvbi9oZWxwIHRleHQKCjIwMDQtMDYtMDcgMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgcmVzdG9yZSBmb3JlYWNoIHRhYmxlCgoyMDA0LTA2LTA3IDExOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICByZXZlcnQgY2hhbmdlcyBmb3Igc2V0dGluZyBzb21lIG1pYjJjIGRlZmF1bHRzICh1c2UgbWliMmMgLVMgeHh4IGluc3RlYWQpCgoyMDA0LTA2LTA3IDExOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgcGFzcyBleHRyYSBhcmdzIHRvIG1pYjJjCgoyMDA0LTA2LTA3IDExOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGNoYW5nZSBleGFtcGxlIGNvbW1lbnQgYmxvY2sgc28gaW5kZW50IHdpbGwgaW5kZW50IGl0CiAgIC0gc2tpcCBzdWJzdGl0dXRpb24gY2hlY2tzIGlmIHRoZXkgd29uJ3QgbWF0Y2gKICAgLSBhcHBseSBkYXZlJ3MgaGFjayBmb3IgOTM5MDQxOiAuLi4gYmFkIG1hY3JvIG5hbWUgaWZmIGVudW0gY29udGFpbnMgaHlwaGVuCgoyMDA0LTA2LTA3IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIEJhY2t3YXJkcy1jb21wYXRhYmlsaXR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlCiAgIChpZiB0aGUgdWNkLXNubXAvZXh0ZW5zaWJsZSBtb2R1bGUgaXNuJ3QgY29uZmlndXJlZCBpbikuCgoyMDA0LTA2LTA3IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICBNb3ZlICdnZXRfZXh0ZW5faW5zdGFuY2UnIGludG8gdGhlIHV0aWxpdHkgZnVuY3Rpb24gZmlsZSwKICAgc28gdGhhdCB0aGUgdHdvIHBhc3MgaGFuZGxlcnMgYXJlbid0IGRlcGVuZGVudCBvbiAnZXh0ZW5zaWJsZScKCjIwMDQtMDYtMDYgMjM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggd2FybmluZ3MgYWJvdXQgbWlzc2luZyBtb2R1bGVzIHdoZW4gdGhlcmUgYXJlIHJlcGxhY2VtZW50cyBmb3IgdGhlbQoKMjAwNC0wNi0wNiAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGN2cyBzZXJ2ZXIgbmFtZSBjaGFuZ2UKCjIwMDQtMDYtMDQgMTM6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHJlbW92ZSByZWR1bmRhbnQgcmVmZXJlbmNlIHJvdyBmcm9tIG91dHB1dAoKMjAwNC0wNi0wNCAxMzozOSAgaGFyZGFrZXIKCiAgICogbWlicy9ub2RlbWFwOgoKICAgYWRkZWQgYSBub2RlbWFwIGZvciBodG1sIG91dHB1dCBnZW5lcmF0aW9uCgoyMDA0LTA2LTA0IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBtYWtlIGh0bWwgb3V0cHV0IGRpc3BsYXkgdGhlIHJlZmVyZW5jZSBpbiBpdGFsaWNzIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZHMuCgoyMDA0LTA2LTA0IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLmNvbmYuNToKCiAgIG1ha2UgJHgucmVmZXJlbmNlIGV4cGFuZCB0byBhIG9iamVjdHMgcmVmZXJlbmNlCgoyMDA0LTA2LTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBTTk1QOjpNSUIgb2JqZWN0cyBoYW5kbGUgYSAncmVmZXJlbmNlJyBrZXl3b3JkLgoKMjAwNC0wNi0wNCAxMzozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZWQgdGhlIHZhbHVlIG9mIHBhcnNlZCByZWZlcmVuY2UgY2xhdXNlcy4KCjIwMDQtMDYtMDQgMDU6NTEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQSBsaXR0bGUgZXJyb3ItY2hlY2tpbmcgd2hlbiBmb3J3YXJkaW5nLCBhbmQgY2hhbmdlIGZwcmludGYgdG8gc25tcF9sb2cKCjIwMDQtMDYtMDQgMDM6MTcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUHJvcGVybHkgZnJlZSBwcmludGJ1ZmZlcgoKMjAwNC0wNi0wNCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIE1ha2Ugc3VyZSBhbGwgcmVnaXN0cmF0aW9uIGFyZSByZW1vdmVkIGZvciBleGVjJ3MKCjIwMDQtMDYtMDQgMDI6NDUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZ2FyYmxlZCBwYWNrZXRzIHdpdGggYmFkIHBhY2tldCB0eXBlcwoKMjAwNC0wNi0wNCAwMTo1NyAgbmJhCgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZjoKCiAgIFNpbXBsZSBzcGVsbGluZyBmaXgKCjIwMDQtMDYtMDQgMDE6MTUgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkdXAgaW5zdGFsbGF0aW9uIG9mIHNjcmlwdHMgYWZ0ZXIgYWRkaXRpb24gb2YgLS1kaXNhYmxlLXNjcmlwdHMKCjIwMDQtMDYtMDQgMDA6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICB1bmRvIHByZXZpb3VzIGNoYW5nZSwgc2luY2UgaW50cm9kdWN0aW9uIG9mIGZyZWVic2Q1LmggaGVhZGVyIGRlZmluZXMgZnJlZWJzZDQuCgoyMDA0LTA2LTAzIDEyOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgZml4IGJ1ZyAjOTQzMzUxIGJ5IGNvbnNpZGVyaW5nIGZyZWVic2Q1IHdoZW4gZGVjbGFyaW5nICJoeiIuCgoyMDA0LTA2LTAyIDE3OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1yZWFkbWUubTJjOgoKICAgZml4IGEgZmV3IG1pc3NlZCBwcm9jZXNzaW5nX3R5cGUgdHdlYWtzCgoyMDA0LTA2LTAyIDA1OjM3ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRSwgd2luMzIvQ29uZmlndXJlCiwgd2luMzIvYnVpbGQucGwsIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIHdpbjMyL25tYWtlcGVybC5iYXQsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvciB3aW4zMiBkb2MgYW5kIHNjcmlwdHMsIG1hdGNoIHRoZSBiYXNlIGRpcmVjdG9yeSB1c2VkIGFzIGN1cnJlbnQgZGVmYXVsdC4KCjIwMDQtMDYtMDEgMDI6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSGFuZGxlIHJvdyBkZWxldGlvbiAoYW5kIGZhaWxlZCByb3cgY3JlYXRpb24pIHByb3Blcmx5LgogICBNb3ZlIHJvdyBjcmVhdGlvbiBhbmQgbmV3IHZhbHVlIGFzc2lnbm1lbnRzIHRvIHRoZWlyIG5hdHVyYWwKICAgcGFzc2VzLCB3aXRoIGEgc2Vjb25kIChzZXBhcmF0ZSkgY2hlY2sgZm9yIHJvdyB2YWxpZGl0eS4KICAgKGZvbGxvd2luZyBSb2JlcnQncyBzdWdnZXN0aW9uKQoKMjAwNC0wNi0wMSAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgZm9sbG93aW5nIHRoZSBhZGRpdGlvbiBvZiAncmVsb2NhdGFiaWxpdHknLgogICBFbnN1cmUgdGhhdCB0aGUgInN0YW5kYXJkIiBsb2NhdGlvbiBpcyByZWdpc3RlcmVkIGF1dG9tYXRpY2FsbHkKICAgKHNvIHRoZSBudW1Sb3dzIG9iamVjdCBpcyBwcmVzZW50LCBldmVuIHdpdGggYW4gb3RoZXJ3aXNlIGVtcHR5IHRhYmxlKS4KCjIwMDQtMDUtMjcgMjA6MDYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdXBkYXRlIHN0YXR1cyB0byByZWZsZWN0IHNubXB0cmFwZCBjYW4gYmUgcnVuIGFzIGEgV2luZG93cyBzZXJ2aWNlLgoKMjAwNC0wNS0yNyAwNTozNyAgZHRzMTIKCiAgICogQ09QWUlORzoKCiAgIENvcnJlY3QgdGhlIG51bWJlciBvZiBjb3B5cmlnaHQgbm90aWNlcwogICBsaXN0ZWQsIGFuZCB0aGUgdGV4dCBvZiB0aGUgU3BhcnRhIG9uZS4KICAgKEkgdHJ1c3QgdGhpcyBpcyBPSywgV2VzISkKCjIwMDQtMDUtMjYgMDE6MzkgIGR0czEyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBSZW1vdmUgd2FybmluZ3Mgb2YgQWdlbnRYICJiZXRhLXN0YXR1cyIuCiAgIChJIGtub3cgSSdtIGdvaW5nIHRvIHJlZ3JldCBkb2luZyB0aGlzLi4uLikKCjIwMDQtMDUtMjUgMDg6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBBY2NlcHQgdGhlIHNhbWUgc2VjdXJpdHkgbGV2ZWwgdG9rZW5zIGFzIHVzZWQgaW4gdGhlCiAgICJyW3dvXXVzZXIiIGFuZCAiYWNjZXNzIiBkaXJlY3RpdmVzLgoKMjAwNC0wNS0yNCAwMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgcmVsb2NhdGFibGUgZm9ybSBvZiBhZ2VudCBleHRlbnNpb24gdGFibGUuCgoyMDA0LTA1LTI0IDAzOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEltcGxlbWVudCAncnVuLW9uLXdyaXRlJyBzdXBwb3J0LCBhbmQgdXNlIGl0IHRvIGhhbmRsZSBhCiAgIG5ldyAnZXhlY0ZpeCctc3R5bGUgZGlyZWN0aXZlLgoKMjAwNC0wNS0yMyAxMDo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aDogYXBwbHkgcGF0Y2ggWzk1Nzk0Ml0gV2luMzIgc2VydmljZSBpbnN0YWxsIHBhdXNlCgoyMDA0LTA1LTIxIDEwOjEwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yL3Byb2Nlc3MgZGVsZWdhdGVkIHJlcXVlc3RzIGluIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzCgoyMDA0LTA1LTIwIDIxOjA5ICBzbGlmCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSBmYWlsdXJlIHJlc3VsdCBzaG91bGQgY3ZzIGNoZWNrb3V0IGNvbmRpdGlvbiBub3QgYXBwbHkuCiAgIFRoaXMgcGVybWl0cyBidWlsZHMgb3V0c2lkZSBDVlMgdHJlZSB0byBzdWNjZWVkLgoKMjAwNC0wNS0yMCAxNjowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgTWlub3Igd29yZGluZzogYWRkZWQgdGFibGUgbmFtZSB0byAiaW5kZXgiIGFuZCAib3RoZXIgY29sdW1ucyIgbGluZS4KCjIwMDQtMDUtMjAgMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICByZW1vdmUgY2hhbmdlcyBhY2NpZGVudGlhbGx5IGFwcGxpZWQgdGhhdCB3ZXJlbid0IHJlYWR5CgoyMDA0LTA1LTIwIDE1OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IFZlcnNpb24tTXVuZ2UucGwsIG1pYjJjLmdlbmh0bWwuY29uZjoKCiAgIC0gYWRkZWQgc3VwcG9ydCBmb3Igbm90aWZpY2F0aW9uIGRlc2NyaXB0aW9ucwoKMjAwNC0wNS0xOSAxODowOSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBnZXRfdGNfZGVzY3JpcHRpb24gYW5kIGluaXRfdXNtX2NvbmYgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMgbGlzdC4KCjIwMDQtMDUtMTkgMTg6MDIgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBlcm1pdCBDeWd3aW4gYnVpbGQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgYmFja3NsYXNoIHBydW5pbmcgYW5kIHNpbmdsZSBsZXR0ZXIgdm9sdW1lIHNwZWNpZmllci4KCjIwMDQtMDUtMTkgMTc6NTQgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWw6CgogICBwZXIgQWxleCBCdXJnZXI6ICBzbm1wY29uZiBkYXNoIGxpdHRsZS1leWUKCjIwMDQtMDUtMTkgMTY6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGFyc2luZyBvZiBleHBsaWNpdCBoYW5kbGVyIHR5cGVzCgoyMDA0LTA1LTE5IDEzOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgdXBkYXRlIGFmdGVyIGEgbWliMmMgdXBkYXRlCgoyMDA0LTA1LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICAtIHN1cHBvcnQgYSB0YWJsZSBvZiBjb250ZW50cwogICAtIG5hbWUgYWxsIG5vZGVzIHVzaW5nIGh0bWwgbmFtZXMKICAgLSBzdXBwb3J0IGEgdHJlZS12aWV3CiAgIC0gbWlzYyBidWcgZml4ZXMKCjIwMDQtMDUtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBzdXBwb3J0ICJmb3JlYWNoICRpIHN0dWZmIExJU1QiCiAgIC0gdXNlIHVuc2hpZnQgaW5zdGVhZCBvZiBwdXNoIGZvciBjYWxsZGVmaW5lIHRvIGVuc3VyZSBwcm9wZXIgcmVjdXJzaW9uCiAgIC0gcmVnZXhwIG11bmdpbmcKCjIwMDQtMDUtMTkgMTA6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIGxvYWQgdGhlIGNhY2hlIGZvciByZXNlcnZlMSAob3RoZXJ3aXNlIGEgZ2V0IGlzIHJlcXVpcmVkIGJlZm9yZSBzZXQgd29ya3MpCgoyMDA0LTA1LTE4IDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBhbGxvdyBmb3IgdXNlciBvdmVycmlkZSBvZiBtZmQgb3B0aW9uIGRlZmF1bHRzCgoyMDA0LTA1LTE4IDEzOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBhbGxvdyBmb3IgaW50ZXJhY3RpdmUgc2V0dXAgb2YgbWZkIG9wdGlvbnMKCjIwMDQtMDUtMTggMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGFsbG93IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCBvZiBvcHRpb25zOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTM6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBzZXQgdmFyYmluZCBlcnJvciBvbiBjb2x1bW4gc2V0IGVycm9yOyBhbHdheXMgY2FsbCByb3dfcHJlcDsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dAogICBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMzo0MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgc2V0IHZhcmJpbmQgZXJyb3Igb24gY29sdW1uIHNldCBlcnJvcjsgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mCiAgICR0YWJsZTsgc2VwYXJhdGUgbWZkX3Byb2Nlc3NpbmdfdHlwZXMgZnJvbSBtMmNfcHJvY2Vzc2luZ190eXBlCgoyMDA0LTA1LTE4IDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLXRvcC5tMmM6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBzZXBhcmF0ZSBtZmRfcHJvY2Vzc2luZ190eXBlcwogICBmcm9tIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDUtMTggMTM6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IHJlbW92ZSBkYXRhIHNldHVwIGZyb20gcm93X3ByZXAKCjIwMDQtMDUtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDExOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGRlZmF1bHQgdG8gc2V0dGluZyB1cCBkYXRhCiAgIGNvbnRleHQgaW4gY2FjaGVfbG9hZCwgaW5zdGVhZCBvZiByb3dfcHJlcAoKMjAwNC0wNS0xOCAxMToyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBhc3N1bWUgbWFwcGluZyBhbHJlYWR5IGRvbmU7IHNldCBsZW4gdG8gbWF4IHNpemUgYmVmb3JlCiAgIGNoZWNraW5nIGlmIGl0IGlzIGxhcmdlIGVub3VnaCB0byBob2xkIGEgdmFsdWUKCjIwMDQtMDUtMTggMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBsb2cgZXJyb3IgaWYgbm90IGVub3VnaCBzcGFjZSBmb3IgdmFyCgoyMDA0LTA1LTE4IDExOjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IGNvbW1lbnQgdHdlYWtzCgoyMDA0LTA1LTE4IDExOjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIGZpeCBjYXNlIG9mIHNvbWUgY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtZW51bXMubTJjLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgdXNlICRjb250ZXh0IGluc3RlYWQgb2YgJHRhYmxlOyBtYWtlIGdlbmVyaWMtdGFibGUtKGVudW1zfG9pZHMpIG9ubHkgcnVuIG9uIGN1cnJlbnQKICAgdGFibGU7IGFkZCB0YWJsZSBsb29wIGluIGdlbmVyaWMtdGFibGUtY29uc3RhbnRzCgoyMDA0LTA1LTE4IDEwOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGFkZCBkZWJ1ZyB0cmFjaW5nIGZvciBzZXQgZnVuY3Rpb25zCgoyMDA0LTA1LTE4IDEwOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy10YWJsZS5tMmksCiAgICAgZ2VuZXJpYy1jdHgtY29weS5tMmksIGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaSwgbWZkLXJlYWRtZS5tMmMKOgoKICAgY29tbWVudCB0d2Vha3M7IGNoZyAkdGFibGUgdG8gJGNvbnRleHQKCjIwMDQtMDUtMTggMDI6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgV3JpdGUgc3VwcG9ydCwgaW5jbHVkaW5nIFJvd1N0YXR1cy1iYXNlZCBjcmVhdGlvbiBvZiBuZXcgKHZvbGF0aWxlKSByb3dzLgogICBUaGUgY29kZSBuZWVkcyBhIGJpdCBvZiB0aWR5aW5nIHVwLCBidXQgc2VlbXMgdG8gYmUgcmVhc29uYWJseSBmdW5jdGlvbmFsLgoKMjAwNC0wNS0xOCAwMjowMSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE1pbm9yIHR3ZWFrcy4KCjIwMDQtMDUtMTcgMjA6MDYgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGgsIGFwcGx5IHBhdGNoICMgOTU1NTc5IHRvIGNvbXBsZXRlIG1pbm9yIGNoYW5nZXMgdG8gaW5zdGFsbCB0YWJzLgoKMjAwNC0wNS0xNyAxOTo1OCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbCwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgIGh0bWxoZWxwL05ldC1TTk1QLmhocDoKCiAgIEFkanVzdCB1c2FnZSB0byBhY2NvdW50IGZvciByZW1vdmVkIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTk6NTIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9odG1saGVscC86IENvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbCwKICAgICBDb25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIERldmVsb3BlciBGQVEuaHRtbCwKICAgICBEZXZlbG9wZXJfRkFRLmh0bWwsIEhlbHAgQ2F2ZWF0cy5odG1sLAogICAgIEhlbHBfQ2F2ZWF0cy5odG1sOgoKICAgcmVtb3ZlIHNwYWNlIGZyb20gcGF0aG5hbWVzIG9mIEhUTUwgaGVscCBmaWxlcy4KCjIwMDQtMDUtMTcgMTU6NDUgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUudHh0OgoKICAgcGVyIEFsZXggQnVyZ2VyLCBvbmUtbGluZSBjaGFuZ2UgKGxpbmUgMTU5LCBjaGFuZ2UgcGVyaW9kIHRvIGNvbG9uKS4KCjIwMDQtMDUtMTcgMDc6MTMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwKICAgICB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dAosIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sLAogICAgIHdpbjMyL2xvY2FsL01ha2VmaWxlLmluLCB3aW4zMi9sb2NhbC9taWIyYy5iYXQsCiAgICAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LCB3aW4zMi9sb2NhbC90cmFwdG9lbWFpbC5iYXQKOgoKICAgcGVyIEFsZXggQnVyZ2VyOiB0ZXN0IGV4aXN0ZW5jZSBvZiBwZXJsOyBwcm92aWRlIGFjY2VzcyB0byBtb3JlIFBlcmwgcHJvZ3JhbXMuCgoyMDA0LTA1LTE3IDA2OjQ0ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoOiBhcHBseSBwYXRjaCAjOTU1MjU1IHRvIGVuaGFuY2UgdGhlIE5TSVMgaW5zdGFsbGVyLgoKMjAwNC0wNS0xNyAwNTozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBJbXBsZW1lbnQgdGhlIG11bHRpLXJvdyBvdXRwdXQgTUlCIHRhYmxlLgoKMjAwNC0wNS0xNCAwNDoyMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIE9vcHMhICBDbG9zZSAtIGJ1dCBpdCdzIGEgZ29vZCBqb2IgSSBkb24ndCBzbW9rZS4uLi4KCjIwMDQtMDUtMTMgMjE6MjMgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgcGVyIEFsZXhCOiBkZXNjcmliZSBmdXJ0aGVyIGRldGFpbHMgb2YgYnVpbGRpbmcgKGNyZWF0aW5nIGVtcHR5IGZpbGVzLCBldGMpLgoKMjAwNC0wNS0xMyAyMToxMyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBwZXIgQWxleEI6IGFkZGVkIHNlY3Rpb24gImNvLWV4aXN0aW5nIHdpdGggbSQgc2VydmljZXMiCgoyMDA0LTA1LTEzIDIwOjI5ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLzogQWRkMlBhdGgubnNpLCBTZXRFblZhci5uc2ksCiAgICAgbmV0LXNubXAtaGVhZGVyMS5ibXAsIG5ldC1zbm1wLm5zaToKCiAgIFBlciBBbmR5IFNtaXRoOiBwYXRjaCBbOTUyNTA5XSB0byBmaXggbGluayBuYW1lcyBmb3IgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGJhdGNoIGZpbGVzLgoKMjAwNC0wNS0xMyAyMDoxMiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBQZXIgQWxleCBCdXJnZXIgYW5kIEFuZHkgU21pdGg6IHVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBjcmVhdGluZyBhIHdpbjMyIGluc3RhbGxhYmxlIHBhY2thZ2UuCgoyMDA0LTA1LTEzIDIwOjA0ICBzbGlmCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHJlbW92ZSBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNS0xMyAwNTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBTcGxpdCBuZXcgZXh0ZW5zaW9uIHRhYmxlIGludG8gdHdvIChjb25maWd1cmF0aW9uIGFuZCBvdXRwdXQpLgogICBJbXBsZW1lbnQgc2NhbGFyIHRvIHRyYWNrIHRoZSBudW1iZXIgb2YgZW50cmllcy4KICAgUGFyc2UgbXVsdGktbGluZSBvdXRwdXQgdG8gaW1wbGVtZW50ICduc0V4dGVuZE91dHB1dDFMaW5lJyBvYmplY3QuCgoyMDA0LTA1LTEzIDA0OjA2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgU2VwYXJhdGUgY29uZmlndXJhdGlvbiBhbmQgb3V0cHV0IGludG8gc2VwYXJhdGUgdGFibGVzLCBhcyBzdWdnZXN0ZWQuCiAgIERyb3AgJ291dHB1dCBsZW5ndGgnIG9iamVjdCBhcyBwcm9iYWJseSB1bm5lY2Vzc2FyeS4KICAgTmV3IHNjYWxhciB0byB0cmFjayB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHRhYmxlLgogICBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGlzIGdyb3VwIHdpbGwgbm90IGJlIGVtcHR5LAogICBldmVuIHdoZW4gbm8gZXh0ZW5zaW9ucyBhcmUgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBhZ2VudC4KICAgKEknbSBzdGlsbCBub3QgaGFwcHkgd2l0aCBzb21lIG9mIHRoZSBuYW1lcywgdGhvdWdoISkKCjIwMDQtMDUtMTEgMDM6NTkgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBjbGVhbnVwIGVycm9yIG1lc3NhZ2VzLiBjbGFyaWZ5IFNDTSBpbnRlcmFjdGlvbnMgd2l0aCB3b3JrZXIgdGhyZWFkIGluIGNvbW1lbnRzLgoKMjAwNC0wNS0xMSAwMzoxMiAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeCBzb21lIFNNSSBlcnJvcnMuCiAgIFdlcyBjYW4gYmUgYSBwaWNreSBiZWdnYXIgYXQgdGltZXMuLi4uCgoyMDA0LTA1LTEwIDE3OjUwICBzbGlmCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9uZXQtc25tcC1wZXJsLXRlc3QucGw6CgogICBwZXIgQWxleCBCdXJnZXIgLSBhZGQgbWlzc2luZyB0ZXN0IHNjcmlwdC4KCjIwMDQtMDUtMTAgMTM6NDkgIGhhcmRha2VyCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIEFub3RoZXIgZG9jIHVwZGF0ZSBmcm9tIEFsZXgKCjIwMDQtMDUtMTAgMDM6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtdGF0aW9uIG9mIG5ldyBuc0V4dGVuZFRhYmxlCgoyMDA0LTA1LTEwIDAzOjQ0ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgUmV2aXNlZCBNSUIgZm9yIHNjcmlwdGVkIGV4dGVuc2lvbnMuCiAgIChUbyByZXBsYWNlIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUpCgoyMDA0LTA1LTEwIDAzOjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEZWZlbnNpdmUgcHJvZ3JhbW1pbmcgLSBkb24ndCBjcmFzaCBvbiBOVUxMIHBhcmFtZXRlcnMuCgoyMDA0LTA1LTEwIDAzOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEV4dGVybmFsIEFQSSBmb3IgY2hlY2tpbmcgYW5kIHJlbG9hZGluZyBhIGNhY2hlZCB2YWx1ZS4KICAgV2Vha2VuIHRoZSBsaW5rcyBiZXR3ZWVuIHRoaXMgaGVscGVyIGFuZCAnbnNDYWNoZVRhYmxlJy4KCjIwMDQtMDUtMDcgMTU6NDEgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBSZW1vdmUgZHVwbGljYXRlIGVudHJ5IGZvciBGUk5FVFNFUlYtTUlCCgoyMDA0LTA1LTA3IDE1OjE5ICBuYmEKCiAgICogbWlicy86IEV0aGVyTGlrZS1NSUIudHh0LCBJQU5BaWZUeXBlLU1JQi50eHQsCiAgICAgcmZjbWlicy5kaWZmOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCIHZlcnNpb25zCgoyMDA0LTA1LTA3IDE1OjA0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBUaGUgd29yZCBQUkVGSVggaXMgbm90IGVuZGFuZ2VyZWQgZm9yIHN1YnN0aXR1dGlvbiwgc28gbWFrZSBpdCBsb29rIG5vcm1hbAoKMjAwNC0wNS0wNyAxNDozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggZm9yIHRydW5jYXRlZCBvaWQgd2hlbiB1c2luZyBPQkpFQ1QgSURFTlRJRklFUiBhcyBpbmRleAoKMjAwNC0wNS0wNyAxNDoxNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggdG8gYWxsb3cgc3BlY2lmeWluZyBudW1lcmljIG9pZCBmb3IgdGFibGUKCjIwMDQtMDUtMDYgMjA6MTUgIHNsaWYKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtOgoKICAgUGVyIEFsZXggQnVyZ2VyLCBhZGQgbmFtZXMgdG8gYWNrbm93bGVkZ2UgdGhlIGluZGl2aWR1YWwgY29udHJpYnV0b3JzLgoKMjAwNC0wNS0wNiAxOTo0MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICByZWZsZWN0IHRoYXQgUkVBRE1FLUZJUlNULnR4dCBhbmQgSW5zdGFsbGF0aW9uLmh0bWwgaGF2ZSBiZWVuIG1lcmdlZCBpbnRvIFJFQURNRS50eHQKCjIwMDQtMDUtMDYgMTk6MDIgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUGVyIEFuZHkgU21pdGgsIHBhdGNoICM5NDI3NjYgY3JlYXRlcyBTTk1QQ09ORlBBVEggYW5kIFNOTVBTSEFSRVBBVEggYXMgc3lzdGVtIGVudiB2YXJzLgoKMjAwNC0wNS0wNiAxODo1NCAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIFBlciBBbmR5IFNtaXRoLCBkb24ndCBzaG93IG1lc3NhZ2UgZGlhbG9ncyB3aGVuIHJlZy91bnJlZyBPSyAocGF0Y2ggOTQ4OTI2IGZpeGVzIGJ1ZyA5NDgxNDYpLgoKMjAwNC0wNS0wNiAxODowMSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLUZJUlNULnR4dCwgUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIFJFQURNRS50eHQsIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbAosIGh0bWxoZWxwL0hlbHAgQ2F2ZWF0cy5odG1sLAogICAgIGh0bWxoZWxwL0luc3RhbGxhdGlvbi5odG1sLCBodG1saGVscC9OZXQtU05NUC5oaGMsCiAgICAgaHRtbGhlbHAvTmV0LVNOTVAuaGhwLCBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbDoKCiAgIHBhdGNoIHdpbmRvd3MgYnVpbGQgcGFja2FnaW5nIHBlciBBbGV4IEJ1cmdlcidzIHBhdGNoLXdpbjMyLTUuMS4yLWNsZWFudXAuZGlmZgoKMjAwNC0wNS0wNiAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vdmUgdmFyIGRlY2wgdG8gdG9wIG9mIGJsb2NrIHNjb3BlOyBhZGQgaGVhZGVyIHRvIHF1aWV0IHByb3RvdHlwZSB3YXJuaW5nCgoyMDA0LTA1LTA1IDE0OjQxICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIEFkZCBJQU5BLU1BTExPQy1NSUIKCjIwMDQtMDUtMDUgMTM6NDkgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgUHJvdGVjdCBvaWQgdGFibGUgYWdhaW5zdCBvdmVyZmxvdwoKMjAwNC0wNS0wNSAwNzozNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIHNob3VsZF9pbml0IGJlZm9yZSBpbml0aWFsaXppbmcgc211eAoKMjAwNC0wNS0wNCAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmY6CgogICBGaXggYSBoZWFkZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgoyMDA0LTA1LTA0IDA3OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX2NvbmYuYywKICAgICB2YWNtX2NvbmYuaCwgdmFjbV92YXJzLmg6CgogICBTcGxpdCBWQUNNIGhhbmRsaW5nIGludG8gdHdvIC0gb25lIGNvbmNlcm5lZCB3aXRoIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwogICBhbmQgdmFsaWRhdGluZyBhY2Nlc3MsIHRoZSBvdGhlciB0byBoYW5kbGUgdGhlIE1JQiB0YWJsZSByZXByZXNlbnRhdGlvbi4KICAgVGhpcyBhbGxvdyB0aGUgYWdlbnQgdG8gc3VwcG9ydCBWQUNNLWJhc2VkIGFjY2VzcyBjb250cm9sIHdpdGhvdXQgbmVjZXNzYXJpbHkKICAgaW5jbHVkaW5nIHRoZSBWQUNNLXJlbGF0ZWQgdGFibGVzLgoKMjAwNC0wNS0wNCAwNzoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYwosIGFwcHMvc25tcHRyYXBkLmM6CgogICBNb3ZlIFVTTSBjb25maWcgaGFuZGxpbmcgaW50byB0aGUgbGlicmFyeSwgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuCiAgIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIuICAgVGhpcyBhbHNvIHBhdmVzIHRoZSB3YXkgZm9yIHNlcGFyYXRpbmcKICAgY29uZmlnLWJhc2VkIGhhbmRsaW5nIG9mIHNldHRpbmcgdXAgdXNlcnMgZnJvbSB0aGUgVVNNIE1JQiBoYW5kbGVyLgoKMjAwNC0wNS0wNCAwMToxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDb25maWd1cmUgaW5kZW50IHRvIHJlY29nbmlzZSAnc2l6ZV90JyBhcyBhIHR5cGUgbmFtZSAoQnVnICM5NDY5MzkpCgoyMDA0LTA1LTAzIDE1OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFNldCBubyByZXBlYXQtY291bnQgdG8gMSB3aGVuIG5vZ2V0YnVsayBpcyBzcGVjaWZpZWQgZm9yIG1hdGggcHVycG9zZXMuCgoyMDA0LTA1LTAzIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBTb2xhcmlzIENQVV9XQUlUIGxvb2tzIHN0cmFuZ2Ugb24gc29tZSBzZXJ2ZXJzLiBVcGRhdGUgdG8gc2FtZSBhbGdvcml0aCB0b3AgdXNlcwoKMjAwNC0wNC0zMCAxNzowMCAgaGFyZGFrZXIKCiAgICogbWlicy9tYWtlaHRtbC5wbDoKCiAgIE1hbnkgbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgICAtIE5vdyB0YWtlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBjaGFuZ2luZyBNSUJESVJzIGFuZCBvdXRwdXQgZGlycy4KICAgIC0gYWNjZXB0cyBhIG5vZGVtYXAgdG8gbWFwIE1JQnMgdG8gb3RoZXIgbm9kZXMuCgoyMDA0LTA0LTMwIDE1OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBBZGRlZCBhIHRvdWNoIG9mIGNvbG9yLgoKMjAwNC0wNC0zMCAxNTo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYjJjLmdlbmh0bWwuY29uZgoKMjAwNC0wNC0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBtYWtlaHRtbC5wbDoKCiAgIC0gQSBtYWtlIHJvdXRpbmUgdG8gZ2VuZXJhdGUgYSBIVE1MIGR1bXAgb2Ygb3VyIERpc3RyaWJ1dGVkIE1JQnMuCiAgICAgLSBJbnN0YWxsZWQgYXQgaHR0cDovL3d3dy5OZXQtU05NUC5vcmcvbWlicy8KCjIwMDQtMDQtMjggMTc6MjQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICB1cGRhdGUgYWZ0ZXIgZXh0cmFjdGlvbgoKMjAwNC0wNC0yOCAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtYW55IG1vcmUgdXBkYXRlcyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgbWliMmMgY29tbWFuZHMuCgoyMDA0LTA0LTI4IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZG9jdW1lbnQgbW9yZSBhbmQgY2xlYW4gdXAgJHZhci5YWFggY29tbWVudHMKCjIwMDQtMDQtMjggMTY6NDcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIE9ubHkgYnVpbGQgdGhlIG1pYjJjLmNvbmYgbWFuIHBhZ2UgaWYgY29taW5nIGZyb20gYSBjdnMgY2hlY2tvdXQKICAgICAtIGF2b2lkcyBwZXJsIGRlcGVuZGVuY2llcyBvbiBlbmQtdXNlciBtYWNoaW5lcy4KCjIwMDQtMDQtMjggMTY6NDUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mLjUsIG1pYjJjLmNvbmYuNS5pbgosIG1pYjJjLmV4dHJhY3QucGw6CgogICBOZXcgZG9jdW1lbnRhdGlvbiBmb3IgaG93IHRvIHdyaXRlIG1pYjJjLmNvbmYgZmlsZXMuCiAgICAgLSBub3RlLCBtdWNoIGlzIGF1dG8tZXh0cmFjdGVkIGZyb20gY29tbWVudHMgaW4gbWliMmMuCgoyMDA0LTA0LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNvbnN0cnVjdCBjb21tZW50cyBiZXR0ZXIgZm9yIGF1dG8tZXh0cmFjdGlvbiBpbnRvIGEgbWFudWFsIHBhZ2UuCgoyMDA0LTA0LTI4IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBOZXcgbWliMmMuZ2VuaHRtbC5jb25mIGNvZGUgdG8gZ2VuZXJhdGUgYSBIVE1MIGRvY3VtZW50IGZyb20gYSBNSUIKICAgZG9jdW1lbnQgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4KCjIwMDQtMDQtMjggMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBuZXcgQHN0YXJ0cGVybEAgLyBAZW5kcGVybEAgZGVmaW5pdGlvbnMgdG8gY29tcGxldGVseSBvdXRzb3VyY2Ugc29tZQogICAgIHRleHQgdG8gYSBsYXJnZSBibG9jayBvZiBwZXJsLgogICAtIGFkZGVkIG1pYjJjX291dHB1dCgpIHRvIG91dHB1dCBhIGxpbmUgb2YgdGV4dCB0byB0aGUgcmlnaHQgcGxhY2UKICAgICBmcm9tIGFueXdoZXJlIGluIHBlcmwgKGV2YWxlZCkgY29kZS4KCjIwMDQtMDQtMjggMTU6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBzdXBwb3J0IHRoZSBhYmlsaXR5IHRvIGdldCBUQyBkZXNjcmlwdGlvbnMgZnJvbSBwZXJsCgoyMDA0LTA0LTI4IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggb3V0cHV0IHRvIHJlc3BlY3QgdGhlIG91dHB1dCBsZW5ndGggcmV0dXJuZWQgYnkgdGhlIHZhcmlhYmxlCiAgIHByaW50aW5nIHJvdXRpbmVzLgoKMjAwNC0wNC0yOCAxNTozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gU2F2ZSB0ZXh0dWFsIGNvbnZlbnRpb24gZGVzY3JpcHRpb24ncwogICAtIEltcGxlbWVudCArY29uc3QgY2hhciAgICAgKmdldF90Y19kZXNjcmlwdGlvbihpbnQgdGNfaW5kZXgpCgoyMDA0LTA0LTI4IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY2hhbmdlIHZhcmlhYmxlIHRvIGNvbnN0IHZhciB0byBhdm9pZCB3YXJuaW5nLgoKMjAwNC0wNC0yNyAxMTo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggYXV0by1lbmFibGluZyBvZiAtLXdpdGgtcGVybC1tb2R1bGVzIHdoZW4gLS1lbmFibGUtZW1iZWRkZWQtcGVybCBpcyBzZWxlY3RlZAoKMjAwNC0wNC0yNiAwMzoyNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgUmVzdG9yZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiAnY2xvbmVGcm9tJyBhbmQgJ2NyZWF0ZScoK2Nsb25lKQogICBzdWJjb21tYW5kcy4gIEZpeCBoYW5kbGluZyBvZiBiYXJlICdjcmVhdGUnIHN1YmNvbW1hbmQgKHNpbmNlIGFuCiAgIHVuY2xvbmVkIHVzZXIgY2FuJ3QgYmUgbWFya2VkIGFzIEFDVElWRSB3aXRoIHRoZSBOZXQtU05NUCBhZ2VudCkKICAgRG9jdW1lbnQgdGhlIGJlaGF2aW91ciBtb3JlIGNsZWFybHkuCgoyMDA0LTA0LTIzIDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBQcm92aWRlIGFuIEFQSSBmb3IgcmV0cmlldmluZyB0aGUgdGFibGUgY29udGFpbmVyIChvciAndGFibGVfZGF0YScpCiAgIHN0cnVjdHVyZSBmcm9tIHdpdGhpbiBhIGhhbmRsZXIgcm91dGluZS4KICAgVGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9yIHVzaW5nIGdsb2JhbCB2YXJpYWJsZXMuCgoyMDA0LTA0LTIzIDA0OjIwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvdG9zb2NrMS5zaDoKCiAgIHNjcmlwdCB0aGF0IGNvbnZlcnRzIGJhY2sgdG8gd2luc29jayAxIGxpYnJhcnkuICBubyB1bmRvIGlzIGV4cGxhaW5lZC4KCjIwMDQtMDQtMjIgMTk6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmksCiAgICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaToKCiAgIGNoYW5nZSBhbGwgREVCVUdUUkFDRSB0byBERUJVR01TVEwoKCJ2ZXJib3NlOmZ1bmN0aW9uX25hbWUiLi4uCgoyMDA0LTA0LTIyIDA3OjEzICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIHBhdGNoIGZyb20gQW5keSBTbWl0aDogWzkzMTY3M10gUnVuIHNubXB0cmFwZCBhcyBhIFdpbmRvd3Mgc2VydmljZTsKICAgc2xpZiBkaWQgdGhlIG1ha2VmaWxlL3Byb2plY3QgZmlsZSB0b3VjaGVzLgoKMjAwNC0wNC0yMiAwNzoxMSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWF0Y2ggYXBwbGljYXRpb24gbmFtZSB3aXRoIGRpc3BsYXkgbmFtZSB0byBpbXByb3ZlIGV2ZW50IGxvZyBsZWdpYmlsaXR5LgoKMjAwNC0wNC0yMiAwNzowOCAgc2xpZgoKICAgKiB3aW4zMi86IHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZSBpbmNsdWRlIHNlYXJjaCBwYXRoIGZvciBzbm1wbGliIHRvICIuLlwuLiIgW3dhcyBwb2ludGluZyBlbHNld2hlcmVdLgoKMjAwNC0wNC0yMSAxOTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICByZW1vdmUgdW51c2VkIHZhcjsgdXBkYXRlIGhlbHAgbWVzc2FnZQoKMjAwNC0wNC0yMSAxOTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsIG1mZC10b3AubTJjCjoKCiAgIHVzZSAjIGluc3RlYWQgb2YgKiBmb3Igc3BlY2lhbCBjaGFyLCBzaW5jZSBwZXJsIGRvZXNuJ3QgbGlrZSB0aGUgKgoKMjAwNC0wNC0yMSAxOTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTIxIDE5OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBmaXggcXVvdGluZyBwcm9ibGVtCgoyMDA0LTA0LTIxIDE5OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgZm9yIG5vbi1pbmRleCBtYXAgZnVuY3Rpb25zCgoyMDA0LTA0LTIxIDE5OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZ2V0IHJpZCBvZiBsb29wX2luaXRfY29udGV4dCwgbW92aW5nIGl0J3Mgd29yayBpbnRvIGdldF9maXJzdDsgZml4IHRlc3QKICAgZm9yIGNvZGUgZ2VuIGZvciB0cmFuc2llbnQgZGF0YQoKMjAwNC0wNC0yMSAxOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICBkb24ndCB1c2UgdWMgZnVuY3Rpb24sIGFzIGl0IGJhcmZzIG9uIGVudW1zIHcvaHlwaGVucwoKMjAwNC0wNC0yMSAwNTo1MyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci86IEFkZDJQYXRoLm5zaSwgU2V0RW5WYXIubnNpLAogICAgIG5ldC1zbm1wLm5zaToKCiAgIGZyb20gQW5keSBTbWl0aDogaW5zdGFsbGVyIGNvbXBvbmVudHMKCjIwMDQtMDQtMjAgMjA6NDggIHNsaWYKCiAgICogaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICBmaXggWzgwNzM0OV0gdWNkLXNubXAvdmVyc2lvbi5oIHRyaWVzIHRvIHVzZSBhIG11dGFibGUgdmFyaWFibGUgWyNkZWZpbmVdCgoyMDA0LTA0LTIwIDIwOjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHVwZGF0ZSBzdGF0dXMsIGNoYW5nZSBidWlsZCBtZW51LCBhbmQgbWFudWFsIGJ1aWxkIGlwdjYgaW5zdHJ1Y3Rpb25zLgoKMjAwNC0wNC0yMCAxODo1NyAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcGF0Y2gtYnVnLTkxOTQ2NS00IGFwcGxpZWQgdG8gZml4IFs5MTk0NjVdIGJ1ZyBpbiBzeXN0ZW0uYwoKMjAwNC0wNC0yMCAxNzoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQxMTBhZ2VudHhnZXQKLCBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwKICAgICBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIFVzZSBuZXcgZ2xvYmFsIFN2M2NvbmZpZyBtYXN0ZXIgcGFyYW0gc2V0dXAKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1QUVTLCBUMDI2c25tcHYzZ2V0U0hBQUVTCjoKCiAgIE5ldyB0ZXN0cyBmb3IgQUVTIHN1cHBvcnQKCjIwMDQtMDQtMjAgMTc6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTCiwgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVM6CgogICBVc2UgbmV3IGdsb2JhbCBTdjNjb25maWcgbWFzdGVyIHBhcmFtIHNldHVwCgoyMDA0LTA0LTIwIDE3OjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGRldGVybWluZSB0aGUgYmVzdCBhdXRoL2VuY3IgdHlwZSBhdmFpbGFibGUgYW5kIHVzZSBpdC4KCjIwMDQtMDQtMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGZvciBkaXNhYmxlZCBzbm1wdjEvMmMgYW5kIG1kNS9kZXMKCjIwMDQtMDQtMjAgMTU6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IHVuYmFsYW5jZWQgaWYvZW5kaWYgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTA0LTIwIDEyOjA5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBzbm1wbGliL2luZXRfbnRvcC5jCiwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBlcnJvcnMgYnVpbGRpbmcgSVB2NiBzdXBwb3J0IGZvciBNU1ZDKyssIE1pbkdXLCBhbmQgQ3lnd2luLgoKMjAwNC0wNC0yMCAwNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggYnJva2VuIHVzYWdlIG9mIHF3KCkKCjIwMDQtMDQtMjAgMDY6MjAgIHNsaWYKCiAgICogd2luMzIvRVhBTVBMRS5jb25mLndpbjMyOgoKICAgYWRkIHNhbXBsZSBjb25maWcgZmlsZQoKMjAwNC0wNC0yMCAwNDozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNDYWNoZS5jLCBuc0RlYnVnLmMsCiAgICAgbnNMb2dnaW5nLmM6CgogICBGaXggaW50L2xvbmcgbWl4dXAgZm9yIDY0LWJpdCBTb2xhcmlzCgoyMDA0LTA0LTIwIDA0OjMzICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXAuYzoKCiAgIEVuc3VyZSBkaWFnbm9zdGljcyB3aXRoIEFTTi4xIGVuY29kaW5nIGVycm9ycwoKMjAwNC0wNC0yMCAwMzo1MSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGNsZWFudXAgInJlYWRpbmcgTUlCIGZpbGUiIHZlcmJvc2UgbWVzc2FnZSAoY29tcGlsZWQgTUlCRElSUy9NSUJTIG5vdCB1c2VmdWwvZGlzY2VybmFibGUpLgoKMjAwNC0wNC0yMCAwMjo1MSAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHVuc2lnbmVkIGNvbXBhcmUgb2YgbGVuIHRvIGxpbmVfbGVuIGluIHNwcmludF9yZWFsbG9jX2hleHN0cmluZwoKMjAwNC0wNC0yMCAwMjo0OCAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBhZGRfbWliZGlyIHZhcmlhYmxlICd0b2tlbicgaXMgbm90IHVzZWQgb24gd2luMzIuICBtb3ZlIHRvIHVuZGVyIHRoZSBpZmRlZi4KCjIwMDQtMDQtMTkgMjM6NDAgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgo6CgogICBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyOiBbOTI4ODcyXSBXaW4zMiBidWlsZC5iYXQgc25tcGNvbmYsbWliMmMsdHJhcHRvZW1haWwKCjIwMDQtMDQtMTkgMjM6MjAgIHNsaWYKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS1GSVJTVC50eHQsIFJFQURNRS5idWlsZC53aW4zMi50eHQKLCBSRUFETUUudHh0LCBodG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwKLCBodG1saGVscC9EZXZlbG9wZXIgRkFRLmh0bWwsIGh0bWxoZWxwL0ZBUS5odG1sCiwgaHRtbGhlbHAvSGVscCBDYXZlYXRzLmh0bWwsCiAgICAgaHRtbGhlbHAvSW5zdGFsbGF0aW9uLmh0bWwsIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sCiwgaHRtbGhlbHAvTmV0LVNOTVAuaGhjLCBodG1saGVscC9OZXQtU05NUC5oaHAsCiAgICAgaHRtbGhlbHAvbmV0LXNubXAtNC4yLTgwMC5qcGcsCiAgICAgaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcGQuY29uZi53aW4zMi5odG1sLAogICAgIGh0bWxoZWxwL3NubXB0cmFwZC5jb25mLndpbjMyLmh0bWwsIHNjcmlwdHMvY3JlYXRlLXRvYwosIHNjcmlwdHMvbWFuZGlyMmh0bWwsIHNjcmlwdHMvcG9kZGlyMmh0bWwsCiAgICAgc2NyaXB0cy9yZWFkbWUyaHRtbCwgc2NyaXB0cy90eHQyaHRtbDoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MzgyMTRdIFdpbjMyIGRpc3QgZm9sZGVyIC0gYnVpbGRpbmcgYSBiaW5hcnkgcmVsZWFzZQoKMjAwNC0wNC0xOSAyMzowNSAgc2xpZgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5MTg0MTBdIFNOTVBDT05GIGR5bmFtaWMgcGF0aHMKCjIwMDQtMDQtMTkgMjE6NTIgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBjb25kaXRpb25hbGx5IGNvbXBpbGUgZm9yIHBsYXRmb3JtcyB3aXRoIHN0YXRpYyBvYmplY3QgbGlzdHMgW25vIGNvbmZpZ3VyZV0uCgoyMDA0LTA0LTE5IDIxOjQ5ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0Ni5jLCBuZXRzdGF0Lmg6CgogICByZWR1Y2Ugd2FybmluZ3MgZm9yIHVuZGVjbCdkIHN0cnVjdDsgZGVjbGFyZSBpbmV0NnByaW50IG9ubHkgd2hlcmUgaXQgaXMgbmVlZGVkLgoKMjAwNC0wNC0xOSAyMTo0MSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBkb24ndCBleHBvc2UgZ2V0YWRkcmluZm8gaWYgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0uCgoyMDA0LTA0LTE5IDIxOjM5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGZpeCB1bnNpZ25lZCBpbnQgY29tcGFyZQoKMjAwNC0wNC0xOSAyMTozOCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICB0cmFkZSBpbiBhIHNpbmdsZSB0eXBlZGVmIHVpbnQ4X3QgZm9yIHRoZSB3aWRlbHkgdXNlZCB1X2NoYXIuCgoyMDA0LTA0LTE5IDIxOjM2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNsZWFudXAgd2hlbiBmaW5pc2hlZCB3aXRoIGFkZHJpbmZvIHN0cnVjdHVyZS4KCjIwMDQtMDQtMTkgMjA6MDkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhZGQgaW5ldF9udG9wLGluZXRfcHRvbiB0byBzbm1wbGliIG9iamVjdHMgZm9yIHdpbjMyIGJ1aWxkcy4KCjIwMDQtMDQtMTkgMjA6MDggIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgbW9yZSByb2J1c3QgY2hhbmdlIGZvciBORVRTTk1QX1VTRV9ETEwuCgoyMDA0LTA0LTE5IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIGZpeCAjaWZkZWYgYnVnCgoyMDA0LTA0LTE5IDE2OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGFkZCBjb21tZW50IGZyb20gTmllbHMgQi4gcmVhc29uIGZvciB3aW4zMiBpZmRlZnMgaW4gYWRkX21pYmRpci4KCjIwMDQtMDQtMTkgMTU6NTcgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIGJ1aWxkLnBsLCBtaWJfbW9kdWxlX2luaXRzLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBzZWxlY3RpdmUgYnVpbGQgb2YgSVB2NiB0cmFuc3BvcnQgZm9yIE1TVkMrKyBidWlsZAoKMjAwNC0wNC0xOSAxNTowOCAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB1c20uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBOZXcgY29uZmlndXJlIGZsYWdzOiAtLWRpc2FibGUtbWQ1IGFuZCAtLWRpc2FibGUtZGVzIHRvIGNvbXBsZXRlbHkgcmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBsZXNzIHRydXN0ZWQvc2VjdXJlIGFsZ29yaXRobXMKCjIwMDQtMDQtMTkgMTM6MDEgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSBkZWJ1ZyBzdGF0ZW1lbnQgYWZ0ZXIgdmFyaWFibGUgZGVmaW5pdGlvbi4KCjIwMDQtMDQtMTkgMTI6MzYgIHNsaWYKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgdXNlIGEgbW9yZSByb2J1c3Qgc2VhcmNoIGZvciB1bmRlZiBVU0VfT1BFTlNTTC4KCjIwMDQtMDQtMTkgMDg6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL21pYi5jOgoKICAgTW9yZSBmbGV4aWJsZSBvdXRwdXQgb2YgaGV4IHN0cmluZ3MgLSBkb24ndCBoYXJkY29kZSAxNi1vY3RldHMtcGVyLWxpbmUKCjIwMDQtMDQtMTkgMDc6NTggIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmM6CgogICBjb21tZW50IG91dCB2YXJpYWJsZXMgd2hpY2ggYXJlIG5vdCB1c2VkLgoKMjAwNC0wNC0xOSAwNzo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBhbGFybSB0byBhZ2UgYWRkciBjYWNoZSBldmVyeSA1IG1pbjsgYWRkIGRlYnVnIGZvciBhc3AtPnJlcWluZm8KCjIwMDQtMDQtMTkgMDc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlICdzY2hlZCd1bGVkIHRpbWVvdXQgcHJvY2Vzc2luZzsgbW92ZSBhZGRyIGNhY2hlIGFnaW5nIGludG8gYWxhcm07CiAgIGNoYW5nZSBkZWFmdWx0IHRpbWVvdXQgZnJvbSBUSU1FVElDSyB0byBMT05HX01BWAoKMjAwNC0wNC0xOSAwNzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyOyBhZGQgdGltZW91dCBkZWJ1Z2dpbmcKCjIwMDQtMDQtMTkgMDc6MzYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHBhdGNoIFsgOTE4OTQ4IF0gZml4IGN5Z3dpbiBjb25maWcgcHJvYmxlbQoKMjAwNC0wNC0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeGVkIGEgdjEvdjJjIGV4Y2x1c2lvbiBidWcKCjIwMDQtMDQtMTYgMTY6NDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT3V0cHV0IG1lc3NhZ2Ugbm93IGNvbnRhaW5zIHZlcnNpb25zIHN1cHBvcnRlZAoKMjAwNC0wNC0xNiAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldAosIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgICAgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwKLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssCiAgICAgdGVzdGluZy90ZXN0cy9UMTUyaG9zdHVwdGltZSwgdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXAKOgoKICAgTmV3IGZsYWdzIGZvciBjb25maWd1cmU6IC0tZGlzYWJsZS1zbm1wdjEgLS1kaXNhYmxlLXNubXB2MmMKCjIwMDQtMDQtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgYW5kIGNvbmZsaWN0aW5nIFZBQ00gZW50cnkuICBJdCdzIGFtYXppbmcgdGhpcyBoYXNuJ3QKICAgY2F1c2VzIGZhbHNlIHByb2JsZW1zIGJlZm9yZSBub3cuCgoyMDA0LTA0LTE2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIGFkZHJlc3MgaXNzdWVzIG5vdGVkIGJ5IGRhdmUgb24gY29kZXJzCgoyMDA0LTA0LTE2IDEyOjQyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgbmV3ICdubyBjaGVjaycgZGVidWcgbWFjcm8vZnVuY3Rpb25zCgoyMDA0LTA0LTE1IDE0OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIGhlYWRlciBmb3IgYXJwIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTE1IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFZhcmlhYmxlcyB1c2VkIGZvciByZXR1cm5pbmcgdmFsdWVzIG5lZWQgdG8gYmUgJ3N0YXRpYycuICAgKG9vcHMhKQoKMjAwNC0wNC0xNSAwNTo0NyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIE1vdmUgdGhlIGRlZmluaXRpb24gb2YgJ2lwYWRkcl9yZXR1cm4nIHRvIHRoZSAob25seSkgcm91dGluZSB3aGVyZQogICBpdCdzIGFjdHVhbGx5IHVzZWQuICAoU2VlIEJ1ZyAjOTM0NDIyKQoKMjAwNC0wNC0xNSAwNToyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBSZW1vdmUgZXh0cmFuZW91cyAnOycgaW4gbm90aWZpY2F0aW9uIGdlbmVyYXRpb24gcm91dGluZSAoQnVnICM4OTU4MDApCgoyMDA0LTA0LTE1IDA1OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgKEJ1ZyAjOTM0NDExKQoKMjAwNC0wNC0xNCAyMTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpeGVkIGN1dC1uLXBhc3RlIHR5cG9zIHBvaW50ZWQgb3V0IHRvIG1lIGJ5IE1pa2UgUy4KCjIwMDQtMDQtMTQgMTc6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIHN1cHBvcnQgbG9jYWwvbWFzdGVyIFNOTVB2MyBrZXkgc2V0dGluZ3MgZGlyZWN0bHkKICAgLSBoYXZlIGdldHRhYmxlKCkgcGFyc2UgaW5kZXhlcyBvdXQgb2YgdGhlIE9JRCB3aGVuIE5ldFNOTVA6Ok9JRCBpcyBhdmFpbGFibGUKICAgICAtIG5vdCBleHRlbnNpdmVseSB0ZXN0ZWQgeWV0LgoKMjAwNC0wNC0xNCAxNTo0MSAgc2xpZgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIFNwZWNpZnkgY29ycmVjdCBkZWZhdWx0IHZhbHVlIGZvciBNSUJESVJTLgoKMjAwNC0wNC0xNCAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgU3VwcG9ydCBmb3IgTGludXggMi42IGluY2wgU29mdElSUSBDUFUgc3RhdGUKCjIwMDQtMDQtMTQgMTU6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE92ZXJoYXVsIHRvIHJlbW92ZSBmaXhlZCB0YWJsZSBzaXplIGFuZCBzdXBwb3J0IExpbnV4IDIuNiBrZXJuZWwKCjIwMDQtMDQtMTQgMTU6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9zb2xhcmlzMi5jCjoKCiAgIENsZWFuIHVwIGNvbW1lbnRzIG1pc2hhbmRsZWQgbnkgaW5kZW50CgoyMDA0LTA0LTE0IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgdG8gdGhlIGNyZWF0ZVVzZXIgZGlyZWN0aXZlIGZvciBzcGVjaWZ5aW5nIG1hbnVhbCBsb2NhbAogICBvciBtYXN0ZXIga2V5cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHBhc3N3b3JkIGRlcml2YXRpb25zLgoKMjAwNC0wNC0xNCAxMzoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbnVsbCBjaGVjayBiZWZvcmUgdXNpbmcgcG9pbnRlcgoKMjAwNC0wNC0xNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMTI6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyBzbm1wLmNvbmYgdG9rZW5zIHRvIGRpcmVjdGx5IHNldCBTTk1QdjMgaGV4IGtleXMKCjIwMDQtMDQtMTQgMDk6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB2My5jLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIGRpcmVjdGx5IHNwZWNpZnlpbmcgU05NUHYzIGhleCBrZXlzIHVzaW5nIG5ldyBmbGFncyAoLTNbbU1rS10pCgoyMDA0LTA0LTE0IDA4OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSBmb3IgY29uZmlndXJlLmluCgoyMDA0LTA0LTE0IDA4OjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW9yZSBkZWJ1Zzsgc2ltcGxpZnkgdHdvIGNvbmZsaWN0IHRlc3RzIGludG8gb25lOyByZXZlcnQgY29uZmxpY3QgbWVzc2FnZXMKICAgYmFjayB0byB3YXJuaW5nLCBidXQgYWRkIG9ibm94aW91cyB3YXJuaW5nIHRvIHN1bW1hcnkgY2FjaGUKCjIwMDQtMDQtMTQgMDM6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBBIG5vbi16ZXJvIHJlcGVhdCBjb3VudCB3aXRoIG5vIG5vbi1yZXBlYXRpbmcgdmFyYmluZHMgY29uZnVzZXMgdGhlCiAgIHBlcmwgJ2J1bGt3YWxrJyByb3V0aW5lLiAgIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBmaXhlZCBwcm9wZXJseSwKICAgYnV0IHRoaXMgYXQgbGVhc3QgYWxsb3dzIHRoZSByZXN0IG9mIHRoZSB0ZXN0cyB0byBydW4gc3VjY2Vzc2Z1bGx5LgoKMjAwNC0wNC0xNCAwMzoxNSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFN1cHBvcnQgcGVyLWxvZ2hhbmRsZXIgc2h1dGRvd24gcHJvY2Vzc2luZyBpbiAnc25tcF9kaXNhYmxlX2xvZycuCiAgIFRoaXMgc2hvdWxkIGFsbG93IGxvZ2ZpbGVzIHRvIGJlIHJvdGF0ZWQgcHJvcGVybHkuCgogICBIb3dldmVyLCBJJ20gbm90IGNvbnZpbmNlZCB0aGF0IHRoZSAnZW5hYmxlZCcgZmxhZyBpcyBiZWluZyB1c2VkCiAgIGNvbnNpc3RlbnRseSwgcGFydGljdWxhcmx5IGJ5IG90aGVyIHN0eWxlcyBvZiBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIFNvbWUgY2xlYW51cCB3b3JrIGlzIHByb2JhYmx5IG5lZWRlZC4KCjIwMDQtMDQtMTQgMDM6MDkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgU3VwcG9ydCAiMDE6MDI6MDM6MDQ6MDU6MDYiIHN0eWxlIGhleCBvdXRwdXQgLSBpLmUuIGxlYWRpbmcgMCdzCiAgIG9uIHNpbmdsZS1kaWdpdCBoZXggdmFsdWVzLiAgKFN1Z2dlc3RlZCBieSBHbGVubiBBbmRyZXdzKQoKMjAwNC0wNC0xNCAwMzowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jOgoKICAgSWRlbnRpZnkgd2hpY2ggTUlCIG1vZHVsZXMgYXJlIHByZXNlbnQgaW4gdGhlIE1JQkZJTEVTIGxpc3QgYmVmb3JlCiAgIHN0YXJ0aW5nIHRvIGxvYWQgYW55dGhpbmcuICAgVGhpcyBhbGxvd3MgSU1QT1JUIHN0YXRlbWVudHMgdG8gd29yawogICBjb3JyZWN0bHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIGluIHdoaWNoIHN1Y2ggZmlsZXMgYXBwZWFyLgoKMjAwNC0wNC0xNCAwMjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgYnNkLmgsIGN5Z3dpbi5oCiwgZHluaXguaCwgaXJpeC5oLCBtaW5ndzMyLmgsIG9zZjUuaAosIHN1bm9zLmgsIHN2cjUuaCwgc3lzdi5oLCB1bHRyaXg0LmgKOgoKICAgSW5jbHVkZSAiZ2VuZXJpYy5oIiB1c2luZyB0aGUgZnVsbCBuYW1lLCByYXRoZXIgdGhhbgogICByZWx5aW5nIG9uIHRoZSBpbmNsdWRlIHBhdGggYmVpbmcgc2V0IGNvcnJlY3RseS4KICAgKFN1Z2dlc3RlZCBieSBOYWdhcmFqIE5hcmF5YW5hc3dhbXkpCgoyMDA0LTA0LTE0IDAyOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgQ2F0Y2ggU05NUHYyIGV4Y2VwdGlvbiB2YWx1ZXMuCgoyMDA0LTA0LTE0IDAyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQXZvaWQgY3Jhc2hpbmcgdGhlIGFnZW50IHdoZW4gYmFja2luZyBvdXQgb2YgYW4gaW52YWxpZCBTRVQgcmVxdWVzdC4KCjIwMDQtMDQtMTQgMDI6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEFsbG93ICdtb25pdG9yJyBkaXJlY3RpdmVzIHRvIHNwZWNpZnkgYSBzaW5nbGUgaW5zdGFuY2UgcmF0aGVyIHRoYW4KICAgYWx3YXlzIG1vbml0b3JpbmcgYWxsIHJvd3MuCgoyMDA0LTA0LTE0IDAyOjI4ICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgTUlCcywgYWR2aWNlIG9uIHJ1bm5pbmcgYXMgbm9uLXJvb3QKICAgYW5kIGJyaW5nIGludG8gbGluZSB3aXRoIDUuMS54IGJyYW5jaCB2ZXJzaW9uLgoKMjAwNC0wNC0xMyAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICB0d2VhayBhc3NlcnQgY29uZGl0aW9uIHRvIGFsbG93IGZvciB2YWxpZCBidXQgZXhwaXJlZCBjYWNoZQoKMjAwNC0wNC0xMyAxMzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDQtMDQtMTMgMTI6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXROZXRUb01lZGlhVGFibGUubTJkCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgbmV3IGluZXROZXRUb01lZGlhVGFibGUKCjIwMDQtMDQtMTMgMTI6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBhcnAuaCwgYXJwX2NvbW1vbi5jCiwgYXJwX2xpbnV4LmMsIGlwYWRkcmVzc19pb2N0bC5oOgoKICAgbmV3IGZpbGVzCgoyMDA0LTA0LTEzIDExOjQ0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTEzIDExOjQzICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgcm91dGUgZW50cmllcwoKMjAwNC0wNC0xMyAxMTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgaW50ZXJmYWNlIGVudHJpZXMKCjIwMDQtMDQtMTMgMTE6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgZGVmYXVsdCBhZG1pbi9vcGVyIHN0YXR1cyB0byB1cAoKMjAwNC0wNC0xMyAxMTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGludmVydCBvcmRlciBmb3IgY2FjaGUgcmVmcmVzaDsgc2V0IG5ldyBwcmVsb2FkIGZsYWcgb24gY2FjaGUgdG8gaW5pdCBpZkluZGV4CiAgIGVudW0gbGlzdCAodXNlZCBieSBvdGhlciBtb2R1bGVzKTsgc2V0IG9wZXJfc3RhdHVzIGRvd24gaWYgaW50ZXJmYWNlIHZhbmlzaGVzOwogICBtb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBjb21wYXJpbmcvc3dpcGluZyBwb2ludGVycwoKMjAwNC0wNC0xMyAxMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmg6CgogICByZW1vdmUgdW51c2VkIG1hcHBpbmcgZGVmaW5lcwoKMjAwNC0wNC0xMyAxMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgbWFwcGluZyBmdW5jdGlvbnMKCjIwMDQtMDQtMTMgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICByZXZlcnQgZXh0ZXJuYWwgZGVmaW50aW9uIGNoYW5nZQoKMjAwNC0wNC0xMyAxMToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgdXNlIGFjY2VzcyByb3V0aW5lIHRvIGFsbG9jYXRlL2ZyZWUgaXBhZGRyZXNzX2VudHJ5CgoyMDA0LTA0LTEzIDExOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLzogaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGlwYWRkcmVzc19pb2N0bC5jLCBpcGFkZHJlc3NfbGludXguYzoKCiAgIHR3ZWFrIGludGVybmFsIGluZGV4IHVzYWdlOyB1c2UgbmV0LXNubXAgaWZJbmRleCBiYXNlZCBvbiBuYW1lIGluc3RlYWQgb2YgaW9jdGwKICAgaWZfaW5kZXg7IGFkZC90d2VhayBjb21tZW50cwoKMjAwNC0wNC0xMyAxMToyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgbmV3IGZsYWcgZm9yIHByZWxvYWRpbmcgY2FjaGU7IG1vdmUgY2FjaGUgbG9hZC9mcmVlIHRvIHN0YXRpYyBzdWJyb3V0aW5lcyBmb3IKICAgY29kZSByZXVzZTsgYWRkIHNvbWUgZGVidWcgbXNncwoKMjAwNC0wNC0xMyAxMToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgZGVmaW5lcyBmb3IgYWRtaW4vb3BlciBzdGF0dXMgZW51bXMKCjIwMDQtMDQtMTMgMTA6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBlbnRyaWVzIGZvciBoYXZlX21rdGltZSBuYWQgaGF2ZV9zdGltZQoKMjAwNC0wNC0xMyAxMDozMSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgdmVyc2lvbiBjaGFuZ2UuCgoyMDA0LTA0LTEwIDA1OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENsb25pbmcgYSB1c2VyIHJlcXVpcmVzIHVzaW5nIHRoZSB1c21Vc2VyU3RhdHVzIGNvbHVtbiBvYmplY3QuCgoyMDA0LTA0LTEwIDA1OjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZW50cnkgZnJvbSBsaXN0IG9mIGRlZmF1bHQgTUlCIG1vZHVsZXMuCgoyMDA0LTA0LTA5IDE4OjUwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0d28gU05NUF9GUkVFIGNhbmRpZGF0ZXMgaW4gdGRvbWFpbl91bnJlZ2lzdGVyLCBjbGVhcl90ZG9tYWluX2xpc3QuCgoyMDA0LTA0LTA5IDE4OjQ3ICBzbGlmCgogICAqIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBmaXggYSBzaWduIGNvbXBhcmUgd2FybmluZy4KCjIwMDQtMDQtMDkgMTg6MzcgIHNsaWYKCiAgICogd2luMzIvOiBsaWJzbm1wL01ha2VmaWxlLmluLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgSVB2NiB0cmFuc3BvcnRzIHRvIG1zdmMrKyBidWlsZHMuCgoyMDA0LTA0LTA5IDE4OjI3ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2dldC50OgoKICAgZG9uJ3QgcmVxdWlyZSBpbnRlcmZhY2UgbGF5ZXIgb2YgYWdlbnQgaW4gb3JkZXIgdG8gcGFzcyB0aGVzZSB0ZXN0cy4KCjIwMDQtMDQtMDkgMTg6MjQgIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgdW5kbyBsYXN0IGNoYW5nZSB0byByZXN0b3JlIHByb3BlciBjb25zdHJ1Y3Rpb24gb2YgUGVybCBtb2R1bGVzLgoKMjAwNC0wNC0wOCAyMToxMSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICBtYXRjaCBzbm1wc2V0IG91dHB1dCB0byBmaXggYnVnIFs5MTkyNjddIHRlc3RudW0gMzQgVDEyMnByb3h5c2V0ZmFpbCBmYWlsaW5nCgoyMDA0LTA0LTA4IDIwOjI1ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBjaGFuZ2UgdXNhZ2UgY29tbWVudCBmb3IgIi1YTSIgdG8gbWF0Y2ggaXRzIGZ1bmN0aW9uCgoyMDA0LTA0LTA4IDIwOjE5ICBzbGlmCgogICAqIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIGRvIG5vdCBidWlsZCBzbm1wdHJhcGQub2JqIGFzIHBhcnQgb2YgbmV0c25tcHRyYXBkIGxpYnJhcnkgKE1TVkMrKyBidWlsZCkuCgoyMDA0LTA0LTA4IDIwOjE3ICBzbGlmCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBhZGQgdGFibGVfY29udGFpbmVyLm9iaiB0byBsaXN0IG9mIG9iamVjdHMgdG8gYmUgYnVpbHQgdXNpbmcgTVNWQysrCgoyMDA0LTA0LTA4IDIwOjEyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg5NDggXSBmaXggY3lnd2luIGNvbmZpZyBwcm9ibGVtCgoyMDA0LTA0LTA4IDIwOjA3ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBhcHBseSBuYmEncyBGZWIuMjAwNCBwdXR1dGxpbmUgZml4ZXMgdG8gbWFpbiBicmFuY2guCgoyMDA0LTA0LTA4IDE1OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBVc2UgLUxmIGFuZCAtTGYgaW4gdGhlIG1haW4gdHJ1bmsgdG8gbWF0Y2ggdGhlIHByb3BlciBjb2RlIHVzZQoKMjAwNC0wNC0wOCAxMzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIFN1cHBvcnQgZm9yIHRoZSAtcncgZmxhZyB0byB0aGUgb3ZlcnJpZGUgdG9rZW4gYWxsb3dpbmcgcmVhZC93cml0ZQogICBhY2Nlc3MgdG8gdGhlIGJvZ3VzIG1pYiBvYmplY3RzLgoKMjAwNC0wNC0wOCAxMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGVudW0gbGlzdHMgZm9yIHVuc2lnbmVkIGFuZCBiaXQgc3RyaW5ncyB0byByZW1vdmUgZHVwbGljYXRlIHR5cGVzCgoyMDA0LTA0LTA3IDE5OjUwICBzbGlmCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2g6CgogICBwYXRjaCBbOTE3NjQ2XSB0ZXN0IHVzaW5nIGluc3RhbGxlZCBNSUJzIGZpcnN0CgoyMDA0LTA0LTA3IDE1OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWcuaW4KCjIwMDQtMDQtMDcgMTU6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgbG90cyBvZiBkZWJ1ZyB0byBtb2R1bGUgcHJvY2Vzc2luZzsgdXNlIG5ldyB2YXIgZm9yIGV4Y2x1ZGVkIG1vZHVsZXM7IG1ha2UKICAgY29uZmxpY3RzIGVycm9ycyBpbnN0ZWFkIG9mIHdhcm5pbmdzOyBkb24ndCB0cnkgdG8gcmUtcHJvY2VzcyBhIHNyYyBvbmx5IG1vZHVsZQoKMjAwNC0wNC0wNyAxNTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHR5cG8gaW4gY29tbWVudHMKCjIwMDQtMDQtMDcgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBvbmx5IGdlbiByZWxlYXNlIHVuZG8gY29kZSBpZiBzZXR0YWJsZQoKMjAwNC0wNC0wNyAxNTo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHR3ZWFrIGNvbW1lbnRzCgoyMDA0LTA0LTA3IDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmU6CgogICBmaWxlcyB0byBpZ25vcmUKCjIwMDQtMDQtMDcgMTU6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgdW51c2VkL3VuZGVmaW5lZCB2YXJzCgoyMDA0LTA0LTA3IDE1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaDoKCiAgIGZpeCBjb25maWdfcmVxdWlyZSBwYXRocwoKMjAwNC0wNC0wNyAxNTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIGNvbmZpZ19leGNsdWRlIG1pYklJL2ludGVyZmFjZXM7IHR3ZWFrIGV4dGVybmFsIG9pZCBkZWYKCjIwMDQtMDQtMDcgMTU6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gaWZUYWJsZQoKMjAwNC0wNC0wNyAxNTozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlOgoKICAgZmlsZXMgdG8gaWdub3JlCgoyMDA0LTA0LTA3IDE1OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQWRkcmVzc1RhYmxlLm0yZCwgaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICBuZXcgTUZEIGlwQWRkcmVzc1RhYmxlCgoyMDA0LTA0LTA3IDE1OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIGlwYWRkcmVzcyBkYXRhIGFjY2VzcyAodjQgJiB2NikKCjIwMDQtMDQtMDcgMTU6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLW1pYi5oLCBpcC1taWIvaXBBZGRyZXNzVGFibGUuaDoKCiAgIG5ldyBjb25maWcgbW9kdWxlcwoKMjAwNC0wNC0wNyAwNjozOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIHRyYWlsaW5nIGNvbW1hIChidWcgIzkzMDcwOCkKCjIwMDQtMDQtMDcgMDM6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUm91dGluZXMgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvZiByb3dzIGluIGEgZGF0YS1oZWxwZXItYmFzZWQgdGFibGUKCjIwMDQtMDQtMDcgMDI6MTMgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ0FQVFVSRSByZXR1cm5zIGV4aXQgY29kZSBmcm9tIGNvbW1hbmQgdGhhdCB3YXMgcnVuLgoKMjAwNC0wNC0wNiAyMzozMyAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBwYXRjaCBbOTMwODgwXSBkb24ndCBidWlsZCBDTVUgY29tcGF0aWJsZSBmdW5jdGlvbnMgb24gd2luMzIKCjIwMDQtMDQtMDYgMjM6MTkgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9saWJzZGxsLmRzdwosIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJzZGsuZHN3LAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC8uY3ZzaWdub3JlLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCjoKCiAgIHBhdGNoIFs5MTU2MTVdIFBlcmwgVHJhcFJlY2VpdmVyIGRvZXMgbm90IGNvbXBpbGUgb24gV2luMzIgTVNWQwogICBhbHNvIGZpeGVzIGJ1ZyBbODk2MDEyXSB3aW4zMiBQZXJsIGJ1aWxkIGRpZXMgYXQgVHJhcFJlY2VpdmVyCgoyMDA0LTA0LTA2IDIxOjU5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIGZpeCBbOTA3NzE2XSB3aW4zMiBhZ2VudCBzaG93cyB0Y3AsdWRwIGNvbm5lY3QgT0lEcyBpbiBob3N0IGJ5dGUgb3JkZXIKCjIwMDQtMDQtMDYgMTc6MzUgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTEyMl0gdGVzdCBzaG91bGQgYWxsb3cgdGltZSBmb3IgcHJvZ3JhbXMgdG8gc2V0dGxlCgoyMDA0LTA0LTA2IDE3OjM0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMTRdIHByZXNlcnZlIHRlc3QgcmVzdWx0IHdoZW4gc3RvcHBpbmcKCjIwMDQtMDQtMDYgMTc6MzIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTEwNV0gYmV0dGVyIHBpZCBjaGVjawoKMjAwNC0wNC0wNiAxMDo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgc3RkaW50LCBpZiBhdmFpbGFibGUKCjIwMDQtMDQtMDYgMDk6NDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIFJlZ2lzdGVyIG5ldyBBUEkgbW9kdWxlcyB1c2luZyB0aGUgZGVmYXVsdCBwcmlvcml0eSAoMTI3KQogICBhbmQgcHJvdmlkZSBhbiBBUEkgZm9yIHVucmVnaXN0ZXJpbmcgdGhlbSBhZ2Fpbi4KCjIwMDQtMDQtMDUgMTY6MDQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmV2ZXJzZSBwYXRjaC10ZXN0LWRlcHJlY2F0ZWQtb3B0aW9ucyB0byBwZXJtaXQgdGVzdGluZyB2ZXJzaW9ucyBiZWZvcmUgNS4xLgoKMjAwNC0wNC0wNCAxMToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgZG9uJ3Qgc2hhcmUgY2FjaGUgdy9pbmV0Q2lkclJvdXRlLCB3aGljaCBjYW4ndCB3b3JrLCBzaW5jZSBpbmRleGVzIGRvbid0IG1hdGNoCgoyMDA0LTA0LTA0IDExOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuaCwKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHNoYXJlIGRhdGEgc3RydWN0dXJlcy9jYWNoZSB3L2lmVGFibGUgaWYgZW5hYmxlZAoKMjAwNC0wNC0wNCAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGRlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkCiwgaWZYVGFibGUuYywgaWZYVGFibGUuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgdXBkYXRlIHRvIHVzZSBuZXcgaW50ZXJmYWNlIGRhdGEgYWNjZXNzCgoyMDA0LTA0LTA0IDEwOjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICB1cGRhdGUgdG8gc3VwcG9ydCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDQtMDQtMDQgMTA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi5oOgoKICAgYWRkIGluZXRDaWRyUm91dGVUYWJsZQoKMjAwNC0wNC0wNCAxMDo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oLCAuY3ZzaWdub3JlLAogICAgIGRlZmF1bHQtdGFibGUtaW5ldENpZHJSb3V0ZVRhYmxlLm0yZDoKCiAgIG5ldyBpbmV0Q2lkclJvdXRlVGFibGUuIG9ubHkgZG9lcyBpcHY0IHNvIGZhci4KCjIwMDQtMDQtMDQgMDc6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHNoYXJlIGNhY2hlIHcvaW5ldENpZHJSb3V0ZVRhYmxlLCBpZiBpdCBpcyBlbmFibGVkCgoyMDA0LTA0LTA0IDA3OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgdXNlIHVudXNlZCB2YXIKCjIwMDQtMDQtMDQgMDc6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggbWlzc2VkIGNhc2UgZm9yIGFsbG9jYXRlIHBhcm07IHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTA0LTA0IDA3OjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgZml4IG1pc3NlZCBjYXNlIGZvciBhbGxvY2F0ZSBwYXJtCgoyMDA0LTA0LTA0IDA3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIGFkZCBkZWJ1ZwoKMjAwNC0wNC0wMyAwNToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgZml4IGJ1ZyA5Mjg0ODEgLSBjb25zaXN0ZW5jeSBpbiB2YWNtX3ZhcnMuYwoKMjAwNC0wNC0wMiAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgY29uZmlndXJlX3JlcXVpcmUgZmlsZXMgZm9yIGluZGl2aWR1YWwgbW9kdWxlcwoKMjAwNC0wNC0wMiAxMjo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBkZWZhdWx0IHRvIG5ldHNubXBfaW5kZXggY29tcGFyZSBpZiBubyBjb21wYXJlIHByb3ZpZGVkCgoyMDA0LTA0LTAyIDEyOjUxICByc3RvcnkKCiAgICogc25tcGxpYi86IGNtdV9jb21wYXQuYywgc25tcF92ZXJzaW9uLmM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA0LTA0LTAyIDEyOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgbmV3IHN0YXRpYyBsb2NrIHZhciB0byBkZXRlY3Qgd2hlbiBhIGNhbGxiYWNrIGlzIGFkZGVkL3JlbW92ZWQgZHVyaW5nIGNhbGxiYWNrCiAgIHByb2Nlc3Npbmc7IGRvbid0IGNhbGwgZnJlZSBvbiBjbGllbnQgYXJnIG9mIGNhbGxiYWNrIHcvTlVMTCBjYWxsYmFjayBwdHIKICAgKGkuZS4gb25lIHRoYXQgd2FzIHJlbW92ZWQgd2hpbGUgY2FsbGJhY2tzIHdlcmUgYmVpbmcgcHJvY2Vzc2VkKQoKMjAwNC0wNC0wMiAxMjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIG1ha2UgdGVtcCBkaXIgbmFtZXMgY29uZmlndXJlYWJsZSwgdy9kZWZhdWx0cyBub3cgcHJlZml4ZWQgdy8nLic7IHR3ZWFrIGRpZmYKICAgZXhjbHVkZSBwYXR0ZXJuczsgb3RoZXIgbWlzYyB0d2Vha3MKCjIwMDQtMDQtMDIgMTI6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIGZpeCBtYWNyb3MgdG8gYmUgc2FmZWx5IHVzZWFibGUgYXMgYSBzaW5nbGUgc3RhdGVtZW50OyBuZXcgU05NUF9TV0lQRV9NRU0gbWFjcm8KCjIwMDQtMDQtMDIgMDg6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbmV3IGNvbmZpZy5oLmluIHRvIG1hdGNoIGFjY29uZmlnLmggKGF1dG9oZWFkZXIgaGFkbid0IGJlZW4gcnVuIGluIGEgd2hpbGUpOgogICAgICBwY2tzLCBjcm9wdHlraSwgY29uZmlnX2V4Y2x1ZGUsIGFnZW50eCBkb21haW4gc29ja2V0LCBjcHB3cmFwIG1hY3JvCgoyMDA0LTA0LTAyIDA4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICByZWR1Y2UgcmVkdW5kYW5jeQoKMjAwNC0wNC0wMiAwODowMiAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGFkZCBhc3NlcnRzIG9uIGlsbGVnYWwgaGFuZGxlciBjYWxscwoKMjAwNC0wNC0wMiAwNjo0NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeCBpbmNsdXNpb24gb2YgdXRpbGl0aWVzL2V4ZWN1dGUuaCwgc2luY2UgUm9iZXJ0J3MgTWFrZWZpbGUgY2hhbmdlcwogICBicm9rZSB0aGUgcGF0aCBsb29rdXBzLgoKMjAwNC0wNC0wMSAyMjowOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtYWtlIGdldHRhYmxlIHVzZSBnZXRidWxrIHdoZW4gcG9zc2libGUKCjIwMDQtMDQtMDEgMTk6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDQtMDEgMTk6MzIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1vdmUgVlBBVEggdG8gaW5kaXZpZHVhbCBNYWtlZmlsZS5pbiBmaWxlczsgbmV3IG1ha2VmaWxlY2hlY2sgdGFyZ2V0IHRvIGNoZWNrCiAgIGZvciBnbnUgbWFrZSBjb25zdHJ1Y3RzOyBuZXcgJ2NoZWNrcycgdGFyZ2V0IHJ1bnMgY2hlY2tzIGZvciBjb21tZW50L21ha2VmaWxlCgoyMDA0LTA0LTAxIDE5OjI5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGVtcHR5IGRlZmluZSBmb3IgY29uZmlnX2V4Y2x1ZGU7IG5ldyBORVRTTk1QX0NQUF9XUkFQIG1hY3JvcwoKMjAwNC0wNC0wMSAxOToyNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldyBjb25maWdfZXhjbHVkZTsgY29uZmlnX3JlcXVpcmUgdHdlYWtzOgogICAgICAgZG9uJ3QgcHJvY2VzcyB0aGUgc2FtZSBtb2R1bGUgdHdpY2U7IGFsbG93IGMgZmlsZSB3L25vIGhlYWRlcjsgbW92ZQogICAgICAgbW9kdWxlIGxpc3QgYWRkLCBjb25maWdfbG9hZF9taWIgY2hlY2sgaW5zaWRlIGhlYWRlciBjb25kaXRpb25hbAoKMjAwNC0wNC0wMSAxODozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCgoyMDA0LTA0LTAxIDE4OjM3ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbiwKICAgICBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHJld29yayBWUEFUSCBzbyBwZW9wbGUgd2l0aCBHTlUgbWFrZSBjYW4gc2hhcmUgYSBzb3VyY2UgZGlyZWN0b3J5IGZvciBtdWx0aXBsZQogICBidWlsZCAoaW5jbHVkaW5nIG9uZSBpbiB0aGUgc291cmNlIGRpcmVjdG9yeSk7IGNvbXBsZXRlbHkgcmV3b3JrIENQUEZMQUdTIGZvciBhCiAgIGNvbW1vbiwgY29uc2lzdGVudCBvcmRlciAodGhhdCBpcyBhbHNvIGNvcnJlY3QgZm9yIG5vbiBzb3VyY2VkaXIgYnVpbGRzKQoKMjAwNC0wNC0wMSAxODoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIG5ldyBmaWxlCgoyMDA0LTA0LTAxIDE4OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcENpZHJSb3V0ZVRhYmxlLm0yZCwgaXBDaWRyUm91dGVUYWJsZS5jCiwgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICB1cGRhdGUgZm9yIG1mZCBnZW5lcmF0ZWQgY29kZSBjaGFuZ2VzOyB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZjsKCjIwMDQtMDQtMDEgMTg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZjsgYWRkIHRvZG8gY29tbWVudHMKCjIwMDQtMDQtMDEgMTg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlRhYmxlLy5jdnNpZ25vcmUsIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlCiwgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmU6CgogICBuZXcgY3ZzaW5nb3JlIGZpbGVzCgoyMDA0LTA0LTAxIDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmg6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBkYXRhIGFjY2VzcyBzdHVmZgoKMjAwNC0wNC0wMSAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIG5ldyBkYXRhIGFjY2VzcyBmaWxlcwoKMjAwNC0wNC0wMSAxODowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwgcm91dGUuaDoKCiAgIG1vdmUgY29uZmlnX3JlcXVpcmUgc3R1ZmYgYmFjayBpbnRvIG1pYmdyb3VwLCBzaW5jZSB0aGF0J3MgdGhlIG9ubHkgcGxhY2UKICAgY29uZmlndXJlIHdpbGwgbG9vayBmb3IgdGhlbQoKMjAwNC0wNC0wMSAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2xvaWQgc2V0dGluZyAod2FzIGRvbmUgYWJvdmUgYXMgd2VsbCkKCjIwMDQtMDQtMDEgMTY6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEFub3RoZXIgaXRlcmF0b3IgZml4OiBpbml0aWFsaXplIGEgdmFyaWFibGUgcHJvcGVybHkgZm9yIGV2ZXJ5IHJlcXVlc3QKCjIwMDQtMDQtMDEgMTY6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlLmgsIHJvdXRlLmg6CgogICBuZXcgZGF0YSBhY2Nlc3MgaGVhZGVycwoKMjAwNC0wNC0wMSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQW5vdGhlciBpdGVyYXRvciBwcm9ibGVtIHdpdGggZ2V0YnVsaydzOiBtYWtlIGl0IG5vdCBzZXQgUkVUUlkgaWYgaXRzIGdvaW5nIHRvIGJlIG91dCBvZiBzY29wZSBuZXh0IHRpbWUgYXJvdW5kIHN0aWxsICg+IG1heGNvbCkKCjIwMDQtMDQtMDEgMDk6MTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gVmFyaW91cyBwYXRjaGVzIHRvIGZpeCBpdGVyYXRvciBwcm9ibGVtcyB3aXRoIG11bHRpcGxlIHZhcmJpbmRzLgoKMjAwNC0wMy0zMSAxMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBQcm9wZXJseSBzZXQgdGhlIGF1dG9fbmV4dCBmbGFnLgoKMjAwNC0wMy0zMCAyMToyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBBIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBnZXR0YWJsZSB0aGF0IHVzZXMgYmV0dGVyIHN0cnVjdHVyZWQgR0VUTkVYVAogICBwYWNrZXRzIGZvciBmYXN0ZXIgcmV0cmlldmFsIGFjcm9zcyBzbG93IGxpbmtzLgogICAgIC0gZ2V0YnVsayBub3QgeWV0IHVzZWQsIGJ1dCBzaG91bGQgYmUuCgoyMDA0LTAzLTMwIDIxOjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSBtaW5vciBjaGFuZ2VzIHRvIHRoZSBjdnMyY2wgY29tbWFuZCBsaW5lIGZsYWdzCgoyMDA0LTAzLTMwIDIxOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3lzdGVtLmMsIGhyX3N5c3RlbS5oOgoKICAgY2hhbmdlIHNldF9zb2xhcmlzX3RpbWUgdG8gbnNfc2V0X3RpbWUgYW5kIGVuYWJsZSBpdCBvbiBhbnkKICAgYXJjaGl0ZWN0dXJlIHRoYXQgc3VwcG9ydHMgbWt0aW1lKCkgYW5kIHN0aW1lKCkKCjIwMDQtMDMtMzAgMjE6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIHN0aW1lIGZ1bmN0aW9ucwoKMjAwNC0wMy0zMCAyMToxNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gdW5kZWYgc3NpemVfdAoKMjAwNC0wMy0zMCAxNzowNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcmVtb3ZlIGNvbW1lbnRlZCBhbmQgdW51c2VkIHZhcmlhYmxlcy4gZmxhZyBzdGF0aWMgdmFyaWFibGUgYXMgcHJvYmxlbSBmb3IgdGhyZWFkcy4KCjIwMDQtMDMtMzAgMTY6NTYgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBtaWxkbHkgZW5mb3JjZSBydW5uaW5nIGZyb20gYmFzZSBzb3VyY2UgZGlyZWN0b3J5LgoKMjAwNC0wMy0zMCAxNjo1MyAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmg6CgogICBpbml0IGV4YW1wbGVzIG1vZHVsZXMKCjIwMDQtMDMtMzAgMTA6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgaW5jbHVkZSBwcmV2aW91c2x5LWJyb2tlbiB0ZXN0cyBhZ2FpbgoKMjAwNC0wMy0zMCAxMDo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggYSByZWFsbHkgb2xkIGFuZCBhbm5veWluZyBidWc6IHVzZSBzZXRfYm9vbGVhbiBpbnN0ZWFkIG9mIHRvZ2dsZV9ib29sZWFuIGZvciB0ZWxsaW5nIHRoZSBsaWJyYXJ5IHdoZW4gdG8gcmVwbGFjZSBvbGQgTUlCcyB3aGlsZSBwYXJzaW5nLiAgQWZmZWN0ZWQgYSBidW5jaCBvZiBzdHVmZiBpbiBvZGQgd2F5cy4KCjIwMDQtMDMtMzAgMDU6MDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTmV3IGxvZ2dpbmcgb3B0aW9uICctTG4nIHRvIGV4cGxpY2l0bHkgdHVybiBvZmYgbG9nZ2luZwoKMjAwNC0wMy0yOSAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliLmgsIGlwLWZvcndhcmQtbWliLmg6CgogICBjb25maWctcmVxdWlyZSBoZWFkZXJzCgoyMDA0LTAzLTI5IDIwOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9kZWZhdWx0LXRhYmxlLWlmVGFibGUubTJkLAogICAgIGlmVGFibGUvaWZUYWJsZS5jLCBpZlRhYmxlL2lmVGFibGUuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgKLCBpZlhUYWJsZS9kZWZhdWx0LXRhYmxlLWlmWFRhYmxlLm0yZCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZS5jLCBpZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIG5ldyBpbXBsZW1lbnRhdGlvbnMgb2YgaWZUYWJsZSBhbmQgaWZYVGFibGUsIGJhc2VkIG9uIGdlbmVyYXRlZCBjb2RlIGZyb20KICAgbWliMmMgTUZEICsgY29udGFpbmVyLWNhY2hlZCBjb25mIGZpbGVzCgoyMDA0LTAzLTI5IDE2OjI4ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IHNwZWxsIEFja25vd2xlZGdlbWVudHMsIGFkZCBibGFuayBiZWZvcmUgPWN1dCBzbyB0aGF0IGl0IHdpbGwgYmUgcGFyc2VkIGNvcnJlY3RseS4KCjIwMDQtMDMtMjkgMTU6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgdW51c2VkIHZhcnMKCjIwMDQtMDMtMjkgMTU6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdHdlYWsgY29tbWVudAoKMjAwNC0wMy0yOSAxNTozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgc2xpZ2h0IHJlLW9yZzsgaW5jbHVkZSAoY29tbWVudGVkIG91dCkgZ251IG1ha2Ugc3R1ZmYKCjIwMDQtMDMtMjkgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKTsgdXNlIHVudXNlZCB2YXJzOyBhbGxvdyB1c2VyIHRvIHBhc3MgZXhpc3RpbmcgZGF0YQogICBwdHIgd2hlbiBjcmVhdGluZyByb3cgY29udGV4dDsgc2V0IHZhbF9sZW4gdG8gYnVmIHNpemUgaWZmIG5vdCBhbHJlYWR5IHNldAoKMjAwNC0wMy0yOSAxNTozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1kYXRhLWdldC5tMmMKOgoKICAgbW92ZSB0YWJsZSBpbmRleCBmdW5jdGlvbnMgdG8gZGF0YS1nZXQ7IGluY2x1ZGUgZGF0YV9hY2Nlc3MgaGVhZGVyCgoyMDA0LTAzLTI5IDE1OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaToKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpOyB0d2VhayBtMmNfcHJvY2VzaW5nIHR5cGU7IHJlbW92ZSB1bnVzZWQgdmFyCgoyMDA0LTAzLTI5IDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYzoKCiAgIHR3ZWFrIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDMtMjkgMTU6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICByZXdvcmsgZGF0YV9jb250ZXh0IHNvIHdlIGRvbid0IHVzZSBhIHR5cGVkZWYgdG8gYSBwb2ludGVyCiAgIChlLmcuIHR5cGVkZWYgeCogeF9kYXRhKTsgaW5jbHVkZSBtaWJfbW9kdWxlcyBoZWFkZXI7IHR3ZWFrIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDMtMjkgMTU6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpCgoyMDA0LTAzLTI5IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbWFrZSBwYXJzZV9vbmVfb2lkX2luZGV4IHByb3Blcmx5IGRlY29kZSBJUCBhZGRyZXNzZXMgaW4gdGhlIHJpZ2h0IGJ5dGUgb3JkZXIuCgoyMDA0LTAzLTI5IDEyOjU4ICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGluaXQgZXhhbXBsZXMgbW9kdWxlcwoKMjAwNC0wMy0yOSAwOToxOSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwKICAgICBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXA6CgogICBwYXRjaCBbOTE4ODM4XSB0ZXN0IGFnZW50eCB1c2luZyBUQ1Agc29ja2V0cyAtIGlmZiB0cmFuc3BvcnQgbm90ICJ1bml4IgoKMjAwNC0wMy0yOSAwNzo1NCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvNS4xLjEgKG1vdmUgdmFyIGRlY2xzIHRvIHRvcCBvZiBmdW5jdGlvbmFsIGJsb2NrKQoKMjAwNC0wMy0yNiAwODo0MSAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCAjOTIwMjM0IHRvIHN0YXJ0IHByb2dyYW1zIGluIG1pbmltaXplZCB3aW5kb3cgKG1pbmd3IG9ubHkpLgoKMjAwNC0wMy0yNiAwODowMyAgc2xpZgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIHBhdGNoIHRvIGZpeCBbOTIxNDIzXSBpbnN0YWxsIHRlc3Qgc2VxdWVuY2Ugbm90IHJpZ2h0IGZvciBwZXJsIGJ1aWxkCgoyMDA0LTAzLTI2IDA3OjUzICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM5MDE0MzQgdG9zb2NrMi5zaCAtLSB1c2UgV2luc29jayAyLnggZm9yIFdpbmRvd3Mgc29ja2V0IGxpYnJhcnkKCjIwMDQtMDMtMjIgMTU6MzcgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZml4IHBhdGggZm9yIGNsZWFudXAgb2YgdXBsb2FkZWQgdGFyYmFsbAoKMjAwNC0wMy0yMiAxMzo0NCAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG1ha2VfaW5kZXgucGwsIG1hbl9zZWN0aW9ucy50eHQKOgoKICAgbWFuL2luZGV4Lmh0bWwgZ2VuZXJhdGlvbiBzdHVmZgoKMjAwNC0wMy0yMCAyMTo0MyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbmV3ZXIgbWFuMmh0bWwgdXNhZ2UKCjIwMDQtMDMtMjAgMTA6MDIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaDoKCiAgIHBhdGNoIFs5MTkxMzJdIHRlc3Qgc3RvcCBiZWZvcmUgZmluaXNoIGlzIHN1cGVyZmx1b3VzCgoyMDA0LTAzLTE5IDE2OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBQYXJ0IG9mIHBhdGNoIDkxNzcyNiB0byBmaXggYSBmZXcgd2luZG93cyBjb25maWcgcHJvYmxlbXMuCgoyMDA0LTAzLTE5IDE2OjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOiBbIDkxODgyOCBdIGNvbmRpdGlvbmFsIHNraXAgSFVQIHRlc3QKCjIwMDQtMDMtMTkgMTU6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazogWyA5MTg5NDggXSBmaXggY3lnd2luIGNvbmZpZyBwcm9ibGVtCgoyMDA0LTAzLTE5IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIEFkZGVkIGEgbWlzc2luZyBwcm90b3R5cGU6IG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9zcGlubG9jawoKMjAwNC0wMy0xOSAwODoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIE1pc3NlZCBhIEFFUzEyOCAtPiBBRVMgY29udmVyc2lvbi4KCjIwMDQtMDMtMTkgMDM6MDAgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEJyaWVmIGRlc2NyaXB0aW9uIG9mIGFkZGluZyBXaW4zMiBJUHY2IHRyYW5zcG9ydCBzdXBwb3J0LgoKMjAwNC0wMy0xOCAxODozMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTE2XSBtaW5vciBkaWZmIGluIGludm9rZWQgbG9nCgoyMDA0LTAzLTE4IDE1OjQ0ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoXzkxNTE3OC5yZWR1eCB0byBmaW5pc2ggdGhlIHNlY29uZCBwYXJ0IG9mIHRoYXQgcGF0Y2guCgoyMDA0LTAzLTE4IDA4OjUxICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgYXBwbHkgcGF0Y2ggWzkxODgyNF0gZml4IHByb3h5IHRlc3RzCgoyMDA0LTAzLTE4IDA3OjA1ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogY3lnd2luLmgsIG1pbmd3MzIuaDoKCiAgIHBhdGNoIFs5MTc2NDldIGZpbmQgdWludDMyX3QgaW4gd2luMzItZ2NjIGJ1aWxkIGVudmlyb25tZW50cwoKMjAwNC0wMy0xNiAxMzowNSAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtZXJnZSBjb25maWd1cmUgc3Vic3RpdHV0ZWQgc3JzL29icyBkZWYgdy9wcmV2aW91cyBsaW5lLCB0byBhdm9pZCBoYXZpbmcgYQogICBjb250aW51YXRpb24gbGluZSBmb2xsb3dlZCBieSBhIGJsYW5rIGxpbmU7CiAgIGZpeGVzIGZvciBidWlsZGluZyBvdXRzaWRlIG9mIHNvdXJjZSBkaXIgKHJlb3JkZXIgaW5jbHVkZSBpbiBDUFBGTEFHUyBzbyB0aGF0CiAgIHJlbGF0aXZlIGRpcnMgY29tZSBiZWZvcmUgc3JjZGlycykKCjIwMDQtMDMtMTYgMDc6NDkgIHNsaWYKCiAgICogd2luMzIvOiBidWlsZC5iYXQsIGJ1aWxkLnBsOgoKICAgc3luY2ggd2l0aCB3b3JraW5nIHZlcnNpb24sIGRlbHRhIGluc3RhbGwgYmFzZSwgb2YgY291cnNlLgoKMjAwNC0wMy0xNiAwNjo1MyAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBhZGQgdHlwZWRlZiBmb3IgdWludDMyX3QgLS0gYWJzZW50IGZyb20gTVNWUwoKMjAwNC0wMy0xNiAwNToxNSAgc2xpZgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLmluLCBpbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIHBhcnRpYWwgZml4IGZvciBidWcgOTE1MTc4OiBhZGp1c3QgdG8gYWNjb21tb2RhdGUgJ21ha2UgdGVzdCcgdmVyaWZpY2F0aW9uLgoKMjAwNC0wMy0xNSAxNjo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrOgoKICAgUGF0Y2ggZnJvbSBCcnVjZSBTaGF3OiBbIDg5NDcxMSBdIFNvbGFyaXMgZGlzayB0ZXN0IGZhaWxzIG9uIHNvbWUgT1MncyBbc2Vjb25kIGZpeCB0byBoaXMgcHJldmlvdXMgcGF0Y2ggZm9yIGV2ZW4gYmV0dGVyIHN1cHBvcnRdCgoyMDA0LTAzLTE1IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBCdWcvcGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODE1MzYxIF0gb3ZlcnJpZGUgdG9rZW4gaW4gc25tcGQuY29uZiBkb2VzIG5vdCBhbGxvdyBzbm1wc2V0IG9uIE9JRCBbcmVhbGx5LCB0aGlzIGp1c3QgcmV0dXJucyBwcm9wZXIgZXJyb3IgY29kZXMgZnJvbSBzeXN0ZW1fbWliIHZhcmlhYmxlc10KCjIwMDQtMDMtMTUgMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEJ1Zy9wYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MTUzMzMgXSBzbm1wdmFjbSBhcHAgbm90IHdvcmtpbmcgd2l0aCBTTk1QIHYxIFsgcmVhbGx5IGp1c3QgZml4aW5nIG1pYiBlcnJvciBjb2RlcyByZW1lbWJlcmVkIGluIHNubXBfYWdlbnQuY10KCjIwMDQtMDMtMTUgMTU6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jOgoKICAgQnVnL1BhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgwOTI4MiBdIG5ldHNubXBfbW9kZV9lbmRfY2FsbF9hZGRfbW9kZV9jYWxsYmFjayBjYWxsZWQgcmVwZWF0ZWRseQoKMjAwNC0wMy0xNSAxNTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MDg4ODEgXSBMb2cgYSBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIG1lc3NhZ2Ugd2hlbiBhdXRoZW50aWNhdGlvbiBmYWlscy4KCjIwMDQtMDMtMTUgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODA3MzMzIF0gNjQgYml0IGFnZW50IHJldHVybnMgaW5jb3JyZWN0IHZhbHVlcyBmb3IgSXBBZGRyZXNzCgoyMDA0LTAzLTE1IDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgZGVmYXVsdC10YWJsZS1pcENpZHJSb3V0ZVRhYmxlLm0yZCwgaXBDaWRyUm91dGVUYWJsZS5jCiwgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oCiwgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHJlLWltcGxlbWVudCBleGlzdGluZyBpcENpZHJSb3V0ZVRhYmxlIGZ1bmN0aW9uYWxpdHkgdy9NRkQgaGVscGVyCiAgIChpLmUuIHJlYWQtb25seSBzdXBwb3J0OyB1c2UgdmFyX3JvdXRlIGZ1bmN0aW9uIHRvIGdldCBkYXRhKQoKMjAwNC0wMy0xNSAxMjoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHR3ZWFrcyBmb3Igcm93LWNyZWF0aW9uIGNhc2UKCjIwMDQtMDMtMTUgMTI6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBkZWZhdWx0IHRvIGluY29uc2lzdGVudE5hbWUgaW5zdGVhZCBvZiBub0NyZWF0aW9uCgoyMDA0LTAzLTE1IDA2OjI3ICBkdHMxMgoKICAgKiB3aW4zMi9idWlsZC5wbDoKCiAgIFR3ZWFrIHRoZSBvcHRpb24gcHJvbXB0IHNsaWdodGx5LgogICAoRGF2ZSdzIGJlaW5nIHBpY2t5IGFnYWluISkKCjIwMDQtMDMtMTUgMDY6MjAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBMaXN0ZW4gb24gcG9ydCAxNjIgKHJhdGhlciB0aGFuIDE2MSkgaWYgYSAoYmFyZSkgaW50ZXJmYWNlCiAgIGFkZHJlc3MgaXMgc3BlY2lmaWVkLgoKMjAwNC0wMy0xMyAyMjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIG51bGwgZnJlZSdkIHBvaW50ZXIgKGJldHRlciBzYWZlIHRoYW4gc29ycnkpCgoyMDA0LTAzLTEzIDIxOjU5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcGx1ZyBtZW1vcnkgbGVhawoKMjAwNC0wMy0xMyAxOToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oOgoKICAgZml4IGZvciBjb21waWxpbmcgdy9kbWFsbG9jCgoyMDA0LTAzLTEzIDA2OjQwICBzbGlmCgogICAqIHdpbjMyL2J1aWxkLmJhdDoKCiAgIHNldCB0ZW1wIHZhciBlbXB0eSB0byByZW1vdmUgZnJvbSBlbnYKCjIwMDQtMDMtMTIgMTU6NTIgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjbGVhbiB1cCBiYXNlIHBvb3AuCgoyMDA0LTAzLTEyIDEzOjA3ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvYnVpbGQuYmF0OgoKICAgZG9jIGNoYW5nZSBmb3IgcGF0Y2ggOTEyNDQ3CgoyMDA0LTAzLTEyIDEyOjEzICBzbGlmCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoWzkxNTE3OF0gdG8gZml4IE1pbkdXIChNU1lTKSBtYWtlIHRlc3QgZnJlZXplcwoKMjAwNC0wMy0xMiAxMToyOSAgc2xpZgoKICAgKiB3aW4zMi86IE1ha2VmaWxlLWFwcHMuaW4sIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wZC9NYWtlZmlsZS5pbiwKICAgICBzbm1wZHNkay9NYWtlZmlsZS5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgICAgc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgbW9kaWZ5IHBhdGNoWzkxMjQ0N10gdG8gdXNlIGNvcnJlY3Qgd2luc29jayBsaWJyYXJ5CgoyMDA0LTAzLTEyIDExOjE2ICBzbGlmCgogICAqIHdpbjMyLzogQ29uZmlndXJlLCBNYWtlZmlsZS1hcHBzLmluLCBNYWtlZmlsZS5pbgosIGJ1aWxkLmJhdCwgYnVpbGQucGwsIGxpYmFnZW50L01ha2VmaWxlLmluCiwgbGliaGVscGVycy9NYWtlZmlsZS5pbiwgbGlic25tcC9NYWtlZmlsZS5pbiwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBuZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4KLCBzbm1wZC9NYWtlZmlsZS5pbiwgc25tcGRzZGsvTWFrZWZpbGUuaW4sCiAgICAgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIGFwcGx5IHBhdGNoIFs5MTI0NDddIFdpbjMyIE1TVkMgTWFrZWZpbGUgc3lzdGVtCgoyMDA0LTAzLTEwIDE5OjI0ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBhZ2dyZXNzaXZlIHNlYXJjaCBmb3IgZXhlY3V0YWJsZXMgYmVsb3cgdGhlIGJhc2UgZGlyZWN0b3J5LgoKMjAwNC0wMy0xMCAxOToxNSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZG9uJ3Qgc2V0IGdsb2JhbCBzbm1wX2Vycm5vOyBkbyBwcm92aWRlIHVuZGVmIFVTRV9PUEVOU1NMOwogICAgcmVwbGFjZSBORVRTTk1QX05PX0RMTCB3aXRoIE5FVFNOTVBfVVNFX0RMTDsKICAgIGRvY3VtZW50IHRoZSBjaGFuZ2UuCgoyMDA0LTAzLTEwIDE5OjA5ICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludm9rZSBzbm1wZCwgc25tcHRyYXBkIHdpdGggbm9uLWRlcHJlY2F0ZWQgcGFyYW1ldGVycyBmb3IgUElEIGFuZCBsb2dmaWxlLgoKMjAwNC0wMy0xMCAxNTowOSAgc2xpZgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBmaXggc2lnbmVkIG1pc21hdGNoIHdoZW4gdGVzdGluZyBwcm9wZXIgbGVuZ3RoIG9mIGtleWVkIGhhc2guCgoyMDA0LTAzLTEwIDE1OjAzICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBtb2RzIGZvciBidWlsZGluZyB3aW4zMiB3aXRoIE9wZW5TU0wgc3VwcG9ydC4KCjIwMDQtMDMtMTAgMDg6MjMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgcGVyIEFsZXhCIC0gY2hhbmdlIGluc3RydWN0aW9ucyB0byB1c2UgTWluR1cgZGV2ZWxvcGVyJ3MgcmVjb21tZW5kZWQgT3BlblNTTC4KCjIwMDQtMDMtMTAgMDc6MjEgIGR0czEyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBVc2UgdGhlIHNhbWUgdGVzdGluZyBwb3J0cyBhcyB0aGUgbWFpbiBhZ2VudCB0ZXN0IHN1aXRlCiAgIChzb21ld2hhdCBsZXNzIGxpa2VseSB0byBjbGFzaCB3aXRoIG90aGVyIHNlcnZpY2VzKQoKMjAwNC0wMy0xMCAwNzowOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgRG9jdW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgIm9wdGlvbmFsIiBjb25maWcgZmlsZXMgdmlhIC1jCgoyMDA0LTAzLTEwIDA1OjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBSZXRyeSB1bmZ1bGZpbGxlZCBHRVRORVhUIHJlcXVlc3RzIHRoYXQgc2ltcGx5IGhhdmVuJ3QgYmVlbiBhdHRlbXB0ZWQKICAgKGUuZy4gZHVlIHRvIGEgbWlzc2luZyBjb2x1bW4gb2JqZWN0KSwgYnV0IG5vdCBvbmVzIHRoYXQgaGF2ZSBiZWVuCiAgIGV4cGxpY2l0bHkgbWFya2VkIGFzIGZhaWxlZCAoZS5nLiBhdCB0aGUgZW5kIG9mIHRoZSB0YWJsZSkuCgogICBJJ20gbm90IDEwMCUgY29udmluY2VkIHRoaXMgaXMgY29ycmVjdCwgYnV0IGl0IHNlZW1zIHRvIGhhdmUgdGhlCiAgIHJpZ2h0IGVmZmVjdCBmb3IgYm90aCAndGFibGVfZGF0YScgYW5kICd0YWJsZV9kYXRhc2V0JyBiYXNlZCBtb2R1bGVzLgoKMjAwNC0wMy0xMCAwNDo1MiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBDaGVjayBmb3IgcHJvYmxlbXMgd2l0aCBhbGwgb2YgdGhlIHJlcXVlc3RlZCB2YXJiaW5kcwogICAobm90IGp1c3QgdGhlIGZpcnN0IG9uZSksIGFuZCBoYW5kbGUgJ25vU3VjaE9iamVjdCcgZXhjZXB0aW9ucy4KICAgW1Rob3VnaCBpbiBmYWN0LCB0aGlzIGNvZGUgaXNuJ3QgYWN0dWFsbHkgdXNlZF0KCjIwMDQtMDMtMDkgMTI6NTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wMy0wOSAxMTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgZGVidWdnaW5nIGlzbid0IHBsYXRmb3JtIHNwZWNpZmljCgoyMDA0LTAzLTA5IDA3OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgc2VwYXJhdGUgdHJhcGxpYnMgZnJvbSBhZ2VudCBsaWJzIGZvciBkZXBlbmRlbmNpZXMKCjIwMDQtMDMtMDkgMDc6MTIgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBtYWtlIFNOTVBDT05GUEFUSCBjb25zaXN0ZW50IHdpdGggb3RoZXIgcGxhdGZvcm1zICgiJHByZWZpeC9ldGMvc25tcCIpCgoyMDA0LTAzLTA5IDA3OjA5ICBzbGlmCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgYWRkIGNvbW1lbnQgTVRDUklUSUNBTF9SRVNPVVJDRSB0byB1c2Ugb2Ygc25tcF9lcnJubyBpbiB0aHJlZSBwbGFjZXMuCgoyMDA0LTAzLTA5IDA1OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBIYW5kbGUgbXVsdGlwbGUgIm9wdGlvbmFsIGNvbmZpZyIgZmlsZXMuCgoyMDA0LTAzLTA5IDA0OjI0ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgbWFrZSBTTk1QQ09ORlBBVEggY29uc2lzdGVudCB3aXRoIG90aGVyIHBsYXRmb3JtcyAoIiRwcmVmaXgvZXRjL3NubXAiKQoKMjAwNC0wMy0wOCAyMDoyNiAgcnN0b3J5CgogICAqIFJFQURNRS5haXg6CgogICBuZXcgZmlsZQoKMjAwNC0wMy0wOCAxNzo1MyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvU05NUC9SRUFETUU6CgogICBwYXRjaCBbOTExNDM5XSBVcGRhdGVzIHRvIHRoZSBSRUFETUUud2luMzIgYW5kIFNOTVAgUkVBRE1FIGZvciBXaW4zMgoKMjAwNC0wMy0wOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBpZmRlZiBvdXQgcm91dGluZXMgdGhhdCBvbmx5IGF2YWlsYWJsZSB3aGVuIGFnZW50eCBpcyBnb2luZyB0byBiZSB1c2VkLgoKMjAwNC0wMy0wOCAxNjowOSAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICB1c2UgYXBwIGxpYnMgZm9yIHNubXB0cmFwZCB3aGVuIGFnZW50IGRpc2FibGVkOyBtb3ZlIHdyYXBsaWIgc3Vic3RpdHV0aW9uIHRvCiAgIGEgbW9yZSByZWFzb25hYmxlIHBsYWNlLiBzbm1wdHJhcGQgc3RpbGwgZG9lc24ndCBsaW5rLCBidXQgaXQncyBjbG9zZXIuLi4KCjIwMDQtMDMtMDggMTQ6MzggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBuZXcgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTAzLTA4IDE0OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIGNvbW1lbnRzIGluIGhhaXJ5IGFnZW50IG1vZHVsZSBwcm9jZXNzaW5nOyBkb24ndCBtdW5nZSBkZWZhdWx0IG1pYnMgdW50aWwKICAgd2UgYXJlIGRvbid0IGJ1aWxkaW5nIGl0OyB0d2Vha3MgZm9yIC0tZGlzYWJsZS1hZ2VudDogdXNlIHNhbWUgZGVmYXVsdCBtaWJzZXQKICAgYXMgLS1lbmFibGUtbWluaS1hZ2VudCwgZG9uJ3QgdG8gaGFpcnkgYWdlbnQgbW9kdWxlIHByb2Nlc3NpbmcKCjIwMDQtMDMtMDggMTM6MjQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IHN5bnRheCBlcnJvcnMuCgoyMDA0LTAzLTA4IDEyOjQyICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgcmVtb3ZlIHVudXNlZCBsb2NhbCB2YXIgY2FjaGVfdGltZW91dAoKMjAwNC0wMy0wOCAxMjo0MSAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICB1c2UgcXVvdGVzIHRvIHNlYXJjaCBsb2NhbCBpbmNsdWRlIHBhdGhzIGZvciBwZXJsX3NubXB0cmFwZC5oCgoyMDA0LTAzLTA4IDExOjQzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHBhdGNoIFs5MTA5MDNdIFVwZGF0ZXMgdG8gdGhlIFJFQURNRS53aW4zMiBmb3IgR0NDCgoyMDA0LTAzLTA4IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBQYXRjaCBmcm9tIEFuZHJldyBIb29kIHRvIGluY2x1ZGUgcHJvcGVyIGhlYWRlcnMgYW5kIHt9IHdyYXAgcGVybCBzcGVjaWFsIGRlY2xycwoKMjAwNC0wMy0wOCAwODo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIHVzZSBkZWZhdWx0IGxpYnJhcnkgdmFsdWVzIGluc3RlYWQgb2YgaGFyZC1jb2RlZCBkZWZhdWx0cyBmb3IgYXV0aC9wcml2IHByb3RvY29scwoKMjAwNC0wMy0wNiAxOToyMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgcHJvdG90eXBlCgoyMDA0LTAzLTA2IDE5OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdHdlYWsgcGF0dGVybiBmb3IgbmV3IGRveHlnZW4gY29uZiBmaWxlcwoKMjAwNC0wMy0wNiAxOToxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIGFkZCBwcm90b3R5cGUgdG8gZ2V0IHNwYXJzZSB0YWJsZSBtaWIgaGFuZGxlciwgbmV0c25tcF90YWJsZV9uZXh0X2NvbHVtbjsKICAgcmVuYW1lIG5ldHNubXBfcmVnaXN0ZXJfc3BhcnNlX3RhYmxlIHRvIG5ldHNubXBfc3BhcnNlX3RhYmxlX3JlZ2lzdGVyOyBhZGQKICAgbmV0c25tcF9zcGFyc2VfdGFibGVfaGFuZGxlcl9nZXQKCjIwMDQtMDMtMDYgMTk6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtYWtlIHNwYXJzZSB0YWJsZSBoZWxwZXIgc3RhdGljOyBhZGQgbWV0aG9kIHRvIGdldCBzcGFyc2UgdGFibGUgbWliIGhhbmRsZXI7CiAgIHdhcm4gaWYgc3BhcnNlIHRhYmxlIGhhbmRsZXIgaGFzIGEgbmV4dCBwb2ludGVyLiB1c2UgbmV3IGhhbmRsZXIgY3VzdG9tIGJpdAogICB0byBvbmx5IGxvZyBvbmNlLCBpZiBwb3NzaWJsZS4KCjIwMDQtMDMtMDYgMTg6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHJlc2VydmVyIGxhc3QgNCBiaXRzIG9mIGZsYWcgZm9yIGhhbmRsZXIgdXNlCgoyMDA0LTAzLTA2IDE3OjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRveHlnZW4ubTJjLCBtZmQtdG9wLm0yYzoKCiAgIGdlbmVyYXRlIHNpbXBseSBkb3h5Z2VuLmNvbmYgZmlsZQoKMjAwNC0wMy0wNSAyMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGaXhlZCB0aGUgYWRkX3JvdyB0b2tlbiBieSBzb3J0aW5nIGluY29taW5nIGNvbHVtbnMgZnJvbSB0aGUgcGFyc2VyCgoyMDA0LTAzLTA1IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgdXBkYXRlcyBmcm9tIG9sZGVyIGNoYW5nZXM7IHN0aWxsIHNsaWdodGx5IG91dCBvZiBkYXRlCgoyMDA0LTAzLTA1IDE3OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgZG9uJ3QgcmVjdXJzZSBvbiBkaWZmOyBjcCBkZWZhdWx0cyBpbnN0ZWFkIG9mIG1vdmluZwoKMjAwNC0wMy0wNSAxNzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBuZXcgdmFyIGZvciBwYXJhbSBjYWxscyBieSB2YWwKCjIwMDQtMDMtMDUgMTc6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGZpeCBldmFsdWF0aW9uIHByb2JsZW0gaW4gZ2VuZXJhdGVkIGRlZmF1bHQgZmlsZQoKMjAwNC0wMy0wNSAxNjo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgbW92ZSBpbmRleGVzX3NldCwgaW5pdF9kYXRhIGludG8gZGF0YV9hY2Nlc3MubTJjCgoyMDA0LTAzLTA1IDE2OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZTsgYWRkIGV4YW1wbGUgY29kZTsgbW92ZSBhcyBtdWNoIGNhY2hlIHN0dWZmIGFzCiAgIHBvc3NpYmxlIGludG8gaW50ZXJmYWNlCgoyMDA0LTAzLTA1IDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBicmVhayBzZXRfaW5kZXhlcyBpbnRvIDIgcGllY2VzCgoyMDA0LTAzLTA1IDE2OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyByZS1hZGQgcHJlL3Bvc3Q7IGRlZmluZSBNRkQgcmV0dXJuIGNvZGUgaGVyZSwgc2luY2UKICAgdGFibGVfbWZkIG5vIGxvbmdlciBleGlzdHM7CgoyMDA0LTAzLTA1IDE2OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBmaXggc3ludGF4IGVycm9yCgoyMDA0LTAzLTA1IDE2OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyByZS1hZGQgcHJlL3Bvc3Qgd3JhcHBlcjsgY2FsbCBuZXcgcm93X3ByZXAKCjIwMDQtMDMtMDUgMTY6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtZGF0YS1zZXQubTJjCjoKCiAgIHR3ZWFrcyB0byBjb21tZW50cyBmb3IgYmV0dGVyIGRveHlnZW4gZG9jczsgdXNlIG11bHRpcGxlIHBhc3NlcyB0byBrZWVwIGhlYWRlcgogICBhbmQgc291cmNlIGluIHNhbWUgaW5jbHVkZQoKMjAwNC0wMy0wNSAxNjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBtb3YgaW5pdF9kYXRhIGhlcmU7IGFkZCByb3dfcHJlcAoKMjAwNC0wMy0wNSAxNjo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgICAgZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmksIG5vZGUtZ2V0Lm0yaSwKICAgICBub2RlLXNldC5tMmksIHBhcmVudC1zZXQubTJpOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VjZSBpbiBzYW1lIGluY2x1ZGUKCjIwMDQtMDMtMDUgMTY6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIGFkZCBmbGFnczsgYWRkIGV4cGlyZWQ7IG9ubHkgdXNlIGRlZmF1bHQgdGltZW91dCB3aGVuIGNhY2hlIGNyZWF0ZWQ7CgoyMDA0LTAzLTA1IDE2OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgaGF2ZSBtaWJfdG9fYXNuX3R5cGUgcmV0dXJuIEFTTl9VTlNJR05FRCBpbnN0ZWFkIG9mIEFTTl9VSU5URUdFUiwKICAgd2hpY2ggaXMgdGhlIHByb3BlciBkYXRhIHR5cGUuCgoyMDA0LTAzLTA1IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFJlbW92ZSB0aGUgc3BhcnNlIHRhYmxlIHJlZ2lzdHJhdGlvbiBhbmQgcmVnaXN0ZXIgaXQgYXMgYSBub3JtYWwgdGFibGUuCiAgICAgMSkgdGhlIGhpZ2hlciB0YWJsZSBoYW5kbGVyIGFsd2F5cyBjYWxscyB0aGUgc3BhcnNlIHRhYmxlIGhhbmRsZXIKICAgICAgICBhbnl3YXksIHNvIGl0IHdvdWxkIGJlIHJlZHVuZGFudCBldmVuIGlmIGl0IGRpZCB3b3JrLgogICAgIDIpIFRoZSBzcGFyc2UgdGFibGUgaGFuZGxlciBkb2Vzbid0IGNhbGwgYW55IGNoaWxkcmVuLCBhbmQgZG9lc24ndAogICAgICAgIHNldCB0aGUgYXV0b25leHQgZmxhZyBzbyBpdHMgYWx3YXkgdGhlIGVuZCBvZiB0aGUgbGluZSAodGhpcyB0b29rCiAgICAgICAgbWUgYW4gaG91ciB0byBmaW5kKS4KCjIwMDQtMDMtMDUgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2hhbmdlIHRoZSBoZWxwIGluZm9ybWF0aW9uIGZvciBhZGRfcm93IHRvIG1lbnRpb24gdGhhdCB5b3UgbmVlZCB0aGUKICAgdGFibGUgbmFtZSB5b3Ugd2FudCB0byBhZGQgdGhlIGRhdGEgdG8uCgoyMDA0LTAzLTA1IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfYWdlbnQuYzoKCiAgIEZpeCB0aGUgb2lkIHJlZ2lzdHJhdGlvbiBjYWNoZSBub3QgYmVpbmcgaW52YWxpZGF0ZWQgcHJvcGVybHkuICBCdWcgIzkwMDk2NwoKMjAwNC0wMy0wNSAxMToyOSAgc2xpZgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IFs3MDYwOTNdIGJ5IG5vdCBkZWZpbmluZyB2YXJpYWJsZXMgYSBzZWNvbmQgdGltZS4KCjIwMDQtMDMtMDUgMTA6MDMgIHNsaWYKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTUFOSUZFU1Q6CgogICBxdWVsbCBtYW5pZmVzdCBjaGVjayBlcnJvcnMgKG1ha2VmaWxlLCBwbV90b19ibGliLCAuYyBmaWxlKS4KCjIwMDQtMDMtMDUgMTA6MDMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oOgoKICAgdXNlIG9mIFNFVF9TTk1QX0VSUk5PIHJlcXVpcmVzIC0tIGVuYWJsZSBETEwgZGVjb3JhdGlvbiBmb3Igc25tcF9lcnJubwoKMjAwNC0wMy0wNSAxMDowMiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICBhZGQgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IgbmV0c25tcF90YWJsZV9uZXh0X2NvbHVtbgoKMjAwNC0wMy0wNSAxMDowMCAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGFkZCBzeW1ib2wgdXNtQUVTUHJpdlByb3RvY29sCgoyMDA0LTAzLTA1IDA4OjIzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaDoKCiAgIGZpeCBtYWNybyBuYW1lLCBhcyBub3RlZCBvbiB1c2VycwoKMjAwNC0wMy0wNSAwNTo1MSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmM6CgogICByZW1vdmUgdW51c2VkIHZhciAnc3BhY2UnCgoyMDA0LTAzLTA1IDA1OjMwICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zeXN0ZW0uYywKICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcAosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLAogICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAosIGNvbmZpZ3VyZToKCiAgIHBhdGNoIFs5MDE0MzRdIGFwcGx5IHVzZVdpbnNvY2syLnNoIFt1bmRvIGJ5IHVzaW5nIHVzZVdpbnNvY2sxLnNoXQoKMjAwNC0wMy0wNCAyMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgaW5pdGlhbGl6ZSB0aGUgdGFibGVfZGF0YXNldCBoZWxwZXIgKGFnYWluLi4uICBJICprbm93KiBpdCB3YXMgaW5pdGlhbGl6ZWQgaW4gdGhlIHBhc3QuICBXaGF0IGhhcHBlbmVkPykKCjIwMDQtMDMtMDQgMjI6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0dXJuIG9mZiBjYWNoaW5nIHVudGlsIHJlYWwgZml4IGZvdW5kIGZvciBidWcgOTAwOTY3OiBhZ2VudHgsIGNhY2hpbmcKCjIwMDQtMDMtMDQgMjA6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICpmaW5hbGx5KiBmaXggYWdlbnR4IGhhbmcgd2hlbiBtYXN0ZXIgZGlzYXBwZWFycwoKMjAwNC0wMy0wNCAxNTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGZpeCBleGVjZml4IGZvciByZWxvY2F0YWJsZSBleGVjczsgYWRkIGZpeCBjbWQgdG8gcmVsb2NhdGFibGUgdHJlZQoKMjAwNC0wMy0wNCAwOTo0NSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlcyBhYm91dCB2ZXJzaW9uIG51bWJlciBjaGFuZ2luZwoKMjAwNC0wMy0wNCAwOTo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIGZpeCBidWlsZGluZyB0cmFwZCB3aGVuIHRoZSBhZ2VudCBpc24ndCBiZWluZyBidWlsdAoKMjAwNC0wMy0wNCAwOToxMiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEw6CgogICB1cGRhdGUgdG8gdGhlIHdheSB3ZSBub3JtYWxseSBkbyBwZXJsIE1ha2VmaWxlcywgd2hpY2ggaXMgbm90IG5vcm1hbC4KCjIwMDQtMDMtMDQgMDg6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnhzLCBUcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzLAogICAgIGFnZW50L2FnZW50LnhzOgoKICAgLSBjb252ZXJ0IGZwcmludGYoc3RkZXJyIHRvIHNubXBfbG9nKExPR19FUlIKCjIwMDQtMDMtMDQgMDg6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIGZpeCBzeW50YXggZXJyb3JzCgoyMDA0LTAzLTA0IDA1OjM5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwgY29uZmlndXJlCjoKCiAgIHBhdGNoIFs5MDk0NTldIENvbmZpZ3VyZSBwYXRjaCB0byBhbGxvdyBmb3IgV2luMzIgb2JqZWN0cy4KCjIwMDQtMDMtMDMgMjI6MTEgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBjaGFuZ2UgInByb2dyYX4xIiB0byAiUHJvZ3JhbSBGaWxlcyIgdG8gYXZvaWQgcHJvYmxlbSB3aXRoIERPUyBuYW1lIHdhcnBpbmcuCgoyMDA0LTAzLTAzIDIxOjIyICBzbGlmCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIFNOTVAvUkVBRE1FLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIHBhdGNoIFs5MDYyNzRdIFdpbjMyIFBlcmwgY29tcGlsZSB3aXRoIHJlbGVhc2UvZGVidWcgcGF0aCBjaGFuZ2VzCgoyMDA0LTAzLTAzIDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBzcGVjaWZ5IG1vZGUgaW4gcmVnaW5mbwoKMjAwNC0wMy0wMyAxMzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gbWFrZSB0aGUgZmlsZSB0b2tlbiBhY2NlcHQgYSBkZWZhdWx0IHNpemUgbGlrZSB0aGUgZG9jcyBzYXkgaXQgd2lsbC4KCjIwMDQtMDMtMDMgMTI6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjb21tZW50IG91dCBwZHUgZG91YmxlIGZyZWUgY2hlY2sgdGlsIGJldHRlciAobm9uLWxlYWtpbmcpIHNvbHV0aW9uIGZvdW5kCgoyMDA0LTAzLTAzIDA4OjU2ICByc3RvcnkKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMzoKCiAgIHJlbW92ZSBtYW4gcGFnZSBmb3IgcmVtb3ZlZCBzdHJ1Y3R1cmUKCjIwMDQtMDMtMDMgMDg6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBuZXcgdXRpbGl0eSB0byByZWdlbmVyYXRlIG1pYjJjIGNvZGUsIHByZXNlcnZpbmcgZXhpc3RpbmcgY3VzdG9taXphdGlvbnMKCjIwMDQtMDMtMDMgMDc6NTIgIHNsaWYKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHRhYmxlX21mZCByZW1vdmVkIC0tIGRvbnQgYnVpbGQgaXQuCgoyMDA0LTAzLTAzIDA3OjQ2ICBzbGlmCgogICAqIHdpbjMyLzogaW5zdGFsbC1uZXQtc25tcC5iYXQsIG5tYWtlcGVybC5iYXQ6CgogICBwZXIgQWxleEIgLSBhZGQgIi1oZWxwIiBkZXNjcmlwdGlvbnMuIGNyZWF0ZSBCQVNFL3RlbXAgc3ViZGlyLgoKMjAwNC0wMy0wMiAxMzo0NSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcGF0Y2ggWzc1Mzg5NF0gIGNhdGNoIFNJR1hGU1ogdy9vIHN0cnNpZ25hbAoKMjAwNC0wMy0wMiAxMjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgdG9wIGxldmVsIG1mZCBjb25mIGZpbGUKCjIwMDQtMDMtMDIgMDQ6MTggIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHBhdGNoIFs3NTM4OTRdICBjYXRjaCBTSUdYRlNaLCBsb2cgbWVzc2FnZSBhbmQgZXhpdCwgZG8gbm90IGNvcmVkdW1wCgoyMDA0LTAzLTAyIDA0OjA2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGZpeCBbNzcxMzE1XSBBZ2VudCBjb3JlZHVtcHMgZHVyaW5nIHNodXRkb3duCgoyMDA0LTAzLTAxIDIxOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgUEMgcG9saWNlIC0gdG9uZSBkb3duIGVycm9yIG1lc3NhZ2UKCjIwMDQtMDMtMDEgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmM6CgogICBjaGFuZ2UgZ2xvYmFscyB0byB1c2UgZnVuY3Rpb25zIHRvIGFjY2VzcyBjYWNoZV9oYW5kbGVyIHZhcnMsIG9yIHVzZSBuZXcKICAgZGF0YXN0b3JlIHZhbHVlcwoKMjAwNC0wMy0wMSAyMTowMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5Lmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50OyByZW1vdmUgbm9hbGxvYyBwcm90b3R5cGUKCjIwMDQtMDMtMDEgMjE6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBmaXggdHlwbyBpbiBjb21tZW50OyBhZGQgTk9fQ0FDSElORyBhbmQgQ0FDSEVfVElNRU9VVAoKMjAwNC0wMy0wMSAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgbmV3IGJhYnlfc3RlcHMgYWNjZXNzIG11bHRpcGxleGVyIGhhbmRsZXI7IG1ha2UgYWN0dWFsIGhlbHBlciByb3V0aW5lcyBzdGF0aWM7CiAgIHJlbmFtZSBmdW5jdGlvbnMsIGRlZmluZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5CgoyMDA0LTAzLTAxIDIwOjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgY2FsbHMgdG8gaW5pdF9hZ2VudAoKMjAwNC0wMy0wMSAyMDo1MiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBzZXQgZGVmYXVsdCBhZ2VudCBjYWNoZSB0aW1lb3V0OyBkZWJ1ZyBtc2cgZm9yIGVycm5vIG9uIHNlbGVjdCBlcnJvcgoKMjAwNC0wMy0wMSAyMDo1MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1lcmdlIGNvbW1vbiBjYXNlIGluIHN3aXRjaAoKMjAwNC0wMy0wMSAyMDo1MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgcmVwbGFjZSBnbG9iYWxzIHcvbG9jYWwgc3RhdGljICsgYWNjZXNzIGZ1bmN0aW9uOyB1c2UgZGF0YXN0b3JlIGZvciBjYWNoaW5nCiAgIGVuYWJsZWQsIGNhY2hlIHRpbWVvdXQ7IHRlc3QgY2FjaGVfZnJlZSBmb3IgTlVMTCBiZWZvcmUgY2FsbGluZyBpdDsgZG9uJ3QKICAgdXNlIGdvdG87IHVzZSBuZXcgYXV0by1uZXh0IGZ1bmN0aW9uYWxpdHkgdG8gY2FsbCBjaGlsZCBoYW5kbGVyczsgbmV3CiAgIGNhY2hlX2NyZWF0ZSwgY2FjaGVfaGFuZGxlcl9yZWdpc3RlciwgY2FjaGVfZmluZF9ieV9vaWQ7IGRvbid0IHJlbG9hZCBjYWNoZQogICBtb3JlIHRoYW4gb25jZSBwZXIgcmVxdWVzdDsgbm90ZSBwb3NzaWJpbGl0eSBvZiBjYWNoZSBiZWluZyBmcmVlJ2QgbWlkLQogICByZXF1ZXN0IGZvciBkZWxlZ2F0ZWQgcmVxdWVzdHMsIHcvcHJvcG9zZWQgc29sdXRpb24KCjIwMDQtMDMtMDEgMjA6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGUuYywgaWZUYWJsZS5oOgoKICAgc3dpdGNoIGZyb20gaXRlcmF0b3IgdG8gbmV3IHRhYmxlX2NvbnRhaW5lciBoYW5kbGVyLgoKMjAwNC0wMy0wMSAxOTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIHJ1biB0aHJvdWdoIGluZGVudAoKMjAwNC0wMy0wMSAwNjowNiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgdW5kbyBwYXRjaCBhdCByNS4zIC0tIHJlc3RvcmUgKDE2KSBpbiB0ZXN0IHRvIGdldCBvbmx5IG5vbi1yZXBlYXRlcnMKCjIwMDQtMDItMjkgMjE6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgbW92ZSBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3cgaGVyZSBmcm9tIHRhYmxlLmMKCjIwMDQtMDItMjkgMjE6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBhZGQgdGFibGVfY29udGFpbmVyOyByZW1vdmUgdGFibGVfbWZkCgoyMDA0LTAyLTI5IDIxOjA3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBtZmQgZGVwZW5kZW5jaWVzCgoyMDA0LTAyLTI5IDIwOjU0ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgYWRkIGZsYWdzIGZpZWxkIHRvIG1pYiBoYW5kbGVyIHN0cnVjdHVyZTsgbmV3IGhhbmRsZXIgQVVUT19ORVhUIGZsYWdzIGZvcgogICBoYW5kbGVycyB0aGF0IGRvbid0IHdhbnQgdG8gYm90aGVyIHdpdGggY2FsbGluZyBzdWItaGFuZGxlcnMgKGFsc28gcmVkdWNlcwogICBzdGFjayBkZXB0aCk7IG5ldyBuZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NyZWF0ZSB3aGljaCByZXNpZ2VycyBleGlzdGluZwogICBoYW5kbGVyOyBsb2cgd2FybmluZyBmb3IgaGFuZGxlcnMgcmVnaXN0ZXJpbmcgdy9ubyBtb2RlczsgaGFuZGxlIGluamVjdGlvbiB0byBhCiAgIHJlZ2lzdHJhdGlvbiB3L291dCBhIGhhbmRsZXI7IG5ldyBtb2RlcyBIQU5ETEVSX0NBTl9OT1RfQ1JFQVRFLAogICBIQU5ETEVSX0NBTl9TRVRfT05MWTsgb3IgaW4gSEFORExFUl9DQU5fTk9UX0NSRUFURSB3LyBERUZBVUxUOyBhZGQgdm9pZCBwb2ludGVyCiAgIHRvIGhhbmRsZXIgcmVnaXN0cmF0aW9uCgoyMDA0LTAyLTI5IDIwOjM5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgdGFibGVfbWZkLmggZGVwZW5kZW5jaWVzCgoyMDA0LTAyLTI5IDIwOjI0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgc3luYyBjbG9zZXN0X2NvbHVtbiB3L2ZpeGVzIGluIDUtMS1wYXRjaGVzOyBjaGVjayBmb3IgZXhpc3RpbmcgdGJsX3JlcV9pbmZvIGluCiAgIHJlcXVlc3RzOyBjYWxsIHNwYXJzZSB0YWJsZSBoYW5kbGVyIGFmdGVyIG5vcm1hbCB0YWJsZSBwcm9jZXNzaW5nOyBtb3ZlCiAgIG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdyB0byB0YWJsZV9jb250YWluZXIuYwoKMjAwNC0wMi0yOSAxNzoxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBwcm90b3R5cGUgZm9yIGhhbmRsZXIgZ2V0OyBtYWtlIGlubGluZSBmdW5jIHN0YXRpYyBpbmxpbmUKCjIwMDQtMDItMjkgMTc6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgb3V0IHcvdGhlIG9sZCwgaW4gdy90aGUgbmV3IChyZW1vdmUgbWZkIGhlbHBlciwgYWRkIHRhYmxlX2NvbnRhaW5lcikKCjIwMDQtMDItMjkgMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICByZW1vdmUgbWZkIGhlbHBlcjsgbWZkIGNvbmYgZmlsZXMgbm93IHVzZXIgbmV3IHRhYmxlX2NvbnRhaW5lciBoZWxwZXIKCjIwMDQtMDItMjkgMTc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIGdyb3VwaW5nIG9wdGlvbiAodXNlciBjYW4gdXNlIHJvd19tZXJnZSBpbnN0ZWFkKTsgbmV3IGZ1bmN0aW9uIGdvIGdldAogICBoYW5kbGVyIHcvb3V0IHJlZ2lzdGVyOyBicmVhayBjb21wbGV4IGNvbmRpdGlvbiBpbnRvIHNpbXBsZXIgY29uZGl0aW9uYWxzIHNvCiAgIGJyZWFrcG9pbnRzIGNhbiBiZSBzZXQgb24gY29uZGl0aW9uOyBkb24ndCBjYWxsIGxvd2VyIGhhbmRsZXJzIGlmIG5vIHJlcXVlc3RzCiAgIG5lZWQgcHJvY2Vzc2luZwoKMjAwNC0wMi0yOSAxNzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfaXRlcmF0b3IuYywgY29udGFpbmVyX2xpc3Rfc3NsbC5jCiwgY29udGFpbmVyX251bGwuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBjb250YWluZXIgY2xlYXIKCjIwMDQtMDItMjkgMTY6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgZW5hYmxlIGRsbW9kIHN1cHBvcnQgaWYgSEFWRV9MSUJETAoKMjAwNC0wMi0yOSAxNjoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNhdGNoIGJhZCBzaXplIGZvciBmaXhlZCBzaXplIHR5cGVzCgoyMDA0LTAyLTI5IDE2OjIwICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBuZXcgZnVuY3Rpb24gdG8gc3VwcG9ydCBDT05UQUlORVJfQ0xFQVI7IG1ha2Ugc29tZSBmdW5jdGlvbnMgc3RhdGljIGlubGluZQoKMjAwNC0wMi0yOSAxNjoxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBmaXggaW5zZXJ0L3JlbW92ZS9mcmVlIGlubGluZXMgdG8gcHJvcGVybHkgZGVhbCB3aXRoIG11bHRpcGxlIGluZGV4ZXM7IGFkZCBuZXcKICAgQ09OVEFJTkVSX0NMRUFSIG1hY3JvL2NhbGxiYWNrOyBhZGQgbm90ZXMgb24gZnJlZWluZyByZXR1cm5lZCBhcnJheSBmcm9tCiAgIGdldF9zdWJzZXQKCjIwMDQtMDItMjkgMTY6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXNlIG1mZCBlcnJvciBpbnN0ZWFkIG9mIHNubXAgZXJyb3IKCjIwMDQtMDItMjkgMTY6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgc2V0dXAgc2l6ZSBuYW1lcyBiZWZvcmUgaW5jbHVkaW5nIGdlbmVyaWMgZmlsZQoKMjAwNC0wMi0yOSAxNjowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHJlbW92ZSBleHRyYW5lb3VzIGVuZDsgYWRkIGNvbW1lbnRzCgoyMDA0LTAyLTI5IDE2OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGFkZCBleGl0KCkgY2FsbAoKMjAwNC0wMi0yOSAxNjowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgdHdlYWtzIHRvIHN1cHBvcnQgbmV3IGdlbmVyYXRlIGZld2VyIGZpbGVzIGZsYWcKCjIwMDQtMDItMjkgMTU6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZzsgdXNlIGdsb2FibCB0YWJsZSBvaWQvc2l6ZSB2YXI7CiAgIHN3aXRjaCBtZmQgd3JhcHBlciBmdW5jdGlvbnMgdG8gdXNlIHN0YW5kYXJkIG5ldyBhcGkgcGFyYW1ldGVyczsgbmV3IG9wdGlvbmFsCiAgIGNhY2hlOyB1c2UgdHdvIG5ldyBoZWxwZXJzOiBuZXRzbm1wX2JhYnlfc3RlcHNfYWNjZXNzX211bHRpcGxleGVyIGFuZAogICBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9oYW5kbGVyOyBsb29rIGZvciBkYXRhL3B1dCBjcmVhdGVkIHJvdyBkYXRhIGluIHJlcXVlc3QKICAgYWxhIGNvbnRhaW5lciB0YWJsZSBoYW5kbGVyIGZvciBsb3dlciBoYW5kbGVyczsgdHdlYWtzIGZvciB1c2luZyBuZXcgc2luZ2xlCiAgIGZpbGUgYWNjZXNzIG1ldGhvZHMKCjIwMDQtMDItMjkgMTU6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZzsgbWFrZSB0YWJsZSBvaWQvc2l6ZSBhIGdsb2JhbAogICB2YXI7IHN3aXRjaCBtZmQgd3JhcHBlciBmdW5jdGlvbnMgdG8gdXNlIHN0YW5kYXJkIG5ldyBhcGkgcGFyYW1ldGVycwoKMjAwNC0wMi0yOSAxNTo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC1kYXRhLXNldC5tMmMKOgoKICAgdXNlIHJlcG9ydCBwcm9ncmVzcyBmbGFnOyB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZwoKMjAwNC0wMi0yOSAxNTozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgdHdlYWtzIHRvIHVzZSBuZXcgc2luZ2xlIGZpbGUgYWNjZXNzIG1ldGhvZHMgKHByb2Nlc3NpbmcgdHlwZSBmbGFnKQoKMjAwNC0wMi0yOSAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgdGVzdCBuZXcgZmxhZyBmb3IgbGVzcyB2ZXJib3NlIG91dHB1dDsgZG9jdW1lbnQgdHJhbnNpZW50IHZhbHVlcyBpbiBjb21tZW50cwogICBhbmQgZ2VuZXJhdGVkIHRhYmxlIGRlZmF1bHQgZmlsZTsgbWFrZSBzdXJlIG1mZCBkZWZhdWx0cyBoYXZlIGJlZW4gcHJvY2Vzc2VkCgoyMDA0LTAyLTI5IDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGRlZmF1bHQgdG8gbm8gbWFwcGluZywgZXhjZXB0IGZvciBub2RlcyB3L2VudW1zOyB1c2UgcGFyYW0gbmFtZXMgZm9yIG5vZGUKICAgbmFtZXM7IHByb3Blcmx5IGVzY2FwZSBsZW4gdmFyIG5hbWUKCjIwMDQtMDItMjkgMTU6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgdHdlYWsgb3JkZXIgb2YgdGVzdGluZyBjb25kaXRpb25hbHMKCjIwMDQtMDItMjkgMTU6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICBjb21tZW50IHR3ZWFrczsgbWFrZSBzdXJlIHRvIGNsZWFyIHRtcCB2YXIgYmVmb3JlIHVzZQoKMjAwNC0wMi0yOSAxNTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtZW51bXMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICB0d2Vha3MgdG8gc3VwcG9ydCBnZW5lcmF0aW5nIGZld2VyIGZpbGVzCgoyMDA0LTAyLTI5IDE1OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtY29uc3RhbnRzLm0yYzoKCiAgIG5ldyBmaWxlIHRvIGdlbmVyYXRlIGNvbWJpbmVkIG9pZC9lbnVtIGhlYWRlcgoKMjAwNC0wMi0yOSAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgaW5pdCBuZXcgZmxhZyBmb3IgY3JlYXRpbmcgZmV3ZXIgZmlsZXM7IGluaXQgbmV3IGZsYWcgZm9yIHByb2Nlc3NpbmcgcGFydHMKICAgb2YgZmlsZXMgKHVudGlsIEkgY2FuIGZpZ3VyZSBvdXQgaWYgSSBjYW4gY29udmVydCB0byBuZXcgZGVmaW5lL2NhbGxkZWZpbmUpCgoyMDA0LTAyLTI5IDE0OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIG5ldyBhY2Nlc3MgbWV0aG9kIGRlZmluZXMKCjIwMDQtMDItMjkgMTQ6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpCiwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1zZXR1cC5tMmk6CgogICByZW1vdmUgZmlsZXMgIChtZXJnZWQgaW50IG1mZC1hY2Nlc3MtdW5kb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkpCgoyMDA0LTAyLTI5IDE0OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgbWVyZ2UgbXVsdGlwbGUgYWNjZXNzIGZpbGVzIGludG8gb25lIGZpbGUKCjIwMDQtMDItMjcgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gZml4IHRoZSBjYXNlIHdoZXJlIGluY29taW5nIGdldGJ1bGtzIHdpdGggbm8gcmVwZWF0aW5nIHZhcmJpbmRzIGlzIHJlY2VpdmVkLgoKMjAwNC0wMi0yNyAxNTowNCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHBlcmwvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvT0lEL01ha2VmaWxlLlBMLAogICAgIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgcGF0Y2ggWyA5MDU0NjUgXSBNaW5HVyBQZXJsIG1vZHVsZSBjb21waWxpbmcgd2l0aCBBY3RpdmVTdGF0ZSBQZXJsCgoyMDA0LTAyLTI3IDA3OjE4ICBzbGlmCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGNvbnN0cnVjdCBpbnN0YWxsIHRyZWUgc2ltaWxhciB0byBpbnN0YWxsIHRyZWUgdGhhdCBnY2MgYnVpbGRzIHVzZS4KCjIwMDQtMDItMjcgMDY6MDUgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBidWlsZCBNU1ZTIHJlbGVhc2UgYW5kIGRlYnVnIHZlcnNpb25zIGhhdmluZyB0aGUgc2FtZSBuYW1lLgoKMjAwNC0wMi0yNyAwNTo0MiAgc2xpZgoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGJ1aWxkIE1TVlMgcmVsZWFzZSBhbmQgZGVidWcgdmVyc2lvbnMgaGF2aW5nIHRoZSBzYW1lIG5hbWUuCgoyMDA0LTAyLTI3IDA1OjExICBzbGlmCgogICAqIHdpbjMyLzogaW5zdGFsbC1uZXQtc25tcC5iYXQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGNvbnN0cnVjdCBpbnN0YWxsIHRyZWUgc2ltaWxhciB0byBpbnN0YWxsIHRyZWUgdGhhdCBnY2MgYnVpbGRzIHVzZS4KCjIwMDQtMDItMjcgMDQ6NTAgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGVuYWJsZSBnY2MgYnVpbGRzIG9mIFdpbmRvd3Mgc2VydmljZSBjb2RlIGZvciB0aGUgYWdlbnQuCgoyMDA0LTAyLTI2IDE3OjIwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBzZXR0aW5nIG9mIE5FVFNOTVBfRFNfTElCX0FQUFRZUEUuCgoyMDA0LTAyLTI2IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNvbW1vbi1pemUgbG9vcCBhbmQgc2F2aW5nIG9mIHN0YXRlIHZhcmlhYmxlcyB0aHJvdWdoIGEgY3JlYXRpdmUgdXNlCiAgIG9mIHJlZmVyZW5jZXMuCgoyMDA0LTAyLTI2IDE2OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHN1cHBvcnQgZm9yIEBkZWZpbmUgc2VjdGlvbnMgd2hpY2ggY2FuIGJlIGxhdGVyIHJlZmVycmVkIHRvIGJ5IEBjYWxsZGVmaW5lCgoyMDA0LTAyLTI2IDE2OjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBkb3h5Z2VuIGNvbmZpZyBmaWxlLgogICAtIFRyYXBSZWNldmllciBwZXJsIG1vZC4KCjIwMDQtMDItMjYgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgRG9uJ3QgY2FsbCAnVENQX0NvdW50X0Nvbm5lY3Rpb25zJyBpZiB0aGUgdGNwVGFibGUgbW9kdWxlIGlzbid0IGluY2x1ZGVkLgoKMjAwNC0wMi0yNiAwNjozMiAgZHRzMTIKCiAgICogRkFROgoKICAgTWlub3Igd29yZHNtaXRoaW5nIHR3ZWFrcyB0byBCcnVjZSdzIEZBUSBjaGFuZ2VzLgogICBHb3NoLCBidXQgRGF2ZSdzIGEgcGlja3kgYnVnZ2VyIGF0IHRpbWVzLgogICBOZXZlciBtaW5kLCBwZXJoYXBzIGlmIHlvdSBsZXQgaGltIGFtdXNlIGhpbXNlbGYgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiwKICAgeW91IG1pZ2h0IGJlIGFibGUgdG8ga2VlcCBoaW0gYXdheSBmcm9tIG1vcmUgY3JpdGljYWwgYml0cyBvZiB0aGUgcHJvamVjdC4uLi4KCjIwMDQtMDItMjUgMjM6NDcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CgogICByZW1vdmUgQ1IgYWNjaWRlbnRhbGx5IGluc2VydGVkIHByZXZpb3VzbHkuCgoyMDA0LTAyLTI1IDIxOjQyICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICB1c2UgUkZDIDMzMzAgcGVybWl0dGVkIGFkZHJlc3MgZm9yIHRoaXMgaG9zdCB3aGVuIGxvb2tpbmcgaW4gZ2V0X215YWRkcgoKMjAwNC0wMi0yNSAxNjo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBFbmFibGUgQUVTIHN1cHBvcnQgZm9yIHRoZSBTTk1QIG1vZHVsZSAoY2FuJ3QgYmVsaWV2ZSBpdCdzIGJlZW4gbWlzc2luZykKCjIwMDQtMDItMjUgMTQ6NDYgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgdW5uZWVkZWQgd29ya2Fyb3VuZCBwYXRjaCBbIDg0MDgzMCBdIFNOTVAueHMgRnJlZSB0byB3cm9uZyBwb29sIGNyYXNoIG9uIFdpbmRvd3MKCjIwMDQtMDItMjUgMTM6MDYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1NOTVAvUkVBRE1FOgoKICAgcGF0Y2ggWzkwMTk0NF0gd2luMzIgZG9jIHVwZGF0ZXMgZnJvbSBBbGV4IEJ1cmdlcgoKMjAwNC0wMi0yNCAxMDozOSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICB1c2Ugd2luc29jayBnZXRob3N0YnluYW1lLCBnZXRzZXJ2YnluYW1lIG9uIG1pbmd3MzIuCgoyMDA0LTAyLTI0IDA5OjU4ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgcGVyIEJlcm5oYXJkIFBlbno6IGRlZXAgY29weSBvZiBpbmNsdWRlIHRyZWUKCjIwMDQtMDItMjQgMDY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgYnVnIDkwMjcyMiBdIEFibGUgdG8gZGVsZXRlIHZpZXcgZXZlbiB3aGVuIHN0b3JhZ2UgdHlwZSA9IHBlcm1hbmVudAoKMjAwNC0wMi0yNCAwNTo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgcGF0Y2ggWzkwMzQyNF0gcGVyIEFuZHkgU21pdGg6IGlmZGVmIHdpbjMyIGZpeCBmb3IgdGNwVGFibGUuYyAoY3lnd2luKQoKMjAwNC0wMi0yMyAxNjozMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgUGF0Y2ggIzkwMTQ2MCBmcm9tIEJydWNlIFNoYXc6IHVwZGF0aW5nIG1pc2MgRkFRIGluZm9ybWF0aW9uCgoyMDA0LTAyLTIzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgdXBkYXRlZCBwZXJsIGJ1aWxkIGluZm8KCjIwMDQtMDItMjMgMTY6MTMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICBwYXRjaCAjOTAxMzc1IGZyb20gQnJ1Y2UgU2hhdzogc29tZSBpbmZvcm1hdGlvbiBvbiBJTlNUQUxMIGlzIHN0YWxlCgoyMDA0LTAyLTIzIDEzOjI5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdW5kbyBwcmV2aW91cyBwYXRjaCAtLSBubyBzZW1pLWNvbG9ucyBpbiBERUZBVUxUX01JQntGSUxFUyxESVJTfQoKMjAwNC0wMi0yMyAxMDo1NyAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGNvbnZlcnQgb3RoZXIgbGlzdC1vcmllbnRlZCBzZXR0aW5ncyB0byBjb25zaWRlciBzZW1pLWNvbG9uIGRlbGltaXRlciBmb3IgbWluZ3czMgoKMjAwNC0wMi0yMiAwOTo0OCAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIHBlciBBbGV4QjogYWxzbyBpbnN0YWxsIHNubXBjb25mIGZpbGVzCgoyMDA0LTAyLTIxIDEzOjU2ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgc25tcGxpYi90b29scy5jLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCB3aW4zMi9saWJzZGxsLmRzdzoKCiAgIEFwcGx5IHBhdGNoICM4OTg0NjQgdG8gZml4IGJ1Z3MgIzg5NjAzMCBhbmQgIzc3MzQxMgoKMjAwNC0wMi0yMCAwNzoxOCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBjb25maWd1cmU6CgogICBwZXIgQWxleEI6IGZpeCBERUZBVUxUX01JQlMgdG8gdXNlICc7JyBzZXBhcmF0b3Igb24gV2luMzIuCgoyMDA0LTAyLTE5IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFdob29wcy4gIFRoYXQgd291bGQgbm90IGhhdmUgd29ya2VkLiAgU2lsbHkgbWUuCgoyMDA0LTAyLTE5IDIwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIGNoZWNrIG51bWJlciBvZiBzdXBwb3J0IHByb2Nlc3NvcnMgcHJvcGVybHkKCjIwMDQtMDItMTkgMjA6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgWyA5MDAyNDQgXSBzdXBwb3J0IHVwIHRvIDMyIENQVXMgb24gbGludXggZnJvbSBNaWNoYWwgTHVjemFrCgoyMDA0LTAyLTE5IDE5OjQxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgIHNubXBOb3RpZnlUYWJsZS5oOgoKICAgZml4IGJ1ZyA4OTg1MDkgZnVuY3Rpb24gcG9pbnRlciBwcm90b3R5cGVzIGRlZmluZWQgdHdpY2UKCjIwMDQtMDItMTkgMTg6NTAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBhbGxvdyBET1Mgdm9sdW1lIG5hbWUgW0EtWl06IHRvIGJlZ2luIHRoZSBwYXRoIHNwZWMgZm9yIHByZWZpeGVzCgoyMDA0LTAyLTE5IDA5OjQxICBzbGlmCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBzcGVsbCBOU0NfRVhFQ19QUkVGSVgKCjIwMDQtMDItMTggMjM6MzUgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvbWlibG9hZC50OgoKICAgcGVyIEFsZXhCOiAtd2luMzIgc3VwcG9ydAoKMjAwNC0wMi0xOCAyMzozNSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgcGVyIEFsZXhCOgogICAtYWRkIFdpbjMyIHN1cHBvcnQgZm9yIHN0YXJ0aW5nIC8gc3RvcHBpbmcgc25tcGQgYW5kIHNubXB0cmFwZAogICAtYWxsb3cgc3BhY2VzIGluIHNubXB0ZXN0LmNtZCBmaWxlCgoyMDA0LTAyLTE4IDIzOjM0ICBzbGlmCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIC1tYWtlICRteSBvcHRzIGdsb2JhbCBzbyBpdCdzIHZpc2libGUgdG8gR2V0VGVzdEluZm8oKQogICAtcmUtd3JpdGUgd2luMzIgY29kZSBjcmVhdGUgc25tcHRlc3QuY21kIGZpbGUKCjIwMDQtMDItMTggMjM6MjcgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBub3RpZnkudDoKCiAgIHBlciBBbGV4QjogdGVzdCB0aGF0IHZhcmlhYmxlcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcgdGhlbS4KCjIwMDQtMDItMTggMjM6MTcgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBidWxrd2Fsay50OgoKICAgcGVyIEFsZXhCOiBkaXNhYmxlIGFzeW5jaCB0ZXN0cyB3aGVuIHJ1biBvbiB3aW4zMiBwbGF0Zm9ybS4KCjIwMDQtMDItMTggMjM6MDAgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBtaWJsb2FkLnQ6CgogICBwZXIgQWxleEI6IGFkZCBtaXNzaW5nIHNubXB0ZXN0X2NsZWFudXAgY2FsbAoKMjAwNC0wMi0xOCAyMjo0NSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9jb25mLnQ6CgogICBwZXIgQWxleEI6IHR5cG8gZml4ICJjb21waWxlZCB0aGUiCgoyMDA0LTAyLTE4IDIyOjQwICBzbGlmCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZnJvbSBBbGV4IEJ1cmdlcjogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgLU5FVC1TTk1QLUlOLVNPVVJDRSBjb21tYW5kIHBhcmFtLgoKMjAwNC0wMi0xOCAxMjozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYSB2My1zZWN1cml0eSBhdXRvLWJ1aWx0IGhlYWRlciBkdXJpbmcgZGlzdGNsZWFuCgoyMDA0LTAyLTE4IDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGRvY3VtZW50IC1DIG9wdGlvbiBpbiB1c2FnZQoKMjAwNC0wMi0xOCAxMTo1NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggcGF0aCBpbiB1c2FnZTsgdXNlIG5ldyBuc2ctc3VmZmljIGluIHVwbG9hZCBwYXRoCgoyMDA0LTAyLTE4IDExOjQwICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXNlIElOU1RBTExfQkFTRSAtcmVsYXRpdmUgbWt0ZW1wIGZpbGUgcGF0dGVybi4KCjIwMDQtMDItMTggMDk6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtYWtlICMgZXJyIGxpbmVzIHJlcG9ydGVkIGNvbmZpZ3VyYWJsZS4gZGVmYXVsdCB0byAyNQoKMjAwNC0wMi0xOCAwNjoxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gZm9yICdpbjZhZGRyX2FueScgdW5kZXIgV2luZG93cwogICAoQWx0aG91Z2ggdGhlcmUncyBhbiBleHRlcm5hbCBkZWNsYXJhdGlvbiBtZW50aW9uZWQgaW4KICAgIDx3czJ0Y3BpcC5oPiwgdGhlcmUgbm8gYWN0dWFsIHZhcmlhYmxlIGluIHRoZSBsaWJyYXJ5KQoKMjAwNC0wMi0xNyAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFrZW5vc3lzZGVwZW5kLnBsOgoKICAgcmVnZXhwIHRvdWNodXBzCgoyMDA0LTAyLTE3IDA3OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgYnVtcCBNQVhUQyB1cCB0byA0MDk2CgoyMDA0LTAyLTE3IDA3OjI1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBhcHBlbmQgc3VmZmljIHRvIGJ1aWxkIGRpciB3aGVuIGJ1aWxkaW5nIGRlZmF1bHQgYnVpbGQgZGlyOyByZW1vdmUKICAgc3lzdGVtIHNwZWNpZmljIHR3ZWFrcyBmb3Igc2YgY2YsIHRoZXkgc2hvdWxkIGdvIGluIH4vLnNubXAvbnNiLXJjCgoyMDA0LTAyLTE3IDA1OjU0ICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggZXJyb3IgYWZ0ZXIgY2hhbmdlIGZvciBGaXggWzgwMTkyOF0KCjIwMDQtMDItMTcgMDQ6MzkgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBbODAxOTI4XSB3cm9uZyBjYWxsIG9mIHN0cmxjcHkgaW4gdXB0aW1lX3N0cmluZwoKMjAwNC0wMi0xNyAwMzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBUd2VhayBJUHY2IHRyYW5zcG9ydHMgc28gdGhhdCB0aGV5IGNvbXBpbGUgdW5kZXIgV2luZG93cy4KCjIwMDQtMDItMTcgMDI6NDIgIGR0czEyCgogICAqIHNubXBsaWIvOiBpbmV0X250b3AuYywgaW5ldF9wdG9uLmM6CgogICBQcm92aWRlIGltcGxlbWVudGF0aW9ucyBvZiAnaW5ldF9udG9wJyBhbmQgJ2luZXRfcHRvbicgZm9yCiAgIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0gbmF0aXZlbHkuCgoyMDA0LTAyLTE3IDAyOjI5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEZpeCBbODk2NzkzXSBsb2FkYXZlLmMgaW5jbHVkZXMgc3lzL3N0YXQuaCB0d2ljZQoKMjAwNC0wMi0xNyAwMDo0NSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oOgoKICAgZml4IGJ1ZyA4OTg1MDkgZnVuY3Rpb24gcG9pbnRlciBwcm90b3R5cGVzIGRlZmluZWQgdHdpY2UKCjIwMDQtMDItMTYgMjE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlbW92ZWQgdW51c2VkIGZ1bmN0aW9uIGZyb20gbGFzdCBwYXRjaAoKMjAwNC0wMi0xNiAyMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsCiAgICAgdWNkLXNubXAvcHJvYy5jOgoKICAgcGF0Y2ggWyA4MzYzOTMgXSBNb3JlIHByb2MgaW1wcm92ZW1lbnRzIGZvciBMaW51eCBmcm9tIEhvd2FyZCBXaWxraW5zb24KCjIwMDQtMDItMTYgMTg6MjggIHNsaWYKCiAgICogd2luMzIvbm1ha2VwZXJsLmJhdDoKCiAgIG5vdGUgc3ViLWRpcmVjdG9yeSB3aGVyZSAibm1ha2UiIG91dHB1dCBmaWxlcyBhcmUgd3JpdHRlbi4KCjIwMDQtMDItMTYgMTU6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSRUFETUUsIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwKICAgICBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9TdmFjbWNvbmZpZywgdGVzdHMvU3Zhbnljb25maWcKLCB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsCiAgICAgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsCiwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwKICAgICB0ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdHMvVDAyMHNubXB2M2dldCwKICAgICB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAogICAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgICAgdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24KLCB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCwKICAgICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICAgIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RzL1QxMDBhZ2VudGh1cCwKICAgICB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0LAogICAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgICB0ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0cy9UMTMwc25tcHYxdmFjbWdldCwKICAgICB0ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsIHRlc3RzL1QxMzJzbm1wdjN2YWNtZ2V0LAogICAgIHRlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbAosIHRlc3RzL1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbDoKCiAgIFBhdGNoICM3MDI4MzUgKHBsdXMgdHdlYWtzKTogcGF0Y2ggdG8gZW5hYmxlIHRlc3QgY2FzZXMgcnVuIG9uIGRpZmZlcmVudCB0cmFuc3BvcnQgZG9tYWluIGZyb20gWGlhb2ZlbmcgTGluZwoKMjAwNC0wMi0xNiAxNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYzoKCiAgIEZpeCBidWcgWyA4OTY3NzcgXSBlcnJvcm1pYi5jIGluY2x1ZGVzIHN5cy9zdGF0L2ggdHdpY2UKCjIwMDQtMDItMTYgMTQ6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNC0wMi0xNiAxNDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBCdWcgWyA4OTc1NTAgXSBQZXJsIFNOTVAucG0gbWlzc2luZyBkb2N1bWVudGF0aW9uIGFuZCBhdHRhY2hlZCBwYXRjaCBmcm9tIEFsZXggQnVyZ2VyCgoyMDA0LTAyLTE2IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmYsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBQYXRjaDogWyA4MTkyNDEgXSBBZGQgdG8gdGhlIEFQSSBkb2N1bWVudGF0aW9uIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTE2IDExOjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUGF0Y2ggWyA4OTgxNjAgXSBTbm1wdGFibGUgbG9vcHMgaWYgdGFibGUgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbWliIGZyb20gQ3Jpc3BpbiBGbG93ZXJkYXkKCjIwMDQtMDItMTYgMTA6MzAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgbWFrZSBtZW51IHBhdGggdG8gcmVnaXN0ZXIgUFNESyBtb3JlIGNvbXBsZXRlLgoKMjAwNC0wMi0xNiAxMDowMSAgc2xpZgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICByZW1vdmUgcGxhdGZvcm0gU0RLIGhlYWRlciBTbm1wLmggZnJvbSBTT1VSQ0VTIGxpc3QuCgoyMDA0LTAyLTE2IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEZpeCBhIG1pc3NpbmcgdmFyaWFibGUgZnJvbSB0aGUgcHJldmlvdXMgcGF0Y2guCgoyMDA0LTAyLTE1IDE4OjE5ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgY29weSBkbGwgdG8gc3lzdGVtMzIgY2FjaGUKCjIwMDQtMDItMTUgMTU6NDcgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIHRoZSBwcm9qZWN0IGRlcGVuZGVuY2llcyBhcmUgbm90IHJlbGlhYmxlLiAgcmVtb3ZlIHRoZW0uCgoyMDA0LTAyLTE1IDEyOjAwICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIFhZWCBjb21tZW50czsgbm90ZSB0aGF0IHNubXBfaW5pdF9taWJfaW50ZXJuYWxzIGRvZXMgbm90aGluZy4KCjIwMDQtMDItMTUgMTA6MzkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggc3ludGF4IGVycm9yCgoyMDA0LTAyLTE1IDEwOjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIGFuZCBzb3VyY2UgbmV3IGNvbW1vbiBjb25maWcgZmlsZQoKMjAwNC0wMi0xNCAwOTo0MSAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3IgbGlic25tcCBwcm9qZWN0CgoyMDA0LTAyLTE0IDA2OjIwICBzbGlmCgogICAqIFJFQURNRToKCiAgIEFkZCBOb2FoIEZyaWVkbWFuLCBmaXhpbmcgYnVnIDg4NzI5MQoKMjAwNC0wMi0xNCAwMjo1MSAgc2xpZgoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBSZW1vdmUgZ2xvYmFsIGRlcGVuZGVuY3kgZm9yIGxpYnNubXAgcHJvamVjdCAobm90IG5lY2Vzc2FyeSkuCgoyMDA0LTAyLTEzIDE2OjAyICBzbGlmCgogICAqIHdpbjMyL25tYWtlcGVybC5iYXQ6CgogICBiZXR0ZXIgZXhwbGFuYXRvcnkgbWVzc2FnZXMsIGFuZCBpbXByb3ZlZCB0ZXN0IHJlc3VsdHMgY29sbGVjdGVkLgoKMjAwNC0wMi0xMyAxMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhdGNoIFsgODEyMDM0IF0gaXBBZEVudFJlYXNtTWF4U2l6ZSBkb2VzIG5vdCByZXR1cm4gZGF0YSBvbiBzbm1wZ2V0IGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEzIDEyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBBRVMgbm90ZSBvdXRwdXQgYnJva2VuIGJ5IGxhc3QgcGF0Y2gKCjIwMDQtMDItMTMgMTI6MTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvcGtjcy5jLAogICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIFBhdGNoIFsgODA3Mzc1IF0gYWRkIHN0YW5kYXJkIFBLQ1MjMTEgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIHVzbTogYWx0ZXJuYXRpdmUgc2VjdXJpdHkgbGlicmFyeSAob3BlbnNzbCBubyBsb25nZXIgbmVlZGVkIG9uIGZ1dHVyZSBzb2xhcmlzKSBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMyAxMTo1OSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBhcnQgb2YgcGF0Y2ggKHNvbWUgaGFkIGJlZW4gZG9uZSkgZm9yIFsgNzY3MzE2IF0gZml4IGhhbmRsaW5nIG9mIGF1Z21lbnRlZCB0YWJsZXMgaW4gcGVybCBtb2R1bGUgZnJvbSBSYW5keSBDb3VleQoKMjAwNC0wMi0xMyAxMTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBTZWNvbmQgcGFydCBvZiBkaXNraW8gbG9hZCBhdmVyYWdlIHBhdGNoCgoyMDA0LTAyLTEzIDExOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQKOgoKICAgcGF0Y2ggWyA3OTU0MjQgXSBkaXNraW9MQSAtIGRpc2sgbG9hZCBhdmVyYWdlIGZvciBGcmVlQlNEIChkZXZzdGF0KSBmcm9tIFJvamVyCgoyMDA0LTAyLTEzIDExOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHBhdGNoIFsgNzk5MDUwIF0gQUlYIHBhdGNoZXMgLSB1Y2Qtc25tcC9kaXNraW8gZnJvbSBNaWNoYWVsIEt1a2F0CgoyMDA0LTAyLTEzIDExOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaXNzZWQgYSBwb3J0aW9uIG9mIHBhdGNoICM4MTU0MzkgZml4aW5nIGF1dGggZmFpbHVyZSB0cmFwcy4gIHBhdGNoIGdvdCBjb25mdXNlZCBieSBwcmV2aW91c2x5IGV4aXN0aW5nIGNvZGUgYmVmb3JlLgoKMjAwNC0wMi0xMyAxMDo0OCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9uZSBsaW5lIGNoYW5nZSB0byBwcm9wZXJseSB0ZXJtaW5hdGUgYSBjb21tZW50IGluamVjdGVkIGJ5IHRoZSBwcmV2aW91cyBwYXRjaC4KCjIwMDQtMDItMTMgMTA6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIE5pY2sgQmFya2FzIHRvIHRoZSBSRUFETUUKCjIwMDQtMDItMTMgMTA6MzYgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBSZXBsYWNlIGdldF90cmVlX2hlYWQoKSBmb3IgcmVmZXJlbmNlcyB0byB2YXJpYWJsZXMgTWliIGFuZCB0cmVlX2hlYWQuCiAgIFJlbW92ZSBETExfSU1QT1JUIGxpbmVzLCBhbmQgQk9PVCBzZWN0aW9uLCBhcyB0aGV5IGFyZSBub3QgbmVlZGVkLgogICBNYXJrIHF1ZXN0aW9uYWJsZSBjb21tZW50ZWQgY29kZSB3aXRoIFhZWCBmb3IgcG9zc2libGUgcmVtb3ZhbC4KCjIwMDQtMDItMTMgMTA6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUGF0Y2ggWyA4OTU1MDkgXSBtZW1vcnkgaW5mbyBmcm9tIHVjZC1zbm1wIG1pYiBvbiBsaW51eCAyLjYgZnJvbSBOaWNrIEJhcmthcwoKMjAwNC0wMi0xMyAxMDoyMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrOgoKICAgUGF0Y2ggWyA4OTQ3MTEgXSBTb2xhcmlzIGRpc2sgdGVzdCBmYWlscyBvbiBzb21lIE9TJ3MgZnJvbSBCcnVjZSBTaGF3CgoyMDA0LTAyLTEzIDEwOjA1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvYXNuMS5jLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCBzbm1wbGliL2ludDY0LmM6CgogICBbIDg0OTE1OCBdIDUuMTogL2NvbnN0LyBmaXhlcyBmb3IgdGhlIEFQSSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsCgoyMDA0LTAyLTEyIDIwOjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBkZWZpbmVzCgoyMDA0LTAyLTEyIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBbIDgxNTQzOSBdIHNubWFnZW50IGRvZXMgbm90IHNlbmQgYXV0aCBmYWlsdXJlIHRyYXBzIGZvciB2MyBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMiAxNzowNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIHJlbW92ZSBjb3B5cmlnaHQgY29tbWVudCBhY2NpZGVudGljYWxseSBwbGFjZWQKCjIwMDQtMDItMTIgMTc6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBbIDgxMjAwNSBdIHNlZ21lbnRhdGlvbiBmYXVsdCBpbiBzbm1wdGFibGUKCjIwMDQtMDItMTIgMTY6NTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHBhdGNoIFsgODExMjc4IF0gbWFrZSBhZ2VudHggdWRwL3RjcCB0cmFuc3BvcnRzIGNvbmZpZ3VyYWJsZSBmcm9tIEJvYiBSb3dsYW5kcwoKMjAwNC0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFBhdGNoIFsgODA5NDM4IF0gRml4IHNldmVyYWwgcHJvYmxlbXMgd2l0aCBob3N0IHJlc291cmNlcyBNSUIgZnJvbSBCb2IgUm93bGFuZHMgKGZpeGVzIG11bHRpcGxlIGJ1Z3MpCgoyMDA0LTAyLTEyIDE1OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbm90ZSBhYm91dCBzbm1wdHJhcGQgcGVybAoKMjAwNC0wMi0xMiAxNDo0MSAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBBZGQgYSBzZWN0aW9uICJCdWlsZGluZyB3aXRoIE1pbkdXIgoKMjAwNC0wMi0xMiAxMTozNSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL25tYWtlcGVybC5iYXQ6CgogICBBZGQgaG93IHRvICh3aXRoIHNjcmlwdCkgZm9yIGJ1aWxkaW5nIFBlcmwgU05NUCBtb2R1bGVzIHVzaW5nIE1TVkMuCgoyMDA0LTAyLTEyIDA4OjM2ICBzbGlmCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBjcmVhdGUgc25tcGxpYnNkaXIgZm9yIHNubXBfcGVybF90cmFwZC5wbCwgYmVmb3JlIGluc3RhbGxpbmcgdGhlcmUuCgoyMDA0LTAyLTEyIDA4OjMxICBzbGlmCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwCiwgbGlic25tcC9saWJzbm1wLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwCiwgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AKLCBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgcmVtb3ZlIHVudXNlZCBjb21waWxlIGNvbnN0YW50IHRoYXQgU2xpZiBjcmVhdGVkIGR1cmluZyBoaXMgRExMIGV4cGVyaW1lbnRzLgoKMjAwNC0wMi0xMiAwNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIG5ldyB0YWJsZSBjb250YWluZXIgaGVscGVyCgoyMDA0LTAyLTEyIDA1OjMyICBzbGlmCgogICAqIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsCiAgICAgcGVybC9hZ2VudC9hZ2VudC54cywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgY2xlYW51cCBQZXJsIFNOTVAgbW9kdWxlIGJ1aWxkIHRocm91Z2ggdHlwZSBjYXN0aW5nIGFuZAogICByZW1vdmluZyB1bnVzZWQgdmFyaWFibGVzLgogICBGb3IgU05NUC54cywgdGhlcmUgd2FzIGEgbmFtZWQgdmFyaWFibGUgJ2Jlc3RfZ3Vlc3MnIHRoYXQgYmxvY2tlZAogICB0aGUgY2FsbGluZyBwYXJhbSBvZiAic25tcF9nZXRfdHlwZSIsIHJlbW92ZWQgd2l0aCB0aGlzIHVwZGF0ZS4KICAgVGhlIHdpbjMyIGNvbmZpZy5oIG5vIGxvbmdlciB0cmllcyB0byBkZWZpbmUgYmNvcHksYnplcm8sYmNtcCxzdHJjYXNlY21wLgoKMjAwNC0wMi0xMiAwMToyMiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgdXNlIGEgcmVhc29uYWJsZSB2YWx1ZSAoMSkgZm9yIG5vbi1yZXBlYXRlciBpbiBmaXJzdCBidWxrd2Fsay4KCjIwMDQtMDItMTIgMDA6MzIgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oIGJlZm9yZSB1c2luZyBIQVZFX1JFR0VYX0guCiAgIHJlcGxhY2UgY29tcHV0ZV9tYXRjaCB3aXRoIHRoZSBub24tcmVnZXggc2F2dnkgdmVyc2lvbiBmcm9tIHNubXBsaWIvcGFyc2UuYy4KICAgRmluYWxseSwgZGlzYWJsZSBXaW4zMiBETEwgZGVjb3JhdGlvbiwgYXMgRExMIGJ1aWxkIGlzIG5vdCBzdXBwb3J0ZWQuCgoyMDA0LTAyLTExIDIwOjU0ICBzbGlmCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIHNubXB0cmFwZCBidWlsZHMgdXNpbmcgdGhlIHNhbWUgcHJvamVjdCBmaWxlIGZvciBQU0RLIG9yIG5vbi1QU0RLCgoyMDA0LTAyLTExIDE4OjI2ICBzbGlmCgogICAqIHBlcmwvOiBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsCiAgICAgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgWyA4OTUzNjcgXSBXaW4zMiBQZXJsIGJ1aWxkIC1ORVQtU05NUC1QQVRIIGFuZCBwYXRocyB3aXRoIHNwYWNlcwoKMjAwNC0wMi0xMSAxNzo0MiAgc2xpZgoKICAgKiB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgd2luMzIvc25tcGRzZGsvc25tcGQuZHNwLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgbmV0c25tcG1pYnNzZGsubGliIHJlbmFtZWQgdG8gbmV0c25tcG1pYnMubGliCgoyMDA0LTAyLTExIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIERvIG5vdCBoYXZlIGdldHRhYmxlIHJldHVybiBoZXggZW5jb2RlZCBzdHJpbmdzIGlmIG5vdCBwcmludGFibGUuICBObwogICBvdGhlciBmdW5jdGlvbiBkb2VzIHRoaXMsIHNvIHdoeSB3b3VsZCBnZXR0YWJsZSBiZSBhbnkgZGlmZmVyZW50LgoKMjAwNC0wMi0xMSAxNzoxMSAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBNU1ZDIGJ1aWxkIHJlcXVpcmVzIHVzaW5nIGJ1dCBvbmUgd29ya3NwYWNlLgoKMjAwNC0wMi0xMSAxMTowNyAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVAosIE1ha2VmaWxlLlBMLCBSRUFETUUsIFRyYXBSZWNlaXZlci5wbSwKICAgICBUcmFwUmVjZWl2ZXIueHMsIGNvbnN0LWMuaW5jLCBjb25zdC14cy5pbmMsCiAgICAgcGVybF9zbm1wdHJhcGQuaCwgcHBwb3J0LmgsIHR5cGVtYXAsCiAgICAgZmFsbGJhY2svY29uc3QtYy5pbmMsIGZhbGxiYWNrL2NvbnN0LXhzLmluYywgdC8xLnQKOgoKICAgSW5pdGlhbCBwYXNzIGF0IGFuIGVtYmVkZGVkIHBlcmwgbW9kdWxlIGZvciBzbm1wdHJhcGQuCiAgICAgV2hhdHMgb2RkIGZvciB0eXBpY2FsIGluaXRpYWwgY29kZSBmcm9tIG1lIGlzIHRoYXQgaXQncyBmdWxseQogICAgIGZ1bmN0aW9uYWwgYW5kIGRvY3VtZW50ZWQgZXZlbiEKCjIwMDQtMDItMTEgMTA6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvTWFrZWZpbGUuUEw6CgogICBBZGQgdGhlIFRyYXBSZWNlaXZlciBtb2R1bGUgdG8gdGhlIGxpc3Qgb2YgZGVmYXVsdHMuCgoyMDA0LTAyLTExIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGVybF90cmFwZC5wbDoKCiAgIEEgcGVybCBib290c3RyYXBwaW5nIHN0YXJ0dXAgZmlsZS4KCjIwMDQtMDItMTEgMTA6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBwZXJsIHN0YXJ0dXAgZmlsZS4KCjIwMDQtMDItMTEgMTA6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBJbml0aWFsaXplIHBlcmwKCjIwMDQtMDItMTEgMTA6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBjcmVhdGUgYSBoYW5kbGVyX2RhdGEgZmllbGQuCgoyMDA0LTAyLTExIDA3OjI4ICBzbGlmCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgU2hvdyBBRVMgb25seSB0byByZWZsZWN0IHByZXZpb3VzIGNoYW5nZXMgLS0gVXNlIEFFUyBpbnN0ZWFkIG9mIEFFUzEyOCwxOTIsMjU2CgoyMDA0LTAyLTExIDA2OjA4ICBzbGlmCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBhbm5vdW5jZSBjb3JyZWN0IG51bWJlciBvZiB0ZXN0cyAod2FzIDM2LCBub3cgMzgpCgoyMDA0LTAyLTExIDA2OjA2ICBzbGlmCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdXBkYXRlIHRvIHJlZmxlY3QgY2hhbmdlIGluIHZhbHVlIG9mIE5FVFNOTVBfRFNfTUFYX1NVQklEUwoKMjAwNC0wMi0xMCAxNzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBhbHdheXMgZmFsc2UgdGVzdAoKMjAwNC0wMi0xMCAxNjoxNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG5ldyBuZXRzbm1wX3RhYmxlX25leHRfY29sdW1uCgoyMDA0LTAyLTEwIDE0OjM2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgcmVtb3ZlIGNvZGUgYmVmb3JlIHZhcmlhYmxlIGRlY2xhcmF0aW9ucwoKMjAwNC0wMi0xMCAxMzoyMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICB0b3VjaCB1cCBpbnN0cnVjdGlvbnMgZm9yIE1TVkMgYnVpbGRzIHRoYXQgdXNlIE9wZW5TU0wKCjIwMDQtMDItMTAgMDk6MDkgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIG1lcmdlIHVwZGF0ZSBmcm9tIEJydWNlIGZyb20gNS0xLXBhdGNoZXMKCjIwMDQtMDItMTAgMDg6MzMgIHNsaWYKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBhcHBseSBzbm1wY29uZjMgb2YgcGF0Y2ggODM3OTY3OyBhZGQgY2xvc2UgdG8gcmVhZF9jb25maWcKCjIwMDQtMDItMTAgMDM6NTAgIHNsaWYKCiAgICogcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgODkyNjE2CgoyMDA0LTAyLTA5IDE1OjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBFbmFibGUgc3RkZXJybG9nIGlmIG5vIG90aGVyIGxvZ2dpbmcgaXMgZW5hYmxlZCAtIHRvIGF2b2lkIHdhcm5pbmcKCjIwMDQtMDItMDkgMTQ6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBleHBvcnQgQ1BQPWNwcCBvbiBEYXJ3aW4gc28gQXBwbGUncyBnY2MgZG9lc24ndCBicmVhayBjb25maWdfcmVxdWlyZQoKMjAwNC0wMi0wOSAwODo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIGZpeCBjb2x1bW4gbmFtZXMKCjIwMDQtMDItMDkgMDg6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGVfY29sdW1ucy5oLAogICAgIGlmWFRhYmxlX2NvbHVtbnMuaDoKCiAgIGFkZCBtaXNzaW5nIGZpbGVzCgoyMDA0LTAyLTA5IDA4OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oCjoKCiAgIEltcGxlbWVudCBhIG5ldyBoZWxwZXIgdG8gY29wZSB3aXRoIHNraXBwaW5nICJob2xlcyIgaW4gYSB0YWJsZQogICAoYW5kIHR3ZWFrIHRoZSAndGFibGVfZGF0YScgaGVscGVyIHRvIG1ha2UgdXNlIG9mIGl0KS4KICAgTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgdGhlIF9yZXF1ZXN0X3NldF9lcnJvcigpIHJvdXRpbmUgdG8gYmUKICAgYSBiaXQgZmxleGlibGUgaW4gYWNjZXB0aW5nIGV4Y2VwdGlvbnMgdGhhdCBhcmVuJ3Qgc3RyaWN0bHkgdmFsaWQuCgoyMDA0LTAyLTA5IDA3OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIEVuc3VyZSBvbmUgb2JqZWN0J3MgJ3dyaXRlX21ldGhvZCcgaXNuJ3QgcGlja2VkIHVwIGJ5IGFueXRoaW5nIGVsc2UuCgoyMDA0LTAyLTA5IDA3OjM0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEd1YXJkIGFnYWluc3QgcGFzc2luZyBOVUxMIHBhcmFtZXRlcnMgdG8gc3RyY21wL3N0cmxlbi4KICAgUHJvYmFibHkgc2hvdWxkbid0IGV2ZXIgaGFwcGVuLCBidXQgRGF2ZSdzIGluIGEgc3VzcGljaW91cyBtb29kLgogICBRbjogU2hvdWxkIHRoZXNlIGNoYW5nZXMgYmUgYXBwbGllZCB0byB0aGUgNS4xLnggKD8mIDUuMC54KSBsaW5lPwoKMjAwNC0wMi0wOSAwNDowNSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYnVpbGQgYWdlbnQgb24gbWluZ3csIHdpdGhvdXQgd2luMzIgU0NNIGdsdWUuCgoyMDA0LTAyLTA5IDAzOjI2ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICBhZGQgZGVwZW5kZW5jeSBmb3IgbGlic25tcCB0byBidWlsZCBzbm1wZC4KCjIwMDQtMDItMDggMTk6NTAgIHNsaWYKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBjbGVhbmVkIHVwLCByZWFkeSBmb3IgbWFpbnN0cmVhbS4gIEhvd2V2ZXIsIG5vdCBnY2MtZnJpZW5kbHksIGp1c3QgeWV0LgoKMjAwNC0wMi0wOCAxODo1NSAgc2xpZgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlZ2VuIGNvbmZpZ3VyZSBmcm9tIGNvcnJlY3QgY29uZmlndXJlLmluCgoyMDA0LTAyLTA4IDE4OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmg6CgogICBuZXcgZGVmaW5lIFVUTVBfSEFTX05PX1BJRAoKMjAwNC0wMi0wOCAxODoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICB1c2UgbmV3IGRlZmluZSBVVE1QX0hBU19OT19QSUQ7IHNpbXBsaWZ5IGxvb3AgbG9naWMKCjIwMDQtMDItMDggMTc6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgZG9uJ3QgcHV0IG9wZW4gYnJhY2UgaW4gaWZkZWYgaWYgY2xvc2UgYnJhY2UgaGFzIG5vIGlmZGVmCgoyMDA0LTAyLTA4IDE2OjIxICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZXh0cmEgdHJhbnNwb3J0cyBzaG91bGQgYmUgZW1wdHk7IENhbGxiYWNrIHNob3VsZCBiZSBpbiBkaXN0IHRyYW5zcG9ydHMKCjIwMDQtMDItMDggMTU6NTAgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgSW5jbHVkZSBzYW1wbGUgZGlzcGxheSBmcm9tIHJ1bm5pbmcgaW5zdGFsbC1uZXQtc25tcC5iYXQKCjIwMDQtMDItMDggMTA6MTYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIFdpdGggaW5wdXQgZnJvbSBBbGV4IFNtaXRoLCBhcHBseSBjaGFuZ2VzIHRvIGltcHJvdmUgbWluZ3cgYnVpbGRzLgoKMjAwNC0wMi0wOCAxMDoxMiAgc2xpZgoKICAgKiB3aW4zMi86IGluc3RhbGwtbmV0LXNubXAuYmF0LCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBNb3ZlIHRoZSBkaXJlY3RvcnkgZnJvbSAvdXNyIHRvIEM6XFByb2dyYW0gRmlsZXNcTmV0LVNOTVAuCgoyMDA0LTAyLTA4IDEwOjExICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBNU1ZDIGJ1aWxkIGluc3RydWN0aW9ucyBhcmUgc2ltcGxlciwgdGhhbmtzIHRvIEFsZXggQnVyZ2VyJ3MgcHJvamVjdC93b3Jrc3BhY2UgY2hhbmdlcy4KICAgQWxzbywgaW50cm9kdWNlZCBhIGJhdGNoIGNvbW1hbmQgZmlsZSB0byBzaW1wbGlmeSBpbnN0YWxsYXRpb24gYWZ0ZXIgYnVpbGRpbmcuCgoyMDA0LTAyLTA4IDA5OjM0ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICBBcHBseSBjaGFuZ2VzIG9mZmVyZWQgYnkgQWxleCBCdXJnZXIgdG8gY2xlYW4gdXAgcHJvamVjdHMgYW5kIHdvcmtzcGFjZXMKICAgYW5kIHRvIGJ1aWxkIHNubXB0cmFwZCB1c2luZyB0aGUgUGxhdGZvcm0tU0RLIHdvcmtzcGFjZSAod2luMzJzZGspLgoKMjAwNC0wMi0wNiAxNTo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgY29uZmlnIHcvbGlid3JhcCBpZiB3ZSBjYW4gZmluZCB0aGUgaGVhZGVyCgoyMDA0LTAyLTA2IDExOjIxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgWWVhciB1cGRhdGUgZm9yIFNwYXJ0YQoKMjAwNC0wMi0wNiAxMDoxMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgcGF0Y2ggODQzOTI0IHJ1bl9zaGVsbF9jb21tYW5kIHRvIHF1b3RlIHJlZGlyZWN0ZWQgcGFyYW1ldGVycy4KCjIwMDQtMDItMDYgMDg6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgUmUtaW5zdGF0ZSB0aGUgJ2h6JyB2YXJpYWJsZSBmb3IgRnJlZUJTRCAoYnV0ICpvbmx5KiBGcmVlQlNEKQoKMjAwNC0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIGFnZW50X2FkZHJlc3Mvc25tcFRyYXBBZGRyZXNzIGluZm9ybWF0aW9uCiAgIChCdWdzICM4NjUxNzggJiAjODc3NTg3IGFuZCBQYXRjaCAjODgzMDI4KQoKMjAwNC0wMi0wNSAwODowNCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICByZXZpc2VkIHBlciBwZWVyIHJldmlldy4KCjIwMDQtMDItMDUgMDU6NDUgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQ3VycmVudCBzdGF0dXMgYXBwZWFycyBpbW1lZGlhdGVseSBhZnRlciB0aGUgaW50cm9kdWN0aW9uCiAgIFJlbW92ZWQgcmVmZXJlbmNlcyB0byBidWlsZGluZy91c2luZy9pbnN0YWxsaW5nIG5ldHNubXAuRExMCiAgIEFkZGVkIHJlZ2lzdGVyaW5nIGFzIHdpbmRvd3Mgc2VydmljZQogICBOb3RlZCBuZXcgZGVwZW5kZW5jeSBvZiBzbm1wdHJhcGQgb24gbmV0c25tcG1pYnMKICAgTm90ZWQgc25tcHRyYXBkIGJ1aWxkcyBvbmx5IHVzaW5nIHdpbjMyLmRzdyB3b3Jrc3BhY2UKICAgQWRkZWQgSG93IHRvIGNoYW5nZSBleHRlcm5hbCBwcm9qZWN0IHNldHRpbmdzIHRvIG1hdGNoCiAgIENsYXJpZmllZCB3aGF0IG90aGVyIHByb2plY3Qgc2V0dGluZ3Mgc2hvdWxkIGJlIHVubW9kaWZpZWQuCgoyMDA0LTAyLTA1IDA1OjI3ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICB1bnJlZ2lzdGVyIERMTCBsaWJyYXJ5IHByb2plY3QgZnJvbSB3b3Jrc3BhY2VzLgoKMjAwNC0wMi0wNSAwNToxNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgbWFuL3NubXAuY29uZi41LmRlZgosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbHkgcGF0Y2ggODQzOTE5IC0gbmV3IHRlbXBGaWxlUGF0dGVybiBzbm1wLmNvbmYgb3B0aW9uCgoyMDA0LTAyLTA1IDA0OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oOgoKICAgQWRkIHRoZSBORVQtU05NUC1FWEFNUExFUy1NSUIgdG8gdGhlIGxvYWQgbGlzdAogICAoUGF0Y2ggIzg5MDgzOSBmcm9tIFlpeGlvbmcgWm91KQoKMjAwNC0wMi0wNSAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ29ycmVjdCB0aGUgdXNlIG9mIGEgd3JvbmcgZGVidWcgdG9rZW4gKFBhdGNoICM4ODk3NzcgYnkgRGlyayBCYWxjZXJjemFrKQoKMjAwNC0wMi0wNSAwNDozOCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBBcHBseSBwYXRjaCA4NTA3ODUgLSBpbnN0cnVjdGlvbnMgdG8gY29weSBoZWFkZXIgZmlsZXMgZm9sbG93aW5nIGJ1aWxkLgoKMjAwNC0wMi0wNSAwMzo0MSAgc2xpZgoKICAgKiB3aW4zMi86IG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIERvbid0IGJ1aWxkIHRoZSBSbW9uIG1vZHVsZXMuCgoyMDA0LTAyLTA1IDAxOjQ5ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEFwcGx5IHBhdGNoIDg0MzY3OQoKMjAwNC0wMi0wNCAyMDoxMSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgZXhwb3NlIG9uZSBsZXNzIHN0YXRpYyBkYXRhIHZhcmlhYmxlIChsb2doX2hlYWQpOyBsaXN0IHR3byBvdGhlcnMgZm9yIERMTC4KCjIwMDQtMDItMDQgMjA6MDcgIHNsaWYKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AKLCBsaWJzbm1wL2xpYnNubXAuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AKLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkL3NubXBkLmRzcAosIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBjbGVhbiB1cCBCQVNFIENQUCBzZXR0aW5ncy4KCjIwMDQtMDItMDQgMTQ6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRG9uJ3Qgb3BlcmF0ZSBvbiBhIG51bGwgcG9pbnRlciBmb3IgaW5kZXhlcyB0aGF0IGRvbid0IGV4aXN0LgoKMjAwNC0wMi0wNCAxNDoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIE1lbnRpb24gdGhhdCBSb2JlcnQgaGFzIHRoZSBhYmlsaXR5IHRvIHNpZ24gcGFja2FnZXMgbm93LgoKMjAwNC0wMi0wNCAxNDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHVzbS5jCiwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFVzZSBBRVMgaW5zdGVhZCBvZiBBRVMxMjgsMTkyLDI1NgoKMjAwNC0wMi0wNCAxNDoxMyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgY3JlYXRlIHRoZSBwZXJzaXN0ZW50IGRpcmVjdG9yeSBpZiBpdCBoYXNuJ3QgYmVlbiBjcmVhdGVkIHlldC4KCjIwMDQtMDItMDQgMTM6MDEgIHNsaWYKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgY2FzdCB0byBxdWlldCBtc3ZjIGNvbXBpbGVyLgoKMjAwNC0wMi0wNCAwNTozMSAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jCjoKCiAgIHVzZSBOaWVscycgY2hvaWNlcyBmb3IgbmFtZXMgc3Vic3RpdHV0aW5nIF9fRlVOQ1RJT05fXwoKMjAwNC0wMi0wNCAwNToyOSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBhdm9pZCB2b2lkIGNhc3RpbmcgaW4gZnJlZSB0byBrZWVwIGdjYyBoYXBweS4KCjIwMDQtMDItMDMgMTc6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1lcmdlIHBhdGNoIGZyb20gNS4wLXBhdGNoZXMKCjIwMDQtMDItMDMgMTY6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHN0cmR1cCB2YWx1ZSBmcm9tIG5ldHNubXBfZHNfZ2V0X3N0cmluZywgc2luY2UgaXQgaXMgZnJlZSdkIGxhdGVyCgoyMDA0LTAyLTAzIDE0OjMwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MgdXNpbmcgYXBwcm9wcmlhdGUgdHlwZSBjYXN0aW5nLgoKMjAwNC0wMi0wMyAxNDoyOSAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogdHlwZXMuaCwgc3lzdGVtL21pbmd3MzIuaDoKCiAgIG1vdmUgaWZuZGVmIEhBVkVfU1NJWkVfVCBmcm9tIE1pbkdXIHNwZWNpZmljIGhlYWRlciB0byB0eXBlcyBoZWFkZXIsCiAgIHRvIGJlbmVmaXQgb3RoZXIgcGxhdGZvcm1zIHRoYXQgZG8gbm90IGRlZmluZSBzc2l6ZV90IChlLmcuLCBtc3ZjKS4KCjIwMDQtMDItMDMgMTQ6MjUgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBleHBvcnQgc3ltYm9scyBmb3IgZnVuY3Rpb25zIHdoZW4gU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIGlzIGRlZmluZWQuCgoyMDA0LTAyLTAzIDE0OjI0ICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGRvbnQgaW5pdGlhbGl6ZSB1Y2Qtc25tcCBpbml0X2Rpc2sgZm9yIG1zdmMgYnVpbGRzLgoKMjAwNC0wMi0wMyAxNDoyMSAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgZW5hYmxlIEFnZW50WCwgUm1vbiwgZGlzbWFuLWV2ZW50LW1pYiwgYW5kIHVjZC1zbm1wIG1vZHVsZSBncm91cHMuCgoyMDA0LTAyLTAzIDE0OjE5ICBzbGlmCgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIGRvbid0IGJ1aWxkIHRoZSB1Y2Qtc25tcCBkaXNrIG1vZHVsZSAobm90IGltcGxlbWVudGVkIGZvciBtJCBidWlsZHMpCgoyMDA0LTAyLTAzIDA5OjE2ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIHNubXBsaWIvd2lucGlwZS5jCjoKCiAgIEZpbmlzaCBhcHBseWluZyBwYXRjaCA4NTI2ODIgZm9yIGNhbGxiYWNrIHRyYW5zcG9ydCBzdXBwb3J0IHVuZGVyIFdpbjMyCgoyMDA0LTAyLTAzIDA4OjAwICBzbGlmCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBBcHBsaWVkIHBhdGNoIDg1MjY4MiBmb3IgY2FsbGJhY2sgdHJhbnNwb3J0IG9uIFdpbjMyOyB0b3VjaGVkIHVwIE1TVkMgcHJvamVjdCBmaWxlcywgdG9vLgoKMjAwNC0wMi0wMyAwNzoxNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgbW92ZSAjaWYgSEFWRV9FWEVDViB0byBoZWFkIG9mIHJ1bl9leGVjX2NvbW1hbmQgIGZvciBxdWlldGVyIE1TVkMgYnVpbGRzLgoKMjAwNC0wMi0wMyAwMzoyNSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgUmVtb3ZlIHBvc2l0aW9uYWwgY29tbXVuaXR5IGZyb20gdXNhZ2UKCjIwMDQtMDItMDMgMDI6MDkgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGJ1ZyByZXR1cm5pbmcgb25seSBmb3VyIGNoYXJhY3RlcnMgZm9yIHVwdGltZSBzdHJpbmcKCjIwMDQtMDItMDMgMDI6MDcgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBVcGRhdGUgZm9yIHJlLWlzc3VlZCBBVE0gYW5kIEV0aGVyTGlrZSBSRkNzCgoyMDA0LTAyLTAzIDAyOjA2ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBGaXggcmVmZXJlbmNlIHRvIC1MZSB0byAtTEUKCjIwMDQtMDItMDMgMDI6MDUgIG5iYQoKICAgKiBsb2NhbC90cmFwdG9lbWFpbDoKCiAgIEZpeCBzdHVwaWQgYnVnIGZldGNoaW5nIHRoZSB0cmFwIG9pZAoKMjAwNC0wMi0wMyAwMjowNCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgQSBiaXQgb2YgY2xlYW51cCBhbmQgcHJvcGVybHkgZGVmYXVsdCBjb21tdW5pdHkgZnJvbSBjb25mIGZpbGUKCjIwMDQtMDItMDMgMDI6MDEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYywgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEFsbG93ICVWIHRvIHRha2UgbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIKCjIwMDQtMDItMDMgMDE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgQXBwbHkgKG1vZGlmaWVkKSBwYXRjaCA4NjA0NDMgd2hpY2ggYWxzbyBmaXhlcyBidWcgODQ4Mjg0IGJ5IHByb3Blcmx5CiAgIHRlcm1pbmF0aW5nIHRoZSBpbnB1dCBidWZmZXIuCgoyMDA0LTAyLTAzIDAxOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGRpc2suaDoKCiAgIFRyeSB0byB1bnRhbmdsZSBhbiAjaWZkZWYgbWVzcyB0aGF0IGhpbmRlcnMgY29tcGlsYXRpb24gb24gT1MvWAoKMjAwNC0wMi0wMyAwMTo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUmVtb3ZlIGEgYnVuY2ggb2Ygc3VwZXJmbHVvdXMgbmV3bGluZXMgaW4gbWVzc2FnZXMKCjIwMDQtMDItMDMgMDE6NTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jLCBhdC5jOgoKICAgRml4IHJldHVybiBvZiBJUHY0IGFkZHJlc3Mgb24gNjQtYml0IFNvbGFyaXMKCjIwMDQtMDItMDIgMjM6NDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBpZmRlZiBhIGxpbnV4IHNwZWNpZmljIHZhcmlhYmxlCgoyMDA0LTAyLTAyIDIzOjM4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXBwbHkgcGF0Y2ggODQxNzA1IHRvIGZpeCBidWcgODE3Mzg2CgoyMDA0LTAyLTAyIDIzOjM3ICBuYmEKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBBcHBseSBwYXRjaCA4MzY1NjggdG8gZml4IGJ1ZyA4MjkxMTkKCjIwMDQtMDItMDIgMjM6MzYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoIDg0NTc5OCB0byBmaXggYnVnIDgzMTI5OQoKMjAwNC0wMi0wMiAyMzozMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBQcm9wZXJseSByZXNldCB3aWxkY2FyZG1hdGNoZXIgYmV0d2VlbiBjYWxscwoKMjAwNC0wMi0wMiAyMzoyMyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBcHBsaWVkIHBhdGNoIGZyb20gYnVnIDg0OTE1MwoKMjAwNC0wMi0wMiAyMzoyMSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEdpdmUgZXJyb3IgbWVzc2FnZSB3aGVuIG1vZHVsZSBub3QgYXZhaWxhYmxlCgoyMDA0LTAyLTAyIDIzOjE4ICBuYmEKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBEbyBub3QgY2FzdCB1bnNpZ25lZCB0byBzaWduZWQKCjIwMDQtMDItMDIgMjM6MTcgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgVXNlIHN5c3RlbSBnZXRvcHQuaCB3aGVuIGF2YWlsYWJsZQoKMjAwNC0wMi0wMiAyMzoxNiAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBQcm90ZWN0IGFnYWluc3QgYnVmZmVyIG92ZXJydW4gZm9yIGV4dHJhbWUgZGlzayBuYW1lcwoKMjAwNC0wMi0wMiAyMzoxNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBBcHBseSBwYXRjaCA4NTA3MTYgdG8gZml4IGJ1ZyA4NTAxODUKCjIwMDQtMDItMDIgMTY6MTAgIG5iYQoKICAgKiBhcHBzLzogc25tcHRlc3QuYywgc25tcHRyYXBkX2xvZy5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTY6MDUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNTo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgQmV0dGVyIGVycm9yIG1lc3NhZ2UKCjIwMDQtMDItMDIgMTU6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENvcnJlY3RseSBsb29wIGFyb3VuZCBtaXNzaW5nIGVudHJpZXMKCjIwMDQtMDItMDIgMTU6NTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEJldHRlciBmaWxlIHN5c3RlbSB0eXBlcwoKMjAwNC0wMi0wMiAxNTo1MiAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBzZXR0aW5nIG9mIGNvbW11bml0eSBsZW4KCjIwMDQtMDItMDIgMTU6NDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTU6MzYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgUHJvcGVyIE9JRCBmb3IgVENQNAoKMjAwNC0wMi0wMiAxNTozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGSXggbmV3bGluZSBoYW5kbGluZyBpbiBmaWxlIGxvZ2dlcgoKMjAwNC0wMi0wMiAxNTozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBzb21lIHdhcm5pbmdzLCBhbmQgbWFrZSBzb21lIGJldHRlciBlcnJvciBtZXNzYWdlcwoKMjAwNC0wMi0wMiAxNTozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIEZpeCBhIGZpbGUgZGVzY3JpcHRvciBsZWFrCgoyMDA0LTAyLTAyIDE1OjMyICBuYmEKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgc25tcGxpYi9hc24xLmMKLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDExOjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICByZXF1aXJlIGFsbCBhcmd1bWVudCBiZWZvcmUgbWliTm9kZTsgYmFpbCBvbiB1bmtub3duIG9wdGlvbjsgd2FybiBpZiBtdWx0aXBsZQogICBtaWJOb2RlcyBzcGVjaWZpZWQ7IG5ldyAnYmFsYW5jZWQnIGZsYWcgZm9yIHByb2Nlc3M7IGRlZmluZS91c2UgbmV3IG0yY19kaWUKICAgdGhhdCBzcGl0cyBvdXQgY3VycmVudCBsaW5lIGluIGNvbmYgZmlsZTsgcmVwbGFjZSAnYnJlYWsnIHdpdGggJ25leHQnOyBiYWlsCiAgIG9uIGVsc2VpZjsgYmFpbCBvbiB1bmJhbGFuY2VkIGNvbmYgZmlsZSAobWFueSB0d2Vha3MgdG8gbWFrZSB0aGF0IHdvcmspOwogICByZW1vdmUgdW51c2VkIHNraXBpZjsgZml4IGN1cnJlbnRsaW5lIHVwZGF0ZXMgaW4gZm9yZWFjaCBsb29wczsgZXhpdCB3L2Vycm9yCiAgIGlmIGNvbmYgZmlsZSBub3QgZm91bmQKCjIwMDQtMDItMDIgMTE6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC86IG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIG1pYjJjLml0ZXJhdGUuY29uZgo6CgogICBhZGQgZXhwbGljaXQgZW5kcyBmb3IgZWFjaCBmb3JlYWNoCgoyMDA0LTAyLTAyIDEwOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGZpeCB1cCBtMmNfbm9kZV9wYXJhbV8qIGRlZmF1bHRzOyByZW5hbWUgbm9kZSBkZWZhdWx0IGZpbGU7IHNldCBkZWZhdWx0cyBmb3IgbTJjX2N0eF9bbGh8cmhdOwogICBzZXQgdXAgbm9kZSBtYXAgZnVuYyBkZWZhdWx0cwoKMjAwNC0wMi0wMiAxMDoyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgdXNlIG5ldyBpbmRleGVzX3NldCBmdW5jdGlvbiBpbiBleGFtcGxlOyBtb3ZlIHNvbWUgY29kZSBvdXRzaWRlIG9mIGV4YW1wbGUKICAgY29uZGl0aW9uOyB1c2UgdmFsdWUgbWFwIHRvIGNvcHkgZGF0YQoKMjAwNC0wMi0wMiAxMDoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgbmV3IGluZGV4ZXNfc2V0IGZ1bmN0aW9uCgoyMDA0LTAyLTAyIDEwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICB1c2UgbWliMmMgbmV4dCBpbnN0ZWFkIG9mIGJyZWFrCgoyMDA0LTAyLTAyIDEwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIGFkZCBtaXNzaW5nIHZhciBkZWNsCgoyMDA0LTAyLTAyIDA4OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIHVzZSBuZXcgZnVuY3Rpb24gdG8gbWFwIGJldHdlZW4gbWliL25hdGl2ZSBkYXRhCgoyMDA0LTAyLTAyIDA4OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgbmV3IGZ1bmN0aW9uIHRvIG1hcCBiZXR3ZWVuIG1pYi9uYXRpdmUgZGF0YQoKMjAwNC0wMi0wMiAwNzo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIG5ldyBmdW5jdGlvbiB0byBzZXQgaW5kZXhlcyBmcm9tIEMgdHlwZXMKCjIwMDQtMDItMDIgMDc6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLAogICAgIGdlbmVyaWMtY3R4LWNvcHkubTJpLCBnZW5lcmljLWN0eC1nZXQubTJpLAogICAgIGdlbmVyaWMtZ2V0LWNoYXIubTJpLCBnZW5lcmljLWdldC1kZWNsLWJvdC5tMmksCiAgICAgZ2VuZXJpYy1nZXQtZGVjbC5tMmksIG1mZC1kYXRhLWdldC5tMmMsCiAgICAgbWZkLWludGVyZmFjZS5tMmMsIG5vZGUtZ2V0Lm0yaSwgbm9kZS1zZXQubTJpLAogICAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIG1vcmUgY29uc2lzdGVudCB1c2Ugb2YgbTJjX2N0eF9bbGh8cmh8bGhzfHJoc10gYW5kIG0yY19ub2RlX3BhcmFtKiB2YXJzOyBuZXcKICAgbTJjX2NvZGVfdmVyYm9zZSBmbGFnIGZvciB2ZXJib3NlIGNvbW1lbnRzIGluIGNvZGU7IG5ldyB2YWx1ZSBtYXBwaW5nIGZ1bmMgZm9yCiAgIGVhY2ggbm9kZSBpbnN0ZWFkIG9mIGR1cGxpY2F0ZWQgY29kZSBpbiBtdWxpdHBsZSBmdW5jczsgdXNlIG1pYjJjIG5leHQgaW5zdGVhZAogICBvZiBicmVhazsKCjIwMDQtMDItMDIgMDQ6MTUgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYywKICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcAosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLAogICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICBSZXN0b3JlIHdpbnNvY2sgMS4xIGxpYnJhcnkgdXNhZ2UuCgoyMDA0LTAxLTMwIDExOjM3ICBzbGlmCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgbW92ZSBuZXRzbm1wLmxpYiB0byB0aGUgZnJvbnQgb2YgdGhlICJBZGRpdGlvbmFsIExpYnJhcmllcyIgbGlzdHMuCgoyMDA0LTAxLTMwIDExOjMxICBzbGlmCgogICAqIHdpbjMyLzogc25tcGQvc25tcGQuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBtb3ZlIG5ldHNubXAubGliIHRvIHRoZSBmcm9udCBvZiB0aGUgQWRkaXRpb25hbCBMaWJyYXJpZXMgbGlzdC4KCjIwMDQtMDEtMzAgMTA6MjkgIHNsaWYKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3AsCiAgICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGVuYWJsZSBzZWxlY3Rpb24gdGhhdCB3aWxsIGdlbmVyYXRlIHNvdXJjZSBicm93c2luZyBpbmZvcm1hdGlvbi4KCjIwMDQtMDEtMzAgMTA6MDggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgbW92ZSBleHRlcm4gbG9naF9oZWFkIGludG8gdGhlIGxvZ2dpbmcgbW9kdWxlJ3MgaGVhZGVyIGZpbGUuCgoyMDA0LTAxLTMwIDA3OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBSZW1vdmUgYW4gdW53YW50ZWQgJ2Vsc2UnIGNsYXVzZSB0aGF0IGNsYXNoZXMgd2l0aCB0aGUgImNvbW1vbiIgJ2Vsc2UnCiAgIGNsYXVzZSBsYXRlciBpbiB0aGlzIHRhbmdsZSBvZiB1bnJlYWRhYmxlIGNvZGUuICAoQnVnICM4NTcyNTcpCgoyMDA0LTAxLTMwIDA3OjAxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgcmVzdG9yZSB0aGUgREFUQSBoaW50cyB0aGF0IHdlcmUgYWNjaWRlbnRhbGx5IHJlbW92ZWQuCgoyMDA0LTAxLTMwIDA2OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hpdGVzcGFjZSAoQy9SICYgTC9GKSBzaG91bGRuJ3QgdHJpZ2dlciBoZXggc3RyaW5nIGJlaGF2aW91ciAoQnVnICM4NjQzNjcpCgoyMDA0LTAxLTMwIDA2OjMzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIERlZmluZSBhICJkdW1teSIgbG9nIGhhbmRsZXIgdGhhdCBzaW1wbHkgZGlzY2FyZHMgYWxsIG1lc3NhZ2VzLgogICBOb3QgcmVhbGx5IGEgc2Vuc2libGUgdGhpbmcgdG8gZG8sIGJ1dCBjb3VsZCBiZSB1c2VkIHRvIHByZXZlbnQKICAgdHVybmluZyBvbiB0aGUgImxhc3QgZGl0Y2giIGxvZ2dpbmcgdG8gc3RkZXJyIChzZWUgQnVnICM4Njc1NzQpCgoyMDA0LTAxLTMwIDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSXNzdWUgYSB3YXJuaW5nIHdoZW4gdHVybmluZyBvbiAibGFzdCBkaXRjaCIgbG9nZ2luZyAoQnVnICM4Njc1NzQpCgoyMDA0LTAxLTMwIDAzOjIyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgY29tcGxldGVseSBlbXB0eSBHZXRCdWxrIHJlcXVlc3RzIHByb3Blcmx5IChCdWcgIzg3NzQxOSkKCjIwMDQtMDEtMzAgMDI6NTAgIHNsaWYKCiAgICogd2luMzIvOiAuY3ZzaWdub3JlLCB3aW4zMi5vcHQ6CgogICBmaXggYnVnICM4ODcxNDAKCjIwMDQtMDEtMzAgMDE6MzkgIGR0czEyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIFVzZSAnc25wcmludF9oZXhzdHJpbmcnIGluIHRoZSBlbmdpbmUgdGVzdGluZyBjb2RlLCByYXRoZXIKICAgdGhhbiB0aGUgKG5vbi1leGlzdGVudCkgJ3NwcmludF9oZXhzdHJpbmcnICAoQnVnICM4ODYxMTApCgoyMDA0LTAxLTI5IDEzOjAzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIGZpeCBjb3VudHMgZm9yIGNlcnRhaW4gdXNlcyBvZiBzdHJuY2FzZWNtcCAoaSBtdXN0IGJlIGJvcmVkISkuCgoyMDA0LTAxLTI5IDEyOjMyICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBmb3Igd2luZG93cyBzZXJ2aWNlLCBtYXRjaCBkaXNwbGF5IG5hbWUgdG8gc2VydmljZSBuYW1lLgogICBmb3Igd2luZG93cyBzZXJ2aWNlIGRlc2NyaXB0aW9uLCBtZW50aW9uIG1pYklJIG9iamVjdHMgaWYgYnVpbHQgdXNpbmcgU0RLLgoKMjAwNC0wMS0yOSAxMjoxNCAgc2xpZgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmM6CgogICB1c2UgY29ycmVjdCBjb25zdGFudCB0aGF0IHByZXZpb3VzbHkgYXBwbGllZCBwYXRjaCByZWZlcnMgdG8uCgoyMDA0LTAxLTI5IDA2OjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEJyaW5nIHZlcnNpb24gaGFuZGxpbmcgaW50byBsaW5lIHdpdGggdGhlICdzbm1wX3BhcnNlX2FyZ3MnIGxlZ2VyZGVtYWluCgoyMDA0LTAxLTI5IDA2OjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgVmFsaWRhdGUgdGhlIHJlcXVlc3QgYWdhaW5zdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdmFyYmluZHMgc3VwcG9ydGVkCiAgIChQYXRjaCAjODI2NzE0IGZyb20gSmVyZW15IFB1aGxtYW4pCgoyMDA0LTAxLTI5IDA2OjEzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9ORVQtU05NUC1UQy50eHQsCiAgICAgbWlicy9UUkFOU1BPUlQtQUREUkVTUy1NSUIudHh0LCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBVc2UgdGhlIG9mZmljaWFsbHkgZGVmaW5lZCB0cmFuc3BvcnQgT0lEcwogICAoUGF0Y2ggIzgyODc2NiBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcikKCjIwMDQtMDEtMjkgMDU6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9kaXNrLmMsCiAgICAgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfbmV0d29yay5jLAogICAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfc3RvcmFnZS5jLAogICAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywKICAgICB1Y2Qtc25tcC9sb2dtYXRjaC5jLCB1Y2Qtc25tcC9tZW1vcnkuYywKICAgICB1Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCB1Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgICB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgdWNkLXNubXAvbWVtb3J5X2hwdXguYywKICAgICB1Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYwo6CgogICBJbmNyZWFzZSBhc3NvcnRlZCBmaXhlZCBidWZmZXIgc2l6ZXMuICAoUGF0Y2ggIzgzNjM5NSBmcm9tIEhvd2FyZCBXaWxraW5zb24pCgoyMDA0LTAxLTI5IDA1OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlamVjdCBhdHRlbXB0cyB0byBkZWxldGUgYSAncGVybWFuZW50JyByb3cKICAgKFBhdGNoICM4Mzc0MjcgZnJvbSBCb2IgUm93bGFuZHMpCgoyMDA0LTAxLTI5IDA0OjIzICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFByb3RlY3QgYWdhaW5zdCBmcmVlaW5nIGFuIGVtcHR5IGNvbnRleHRFbmdpbmVJRAogICAoV2hpY2ggc2hvdWxkbid0IGhhcHBlbiwgYnV0IHNlZW1zIHRvIG9jY3VyIHVuZGVyIFdpbmRvd3MpCiAgIChQYXRjaCAjODQwODMwIGZyb20gQWxleCBCdXJnZXIpCgoyMDA0LTAxLTI5IDAzOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1lY2hhbmlzbSB0byBjb21wbGV0ZWx5IGRpc2FibGUgdGhlIGhhbmRsaW5nIG9mIHBlcnNpc3RlbnQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd291bGQgYnJlYWsgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gU05NUHYzIGFnZW50LgogICAoUGF0Y2ggIzg0OTE1OSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsKQoKMjAwNC0wMS0yOSAwMzozOSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfZW51bS5jOgoKICAgUHJvcGVybHkgcmVsZWFzZSB2YXJpb3VzIHJlc291cmNlcyB3aGVuIHNodXR0aW5nIGRvd24gdGhlIGxpYnJhcnkuCiAgIChQYXRjaCAjODQ5MTU0IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTAxLTI5IDAxOjQ0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdmlkZSBtaXNzaW5nIGNvbmZpZyBkZWZpbml0aW9uIHRlbXBsYXRlIGZvciAnc3NpemVfdCcgZmxhZwogICAoUGF0Y2ggIzg4NjY1NSBmcm9tIEFuZHkgU21pdGgpCgoyMDA0LTAxLTI4IDIwOjM5ICBzbGlmCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AKLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgICAgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIG5vIGluY3JlbWVudGFsIGxpbmsgb24gRGVidWcgKHByZXZlbnRzIGdlbmVyYXRpb24gb2YgLmlsayBmaWxlKQoKMjAwNC0wMS0yOCAxODo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBpZmRlZiBhcm91bmQgdmFyaWFibGVzIHVzZWQgb25seSB3aGVuIFVOSVggdHJhbnNwb3J0cyBhcmUgc3VwcG9ydGVkLgoKMjAwNC0wMS0yOCAxNzo1NyAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgaW52b2tlIHdpbnNvY2sgdmVyIDIuMgoKMjAwNC0wMS0yOCAxNzozNCAgc2xpZgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICAgIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBkc2RrL3NubXBkLmRzcCwKICAgICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgY29uc2lzdGVudCBwcm9qZWN0IHNldHRpbmdzOyBubyBDIHJ1bnRpbWUgY29uZmxpY3RzOyBsaW5rIHdpdGggd2luc29jayB2ZXIgMi4yCgoyMDA0LTAxLTI4IDE3OjI4ICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IGhhY2sgZm9yIGNob3duLgoKMjAwNC0wMS0yOCAxNDo1NiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZGVyZWZlcmVuY2UgcHJpX21heCB0byB0ZXN0IHJldHVybiBmcm9tIGRlY29kZV9wcmlvcml0eQoKMjAwNC0wMS0yOCAxNDo1NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWd1dGlsLmMsIGFsYXJtLmMsIGV2ZW50LmMKLCBoaXN0b3J5LmMsIHJvd3MuYywgc3RhdGlzdGljcy5jOgoKICAgZmluZCBwbGF0Zm9ybS1hcHByb3ByaWF0ZSBzdWJzdGl0dXRlIGZvciBzeXMvdGltZS5oCiAgIGZpeCBtaW5vciB0eXBlIGNhc3Qgd2FybmluZ3MuICByZW1vdmUgb25lIHVudXNlZCB2YXJpYWJsZS4KCjIwMDQtMDEtMjggMDg6NDAgIGR0czEyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBJbXBvcnQgU05NUF9TTEVFUCB0aW1lIGZyb20gZW52aXJvbm1lbnQsIGlmIGF2YWlsYWJsZQogICAoUGF0Y2ggIzg1MDk1NyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciwKICAgIG1lcmdpbmcgYSBjaGFuZ2UgZnJvbSB0aGUgNS4wLnggYnJhbmNoKQoKMjAwNC0wMS0yOCAwODowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRW5zdXJlIHRoZSBzaXplIG9mIHRoZSBleGVjLWNhY2hlIGlzIGhhbmRsZWQgY29ycmVjdGx5IG9uIDY0LWJpdCBzeXN0ZW1zCiAgIChQYXRjaCAjODYwNTc1IGJ5IEJvYiBSb3dsYW5kcykKCjIwMDQtMDEtMjggMDc6NTUgIGR0czEyCgogICAqIHBlcmwvOiBPSUQvT0lELnhzLCBTTk1QL1NOTVAueHMsIGFnZW50L2FnZW50LnhzCjoKCiAgIEJlIG1vcmUgY2F1dGlvdXMgYWJvdXQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIE9JRHMgKFBhdGNoIDg2MjE4MyBieSBBdXN0aW4gU2NodXR6KQoKMjAwNC0wMS0yOCAwNzo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEd1YXJkIGFnYWluc3QgYSBtaXNzaW5nIElQIGFkZHJlc3Mgc3RydWN0dXJlIChQYXRjaCAjODYxOTM5IGJ5IERhbiBNb25ncmFpbikKCjIwMDQtMDEtMjggMDc6MzggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBNZXJnZSBOZWlscycgNS4xLnggY2hhbmdlcyBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IHRyZWUuCiAgIChTZWVtcyB0byBpbmNsdWRlIHBhdGNoZXMgIzg1NTE3MCBhbmQgIzg1ODUxOSkKCjIwMDQtMDEtMjggMDY6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBkb24ndCBjaG93bi9jaG1vZCBpZiB1bml4IGRvbWFpbiBzdXBwb3J0IG5vdCBlbmFibGVkCgoyMDA0LTAxLTI4IDA2OjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENoZWNrIGZvciBwZXJsIDUuOCBlbnRyeSBwb2ludC4gIChQYXRjaCAjODU0Mzk1KQoKMjAwNC0wMS0yOCAwNjoyMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IGluc3RhbGwgc28gdGhhdCBzdWJkaXIgbGlicyBhcmUgaW5zdGFsbGVkIGJlZm9yZSBiaW5zLCBub3RlZCBieSB0aGUKICAgZXZlci1zby1oZWxwZnVsIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KCjIwMDQtMDEtMjggMDQ6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgSW5jcmVhc2UgdGhlIChmaXhlZCkgbnVtYmVyIG9mIGRpc2tzIGhhbmRsZWQgKHBhdGNoICM4ODQ4NTkpCgoyMDA0LTAxLTI4IDA0OjE4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pbmd3MzIuaCBzeXN0ZW0gaGVhZGVyIGZpbGUgKHBhdGNoICM4ODQxMDApCgoyMDA0LTAxLTI4IDA0OjEzICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBzc2l6ZV90LCBhbmQgZG9uJ3QgcmVkZWZpbmUgaXQgd2hlbgogICB1c2luZyB0aGUgV2luR1cgY29tcGlsZXIuICAgKFBhdGNoICM4ODE3NTIpCgoyMDA0LTAxLTI4IDAzOjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgUmVtb3ZlIHR3byByZWR1bmRlbnQgZm9yd2FyZCBkZWNsYXJhdGlvbnMgIChwYXRjaCAjODczMzI2KQoKMjAwNC0wMS0yOCAwMjowNyAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIGluZXRwcmludCBhbGxvdHMgbWF4IDIyIGNoYXJzIGZvciBhZGRyZXNzICsgOCBjaGFycyBmb3IgcG9ydC4KICAgY2hhbmdlIHRvIDE4IGFkZHJlc3MgKyAxMiBwb3J0LCBzbyB0aGF0IG1vcmUgb2YgdGhlIHBvcnQgaXMgZGlzcGxheWVkLgoKMjAwNC0wMS0yNyAyMjo0MiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGluZGljYXRlIFdpbjMyIGhhcyBsb2NhbGUuaCBtYWxsb2MuaCBtZW1vcnkuaC4KICAgZG8gbm90IHNldCBic2RsaWtlIG9yIFVTRXh4TUlCIG9yIFNFQ1VSSVRZRVhDRVBUSU9OUwogICByZS1mb3JtYXQgbGlrZSB0aGUgTmV0LVNOTVAgY29uZmlndXJlZCBuZXQtc25tcC1jb25maWcuaC4KCjIwMDQtMDEtMjcgMjI6MzQgIHNsaWYKCiAgICogYWNjb25maWcuaCwgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4KOgoKICAgdXBkYXRlIHN1cHBvcnQgZm9yIE9wZW5CU0QsIEhQLVVYLzExLCBhbmQgV2luMzIgc3lzT2JqZWN0SUQgLgoKMjAwNC0wMS0yNyAyMTo0OSAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jCjoKCiAgIHByb3ZpZGUgZnVuY3Rpb24gaGludHMgaW4gbGlldSBvZiBfX0ZVTkNUSU9OX18KCjIwMDQtMDEtMjcgMTM6NDYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBBZGQgZGVjbGFyYXRpb25zIGZvciBmdW5jdGlvbnMgdXNlZCBpbiBhcHBzL3NubXB0cmFwZF9oYW5kbGVyLmMKCjIwMDQtMDEtMjcgMTM6MTUgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBubyBjaG93bigpIG9uIFdpbjMyIC0tIGNvbXBpbGVzIHRvIG5vdGhpbmcuCgoyMDA0LTAxLTI3IDEwOjU1ICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICBidWlsZCBpbmRlcGVuZGVudCBwcm9qZWN0cyAobGlicmFyaWVzKSBiZWZvcmUgZGVwZW5kZW50IHByb2plY3RzLgogICByZW1vdmUgaW5jb21wbGV0ZSBkZXBlbmRlbmN5IHNwZWNpZmljYXRpb24gdG8gYnVpbGQgYWxsIGZhc3Rlci4KCjIwMDQtMDEtMjcgMTA6MTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUmUtYXJyYW5nZWQgdGhlIGRlY2xhcmF0aW9ucyBvZiB2YXJpYWJsZXMgYW5kL29yIGNvbXBpbGUgY29uc3RhbnRzLAogICBzbyB0aGF0IHRoZSB2YXJpYWJsZXMgYXJlIGRlY2xhcmVkIG9ubHkgaWYgbmVlZGVkLgoKMjAwNC0wMS0yNyAxMDoxMSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBTdXBwbGllZCAicmV0dXJuIDAiIHRvIGV4dGVuc2libGVfdW5yZWdpc3RlcigpLCBhIGZ1bmN0aW9uIHJldHVybmluZyBpbnQuCgoyMDA0LTAxLTI3IDA5OjU5ICBzbGlmCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjYXN0IHRvIHZvaWQgdGhlIGFyZ3VtZW50IHRvIGZyZWUoKS4KCjIwMDQtMDEtMjcgMDk6NTcgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHVzZSB1X2NoYXIgdHlwZSBjYXN0IGluc3RlYWQgb2YgbWFza2luZyB3aXRoIDB4RkYuCgoyMDA0LTAxLTI3IDA5OjUyICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgbW92ZSBjb25kaXRpb25hbCBleHByZXNzaW9uIHdpdGhpbiB0eXBlIGNhc3Qgc2NvcGUsCiAgIGZvciB0aGUgYmVuZWZpdCBvZiBzb21lIGNvbXBpbGVycy4KCjIwMDQtMDEtMjcgMDk6NTAgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgc3BlbGxjaGVjazogbmV0c25tcF9jb250YWluZXJfZnJlZV9saXN0CgoyMDA0LTAxLTI3IDA5OjQ2ICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBkZWNsYXJlIGluaXRfc3ViYWdlbnQgbmVhciBpdHMgb25seSByZWZlcmVuY2UuCgoyMDA0LTAxLTI3IDA5OjQ1ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gV2luMzIgY29kZS4KCjIwMDQtMDEtMjcgMDk6NDQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIG1vdmUgSEFWRV9FWEVDViBjb21waWxlIHRlc3QgZWFybGllciBpbiB0aGUgZnVuY3Rpb24gdG8gbm90IGludHJvZHVjZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwNC0wMS0yNyAwOTo0MSAgc2xpZgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9zbm1wdmFjbS5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncyB1c2luZyBhcHByb3ByaWF0ZSB0eXBlIGNhc3RpbmcuCgoyMDA0LTAxLTI3IDA5OjI0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBSZWZlciB0byB0aGUgbmV0c25tcCBsaWJyYXJ5IHZlcnNpb24gc3RyaW5nIHZpYSBuZXRzbm1wX2dldF92ZXJzaW9uOwogICBLZWVwIGRpcmVjdCBzdHJpbmcgcmVmZXJlbmNlIGlmZiBVQ0RfQ09NUEFUSUJMRSBpcyBkZWZpbmVkLgoKMjAwNC0wMS0yNyAwOTowNyAgc2xpZgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBBdm9pZCBjb252ZXJzaW9uIG1hY3JvcyB3aGVuIGZvcm1pbmcgaG9zdCBjb3B5IG9mIDE2LWJpdCBwb3J0IHZhbHVlCgoyMDA0LTAxLTI3IDA5OjA3ICBzbGlmCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgRG9udCBmb3JjZSB1bnNpZ25lZCBzaG9ydCBvbnRvIHR3byB1bnNpZ25lZCBjaGFycy4KICAgQmUgbW9yZSBleHBsaWNpdCBpbiB0aGUgdHJlYXRtZW50IG9mIHRoZSB5ZWFyIGNvbXBvbmVudC4KCjIwMDQtMDEtMjcgMDk6MDIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgV2luMzIgYWxsb2NhdGVzIFRDUCBhbmQgVURQIGNvbm5lY3Rpb24gc3RydWN0dXJlcyB0aGF0IGNvbnNpc3Qgb2YKICAgIGEgMzItYml0IGNvdW50IGZvbGxvd2VkIGJ5IGEgcGVyIGNvbm5lY3Rpb24gdGFibGUuICBXaGVuIGZyZWVpbmcgdGhlIHRhYmxlLAogICAgZmluZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJ1Y3R1cmUuICBUaGUgVENQIHRhYmxlIGluY29ycmVjdGx5IGNvdW50ZWQKICAgIGVzdGFibGlzaGVkIFRDUCBjb25uZWN0aW9ucywgZml4ZWQgd2l0aCB0aGlzIGNoYW5nZS4KCjIwMDQtMDEtMjcgMDg6NTggIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBzdXBwb3J0IFdpbjMyIGluIE9TVFlQRSBkZWZpbml0aW9uLgoKMjAwNC0wMS0yNyAwODo1NCAgc2xpZgoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGluY2x1ZGUgaW8uaCBmb3IgV2luMzIgdG8gaW50cm9kdWNlIHRoZSBjbG9zZSgpIGZ1bmN0aW9uCgoyMDA0LTAxLTI3IDA3OjQ4ICBzbGlmCgogICAqIHdpbjMyLzogbGliaGVscGVycy8uY3ZzaWdub3JlLCBuZXQtc25tcC8uY3ZzaWdub3JlLAogICAgIG5ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsIG5ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZQosIG5ldHNubXBtaWJzLy5jdnNpZ25vcmUsIG5ldHNubXBtaWJzc2RrLy5jdnNpZ25vcmUKLCBzbm1wZHNkay8uY3ZzaWdub3JlOgoKICAgcHJvdmlkZSBhIENWUyBmaWx0ZXIgdG8gZXZlcnkgc3ViZGlyIHVuZGVyIHdpbjMyLgoKMjAwNC0wMS0yNyAwNzozNCAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRlZiwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZgo6CgogICBjb252ZXJ0IHRvIERPUyBmb3JtYXQgdG8ga2VlcCBjZXJ0YWluIElERSBoYXBweS4KCjIwMDQtMDEtMjcgMDc6MjcgIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBpcyBzdXBlcnNlZGVkIGJ5IHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmguCgoyMDA0LTAxLTI3IDA3OjIzICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIGNoYW5nZXMgYXBwcm92ZWQgYnkgYXV0aG9yIHByb3ZpZGUgbW9yZSByZWFkYWJsZSBmb3JtYXR0aW5nIGFuZCBjb21tZW50cy4KCjIwMDQtMDEtMjcgMDc6MjIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgcmVtb3ZlIENSIGNoYXJhY3RlcnMgZnJvbSB0aGVzZSBzb3VyY2VzLgoKMjAwNC0wMS0yNyAwNzoxOSAgc2xpZgoKICAgKiBSRUFETUUuUGFuYXNvbmljX0FNM1gudHh0OgoKICAgY29udmVydCBDUkxGIHRvIG5ld2xpbmUKCjIwMDQtMDEtMjcgMDc6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGb3J3YXJkIHRyYXBzIHRvIHBvcnQgMTYyIGJ5IGRlZmF1bHQuCgoyMDA0LTAxLTI2IDE1OjU2ICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmcKCjIwMDQtMDEtMjYgMTU6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGRvbid0IGhhcmRjb2RlIHBvaW50ZXIgc2l6ZTsgbm90ZWQgb24gY29kZXJzIGJ5IHJhamVzaCBhcnVtdWdhbQoKMjAwNC0wMS0yNiAwNDoxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZpeCB0aGUgb3JkZXJpbmcgb2YgaG9zdG5hbWUgYW5kIElQIGFkZHJlc3MgYXMgcGFzc2VkIHRvIHRyYXAgaGFuZGxlcgogICAoQnVnICM4ODIwNzEgYW5kIG90aGVycykKCjIwMDQtMDEtMjYgMDQ6MTUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDb252ZXJ0IHYxIHRyYXBzIHRvIHYyIGZvcm1hdCBiZWZvcmUgcGFzc2luZyBpdCB0byB0aGUgdHJhcCBoYW5kbGVyCiAgIChwbHVzIG1lcmdpbmcgdGhlIG90aGVyIDUuMS54IHBhdGNoZXMgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCB0cmVlKQoKMjAwNC0wMS0yNiAwMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBFbnN1cmUgdGhhdCBockZTVGFibGUgaW5kZXhlcyBhcmUgY29uc2lzdGVudCBhY3Jvc3MgdGhlIGxpZmV0aW1lIG9mCiAgIHRoZSBhZ2VudC4KCjIwMDQtMDEtMjYgMDI6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQWxpZ24gaHJGU1N0b3JhZ2VJbmRleCB2YWx1ZXMgd2l0aCBoclN0b3JhZ2VUYWJsZSAoYnVnICM4ODI5ODcpCgoyMDA0LTAxLTIwIDA1OjQ4ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgQWRkIEFuZHkgU21pdGggdG8gY29udHJpYnV0b3JzCgoyMDA0LTAxLTIwIDA1OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZml1cmUuaW4KCjIwMDQtMDEtMjAgMDU6MjggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBwYXJ0aWFsIGFwcGxpY2F0aW9uIG9mIDg2MDk4MDogRml4IGZvciBtaW5ndzMyLmgKCjIwMDQtMDEtMjAgMDU6MTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCA4NDM2Nzk6IENvbmZpZ3VyZSBwYXRjaCBmb3IgTWluR1cKCjIwMDQtMDEtMTQgMDY6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuYzoKCiAgIEZpeCBoYW5kbGluZyBvZiA2NC1iaXQgY291bnRlcnMsIGFuZCB1c2UgdGhlIGNvcnJlY3QgL3Byb2MgaW50ZXJmYWNlIGZpbGUKICAgKG5vdCB0aGUgdGVtcG9yYXJ5IGRlYnVnZ2luZyB2ZXJzaW9uISkKCjIwMDQtMDEtMTQgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICBQcm92aXNpb25hbCByZS1pbXBsZW1lbnRhdGlvbiBvZiBJRi1NSUI6OmlmVGFibGUgYW5kIElGLU1JQjo6aWZYVGFibGUKICAgTGludXggc3VwcG9ydCBvbmx5IChhbmQgc29tZSBvYmplY3RzIGFyZSBtaXNzaW5nKSwKICAgYnV0IGl0IHNob3VsZCBnaXZlIHRoZSBnZW5lcmFsIGZsYXZvdXIuCgoyMDA0LTAxLTE0IDA1OjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvc25tcF9lbnVtLmMKOgoKICAgTmV3IGludGVyZmFjZXMgdG8gZmluZCBhbiB1bnVzZWQgdmFsdWUgd2l0aGluIGFuIGVudW1lcmF0aW9uIGxpc3QuCgoyMDA0LTAxLTEzIDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMjA6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCByb3dfbWVyZ2UuYywKICAgICB0YWJsZV9pdGVyYXRvci5jOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDIwOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDIwOjAzICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfdmFycy5jOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTEzIDEwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMSAxNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggdHlwbywgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTAxLTExIDE2OjQzICByc3RvcnkKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0LCBzbm1wbGliL2NvbnRhaW5lci5jLAogICAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsCiAgICAgbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsIE1ha2VmaWxlLmluOgoKICAgZml4IHJhbmdlIGNoZWNraW5nIGNvZGUsIG5vdGVkIG9uIGNvZGVycyBieSBPbGVnIEl2YW5vdgoKMjAwNC0wMS0wNyAwOTo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF9ub2RlLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwgbWZkLWRhdGEtc2V0Lm0yYwosIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYywKICAgICBzdWJhZ2VudC5tMmM6CgogICBpZiBuZWVkbGVuZ3RoIG5vdCBzZXQsIHNldCB2YXJiaW5kIHZhbF9sZW4gZm9yIEdFVHMsIHZhbGlkYXRlIHZhbF9sZW4gb24gc2V0OwogICBkb24ndCBkZWNsYXJlcyBmdW5jdGlvbnMgd2hpY2ggY2FuJ3QgYmUgaW5saW5lZCBhcyBpbmxpbmU7IGNvbW1lbnQgdHdlYWtzCgoyMDA0LTAxLTA2IDE0OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSB0cmFuc2xhdGUgYSBNSUIgdHlwZSBvZiBJUEFERFIgdG8gSVBBRERSRVNTIGluc3RlYWQgb2YgT0NURVRfU1RSSU5HLgogICAtIHNtYWxsIG90aGVyIGJ1ZyBmaXgKCjIwMDQtMDEtMDYgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2hhbmdlIHRoZSBtYW51YWwgc28gaXQgZG9lc24ndCByZWZlcmVuY2UgVUNELVNOTVAgdjMgKGFoZW0pCgoyMDA0LTAxLTA2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHByb3BlciBzb3J0aW5nIHdoZW4gTmV0U05NUDo6T0lEIGlzIGF2YWlsYWJsZS4KCjIwMDQtMDEtMDEgMTY6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG9ubHkgc2V0IGRlZmF1bHRzIGlmIG5vdCBhbHJlYWR5IHNldAoKMjAwMy0xMi0zMCAyMDozNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQueHMsIHRlc3QucGw6CgogICBoYW5kbGUgaW1wbGllZCBpbmRleGVzCgoyMDAzLTEyLTMwIDE5OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQSBuZXcgLT5nZXRfaW5kZXhlcygpIG1ldGhvZCB0byByZXR1cm4gdGhlIGV4dHJhY3RlZCBpbmRleGVzIGZyb20gYSBPSUQuCgoyMDAzLTEyLTMwIDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhbGxvdzogc2VwYXJhdGVkIHBhdGhzIGluIE1JQjJDX0RJUiBlbnYgdmFyCgoyMDAzLTEyLTMwIDE1OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX2VudW0ubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmkKOgoKICAgdW5xdW90ZSB1YyBjYWxscywgc2luY2UgZXZhbCB3aXRoIGludGVycHJldCBhcyBhIGxpdGVyYWwgYW5kIEkgY2FuJ3QKICAgcmVwcm9kdWNlIHRoZSAnYmFyZXdvcmQnIHByb2JsZW0gdGhhdCBtYWRlIG1lIHF1b3RlIGluIHRoZSBmaXJzdCBwbGFjZQoKMjAwMy0xMi0yOSAxMjowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICByZW1vdmUgdW51c2VkIHJlcXVlc3RfbW9kZQoKMjAwMy0xMi0yNiAxMjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmVuYW1lIHZhcnMgZm9yIGNsYXJpZmljYXRpb246ICR7dGFibGV9X2N0eCogLT4gJHt0YWJsZX1fcm93cmVxX2N0eCo7IGFkZAogICB2YXJzIGZvciBtZmRfZGVmYXVsdHM7IHVzZSBuZXcgbWliMmMgcHVzaC9wb3AgdG8gZ2VuZXJhdGUgcGVyIHRhYmxlIGRlZmF1bHRzCiAgIGZpbGUgZGVmYXVsdC10YWJsZS0kdGFibGUubTJkIGNvbnRhaW5pbmcgY3VycmVudCB2YWx1ZXMgb2Ygc29tZSBtMmMgdmFycwoKMjAwMy0xMi0yNiAxMjo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmksIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtZGF0YS1zZXQubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywKICAgICBtZmQtcmVhZG1lLm0yYywgbWZkLXRvcC5tMmMsIG5vZGUtZ2V0Lm0yaSwKICAgICBub2RlLXNldC5tMmksIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLCBwYXJlbnQtc2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLAogICAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaToKCiAgIHJlbmFtZSB2YXJzIGZvciBjbGFyaWZpY2F0aW9uOiBpdHJfY3R4KiAtPiBsb29wX2N0eCosIGxvb3AqIC0+IGxvb3BfY3R4KiwKICAgJHt0YWJsZX1fY3R4KiAtPiAke3RhYmxlfV9yb3dyZXFfY3R4KgoKMjAwMy0xMi0yNiAxMjozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBxdW90ZSBhc3NpZ25tZW50IG9mIHVwcGVyY2FzZWQgbmFtZSwgc28gdmFsdWVzIHRoYXQgc3RhcnQgd2l0aCBhIGRpZ2l0IGRvbid0CiAgIGdldCBpbnRlcnByZXRlZCBhcyBhIGJhcmUgd29yZDsgY2hnIGRlYnVnIHByaW50IHRvIGNvbW1lbnQKCjIwMDMtMTItMjYgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICAgIG0yY19zZXR1cF9lbnVtLm0yaToKCiAgIHF1b3RlIGFzc2lnbm1lbnQgb2YgdXBwZXJjYXNlZCBuYW1lLCBzbyB2YWx1ZXMgdGhhdCBzdGFydCB3aXRoIGEgZGlnaXQgZG9uJ3QKICAgZ2V0IGludGVycHJldGVkIGFzIGEgYmFyZSB3b3JkOyBjb25zb2xpZGF0ZSAkbTJjX2VuYW1leS8kbTJjX2luYW1lIHByb2Nlc3NpbmcKICAgaW50byBtMmNfc2V0dXBfZW51bS5tMmkKCjIwMDMtMTItMjMgMDc6MTkgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgcmVtb3ZlIGRlcHJlY2F0ZWQgb3B0aW9uIGZyb20gZXhhbXBsZQoKMjAwMy0xMi0yMyAwNzoxOCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjaGFuZ2UgZGVmYXVsdCBycG0gYnVpbGQgaW5zdHJ1Y3Rpb25zIHRvIGVtYmVkIHBlcmwKCjIwMDMtMTItMjMgMDc6MTcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICByZS13b3JrIHBlcmwgb3B0aW9ucyB0byBmaXggcHJvYmxlbSB3L2NvbmZpZ3VyZSBhcmd1bWVudCBxdW90aW5nCgoyMDAzLTEyLTIzIDAyOjAwICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBOb3RlIHRoYXQgQ3lnd2luIG5vIGxvbmdlciBuZWVkcyBhIHNlcGFyYXRlIHJlZ2V4IGxpYnJhcnkKICAgUmVwb3J0ZWQgYnkgSm9obiBNY0Nhc2gKCjIwMDMtMTItMjIgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBwdXNoL3BvcDsgcmUtd29yayBpbmRleC9pbnRlcm5hbGluZGV4L2V4dGVybmFsaW5kZXgvbm9uaW5kZXggc2V0dXAKCjIwMDMtMTItMTkgMjA6MzggIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgICBtaWIyYy5hcnJheS11c2VyLmNvbmYsIG1pYjJjLmNoZWNrX3ZhbHVlcy5jb25mLAogICAgIG1pYjJjLmNvbmY6CgogICBQYXRjaCBmcm9tIEJyaWFuIEJ1ZXNrZXIgdG8gZml4IG1pc2MgcHJvYmxlbXMgKHZhcmlhYmxlIHt9aW5nLCAuLi4pCgoyMDAzLTEyLTE4IDAxOjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcG5ldHN0YXQuMToKCiAgIEZpeCBtb3JlIG1hcmt1cCBlcnJvcnMsIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZC4KCjIwMDMtMTItMTYgMDI6MDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiBmb3J3YXJkIGRlZmluaXRpb25zIChleHBsaWNpdCB2cyBpbXBsaWNpdCBzdHJ1Y3QpCiAgIFJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUKCjIwMDMtMTItMTEgMTg6NTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIHJwbSBidWlsZCBpbnN0cnVjdGlvbnMKCjIwMDMtMTItMTEgMTg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IHVwZGF0ZWQgcGVybCBvcHRpb25zIGZvciBuZXcgcnBtIG1ldGhvZAoKMjAwMy0xMi0xMSAxODo0MSAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICByZW1vdmUgVkVSL1JFTCwgdXNlIFZFUlNJT04vUkVMRUFTRTsgdXBkYXRlIHBlcmwgb3B0aW9ucyBmb3IgbmV3IHJwbSBtZXRob2Q7CiAgIGFkZCB0YXJnZXQgdG8gYnVpbGQgcnBtIHRyZWU7IGRvbid0IGhhcmRjb2RlIGFyY2hpdGVjdHVyZQoKMjAwMy0xMi0xMSAxODozOCAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBkb2N1bWVudCAtRCBvcHRpb247IGFkZCBNYWtlZmlsZSB0eXBlCgoyMDAzLTEyLTExIDE4OjIyICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgZG9uJ3QgcmVxdWlyZSBwZXJsOyBhZGQgbm90ZSBvbiB2ZW5kb3IgcmVsZWFzZXMKCjIwMDMtMTItMTEgMDg6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIHJ1biBpbmRlbnQKCjIwMDMtMTItMTEgMDg6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIG1vdmUgbG9naWMgdG8gc2tpcCB3aGVuIGNhY2hpbmcgZGlzYWJsZSwgbm8gY2FjaGUgZm91bmQgb3IgY2FjaGUgZGlzYWJsZWQKCjIwMDMtMTItMTAgMDY6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZGVsYXkgc291cmNpbmcgb2YgbnNiLWZ1bmN0aW9uczsgbXYgcmMgZmlsZSBpbnRvIH4vLnNubXA7IHJlbW92ZSBidWlsZCBkaXIKICAgb24gc3VjY2VzcwoKMjAwMy0xMi0xMCAwNjo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBkZWxheSBzb3VyY2luZyBvZiBuc2ItZnVuY3Rpb25zOyBtdiByYyBmaWxlIGludG8gfi8uc25tcAoKMjAwMy0xMi0xMCAwNjoxNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG5ldyB2YXJzOiBOU0JfVkVSU0lPTiBOU0JfQlVJTERfU1VGRklYOyBkb24ndCB1c2UgaG9zdG5hbWUgLXMsIHNpbmNlIHN1bgogICBkb2Vzbid0IHN1cHBvcnQgaXQ7IHR3ZWFrIGRlZmF1bHQgcGF0aHMKCjIwMDMtMTItMTAgMDI6NDEgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMy5kZWYsIHNubXAuY29uZi41LmRlZiwKICAgICBzbm1wX2NvbmZpZy41LmRlZjoKCiAgIEZpeCBhc3NvcnRlZCBtYXJrdXAgZXJyb3JzLCByZXBvcnRlZCBieSBFcmljIFJheW1vbmQuCgoyMDAzLTExLTMwIDE0OjI1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgZml4IHNjb3BlIG9mIGhhdmVfZGlyZW50IGlmZGVmCgoyMDAzLTExLTMwIDE0OjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIGFkZCBjb21tZW50czsgcmVtb3ZlIGFzc2VydCBvbiB2YWxpZCBjb25kaXRpb24KCjIwMDMtMTEtMzAgMTQ6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkZWJ1ZyBtc2cgd2hlbiBza2lwcGluZyB2YiB3aXRoIGJvZ3VzIGluZGV4CgoyMDAzLTExLTMwIDE0OjE5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICByZWFkYWJpbGl0eSBmaXggLSB1c2UgbWFjcm8gaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWUKCjIwMDMtMTEtMjggMDU6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgSWYgYSByb3cgaXMgY3JlYXRlZCB2aWEgYSBTRVQgcmVxdWVzdCwgdGhlbiBpdCBuZWVkcyB0byBiZSBtYWRlIGF2YWlsYWJsZQogICB0byB0aGUgb3RoZXIgY29sdW1ucyBhbmQgcGFzc2VzLiAgUHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgaW5zZXJ0aW5nIHRoaXMKICAgaW50byB0aGUgcmVxdWVzdCBsaXN0LgogICAoVGhpcyBsb29rcyBzdXNwaWNpb3VzbHkgc2ltaWxhciB0byBhbm90aGVyIHJlY2VudCBwYXRjaDotKSAgIERvZXMKICAgdGhpcyBmdW5jdGlvbmFsaXR5IHBlcmhhcHMgYmVsb25nIHdpdGhpbiB0aGUgdG9wLWxldmVsICd0YWJsZScgaGFuZGxlcj8pCgoyMDAzLTExLTI1IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gc3VwcG9ydCAkbm9kZS5kZXNjcmlwdGlvbgogICAtIHN1cHBvcnQgQHByaW50ZiAuLi5ACgoyMDAzLTExLTI1IDEyOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZGVmYXVsdCBidWlsZCBkaXJzOyBkZWZhdWx0IHRvIGhvc3QvdmVyc2lvbiBpbnN0ZWFkIG9mIHBsYXRmb3JtL3ZlcnNpb24KICAgKHNpbmNlIHNmIGJ1aWxkIGhvc3RzIGtlZXAgY2hhbmdpbmcgcGxhdGZvcm1zKQoKMjAwMy0xMS0yNSAxMjo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtb3ZlIGRpciBtdW5naW5nIGluIG5zYi1mdW5jdGlvbnMKCjIwMDMtMTEtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICB2ZXJzaW9uIHN0YW1wIHRoZSAuc3BlYyBmaWxlCgoyMDAzLTExLTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICB2ZXJzaW9uIG51bWJlciBjaGFuZ2UKCjIwMDMtMTEtMjQgMDk6MzggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGFkZCBhIGdyZWVjZSBtaXJyb3IKCjIwMDMtMTEtMjQgMDY6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgSGFuZGxlIGludmFsaWQgKDY0LWJpdCkgdmFsdWVzIGZvciBlbmdpbmUgYm9vdHMgJiB0aW1lCiAgIFBhdGNoICM4MjcwNDQgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDkyNTAKCjIwMDMtMTEtMjQgMDY6MjMgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ29ycmVjdCB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgLUN4IG9wdGlvbnMKICAgUGF0Y2ggIzgxODc2NiBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgxODYzNAoKMjAwMy0xMS0yNCAwNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIEhhbmRsZSBHRVRORVhUIHJlcXVlc3RzIG9uIHRoZSBockRldmljZVRhYmxlIHdpdGggYSAidG9vIGxhcmdlIiBpbmRleC4KICAgUGF0Y2ggIzgxMTcxNyBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwNzMxNQoKMjAwMy0xMS0yMSAwOToxMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBDb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBkaXNraW8gdmFsdWVzIG9uIDY0LWJpdCBTb2xhcmlzLgogICBQYXRjaCAjODA5MjU1IGJ5IEJvYiBSb3dsYW5kcywgdG8gZml4IGJ1ZyAjODA4OTc1CgoyMDAzLTExLTIxIDA5OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBGaXggU29sYXJpcyBpbXBsZW1lbnRhdGlvbiBvZiBpZkluTlVjYXN0UGt0cyAmIGlmT3V0TlVjYXN0UGt0cwogICBQYXRjaCAjODA4ODA3IGJ5IEJvYiBSb3dsYW5kcywgdG8gZml4IGJ1Z3MgIzgwODM5OSAmICM4MDg0MTcKCjIwMDMtMTEtMjEgMDg6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEltcGxlbWVudCBpZlNwZWNpZmljIG9iamVjdCBvbiBTb2xhcmlzLgogICBQYXRjaCAjODA4NzQ2IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA4NDMwCgoyMDAzLTExLTIxIDA3OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgRW5zdXJlIDMyLWJpdCB0aW1ldGlja3MgdmFsdWUgcmV0dXJuZWQgb24gU29sYXJpcyBraXQuCiAgIFBhdGNoICM4MDgwNzQgYnkgQm9iIFJvd2xhbmRzLCB0byBmaXggYnVnICM4MDc3OTYKCjIwMDMtMTEtMjEgMDc6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgUmV0dXJuIGFuIGVycm9yIG9uIGZhaWxlZCBvdmVycnJpZGUgd3JpdGUuCiAgIFBhdGNoICM4MDgwNTQgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDUyNTQKCjIwMDMtMTEtMjEgMDY6MzAgIGR0czEyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wdXNtLjEuZGVmOgoKICAgTWlub3IgY2xhcmlmaWNhdGlvbnMgdG8gYSBmZXcgbWFuIHBhZ2VzLgogICBQYXRjaCAjODA3OTM3IGZyb20gQm9iIFJvd2xhbmRzCgoyMDAzLTExLTIxIDA2OjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgSGFuZGxlIHN0b3JhZ2UgdW5pdHMgPDEwMjQgYnl0ZXMKICAgKFBhdGNoICM4MDEzNDEgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM3NTc0NDgpCgoyMDAzLTExLTIxIDA1OjIxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBXaGVuIHdlIHJlYWNoIHRoZSBlbmQgb2YgdGhlIGxhc3QgdGFibGUsIG1ha2Ugc3VyZSB0aGF0IHRoZSBoaWdoZXIgbGV2ZWwKICAgaGFuZGxlcnMgd2lsbCByZWFsaXNlIHRoaXMsIGFuZCBtb3ZlIG9uIHRvIHRoZSBuZXh0IHJlZ2lzdGVyZWQgbW9kdWxlLgogICBBbHNvIGNhdGNoIG1pc3NpbmcgY29sdW1ucyB3aGVuIHByb2Nlc3NpbmcgR0VUTkVYVCByZXF1ZXN0cy4KCjIwMDMtMTEtMjEgMDQ6MTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFN1cHBvcnQgYWNrbm93bGVkZ2VkIG5vdGlmaWNhdGlvbnMgKEluZm9ybSBhbmQgQWdlbnRYIE5vdGlmeSkgYXMKICAgd2VsbCBhcyB1bmFja25vd2xlZGdlZCBvbmVzLiAgIEZpcnN0IHJlcG9ydGVkIGJ5IGRhdmlkQGdyYW5jYW5hcmlhCiAgIFByb2JhYmx5IGRvZXNuJ3QgcmVzZW5kIGlmIG5vIHJlc3BvbnNlIGlzIHJlY2VpdmVkLgoKMjAwMy0xMS0yMCAwNzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYzoKCiAgIE1vdmUgc3VmZml4IHByb2Nlc3Npbmcgd2l0aGluIHRoZSByZXF1ZXN0IGxvb3AsIHNpbmNlIHY1LjEgaXRlcmF0b3IKICAgaGFuZGxlcnMgbWF5IHJlY2VpdmUgbXVsdGlwbGUgcmVxdWVzdCB2YXJiaW5kcy4gIEZpeCBwcm92aWRlZCBieSBCYXJiIFJvZXNjaAoKMjAwMy0xMS0yMCAwNjozNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFByb3RlY3QgJ3VucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uJyBmcm9tIGJlaW5nIGNhbGxlZCB3aXRoIGEgTlVMTAogICBzZXNzaW9uIHBvaW50ZXIuICAoVXNlZCB3aGVuIHVucmVnaXN0ZXJpbmcgImludGVybmFsIiBNSUIgbW9kdWxlcykKCjIwMDMtMTEtMjAgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgQmUgY29uc2lzdGVudCBpbiB1c2Ugb2YgcmV0dXJuIHZhcmlhYmxlIG5hbWUgZm9yIEhQLVVYIDExCiAgIChGaXhlZCBidWcgIzg0NTQ2MCkKCjIwMDMtMTEtMTkgMTY6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgoKMjAwMy0xMS0xOSAxNjoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IHVzZSBub24tcG9ydGFibGUgLmM9Lm8gdHlwZSBzdWJzdGl0dXRpb25zIGluIG1ha2VmaWxlOyB0aHVzIHB1dCBvYmovbG9iagogICBnZW5lcmF0aW9uIGJhY2sgaW4gY29uZmlndXJlCgoyMDAzLTExLTE5IDA3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBFbmFibGUgcmV0cmllcyBvbiBHZXROZXh0IG5vU3VjaEluc3RhbmNlIGV4Y2VwdGlvbnMuIEZpeGVzIGJ1ZyAjODQzODQyCgoyMDAzLTExLTE5IDA3OjMyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwgYWdlbnQvaGVscGVycy93YXRjaGVyLmMKOgoKICAgRml4IHdhdGNoZWQgdGltZXN0YW1wIHJlZ2lzdHJhdGlvbi4gJ21hcmtlcl90JyBpcyBhbHJlYWR5IGEgcG9pbnRlciwKICAgc28gZG9lc24ndCBuZWVkIGZ1cnRoZXIgZGVyZWZlcmVuY2luZyEKCjIwMDMtMTEtMTcgMDk6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jOgoKICAgRml4IGNyZWF0aW9uIG9mIG5ldyBsb2dnaW5nIGVudHJpZXMuCgoyMDAzLTExLTE3IDA5OjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgSWYgYSByb3cgaXMgY3JlYXRlZCB2aWEgYSBTRVQgcmVxdWVzdCwgdGhlbiBpdCBuZWVkcyB0byBiZSBpbnNlcnRlZCBpbnRvCiAgIHRoZSBpdGVyYXRpb24gZGF0YSBzdHJ1Y3R1cmVzLCBzbyB0aGF0IGl0J3MgYXZhaWxhYmxlIHRvIG90aGVyIGNvbHVtbnMgJiBwYXNzZXMuCgoyMDAzLTExLTE3IDA5OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgUmVsZWFzZSB0aGUgZGF0YSBzdHJ1Y3R1cmUgb25jZSBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCgoyMDAzLTExLTE3IDAyOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3RjcC5jLCB1Y2Qtc25tcC92bXN0YXQuYzoKCiAgIEF2b2lkIHVzaW5nIHRoZSB2YXJpYWJsZSBuYW1lICdoeicgKHdoaWNoIGdldHMgY29ycnVwdGVkIG9uIEFJWCBhbmQgSFBVWAogICBieSBzeXN0ZW0gcmVkZWZpbml0aW9ucykuICBTZWUgYnVnICM4NDI0NzUgJiAjODQyNDgzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjkgLT4gVjUuMQoKMjAwMy0xMS0xMyAxODo0NiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJldmVyc2UgNS54IGFuZCA0LnggbGlzdGluZyBzaW5jZSwgdW0sIHRoaXMgaXMgNS54IChhZ2FpbikKICAgCjIwMDMtMTEtMTMgMTg6NDQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZXZlcnNlIDUueCBhbmQgNC54IGxpc3Rpbmcgc2luY2UsIHVtLCB0aGlzIGlzIDUueAogICAKMjAwMy0xMS0xMyAxODo0MiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9kZXByZWNhdGVkLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMKLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4xCiAgIAoyMDAzLTExLTEzIDE4OjIxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjEKICAgCjIwMDMtMTEtMTMgMTg6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgcGF0Y2ggIzgzODExMiB0byBmaXggd2luZG93cyBwZXJsIGJ1aWxkaW5nCiAgIAoyMDAzLTExLTEzIDE3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggcmVnZXhwIGZvciBkdXBsaWNhdGUgaW5kZXggZXhjbHVzaW9uIHRvIG9ubHkgbWF0Y2ggd2hvbGUgd29yZHMKICAgCjIwMDMtMTEtMTMgMTU6MDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgc3Rhc2hfY2FjaGUKICAgCjIwMDMtMTEtMTMgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNDYWNoZS5jLCBuc0RlYnVnLmMsCiAgIG5zTG9nZ2luZy5jOgoKICAgLSBwcm9wZXJseSBjaGVjayBmb3IgdGhlIC0+cHJvY2Vzc2VkIGZsYWcuCiAgICAgLSAoZml4ZXMgYSBidWcgcG9pbnRlZCBvdXQgYnkgQnJ1Y2Ugd2hlcmUgYSBnZXRuZXh0IHJldHVybmVkIG5vU3VjaEluc3RhbmNlKQogICAKMjAwMy0xMS0xMyAxMjoxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRvbid0IGNhbGwgaGFuZGxlcnMgZm9yIGVycm9yIHJlY292ZXJ5IGlmIHRoZXkgaGFkbid0IGJlZW4gY2FsbGVkIGZvciBhdCBsZWFzdAogICByZXNlcnZlMSAoZS5nLiBzZXQgdy9pbnZhbGlkIGluZGV4ZXMpCiAgIAoyMDAzLTExLTEzIDExOjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBmaXggdm9pZCBkZWZpbml0aW9uIGZvciBuZXRzbm1wX2Fzc2VydCB3aGVuIGRlYnVnZ2luZyBkaXNhYmxlZCwgbm90ZWQgb24gY29kZXJzCiAgIAoyMDAzLTExLTEzIDExOjMyICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYXBwbHkgcGF0Y2ggWyA4NDE0NjMgXSA1LjFyYzEgUkVBRE1FLndpbjMyIGNoYW5nZXMKICAgCjIwMDMtMTEtMTIgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgUHJvdmlkZWUgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IgUm91dGVfU2Nhbl9SZWxvYWQKICAgSFAtVVggMTEgb25seS4gIExhdGVzdCBpbiB0aGUgc2FnYSBvZiBidWcgIyA4NDA2MTUKICAgCjIwMDMtMTEtMTIgMDQ6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3BUYWJsZS5jCjoKCiAgIEZpeCBtb3JlIEhQLVVYIDExIHNwZWNpZmljIGJvZ3VzIGNvZGUuCiAgIFRyYWNraW5nIEJ1ZyAjODQwNjE1CiAgIAoyMDAzLTExLTEyIDAyOjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIFVzZSBjb3JyZWN0IHZhcmlhYmxlIGZvciBkZXRlY3Rpbmcgd2hpY2ggb2JqZWN0IGlzIGJlaW5nIHByb2Nlc3NlZC4KICAgKEhQVVgtMTEgb25seSAtIGZpeGVzIGJ1ZyAjODQwNjE1KQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0xMS0xMCAwODo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBkb24ndCBkb3VibGUgY3JlYXRlIHRlbXAgZGlyZWN0b3J5CiAgIAoyMDAzLTExLTEwIDA4OjQ2ICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBhbHdheXMgdXNlIGlubGluZSwgbm93IHRoYXQgaXQgd29ya3MgKG5lZWRlZCBleHRlcm4pCiAgIAoyMDAzLTExLTA3IDE2OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwgbWZkLWludGVyZmFjZS5tMmMKLCBtZmQtdG9wLm0yYywgbm9kZS1zZXQubTJpLCBwYXJlbnQtc2V0Lm0yaQo6CgogICB1c2UgREVCVUdUUkFDRSBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBfX0ZVTkNUSU9OX18KICAgCjIwMDMtMTEtMDcgMTA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgbXVjaCBiZXR0ZXIgZXJyb3IgbWVzc2FnZSB3aGVuIGEgTUlCIG5vZGUgY2FuJ3QgYmUgZm91bmQgaW4gdGhlCiAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKICAgCjIwMDMtMTEtMDcgMTA6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICAtIGZpeCBzZWQgc2NyaXB0IHJlZ2V4cCBmb3Igb2RkIHZlcnNpb25zIChwcmUyYiwgZWcpLgogICAtIG1ha2UgLWggYWN0dWFsbHkgcHJpbnQgaGVscC4KICAgCjIwMDMtMTEtMDcgMDk6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBicmFjZXMgYXJvdW5kIHZhciBuYW1lCiAgIAoyMDAzLTExLTA2IDIwOjQ2ICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1c2UgaW5saW5lIHRvIF9faW5saW5lIGZyb20gbWFpbiBuZXQtc25tcC1jb25maWcgZmlsZTsgYWRkIGV4dGVybiB0byBiYXNpYwogICBORVRTTk1QX0lOTElORSBkZWYsIHBlciBNUyB0ZWNoIG5vdGUgMTIzNzY4CiAgIAoyMDAzLTExLTA2IDIwOjQyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBseSBwYXRjaCBbIDgyODM2MiBdIEZpcnN0IHBhc3MgYXQgTWluR1czMgogICAKMjAwMy0xMS0wNiAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzeXN0ZW0uYyAoVjUtMC1wYXRjaGVzLjIpLCBzeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgODM2MTYyIF0gNS4xcHJlMyB3aW4zMiBta2RpcmhpZXIoKQogICAKMjAwMy0xMS0wNiAyMDowMCAgcnN0b3J5CgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBhcHBseSBwYXRjaCBbIDgzNzYzMyBdIDUuMXByZTMgd2luMzIgbGliIHJlbmFtZQogICAKMjAwMy0xMS0wNiAxNjowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICByZXN0b3JlIGFjY2lkZW50YWxseSBkZWxldGVkIFxuIGluIHRyYWNlIG1hY3JvCiAgIAoyMDAzLTExLTA1IDE5OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29tbWVudCBmb3IgcG9zc2libGUgZnV0dXJlIG9wdGltaXphdGlvbgogICAKMjAwMy0xMS0wNSAxOToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGFwcGx5IHNwaXJpdCBvZiBwYXRjaCA4MzY3MjE6IHVzZSBuZXcgdG1wIGZpbGUgcGF0dGVybiBtYWNybzsgdXNlIF9vcGVuIG9uCiAgIHdpbmRvd3M7IGFkZCBlcnIgbG9nICYgZGVidWcgbXNnOyBpbmNsdWRlIHN5cy9zdGF0LmggaWZmIGV4aXN0cwogICAKMjAwMy0xMS0wNSAxOTowNSAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgYXBwbHkgc3Bpcml0IG9mIHBhdGNoIDgzNjcyMTogZGVmaW5lIEhBVkVfU1lTVEVNOyBhZGQgbmV3IHRtcCBmaWxlIHBhdHRlcm4gbWFjcm8KICAgCjIwMDMtMTEtMDUgMTk6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgYXBwbHkgc3Bpcml0IG9mIHBhdGNoIDgzNjcyMSBmb3IgcnVuX3NoZWxsX2NvbW1hbmQ6IHRlc3QgZm9yIGJhZCByZXR1cm4gY29kZXMKICAgZnJvbSBmdW5jdGlvbnM7IGRvbid0IHRvdWNoIG91dF9sZW4gaWYgb3V0cHV0IG5vdCBzZXQgb3Igb3V0X2xlbiBpcyBudWxsCiAgIAoyMDAzLTExLTA1IDE4OjU1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlZ2VuZXJhdGUgZnJvbSBhY2xvY2FsLmgsIHdoaWNoIHJldmVhbHMgdGhhdCB3ZSBjYW4ndCBkbyBhbiBpZmRlZiB0ZXN0CiAgIHRvIHByZXZlbnQgcmVkZWZpbmluZyBQQUNLQUdFXyogdW5sZXNzIGl0IGlzIG1hbnVhbGx5IHJlLWFkZGVkIGVhY2ggdGltZQogICB0aGlzIGZpbGUgaXMgcmVnZW5lcmF0ZWQgZnJvbSBhY2NvbmZpZy5oLiBCbGVjaC4KICAgCjIwMDMtMTEtMDUgMTg6NTAgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG1hY3JvIGZvciB0ZW1wIGZpbGUgbmFtZSAoY29uZmlndXJlIG9wdGlvbiB0YmQpCiAgIAoyMDAzLTExLTA1IDE4OjE0ICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzMyMTYgXSA1LjEucHJlMyBXaW4zMiBjb21waWxlIHBhdGNoCiAgIAoyMDAzLTExLTA1IDE4OjEzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWcuaW4KICAgCjIwMDMtMTEtMDUgMTg6MTEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBpbmNsdWRlIG1pYmdyb3VwIHV0aWxpdGllcyBmb3IgbWluaS1hZ2VudCAocnVuX3NoZWxsX2NvbW1hbmQgZm9yIHNubXB0cmFwZCkKICAgCjIwMDMtMTEtMDUgMDk6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpCiwgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksIG1mZC1pbnRlcmZhY2UubTJjCjoKCiAgIGFsd2F5cyBjb252ZXJ0IGdlbmVyYXRlZCBhcnJheSBsZW4gdG8gYXJyYXkgZWxlbWVudCBjb3VudCAobm90IGJ5dGVzKQogICAKMjAwMy0xMS0wNSAwMjo1MiAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0YWJsZS5jIChWNS0wLXBhdGNoZXMuMSksIHNubXB0YWJsZS5jOgoKICAgRG9uJ3QgdHJ5IHNlYXJjaGluZyBmb3IgY29sdW1uIG9iamVjdHMgaWYgdGhlcmUgaXNuJ3QgYW55dGhpbmcgdG8gc2VhcmNoLgogICBSZXBvcnQgcHJvYmxlbXMgdXNpbmcgdGhlIG9iamVjdCBuYW1lIG9yaWdpbmFsbHkgc3BlY2lmaWVkLCByYXRoZXIgdGhhbgogICBhIHRlbXBvcmFyeSBpbnRlcm5hbCBidWZmZXIuCiAgIAoyMDAzLTExLTA0IDE1OjA2ICByc3RvcnkKCiAgICogd2luMzIvOiBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgSU5MSU5FIGNoYW5nZXMgLSBkb24ndCB1c2UgaW5saW5lIGZvciB0aGUgRExMIHZlcnNpb24sIGFzIGl0J3MgcmVwb3J0ZWQgdG8KICAgY2F1c2UgZXJyb3JzCiAgIAoyMDAzLTExLTA0IDE0OjQ1ICByc3RvcnkKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdywKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIGFwcGx5IHBhdGNoIFsgODMzMjE2IF0gNS4xLnByZTMgV2luMzIgY29tcGlsZSBwYXRjaAogICAKMjAwMy0xMS0wNCAwODo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkb24ndCBkZWZpbmUgY29uZmlndXJlIFBBQ0tBR0VfKiBtYWNyb3MgaWYgYWxyZWFkeSBkZWZpbmVzLgogICAKMjAwMy0xMS0wNCAwODowNCAgZHRzMTIKCiAgICogRkFROgoKICAgQSBuZXcgZW50cnkgZGlzY3Vzc2luZyB0YWJsZXMgd2l0aCA+MjU2IGNvbHVtbnMuCiAgIAoyMDAzLTExLTA0IDA3OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LXNldC5tMmk6CgogICBhbHdheXMgZ2VuZXJhdGUgY29kZSB3aGVuIGRhdGEgY29udGV4dCBpcyBnZW5lcmF0ZWQKICAgCjIwMDMtMTEtMDQgMDc6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmk6CgogICBjbGFyaWZ5IGNvbW1lbnRzCiAgIAoyMDAzLTExLTA0IDA3OjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaToKCiAgIGNsYXJpZnkgY29tbWVudHM7IHVzZSBnZW5lcmljLXNldCBpbnN0ZWFkIG9mIGdldAogICAKMjAwMy0xMS0wNCAwNzoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGNsYXJpZnkgY29tbWVudHMKICAgCjIwMDMtMTEtMDQgMDc6MTkgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBzeW5jIGNvbnRyaWJ1dG9ycyB3LzUuMC54CiAgIAoyMDAzLTExLTA0IDAxOjI4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBEb2N1bWVudCB0aGUgZWZmZWN0IG9mIC1DIG9uIHBlcnNpc3RlbnQgY29uZmlnIGZpbGVzLgogICAKMjAwMy0xMS0wMyAxNDoyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBmaXggZ2VuZXJhdGVkIGNvZGUgZm9yIHVuZG9fc2V0dXAKICAgCjIwMDMtMTEtMDMgMTI6NTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIGNsYXJpZnkgY29tbWVudHM7IHJlbW92ZSBib2d1cyBhc3NlcnRzCiAgIAoyMDAzLTExLTAzIDEwOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWNoYXIubTJpOgoKICAgbWFrZSBJU19TRVQgbWFjcm9zIHVuaXF1ZSBwZXIgbm9kZQogICAKMjAwMy0xMS0wMyAxMDozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpOgoKICAgZml4IHZhciBuYW1lIHR5cG8KICAgCjIwMDMtMTEtMDMgMTA6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmk6CgogICBtdXN0IHVzZSBhZGRyIG9mIGxvY2FsIHZhciB0byBnZXQgcHRyCiAgIAoyMDAzLTExLTAzIDEwOjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaToKCiAgIG11c3QgdXNlIGFkZHIgb2YgbG9jYWwgdmFyIHRvIGdldCBwdHIKICAgCjIwMDMtMTEtMDMgMTA6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIHNldCB1cCBkZWZhdWx0cyBmb3IgbWZkIHRhYmxlcwogICAKMjAwMy0xMS0wMyAwNzo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVjb2duaXplIFNOTVBfTVNHX1NFVCBpcyBub3QgYSB2YWxpZCBHRVQgbW9kZTsgY29tbWVudCB0d2Vha3MKICAgCjIwMDMtMTEtMDMgMDc6MjYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgUmVjb2duaXNlIFNOTVBfTVNHX1NFVCBhcyBhIHZhbGlkIFNFVCBtb2RlCiAgIChzbyB0aGF0IHRoZSB2YXJiaW5kIGNhY2hpbmcgZG9lc24ndCBsb3NlIHRoZSBhc3NpZ25lZCB2YWx1ZXMhKQogICAKMjAwMy0xMS0wMiAwOTo1MSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIHJlc3RvcmUgYWNjaWRlbnRhbHkgZGVsZXRlZCBocHV4IGRlZmluZTsgYWRkIGNvbW1lbnQKICAgCjIwMDMtMTEtMDIgMDQ6NTUgIG5iYQoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIEZpeCBhIGJ1bmNoIG9mIGNvbXBpbGVyIHdhcm5pbmdzOiBjb25zdC1uZXNzLCBjYXN0cywgbWlzc2luZyBwcm90b3lwZXMsCiAgIHVudXNlZCB2YXJpYWJsZXMsIGN2cyBpZ25vcmUgaWdub3JhYmxlIGZpbGVzCiAgIAoyMDAzLTExLTAyIDA0OjUwICBuYmEKCiAgICogLmN2c2lnbm9yZSwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYXBwcy8uY3ZzaWdub3JlLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3M6IGNvbnN0LW5lc3MsIGNhc3RzLCBtaXNzaW5nIHByb3RveXBlcywKICAgdW51c2VkIHZhcmlhYmxlcywgY3ZzIGlnbm9yZSBpZ25vcmFibGUgZmlsZXMKICAgCjIwMDMtMTEtMDIgMDQ6NDQgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEZpeCBhIGJhZCBzeW50YXggd2hlbiB0ZXN0aW5nIGZvciBwZXJsIG1vZHVsZXMKICAgCjIwMDMtMTEtMDIgMDQ6NDIgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgbWFuL3NubXBuZXRzdGF0LjE6CgogICBBbm90aGVyIGxlZnQgb3ZlciAtcCBvcHRpb24KICAgCjIwMDMtMTEtMDEgMTY6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgYWx3YXlzIHF1b3RlIGJvdGggc2lkZXMgb2YgcGVybCBuZS9lcSB0ZXN0czsgYWxsb3cgb3ZlcnJpZGUgb2YgdmFyYmluZCB2YXJpYWJsZQogICBuYW1lOyBhZGQgc3ViaWQgdG8gbm9kZSBzdW1tYXJ5CiAgIAoyMDAzLTExLTAxIDE2OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBtb3ZlIGV4YW1wbGUgYW5kIHRyYW5zaWVudCBkZWZhdWx0cyB0byB0YWJsZSBzZXR1cAogICAKMjAwMy0xMS0wMSAxNjowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnIGN0eCBmcm9tIHZvaWQqIHRvIG5ldHNubXBfZGF0YV9saXN0ICo7IG1vdmUgZXhhbXBsZQogICBhbmQgdHJhbnNpZW50IGRlZmF1bHRzIGhlcmUgKGZyb20gdG9wKQogICAKMjAwMy0xMS0wMSAxNTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICBhZGQgJ1RPRE8nIGNvbW1lbnQ7IGRvbid0IGdlbmVyYXRlIGNvZGUgaWYgZXhhbXBsZSBub3Qgc2V0ICYgbm90IGdlbmVyYXRlZCBkYXRhCiAgIGNvbnRleHQ7IGRlZmF1bHQgdG8gcmV0dXJuaW5nIG5vIGRhdGEgZm9yIG5vZGU7CiAgIAoyMDAzLTExLTAxIDE1OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHVzZSBxdW90ZXMgb24gYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzOyBmaXggcmVnIHB0ciBkY2wKICAgCjIwMDMtMTEtMDEgMTU6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGFkZCB1c2VycyB0YXJnZXQgdG8gb25seSBidWlsZCB1c2VyIGNvZGUKICAgCjIwMDMtMTEtMDEgMTU6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgcXVvdGVzIG9uIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0czsgY2hlY2tfaW5kZXhzIGlzIG9ubHkgZm9yIHJvdwogICBjcmVhdGlvbjsgZGF0YSBub3QgZm91bmQgb25seSBvayBmb3Igcm93IGNyZWF0aW9uLCBub3Qgc2V0dGFibGU7IHNhbml0eQogICBjaGVjayBmb3IgYm9ndXMgaW5kZXggb2lkIHNpemUgYmVmb3JlIG1lbWNweTsgc2V0IEFTTl9QUklWX1JFVFJZIGZvciBubyBkYXRhLAogICBzbyBzcGFyc2UgdGFibGVzIHdvcmsKICAgCjIwMDMtMTEtMDEgMTU6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHNldCBvaWQgc2l6ZSB0byBtYXggYmVmb3JlIHRyeWluZyB0byBwYXJzZSBvaWQKICAgCjIwMDMtMTEtMDEgMTU6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICByZW5hbWUgcmVmIHRvIGxvb3BfcmVmOyBtb3JlIGFzc2VydHM7IG1vdmUgVE9ETyBvdXRzaWRlIG9mIGNvbmRpdGlvbmFsOyBtb3ZlCiAgIGl0cl9jdHIgZnJlZSBvdXRzaWRlIG9mIGV4YW1wbGUgY29uZGl0aW9uYWwKICAgCjIwMDMtMTEtMDEgMTU6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC5tMmk6CgogICB0d2VhayBpbmRlbnRpb24KICAgCjIwMDMtMTEtMDEgMTU6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBtb3ZlIFRPRE8gb3V0c2lkZSBvZiBjb25kaXRpb25hbDsgZG9uJ3QgaW5jbHVkZSBjb2RlIGlmIGV4YW1wbGVzIG5vdCBzZXQKICAgCjIwMDMtMTEtMDEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBxdW90ZSBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHM7IGRvY3VtZW50IGluY2x1ZGUgaW4gY29tbWVudHMKICAgCjIwMDMtMTEtMDEgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtY29weS5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgbW92ZSBUT0RPIG91dHNpZGUgb2YgY29uZGl0aW9uYWw7IHR3ZWFrIGNvbmRpdGlvbmFsCiAgIAoyMDAzLTExLTAxIDE1OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBtb3ZlIGNvbmRpdGlvbmFsIGluc2lkZSBpbmNsdWRlCiAgIAoyMDAzLTExLTAxIDE1OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLXJlYWRtZS5tMmMKLCBwYXJlbnQtc2V0Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBxdW90ZSBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHMKICAgCjIwMDMtMTEtMDEgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cykKICAgCjIwMDMtMTEtMDEgMTU6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBzeW50YXgtQ09VTlRFUjY0LWdldC5tMmksCiAgIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaQo6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgZGVmYXVsdCB0byByZXR1cm5pbmcgbm8gZGF0YSBmb3Igbm9kZXMKICAgCjIwMDMtMTEtMDEgMTU6MjEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwKICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLCBtZmQtZGF0YS1zZXQubTJjCiwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKQogICAKMjAwMy0xMS0wMSAxNToxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy10by1vaWQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmk6CgogICBuZXcgY29kZSBmb3IgaW5kZXhlcyBhbmQgb2lkIGNvbnZlcnNpb25zCiAgIAoyMDAzLTExLTAxIDEwOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIHVzZSBlbmRvZm1pYnZpZXcgaW5zdGVhZCBvZiBub192YXJzCiAgIAoyMDAzLTEwLTMwIDE3OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKOgoKICAgYWRkIGNvbW1lbnRzCiAgIAoyMDAzLTEwLTMwIDE3OjM3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmdW5jIHBhcmFtZXRlciwgbm90IHZhcmlhYmxlIHdlJ3JlIGFib3V0IHRvIG92ZXJ3cml0ZQogICAKMjAwMy0xMC0zMCAxNzozNiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZGVjbGFyZSAgY2FsbGJhY2tfbWFzdGVyX251bSBldmVuIGlmIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiBpcyBub3QKICAgZGVmaW5lZCAoc28gSSBkb24ndCBuZWVkIHRvIGFkZCBtb3JlIGlmZGVmJ3MgaW4gb3RoZXIgY29kZSkKICAgCjIwMDMtMTAtMzAgMTc6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBsb2cgd2FybmluZyBhbmQgZG9uJ3Qgb3BlbiBjYWxsYmFjayB0cmFuc3BvcnQgaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiAgIGlzIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTEwLTMwIDE3OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBsb2cgd2FybmluZyBhbmQgZG9uJ3Qgb3BlbiBjYWxsYmFjayB0cmFuc3BvcnQgaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiAgIGlzIG5vdCBkZWZpbmVkOyBmaXggdGVzdCBmb3IgYWdlbnR4X29wZW5fc2Vzc2lvbgogICAKMjAwMy0xMC0zMCAxNzoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBkb24ndCBjb21waWxlIGNvZGUgaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTEwLTMwIDE2OjUxICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBtZXJnZSB0cmFuc3BvcnQgY29tbWVudHMgZnJvbSBub24td2luIG5ldC1zbm1wLWNvbmZpZy5oOyB1bmRlZiBjYWxsYmFjawogICB0cmFuc3BvcnQgaW5zdGVhZCBvZiBkZWYgb2YgMCwgc28gaXQgYWN0dWFsbHkgdHVybnMgb2ZmIGNvZGU7IHVuZGVmIGlubGluZQogICBtYWNyb3MgYmVmb3JlIHJlZGVmaW5pbmcgdGhlbQogICAKMjAwMy0xMC0zMCAxNjo0OSAgcnN0b3J5CgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgcmVwbGFjZSBjb250ZW50cyB3L2luY2x1ZGUgb2YgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc28gb25seSBvbmUgaGVhZGVyCiAgIG5lZWRzIHRvIGJlIG1haW50YWluZWQuIEV2ZXJ5b25lIHNob3VsZCBiZSB1c2luZyB0aGUgbmV3IG9uZSBhbnl3YXksIHJpZ2h0PwogICAKMjAwMy0xMC0zMCAwMTozMSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEb24ndCBjb25maWd1cmUgdGhlIEhvc3QtUmVzb3VyY2VzIHN1cHBvcnQgYnkgZGVmYXVsdC4KICAgSXQncyBhIGdvb2QgaWRlYSwgYnV0IHdlJ3JlIHRvbyBjbG9zZSB0byA1LjEgZm9yIHRoaXMgdG8gYmUgc2FmZS4KICAgCjIwMDMtMTAtMjkgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGlubGluZSAtPiBORVRTTk1QX0lOTElORQogICAKMjAwMy0xMC0yOSAwMzoxMCAgZHRzMTIKCiAgICogbWFuLzogc25tcGNtZC4xLmRlZiwgc25tcGQuOC5kZWYsIHNubXB0cmFwZC44LmRlZgo6CgogICBEb2N1bWVudCBuZXcgLUx4IGxvZ2dpbmcgb3B0aW9uIGJsb2NrLCBhbmQgYXNzb3J0ZWQgZGVwcmVjYXRlZCBvcHRpb25zLgogICAKMjAwMy0xMC0yOSAwMjo1OSAgZHRzMTIKCiAgICogRkFROgoKICAgVmFyaW91cyB1cGRhdGVzIHRvIHRoZSBGQVEuCiAgICAgSGlnaGxpZ2h0cyBpbmNsdWRlIGJldHRlciBleHBsYW5hdGlvbiBvZiBhY2Nlc3MgY29udHJvbCBhbmQgdGltZW91dAogICBwcm9ibGVtcywgZGlzY3Vzc2lvbiBvZiB3aGF0IHRyYXBzIGFyZSBzZW50IGFuZCB3aGVyZSB0byAoaW5jbHVkaW5nCiAgIERpc21hbiBFdmVudC1NSUIgc3VwcG9ydCkgYW5kIG1vcmUgb24gbWliMmMgdXNhZ2UgKGluY2x1ZGluZyB0aGUKICAgZGlmZmVyZW5jZXMgYmV0d2VlbiBjb25maWdzLCBhbmQgcG9pbnRlcnMgdG8gZXhhbXBsZXMpLgogICAgIFNlcGFyYXRlIHNlY3Rpb25zIGZvciBjb21waWxhdGlvbiBhbmQgY29kaW5nIG5ldyBtb2R1bGVzCiAgIChyZXN0cnVjdHVyaW5nIGV4aXN0aW5nIGVudHJpZXMpCiAgICAgUmVmZXIgdG8gcHJvamVjdCBhcyAnTmV0LVNOTVAnIHJhdGhlciB0aGFuICdVQ0QnIHRocm91Z2hvdXQKICAgKGV4Y2VwdCB3aGVyZSBzcGVjaWZpY2FsbHkgdjQgb3IgVUNELVNOTVAtTUlCIGFyZSBtZWFudCkKICAgCjIwMDMtMTAtMjkgMDI6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNS0wLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaCAoVjQtMi1wYXRjaGVzLlsxLDJdKSwgc3lzT1JUYWJsZS5oOgoKICAgRml4IG51bGwgZGVmaW5pdGlvbiBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSAod2hlbiBub3QgdXNpbmcgdGhpcyB0YWJsZSkuCiAgIFJlcG9ydGVkIGJ5IE1hcmsgSG9wa2lucwogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTUgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZiwgbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsCiAgIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMwosIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywKICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLAogICBtYW4vbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMKLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKLCBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLAogICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMKLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMKLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMywgbWFuL25ldHNubXBfdXRpbC4zLAogICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjEucHJlMwogICAKMjAwMy0xMC0yOCAxODowNSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMTAtMjggMTc6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGZpeCB2ZXJzaW9uIGZvciA1LjEgcmVsZWFzZQogICAKMjAwMy0xMC0yOCAxMjo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZWdlbmVyYXRlIGZyb20gbmV3IGFjY29uZmlnLmgKICAgCjIwMDMtMTAtMjggMTI6NDUgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZml4IGJ1ZyBbIDgzMDg1MiBdIEJ1aWxkIGRvZXNuJ3Qgd29yayBvbiBIUC1VWCAxMWkKICAgdW5kZWYgbWFjcm8gYmVmb3JlIHJlZGVmaW5pbmcgaXQKICAgCjIwMDMtMTAtMjggMTA6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHJvdXRlX3dyaXRlLmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAgcm91dGVfd3JpdGUuYzoKCiAgIGFwcGx5IHBhdGNoIFsgODEyMDE5IF0gc25tcHNldCBvbiBpcFJvdXRlRGVzdC4xMjcuMC4wLjEga2lsbCBhZ2VudCBkdW1wcyBjb3JlCiAgIGZpeGVzIGJ1ZyBbIDgwODk1OCBdIE9TU3VuIHNubXBzZXQgb24gaXBSb3V0ZURlc3QuMTI3LjAuMC4xIGtpbGwgYWdlbnQgZHVtcHMgLi4uCiAgIAoyMDAzLTEwLTI4IDEwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IGRlYnVnX2hhbmRsZXIuYyAoVjUtMC1wYXRjaGVzLjEpLCBkZWJ1Z19oYW5kbGVyLmMKOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzExNjEgXSBuZXRzbm1wX2dldF9kZWJ1Z19oZWxwZXIgY3Jhc2hlcyBzbm1wZAogICBmaXhlcyBidWcgWyA4MjY5NjMgXSBuZXRzbm1wX2dldF9kZWJ1Z19oZWxwZXIgY3Jhc2hlcyBzbm1wZAogICAKMjAwMy0xMC0yOCAxMDowNSAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYXBwbHkgcGF0Y2ggWyA4Mjk2MzMgXSA1LjFwcmUxIFBlcmwgdHJhbnNsYXRlT2JqIGZpeAogICAKMjAwMy0xMC0yOCAwNzozMiAgcnN0b3J5CgogICAqIGRpc3QvOiBuZXQtc25tcC5zcGVjIChWNS0wLXBhdGNoZXMuMyksIG5ldC1zbm1wLnNwZWM6CgogICBhcHBhcmVudGx5IG5lc3RlZCAlaWYncyBhcmUgYSBuby1ubwogICAKMjAwMy0xMC0yOCAwNzoyMiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGZpeCBwZXJsIGNvbmRpdGlvbmFsIGJ1aWxkcyBhZnRlciByZWFkIHJwbSBkb2NzCiAgIAoyMDAzLTEwLTI2IDAwOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgaW5saW5lIC0+IE5FVFNOTVBfSU5MSU5FIGFzIHBvaW50ZWQgb3V0IGJ5IEFsZXggQnVyZ2VyCiAgIAoyMDAzLTEwLTI0IDE2OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIHJlbmFtZSBsb29wX2N0eCBsb29wX2NvbnRleHQ7IHByZWZpeCBhbGwgbG9vcCBmdW5jdGlvbnMgdy9sb29wCiAgIAoyMDAzLTEwLTI0IDE2OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgbW92ZSBkZWZhdWx0cyB0byBhbiBlYXNpZXIgdG8gc3BvdCBwbGFjZQogICAKMjAwMy0xMC0yNCAxNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLCBtZmQtdG9wLm0yYwo6CgogICByZW5hbWUgdGFibGVfaWR4IHRhYmxlX21pYl9pbmRleDsgcmVuYW1lIGxvb3BfY3R4IGxvb3BfY29udGV4dDsgcHJlZml4IGFsbAogICBsb29wIGZ1bmN0aW9ucyB3L2xvb3A7IHJlbW92ZSBpbmRleDJvaWQKICAgCjIwMDMtMTAtMjQgMDY6MDIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIEhvc3QtUmVzb3VyY2VzIHN1cHBvcnQgdG8gdGhlIGxpc3Qgb2YgZGVmYXVsdCBNSUIgbW9kdWxlcy4KICAgV2UndmUgdGFsa2VkIGFib3V0IHRoaXMgZm9yIHllYXJzIC0gaXQncyBhYm91dCB0aW1lIHdlIGRpZCBzbyEKICAgCjIwMDMtMTAtMjQgMDU6NDkgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBOZXcgY2hvaWNlcyBmb3Igc29tZSBjb21tYW5kLWxpbmUgb3B0aW9ucywgdG8gaW1wcm92ZSBjb25zaXN0ZW5jeQogICBiZXR3ZWVuIGFnZW50IGFuZCB0cmFwIGhhbmRsZXIgdXNhZ2UuICBUaGUgcHJldmlvdXMgb3B0aW9ucyBzdGlsbAogICB3b3JrIGJ1dCBhcmUgbm93IG1hcmtlZCBhcyAiZGVwcmVjYXRlZCIuICBUaGVzZSBzaG91bGQgcHJvYmFibHkKICAgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIGEgZnV0dXJlIHJlbGVhc2UgKGUuZy4gNS4yKS4KICAgCjIwMDMtMTAtMjMgMTU6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBmaXggYnVnIDgyODY3MTogVGhlIGxpYiBpc24ndCBDKysgY29tcGF0aWJsZTsgcmVtb3ZlICdzdHJ1Y3QnIGJlZm9yZSB0eXBkZWYKICAgCjIwMDMtMTAtMjMgMTU6NTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaXggYnVnIDgyODY3MTogVGhlIGxpYiBpc24ndCBDKysgY29tcGF0aWJsZTsgcmVuYW1lIHN0cnVjdHVyZQogICByZW1vdmUgdW51c2VkIG5vYWxsb2MgZnVuY3Rpb24KICAgCjIwMDMtMTAtMjMgMTU6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGJ1ZyA4Mjg2NzE6IFRoZSBsaWIgaXNuJ3QgQysrIGNvbXBhdGlibGU7IHJlbmFtZSBzdHJ1Y3R1cmUKICAgCjIwMDMtMTAtMjMgMTU6MzkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjUtMC1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyA3Njc3NTM6IHNubXB3YWxrIGNyYXNoIChhZG9wdF9vcnBoYW5zKQogICAKMjAwMy0xMC0yMyAxMDozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTEwLTIzIDEwOjMyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYXBwYXJlbnRseSBjb25maWd1cmUgdHJhbnNsYXRlcyAnXycgdG8gJy0nIGluIGFyZ3VtZW50cy9lbmFibGVzLCBzbyB1c2UgLQogICBjb25zaXN0ZW50bHk7IG1vdmUgY29tbW9uIG1vZHVsZSBhcmcgbWlzdGFrZSBjaGVja3Mgd2l0aCBvdGhlciBtb2R1bGUKICAgY2hlY2tzLCBhbmQgYWRkIGEgZmV3IG1vcmU7IGFkZCBjaGVjayBmb3IgZW5hYmxlIHBlcmwtbW9kdWxlcyB0b28KICAgCjIwMDMtMTAtMjMgMTA6MjQgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgbW92ZSBjb21tZW50IGZpeGVzIHRvIGFjY29uZmlnLmggYW5kIHJlZ2VuZXJhdGUgbmV0LXNubXAtY29uZmlnLmguaW4KICAgCjIwMDMtMTAtMjMgMDg6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIG5vbnN0ZCBOREVCVUcgaWZkZWYgdHN0OyB1c2UgREJHTVNHU1VCT0lEIGluc3RlYWQgb2YgREJHTVNET0lEOyBhZGQKICAgZGVidWcgZm9yIGNvbXBhcmlzb24gcmVzdWx0CiAgIAoyMDAzLTEwLTIzIDA4OjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGFkZCBjb21tZW50czsgZml4IGdldF9uZXh0IHcvbnVsbCBrZXkgKGdldC1maXJzdCk7IHJlbW92ZSByZWR1bmRhbnQgZGVidWdzCiAgIAoyMDAzLTEwLTIyIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXB1c20uYyAoVjUtMC1wYXRjaGVzLjIpLCBzbm1wdXNtLmM6CgogICBmaXggYnVnIDgyMjg3MCAodXNtU3RhdHNEZWNyeXB0aW9uRXJyb3JzIGRpZCBub3QgaW5jcmVtZW50IG9uIGZhaWxlZCBnZXQgcmVxKQogICB3aXRoIHBhdGNoIDgyNzA1NiBmcm9tIGJyb3dsYW5kcwogICAKMjAwMy0xMC0yMiAwOTo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIF9fU1RSSU5HIGlmIG5vdCBkZWZpbmVkCiAgIAoyMDAzLTEwLTIyIDA2OjE0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgaW5jcmVtZW50IGxpYnRvb2wgcmV2aXNpb24KICAgCjIwMDMtMTAtMjIgMDY6MTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBjb21tZW50Y2hlY2sgcGF0dGVybiB0byBleGNsdWRlIGZ0cCBhbmQgaHR0cCB1cmxzCiAgIAoyMDAzLTEwLTIyIDAyOjA4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBUaGUgdmFyaWFibGVzICdkb19oaW50JyBhbmQgJ2NoZWNrJyBhcmUgb25seSBkZWNsYXJlZAogICBvciBuZWVkZWQgd2hlbiAnRElTQUJMRV9NSUJfTE9BRElORycgaXMgbm90IGRlZmluZWQuCiAgIFRoZXJlJ3Mgbm8gcG9pbnQgaW4gZ2l2aW5nIHRoZW0gZHVtbXkgdmFsdWVzIG90aGVyd2lzZS4KICAgCjIwMDMtMTAtMjEgMTI6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0xMC0yMSAxMjoxMiAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZW1vdmUgYysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgbW92ZSB1c2FnZSBzdWIgdG8gdG9wIHNvIGl0IGFjdHVhbGx5IGRvZXMgc29tZXRoaW5nOyBwcmludCB1c2FnZSBmb3IgcGFyYW0KICAgZXJyb3JzLCBpbnN0ZWFkIG9mIGp1c3QgZHlpbmcKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NDIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIHJlbW92ZSBib2d1cyBpbnN0YWxsIHRhcmdldAogICAKMjAwMy0xMC0yMSAxMToxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZy5pbgogICAKMjAwMy0xMC0yMSAxMToxNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBwZXJsIHVuaW5zdGFsbCBzdXBwb3J0OyB1cGRhdGUgdmVyc2lvbiBpbiBpbml0CiAgIAoyMDAzLTEwLTIxIDAxOjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5jbHVkZSA8ZmNudGwuaD4gZm9yIGRlZmluaXRpb24gb2YgT19SRFdSLiBSZXBvcnRlZCBieSBTZWJOb2IuCiAgIAoyMDAzLTEwLTIxIDAxOjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRW5zdXJlIHRoYXQgbXVsdGktbGluZSBjb21tZW50cyBhcmVuJ3QgYnJva2VuIHdoZW4gdGhlIGFjdGl2ZQogICBuZXQtc25tcC1jb25maWcuaCBmaWxlIGlzIGdlbmVyYXRlZC4gIFJlcG9ydGVkIGJ5IFNlYk5vYi4KICAgKFBvc3NpYmx5IGJlaW5nIGEgYml0IG92ZXItY2F1dGlvdXMgaGVyZSwgYnV0IHlvdSBjYW4ndCBiZSB0b28gY2FyZWZ1bCEpCiAgIAoyMDAzLTEwLTE3IDIyOjUyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbW9yZSB1cGRhdGVzCiAgIAoyMDAzLTEwLTE3IDIyOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0dXJuIG9uIHRoZSBsb29rdXAgY2FjaGUuCiAgIAoyMDAzLTEwLTE3IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywKICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RlcHJlY2F0ZWQuMywKICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgIG5ldHNubXBfbWZkX3BkdV9jb250ZXh0X3MuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICBuZXRzbm1wX3V0aWxpdGllcy4zOgoKICAgbW9yZSAobmV3KSB1cGRhdGVzIGZyb20gZG94eWdlbgogICAKMjAwMy0xMC0xNyAxNjozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCjoKCiAgIHVwZGF0ZXMgZnJvbSBkb3h5Z2VuCiAgIAoyMDAzLTEwLTE3IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE1OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgYWRkZWQgYW55ZGF0YSBtb2R1bGVzCiAgIAoyMDAzLTEwLTE3IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1ha2UgZ2V0dGFibGUgcmV0dXJuIGEgaGFzaCBpbnN0ZWFkLgogICAKMjAwMy0xMC0xNyAxNTowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGFkZCBvaWQvZGVmYXVsdCBwb3J0aW9uIHRvIGhlbHAgdGV4dCBmb3IgdGhlIGZvcndhcmQgdG9rZW4KICAgCjIwMDMtMTAtMTcgMTU6MDIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBBZGQgc3BhcnRhCiAgIAoyMDAzLTEwLTE3IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZm9yd2FyZCB0b2tlbgogICAKMjAwMy0xMC0xNyAxNDo0MSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICB1c2UgbmV3IHZlcnNpb24gbW9kaWZpY2F0aW9uIHNjcmlwdAogICAKMjAwMy0xMC0xNyAxNDo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIG5ldyB2ZXJzaW9uIG1lc3Npbmctd2l0aCBzY3JpcHQKICAgCjIwMDMtMTAtMTcgMTQ6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZW1vdmUgcG9ydGlvbnMgb2xkIHNjcmlwdCByZXBsYWNlZCBieSBuZXdlciBWZXJzaW9uLU11bmdlLnBsCiAgIAoyMDAzLTEwLTE3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNSAwOToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgcmVtb3ZlIGhhcmRjb2RlZCBjb250ZXh0IG5hbWUKICAgCjIwMDMtMTAtMTQgMTY6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgYWRkIG5vdGUgdGhhdCBleGFtcGxlIGNvZGUgaXMgYmFzZSBvbiBhIGRhdGEgZmlsZQogICAKMjAwMy0xMC0xNCAxNjozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIGFkZCBub3QgdGhhdCBpdGVyYXRvciBnZXQvZ2V0LW5leHQgZG9uJ3QgY29ycmVzcG9uZCB0byBwZHUgdHlwZXMsIGFuZCB0aGV5CiAgIHNob3VsZG4ndCBiZSBvcmRlcmluZyB0aGVpciBkYXRhCiAgIAoyMDAzLTEwLTE0IDE2OjA5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIHN5bmMgY29tbWVudHMgdy9yZWFkbWUKICAgCjIwMDMtMTAtMTQgMTY6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGFzIGxvbmcgYXMgd2UncmUgdXNpbmcgZ251LW1ha2Ugc3BlY2lmaWNzLCBvbmx5IHByb2Nlc3MgY29uZmlnIHZhcnMgb25jZSAoYWxzbwogICBsZXRzIG1ha2Ugb3V0cHV0IHJlcHJlc2VudCBhY3R1YWwgdmFsdWVzLCBpbnN0ZWFkIG9mIHNjcmlwdCkKICAgCjIwMDMtMTAtMTQgMTY6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB1c2UgYmlnIG9ibm94aW91cyB3YXJuaW5nOyBzZXQgZXJyb3IgZm9yIG5vIGNvbnRleHQgaWYgdGFibGUgbm90IHNldHRhYmxlCiAgIAoyMDAzLTEwLTE0IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yYy1pbnRlcm5hbC13YXJuaW5nLm0yaToKCiAgIGJpZyBvYm5veGlvdXMgd2FybmluZyBmb3IgdG9wIG9mIGltcGxlbWVudGF0aW9uIGZpbGVzCiAgIAoyMDAzLTEwLTE0IDE2OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgc3luYyBmdW5jdGlvbiBoZWFkZXIgc3VtbWFyeSBjb21tZW50cyB3L3JlYWRtZSBzdW1tYXJ5IGhlYWRlciBjb21tZW50czsKICAgcHJlc2VudCBmdW5jdGlvbiBpbiBzYW1lIG9yZGVyIGluIGJvdGggZmlsZXMKICAgCjIwMDMtMTAtMTQgMTY6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIGluaXQgbTJjX2RhdGFfaW5pdAogICAKMjAwMy0xMC0xNCAxMzozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgdXNlIG5ldyBjb21tb24gc2V0dXA7IHdyYXBwZXJzIGZvciBhbGwgY29udGFpbmVyIGZ1bmN0aW9ucywgdG8gY29udmVydAogICBiZXR3ZWVuIGludGVyZmFjZSBjb250ZXh0IGFuZCB1c2VyIGNvbnRleHQ7IHNvbWUgcGFyYW0gdHdlYWtzOyByZW1vdmUKICAgdW51c2VkIHByb3RvdHlwZTsga2VlcCBwdHIgdG8gdGFibGUgY29udGV4dCBpbiBleGFtcGxlOyByZW5hbWUgc29tZSB2YXJzCiAgIHVzZSBuZXcgTUZEXyogZXJyb3IgY29kZXM7IHJlbmFtZSBleGFtcGxlIGZ1bmN0aW9uOyBkb2N1bWVuYXRpb24gdXBkYXRlczsKICAgCjIwMDMtMTAtMTQgMTM6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgdXNlIG5ldyBjb21tb24gc2V0dXA7IHdyYXBwZXJzIGZvciBhbGwgY29udGFpbmVyIGZ1bmN0aW9ucywgdG8gY29udmVydAogICBiZXR3ZWVuIGludGVyZmFjZSBjb250ZXh0IGFuZCB1c2VyIGNvbnRleHQ7IHNvbWUgcGFyYW0gdHdlYWtzOyByZW1vdmUKICAgdW51c2VkIHByb3RvdHlwZTsga2VlcCBwdHIgdG8gdGFibGUgY29udGV4dCBpbiBleGFtcGxlOyByZW5hbWUgc29tZSB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICB1c2UgbmV3IGNvbW1vbiBzZXR1cDsgd3JhcHBlcnMgZm9yIGFsbCBjb250YWluZXIgZnVuY3Rpb25zLCB0byBjb252ZXJ0CiAgIGJldHdlZW4gaW50ZXJmYWNlIGNvbnRleHQgYW5kIHVzZXIgY29udGV4dDsgc29tZSBwYXJhbSB0d2Vha3M7IGRvbid0IGF1dG8KICAgYWxsb2NhdGUgY29udGV4dCBmb3IgZ2V0IGRhdGEsIHNvIHVzZXIgY291bGQgdXNlIG9uZSB0aGV5J3ZlIGFsbG9jYXRlZAogICAKMjAwMy0xMC0xNCAxMzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXNldHVwLm0yaToKCiAgIGNvbW1vbiBzZXR1cCBmb3IgdW5zb3J0ZWQgZXh0ZXJuYWwsIHdoaWNoIGhhcyAzIHBhcnRzIGluY2x1ZGVkIGF0IGRpZmZlcmVudAogICB0aW1lcwogICAKMjAwMy0xMC0xNCAxMzoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBpbnZlcnQgdmVyYm9zZSBsb2dpYyB0ZXN0OyBhZGQgcXVpY2sgb3ZlcnZpZXcgb2YgaXRlcmF0aW9uIGxvb3A7IHJlb3JkZXIKICAgc29tZSB0ZXh0L2JsYW5rIGxpbmVzOyB1cGRhdGUgZm9yIHJlbmFtZWQgdmFycwogICAKMjAwMy0xMC0xNCAxMzoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtQ09VTlRFUjY0LWdldC5tMmk6CgogICBoYW5kbGUgY291bnRlcjY0IHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXNlIG5ldyBNRkRfKiBlcnJvciBjb2RlczsgdXBkYXRlIGZvciBtMmMgcGFyYW0gcmVuYW1lOyBoYW5kbGUgY291bnRlcjY0IHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIG5hbWUgZGVwcyBmaWxlcyBleHBsaWNpdHksIHNpbmNlIC5jPS5kZXBzIGlzbid0IHBvcnRhYmxlCiAgIAoyMDAzLTEwLTE0IDEzOjA4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdXBkYXRlIGJhc2UgcGFyYW0gZnJvbSBtZmQgcmVnIHRvIG1mZCBwZHUgY3R4OyB1cGRhdGUgZm9yIHJlbmFtZWQgbWZkL20yYyB2YXJzOwogICByZW5hbWUgdXNlciByZWcgdHlwZWRlZjsgbm8gdW5kbyBpbiB0YWJsZSBjdHggaWYgdGFibGUgbm90IHNldHRhYmxlOyBhZGQgdXNlcgogICByZWcgcHRyLCByZXF1ZXN0IG1vZGUgYW5kIGRhdGEgbGlzdCB0byB0YWJsZSBjb250ZXh0OyBtdiBjb250YWluZXIgaW5pdCBwcm90bwogICBhbmQgb3RoZXIgaW50ZXJmYWNlIHByb3RvdHlwZXMgdG8gdGhlaXIgb3duIGhlYWRlcjsgYWRkIHByb3RvcyBmb3IgcHJlL3Bvc3QKICAgcmVxdWVzdHMsIHRhYmxlIGNvbnRleHQgaW5pdC9jbGVhbnVwOyBhZGQgc2V0IHByb3RvdHlwZXM7IGluY2x1ZGUgbmV3IGhlYWRlcnMKICAgYXQgYm90dG9tIG9mIG1haW4gaGVhZGVyOyBtb3ZlIGFzIG11c2ggb2YgaW5pdCByb3V0aW5lIGFzIHBvc3NpYmxlIGludG8KICAgaW50ZXJmYWNlIGNvZGU7IHVzZSBuZXcgTUZEXyogcmV0dXJuIGNvZGVzOyBkb24ndCBydW4gbWFrZWZpbGUvc3ViYWdlbnQKICAgY29uZiBmaWxlcyBpZiB0aGV5J3ZlIGFscmVhZHkgYmVlbiBydW4KICAgCjIwMDMtMTAtMTQgMTI6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBhZGQgbWZkIG92ZXJ2aWV3IG9mIFNOTVAgYW5kIG1mZCBkYXRhIHN0cnVjdHVyZXM7IGRvY3VtZW50IG0yYyBjb25maWd1cmF0aW9uCiAgIHZhcmlhYmxlczsgaW5kZW50IHNvbWUgY29tbWVudHMgdG8gYmUgbW9yZSBjb25zaXN0ZW50OyBkb2NzIGZvciBzZXQgc3VwcG9ydAogICAKMjAwMy0xMC0xNCAxMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHJlcGxhY2UgaGFyZGNvZGVkIGhlYWRlciBuYW1lIHcvJG5hbWUuaDsgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyB1c2UgTUZEXyoKICAgcmV0dXJuIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyAgdXBkYXRlIHJlbmFtZWQgbTJjIHBhcmFtczsgcmVtb3ZlIGxvY2FsIHN0YXRpYwogICBwcm90b3R5cGVzIGZyb20gaGVhZGVyczsgbmV3IHBlciB0YWJsZSBpbnRlcmZhY2UgY29udGV4dDsgcmVuYW1lIGludGVyZmFjZSBpbml0OwogICB1c2UgdGFibGUgcmVnIGluIGxvY2FsIHRhYmxlIGNvbnRleHQgaW5zdGVhZCBvZiBtYWxsb2M7IHJlbW92ZSBfIHByZWZpeCBmcm9tCiAgIHB1YmxpYyB0YWJsZSBhbGxvY2F0ZSAmIHJlbGVhc2UgY3R4IGZ1bmNzOyBpbml0IHZhcnMgaW4gYWxsb2NhdGVfY3R4OyBjYWxsCiAgIHRhYmxlIGN0eCBpbml0IGZ1bmMgaW4gYWxsb2NhdGUsIGlmIGRlZmluZWQ7IHdyYXBwZXJzIGZvciBhbGwgbWZkIGZ1bmN0aW9ucywgdG8KICAgY29udmVydCBmcm9tIG91ciB0YWJsZSBjb250ZXh0IHRvIHRoZSB1c2VycyByZWdpc3RyYXRpb24gcG9pbnRlcjsgYWZ0ZXIgb2JqZWN0CiAgIGxvb2t1cCBzZXQgdXNlcnMgaW5kZXhlcyBiYWNrIHRvIHRoZSB2YXJiaW5kIG9pZCBhbmQgc2V0IGNvbnRleHQgdmFyczsgb25seQogICBkbyBnZXQgcm91dGluZXMgZm9yIGFjY2Vzc2FibGUgaW50ZXJuYWwgaW5kZXhlczsgcHJlZml4IHdyYXBwZXJzIHcvbWZkXzsKICAgZGV0ZWN0IGlmIHVzZXIgZ2V0IHJvdXRpbmVzIG11bmdlcyB2YiB2YWx1ZSBwb2ludGVyOyBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlCiAgIGZyZWU7IG1lcmdlIGNoZWNrX2luZGV4IGludG8gY2hlY2tfaW5kZXhlczsgYWRkIHNldCB2YWx1ZXMsIGNvbW1pdCwgdW5kbwogICBhbmQgaXJyZXZlcnNpYmxlIGNvbW1pdCB3cmFwcGVyczsgdXBkYXRlIGZvciByZW5hbWVkIGNvbW1pdCBtb2RlIG5hbWVzOwogICBzaW1wbGlmeSBwYXJhbSBmb3IgaW50ZXJuYWwgaW5kZXggY2hlY2sgZnVuY3MKICAgCjIwMDMtMTAtMTQgMTI6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIHB1dCBwcm90b3R5cGVzIGluICRuYW1lX2RhdGFfZ2V0LmgKICAgCjIwMDMtMTAtMTQgMTI6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgdXBkYXRlIG0yYyBub2RlIHBhcmFtcyB0byBiZSBiYXNlZCBvbiB2YXIvdmFsL3JlZiBpbnN0ZWFkIG9mIGZ1bmN0aW9uIG5hbWUKICAgCjIwMDMtMTAtMTQgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC5tMmk6CgogICB1cGRhdGUgZm9yIHJlbmFtZSBtMmMgdmFyIG5hbWVzCiAgIAoyMDAzLTEwLTE0IDEyOjMxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgdXNlIG0yY19ub2RlX3N1bW1hcnkgaW4gY29tbWVudAogICAKMjAwMy0xMC0xNCAxMjozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyB1c2UgTUZEXyogcmV0dXJuIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyBwdXQgcHJvdG90eXBlcwogICBpbiAkbmFtZV9kYXRhX3NldC5oOyB1cGRhdGUgcmVuYW1lZCBtMmMgcGFyYW1zOyBhZGQgZXh0ZXJuYWwgaW5kZXggY2hlY2sgZnVuYwogICBpZiB0YWJsZSBoYXMgZXh0ZXJuYWwgaW5kZXg7IHNpbXBsaWZ5IHBhcmFtIGZvciBpbnRlcm5hbCBpbmRleCBjaGVjayBmdW5jcwogICAKMjAwMy0xMC0xNCAxMjoyNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHJlbW92ZSBtZmQgcmVnIHBhcmFtICYmIGFzc2VydAogICAKMjAwMy0xMC0xNCAxMjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IHVzZSBNRkRfKiByZXR1cm4gY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7IGFkZCBwZXIgbm9kZQogICB1bmRvX3NldHVwIDsgdXBkYXRlIGZvciByZW5hbWVkIGNvbW1pdCBtb2RlIG5hbWVzOyB1cGRhdGUgcmVuYW1lZCBtZmQgcGFyYW1zCiAgIAoyMDAzLTEwLTE0IDEyOjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzOyBjaGcgbWZkX3JlZyBwYXJhbXMgdG8gdGFibGVfcmVnOyB1c2UgTUZEXyogcmV0dXJuCiAgIGNvZGVzIGluc3RlYWQgb2YgU05NUF8qOyBubyBwZXIgbm9kZSBjb2RlIGluIHRhYmxlIHVuZG9fc2V0dXAgKHdpbGwgYmUgaW4KICAgbmV3IHBlciBub2RlIHVuZG9fc2V0dXApOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29tbWl0IG1vZGUgbmFtZXMKICAgCjIwMDMtMTAtMTQgMTI6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmk6CgogICBpbmRlbnQgdG8gbWF0Y2ggb3RoZXIgcmVhZG1lcwogICAKMjAwMy0xMC0xNCAxMjoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmVuYW1lIG0yY190YWJsZV93cml0YWJsZSB0byBtMmNfdGFibGVfc2V0dGFibGUgKGNvbnNpc3RlbnQgdy9ub2RlLnNldHRhYmxlKTsKICAgYmFzZSBtMmNfdGFibGVfcm93X2NyZWF0aW9uIG9uIG5ldyBmdW5jdGlvbiB0YWJsZV9oYXNfY3JlYXRlOyBuZXcKICAgbTJjX3RhYmxlX2V4dGVybmFsX2luZGV4ZXMgYmFzZSBvbiBuZXcgZnVuY3Rpb24gY291bnRfZXh0ZXJuYWxfaW5kZXhlcwogICAKMjAwMy0xMC0xNCAxMjoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIHJlbW92ZSB1bnVzZWQgbGluZXM7IGFkZCBvaWQgbGVuZ3RoIGluIG91dHB1dAogICAKMjAwMy0xMC0xNCAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgb25seSBzZXQgZGVmYXVsdHMgaWYgdmFsdWUgaXMgZW1wdHkKICAgCjIwMDMtMTAtMTQgMTE6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgaWYgc29ydGVkLCBza2lwIGl0ZXJhdGlvbiBvbiBmaW5kIGZpcnN0OyBhZGQgbmV3IHJldXNlIHBhcmFtIHRvIHNhdmVfcG9zCiAgIAoyMDAzLTEwLTE0IDExOjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIGxvZyBlYWNoIGFnZW50eHBlcm1zIHBhcnQgc2VwYXJ0ZWx5LCBzbyBhcyBub3QgdG8gY3Jhc2ggaWYgYW55IG9mIHRoZSBvcHRpb25hbAogICBpdGVtcyBhcmUgbGVmdCBvdXQ7IHVwZGF0ZSBoZWxwIHRvIHNob3cgdGhhdCBvcHRpb25hbCBwYXJtcyBtdXN0IGJlIGluIG9yZGVyCiAgIAoyMDAzLTEwLTE0IDExOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjaGFuZ2UgY291bnRlciA2NCB0eXBlIGZyb20gJ2NvdW50ZXI2NCcgdG8gJ1U2NCcsIHNpbmNlIHRoZSBmb3JtZXIgY2FuJ3QgYmUKICAgdXNlZCBhcyBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHR5cGU7IHByb2Nlc3MgJEhPTUUvLnNubXAvbWliMmMuY29uZiwgaWYgaXQKICAgZXhpc3RzOyBuZXcgZm9yZWFjaCBpbnRlcm5hbGluZGV4IGFuZCBleHRlcm5hbGluZGV4OyBuZXcgc3ViIHRhYmxlX2hhc19jcmVhdGUKICAgYW5kIGNvdW50X2V4dGVybmFsX2luZGV4ZXMKICAgCjIwMDMtMTAtMTQgMDk6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRvbid0IHJlcXVpcmUgREVCVUcgZGZpbmUgZm9yIGFzc2VydHM7IG5ldyBsb2dpYzogdXNlIGFzc2VydCBpZgogICBORVRTTk1QX1VTRV9BU1NFUlQgZGVmaW5lcy4gb3RoZXJ3aXNlLCBmYWlsZWQgYXNzZXJ0cyB3aWxsIHVzZSBzbm1wX2xvZwogICB0byBsb2cgYSBtZXNzYWdlICh1bmxlc3MgU05NUF9OT19ERUJVR0dJTkcgaXMgZGVmaW5lZCkuCiAgIAoyMDAzLTEwLTE0IDA5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lZCBtb2RlczsgY2hnIGNhbGxiYWNrIHBhcmFtIHRvIHVzZSBuZXcgbWZkX3BkdV9jdHg7IGRvbid0CiAgIHNwbGl0IGNhbGxiYWNrcyBpbnRvIHR3byBzdHJ1Y3R1cmVzOyBkZWZpbmUgbWZkIHNwZWNpZmljIGVycm9yIGNvZGVzIGFzIGEKICAgc3Vic2V0IG9mIGV4aXN0aW5nIGVycm9yIGNvZGVzOyBhZGQgZG9jdW1lbnRhdGlvbjsgcmVtb3ZlIHRhYmxlIHJlZ2lzdHJhdGlvbgogICBmcm9tIHJlZ2lzdHJhdGlvbiBwYXJhbSBsaXN0LCBzaW5jZSBpdCdzIGluIHRoZSBtZmQgcmVnIG9iajsgaGFuZGxlIGdldCByZXF1ZXN0CiAgIHNwbGl0IGludG8gb2JqZWN0X2xvb2t1cCBhbmQgZ2V0IHZhbHVlczsgb25seSBjYWxsIG5leHQgaGFuZGxlciBpZiBuZXh0IGhhbmRsZXIKICAgaGFzIGFjY2VzcyBtZXRob2Q7IHR3ZWFrIGxvb2t1cCBwYXJhbXM6IHJldHVybiBlcnJvciBjb2RlIGFuZCBzZXQgZm91bmQgcm93CiAgIGluIG5ldyBwZHUgY3R4IHBhcmFtCiAgIAoyMDAzLTEwLTE0IDA5OjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oOgoKICAgYWRkIHJldXNlIGZsYWcgdG8gY3R4IGR1cCBwYXJhbXMKICAgCjIwMDMtMTAtMTQgMDk6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBtb2RlIG1zZyBkZWZpbmVzIGZvciBiYWJ5IHN0ZXAgbW9kZXM7IHNpbXBsaWZ5IG1vZGUgdGVzdCBtYWNyb3M7IGFkZAogICBuZXh0X21vZGUgdG8gYWdlbnRfcmVxdWVzdF9pbmZvCiAgIAoyMDAzLTEwLTE0IDA5OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIGFkZCBpbnRlcm5hbCBtc2cgZGVmaW5lcyBmb3IgYmFieSBzdGVwIG1vZGVzOyByZW51bWJlciBnZXQgc3Rhc2ggbW9kZTsgZml4IHR5cG8KICAgaW4gY29tbWVudDsgcmVzZXJ2ZSAgbW9kZXMgPCAxMjggZm9yIHNldCBwcm9jZXNzaW5nIHRvIHNpbXBsaWZ5IG1vZGUgdGVzdHMKICAgCjIwMDMtMTAtMTQgMDk6MjAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIHJlbmFtZSBhIGZldyBtb2RlcwogICAKMjAwMy0xMC0xNCAwOToyMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG1vZGVzOyBhZGQgbW9kZSBtYXAgZm9yIGdldC1yZXF1ZXN0cyBhcyB3ZWxsCiAgIAoyMDAzLTEwLTE0IDA5OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNvbnN0IGNvcnJlY3RuZXNzCiAgIAoyMDAzLTEwLTE0IDA5OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGlmZGVmJ2QgY29kZSBhZnRlciByZXN0b3Jpbmcgc29tZSBvZiBpdDsgdXBkYXRlIG5ldyByZXFpbmZvIHB0ciBpbgogICByZXF1ZXN0czsgZml4IGVubGVzcyBsb29wOyBmaXggdHlwb3MgaW4gYXNzZXJ0cwogICAKMjAwMy0xMC0xNCAwOToxNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGNoZWNrIGZvciByZWxhdGl2ZSBwYXRoIHRvIHNyYyBkaXIgZm9yIGJ1aWxkLWRpciBjaGVja3MKICAgCjIwMDMtMTAtMTQgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluIChWNS0wLXBhdGNoZXMuMyksIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgbGVhdmUgcG9zc2libHkgZW1wdHkgY29uZmlndXJlIEB2YXJAIG9uIGNvbnRpbnVhdGlvbiBsaW5lIGJ5IGl0c2VsZgogICAKMjAwMy0xMC0wOCAyMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjUtMC1wYXRjaGVzLjIpLCB2YXJfcm91dGUuYwo6CgogICBwYXRjaCBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciB0byBmaXggSFBVWCAxMQogICAKMjAwMy0xMC0wOCAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFkZCBkZXRhaWwgb24gaW1wcm9wZXJ5bHkgcmVnaXN0ZXJlZCB0YWJsZSBtZXNzYWdlLCBhbmQgY2hnIHRvIEVSUiAoZnJvbSBJTkZPKTsKICAgZml4IHZhbGlkIGNvbHVtbiBzZWFyY2ggZm9yIHJhbmdlczsgZ28gc3RyYWlnaHQgdG8gZmlyc3Qgcm93IGlmIG5vIGluZGV4ZXMKICAgCjIwMDMtMTAtMDcgMTU6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgbW9yZSB1c2VmdWwgaGVscCB0ZXh0IGZvciBhZ2VudHhwZXJtcwogICAKMjAwMy0xMC0wNyAxNDo0MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggbG9naWMgY2hlY2sgb2YgRFNfQUdFTlRfUVVJVF9JTU1FRElBVEVMWSBzbyB0aGF0IHBhcmVudCBhbmQgY2hpbGQgZG9uJ3QKICAgYm90aCB0cnkgdG8gYmVjb21lIHRoZSBtYXN0ZXIgYWdlbnQuIExvZ2ljIHNlZW1zIGJhY2t3YXJkcyB0byBtZSAtIGRvIHdlIGhhdmUKICAgYWxsIHRoZXNlIERTIHZhcnMgZG9jdW1lbnQgc29tZXdoZXJlPwogICAKMjAwMy0xMC0wNyAxNDozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBuZXRzbm1wX2RhZW1vbml6ZTogaW5pdCBsb2NhbCB2YXI7IGNoZyByZXR1cm4gY29kZSB0byBiZSBmb3JrIHJlc3VsdDsgYWRkIGRvY3MKICAgCjIwMDMtMTAtMDcgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMgKFY1LTAtcGF0Y2hlcy4zKSwgbWliMmM6CgogICBDaGVjayBmb3IgXi1TIGluc3RlYWQgb2YgLVMsIGFzIHJlcG9ydGVkIGJ5IEplYW4tTWFyYyBSYW5nZXIgb24gLXVzZXJzCiAgIAoyMDAzLTEwLTA3IDAzOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIFRoZXJlIGFyZSBubyBzdGF0aXN0aWNzIHByaW50ZWQsIHNvIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gaGF2aW5nCiAgIGEgZmxhZyB0byB0dXJuIHRoZW0gb2ZmLgogICAKMjAwMy0xMC0wNCAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1lcmdlIGNoYW5nZXMgZnJvbSA1LjAgcGF0Y2hlcyBicmFuY2g7IGZpeCB0byBidWlsZCB3aXRob3V0IHJlcXVpcmluZyBhcmd1bWVudHM7CiAgIHNlcGFyYXRlIGVtYmVkZGVkIHBlcmwgYW5kIHBlcmwgbW9kdWxlcyBvcHRpb25zOyBmaXggZml4IGZvciBpbml0LmQgc2NyaXB0CiAgIGZvciBub24tL3Vzci9sb2NhbCBpbnN0YWxsYXRpb24KICAgCjIwMDMtMTAtMDMgMDc6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBjaGFuZ2UgdjEgZGVtbyBjb21tdW5pdHkgdG8gbWF0Y2ggd2hhdCBpcyBhY3R1YWx0IGNvbmZpZ3VyZWQgb24gdGhlCiAgIHNvb24tdG8tYmUtcmVvcGVuZWQgdGVzdC5uZXQtc25tcC5vcmcKICAgCjIwMDMtMTAtMDIgMTk6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBhZGQgZXhwbGFuYXRvcnkgdGV4dCBhbmQgbGluZXMvYXJyb3dzIHNob3dpbmcgcmVsYXRpb25zaGlwIGJldHdlZW4gZW50cmllczsKICAgYWRkIGNyZWF0ZVVzZXIgbGluZXMsIHcvbm90ZSBleHBsYWluaW5nIHRoZXkgbWlnaHQgYmUgYmV0dGVyIHN1aXRlZCBmb3IKICAgdGhlIHBlcnNpc3RlbnRkaXIgc25tcGQuY29uZiBmb3Igc2VjdXJpdHkgcHVycG9zZXMuCiAgIAoyMDAzLTEwLTAyIDExOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliMmMuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgLUkgc3dpdGNoCiAgIAoyMDAzLTEwLTAyIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBORVdTLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluCiwgbWlicy9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIFJvYmVydCB0b2xkIG1lIHRvIGtlZXAgZ29pbmcsIHNvIEkgYWRkZWQgc3VwcG9ydCBmb3IgYSAtLXdpdGgtaW5zdGFsbC1wcmVmaXgKICAgZmxhZyB0byBjb25maWd1cmUgKGFuZCB0aHVzIGEgSU5TVEFMTF9QUkVGSVggbWFrZSB2YXJpYWJsZSBhcyB3ZWxsKS4KICAgCjIwMDMtMTAtMDEgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLAogICBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCiwgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgU3VwcG9ydCBmb3IgIm1ha2UgdW5pbnN0YWxsIgogICAKMjAwMy0xMC0wMSAxNDo1MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBBZGRlZCAtTCBzdXBwb3J0IGZvciBvdXRwdXQgbG9nZ2luZy4KICAgCjIwMDMtMTAtMDEgMTQ6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmg6CgogICB1cGRhdGVkIHByb3RvdHlwZXMgdG8gbWF0Y2ggZWFybGllciB0cmFwIC0+IG5vdGlmaWNhdGlvbiBzdHJpbmcgcmVwbGFjZW1lbnRzLgogICAKMjAwMy0wOS0zMCAxNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgc3ludGF4IHNwZWNpZmljIHZhcmJpbmQgdmFsaWRhdGlvbgogICAKMjAwMy0wOS0zMCAxNzoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHN5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaSwKICAgc3ludGF4LVN0b3JhZ2VUeXBlLWRlcGVuZGVuY2llcy5tMmk6CgogICBzeW50YXggc3BlY2lmaWMgZGVwZW5kZW5jeSBjaGVja3MKICAgCjIwMDMtMDktMzAgMTc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgZml4IHR5cG9zCiAgIAoyMDAzLTA5LTMwIDE3OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksCiAgIHN5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpOgoKICAgc2V0IGVtYWdzIHRhZyBmb3IgYzsgdXBkYXRlIHZhcmlhYmxlIG5hbWUKICAgCjIwMDMtMDktMzAgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBzZXQgZW1hZ3MgdGFnIGZvciBjOyBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3M7IG5ldyB2YWxpZGF0ZV9pbmRleCwKICAgdW5kb19zZXR1cCwgcmV2ZXJzaWJsZV9jb21taXQsIGZpbmFsX2NvbW1pdAogICAKMjAwMy0wOS0zMCAxNzoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHNldCBlbWFncyB0YWcgZm9yIGM7IGluIGNoZWNrX2RlcGVuZGVuY2llcywgcmVtb3ZlIG5vbi1leGlzdGFudCBwYXJhbSBhbmQKICAgaW5jbHVkZSBhbnkgbm9kZSBzcGVjaWZpYyBzeW50YXggZGVwZW5kZW5jaWVzCiAgIAoyMDAzLTA5LTMwIDE3OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBuZXcgaW5jbHVkZSB0byBkbyBiYXNpY3kgc3ludGF4IHZhbGlkYXRpb24gYWdhaW5zdCBhbiBpbmNvbWluZyB2YXJiaW5kCiAgIAoyMDAzLTA5LTMwIDE3OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHM7IGNoYW5nZSBleGFtcGxlIGZyb20gbGlua2VkIGxpc3QKICAgdG8gZmxhdCBmaWxlOyB1c2UgdmFyIGZvciBmdW5jIHBhcmFtcyBzbyBpdCdzIGVhc3kgdG8gY2hhbmdlOyBjaGVjayBuZXcKICAgbTJjX2luY2x1ZGVfZXhhbXBsZXMgYmVmb3JlIGluY2x1ZGluZyBleGFtcGxlIGNvZGU7CiAgIAoyMDAzLTA5LTMwIDE3OjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaToKCiAgIGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50czsgY2hhbmdlIGV4YW1wbGUgZnJvbSBsaW5rZWQgbGlzdAogICB0byBmbGF0IGZpbGU7IHVzZSB2YXIgZm9yIGZ1bmMgcGFyYW1zIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2UKICAgCjIwMDMtMDktMzAgMTc6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHNldCBlbWFjcyB0YWcgdG8gYzsgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzOyB1c2UgbG9jYWwKICAgc3RhdGljIHZhcmlhYmxlX2xpc3QgZm9yIGluZGV4IHRvIG9pZCBjb252ZXJzaW9uOyBmcmVlIG1lbW9yeSB1c2VkIGluIHRoYXQKICAgY29udmVyc2lvbiwgZXZlbnR1YWxseTsgZG9uJ3QgaWdub3JlIHJjIGZyb20gYnVpbGRfb2lkX25vYWxsb2MgaGVyZSAocmV0dXJuCiAgIGl0IGFuZCBsZXQgc29tZW9uZSBlbHNlIGlnbm9yZSBpdCk7IHByZWZpeCBzb21lIGludGVybmFsIGZ1bmN0aW9ucyBuYW1lcyB3LydfJzsKICAgd3JhcHBlciBhcm91bmQgZ2V0X2RhdGEgdG8gYWxsb2NhdGUgbmV3IGNvbnRleHQKICAgCjIwMDMtMDktMzAgMTc6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBub2RlLWdldC5tMmksIG5vZGUtc2V0Lm0yaToKCiAgIHNldCBlbWFjcyB0YWcgdG8gYzsgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzCiAgIAoyMDAzLTA5LTMwIDE3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgbmV3IG1mZF9iYXNlX3BhcmFtcyB2YXIgc28gaXQncyBlYXN5IHRvIGNoYW5nZSBwYXJhbXM7IGNoZyBjb21tZW50cyBzbyB0aGF0CiAgIGluZGVudCB3b24ndCBub3QgaW5kZW50OyBkb24ndCBpbmNsdWRlIHNvbWUgcHJvdG90eXBlcyBoZXJlIGlmIHRoZSBmdW5jdGlvbgogICBpcyBpbiAqX2ludGVyZmFjZXM7IG5ldyBwcmUvcG9zdCByZXF1ZXN0IGZ1bmN0aW9uczsgbW92ZWQgYnVsayBvZiB0YWJsZQogICBpbml0IGludG8gaW50ZXJmYWNlcywganVzdCBhIGxpdHRsZSBmdW5jdGlvbiBzZXR1cCBoZXJlCiAgIAoyMDAzLTA5LTMwIDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBzZXQgZW1hY3MgbW9kZSB0byBNYWtlZmlsZTsgdHVybiBvZmYgc3RyaWN0IHRva2VuIGNoZWNrcyB0aWwgd2VzIGdldHMgQCBlc2NhcGU7CiAgIGV4cGFuZCBkZXBzIGluY2x1ZGVzIHNpbmNlICQoeDouYz0uZGVwcykgaXNuJ3QgcG9ydGFibGUKICAgCjIwMDMtMDktMzAgMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG9ubHkgcHV0IE1JQjJDX0RJUiBlbnYgdmFyIGluIHNlYXJjaCBwYXRoIGlmIGl0IGlzbid0IGVtcHR5CiAgIAoyMDAzLTA5LTMwIDE2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgY3JlYXRlIG5ldyAkbmFtZV9pbnRlcmZhY2UuaCBoZWFkZXI7IG1vdmUgdGFibGUgaW5pdGlhbGl6YXRpb24gaGVyZTsgcHJlZml4IGEKICAgYnVuY2ggb2YgaW50ZXJmYWNlIGZ1bmN0aW9ucyB3LydfJzsgdXNlIG5ldyBtMmNfbm9kZV9zdW1tYXJ5OyB1c2UgbmV3CiAgIG0yY19ub2RlX3Zhcl8qIHZhcmlhYmxlczsgY2hhbmdlIHNvbWUgYWNjZXNzaWJsZSB0ZXN0cyB0byBzZXR0YWJsZSB0ZXN0czsgdXNlCiAgIG5ldyBub2RlLXZhcmJpbmQtdmFsaWRhdGUgaW5jbHVkZTsgYWx3YXlzIGNhbGwgdXNlciAkbm9kZV9jaGVja192YWx1ZTsgbmV3CiAgIGZ1bmN0aW9ucyB0byBjaGVjayBuZXcgaW5kZXggc3ludGF4OyBuZXcgX3NldF92YWx1ZXMsIF91bmRvX3NldHVwIGFuZAogICBfdW5kb192YWx1ZXMgdG8gY2FsbCB1c2VyIGZ1bmN0aW9ucwogICAKMjAwMy0wOS0zMCAxNjozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgdHdlYWsgcHJvY2Vzc2luZyBtc2dzOyBhbHdheXMgaW5jbHVkZSBwYXJlbnQtc2V0OyBtb3ZlCiAgIHBhcmVudCBkZXBlbmRlbmNpZXMgdG8gYm90dG9tIG9mIGZpbGU7IGFkZCAkbm9kZV9jaGVja19pbmRleAogICAKMjAwMy0wOS0zMCAxNjoyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgdHdlYWsgcHJvY2Vzc2luZyBtc2dzCiAgIAoyMDAzLTA5LTMwIDE2OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IGFkZCBzb21lIHNhbml0eSBjaGVja3M7IHNldCB1cCBuZXcgJG0yY19lbnVtX21hc2ssCiAgICRtMmNfbm9kZV92YXJfdmFsLCAkbTJjX25vZGVfdmFyX3JlZiwgJG0yY19ub2RlX3Zhcl92YWxfcHRyLCAkbTJjX25vZGVfc3VtbWFyeQogICAKMjAwMy0wOS0zMCAxNjoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgcmVtb3ZlIHVudXNlZCBjcmVhdGVfdW5kb19jb250ZXh0CiAgIAoyMDAzLTA5LTMwIDE2OjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgIGdlbmVyaWMtY3R4LWdldC5tMmksIGdlbmVyaWMtY3R4LXNldC5tMmksCiAgIG0yY19zZXR1cF90YWJsZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBzdWNrICdjdHgtPicgb3IgJ2N0eC4nIGludG8gJG0yY19kYXRhX2l0ZW0KICAgCjIwMDMtMDktMzAgMTY6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjCiAgIAoyMDAzLTA5LTMwIDE2OjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgZ2VuZXJhdGUgZGVmaW5lIGZvciBtYXNrIG9mIGFsbCBiaXRzCiAgIAoyMDAzLTA5LTMwIDE0OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICB4eHggdGFnZ2luZy4KICAgCjIwMDMtMDktMzAgMTQ6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgY3JlYXRlIHRoZSBNYWtlZmlsZSB0byBlaXRoZXIgcmVmZXJlbmNlIGEgTmV0LVNOTVAgc291cmNlIGRpciBvciBub3QKICAgICAoYW5kIHJlcXVpcmUgZ251LW1ha2Ugb3Igbm90KS4KICAgCjIwMDMtMDktMzAgMDY6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG5ldyBmbGFnL3Rva2VuIHN0cmljdF91bmtfdG9rZW4gd2lsbCBhYm9ydCBvbiB1bmtub3cgQHRva2VuCiAgIAoyMDAzLTA5LTMwIDA2OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaDoKCiAgIGFkZCBuZXRzbm1wX2NoZWNrX3ZiX3NpemUsIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZQogICBhbmQgbmV0c25tcF9jaGVja192Yl9yb3dzdGF0dXNfdmFsdWUKICAgCjIwMDMtMDktMzAgMDY6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIG1vcmUgbnVsbCBwdHIgY2hlY2tzOyBhZGQgbmV0c25tcF9jaGVja192Yl9zaXplLCBuZXRzbm1wX2NoZWNrX3ZiX3NpemVfcmFuZ2UKICAgYW5kIG5ldHNubXBfY2hlY2tfdmJfcm93c3RhdHVzX3ZhbHVlCiAgIAoyMDAzLTA5LTMwIDA2OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBnZW5lcmljLWdldC1jaGFyLm0yaSwgZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLAogICBnZW5lcmljLWdldC1kZWNsLm0yaSwgZ2VuZXJpYy1nZXQtbG9uZy5tMmksCiAgIGdlbmVyaWMtZ2V0LW9pZC5tMmksIGdlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksCiAgIGdlbmVyaWMtaGVhZGVyLXRvcC5tMmksIGdlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmkKLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksIG0yY19zZXR1cF9lbnVtLm0yaSwKICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbm9kZS1zdG9yYWdlLm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpCiwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjCiAgIAoyMDAzLTA5LTMwIDA2OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBmaXggZ2VuZXJhdGVkIGNvbW1lbnQKICAgCjIwMDMtMDktMzAgMDY6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG5ldyBmbGFnIGZvciBpbmNsdWRpbmcgZXhhbXBsZSBjb2RlCiAgIAoyMDAzLTA5LTI5IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmkKLCBtZmQtcmVhZG1lLm0yYzoKCiAgIE1pc2MgdXBkYXRlcyBmb3IgcmVhZGFiaWxpdHksIGV0Yy4KICAgCjIwMDMtMDktMjkgMTY6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIEluaXRpYWwgd29yZCBzbWl0aGluZyBvZiB0aGUgZ2xvYmFsIFJFQURNRS4KICAgCjIwMDMtMDktMjkgMTU6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgU3VwcG9ydCBhIC1JIHN3aXRjaCB0byBzcGVjaWZ5IGNvbmZpZyBmaWxlIHNlYXJjaCBwYXRocy4KICAgCjIwMDMtMDktMjkgMTU6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBtaXNzaW5nIHNvbWUgZW5kIHN0YXRlbWVudHMKICAgCjIwMDMtMDktMjkgMTQ6MjcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZWZlcmVuY2UgbmV3IGRpc21hbiBmZWF0dXJlcwogICAKMjAwMy0wOS0yOSAxNDoyNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCAocG9vcmx5IG9mIGNvdXJzZSkgbmV3IG1vbml0b3JpbmcgZmVhdHVyZXMuCiAgIAoyMDAzLTA5LTI5IDE0OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgLSB0cmFwRXZlbnQgLT4gbm90aWZpY2F0aW9uRXZlbnQKICAgCjIwMDMtMDktMjkgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICAtIGxpbmtVcERvd25UcmFwcyAtPiBsaW5rVXBEb3duTm90aWZpY2F0aW9ucwogICAKMjAwMy0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlRXZlbnRUYWJsZS5jLCBtdGVFdmVudFRhYmxlLmgKLCBtdGVUcmlnZ2VyVGFibGUuYzoKCiAgIC0gQSBuZXcgc25tcGQuY29uZiB0b2tlbiAodHJhcEV2ZW50KSBmb3IgZ2VuZXJhdGluZyB0cmFwcyBvZiBhbnkga2luZAogICAgIG9uIGEgbW9uaXRvcmluZyBldmVudCBhbmQgYSAtZSBzd2l0Y2ggdG8gbW9uaXRvciB0b2tlbiB0byByZWZlcmVuY2UgaXQuCiAgIC0gQSBuZXcgc25tcGQuY29uZiB0b2tlbiBsaW5rVXBEb3duVHJhcHMgdG8gZW5hYmxlIGxpbmtVcC9saW5rRG93bgogICAgIHRyYXBzIHVzaW5nIHRoZSBhYm92ZSBwaWVjZS4KICAgCjIwMDMtMDktMjkgMDc6MDAgIGhhcmRha2VyCgogICAqIGRpc3Qvc25tcGQtaW5pdC5kOgoKICAgL2V0Yy9pbml0LmQgLT4gL2V0Yy9yYy5kL2luaXQuZAogICAKMjAwMy0wOS0yOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgY29tbWVudCBpbiBjb21tZW50IHByb2JsZW0uCiAgIAoyMDAzLTA5LTI4IDE5OjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIEFkZGVkIERhdmUncyByZWFsbHkgY29sbCBhc2NpaSBkaWFncmFtIGZyb20gLXVzZXJzIGV4cGxhaW5pbmcgaG93CiAgIHRyYXBzIGFyZSBzZW50IHRvIHRoZWlyIGRlc3RpbmF0aW9ucyBvdmVyIGFueSBTTk1QIHZlcnNpb24uCiAgIAoyMDAzLTA5LTI4IDE5OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIEFkZGVkIERhdmUncyByZWFsbHkgY29sbCBhc2NpaSBkaWFncmFtIGZyb20gLXVzZXJzIGV4cGxhaW5pbmcgaG93CiAgIHRyYXBzIGFyZSBzZW50IHRvIHRoZWlyIGRlc3RpbmF0aW9ucyBvdmVyIGFueSBTTk1QIHZlcnNpb24uCiAgIAoyMDAzLTA5LTI2IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBwcm9wZXJseSBtYWxsb2MgdGhlIGVudGVycHJpc2UgcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAzLTA5LTI2IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNS0wLXBhdGNoZXMuNCksIFNOTVAueHM6CgogICBjb3JyZWN0IGxlbmd0aCBpbiBzdHJpbmcgZml4ZWQgc3RyaW5nIGNvbXBhcmlzb24KICAgCjIwMDMtMDktMjYgMTY6MTkgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1pc2MgaW5zdGFsbCBmaXhlcyAobW9zdGx5IHBlcmwpIGFuZCBvbmUgcGVybCBwYXRjaC4KICAgCjIwMDMtMDktMjYgMTA6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY1LTAtcGF0Y2hlcy4zKSwgU05NUC54czoKCiAgIGZpeCB1c2VOdW1lcmljIG9uY2UgYW5kIGZvciBhbGwgKG1heWJlKQogICAKMjAwMy0wOS0yMCAyMjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY1LTAtcGF0Y2hlcy4xKSwgaHJfc3dydW4uYwo6CgogICBQYXRjaCAjODA5MjQzIGZvciBidWcgIzgwODkyMCBmcm9tIEJvYiBSLiBmb3IgZml4aW5nIHByb2Nlc3MgbmFtZSBkaXNjcmVwZW5jeSAocHMgdnMgU05NUCkKICAgCjIwMDMtMDktMjAgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBpbnN0YW5jZS5jIChWNS0wLXBhdGNoZXMuMSksIGluc3RhbmNlLmM6CgogICBwYXRjaCAjODA3NDE0IGZvciBidWcgIzc1NzkyMyBieSBCb2IgUm93bGFuZHMgdG8gZml4IGludCB3YXRjaGluZyBvbiA2NCBiaXQgc3lzdGVtcwogICAKMjAwMy0wOS0xNyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICB1c2UgbmV0IGRhdGFfbGlzdF9hZGRfZGF0YQogICAKMjAwMy0wOS0xNyAxNzo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBjaGFuZ2UgbWZkIGFwaSBwYXJhbWV0ZXJzCiAgIAoyMDAzLTA5LTE3IDE3OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBhbHdheXMgY3JlYXRlIGFnZW50X3JlcV9pbmZvIHdoZW4gY3JlYXRpbmcgYXNwOyBtb3ZlCiAgIGdldGJ1bGsgcmVvcmRlciBjb2RlIGludG8gYW4gaW5saW5lIGZ1bmN0aW9uIGZvciBjb2RlIHJlYWRhYmlsaXR5OyBkZXByZWNhdGUKICAgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBhbmQgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0X2Vycm9yIGluIGZhdm9yCiAgIG9mIG5ldyBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yOyBkZXByZWNhdGUgbmV0c25tcF9zZXRfYWxsX3JlcXVlc3RzX2Vycm9yIGluCiAgIGZhdm9yIG9mIG5ldyBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yX2FsbDsgdHJ5IGFuZCByZXR1cm4gdXNlZnVsIGVycm9yIGNvZGVzCiAgIAoyMDAzLTA5LTE3IDE3OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaDoKCiAgIG1ha2Ugc3VyZSBwYXJhbXMgYXJlIHVuaXF1ZQogICAKMjAwMy0wOS0xNyAxNzoyNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhdXRvaGVhZGVyIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKICAgCjIwMDMtMDktMTcgMTc6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpOgoKICAgc2V0dXAgZm9yIGVudW0gdmFycwogICAKMjAwMy0wOS0xNyAxNzowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHJlbW92ZSBjcmVhdGVfdW5kb19jb250ZXh0IChhc3N1bWluZyB1bmRvX2NvbnRleHQgPT0gZGF0YV9jb250ZXh0IGZvciBub3cpOwogICBmaXggbG9nIGxldmVsIG1hY3JvOyBhbGxvY2F0ZV9kYXRhX2NvbnRleHQgbW92ZWQgZWxzZXdoZXJlCiAgIAoyMDAzLTA5LTE3IDE3OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgZml4IHBhcmFtYXRlciB0eXBlOwogICAKMjAwMy0wOS0xNyAxNjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgZG9uJ3QgbmVlZCBzb3VyY2UgZGlyIGlmIHdlIHVzZSBuZXcgbmV0LXNubXAtY29uZmlnIC0tYnVpbGQtaW5jbHVkZXM7IGFkZAogICBidWlsZC9zcmMgZGlyIC1JIHBhdGhzIGJlZm9yZSBiYXNlIGNmbGFncwogICAKMjAwMy0wOS0xNyAxNjo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgYWRkIG9iamVjdF9zeW50YXhfY2hlY2sgcHJvY2Vzc2luZzsKICAgCjIwMDMtMDktMTcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIG9ubHkgaW5jbHVkZSBwYXJlbnQtc2V0IGlmIGRhdGEgY29udGV4dCBpcyBnZW5lcmF0ZWQgJiBhbGxvY2F0ZWQKICAgCjIwMDMtMDktMTcgMTY6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgcGVyIG5vZGUgc2V0dXAgZm9yIGVudW1zCiAgIAoyMDAzLTA5LTE3IDE2OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgIGdlbmVyaWMtdmFsdWUtbWFwLm0yaToKCiAgIG5ldyBmaWxlIHRvIHNldHVwIGVudW1zIHZhcnMKICAgCjIwMDMtMDktMTcgMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmM6CgogICBuZXcgZmlsZSB0byBnZW5lcmF0ZSBlbnVtcyBoZWFkZXIgZmlsZQogICAKMjAwMy0wOS0xNyAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaQo6CgogICBuZXcgbTJjX2RhdGFfaXRlbSBmb3IgZ2V0dGluZyB0byBkYXRhIGl0ZW1zLCBzbyBpbmNsdWRlcyBkb24ndCBuZWVkIHRvIGtub3cKICAgd2hldGhlciBvciBub3QgdG8gdXNlIGRhdGEtPml0ZW0gb3IgZGF0YS5pdGVtLgogICAKMjAwMy0wOS0xNyAxNjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIG1vdmUgc29tZSBzZXR1cCBmb3IgZW51bXMgdG8gbTJjX3NldHVwX25vZGUgYW5kIG5ldyBtMmNfc2V0dXBfZW51bTsgYWRkIHNvbWUKICAgY29tbWVudHMgYW5kIGV4YW1wbGVzIHRvIGRvY3VtZW50IHByb2Nlc3MgZmxvdzsgbW92ZSBzb21lIGNvbW1lbnRzIHRvIHRoZQogICB0b3Agb2YgdGhlIGhlYWRlciBpbnN0ZWFkIGZvciBlYWNoIG5vZGU7IG1ha2Ugc3VyZSBpbnRlcm5hbCBtYXBwaW5nCiAgIGRlZmluZXMgYXJlIHVuaXF1ZSBwZXIgbm9kZQogICAKMjAwMy0wOS0xNyAxNjozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICB1c2UgZG94eWdlbiBkZXByZWNhdGVkIHRhZyBpbnN0ZWFkIG9mIHNpbXBsZSBjb21tZW50cwogICAKMjAwMy0wOS0xNyAxNjoyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBjaGFuZ2UgRklSU1QgdG8gdXNlIGZpbmRfbmV4dCBpbnN0ZWFkIG9mIGZpbmQ7IGFkZAogICBmdW5jIHBvaW50ZXIgZm9yIGl0ZW0gbWVtb3J5IGZyZWUKICAgCjIwMDMtMDktMTcgMTY6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oOgoKICAgcHJvdG90eXBlIGZvciBuZXcgY2hlY2tfdmJfdHlwZQogICAKMjAwMy0wOS0xNyAxMzowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIGNvbW1lbnRzOyBhZGQgYWdlbnRfcmVxdWVzdF9pbmZvIHB0ciB0byByZXF1ZXN0X2luZm87IGFkZAogICBuZXRzbm1wX3JlcXVlc3Rfc2V0X2Vycm9yOyBkZXByZWNhdGUgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBhbmQKICAgbmV0c25tcF9zZXRfbW9kZV9yZXF1ZXN0X2Vycm9yOyB1c2UgbmV3IGlubGluZSBtYWNyb3M7IHJlbW92ZSB1bnVzZWQgcGR1CiAgIHBvaW50ZXIgZnJvbSBhZ2VudF9yZXF1ZXN0X2luZm8KICAgCjIwMDMtMDktMTcgMTM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgZm9yIHNldCwgc2F2ZSByb3cgaW4gZmlyc3QgcmVxdWVzdDsgY2hnIG1mZCBwYXJhbSBsaXN0OyBkb24ndCBjYWxsIGxhdGVyCiAgIG1vZGVzIHVubGVzcyByb3cgZXhpc3RzOyBjYWxsIGxvd2VyIGhhbmRsZXJzOwogICAKMjAwMy0wOS0xNyAxMjozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgc25tcGxpYi9kYXRhX2xpc3QuYwo6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGFkZCBkYXRhX2xpc3RfYWRkX25vZGUsIGRhdGFfbGlzdF9hZGRfZGF0YQogICAKMjAwMy0wOS0xNyAxMjowOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3MKICAgCjIwMDMtMDktMTcgMTI6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oOgoKICAgbmV3IG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0X2J1Zl9mcm9tX3ZhcnMKICAgCjIwMDMtMDktMTcgMTE6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIG5ldyBuZXRzbm1wX2RhdGVhbmR0aW1lX3NldF9idWZfZnJvbV92YXJzCiAgIAoyMDAzLTA5LTE3IDA5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvCiAgIAoyMDAzLTA5LTE3IDA5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IG5ldyBjaGVja192Yl90eXBlCiAgIAoyMDAzLTA5LTE3IDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGJpbmFyeSBhcnJheSB0ZXN0IGJpbmFyeQogICAKMjAwMy0wOS0xNyAwOTo0NiAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdXBkYXRlIGZvciBuZXcgaW5saW5lIG1hY3JvcyAoSSB0aGluayBtaWNyb3Nsb3RoIHN1cHBvcnRzIGlubGluZSkKICAgCjIwMDMtMDktMTcgMDk6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGFpeC5oLCBocHV4LmgsIGlyaXguaAosIG9zZjUuaDoKCiAgIHR1cm4gb2ZmIG5ldC1zbm1wIHVzZSBvZiBpbmxpbmUgZm9yIG5vbi1nY2MgY29tcGlsZXJzIChkb24ndCB1bmRlZiBpbmxpbmUpCiAgIAoyMDAzLTA5LTE3IDA5OjM4ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGRlZmluZSAoYW5kIGNvbW1lbnQpIG1hY3JvcyBmb3IgaGFuZGxpbmcgaW5saW5lIHVzZSBpbiBuZXQtc25tcAogICAKMjAwMy0wOS0xNyAwOTozNyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG12IGJ1aWxkIGRpciBjaGVjayB0byBzdWJyb3V0aW5lOyBhZGQgbWlzc2luZyBOU0NfU1JDX0xJQkRJUlM7IGFkZCBuZXcKICAgLS1idWlsZC1pbmNsdWRlcwogICAKMjAwMy0wOS0xNyAwOTozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCAtV2lubGluZSB0byBkZXYgZmxhZ3MKICAgCjIwMDMtMDktMTcgMDk6MzMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGdpdmUgcmVhc29uIHdoZW4gcmUtcnVubmluZyBjb25maWcuc3RhdHVzCiAgIAoyMDAzLTA5LTE2IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBwZXRlciBoaWNrcwogICAKMjAwMy0wOS0xNiAxNzoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBQYXRjaCBmcm9tIFBldGVyIEhpY2tzIGZvciBhIG5ldyBnZXRfdGFibGUgZnVuY3Rpb24KICAgCjIwMDMtMDktMTYgMTc6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jIChWNS0wLXBhdGNoZXMuMSksCiAgIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBQYXRjaCBmcm9tIEthdHN1aGlzYSBBQkUgZnJvbSAtdXNlcnMgdG8gZml4IGEgbWFza2luZyBwcm9ibGVtCiAgIAoyMDAzLTA5LTEyIDEyOjQzICBoYXJkYWtlcgoKICAgKiBkaXN0LzogUkVMRUFTRS1JTlNUUlVDVElPTlMsIG5ldC1zbm1wLnNwZWM6CgogICAtIG1pbm9yIGNoYW5nZXMgZm9yIGltcHJvdmVkIHBlcmwgTWFrZWZpbGUuUEwgYXJndW1lbnQgc3VwcG9ydCAoPj0gNS4wLjkpCiAgIAoyMDAzLTA5LTEyIDExOjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAoVjUtMC1wYXRjaGVzLjIpLCBNYWtlZmlsZS5pbjoKCiAgIFBhdGNoIGZvciAtLXdpdGgtcGVybC1tb2R1bGVzIGV4dHJhIGFyZ3VtZW50IHN1cHBvcnQKICAgCjIwMDMtMDktMTIgMDY6MjggIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA5LTEyIDA2OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG1pcy1tYXRjaGVkIHBhcmVucwogICAKMjAwMy0wOS0xMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICB1c2UgbmV3IG5ldHNubXBfZGFlbW9uaXplIGxpYnJhcnkgY2FsbAogICAKMjAwMy0wOS0xMSAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIG1vdmUgY29tbWVudHMgYWJvdXQgcm91dGluZXMgY2xvc2VyIHRvIHJvdXRpbmVzIHRvIHJlZHVjZSBjb25mdXNpb24KICAgCjIwMDMtMDktMTEgMTU6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBAZGVidWdAIHRva2VuIHRvIHR1cm4gZGVidWcgb24vb2ZmOyBwcmludCBsb2NhdGlvbnMgZm9yIG1vcmUgd2FybmluZ3MvZXJyb3JzCiAgIAoyMDAzLTA5LTExIDE1OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBkZWZhdWx0cyBmb3IgdHdvIG5ldyBmbGFnczogcmVhZG1lX3ZlcmJvc2UgYW5kIGRhdGFfdHJhbnNpZW50CiAgIAoyMDAzLTA5LTExIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1yZWFkbWUubTJpOgoKICAgcmVhZG1lIGZvciBEYXRlQW5kVGltZQogICAKMjAwMy0wOS0xMSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaToKCiAgIGFkZCBidWYgbGVuIHBhcmFtIHRvIG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0CiAgIAoyMDAzLTA5LTExIDE1OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgdW4tY29tbWVudCBpbmNsdWRlIG9mIGVudW1zIGhlYWRlcjsgbW92ZSBhbGwgZGF0YSBjb250ZXh0IHByb2Nlc3NpbmcgaW50bwogICBpbmNsdWRlOyBkb24ndCBhc3N1bWUgcG9pbnRlcnMgdG8gZGF0YS91bmRvIGNvbnRleHRzOyBvbmx5IGRlZmluZSBwcm90b3R5cGUKICAgZm9yIGFsbG9jYXRlX2RhdGEgaWYgbmVlZGVkOyBydW4gZW51bSBoZWFkZXIgY29uZiBmaWxlOyBydW4gbmV3IHJlYWRtZSBjb25mIGZpbGUKICAgCjIwMDMtMDktMTEgMTQ6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgYnVpbGQtbGliLWRlcHMKICAgCjIwMDMtMDktMTEgMTQ6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIG9wZW4gZmlsZSBlYXJsaWVyOyB1c2UgbmV3IHZhciBmb3IgZGVmYXVsdCBORVRTTk1QRElSOyBkb24ndCBhc3N1bWUgTkVUU05NUERJUgogICBpcyBzb3VyY2VkaXI7IHVzZSBuZXcgbmV0LXNubXAtY29uZmlnIG9wdGlvbnMgZm9yIGdldCBsaWIgZGlycy9kZXBzCiAgIAoyMDAzLTA5LTExIDEzOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgaW5jbHVkZSBuZXcgZ2VuZXJpYy1kYXRhLWFsbG9jYXRlIGlmIGRhdGFfYWxsb2NhdGUgc2V0IGFuZCBkYXRhX2NvbnRleHQgaXMKICAgZ2VuZXJhdGVkOyBtb3ZlIHRhYmxlXyhhbGxvY2F0ZXxyZWxlYXNlKV9jdHggaGVyZQogICAKMjAwMy0wOS0xMSAxMzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpOgoKICAgbmV3IGZpbGUgZm9yIGFsbG9jYXRlL3JlbGVhc2Ugb2YgZGF0YSBjb250ZXh0CiAgIAoyMDAzLTA5LTExIDEzOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICBtb3ZlIGRhdGEgYWxsb2NhdGUvcmVsZWFzZSB0byBpdCdzIG93biBpbmNsdWRlOyBvbmx5IGluY2x1ZGUgaXQgaWYgZGF0YV9hbGxvY2F0ZQogICBzZXQgYW5kIGRhdGFfY29udGV4dCBpc24ndCBnZW5lcmF0ZWQKICAgCjIwMDMtMDktMTEgMTM6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmkKLCBtZmQtcmVhZG1lLm0yYzoKCiAgIG5ldyByZWFkbWUgZ2VuZXJhdGlvbgogICAKMjAwMy0wOS0xMSAxMzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgd3JhcCBnZXRfZmlyc3QvZ2V0X25leHQgc28gd2UgY2FuIG1vdmUgaW5kZXgyb2lkIGhlcmUgYW5kIG1ha2UgaXQgc3RhdGljCiAgIAoyMDAzLTA5LTExIDEzOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICBvbmx5IGdlbmVyYXRlIHRhYmVfZ2V0X2RhdGEgZm9yIHRyYW5zaWVudCBkYXRhOyBtb3ZlIGluZGV4Mm9pZCBpbnRvIGludGVyZmFjZQogICBjb2RlOyBnZW4gZGlmZmVyZW50IGNvZGUgYmFzZWQgb24gZGF0YSB0cmFuc2llbnQgc2V0dGluZwogICAKMjAwMy0wOS0xMSAxMzo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgZGVmYXVsdCB0byBnZW5lcmF0ZWQsIG5vbi1hbGxvY2F0ZWQgZGF0YV9jb250ZXh0CiAgIAoyMDAzLTA5LTExIDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpOgoKICAgZml4IHJlbmFtZWQgdmFyCiAgIAoyMDAzLTA5LTExIDEzOjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBkb24ndCBpbmNsdWRlIGVudW0gc3R1ZmYgaW4gb2lkIGhlYWRlcgogICAKMjAwMy0wOS0xMSAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgcmVtb3ZlIHVudXNlZCBvd25lciBwdHIKICAgCjIwMDMtMDktMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpOgoKICAgZml4IGxlbl9wdHIgdmFyaWFibGUgbmFtZQogICAKMjAwMy0wOS0xMSAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1jaGFyLm0yaToKCiAgIGRlZmluZSBJU19TRVRfKiBtYWNyb3MgaGVyZSBpbnN0ZWFkIG9mIGluIGhlYWRlcgogICAKMjAwMy0wOS0xMSAxMzozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtY29udGV4dC5tMmk6CgogICBtZXJnZSBkYXRhIHN0cnVjdCBiYWNrIGludG8gc2luZ2xlIHR5cGVkZWY7IGRvbid0IGdlbmVyYXRlIHN0cnVjdCBpZiB1c2VyCiAgIHNwZWNpZmllZCBleGlzdGluZyBzdHJ1Y3Q7IGFkZCAqIGluIHR5cGVkZWYgaWYgZGF0YV9hbGxvY2F0ZSBzZXQKICAgCjIwMDMtMDktMTEgMTM6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtY29weS5tMmk6CgogICByZW1vdmUgZXhhbXBsZSBzdGFydC9lbmQgKHBhcmVudCBkZWNpZGVzIHRoYXQpCiAgIAoyMDAzLTA5LTExIDEzOjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgbW9yZSBkaXN0aW5jdGl2ZSBzZXBhcmF0b3IgYmVmb3JlIHRhYmxlcwogICAKMjAwMy0wOS0xMSAxMzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLWVudW1zLm0yaToKCiAgIHJlbW92ZSBJU19TRVRfKiBtYWNyb3M7IHR3ZWFrIGNvbmRpdGlvbnMgZm9yIGdlbmVyYXRpbmcgZW51bXMgYW5kIG1hcHBpbmcKICAgbWFjcm9zCiAgIAoyMDAzLTA5LTExIDEzOjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG5ldyBuZXRzbm1wX2RhZW1vbml6ZQogICAKMjAwMy0wOS0xMSAxMzowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIHJlZHVjZSBzY29wZSBvZiBzdW4ncyBjb3B5cmlnaHQgY2xhaW07IGJhaWwgaWYgbmV0LXNubXAtY29uZmlnIG5vdCBpbmNsdWRlZDsKICAgcHJvdG90eXBlIGZvciBuZXcgbmV0c25tcF9kYWVtb25pemUKICAgCjIwMDMtMDktMTEgMTI6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYzoKCiAgIGZpeCBjb21tZW50IHR5cG87IGRvY3VtZW50IHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uIGFuZCBtb3ZlIG9uZSBsaW5lIHRvCiAgIG1ha2Ugd2luZG93IHNtYWxsZXIKICAgCjIwMDMtMDktMTEgMTI6NTUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICB1c2UgdmFycyB0byBtYWtlIGl0IGVhc2llciB0byB1bmRlcnN0YW5kIHdoYXQgZmxhZ3MgYXJlIHdoYXQgaW4gZ2VuZXJhdGVkCiAgIHZlcnNpb247IGdyb3VwIHNpbWlsYXIgb3B0aW9ucyB0b2dldGhlcjsgYWRkIG9wdGlvbnMgdG8gdG8gZ2V0IHNvdXJjZQogICBkaXJlY3RvcnkgYW5kIGxpYiBwYXRoIGluIGJ1aWxkIGRpcjsgYWRkIC0tYmFzZS1zdWJhZ2VudC1saWJzIChubyBsaWIgcGF0aCksCiAgIC0tbGliZGlyCiAgIAoyMDAzLTA5LTExIDA4OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wOS0xMSAwODoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHRyYXAgYmFkIG9wdGlvbnMgLS13aXRoLW1vZHVsZXMgb3IgLS13aXRoLW91dC1tb2R1bGVzCiAgIAoyMDAzLTA5LTA1IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgKFY1LTAtcGF0Y2hlcy43KSwgUkVBRE1FOgoKICAgYWRkZWQgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA5LTA1IDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYyAoVjUtMC1wYXRjaGVzLlsyLDJdKSwKICAgdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM4MDA1NjEgZnJvbSBCb2IgUm93bGFuZHMgdG8gZml4IDY0Yml0IHByb2JsZW1zICgtPiBzaXplX3QpCiAgIAoyMDAzLTA5LTA1IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBwcm90b2NvbC5jIChWNS0wLXBhdGNoZXMuMSksIHByb3RvY29sLmMKOgoKICAgUGF0Y2ggIzgwMDQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgNjQgYml0IGFnZW50eCBwcm9ibGVtcwogICAKMjAwMy0wOS0wNSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB1c20uYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wdXNtLmM6CgogICBQYXRjaCAjNzkyMDA4IGZyb20gVGhvbWFzPyB0byBhbGxvdyB1c21Vc2VyIHRva2VucyB0byBvdmVycmlkZSBwcmV2aW91cyBlbnRyaWVzCiAgIAoyMDAzLTA5LTA1IDIyOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBkZi4xLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wdHJhbnNsYXRlLjEuZGVmIChWNS0wLXBhdGNoZXMuWzIsMiwxLDEsMSwxLDEsMSwxXSksIG1pYjJjLjEuZGVmCiwgbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfc2V0X2RhdGEuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfd2F0Y2hlci4zCiwgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBkZi4xLAogICBzbm1wbmV0c3RhdC4xLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsCiAgIHNubXB0ZXN0LjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmOgoKICAgUGF0Y2ggIzc4OTQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgYSBsb25nIG5lZWRlZCBvdmVyaGF1bCBvZiB0aGUgbWFudWFsIHBhZ2VzLgogICAKMjAwMy0wOS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNS0wLXBhdGNoZXMuWzksOSw5XSksCiAgIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBvcHRpb25hbCBhcmd1bWVudHMgdG8gdGhlIC0td2l0aC1wZXJsLW1vZHVsZXMgZmxhZyBmb3IgcGFzc2luZyBkb3duCiAgIAoyMDAzLTA5LTA1IDE2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCiAgIChWNS0wLXBhdGNoZXMuWzQsMl0pLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggYSBnZXRidWxrIGJ1ZyBwb2ludGVkIG91dCBieSBKdXJpaiBTbWFrb3YuCiAgIAoyMDAzLTA5LTA1IDA2OjI1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvYWdlbnRfdHJhcC5jCjoKCiAgIFJlLXdyaXR0ZW4gaW50ZXJuYWxzIG9mIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KICAgV29yayB3aXRoIHNlcGFyYXRlIHYxIGFuZCB2MiB0ZW1wbGF0ZSBQRFVzLCBhbmQgc2VwYXJhdGUKICAgKHN0YW5kYWxvbmUpIHJvdXRpbmVzIHRvIGNvbnZlcnQgYmV0d2VlbiB0aGVtLCBmb2xsb3dpbmcgUkZDIDI1NzYsCiAgIEhvcGVmdWxseSBhIHNvbWV3aGF0IGNsZWFuZXIgYXBwcm9hY2ggdGhhbiBiZWZvcmUsCiAgIAoyMDAzLTA5LTAyIDIzOjA5ICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIG5ldyBzcGVjIHRvIGluY2x1ZGUgYnVpbGRpbmcgdGhlIHBlcmwgbW9kdWxlcy4KICAgICAtIGRvbmUgaW4gc29ydCBvZiBhIHRlbXBvcmFyeSBoYWNreSB3YXkgdGlsbCBwcm9wZXIgc3VwcG9ydCBpcyBwdXQKICAgICAgIGRpcmVjdGx5IGludG8gdGhlIG1hc3RlciBNYWtlZmlsZSB0byBzdXBwb3J0IG9wdGlvbmFsIGFyZ3VtZW50cwogICAgICAgYmVpbmcgcGFzc2VkIHRvIHRoZSBNYWtlZmlsZS5QTCBzY3JpcHQuCiAgIAoyMDAzLTA5LTAyIDIzOjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIHRvIGluY2x1ZGUgUlBNIGJ1aWxkaW5nIGluc3RydWN0aW9ucy4KICAgCjIwMDMtMDktMDIgMjM6MDcgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBNb2RpZmljYXRpb25zIHRvIHN1cHBvcnQgcGVybCBhbmQgYnVpbGRpbmcgc291cmNlIGFuZCBiaW5hcnkgYXQgb25jZS4KICAgCjIwMDMtMDktMDIgMTQ6NTMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiB0byBub3Qgc291cmNlIH4vLm5zYi1uaWdodGx5OyBkb24ndCByZW1vYmUgYnVpbGQgZGlyIG9uIHN1Y2Nlc3MgaGVyZQogICAKMjAwMy0wOS0wMiAxNDo1MiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFsbG93IGVudiB2YXJzIHRvIG92ZXJyaWRlIGRlZmF1bHRzIGZvciBtb3JlIG9wdGlvbnM7IHJlbmFtZSBEQVRFIHRvCiAgIE5TQl9EQVRFOyBvbmx5IHNjcCBtYWtlIGZpbGVzIGZyb20gdGhpcyBydW47IGFkZCB1bmFtZSB0byBvdXRwdXQKICAgCjIwMDMtMDktMDEgMTY6NDUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcHJ1bmUgZGlzdC9ycG0gZnJvbSBldGFncyByZXN1bHRzCiAgIAoyMDAzLTA4LTI4IDAyOjAyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQSBjb25maWd1cmUgdG9rZW4gdG8gY29udHJvbCB0aGUgYWRkcmVzc2VzL3BvcnRzIHRoYXQgdHJhcGQgbGlzdGVucyBvbi4KICAgCjIwMDMtMDgtMjIgMDI6MzggIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgRG9jdW1lbnQgdGhlIGRlZmF1bHQgdmVyc2lvbiBjaGFuZ2UuCiAgIAoyMDAzLTA4LTIxIDE0OjI4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIG1ha2UgdXBsb2FkIHRhcmJhbGwgbmFtZSBiYXNlZCBvbiBkYXRlCiAgIAoyMDAzLTA4LTIxIDAxOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJZiBhIEdFVEJVTEsgaGl0cyB0aGUgZW5kIG9mIHRoZSBNSUIgdHJlZSwgbWFrZSBzdXJlIGFueSBlbXB0eSB2YXJiaW5kcwogICBhcmUgcmV0dXJuZWQgYXMgJ2VuZE9mTWliVmlldycgZXhjZXB0aW9ucywgcmF0aGVyIHRoYW4gKC4wLjAgPSBOVUxMKQogICAKICAgSWYgKmFsbCogdGhlIHJlcGVhdGluZyB2YXJiaW5kcyBoaXQgdGhlIGVuZCBvZiB0aGUgTUlCIHRyZWUsIHRydW5jYXRlCiAgIGFmdGVyIHRoZSBmaXJzdCBmdWxsIGVtcHR5IHJvdy4KICAgCjIwMDMtMDgtMjEgMDE6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIElmIHRoZXJlJ3MgYSBtaXh0dXJlIG9mICJzdGlsbCBhY3RpdmUiIHJlcGV0aXRpb25zLCBhbmQgb25lcyB0aGF0IGhhdmUKICAgYWxyZWFkeSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIE9JRCB0cmVlLCB0aGVuIHNvbWUgb2YgdGhlIHZhcmJpbmQgc3RydWN0dXJlcwogICBtYXkgd2VsbCBiZSBOVUxMLgogICAgIEl0J3MgcHJlZmVyYWJsZSB0byBza2lwIHRoZXNlLCBhbmQgY29udGludWUgcHJvY2Vzc2luZyBldmVyeXRoaW5nIGVsc2UsCiAgIHJhdGhlciB0aGFuIGNyYXNoIHRoZSBzZXJ2ZXI6LSkKICAgCjIwMDMtMDgtMjEgMDE6MjkgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIERlZmF1bHQgdG8gZ2xvYmFsIFNNVVggYWNjZXNzIChhcyBjdXJyZW50bHkpLCBidXQgc3VwcGx5IGEgY29uZmlndXJlCiAgIG9wdGlvbiB0byBzZXQgZGVmYXVsdCBTTVVYIGFjY2VzcyB0byBiZSBsb2NhbGhvc3Qgb25seS4KICAgSGFwcHkgbm93PwogICAKMjAwMy0wOC0yMSAwMToyNCAgZHRzMTIKCiAgICogYWNjb25maWcuaDoKCiAgIEVuc3VyZSB0aGF0IHRoZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gdG9rZW4gcmVtYWlucyBhdmFpbGFibGUKICAgd2hlbiBjb25maWd1cmUgc3lzdGVtIGZpbGVzIGFyZSByZWNyZWF0ZWQuCiAgIAoyMDAzLTA4LTIwIDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFeHBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBwb3N0LUJVTEsgcmUtb3JnYW5pc2F0aW9uLCBzbyBpdCdzIHNvbWV3aGF0CiAgIGNsZWFyZXIgd2hhdCdzIGhhcHBlbmluZy4gIEl0IHRvb2sgbWUgYmVzdCBwYXJ0IG9mIGFuIGhvdXIgKHBsdXMgaW5zZXJ0aW5nCiAgIGFzc29ydGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzKSB0byBtYWtlIHNlbnNlIG9mIHRoaXMhCiAgIAoyMDAzLTA4LTIwIDAyOjM2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBSZWdpc3RlciBNSUJzIHVzaW5nIHRoZSBsb3dlc3QtbGV2ZWwgYXZhaWxhYmxlIG5hbWUsIHJhdGhlciB0aGFuIHRoZQogICBmaXJzdCBoYW5kbGVyIGluIHRoZSBjaGFpbi4gICBUaGlzIG5vIGxvbmdlciByZXN1bHRzIGluIHRoZSB3aG9sZSBNSUIKICAgcmVnaXN0cnkgYmVpbmcgaWRlbnRpZmllZCBhcyAiYnVsa190b19nZXQiIQogICAKMjAwMy0wOC0yMCAwMjoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaDoKCiAgIFVucmVnaXN0ZXIgKHJlbG9jYXRhYmxlKSBleHRlbnNpb25zIHdoZW4gcmUtcmVhZGluZyB0aGUgY29uZmlndXJhdGlvbiBmaWxlLgogICBUaGlzIGFsbG93cyAiZXhlYyIgbGluZXMgdG8gYmUgcmUtbG9hZGVkIHdpdGhvdXQgY2F1c2luZyB0aGUgYWdlbnQgdG8gY3Jhc2ghCiAgIAoyMDAzLTA4LTE5IDA4OjEyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEJldHRlciBmaXggZm9yIEJ1ZyAjNjMwMzQ4LiAgVHJlYXQgYWxsIERCUFJUIGNhbGxzIGNvbnNpc3RlbnRseSwgYW5kCiAgIG1ha2Ugc3VyZSB0aGUgUGVybElPX3ByaW50ZiBjYWxsIGlzIHBhc3NlZCB0aGUgY29ycmVjdCBwYXJhbWV0ZXIgbGlzdC4KICAgCjIwMDMtMDgtMTkgMDc6MzEgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgV2hhdGV2ZXIgdGhlIGNhdXNlIG9mIGJ1ZyAjNjMwMzQ4IHdhcywgdGhpcyBpc24ndCB0aGUgYW5zd2VyLgogICBXaXRoICdQZXJsSU9fZnByaW50ZicsIGl0IGRvZXNuJ3QgY29tcGlsZSEgIE1vcmUgaW52ZXN0aWdhdGlvbiBuZWVkZWQuCiAgIAoyMDAzLTA4LTE5IDAxOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEFsbG93IHRoZSAoY29tcGlsZS10aW1lKSBvcHRpb24gb2YgcmVzdG9yaW5nIGdsb2JhbCBhY2Nlc3MgdG8gU01VWCBzZXJ2aWNlcy4KICAgSWYgdGhlIGNvbnNlbnN1cyBpcyB0aGF0IHRoaXMgc2hvdWxkIGJlIHRoZSBkZWZhdWx0IChhcyBjdXJyZW50bHkpLCB0aGVuCiAgIEkndmUgbm8gc3Ryb25nIGZlZWxpbmdzIGVpdGhlciB3YXkuICBGZWVsIGZyZWUgdG8gYWRqdXN0IGFjY29yZGluZ2x5LgogICAKMjAwMy0wOC0xOSAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBBdXRvbWF0aWNhbGx5IHJlbGVhc2UgZXhwaXJlZCBjYWNoZSByZXNvdXJjZXMuCiAgIAoyMDAzLTA4LTE5IDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEludmFsaWRhdGUgdGhlIGNhY2hlIG9uIChzdWNjZXNzZnVsKSBTRVQgcmVxdWVzdHMuCiAgIFRoaXMgaXMgY3VycmVudGx5IGRvbmUgcmVnYXJkbGVzcyAtIGl0IHdvdWxkIGJlIHNlbnNpYmxlIHRvIG1ha2UgaXQKICAgY29uZmlndXJhYmxlIG9uIGEgcGVyLWNhY2hlIGJhc2lzLgogICAKMjAwMy0wOC0xOCAxNToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBjb21tZW50IG91dCBjb2RlIHRoYXQgc2hvdWxkbid0IGhhdmUgYmVlbiBjaGVja2VkIGluIHlldAogICAKMjAwMy0wOC0xOCAxNToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1cGRhdGUgZm9yIGNvcnJlY3QgbWV0aG9kIHRvIGNsZWFudXAgY29udGFpbmVyIGZhY3RvcnkgbGlzdDsgcmVtb3ZlCiAgIHJlbGVhc2VfaWZfdG9wIGFuZCBfYmFfKiBmdW5jdGlvbnMKICAgCjIwMDMtMDgtMTggMTU6MTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1cGRhdGUgcHJvdG90eXBlIGZvciBjb3JyZWN0IGZ1bmN0aW9uIHRvIGNsZWFudXAgY29udGFpbmVyIGZhY3RvcnkgbGlzdDsgZml4CiAgIGNvbW1lbnQgdHlwb3M7IHJlbW92ZSByZWxlYXNlX2lmX3RvcCBwcm90b3R5cGUgYW5kIGNhbGwgaW4gQ09OVEFJTkVSX0ZSRUUKICAgCjIwMDMtMDgtMTggMTU6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNhbGwgY29ycmVjdCBmdW5jdGlvbiB0byBjbGVhbnVwIGNvbnRhaW5lciBmYWN0b3J5IGxpc3QKICAgCjIwMDMtMDgtMTggMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb2N1bWVudCBzZWdmYXVsdCBsb2NhdGlvbiBmb3IgZnV0dXJlIGZpeGluZwogICAKMjAwMy0wOC0xOCAwOToxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jOgoKICAgQnJpbmcgaW50byBsaW5lIHdpdGggbmV3IGNhY2hlIHJlbGVhc2UgQVBJIGRlZmluaXRpb24uCiAgIAoyMDAzLTA4LTE4IDA4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIHNvdXJjZSBmb3IgdGFibGVfbWZkCiAgIAoyMDAzLTA4LTE4IDA4OjMwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N0YXNoX2NhY2hlLmg6CgogICBvcHBzLiAgbWlzc2VkIHRoZSBoZWFkZXIKICAgCjIwMDMtMDgtMTggMDg6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgZG9uJ3QgcmVmZXJlbmNlIG5vbi1leGlzdGVudCBmaWxlCiAgIAoyMDAzLTA4LTE4IDA4OjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIGhlYWRlciBmb3IgdGFibGVfbWZkCiAgIAoyMDAzLTA4LTE4IDA2OjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oOgoKICAgaGVhZGVyIGZvciBjb250YWluZXIgaXRlcmF0b3IKICAgCjIwMDMtMDgtMTggMDU6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmM6CgogICBOZXcgdjUtc3R5bGUgaGFuZGxlcnMgc2hvdWxkIG9ubHkgZXZlciByZWNlaXZlIE1PREVfR0VUIHJlcXVlc3RzLgogICBMb2cgYSB3YXJuaW5nIGZvciBvdGhlciB1bmV4cGVjdGVkIChvciB1bnJlY29nbmlzZWQpIHJlcXVlc3QgbW9kZXMuCiAgIAoyMDAzLTA4LTE4IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jOgoKICAgVXNlIHRoZSBuZXcgKGludGVybmFsKSBjYWNoZSB2YWxpZGl0eSBjaGVja2luZy4KICAgUW46IEhvdyBjYW4gd2UgYWNjZXNzIHRoZSByZXF1ZXN0LWluZm9ybWF0aW9uIHN0cnVjdHVyZSAob3Igc2ltaWxhcikKICAgICAgIGZyb20gd2l0aGluIGl0ZXJhdG9yIGRhdGFfcG9pbnQgcm91dGluZXM/CiAgIAoyMDAzLTA4LTE4IDAzOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBQcm92aWRlIGFuIEFQSSBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNhY2hlIGlzIGN1cnJlbnRseSB2YWxpZC4KICAgUmVsZWFzZSBvbGQgY2FjaGUgcmVzb3VyY2VzIGJlZm9yZSBsb2FkaW5nIHRoZSBuZXcgdmFsdWVzLgogICBOQjogVGhpcyBpbnZvbHZlcyBhIGNoYW5nZSBpbiB0aGUgJ2ZyZWUnIGhvb2sgQVBJLgogICAKMjAwMy0wOC0xOCAwMzoxNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgVGhlIG1hY3JvIGZ1bmN0aW9uIGRlZmluaXRpb25zIHJlbHkgb24gbG9nZ2luZyByb3V0aW5lcyBmcm9tICdzbm1wX2xvZ2dpbmcuYycKICAgc28gdGhlIGFwcHJvcHJpYXRlIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5lZCBjb25zdGFudHMgbmVlZCB0byBiZSBhdmFpbGFibGUuCiAgIAoyMDAzLTA4LTE4IDAzOjEyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIFN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiB0aGUgc29ja2V0IGFkZHJlc3MgdG8gbGlzdGVuIGZvciBTTVVYIGNvbm5lY3Rpb25zIG9uLgogICAKICAgTm90ZTogQ2hhbmdlIG9mIGJlaGF2aW91ciAtIHRoaXMgcGF0Y2ggZGVmYXVsdHMgdG8gbGlzdGVuaW5nIGZvciBjb25uZWN0aW9ucwogICBmcm9tIHRoZSBsb2NhbGhvc3Qgb25seS4KICAgCjIwMDMtMDgtMTggMDI6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm92aXNpb25hbCBzdXBwb3J0IGZvciBzZW5kaW5nIGNsaWVudCByZXF1ZXN0cyBmcm9tIGEgc3BlY2lmaWVkIGludGVyZmFjZQogICBvciBzb2NrZXQgYWRkcmVzcy4KICAgUW46IFNob3VsZCB0aGlzIGJlIGFwcGxpZWQgdG8gVENQIGNvbm5lY3Rpb25zIHRvbz8KICAgICAgIFdoYXQgYWJvdXQgb3RoZXIgdHJhbnNwb3J0cz8KICAgCjIwMDMtMDgtMTggMDI6NTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgIEltcGxlbWVudCAnc25wcmludGZfZGVzY3JpcHRpb24nIHJvdXRpbmVzLAogICB0byBvdXRwdXQgTUlCIGRlZmluaXRpb25zIHRvIGEgc3RyaW5nIHJhdGhlciB0aGFuIGEgZmlsZS4KICAgCjIwMDMtMDgtMTcgMTY6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgZml4IGhhcmRjb2RlZCB2YXIgbmFtZXMvY29uc3RhbnRzIChlZWshKQogICAKMjAwMy0wOC0xNyAxNjo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJlbmFtZSBzb21lIHR5cGVkZWZzOyBhZGQgKl9yZWZfKiB0eXBlZGVmczsgbWFrZSBuZXRzbm1wX2luZGV4IGZpcnN0IGl0ZW0KICAgaW4gY3R4OyBtYWtlIGluZGV4IGxvY2FsIGluc3RlYWQgb2YgcHRyOyBydW4gbmV3IG1mZC1hY2Nlc3MtKi1oZWFkZXI7IGFkZAogICBzb21lIHByb3RvdHlwZXMsIGRlYnVnIG1zZ3M7IHVwZGF0ZSBpbml0IHRvIHNldCB1cCBtZmRfcmVnaXN0cmF0aW9uLCBjb250YWluZXIsCiAgICpfZ2V0X3ZhbHVlczsgZml4IHJlbmFtZXMgbWZkIHJlZ2lzdHJhdGlvbiByb3V0aW5lOyBydW4gbmV3IG1ha2VmaWxlIGFuZAogICBzdWJhZ2VudCBjb25mIGZpbGVzCiAgIAoyMDAzLTA4LTE3IDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgaW5jbHVkZSBtZmQgaGVhZGVyOyBuZXcgKl9nZXRfdmFsdWVzOyB0d2VhayAqX2dldF9jb2x1bW46IGluY2x1ZGUgYWNjZXNzaWJsZQogICBpbmRleGVzLCBwdXNoIHZhciBtZW1vcnkgY2hlY2sgdXAgYSBsZXZlbCAqX2dldF92YWx1ZXMgKHNob3VsZCBnbyB1cCBvbmUKICAgbW9yZSwgaW50byBoZWxwZXIgaW5zdGVhZCBvZiBnZW5lcmF0ZWQgY29kZSk7IHJ1biBuZXcgbWZkX2FjY2Vzc18qX2ludGVyZmFjZQogICAKMjAwMy0wOC0xNyAxNjo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgbW92ZSBwcm9jZXNzIHByaW50IGFmdGVyIG5vYWNjZXNzIHRlc3QKICAgCjIwMDMtMDgtMTcgMTY6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIG5ldyAqXyhhbGxvY2F0ZXxyZWxlYXNlKV8oZGF0YXxjdHgpOyBtb3ZlIHByb2Nlc3MgcHJpbnQgYWZ0ZXIgbm9hY2Nlc3MgdGVzdAogICAKMjAwMy0wOC0xNyAxNjozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgcmVuYW1lIGFjY2Vzcy0qIHRvIG1mZC1hY2Nlc3MtKgogICAKMjAwMy0wOC0xNyAxNjozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgYWRkIGhlYWRlcjsgaW5jbHVkZSBlbnVtcyB0b28KICAgCjIwMDMtMDgtMTcgMTY6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaSwgbWZkLW1ha2VmaWxlLm0ybQosIHN1YmFnZW50Lm0yYzoKCiAgIG5ldyBtZmQgZGF0YSBhY2Nlc3MgY29uZiBmaWxlcyAod3JhcCBhcm91bmQgbmV3IGNvbnRhaW5lciBpdGVyYXRvcik7IG5ldyBtZmQKICAgY29uZiBmaWxlcyB0byBnZW5lcmF0ZSBtYWtlZmlsZS9zdWJhZ2VudCBtYWluCiAgIAoyMDAzLTA4LTE3IDE2OjMxICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1c2UgY29uZmlnLmggZGVmaW5lIHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgd2luIGNhbGxiYWNrIHRyYW5zcG9ydCwgaW5zdGVhZAogICBvZiB3aW4gc3BlY2lmaWMgaWZkZWZzIGluIGNvZGUKICAgCjIwMDMtMDgtMTcgMTY6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIG5ldyBkZWJ1Z21zZ19zdWJvaWQKICAgCjIwMDMtMDgtMTcgMTY6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBjaGVjayBmb3IgbnVsbCBwdHIKICAgCjIwMDMtMDgtMTcgMTY6MjEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIHJlbW92ZSBub2FsbG9jIGZ1bmN0aW9uczsgcmVuYW1lIHR5cGVkZWYKICAgCjIwMDMtMDgtMTcgMTY6MTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHJlbW92ZSBub2FsbG9jIGZ1bmN0aW9ucwogICAKMjAwMy0wOC0xNyAxNjoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgdW51c2VkIHZhciBhbmQgbm9hbGxvYyBmdW5jdGlvbnMKICAgCjIwMDMtMDgtMTcgMTY6MTcgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgYWRkIG9wdGlvbmFsIHVwbG9hZCBvZiBzcmMgdGFyYmFsbCBhZnRlciB1cGRhdGUKICAgCjIwMDMtMDgtMTcgMTU6MjIgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IG5ldHNubXBfc3ByaW50X3JlYWxsb2Nfb2JqaWQgKGRvZXNuJ3QgdXNlIG1pYnMpOyByZXdvcmsgaWZkZWZzIGZvcgogICBuZXRzbm1wX3NwcmludF9yZWFsbG9jX29iamlkX3RyZWUgJiBESVNBQkxFX01JQl9MT0FESU5HCiAgIAoyMDAzLTA4LTE3IDE1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGFkZCBuZXcgY29udGFpbmVyIGl0ZXJhdG9yCiAgIAoyMDAzLTA4LTE3IDE1OjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBkb24ndCBydW4gaW5kZW50IG9uIGZpbGVzIHVubGVzcyB0aGV5IGVuZCB3LyAuYyBvciAuaDsgcHJpbnQgbW9yZSBpbmZvIHdoZW4KICAgZGllIG9mIHVuZXhwZWN0ZWQgZWxzZQogICAKMjAwMy0wOC0xNyAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBuZXcgREVCVUdNU0dTVUJPSUQgJiBzdXBwb3J0aW5nIGNhc3QKICAgCjIwMDMtMDgtMTcgMTU6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgZml4IGNvbW1lbnRzIHdoaWNoIGV4Y2VlZCA4MCBjaGFycwogICAKMjAwMy0wOC0xNyAxNToxNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaDoKCiAgIG5ldyBuZXRzbm1wX3NwcmludF9yZWFsbG9jX29iamlkIHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIG5ldyBuZXRzbm1wX3RhYmxlX2ZpbmRfbmV4dF9yb3cgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIG5ldyBuZXRzbm1wX2VuYWJsZV9zdWJhZ2VudCBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIG5ldyBuZXRzbm1wX2NoZWNrX3JlcXVlc3RzX2Vycm9yIHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIG5ldyAodGVtcG9yYXJ5PykgYmFieSBzdGVwcyBoZWxwZXIKICAgCjIwMDMtMDgtMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmg6CgogICBhZGQgYmFieV9zdGVwcy5oLCByb3dfbWVyZ2UuaCwgdGFibGVfbWZkLmgKICAgCjIwMDMtMDgtMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGRlZmluZSBuZXcgY2FuIGJhYnkgc3RlcCBtb2RlIGZsYWcKICAgCjIwMDMtMDgtMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBuZXcgbmV0c25tcF9yZWZfdm9pZCwgbmV0c25tcF9yZWZfc2l6ZV90IHR5cGVkZWZzCiAgIAoyMDAzLTA4LTE3IDE1OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGJhaWwgaWYgbmV0LXNubXAtY29uZmlnIGhhc24ndCBiZWVuIGluY2x1ZGVkOyBhZGQgY29udGFpbmVyL2Fzc2VydCBoZWFkZXJzCiAgIAoyMDAzLTA4LTE3IDE1OjA4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgYmFpbCBpZiBuZXQtc25tcC1jb25maWcgaGFzbid0IGJlZW4gaW5jbHVkZWQ7IGRvbid0IGlubGN1ZGUgdXRpbGl0aWVzIHR3aWNlCiAgIAoyMDAzLTA4LTE3IDE1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBuZXcgbmV0c25tcF9lbmFibGVfc3ViYWdlbnQsIG9ubHkgZGVmaW5lZCBpZiBVU0lOR19BR0VOVFhfU1VCQUdFTlRfTU9EVUxFLCBzbwogICBhIGxpbmsgZXJyb3Igd2lsbCBvY2N1ciBpZiBhZ2VudHggc3VwcG9ydCBub3QgY29tcGlsZWQgaW4KICAgCjIwMDMtMDgtMTcgMTU6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgZmluZF9uZXh0X3JvdywgdXNlIG5ldyBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3c7IGZpeCB0eXBvCiAgIAoyMDAzLTA4LTE3IDE1OjAzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbm90ZXMgZm9yIGZ1dHVyZSBlbmhhbmNlbWVudHM7IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWs7IG5ldwogICBuZXRzbm1wX3RhYmxlX2luZGV4X2ZpbmRfbmV4dF9yb3cKICAgCjIwMDMtMDgtMTcgMTU6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgc2tpcCBncm91cGluZyBpZiBvbmx5IDEgdmFyYmluZDsgbm90ZSBmb3IgZnV0dXJlIGVuaGFuY2VtZW50cwogICAKMjAwMy0wOC0xNyAxNTowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBhZGQgbmV3IGJhYnlfc3RlcHMsIHRhYmxlX21mZCBoZWxwZXJzOyBidWlsZCBvYmpzL2xvYmpzIGZyb20gc3JjcwogICAKMjAwMy0wOC0xNyAxNDo1OSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG5ldyBuZXRzbXBfY2hlY2tfcmVxdWVzdHNfZXJyb3JzCiAgIAoyMDAzLTA4LTE3IDE0OjU4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgY29kZSByZXVzZSAoY2FsbF9oYW5kbGVycyB1c2VzIGNhbGxfaGFuZGxlcik7IGFkZCBuZXcgbW9kZSB0ZXh0IGZvcgogICBoYW5kbGVyX2Nhbl9tb2RlIHNsaXN0CiAgIAoyMDAzLTA4LTE2IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIG1vdmUgc29tZSBwb2ludGVyIHNhdmluZyBmb3IgU1RBU0ggcmVsYXRlZCBzdHVmZiBvdXRzaWRlIHRoZSBtb3JlCiAgICAgZnJlcXVlbnRseSBjYWxsZWQgbG9vcC4KICAgCjIwMDMtMDgtMTUgMDQ6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNb3ZlIHByZWZpeC9zdWZmaXggb3B0aW9ucyB1bmRlciAtSQogICAKMjAwMy0wOC0xNSAwMzozMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IGFkZCBhIHRyYWlsaW5nIGRvdCBpZiB3ZSdyZSBzZXR0aW5nIGEgcHJlZml4LCBidXQgbm90IGEgc3VmZml4LgogICAKMjAwMy0wOC0xNCAwMToxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGFsbF9oZWxwZXJzLmMsIGJ1bGtfdG9fbmV4dC5jLAogICBjYWNoZV9oYW5kbGVyLmMsIGRlYnVnX2hhbmRsZXIuYywgaW5zdGFuY2UuYywKICAgbW9kZV9lbmRfY2FsbC5jLCBtdWx0aXBsZXhlci5jLCByZWFkX29ubHkuYywKICAgcm93X21lcmdlLmMsIHNjYWxhci5jLCBzY2FsYXJfZ3JvdXAuYywKICAgc2VyaWFsaXplLmMsIHdhdGNoZXIuYzoKCiAgIFJlb3JnYW5pc2UgdGhlIGFnZW50IGhlbHBlciAnZG94eWdlbicgc3RydWN0dXJlLCB0byBtYWtlIGl0IGxlc3MgImZsYXQiLgogICBHcm91cCAibGVhZi1vYmplY3QiIGhlbHBlcnMgdG9nZXRoZXIsIGFuZCBpbnRlcm5hbCAidXRpbGl0eSIgaGVscGVycyBzaW1pbGFybHkuCiAgIAoyMDAzLTA4LTE0IDAxOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBUcnkgdG8gY2F0Y2ggKHNvbWUpIFBEVSBkdWFsLWZyZWUncy4KICAgCjIwMDMtMDgtMTQgMDA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIDEgb2YgMiBtZW1vcnkgbGVha3MgZm91bmQgKG9rLCBJIHNhaWQgSSB3YXNuJ3QgZ29pbmcgdG8gZmluZCBpdCBidXQuLi4pCiAgIAoyMDAzLTA4LTEzIDIzOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogTWFrZWZpbGUuaW4sIGFsbF9oZWxwZXJzLmMsCiAgIHN0YXNoX2NhY2hlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICAtIGFkZGVkIGEgbmV3IGhlbHBlciB0byBhdXRvLWNhY2hlIGRhdGEuICBDdXJyZW50bHkgdGhlIG9ubHkKICAgICBzdWItbW9kdWxlIHN1cHBvcnRlZCBieSB0aGlzIGlzIHRoZSB0YWJsZV9pdGVyYXRvciwgYnV0IHNpZ25pZmljYW50CiAgICAgc3BlZWQgaW1wcm92ZW1lbnRzIGNhbiBiZSBzZWVuIHdoZW4gY2FjaGluZyBvZiBpdGVyYXRvciBkYXRhIGlzCiAgICAgdHVybmVkIG9uLgogICAgIC0gdG8gdGVzdCBhZGQgdG8gc25tcGQuY29uZjoKICAgICAgICAgaW5qZWN0SGFuZGxlciBzdGFzaF9jYWNoZSBNT0RVTEUgdGFibGVfaXRlcmF0b3IKICAgICAgIChhIGdvb2QgdGVzdCBtb2R1bGUgaXMgdGhlIG5zTW9kdWxlVGFibGUgd2hpY2ggaGFzIGEgbG90IG9mIHJvd3MpCiAgICAgLSB3YXJuaW5nOiBub3QgaGVhdmlseSB0ZXN0ZWQuICBTZWVtcyBvayBmb3IgYXQgbGVhc3QgdGhlIHNpbXBsZSBjYXNlcy4KICAgCjIwMDMtMDgtMTMgMjM6MzYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9zbm1wX2FnZW50LmgsIGxpYnJhcnkvc25tcC5oCjoKCiAgIC0gZGVmaW5lIGEgbmV3IGludGVybmFsLXVzZSBtb2RlOiAgTU9ERV9HRVRfQ0FDSEUKICAgCjIwMDMtMDgtMTMgMjM6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICB1c2UgY2FsbG9jIHRvIGluaXRpYWxpemUgYW5kIHplcm8gbWVtb3J5IChmaXhlcyBhbiBlcnJvciBzcG90dGVkIGJ5IHZhbGdyaW5kKS4KICAgCjIwMDMtMDgtMTMgMjM6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBzcG90dGVkIG9uZSBtZW1vcnkgbGVhay4KICAgCjIwMDMtMDgtMTMgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgLSBhZGRlZCBhIC1DdCBvcHRpb24gdG8gc25tcHdhbGsgdG8gZGlzcGxheSB3YWxrIGNsb2NrIHRpbWVyIHJlc3VsdHMKICAgCjIwMDMtMDgtMTMgMjI6NDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICAtIGFkZGVkIGEgcGFyZW50IG5vZGUgZm9yIHVwd2FyZCB0cmF2ZXJzYWwuCiAgIC0gYSBnZXRuZXh0IGltcGxlbWVudGF0aW9uIHRoYXQgYWN0dWFsbHkgd29ya3MgKGZhaXJseSBoZWF2aWx5IHRlc3RlZCkuCiAgIAoyMDAzLTA4LTEzIDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gbW9kaWZpZWQgdGhlIGZyZWUgZnVuY3Rpb24gcG9pbnRlciB0byB0YWtlIGEgY2FjaGUgYXJndW1lbnQgZm9yCiAgICAgZ2VuZXJhbGl6aW5nIGl0IGEgYml0IG1vcmUuCiAgIAoyMDAzLTA4LTEzIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgLSBJbXBsZW1lbnQgbmV0c25tcF9pbmplY3RfaGFuZGxlcl9iZWZvcmUoKSB3aGljaCB0YWtlcyBhbiBhcmd1bWVudCB0bwogICAgIGRldGVybWluZSB3aGVyZSBpbiB0aGUgaGFuZGxlciBjaGFpbiBpdCBzaG91bGQgaW5qZWN0IHNvbWV0aGluZy4KICAgLSBNb2RpZnkgdGhlIGluamVjdEhhbmRsZXIgLmNvbmYgdG9rZW4gdG8gdGFrZW4gYW4gb3B0aW9uYWwgZmluYWwKICAgICBCRUZPUkUgYXJndW1lbnQuCiAgIAoyMDAzLTA4LTEwIDExOjM5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBtaXNjIGhpZ2ggbGV2ZWwgY29weXJpZ2h0IG5vdGVzIGFkZGVkIChJRSwgc2VlIHRoZSBDT1BZSU5HIGZpbGUsIC4uLikuCiAgIAoyMDAzLTA4LTEwIDExOjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIG1pc2MgY29weXJpZ2h0IG5vdGVzIGFkZGVkLgogICAKMjAwMy0wOC0wNSAwMTo0MiAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ2F0Y2ggbWlzc2luZyBwYXJhbWV0ZXJzIGluIGNvbXBpbGUtc3ViYWdlbnQgaGFuZGxpbmcgdG9vCiAgIAoyMDAzLTA4LTA1IDAxOjM4ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDYXRjaCBtaXNzaW5nIHBhcmFtZXRlcnMgaW4gY3JlYXRlLXNubXB2My11c2VyIGhhbmRsaW5nCiAgIAoyMDAzLTA4LTA1IDAxOjMyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBVc2UgJDEgcGFyYW1ldGVyIGRpcmVjdGx5IGluIGNyZWF0ZS1zbm1wdjMtdXNlciBwcm9jZXNzaW5nLgogICBTb21ld2hhdCBsZXNzIGNvbmZ1c2luZyB0aGFuIHdpdGggdGhlIGFkZGl0aW9uYWwgJGFyZyBwYXJhbWV0ZXIsCiAgIGFuZCBsZXNzIGNoYW5jZSBvZiBzaGlmdGluZyBhIG5vbi1leGlzdGVudCB2YWx1ZS4KICAgKFJlbGV2YW50IHRvIGJ1ZyAjNzU1NTcxKQogICAKMjAwMy0wOC0wMiAwNjo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJlb2cvdXBkYXRlIGNvZGUgZ2VuZXJhdGlvbjsgcnVuIG1mZC1kYXRhLWFjY2Vzczsgc2V0IGhhbmRsZXIgUldSSVRFIGlmIHRhYmxlCiAgIHdyaXRhYmxlOyBjaGcgdGFibGUgcmVnaXN0cmF0aW9uIHR5cGU7IGluY2x1ZGUgbmV3IHRhYmxlIHNldHVwCiAgIAoyMDAzLTA4LTAyIDA2OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgc2ltcGxpZnkgcGFyYW0gbGlzdHM7IHVwZGF0ZSBjb2RlIGdlbmVyYXRpb24KICAgCjIwMDMtMDgtMDIgMDY6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgc2V0dXAgbm9kZSBzcmggaW5kZXBlbmRlbnQgb2YgZ2V0IHRlbXAgdXNlCiAgIAoyMDAzLTA4LTAyIDA2OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBiZSBtb3JlIHBhcmFub2lkIGFib3V0IHRlbXBvcmFyeSBvdmVycmlkZSBvZiAkbmFtZQogICAKMjAwMy0wOC0wMiAwNjozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpOgoKICAgY2hnIGluZGVudGlvbiBvbiBzb21lIGNvbW1lbnQgYmxvY2tzOyB1c2UgbmV3IG5vZGUtc3RvcmFnZS5tMmk7IHJtdiBkYXRhIHB0cgogICAKMjAwMy0wOC0wMiAwNjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF90YWJsZS5tMmksCiAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG5vZGUtc3RvcmFnZS5tMmk6CgogICBuZXcgY29kZSB0ZW1wbGF0ZXMKICAgCjIwMDMtMDgtMDIgMDY6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLAogICBnZW5lcmljLWN0eC1zZXQubTJpLCBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIGdlbmVyaWMtZ2V0LW9pZC5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWRhdGEtc2V0Lm0yYywgbm9kZS1nZXQubTJpLAogICBub2RlLXNldC5tMmksIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJkOgoKICAgZGF0YSBhdCBjdHgtPmRhdGEsIG5vdCBjdHg7IGNoZyBpbmRlbnRpb24gb24gYmxvY2sgY29tbWVudHM7IGZpeCBzb21lIG1pc3NlZAogICBuYW1lIGNoYW5nZXM7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb25mIGZpbGVzOyBzaW1wbGlmeSBzb21lIHBhcmFtIGxpc3RzOwogICBhZGQgc29tZSBhc3NlcnRzCiAgIAoyMDAzLTA3LTMxIDA3OjIzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBEb24ndCBzaGlmdCBhd2F5IGNvbW1hbmQtbGluZSBwYXJhbWV0ZXJzIHRoYXQgcHJvYmFibHkgYXJlbid0IHRoZXJlCiAgIChhbmQgY2VydGFpbmx5IGFyZW4ndCByZWxldmFudCB0byB0aGUgYWN0aW9uIGJlaW5nIGhhbmRsZWQpCiAgIFJlcG9ydGVkIGJ5IFZpbm9kIEpvaG5zb24KICAgCjIwMDMtMDctMzEgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBIYW5kbGUgcHJveGllZCBTRVRzIGluIHRoZSBBQ1RJT04gcGFzcywgcmF0aGVyIHRoYW4gdGhlIGNvbW1pdCBwYXNzLgogICBUaGlzIGFsbG93cyBmYWlsdXJlcyBoZXJlIHRvIGJhY2sgb3V0IGFzc2lnbm1lbnRzIGluIG90aGVyIG1vZHVsZXMuCiAgIFdlIGNhbid0IHByb2Nlc3MgVU5ETyByZXF1ZXN0cyBzdWNjZXNzZnVsbHksIGJ1dCB3ZSBjYW4gYXQgbGVhc3QgcmVwb3J0CiAgIHRoaXMgZmFjdC4gIFdoaWNoIGlzIHByZWZlcmFibGUgdG8gY2xhaW1pbmcgZmFpbHVyZSBidXQgKHNpbGVudGx5KQogICBhY3Rpbmcgb24gc29tZSBhc3NpZ25tZW50cy4KICAgCjIwMDMtMDctMzEgMDM6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBEb24ndCBsb2cgd2FybmluZ3MgZm9yIGRlbGliZXJhdGVseSB1bnVzZWQgU0VUIHBhc3Nlcy4KICAgCjIwMDMtMDctMzEgMDM6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBIYW5kbGUgU05NUCBlcnJvcnMgZnJvbSBwcm94aWVkIHNlcnZlcnMgY29ycmVjdGx5LgogICBQYXNzaW5nIHRoZSBlcnJvciBiYWNrIHVwIHRoZSBjaGFpbiBzZWVtcyB0byBEbyBUaGUgUmlnaHQgVGhpbmcuCiAgIAoyMDAzLTA3LTMxIDAzOjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcm9ibGVtcyBpbiBNSUIgcHJvY2Vzc2luZyBhcmUgaW5kaWNhdGVkIHZpYSB0aGUgJ2FzcC0+c3RhdHVzJyBmaWVsZCwKICAgcmF0aGVyIHRoYW4gdGhlIHJldHVybiB2YWx1ZS4gIFNvIHVzZSB0aGF0IHdoZW4gZG93bmdyYWRpbmcgdjItc3R5bGUKICAgZXJyb3JzIGZvciB2MSByZXNwb25zZXMuCiAgIAoyMDAzLTA3LTMwIDEwOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICBuZXcgTUlCcyBGb3IgRHVtbWllcyAobWZkKSBjb25mIGZpbGVzCiAgIAoyMDAzLTA3LTMwIDEwOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZXhhbXBsZV8oc3RhcnQvZW5kKTsgZml4ICR4LnJhbmdlczsgYWxsb3cgbGl0ZXJhbCB2YXIgbmFtZXMgaW4gdXNlciBjb2RlCiAgIHZpYSAkQHZhcjsgYWRkIHRhYmxlX2lzX3dyaXRhYmxlIGZ1bmN0aW9uCiAgIAoyMDAzLTA3LTMwIDEwOjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtY29weS5tMmksCiAgIGdlbmVyaWMtY3R4LWdldC5tMmksIGdlbmVyaWMtY3R4LXNldC5tMmksCiAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgIGdlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwgZ2VuZXJpYy1nZXQtZGVjbC5tMmksCiAgIGdlbmVyaWMtZ2V0LWxvbmcubTJpLCBnZW5lcmljLWdldC1vaWQubTJpLAogICBnZW5lcmljLWhlYWRlci1ib3R0b20ubTJpLCBnZW5lcmljLWhlYWRlci10b3AubTJpLAogICBnZW5lcmljLXNvdXJjZS1pbmNsdWRlcy5tMmksIGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmksCiAgIGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLAogICBnZW5lcmljLXZhbHVlLW1hcC5tMmksIG0yY19zZXR1cF9ub2RlLm0yaSwgbm9kZS1nZXQubTJpCiwgbm9kZS1zZXQubTJpLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwKICAgcGFyZW50LXNldC5tMmksIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJkLAogICBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzcy1zZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmkKLCBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmksCiAgIHN5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaSwgc3ludGF4LVRlc3RBbmRJbmNyLWdldC5tMmk6CgogICBsb3RzIG9mIG5ldyBtaWIyYyBoZWxwZXJzIChpbmNsdWRlcykKICAgCjIwMDMtMDctMzAgMTA6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLWVudW1zLm0yaSwgZGV0YWlscy1ub2RlLm0yaQosIGRldGFpbHMtdGFibGUubTJpOgoKICAgbW9zdGx5IHZhcmlhYmxlIHJlbmFtZXM7IHNvbWUgcmVvcmcKICAgCjIwMDMtMDctMzAgMDY6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBEaXNjYXJkIHZhbHVlcyByZWNlaXZlZCBmcm9tIHRoZSBwcm94eSBpZiB0aGUgT0lEIGlzIGludmFsaWQuCiAgIChUeXBpY2FsbHkgd2hlbiBhIEdldE5leHQgd2Fsa3MgcGFzdCB0aGUgZW5kIG9mIHRoZSBwcm94aWVkIHN1YnRyZWUpLgogICBBbHNvIHVwZGF0ZSB0aGUgY29tbWVudHMgdG8gZGVzY3JpYmUgdGhlIGJlaGF2aW91ciBpbiBhIGJpdCBtb3JlIGRldGFpbC4KICAgCjIwMDMtMDctMzAgMDY6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBSZXNwb25kIHRvIFNOTVAgZXJyb3JzIGZyb20gdGhlIHByb3hpZWQgYWdlbnQuCiAgIChUaGUgcmVzcG9uc2UgaXMgbXVjaCB0b28gc2ltcGxpc3RpYywgYW5kIGlzIGxpa2VseSB0byBwcm92ZSBhbgogICBvdmVyLXJlYWN0aW9uIGluIG1hbnkgY2FzZXMuICAgQnV0IGl0J3MgYSBzdGFydCkKICAgTm90ZSB0aGF0IHRoZSBpbmRlbnRhdGlvbiBoYXMgbm90IGJlZW4gYWRqdXN0ZWQgLSB3YWl0IHVudGlsIHRoaW5ncwogICBzZXR0bGUgZG93biBmaXJzdC4KICAgCjIwMDMtMDctMjkgMDg6MTMgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGYuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZGYuYzoKCiAgIEZpeCBhIHR5cG8gaW4gYW4gZXJyb3IgbWVzc2FnZSAoUGF0Y2ggIzc2OTIyMSkKICAgCjIwMDMtMDctMjkgMDU6MDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBDb3JyZWN0IHRoZSBjb21tZW50cyBpZGVudGlmeWluZyBoZXgvYXNjaWkgdmFsdWVzIGZvciBQRFUgdHlwZXMuCiAgIFJlcG9ydGVkIGJ5IE9sZWcgSXZhbm92LgogICAKMjAwMy0wNy0yOSAwMjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsIHV0aWxpdGllcy9leGVjdXRlLmMKOgoKICAgU3VwcG9ydCBmb3IgbXVsdGktY29tbWFuZCBkaXJlY3RpdmVzIGZvciAnc2gnIGV4dGVuc2liaWxpdHkuCiAgICAgICAoaS5lLiBydW5uaW5nICJ0aGlzOyB0aGF0OyB0aGUgb3RoZXIiKQogICBSZXRhaW5lZCB0aGUgb3JpZ2luYWwgYmVoYXZpb3VyIG9mIHRydW5jYXRpbmcgYXQgdGhlIGZpcnN0ICc7JyBmb3IKICAgJ2V4ZWMnIGRpcmVjdGl2ZXMgIChmb2xsb3dpbmcgdGhlIFByaW5jaXBsZSBvZiBMZWFzdCBBc3RvbmlzaG1lbnQpCiAgIAoyMDAzLTA3LTI5IDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgTG9nIGZhaWx1cmUgdG8gc2V0IHVwIHByb3h5IGNvbW1hbmQgKHJhdGhlciB0aGFuIHBsb3VnaGluZyBvbiByZWdhcmRsZXNzISkKICAgCjIwMDMtMDctMjkgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEZpeCBzdXBwb3J0IGZvciBtdWx0aS1saW5lIChyZWxvY2F0YWJsZSkgb3V0cHV0LgogICAKMjAwMy0wNy0yNyAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsLzogbWliMmMgKFY1LTAtcGF0Y2hlcy4yKSwgbWliMmM6CgogICBmaXggZmlsZW5hbWUgaW4gZXJyb3IgbXNnLCBhcyBub3RlZCBpbiBjb2RlcnMKICAgCjIwMDMtMDctMjQgMTk6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBvaWRsZW5ndGggZnVuY3Rpb24KICAgCjIwMDMtMDctMjQgMTc6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBjdnMgaWQgdGFnOyBhZGQgY29tbWVudCBkb2N1bWVudGluZyBub25pbmRleDsgaW5kZXhlcyBsb29wIHdpbGwgbm93CiAgIGluY2x1ZGUgaW5kZXggZm9yIHRhYmxlcyB1c2luZyBhdWdtZW50cwogICAKMjAwMy0wNy0yNCAxNzo1MiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIGFjY2VzcyB0byB0aGUgQVVHTUVOVFMgYXR0cmlidXRlCiAgIAoyMDAzLTA3LTIzIDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgd2FybmluZyBmb3IgdW5rbm93biAkdmFyLnRhZyB0YWdzIHRvIGNhdGNoIHR5cG9zOyB3YXRjaCBmb3IgdW5tYXRjaGVkCiAgIEAgaW4gc2tpcHZhcnM7IGRvbid0IG9wZW4gbmV3IGZpbGUgaXQgaXQncyBhbHJlYWR5IG9wZW47IGFkZCBmbGFnIHRvCiAgIHByb2Nlc3NfZmlsZSBmb3Igc2F2ZS9yZXN0b3JlIG9mIHZhcnM7IGZpeCBwcm9jZXNzIGFnYWluIHNvIGl0IHdpbGwgY2F0Y2gKICAgdW5tYXRjaGVzIEBAOyBhZGQgbmV3IEBmb3JlYWNoIG5vbmluZGV4QAogICAKMjAwMy0wNy0yMiAwOTowNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gemVybyBvdXQgc2Vuc2l0aXZlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgKGNvbW11bml0eSBzdHJpbmcsIHVzZXIgbmFtZSwKICAgICAgIGF1dGhlbnRpY2F0aW9uIHBhc3NwaHJhc2UsIHByaXZhY3kgcGFzc3BocmFzZSkuCiAgIAogICAgICAgTk9URTogdGhpcyBkb2VzIG5vdCB3b3JrIGZvciBhbGwgcGxhZm9ybXMgLS0gY2VydGFpbmx5IGl0IGRvZXNuJ3QKICAgICAgICAgICAgIHdvcmsgZm9yIFNvbGFyaXMuICBBIGRpZmZlcmVudCwgbW9yZSBncm9zcyBtZXRob2QgaXMgbmVlZGVkCiAgICAgICAgICAgICBmb3IgdGhlc2UgcGxhdGZvcm1zIChzZWUgc2VuZG1haWwgY29kZSBmb3IgZGV0YWlscyAtLSAgbmVlZAogICAgICAgICAgICAgSSBzYXkgbW9yZT8pLgogICAKMjAwMy0wNy0yMiAwODo0NSAgZHRzMTIKCiAgICogbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgSW1wcm92ZWQgZGVzY3JpcHRpb25zIG9mIHRoZSB2YXJpb3VzIHN1YmNvbW1hbmRzLgogICBCYXNlZCBvbiBtYXRlcmlhbCBzdXBwbGllZCBieSBOaWNrIERpUmljby4KICAgCjIwMDMtMDctMjIgMDg6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBWYXJpb3VzIGZpeGVzIHRvIHRoZSByZWNlbnQgVENQIHRhYmxlIHJlZGVzaWduLCBzdXBwbGllZCBieSBLYXRzdWhpc2EgQUJFLgogICAoU29tZSBvdGhlcnMgc3RpbGwgb3V0c3RhbmRpbmcsIGF3YWl0aW5nIGRpc2N1c3Npb24uICBCdXQgdGhlc2UgYXJlIGNsZWFyCiAgIG1pc3Rha2VzLCB3aGljaCBuZWVkIGZpeGluZykuCiAgIAoyMDAzLTA3LTIyIDA4OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBVc2UgdGhlIHRhYmxlIGluZm9ybWF0aW9uICdjb2xudW0nIGZpZWxkIHRvIGlkZW50aWZ5IHRoZSByZXF1ZXN0ZWQgY29sdW1uCiAgIG9iamVjdChzKSByYXRoZXIgdGhhbiBwdWxsaW5nIHN0dWZmIG91dCBvZiB0aGUgT0lELiAgU3VnZ2VzdGVkIGJ5IE9sZWcgSXZhbm92LgogICAKMjAwMy0wNy0yMiAwNzo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgTWFrZSB0aGUgY3JlYXRlVmlldyBtYXNrIHBhcmFtZXRlciBvcHRpb25hbAogICAoYXMgd2l0aCB0aGUgJ3ZpZXcnIGNvbmZpZyBkaXJlY3RpdmUpCiAgIAoyMDAzLTA3LTIyIDA3OjU3ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBDb3JyZWN0IHRoZSBsYXlvdXQgb2YgdGhlIHVzYWdlIG1lc3NhZ2UuCiAgIAoyMDAzLTA3LTIyIDA3OjU2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBVc2UgdGhlIG1vcmUgZmxleGlibGUgQVBJIGNhbGwgZm9yIGhhbmRsaW5nIHZpZXcgT0lEcwogICAKMjAwMy0wNy0xOSAxMDo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLCBkZXRhaWxzLW5vZGUubTJpCiwgZGV0YWlscy10YWJsZS5tMmk6CgogICBtaWIyYyBpbmNsdWRlIGZpbGVzIHRvIGdlbmVyYXRlIG5vZGUgZGV0YWlscwogICAKMjAwMy0wNy0xOSAxMDo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgdHJhY2sgY3VycmVudCBsaW5lIGFuZCBmaWxlIG5hbWU7IG5ldyBmaW5kX2NvbmYsIHByb2Nlc3NfZmlsZSBzdWJzOyByZW1vdmUKICAgQHNraXAgTkAgYWJpbGl0eTsgc2tpcCBAdG9rZW5AIHNlYXJjaCBpZiBsaW5lIGRvZXNuJ3QgYmVnaW4gd2l0aCBAOwogICBhZGQgQHNraXBpZkAsIEBicmVha0A7IGRvbnQgcmVxdWlyZSBzcGFjZXMgZm9yIEBjbG9zZUA7IGFkZCAtaWZleGlzdHMgcGFyYW0gdG8KICAgQGluY2x1ZGVAOyBuZXcgQGlmY29uZkAgKyByZXdvcmsgY29kZSB0byBtYWtlIG90aGVyIEBpZlhYWEAgdG9rZW5zIGVhc3k7IG1lcmdlCiAgIGVsc2UvZWxzaWYgaW4gcHJvY2VzcyBsb29wCiAgIAoyMDAzLTA3LTE4IDEzOjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgcGFyc2luZyBvZiBpbml0aWFsIGRlZmF1bHQgZmlsZTsgZGVsYXkgcHJvY2Vzc2luZyBvZiBjbWQgbGluZSB2YXJzIHRpbAogICBhZnRlciBwcm9jZXNzaW5nIGRlZmF1bHQgZmlsZTsgYWRkIG5ldyAkYy5uZWVkc2xlbmd0aCwgJGMuaGFzZGVmdmFsLCAkYy5kZWZ2YWwsCiAgICRjLm1vZHVsZSwgJGMuYWNjZXNzaWJsZSwgJGMuY2hpbGRyZW4gKG5lZWRzIHdvcmspLCAkYy5oYXNoaW50LCAkYy5oaW50LAogICAkYy5yYW5nZXMsJGMuZW51bXJhbmdlIChuZWVkcyB3b3JrKSBhbmQgdmFyaW91cyBjb2RlIHRvIHN1cHBvcnQgdGhlbTsgYWRkCiAgIHBhcmFtZXRlciB0byBza2lwIHRvIGFsbG93IG9uZSB0byBicmVhayBvdXQgb2YgbXVsdGlwbGUgbGV2ZWxzIChuZWVkcyB3b3JrKTsKICAgYWxsb3cgc3BhY2VzIGFmdGVyIEBjbWRAIHRvIGFsbG93IGZvciBiZXR0ZXIgY29udHJvbCBvZiBpbmRlbnRpb247IG1vdmUgZmlsZQogICBvcGVuL2Nsb3NlIHRvIHN1YnJvdXRpbmVzOyBuZXcgQGFwcGVuZCBmaWxlQCwgQGNsb3NlIGZpbGVALCBAaW5jbHVkZSBmaWxlQDsKICAgYWxsb3cgd3JpdGluZyB0byBtdWx0aXBsZSBmaWxlcyBhdCBvbmNlOyBuZXcgQHByaW50IHRleHRAICh0byBzdGRvdXQpOwogICB3aGV3ISBtb3JlIHRvIGNvbWUuLi4KICAgCjIwMDMtMDctMTYgMDM6MjkgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1cHBvcnQgcHJvY2Vzc2luZyBvZiBjb21waWxlLXN1YmFnZW50IHN1Yi1vcHRpb25zIGluIGFueSBvcmRlcgogICAKMjAwMy0wNy0xNiAwMzoyOCAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgSGFuZGxlIGNvbXBpbGUtc3ViYWdlbnQgY2FsbGVkIHdpdGggbm8gcGFyYW1ldGVycwogICAKMjAwMy0wNy0xNiAwMzoyNCAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRml4IGluY29uc2lzdGVudCB1c2FnZSB3aXRoaW4gY29tcGlsZS1zdWJhZ2VudAogICAKMjAwMy0wNy0xNiAwMzoyMSAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgSGFuZGxlIC0tY3JlYXRlLXNubXB2My11c2VyIGNhbGxlZCB3aXRoIG5vIHBhcmFtZXRlcnMKICAgCjIwMDMtMDctMTYgMDI6MDcgIGR0czEyCgogICAqIFJFQURNRToKCiAgIENsYXJpZnkgdGhlIHJvbGVzIG9mIHRoZSB2YXJpb3VzIG1haWxpbmcgbGlzdHMsIGFuZCB3aGljaCBvbmVzIHRvIHVzZQogICAob3Igbm90IHVzZSkuICBBbHNvIHVwZGF0ZWQgdGhlIHByb2plY3Qgd2ViIHBhZ2UgYWxvbmcgdGhlIHNhbWUgbGluZXMuCiAgIAoyMDAzLTA3LTE1IDIxOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICByZW5hbWUgaXN0YWJsZSB0byBpc2NvbHVtbjsgYWRkIGVudW1zOyBhZGQgY3VycmVudHZhcjsgZml4IGVudW0gZHVtcCB0byB3b3JrCiAgIGZvciBzY2FsYXJzCiAgIAoyMDAzLTA3LTE1IDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBGaXggYSB2YXJhcmdzIHR5cGUgc3BlY2lmaWNhdGlvbi4gIFNwb3R0ZWQgYnkgT2xlZyBJdmFub3YuCiAgIAoyMDAzLTA3LTE1IDA3OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBBdm9pZCByZWZlcmVuY2luZyBmcmVlZCBtZW1vcnkuICAoUmVwb3J0ZWQgYnkgU3RldmUgQmVubmV0dCkKICAgCjIwMDMtMDctMTUgMDc6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFJ1biBwYXNzLXRocm91Z2ggc2NyaXB0cyBpbiB0aGUgQUNUSU9OIHBhc3MsIG5vdCBDT01NSVQsIHNvIGFueSBlcnJvcnMKICAgY2FuIGJlIHJlcG9ydGVkIGJhY2sgcHJvcGVybHkuCiAgIEFsc28gdHdlYWsgdGhlIGVycm9yLWNoZWNraW5nIGNvZGUgdG8gcmVjb2duaXNlIHRoZSBlcnJvciBzdHJpbmdzIHByb3Blcmx5LgogICAKMjAwMy0wNy0xNCAxNzowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYWNoIGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wNy0xNCAxNjo1MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGx5IHBhdGNoIGZyb20gU3RldmUgQmVubmV0dCA8c3RldmViQHNuYXBnZWFyLmNvbT4gdG8gYWxsb3cgb25lIHRvIGRpc2FibGUKICAgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCBhbmQgcmVkdWNlIGFnZW50IHNpemUuIFR3ZWFrZWQgYnkgbWUgYSBiaXQuIGRpc2FibGUKICAgYWdlbnR4IGlmIGNhbGxiYWNrcyBkaXNhYmxlZAogICAKICAgcmVtb3ZlICh0cmFuc3BvcnR8c2VjdXJpdHkpX1tsXW9ial9saXN0LCBhcyBbbF1vYmogbGlzdHMgYXJlIG5vdyBnZW5lcmF0ZWQKICAgZnJvbSBzcmNzOyByZW1vdmUgQWdlbnRYIGJldGEgY29kZSB3YXJuaW5nIGZyb20gaGVscAogICAKMjAwMy0wNy0xNCAxNjo1MCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBTdGV2ZSBCZW5uZXR0IDxzdGV2ZWJAc25hcGdlYXIuY29tPiB0byBhbGxvdyBvbmUgdG8gZGlzYWJsZQogICB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0IGFuZCByZWR1Y2UgYWdlbnQgc2l6ZS4gVHdlYWtlZCBieSBtZSBhIGJpdC4gZGlzYWJsZQogICBhZ2VudHggaWYgY2FsbGJhY2tzIGRpc2FibGVkLgogICAKMjAwMy0wNy0xMyAxMToxOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmMKOgoKICAgYWRkIHByaW9yaXR5IHRvIGNhbGxiYWNrIHNvIHVzZXIgY2FuIGRldGVybWluZSBjYWxsYmFjayBvcmRlcgogICAKMjAwMy0wNy0xMyAwOTo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmg6CgogICByZXN0b3JlIGlucGNiIHN0cnVjdCBmb3IgbGludXggKHVudGlsIGl0IHNob3dzIHVwIHNvbWV3aGVyZSBlbHNlIGluIGN2cykKICAgCjIwMDMtMDctMTEgMDU6MDggIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEZpeCBlcnJvcnMgaW4gdGhlIGV4YW1wbGVzLCBzcG90dGVkIGJ5IE5pY2sgRGlSaWNvCiAgIAoyMDAzLTA3LTEwIDA2OjExICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZQo6CgogICBzeW5jIHcvcGF0Y2hlcwogICAKMjAwMy0wNy0xMCAwNTo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3AuYywgdGNwLmgsIHRjcFRhYmxlLmMKLCB0Y3BUYWJsZS5oLCB1ZHAuYywgdWRwLmgsIHVkcFRhYmxlLmMKLCB1ZHBUYWJsZS5oOgoKICAgTmV3LUFQSSBpbXBsZW1lbnRhdGlvbiBvZiBVRFAgYW5kIFRDUCB0YWJsZXMsIHVzaW5nIGNhY2hlIGFuZCBpdGVyYXRvciBoZWxwZXJzLgogICBXb3JrcyBvbiBMaW51eCBhbmQgSFAtVVggMTAsIGNvbXBpbGVzIChidXQgdW50ZXN0ZWQpIG9uIFNvbGFyaXMgJiBXaW5kb3dzLgogICAKMjAwMy0wNy0xMCAwMzo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKCiAgIENvbG9uPyBzZW1pY29sb24/ICBXaGF0J3MgYSBwaXhlbCBvciB0d28gYmV0d2VlbiBmcmllbmRzLi4uLgogICAKMjAwMy0wNy0xMCAwMjoxMiAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMnNkay5kc3csIGxpYmFnZW50L2xpYmFnZW50LmRlZiwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLCBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBWaXN1YWwgQysrIHR3ZWFrcywgdG8gZ2V0IGV2ZXJ5dGhpbmcgdG8gY29tcGlsZSBjbGVhbmx5LgogICAKMjAwMy0wNy0wOSAwODo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgTWlzc2luZyBoZWFkZXIgcHJvdGVjdGlvbiBjaGVja3MKICAgCjIwMDMtMDctMDkgMDg6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBIYW5kbGUgc3lzdGVtcyB3aXRob3V0IGdldHB3bmFtIG9yIGdldGdybmFtCiAgIAoyMDAzLTA3LTA5IDA4OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgUHJvdmlkZSBkZWZhdWx0IGRlZmluaXRpb25zIG9mIHN5c2xvZyBjb25zdGFudHMgaWYgbm90IGFscmVhZHkgcHJlc2VudC4KICAgCjIwMDMtMDctMDkgMDg6MDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBQcm92aWRlIG1pc3NpbmcgZm9yd2FyZCBkZWNsYXJhdGlvbnMKICAgCjIwMDMtMDctMDkgMDU6MjUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTdXBwb3J0IGZvciB0aGUgb2xkICctTCcgb3B0aW9uLgogICAoSW5jcmVkaWJseSBjbHVua3ksIGJ1dCBuZWNlc3NhcnkpCiAgIAoyMDAzLTA3LTA5IDA1OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBTdXBwb3J0IGZvciAicGVyc2lzdGVudCBlbnVtZXJhdGlvbnMiLgogICAKMjAwMy0wNy0wOCAwNjowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICB1ZHAuYzoKCiAgIEltcHJvdmVkIGRlYnVnZ2luZyBmb3IgbmV3IHNjYWxhcl9ncm91cCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoyMDAzLTA3LTA3IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gQ2h1Y2sgWWVya2VzIHRvIG1ha2UgdGhlIE1UQS1NSUIgd29yayB3aXRoIG5ld2VyIHNlbmRtYWlsIHZlcnNpb25zLCBpbmNsdWRpbmcgRkZSX1FVQVJBTlRJTkUgc3VwcG9ydAogICAKMjAwMy0wNy0wNyAwNjowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgRXhwb3J0IHRoZSAnbWFrZV90ZW1wZmlsZScgcm91dGluZS4KICAgCjIwMDMtMDctMDYgMjA6NDEgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeCB0eXBvcwogICAKMjAwMy0wNy0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIGFkZGVkIHN5cy90eXBlcwogICAKMjAwMy0wNy0wMyAyMToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZnJlZSBjb250YWluZXIgb24gZnJlZTsgc29ydCBiZWZvcmUgZm9yX2VhY2ggZXhlY3V0ZXM7IGFkZCBpbml0IHRvIHJlZ2lzdGVyCiAgIAoyMDAzLTA3LTAzIDIxOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgY29udGFpbmVycwogICAKMjAwMy0wNy0wMyAyMToyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVwZGF0ZSBDT05UQUlORVJfRlJFRSBmb3IgbmV3IHJlcXVpcmVtZW50IHRoYXQgY29udGFpbmVycyBmcmVlIHRoZW1zZWx2ZXMKICAgCjIwMDMtMDctMDMgMjE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgYWRkIGluaXQgZm9yIGxpc3Rfc3NsbCBhbmQgbnVsbCBjb250YWluZXJzOyBhZGQgYWxpYXNlcyBmb3IgbGlzdCBhbmQKICAgYmluYXJ5IGNvbnRhaW5lcnM7IHVwZGF0ZSBDT05UQUlORVJfRlJFRSBmb3IgbmV3IHJlcXVpcmVtZW50IHRoYXQKICAgY29udGFpbmVycyBmcmVlIHRoZW1zZWx2ZXMKICAgCjIwMDMtMDctMDMgMjA6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9saXN0X3NzbGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmg6CgogICBuZXcgZmlsZXMKICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX2xpc3Rfc3NsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9udWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjVzbm1wdjNnZXRTSEFERVMKOgoKICAgVXNlIGEgU0tJUElGTk9UIGZvciByZWFsIHRva2VucyAodHlwbykuCiAgIAoyMDAzLTA3LTAyIDE0OjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUxc29sYXJpc2hvc3RkaXNrCiwgVDE1Mmhvc3R1cHRpbWUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIGZpeCBuZXcgdGVzdHMgaW4gdmFyaW91cyB3YXlzCiAgIAoyMDAzLTA3LTAyIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZnJlZSB0aGUgcm9vdCBwb2ludGVyLgogICAKMjAwMy0wNy0wMiAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZyZWUgdGhlIGVuZ2luZWlkIGF0ICpzaHV0ZG93biogbm90ICpzdGFydHVwKjotLwogICAKMjAwMy0wNy0wMiAxNDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGRvbid0IGNhbGwgdGhlIGNsZWFudXAgcm91dGluZXMgYXQgc2h1dGRvd24gc2luY2UgdGhleSdyZSBmaWxsZWQgd2l0aAogICBkb3VibGUgZnJlZXMoKQogICAKMjAwMy0wNy0wMiAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaDoKCiAgIHJlcXVpcmUgbmVlZHMgZXhhbXBsZXMvIHByZWZpeAogICAKMjAwMy0wNy0wMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFVzZSBhIGZvciBsb29wIGluc3RlYWQgb2YgYSByZWN1cnNpdmUgZnVuY3Rpb24uCiAgIAoyMDAzLTA3LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBwcm90ZWN0IGFnYWluc3QgZW1wdHkgcm93cy4KICAgCjIwMDMtMDctMDIgMTM6NTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBmaXggY29udGFpbmVyIGNvZGUgZnJvbSB0aGUgbGFzdCBwYXRjaAogICAKMjAwMy0wNy0wMiAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFBhdGNoOiA3NTYyODY6IEEgZ2xvYmFsIGZyZWUgLT4gU05NUF9GUkVFIHJlcGxhY2VtZW50CiAgIAoyMDAzLTA3LTAyIDEzOjIwICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZnJlZSBsb3RzIG9mIG1lbW9yeSBmb3IgYSByZWFsbHkgY2xlYW4gc2h1dGRvd24KICAgCjIwMDMtMDctMDIgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjUtMC1wYXRjaGVzLjIpLCBhZ2VudF9yZWdpc3RyeS5jCjoKCiAgIFBhdGNoICM3MjQ5MjUgZnJvbSBQZXRlciBXYXJhc2luIHRvIGZpeCBuZXRzbm1wX3N1YnRyZWVfdW5sb2FkKCkgdG8gdXBkYXRlIHRoZSByb290IHBvaW50ZXIKICAgCjIwMDMtMDctMDIgMTI6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTFzb2xhcmlzaG9zdGRpc2sKLCBUMTUyaG9zdHVwdGltZSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgUGF0Y2g6IDc1NjI4NjogTmV3IHNvbGFyaXMgc3BlY2lmaWMgSFIgdGVzdHMgZnJvbSBCcnVjZSBTaGF3CiAgIAoyMDAzLTA3LTAyIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYwogICAoVjUtMC1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIFBhdGNoICM3NjA0NDggZnJvbSBCb2IgUm93bGFuZHMvU3VuIHRvIGZpeCBidWcgIzc1MTkxMyB0byBwcm90ZWN0IGEgZmV3IG1pbm9yIHNlY3VyaXR5IHZpb2xhdGlvbnMKICAgCjIwMDMtMDctMDIgMTA6NTggIGhhcmRha2VyCgogICAqIENPUFlJTkcsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIFBhdGNoICM3NjA0MTcgZnJvbSBCb2IgUm93bGFuZHMvU3VuIGZvciBmaXhpbmcgQnVnICM3NTE5MjAgZm9yIG1pbm9yIHNlY3VyaXR5IHByb2JsZW1zIChQSUQgZmlsZSB1bmxpa2VkIGZpcnN0LCBhbmQgdXNlIHN0cmxjcHkgaW5zdGVhZCBvZiBzdHJjcHkuICBBIG5ldyBzdHJsY3B5IGZpbGUgd2FzIGRlZmluZWQgaWYgbm90IGRlZmluZWQgZm9yIGEgc3lzdGVtLgogICAKMjAwMy0wNy0wMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zdHJsY3B5LmM6CgogICBmaWxlIHN0cmxjcHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wX2RlYnVnLmggKFY1LTAtcGF0Y2hlcy4xKSwKICAgc25tcF9kZWJ1Zy5oOgoKICAgUGF0Y2ggIzc2NDA0NyBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9uIGZyb20gc25tcF9kZWJ1Zy5oIGFuZCBmaXggYSBmZXcgY29tbWVudHMKICAgCjIwMDMtMDctMDIgMTA6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNS0wLXBhdGNoZXMuWzcsN10pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM3NTkzMDkgZnJvbSBTdGVwaGVuIEZyaWVkbCB0byBhZGQgcHJvbXB0IG92ZXItcmlkZSBmbGFnIGRlc2NyaXB0aW9ucyB0byBwcm9tcHQgb3V0cHV0CiAgIAoyMDAzLTA3LTAyIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM3NTkyOTg6IGZpeCBzcGVsbGluZyBlcnJvcgogICAKMjAwMy0wNy0wMSAwNTozMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXIxLmM6CgogICBSZW1vdmUgcmVkdW5kZW50IGZpbGUuCiAgIAoyMDAzLTA3LTAxIDAzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaWNtcC5oLCBpcC5jLAogICBpcC5oLCBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgsCiAgIG1pYklJX2NvbW1vbi5oLCB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaAo6CgogICBSZS1pbXBsZW1lbnQgdGhlIHNjYWxhciBuZXR3b3JrIHN0YXRpc3RpY3MgdXNpbmcgbmV3IEFQSSBmZWF0dXJlcy4KICAgVGhpcyBzZXJ2ZXMgYXMgYW4gZXhhbXBsZSBvZiB0aGUgJ3NjYWxhcl9ncm91cCcgYW5kICdjYWNoZV9oYW5kbGVyJwogICBoZWxwZXJzLCBhcyB3ZWxsIGFzIChob3BlZnVsbHkpIHNpbXBsaWZ5aW5nIHRoZSBjb2RlIHNvbWV3aGF0LgogICAKMjAwMy0wNy0wMSAwMjo1NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHNjYWxhci5jLCBzY2FsYXJfZ3JvdXAuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBoYW5kbGUgd2Fsa2luZyBmcm9tIG9uZSBzY2FsYXIgdG8gYW5vdGhlciBjb3JyZWN0bHksCiAgIGFuZCBkZWFsIHdpdGggaW50ZXJuYWwgbWlzc2luZyBvYmplY3RzIHdpdGhpbiBhIHNjYWxhciBncm91cC4KICAgCjIwMDMtMDYtMzAgMjI6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oOgoKICAgdXBkYXRlIGZvciByb3cgZGVsZXRpb24KICAgCjIwMDMtMDYtMzAgMTc6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mOgoKICAgdXBkYXRlIHRvIHN1cHBvcnQgcm93IGNyZWF0aW9uLiAgRGVsZXRpb24gc3VwcG9ydCBzdGlsbCBjb21pbmcsIGFzIGlzCiAgIGEgc2VwYXJhdGUgaGFuZGxlci4KICAgCjIwMDMtMDYtMzAgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSBtb3JlICJub3Qgc2VyaWFsaXplZCIgY29kZS4KICAgCjIwMDMtMDYtMzAgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogbmV0U25tcEhvc3RzVGFibGUuYywKICAgbmV0U25tcEhvc3RzVGFibGUuaCwgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5oOgoKICAgVXBkYXRlZCBmb3Igcm93IGNyZWF0aW9uLgogICAKMjAwMy0wNi0zMCAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jOgoKICAgcGF0Y2ggZnJvbSBGb25nIFRzdWkgZm9yIGZpeGluZyBOVUxMIHJlZmVyZW5jZXMKICAgCjIwMDMtMDYtMzAgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBtYWtlIHRoZSBkZWZhdWx0IGFnZW50eCBwaW5nIGludGVydmFsIGJlIDE1IHNlY29uZHMuCiAgIAoyMDAzLTA2LTMwIDA5OjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICB1dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgTWFrZSBzdXJlIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBuZXcgYXBwcm9hY2ggdG8gc3ViLWNvbW1hbmQKICAgaW52b2NhdGlvbiBhcmUgcHJvcGVybHkgYWNrbm93bGVkZ2VkLgogICAKMjAwMy0wNi0zMCAwNzo0MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2hlY2sgZm9yIHZhbGlkaXR5IG9mIHBhcmFtZXRlcnMgYmVmb3JlIHVzaW5nIHRoZW0uICAoUGFyYW5vaWQ/IFdobywgbWU/KQogICAKMjAwMy0wNi0zMCAwNjo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ2FjaGluZyBvZiBpbnRlcmZhY2UgZGF0YSBpcyBhY3R1YWxseSBMaW51eC1zcGVjaWZpYy4KICAgCjIwMDMtMDYtMzAgMDU6MDUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgcmVjZW50IGhlbHBlciBtb2R1bGVzIGluIHRoZSBoZWxwZXIgbGlicmFyeSBhbmQgbWV0YS1pbmNsdWRlIGZpbGUuCiAgIAoyMDAzLTA2LTI3IDA0OjQzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgU2ltcGxpZnkgdGhlIHByb2Nlc3Npbmcgb2YgInRyYXBoYW5kbGUiIGRpcmVjdGl2ZXMKICAgKHVzaW5nIHRoZSBuZXcgZ2VuZXJpYyBzdWItY29tbWFuZCBleGVjdXRpb24gdXRpbGl0eSByb3V0aW5lcywKICAgYW5kIHRoZSBpbXByb3ZlZCB2YXJsaXN0IGxvZ2dpbmcgY29uZmlndXJhdGlvbikKICAgCjIwMDMtMDYtMjcgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFVzZSB0aGUgbmV3IGdlbmVyaWMgc3ViLWNvbW1hbmQgZXhlY3V0aW9uIHV0aWxpdHkgcm91dGluZXMgaW5zdGVhZAogICBvZiB0aGUgZXh0ZW5zaWJsZS1zcGVjaWZpYyBvbmVzLgogICAKMjAwMy0wNi0yNyAwNDozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgSW5jbHVkZSBhIGdlbmVyYWwgJ21hZ2ljJyBwYXJhbWV0ZXIgaW4gYm90aCBjYWNoZSBkYXRhIHN0cnVjdHVyZQogICBhbmQgY2FjaGUgbG9hZGluZyByb3V0aW5lLiAgIEp1c3QgSW4gQ2FzZSBJdCBNaWdodCBDb21lIEluIFVzZWZ1bC4KICAgSGFwcHksIFdlcz8KICAgCjIwMDMtMDYtMjcgMDQ6MDkgIGR0czEyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgIG1pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmg6CgogICBHZW5lcmFsaXNlZCBzdWItY29tbWFuZCBleGVjdXRpb24gdXRpbGl0eSByb3V0aW5lcy4KICAgKFRoZSBjdXJyZW50ICdleGVjX2NvbW1hbmQnIGFuZCAnc2hlbGxfY29tbWFuZCcgcm91dGluZXMgYXJlIHZlcnkgc3BlY2lmaWMKICAgIHRvIHRoZSBkZXRhaWxzIG9mIHRoZSAnc3RydWN0IGV4dGVuc2libGUnIGRhdGEgc3RydWN0dXJlKS4KICAgVGhlc2Ugcm91dGluZXMgY2FuIGJlIHVzZWQgbW9yZSB3aWRlbHksIHdoZXJldmVyIGEgc3ViLXByb2Nlc3MgaXMgbmVlZGVkLgogICAKICAgUXVlc3Rpb25zOgogICAgIGEpICBTaG91bGQgdGhlc2UgdXRpbGlzZSB0aGUgInJlYWxsb2MiIG1lY2hhbmlzbSwgcmF0aGVyIHRoYW4KICAgICAgICAgZW5mb3JjZSBhIGZpeGVkIHNpemUgb3V0cHV0IGJ1ZmZlcj8KICAgICBiKSAgRG8gdGhleSBiZWxvbmcgaW4gdGhlIG1haW4gbGlicmFyeSAob3IgcG9zc2libHkgdGhlIGFnZW50IGxpYnJhcnkpCiAgICAgICAgIHJhdGhlciB0aGFuIGEgbWliZ3JvdXA/CiAgIAoyMDAzLTA2LTI3IDAxOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIE1vcmUgZmxleGlibGUgaGFuZGxpbmcgb2YgZm9ybWF0dGluZyB2YXJiaW5kIGxpc3RzLgogICAiJVYiIGNvbmZpZ3VyZXMgdGhlIHZhcmJpbmQgc2VwYXJhdG9yIGNoYXJhY3RlciAoYWx0X2Zvcm1hdCA9PiBhZGRlZCBzcGFjZSkKICAgIiV2IiB1c2VzIHRoaXMgc2VwYXJhdG9yIChhbHRfZm9ybWF0ID0+IHNlcGFyYXRvciBhbHNvIHByaW50ZWQgYmVmb3JlIHRoZSBsaXN0KQogICBEZWZhdWx0cyB0byB1c2luZyB0aGUgZWFybGllciAnXHQnIG9yICIsICIgaWYgbm8gc2VwYXJhdG9yIGlzIHNwZWNpZmllZC4KICAgCjIwMDMtMDYtMjYgMDI6MjcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm5vdGlmeS5jb25mOgoKICAgVXNlIHRoZSBuZXcgZmVhdHVyZXMgb2YgbWliMmMgdG8gdGlkeSB1cCB0aGUgb3V0cHV0IGEgYml0LgogICAKMjAwMy0wNi0yNiAwMjoyNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBFeHRlbmQgbWliMmMncyBuZXcgY291bnRlciByb3V0aW5lcyB0byBjb3ZlciAic3VibG9vcHMiIGFzIHdlbGwKICAgKGkuZS4gdGhlIG51bWJlciBvZiBjb2x1bW5zL2luZGV4ZXMgaW4gYSBwYXJ0aWN1bGFyIHRhYmxlLAogICAgYW5kIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB0byBiZSBpbmNsdWRlZCB3aXRoIGEgZ2l2ZW4gbm90aWZpY2F0aW9uKQogICAKMjAwMy0wNi0yNSAyMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gcHJvbXB0IHN1cHBvcnQgZm9yIG1pYjJjIHRvIGFzayBxdWVzdGlvbnMgdG8gdGhlIHVzZXIuCiAgIC0gQSBuZXcgdG9wLWxldmVsIHdyYXBwZXIgYXJvdW5kIGFsbCB0aGUgb3RoZXIgbWliMmMgZmlsZXMgdGhhdCB3YWxrcwogICAgIHlvdSB0aHJvdWdoIHNlbGVjdGluZyB0aGUgcmlnaHQgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlIHlvdSB3aXNoIHRvCiAgICAgdXNlIGFuZCB0aGVuIHNvdXJjZXMgaXQgZm9yIHlvdS4KICAgICAtIHRvZG86IGdlbmVyYXRlIHVuaXF1ZSBmaWxlIG5hbWVzIGlmIGJvdGggc2NhbGFyIGFuZCB0YWJsZSBjcmVhdGlvbgogICAgICAgaXMgZG9uZSwgZWcuCiAgIAoyMDAzLTA2LTI1IDIzOjEzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgYm95IGlzIHRoYXQgbm90IG5lZWRlZCBhbnkgbW9yZQogICAKMjAwMy0wNi0yNSAxNDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBEYXZlIGFza3MsIGRhdmUgZ2V0czoKICAgICAtIG5ldyBmdW5jdGlvbnMgcmV0dXJuaW5nIDEgb3IgMjogICR2YXIuaXNzY2FsYXIsICR2YXIuaXNjb2x1bW4KICAgICAtICR2YXIucGFyZW50IHJldHVybnMgdGhlIHBhcmVudCBsYWJlbCBzdHJpbmcgb2YgdGhlIG5vZGUuCiAgIAoyMDAzLTA2LTI1IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHJlcXVlc3QgLT4gcmVxdWVzdHMgYXMgcG9pbnRlZCBvdXQgYnkgU3RldmUgQmVuZXR0CiAgIAoyMDAzLTA2LTI1IDA3OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFN0YW1wIG9uIGEgdHJhaWxpbmcgJy4nIHdoZW4gc3BlY2lmeWluZyBWQUNNIE9JRHMuCiAgIAoyMDAzLTA2LTI1IDA3OjMwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgQ2FsbHMgdG8gcmVsZWFzZSBlbnVtZXJhdGlvbiBsaXN0cyB3aGVuIG5vIGxvbmdlciByZXF1aXJlZC4KICAgTm9ybWFsbHkgdGhpcyB3b3VsZCBiZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhbiBhcHBsaWNhdGlvbgogICBleGlzdHMsIGJ1dCBpdCBtaWdodCBiZSB1c2VmdWwgdG8gcmVsZWFzZSByZXNvdXJjZXMgZWFybGllci4KICAgCjIwMDMtMDYtMjUgMDc6MjQgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgJ2RsbW9kLmgnIGhlYWRlciBmaWxlCiAgIAoyMDAzLTA2LTI0IDA2OjIwICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5ub3RpZnkuY29uZjoKCiAgIEluaXRpYWwgc3VwcG9ydCBmb3IgY29kZSB0byBzZW5kIG91dCB0cmFwcyBhbmQgaW5mb3Jtcy4KICAgVGhpcyBzdGlsbCBkb2Vzbid0IGFkZHJlc3MgKndoZW4qIHN1Y2ggbm90aWZpY2F0aW9ucyBzaG91bGQKICAgYmUgZ2VuZXJhdGVkLCBidXQgaXQgYXQgbGVhc3QgaGVscHMgd2l0aCBkb2luZyBzby4KICAgCjIwMDMtMDYtMjMgMjI6MzAgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVtb3ZlIHRvbyBtdWNoIG1lbWR1cCdpbmcgaW4gaW5mb3JtIHJlcGx5CiAgIAoyMDAzLTA2LTIzIDE0OjMzICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkIEFQUy1NSUIgYW5kIE1BTExPQy1NSUIKICAgCjIwMDMtMDYtMjMgMTQ6MzEgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSBmcm9tIElBTkEKICAgCjIwMDMtMDYtMjMgMTQ6MzAgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlIG5vdyB1bnVzZWQgc25tcF9jbG9uZV9wZHUyCiAgIAoyMDAzLTA2LTIzIDEyOjM3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGluY2x1ZGUgd2FpdC5oIGZvciB3YWl0cGlkLCBhbmQgcmUtaW5zdGF0ZSB0aGUgY29kZSB0aGF0IHJlc3BvbmRzIHRvIGFuIGluZm9ybQogICAKMjAwMy0wNi0yMyAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaAo6CgogICBVdGlsaXR5IHJvdXRpbmUgdG8gY29udmVydCB2MSB0cmFwcyB0byB2Mi1ub3RpZmljYXRpb24tc3R5bGUgdmFyYmluZCBsaXN0LgogICAKMjAwMy0wNi0yMyAwNjozNSAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENvbnN0cnVjdCBhIGxpYnJhcnkgY29udGFpbmluZyB0aGUgY29yZSB0cmFwZCBoYW5kbGluZyBmdW5jdGlvbmFsaXR5LgogICAKMjAwMy0wNi0yMyAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgVGhlIHN5c09SVGFibGUgbW9kdWxlIGlzIGRlcGVuZGVudCBvbiBzeXN0ZW1fbWliLCBzbyBlbnN1cmUgdGhpcyBpcyBhdmFpbGFibGUuCiAgIAoyMDAzLTA2LTIzIDA2OjEzICBkdHMxMgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIENvbnNvbGlkYXRlIHRoZSBub3RpZmljYXRpb24gaGFuZGxlciBpbiB3aXRoIHRoZSByZXN0IG9mIHRoZQogICBOT1RJRklDQVRJT04tTUlCIHJlbGF0ZWQgY29kZS4KICAgCjIwMDMtMDYtMjMgMDY6MDEgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgU2h1ZmZsZSBjb2RlIGFyb3VuZCBhIGJpdC4gIFRoZSB0aHJlZSBmaWxlcyAnc25tcHRyYXBkX2hhbmRsZXJzLmMnLAogICAnc25tcHRyYXBkX2xvZy5jJyBhbmQgJ25vdGlmaWNhdGlvbi5jJyBub3cgY29udGFpbiBhbGwgdGhlIGNvZGUKICAgbmVlZGVkIHRvIHByb2Nlc3MgYW4gaW5jb21pbmcgdHJhcC4KICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGVtYmVkIHRoaXMgZnVuY3Rpb25hbGl0eSB3aXRoaW4gYW4gbGFyZ2VyCiAgIGFwcGxpY2F0aW9uLCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gdXNlIHRoZSAnc25tcHRyYXBkLmMnIHdyYXBwZXIuCiAgIAoyMDAzLTA2LTIyIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgaWdub3JlICouYyBhbmQgKi5oIGZpbGVzLgogICAKMjAwMy0wNi0yMiAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBuZXRTbm1wSG9zdHNUYWJsZS5jLAogICBuZXRTbm1wSG9zdHNUYWJsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywKICAgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmgsIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmMKLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5oLAogICBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5jLAogICBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5oLAogICBuZXRTbm1wSG9zdHNUYWJsZV9jb2x1bW5zLmgsIG5ldFNubXBIb3N0c1RhYmxlX2VudW1zLmg6CgogICAtIEEgbmV0U25tcEhvc3RzVGFibGUgaW1wbGVtZW50YXRpb24gdGhhdCBpbXBsZW1lbnRzIGEgdGFibGVfaXRlcmF0b3IKICAgICB3cmFwcGVyIGFyb3VuZCAvZXRjL2hvc3RzLiAgTm90ZSB0aGF0IGFsdGhvdWdoIHRoaXMgaXMgdGhlIGZpcnN0IGNoZWNrCiAgICAgaW4sIGl0IGlzIG5vdCBlbnRpcmVseSBjb21wbGV0ZSB5ZXQuICBTcGVjaWZpY2FsbHk6CiAgICAgLSBJdCBkb2Vzbid0IHN1cHBvcnQgcm93IGNyZWF0aW9uIHlldCAobXkgbmV4dCB0YXJnZXQpIGFuZCBkZWxldGlvbiB5ZXQuCiAgICAgLSBJdCBpbXBsZW1lbnRzIGEgYnVuY2ggb2Ygc3R1ZmYgaXRzZWxmIGluIG5ldFNubXBIb3N0c1RhYmxlLmMgdGhhdAogICAgICAgd2lsbCBldmVudHVhbGx5IGdvIGludG8gYSBtb3JlIGdlbmVyaWMgaGVscGVyLgogICAgIC0gSXQgZG9lc24ndCBzdXBwb3J0IGFueXRoaW5nIGJ1dCBpcHY0IHlldCBidXQgZG9lc24ndCBpZ25vcmUgaXQgaW4KICAgICAgIHRoZSBob3N0cyBmaWxlIChpbmV0X2F0b24gcmV0dXJucyBhIC0xIHRodXMgYWxsIGlwdjYgYWRkcmVzcyBnZXQKICAgICAgIG1hcHBlZCB0byAyNTUuMjU1LjI1NS4yNTUpLgogICAtIEl0IGlzIHN0aWxsIHVzZWZ1bCBqdXN0IHRvIHNob3cgaG93IFNFVCBvcGVyYXRpb25zIGNhbiBiZSBwZXJmb3JtZWQKICAgICB1c2luZyBhIHRhYmxlX2l0ZXJhdG9yLgogICAtIFBsdXMgSSBuZWVkZWQgdG8gY2hlY2sgaXQgaW4gYmVmb3JlIEkgc3RhcnQgbWVzc2luZyB3aXRoIGl0IGFnYWluCiAgICAganVzdCBmb3IgYXJjaGl2YWwgcHVycG9zZXMuCiAgIAoyMDAzLTA2LTIyIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBDcmVhdGUgYW4gZXhhbXBsZSB0YWJsZSB0aGF0IGlzIGEgd3JhcHBlciBhcm91bmQgL2V0Yy9ob3N0cyBkYXRhLgogICAKMjAwMy0wNi0yMiAxMjo1MyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJTkZPIGlzIG5vdCBhIGZhY2lsaXR5IC0gVVNFUiBjb3VsZCBiZQogICAKMjAwMy0wNi0yMiAxMjo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBBZGQgdGhlIG5ldyAtTCBvcHRpb24gdG8gdGhlIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDMtMDYtMjIgMTI6NDkgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQWRkIHNvbWUgbWlzc2luZyBwcm90b3R5cGVzLCBhbmQgdXNlIHRoZW0KICAgCjIwMDMtMDYtMjIgMTI6NDYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRG8gYXdheSB3aXRoIHNvbWUgd2FybmluZ3MKICAgCjIwMDMtMDYtMjIgMTI6NDQgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBjb25zdGlmeSBhIGZldyBhcmd1bWVudHMsIG1ha2Ugc3VyZSB0aGF0IHdlIGRlZmFsdCBvdXRwdXQgdG8gc3RkZXJyCiAgIAoyMDAzLTA2LTIyIDEyOjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRG8gYXdheSB3aXRoIHNvbWUgd2FybmluZ3MKICAgCjIwMDMtMDYtMjIgMTI6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFVudGFuZ2xlIGEgbW9zdCBleHRyb3JkaW5hcnkgd2ViIG9nIEZyZWVCU0QgYW5kIExpbnV4CiAgIAoyMDAzLTA2LTIyIDA3OjIyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBmaXggaGVscCB1c2FnZSBmb3IgZmxhZyBvcmRlcmluZy4KICAgCjIwMDMtMDYtMjIgMDc6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBhZGQgLXMgU1VGRklYIGFuZCAtUyBQUkVGSVggZmxhZ3MKICAgLSBkb3h5Z2VuIGRvY3VtZW50IHNubXBfcGFyc2Vfb2lkCiAgIC0gQWRkIGEgcHJvcGVyIEw6IHRva2VuIHRvIGdldG9wdCBmb3IgYSBtaXNzaW5nIGFjY2VwdGVkIGZsYWcKICAgCjIwMDMtMDYtMjAgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCB0aGUgbG9vcCBmcmVlIGJlZm9yZSBjYWxsLXN1Yi1ob29rIG9yZGVyaW5nIHByb2JsZW0gRGF2ZSBwb2ludGVkIG91dAogICAKMjAwMy0wNi0yMCAxMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBTdXBwb3J0IHRoZSBvcHRpb24gZm9yIHNvcnRlZCBpdGVyYXRvci1iYXNlZCB0YWJsZXMsIHRvby4KICAgCjIwMDMtMDYtMjAgMTE6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFN0b3Agc2VhcmNoaW5nIG9uY2Ugd2UndmUgZm91bmQgYWxsICJleGFjdCIgcmVxdWVzdGVkIHJvd3MuCiAgIAoyMDAzLTA2LTE5IDAxOjU0ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wc2V0LjEuZGVmLCBzbm1wdHJhcC4xLmRlZjoKCiAgIENsYXJpZnkgdGhlIEFTTi4xIHR5cGUgbWFwcGluZ3MgZm9yIGNvbW1hbmQtbGluZSB0eXBlIHNwZWNpZmljYXRpb25zLgogICAKMjAwMy0wNi0xNyAwNTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFN0YXJ0IHVzaW5nIHRoZSBuZXcgLUx4IHN0eWxlIGxvZ2dpbmcgb3V0cHV0LgogICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGRvZXNuJ3Qgc2VlbSB0byBzdXBwb3J0IHRoZSBvbGQgLUwgZm9ybWF0CiAgIChzZWUgY29tbWVudHMgaW4gc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyBmb3IgZGV0YWlscykuCiAgIAogICBJdCBtYXkgcHJvdmUgbmVjZXNzYXJ5IHRvIHJldmVyc2UgdGhpcyBwYXRjaDotKAogICBCdXQgSSdtIGNvbW1pdHRpbmcgaXQgYW55d2F5LCBpbiBjYXNlIGFueW9uZSBjYW4gc3BvdCBhIHN1aXRhYmxlIHdvcmthcm91bmQuCiAgIAoyMDAzLTA2LTE3IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTWlub3IgdHdlYWsgdG8gc3Rkb3V0L3N0ZGVyciBoYW5kbGluZywgdG8gaW1wcm92ZSB0aGUgYXBwZWFyYW5jZSBvZgogICBNSUIgZ3JvdXAgb3V0cHV0LgogICAKMjAwMy0wNi0xNyAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dAo6CgogICBNSUIgZ3JvdXAgdG8gbWFuYWdlIGFnZW50IGxvZ2dpbmcgY29uZmlndXJhdGlvbi4KICAgCjIwMDMtMDYtMTYgMTQ6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUyAoVjUtMC1wYXRjaGVzLjQpLCBSVU5URVNUUzoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvbW1lbnQgYWJvdXQgaXQgYmVpbmcgYnJva2VuLCBhcyBwb2ludGVkIG91dAogICBieSBCcnVjZS4KICAgCjIwMDMtMDYtMTYgMTQ6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUyAoVjUtMC1wYXRjaGVzLjMpLCBSVU5URVNUUzoKCiAgIHN1cHBvcnQgLCBzZXBhcmF0ZWQgYXJndW1lbnRzIHRvIC1UIGxpa2UgLWggc2F5cyBpdCB3aWxsLgogICAKMjAwMy0wNi0xNiAxNDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFBhdGNoIGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggb3V0cHV0IG51bWJlcmluZyB3aGVuIHVzaW5nIC1UIG9yCiAgIGludGVyYWN0aXZlbHkgcGlja2VkIHN1Yi1zZXJpZXMgb2YgdGVzdHMuCiAgIAoyMDAzLTA2LTE2IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjUtMC1wYXRjaGVzLjIpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzU1NTQwIGZyb20gQnJ1Y2UgU2hhdyBhbmQgSVJDOlNlYk5vYiB0byBmaXggYnVnICM3MDE0MzkgZm9yIDY0IGJpdCBzb2xhcmlzIHN5c3RlbXMgYW5kIDY0IGJpdCBpbnRlZ2VycyByZXR1cm5lZCBieSBnZXRLc3RhdAogICAKMjAwMy0wNi0xNiAxMzoxNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBQYXRjaCAjNzU0MTA1IGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggc29tZSBzcGVsbGluZyBlcnJvcnMKICAgCjIwMDMtMDYtMTYgMDc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICB5ZXQgbW9yZSBpbXByb3ZlbWVudHMgd29ya2luZyB0b3dhcmQgdGhlIGVuZC1nb2FsLgogICAKMjAwMy0wNi0xNiAwNzoxNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dCwgUkVBRE1FLk1hdHN1c2hpdGEudHh0OgoKICAgcmVuYW1lZCB0byBQYW5hc29uaWNfQU0zWCBieSByZXF1ZXN0CiAgIAoyMDAzLTA2LTEzIDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBPaywgdGhlcmUgd2FzIDEgbWVtb3J5IGxlYWsuICBCdXQgaXRzIGdvbmUgbm93LgogICAKMjAwMy0wNi0xMyAyMjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBpdGVyYXRvciBmcm9tIHNjcmF0Y2guCiAgICAgLSA2MCBsaW5lcyBvciBzbyBsZXNzIGNvZGUuCiAgICAgLSBubyBsb25nZXIgZm9yY2VkLXNlcmlhbGl6ZWQKICAgICAtIG1lbW9yeS1sZWFrIGZyZWUKICAgICAtIGJldHRlciBjb21tZW50ZWQgKHRob3VnaCBtb3JlIGNvdWxkIGFsd2F5cyBiZSB1c2VmdWwpLgogICAgIC0gc2lnbmlmaWNhbnRseSBzaW1wbGVyIGluIGRlc2lnbi4KICAgICAtIGRlbW9uc3RyYXRpb24gZXhhbXBsZSBtaWIgbW9kdWxlIGNvZGUgdG8gYmUgY2hlY2tlZCBpbiBlYXJseSBuZXh0IHdlZWsuCiAgIAoyMDAzLTA2LTEzIDExOjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIGZpeCByYW5nZSBjaGVja3Mgbm93IHRoYXQgaXRzIG5vIGxvbmdlciB0aGUgbGFzdCB0aGluZyBjYWxsZWQuCiAgIAoyMDAzLTA2LTEzIDExOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBtaXNjIG1pbm9yIGZpeGVzLgogICAKMjAwMy0wNi0xMyAxMToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggZWxzZSBjbGF1c2VzIHdpdGhpbiBpZiBzdGF0ZW1lbnRzLgogICAKMjAwMy0wNi0xMyAwODozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgSGFuZGxlIHByb2JsZW1zIHdpdGggcmVhZGluZyBwcm9jZXNzIGluZm9ybWF0aW9uIG9uIFNvbGFyaXMga2l0LCBjb25zaXN0ZW50bHkgYW5kIGNsZWFubHkuCiAgIAoyMDAzLTA2LTEzIDA2OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBJbXBsZW1lbnQgJy1MeCcgY29tbWFuZC1saW5lIG1ldGEtb3B0aW9uIGZvciBjb25maWd1cmluZyBsb2dnaW5nIHNldHRpbmdzLgogICBOb3QgMTAwJSBjb252aW5jZWQgdGhpcyBpcyBmdWxseSB3b3JraW5nLCBidXQgZG9lcyBzZWVtIHRvIHN1cHBvcnQKICAgbXVsdGlwbGUgb3V0cHV0IGxvY2F0aW9ucy4KICAgCjIwMDMtMDYtMTAgMTU6NDggIG5iYQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjUtMC1wYXRjaGVzLjcpLCBzbm1wX2FwaS5jOgoKICAgQmV3YXJlIG9mIGRlcmVmZXJlbmNpbmcgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDMtMDYtMTAgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBhZGQgY2FjaGluZyBoYW5kbGVyIGZpbGUKICAgCjIwMDMtMDYtMTAgMDg6NDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEluaXRpYWwgYmFzaCBhdCBhIG1vZHVsYXIgImxvZ19oYW5kbGVyIiBpbXBsZW1lbnRhdGlvbi4KICAgTGF5aW5nIHRoZSBmb3VuZGF0aW9ucyBmb3IgbW9yZSBmbGV4aWJsZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAgIAoyMDAzLTA2LTEwIDA4OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIHVudXNlZCBmdW5jdGlvbiBhcyBwb2ludGVkIG91dCBieSBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDYtMDkgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jCiAgIChWNS0wLXBhdGNoZXMuWzEsMywxLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBMb25nIG92ZXJkdWUgcGF0Y2ggIzY5NTE5MiBmcm9tIFJvbiBUYWJvciB0byBmaXggdGhlIFZBQ00gc3Bpbm5pbmcgcHJvYmxlbSB0aGF0IEkgZGlkbid0IHF1aXRlIGZpeCBiZWZvcmUKICAgCjIwMDMtMDYtMDkgMTU6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsIGNvbmZpZ3VyZToKCiAgIGZpeCBidWcgIzcwNjcxMCB0byBzaG93IHdoZW4gcHJpdmFjeSBoYXMgYmVlbiBkaXNhYmxlZAogICAKMjAwMy0wNi0wOSAxNTo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIGZpeCBidWcgIzcwNjc0MSBmcm9tIFNlYW4gQnVya2U6IGNoZWNrIGZvciB3b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gYQogICBwcm9wZXIgc2l6ZSAoc2l6ZW9mKGxvbmcpKS4KICAgCjIwMDMtMDYtMDkgMTU6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgYnVnICM3NDg0MzEgZnJvbSBKb2huIFNoaXZlcjogZml4IHRocmVhZC1zYWZlIHByb2JsZW1zIHdpdGggc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24gKHdoaWNoIHdhcyBtaXNzaW5nIGluIHRoZSA1LnggbGluZSBhbnl3YXkpLiAgQWxzbyBzZXBhcmF0ZSBvdXQgdW5pb24gc3RydWN0dXJlIGludG8gYSBzZXBhcmF0ZSB0eXBlZGVmIHJhdGhlciB0aGFuIHVzZSBpdCBpbmxpbmUgaW4gdGhlIHZhcmlhYmxlIGxpc3Qgc3RydWN0dXJlCiAgIAoyMDAzLTA2LTA5IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjIDc1MTE5NyBwb2ludGVkIG91dCBieSBUb20gRXZhbnMgd2hlcmUgaXNzcGFjZSBpcyB1c2VkIHRvIGNoZWNrIGZvciBoZXggY2hhcmFjdGVycyB3aGVuIGlzcHJpbnQoKSBpcyBhbGwgdGhhdCBpcyBuZWVkZWQKICAgCjIwMDMtMDYtMDkgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuaCwgYWNjb25maWcuaCwKICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggIzc0OTU1MiBmcm9tIHZheHBvd2VyICh3aXRoIG1vZGlmaWNhdGlvbnMgYnkgV2VzKTogbXVjaCBpbXByb3ZlZCBBSVggc3VwcG9ydAogICAKMjAwMy0wNi0wOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLk1hdHN1c2hpdGEudHh0IChWNS0wLXBhdGNoZXMuMSksIFJFQURNRS5NYXRzdXNoaXRhLnR4dAo6CgogICBQYXRjaCAjNzQ4MzA1IGZyb20gc3Jpbml2YXNhIHJhbyBndXJ1c3UgZGVzY3JpYmluZyBob3cgdG8gYnVpbGQgbmV0LXNubXAgb24gTWF0c3VzaGl0YSBlbWJlZGRlZCBzeXN0ZW1zCiAgIAoyMDAzLTA2LTA5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNS0wLXBhdGNoZXMuMyksIGlwQWRkci5jOgoKICAgUGF0Y2ggNzQ2MzM5OiBPdHRvIFNvbGFyZXMgZml4ZXMgYSBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBsaW51eAogICAKMjAwMy0wNi0wOSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc0OTA2MiB0byBmaXggY2FjaGluZyBjcmFzaGluZyBhbmQgY2xhc2hpbmcgdW5kZXIgU29sYXJpcwogICAKMjAwMy0wNi0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jIChWNS0wLXBhdGNoZXMuMiksIHByb3h5LmMKOgoKICAgcGF0Y2ggIzc0OTEwMyBmcm9tIEdhcnJ5IEMgTWFyc2hhbGwgdG8gZml4IHRoZSBwcm94eSB3aGVuIGEgdGltZW91dCBvY2N1cnMgZnJvbSB0aGUgdGFyZ2V0CiAgIAoyMDAzLTA2LTA5IDA0OjAxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5oLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQKOgoKICAgTUlCIG9iamVjdHMgdG8gbWFuYWdlIGNvbmZpZ3VyYXRpb24gb2YgTUlCIGRhdGEgY2FjaGluZy4KICAgCjIwMDMtMDYtMDkgMDM6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oLCBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQKLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIFJld29yayBuc0RlYnVnVG9rZW5UYWJsZSB0byBiZSBpbmRleGVkIGJ5IHRoZSBkZWJ1ZyB0b2tlbiBzdHJpbmcgdmFsdWVzLgogICAKMjAwMy0wNi0wNiAwODo0NSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBJbXBsZW1lbnQgdmFyaW91cyBzZXBhcmF0ZSBsaXN0cyBvZiAiZ2xvYmFsIiBoYW5kbGVycywgdG8gc3VwcG9ydAogICBwcmUtIGFuZCBwb3N0LXNwZWNpZmljIGdsb2JhbCBwcm9jZXNzaW5nLCBhcyB3ZWxsIGFzICJhdXRoZW50aWNhdGlvbiIKICAgaGFuZGxlcnMsIHdoaWNoIGFyZSBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBmaXJzdC4KICAgQWxzbyBzdXBwb3J0IGZvciB0ZXJtaW5hdGluZyB0cmFwIHByb2Nlc3NpbmcgZWFybHkuCiAgIAogICBEb24ndCBsZXQgbWUgaGVhciB5b3Ugc2F5IHRoYXQgSSBuZXZlciBsaXN0ZW4gdG8geW91LCBXZXMhCiAgIAoyMDAzLTA2LTA2IDA2OjQyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBtaXNzaW5nIGxlbmd0aCBieXRlIHdoZW4gc2V0dGluZyBpbmRleCB3aXRoIGNoZWNrcyBkaXNhYmxlZAogICAKMjAwMy0wNi0wNiAwMTozMiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCjoKCiAgIENsYXJpZnkgd2hpY2ggInJbb3dde3VzZXIsY29tbXVuaXR5fSIgcGFyYW1ldGVycyBhcmUgb3B0aW9uYWwsIGFuZCAgaW4gd2hpY2ggY29tYmluYXRpb25zLgogICAKMjAwMy0wNi0wNCAwNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgRmlyc3QgcGFzcyBhdCBhIGRhdGEtY2FjaGluZyBoZWxwZXIgLSBpbmRlcGVuZGVudCBvZiBpbmRpdmlkdWFsIE1JQiBtb2R1bGVzLgogICAoaS5lLiBpdCdzIHVwIHRvIGVhY2ggTUlCIG1vZHVsZSB0byBwcm92aWRlICJsb2FkIGRhdGEiIGFuZCAiZnJlZSBkYXRhIgogICAgcm91dGluZXMsIGJ1dCB0aGUgaGFuZGxpbmcgb2Ygd2hlbiB0byBsb2FkIHRoZXNlIGNhY2hlcyBpcyBkb25lIGhlcmUpLgogICAKICAgVGhlIGludGVudGlvbiBpcyB0aGF0IHRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIFNOTVAtbWFuYWdlYWJsZSAoaW5jbHVkaW5nCiAgIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRpdHkgdGltZW91dHMsIGludmFsaWRhdGlvbiBvZiBjYWNoZWQgdmFsdWVzLCBldGMpLgogICBCdXQgZm9yIG5vdywgdGhpcyBpcyBqdXN0IHRoZSBiYXNpYyBoYW5kbGVyLgogICAKMjAwMy0wNi0wNCAwNTo1MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXJfZ3JvdXAuaDoKCiAgIFNpbmdsZSBoZWxwZXIgdG8gaW1wbGVtZW50IGEgZ3JvdXAgb2Ygc2NhbGFyIG9iamVjdHMgaW4gb25lIGdvLgogICAoQ2xvc2VyIHRvIHRoZSBtb2RlbCBvZiB0aGUgZWFybGllciB2NCBBUEkpCiAgIAoyMDAzLTA2LTAzIDE3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtZW50aW9uIHdoZXJlICJsYXRlciIgYWN0dWFsbHkgaXMuCiAgIAoyMDAzLTA2LTAyIDA1OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaDoKCiAgIERlY2xhcmF0aW9ucyBmb3IgaW1wcm92ZWQgU29sYXJpcyBDUFUgc3VwcG9ydCBmcm9tIHBhdGNoICM3Mzg0NjUpCiAgIChPb3BzISkKICAgCjIwMDMtMDYtMDIgMDU6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgZm9yd2FyZGluZyB0cmFwcyB0byBhbm90aGVyIGRlc3RpbmF0aW9uLgogICAoSSd2ZSBnb3QgYSBudW1iZXIgb2YgaWRlYXMgb2YgaG93IHRoaXMgY291bGQgYmUgZG9uZSBtb3JlIGZsZXhpYmx5LAogICAgYnV0IHRoaXMgc2VydmVzIGFzIGEgYmFzaWMgcHJvb2Ytb2YtY29uY2VwdCwgZm9yIGZlZWRiYWNrICYgY29tbWVudCkKICAgCjIwMDMtMDYtMDIgMDU6MzMgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgTW9kdWxhcmlzZWQgYXBwcm9hY2ggdG8gZGlmZmVyZW50IHN0eWxlcyBvZiBoYW5kbGluZyBpbmNvbWluZyB0cmFwcy4KICAgVGhpcyBzZWVtcyB0byByZXRhaW4gdGhlIHNhbWUgYmVoYXZpb3VyIGFuZCBvdXRwdXQgZm9ybWF0cyBhcyB0aGUKICAgZWFybGllciBjb2RlLCBidXQgc2hvdWxkIGJlIG11Y2ggbW9yZSBmbGV4aWJsZSB0byBleHRlbmQgYW5kIGFkYXB0LgogICAKMjAwMy0wNS0zMCAxNzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgbWFrZSB1c2Ugb2YgbmV3IGV4cG9ydGVkIGl0ZW1zIGZyb20gc25tcF9kZWJ1Zy4KICAgCjIwMDMtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICBtaWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIG1vcmUgY2xlYW51cHMKICAgCjIwMDMtMDUtMzAgMTY6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZiwKICAgbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsIG1pYjJjLmNoZWNrX3ZhbHVlc19sb2NhbC5jb25mLAogICBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBVcGRhdGUgdG8gbWliMmMgY29kZSBmb3IgcHJvZHVjaW5nIHdoYXQgSSB0aGluayBzaG91bGQgYmUgYW4gZWFzaWVyIHRvCiAgIHVzZSBBUEkgc2V0ICh0aGF0IGlzIG5vdCBhbGwgd3JhcHBlZCBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uKS4KICAgCjIwMDMtMDUtMzAgMTY6NTEgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGZpeCBtaWIgdHlwbwogICAKMjAwMy0wNS0zMCAxNjo1MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIGRlZmluZSBhIG5vb3AgZnJlZSBmdW5jdGlvbi4KICAgCjIwMDMtMDUtMzAgMTY6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCjoKCiAgIGV4cG9ydCBpbmZvcm1hdGlvbiBuZWVkZWQgYnkgdGhlIG5ldyBkZWJ1ZyBtb2R1bGVzLgogICAKMjAwMy0wNS0zMCAxNDo0OCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkZWQgYSBjb21waWxpbmcgc2VjdGlvbiB3aXRoIG9uZSBuZXcgcXVlc3Rpb24gYWJvdXQgbGliZWxmLiAgT3RoZXIgcXVlc3Rpb25zIHByb2JhYmx5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgbmV3IHNlY3Rpb24KICAgCjIwMDMtMDUtMzAgMDU6MTQgIGR0czEyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wdmFjbS4xLmRlZjoKCiAgIFByZWxpbWluYXJ5IG1hbiBwYWdlIGZvciBzbm1wdmFjbQogICAKMjAwMy0wNS0zMCAwMzo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgSGFuZGxlIGJsb2NrIHNpemVzIDwxSyB3aGVuIGNvbnZlcnRpbmcgYmxvY2sgY291bnRzIHRvIEtiLgogICBSZXBvcnRlZCBieSBFdWdlbmUgVi4gQ2h1cHJpeWFub3YgKHdheSBiYWNrIGluIE9jdG9iZXIhKS4KICAgRmxhd3Mgd2l0aCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBwYXRjaCBhcmUgbXkgcmVzcG9uc2liaWxpdHkuCiAgIChJJ20gbm90IHRvdGFsbHkgaGFwcHkgYWJvdXQgY2FzdGluZyB0byBmbG9hdCBpbiB0aGlzIHdheSwKICAgIGJ1dCBpdCBzZWVtZWQgdGhlIGJlc3Qgb2YgYSBiYWQgbG90KS4KICAgCjIwMDMtMDUtMzAgMDM6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgU2lnbmlmaWNhbnRseSBpbXByb3ZlZCBzdXBwb3J0IGZvciBTb2xhcmlzIENQVSBpbmZvcm1hdGlvbgogICAoaW5jbHVkaW5nIGRlc2NyaXB0aW9uLCBzdGF0dXMgYW5kIG11bHRpLUNQVSBzdXBwb3J0KS4KICAgVGhhbmtzIHRvIEphbWVzIElyd2luIGZvciBpbXBsZW1lbnRpbmcgaXQgKHNlZSBwYXRjaCAjNzM4NDY1KQogICBObyB0aGFua3MgdG8gRGF2ZSBTaGllbGQgZm9yIHNpdHRpbmcgb24gaXQgZm9yIGEgY291cGxlIG9mIHdlZWtzLgogICBCYWQgRGF2ZSEgQmFkIERhdmUhCiAgIAoyMDAzLTA1LTI4IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogb2xkX2FwaS5jIChWNS0wLXBhdGNoZXMuMSksIG9sZF9hcGkuYzoKCiAgIHJlbW92ZSB1bnVzZWQgY29kZSBhcyBwb2ludGVkIG91dCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA1LTI4IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IGdldGJ1bGsgb3BlcmF0aW9ucyAoaG9wZWZ1bGx5KSwgYXMgcG9pbnRlZCBvdXQgYnkgUm9uIFRhYm9yLgogICAKMjAwMy0wNS0yOCAwNjoxMiAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIENsZWFyIHRoZSBvdXRwdXQgYnVmZmVyIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzZWNvbmQgKG9yIHN1YnNlcXVlbnQpCiAgIHZhcmJpbmQgaW4gYSBtdWx0aS12YWx1ZSB0YWJsZSBmb3JtYXQuICBCdWcgc3BvdHRlZCBieSBTdGVmYW5vIEJvZHJhdG8uCiAgIAoyMDAzLTA1LTI4IDA1OjE0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgSGVscGVyIHRvIGdyb3VwIHJlbGF0ZWQgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIHJvdyB0b2dldGhlci4gIFN1Yi1oYW5kbGVycwogICBjYW4gdGhlcmVmb3JlIHdvcmsgd2l0aCBtdWx0aXBsZSB2YXJiaW5kcywgYWxsIHJlbGF0aW5nIHRvIHRoZSBzYW1lIHJvdy4KICAgCiAgIFRoaXMgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHRoZSBpdGVyYXRvciBoZWxwZXIsIGJ1dAogICB0aGF0IGhlbHBlciBpcyBhcHBhcmVudGx5IGJlaW5nIHJld29ya2VkIGF0IHRoZSBtb21lbnQuICBCdXQgdGhpcyBzZWVtcwogICBhIHBvdGVudGlhbGx5IHVzZWZ1bCBmZWF0dXJlIGFueXdheSwgc28gSSdtIGNvbW1pdHRpbmcgaXQgcmVnYXJkbGVzcyEKICAgCjIwMDMtMDUtMjggMDQ6MTkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgc3RyYXkgXk0gbGluZSBlbmRpbmdzCiAgIAoyMDAzLTA1LTI4IDAyOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogZGxtb2QuYywgZGxtb2QuaDoKCiAgIFJlbW92ZSByZWR1bmRlbnQgdmVyc2lvbiBvZiAnZGxtb2QnLiAgIFRoaXMgd2FzIG1vdmVkIHRvICd1Y2Qtc25tcCcKICAgaW4gMjAwMCwgYW5kIHRoaXMgJ21pc2MnIHZlcnNpb24gaGFzIGJlZW4gZWZmZWN0aXZlbHkgdW50b3VjaGVkIHNpbmNlLgogICBMZWF2aW5nIGl0IGFyb3VuZCBpcyBqdXN0IGFza2luZyBmb3IgcGVvcGxlIHRvIGdldCBjb25mdXNlZC4KICAgCjIwMDMtMDUtMjcgMDg6NTYgIGR0czEyCgogICAqIEFHRU5ULnR4dDoKCiAgIE1lbnRpb24gdGhhdCB0aGlzIGRlc2NyaWJlcyB0aGUgdjQgQVBJLCByYXRoZXIgdGhhbiB0aGUgdjUgaGVscGVyIG1lY2hhbmlzbS4KICAgCjIwMDMtMDUtMjEgMTA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBycG0gZml4ZXMKICAgCjIwMDMtMDUtMjEgMTA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGluc3RhbGwgdGhlIHNwZWMgZmlsZQogICAKMjAwMy0wNS0yMSAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBGaXggZm9yIHByb3BlciBub24tc2VyaWFsaXplZCBpdGVyYXRvciB1c2FnZS4KICAgCjIwMDMtMDUtMjEgMDY6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5oLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBOZXcgTUlCIGdyb3VwIHRvIG1vbml0b3IgYW5kIGNvbnRyb2wgZGVidWdnaW5nIG91dHB1dCBmcm9tIHRoZSBhZ2VudC4KICAgTm90ZSB0aGF0IHRoaXMgaXMgYSBwcm92aXNpb25hbCBpbXBsZW1lbnRhdGlvbiwgYW5kIHRoZSBNSUIgZGVmaW5pdGlvbnMKICAgYXJlIGN1cnJlbnRseSBzdWJqZWN0IHRvIGNoYW5nZSAoYXQgbGVhc3QgdW50aWwgd2UgbWFrZSBhIGZ1bGwgcmVsZWFzZQogICBpbmNsdWRpbmcgdGhpcyBncm91cCkKICAgCjIwMDMtMDUtMjEgMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNyksIHBhc3MuYzoKCiAgIEZpeCBwYXNzaW5nIG9mICJzZXQiIHBhcmFtZXRlcnMgdG8gYSBwYXNzLXRocm91Z2ggc2NyaXB0CiAgIChCdWcgIzY4OTkzNiwgZml4ZWQgYnkgRXJpYyBCb3dsZXMpCiAgIAoyMDAzLTA1LTIwIDA3OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIE1hbnUgU2hhcm1hJ3MgZHluYW1pY2FsbHktY29uZmlndXJhYmxlIGRlYnVnIHRva2VuIGhhbmRsaW5nLgogICAKMjAwMy0wNS0yMCAwNToxNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIEltcGxlbWVudCBhICJ3YXRjaGVkIHNwaW5sb2NrIiBoZWxwZXIuCiAgIAoyMDAzLTA1LTIwIDA0OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBGaXggbG9hZCBhdmVyYWdlIHN1cHBvcnQgZm9yIEFJWDUgKEJ1ZyAjNTYzOTc4IHJlcG9ydGVkIGJ5IEplZmYgQ3VubmluZ2hhbSkKICAgCjIwMDMtMDUtMjAgMDM6MjkgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEluY29ycG9yYXRlIE5pa29sYWkgRGV2ZXJlYXV4J3Mgb3ZlcnZpZXcgb2YgdGhlIFZpc3VhbCBDKysgb3JnYW5pc2F0aW9uLAogICBwbHVzIHNvbWUgbWlub3IgcmVhcnJhbmdlbWVudCBvZiBzZWN0aW9ucywgYW5kIHRvbmUgZG93biBhIHNvbWV3aGF0CiAgIG92ZXJseSBlbnRodXNpYXN0aWMgY29tbWVudC4KICAgCjIwMDMtMDUtMTUgMjI6NDIgIGhhcmRha2VyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgb3NmNSBwYXRjaCB0aGF0IG5ldmVyIGdvdCBhZGRlZC4KICAgCjIwMDMtMDUtMTUgMjI6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBNaW5vciBmaXguCiAgIAoyMDAzLTA1LTE0IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBvb3BzaWUgZG9vc2llIGZsb29zaWUgd29vemllCiAgIAoyMDAzLTA1LTE0IDE4OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBvcHBzCiAgIAoyMDAzLTA1LTE0IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc29tZSBvdGhlciAuY29uZiBmaWxlcwogICAKMjAwMy0wNS0xNCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICByZW1vdmUgdW5uZWVkZWQgdmFyCiAgIAoyMDAzLTA1LTE0IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG1pc2MgbWlub3IgY2hhbmdlcwogICAKMjAwMy0wNS0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY2FjaGluZyBzdXBwb3J0IGZyb20gYSBwYXRjaCAjNzI2NDE4IGZyb20gTGFycnkgU2ltbW9ucy4KICAgCjIwMDMtMDUtMTQgMTU6MDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdGFibGUuMS5kZWY6CgogICAybmQgUGF0Y2ggNzAyNzExIGJ5IFJvbiBUYWJvciBkb2N1bWVudGluZyBuZXcgc25tcHRhYmxlIG9wdGlvbnMKICAgCjIwMDMtMDUtMTQgMTU6MDcgIGhhcmRha2VyCgogICAqIE5FV1MsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBQYXRjaCAjNzEzMDcyIGZyb20gWGlhb2ZlbmcgTGluZyBmb3IgY29tMnNlYyBtYXBwaW5ncyBvbiB1bml4IHNvY2tldHMKICAgd2l0aCBwZXItc29ja2V0IG1hcHBpbmdzLgogICAKMjAwMy0wNS0xNCAxNDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jOgoKICAgUGF0Y2ggIzczNTQ4MCBmcm9tIEJydWNlIFNoYXc6IGFzc3VtZSBubyBjby1wcm9jZXNzb3IgZm9yIFN1bnMsIGFzIGlzIHRoZSBtb3JlIGNvbW1vbiBjYXNlCiAgIAoyMDAzLTA1LTE0IDA4OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBVc2UgL2V0Yy9wcmludGNhcCB0byBkZXRlY3QgcHJpbnRlcnMgaW4gcHJlZmVyZW5jZSB0byBydW5uaW5nIGxwc3RhdAogICAob3IgdGhlIGNnZXRuZXh0KCkgQVBJKS4gICBUaGlzIHNlZW1zIG1vcmUgaW4ga2VlcGluZyBvZiBvdXIgZ2VuZXJhbAogICBwcmluY2lwbGUgb2YgdHJ5aW5nIHRvIGF2b2lkIGludm9raW5nIHN1Yi1wcm9jZXNzZXMgd2hlcmV2ZXIgcG9zc2libGUuCiAgIAoyMDAzLTA1LTEyIDIzOjExICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgUm9uIFRhYm9yCiAgIAoyMDAzLTA1LTEyIDIzOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgZG9jdW1lbnQgbmV3IHNubXB0YWJsZSBvcHRpb25zCiAgIAoyMDAzLTA1LTEyIDIzOjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgcGF0Y2ggIzcwMjcxMSBmcm9tIFJvbiBUYWJvcjogQWRkIG5ldyBjb21tYW5kIGxpbmUgZmxhZ3MgdG8gc25tcHRhYmxlIGZvciB2YXJpb3VzIG5ldyBmZWF0dXJlcwogICAKMjAwMy0wNS0xMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jIChWNS0wLXBhdGNoZXMuNSksIHNubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzczNTUxMSBmcm9tIEFsZXggQnVyZ2VyOiBmaXggc25tcHRyYXBkIHRvIGVuc3VyZSB0aGVyZSBhcmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHZhcmJpbmRzCiAgIAoyMDAzLTA1LTEyIDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMgKFY1LTAtcGF0Y2hlcy4xKSwgcHJveHkuYwo6CgogICBQYXRjaCAjNzM2Nzg0IGZyb20gUm9uIFRhYm9yOiBmaXggcHJveGllcyBmb3IgcmVzdGFydGVkIE5TTVB2MyBzdWItYWdlbnRzCiAgIAoyMDAzLTA1LTA5IDA4OjQ3ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCB2YXJpb3VzIG1pc3NpbmcgZnVuY3Rpb24gbmFtZXMsIHN1cHBsaWVkIGJ5IEFsZXggQnVyZ2VyCiAgIAoyMDAzLTA1LTA5IDA4OjQxICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzIub3B0LCB3aW4zMnNkay5kc3csCiAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgQXBwbHkgTmlrb2xhaSBEZXZlcmVhdXgncyBWQysrIGNsZWFudXAgcGF0Y2ggKCM2OTQ3NjYpCiAgIEl0IGFwcGVhcnMgdG8gd29yayBPSyAtIEkganVzdCBob3BlIHRoZSBsaW5lIHRlcm1pbmF0aW9ucwogICBkb24ndCBzY3JldyB0aGluZ3MgdXAhCiAgIAoyMDAzLTA1LTA4IDE2OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFBhdGNoICM3MzM4ODAgZnJvbSBBbGV4IEJ1cmdlciB0byBmaXggdXNlTnVtZXJpYwogICAKMjAwMy0wNS0wOCAxNjoyMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFBhdGNoICM3MzQ3NzQgZnJvbSBBbmRyZXcgRmluZGxheTogZml4IHRoZSB0ZXN0IGVudmlyb25tZW50IGZvciBzbm1wZCB0byBnaXZlIGl0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG5hbWVzIGZvciBjb25maWd1cmF0aW9uIGZpbGVzIHNpbmNlIHNubXBkIG5vdyBjaGRpcidzIHRvIC8KICAgCjIwMDMtMDUtMDggMTY6MTUgIGhhcmRha2VyCgogICAqIFJFQURNRSAoVjUtMC1wYXRjaGVzLjYpLCBSRUFETUU6CgogICBtZW50aW9uIEFuZHJldyBGaW5kbGF5CiAgIAoyMDAzLTA1LTA4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQueHMgKFY1LTAtcGF0Y2hlcy4xKSwgYWdlbnQueHM6CgogICAoZXhjZWxsZW50KSBwYXRjaCAjNzA1NTY2IGZyb20gQW5kcmV3IEZpbmRsYXkgb24gcGVybCBhZ2VudCBzdXBwb3J0OgogICAKICAgMSkgQWdlbnQgY2Fubm90IHJldHVybiBNQUMgYWRkcmVzc2VzIGNvbnRhaW5pbmcgemVybyBvY3RldC4KICAgCiAgIDIpIEFnZW50IGNvcmVkdW1wcyB3aGVuIHRyeWluZyB0byByZXR1cm4gSVAgYWRkcmVzc2VzCiAgIGlmIHRoZXNlIGFyZSBzdXBwbGllZCBhcyBkb3R0ZWQtcXVhZCBvciBhcyBhIGhvc3RuYW1lCiAgIHRoYXQgZmFpbHMgdG8gcmVzb2x2ZS4KICAgCiAgIDMpIEFnZW50IGNvcnJ1cHRzIE9JRCB2YWx1ZXMuCiAgIAogICA0KSBBZ2VudCB0cnVuY2F0ZXMgYW55IE9DVEVUX1NUUklORyBvciBCSVRfU1RSSU5HIHRoYXQKICAgY29udGFpbnMgYSB6ZXJvIG9jdGV0ICh0aGlzIGlzIHRoZSByb290IGNhdXNlIG9mICgxKSBhYm92ZSkKICAgCiAgIEFQSSBjaGFuZ2VzIGludHJvZHVjZWQ6CiAgIAogICBhKSBJUCBhZGRyZXNzZXMgbm93IHBhc3NlZCBhcyBiaW5hcnkgc3RyaW5ncyAoNCBvY3RldHMKICAgZm9yIElQdjQpIHJhdGhlciB0aGFuIGRvdHRlZC1xdWFkIG9yIG5hbWUuIFRoaXMKICAgc2lkZXN0ZXBzIHRoZSBJUHY0L0lQdjYgcHJvYmxlbSBhbmQgbGVhdmVzIHRoZSBjYWxsaW5nCiAgIHNjcmlwdCB0byBkZWFsIHdpdGggbmFtZS0+YWRkcmVzcyByZXNvbHV0aW9uIGFuZAogICBhc3NvY2lhdGVkIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMy0wNS0wOCAwOTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAoVjUtMC1wYXRjaGVzLlsxLDEsMSwxLDMsNCwxXSksIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaAosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgcGF0Y2ggIzcxMDI3NSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBjb25zdCBmaXhlcyBmb3IgQVBJcyB0aGF0IGRvbid0IG1vZGlmeSB0aGVpciBhcmd1bWVudHMKICAgCjIwMDMtMDUtMDggMDk6MjggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHN5c3RlbS5oIChWNS0wLXBhdGNoZXMuMSksIHN5c3RlbS5oCjoKCiAgIG1pc3NlZCBhIGNvbW1pdCBmb3IgYSBwZXJsIHBhdGNoCiAgIAoyMDAzLTA1LTA4IDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwQWRkci5jIChWNS0wLXBhdGNoZXMuMiksIGlwQWRkci5jOgoKICAgQXBwbGllZCBwYXRjaCAjNzEyMTAxOiBtaW5vciBpcml4IGZpeAogICAKMjAwMy0wNS0wOCAwOToxMiAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvUkVBRE1FCiwgU05NUC9TTk1QLnhzLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBwYXRjaCAjNzE1NjAzOiBmaXggcGVybCBtb2R1bGUgYnVpbGRzIHVuZGVyIHdpbmRvd3MKICAgCjIwMDMtMDUtMDggMDg6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYXBwbHkgcGF0Y2ggWyA3MjQ5MjcgXSB0byBmaXggbG9nIG1zZzsgYWRkIFxuIHRvIGxvZyBtc2dzCiAgIAoyMDAzLTA1LTA4IDA4OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBjaGcgTkVUX1NOTVBfVVNFX0FTU0VSVCBkZWZpbmUgdG8gTkVUU05NUF9VU0VfQVNTRVJUIHRvIGJlIGNvbnNpc3RlbnQKICAgCjIwMDMtMDUtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbW92ZSBpbiBhZ2VudHggZG9jdW1lbnRhdGlvbiBzb21lb25lIG9ubHkgYWRkZWQgdG8gdGhlIHBhdGNoZXMgYnJhbmNoIChiYWQgc29tZW9uZSkKICAgCjIwMDMtMDUtMDUgMTU6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgKFY1LTAtcGF0Y2hlcy40KSwgc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMy0wNC0yOSAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBSZWFsbHkgZml4IHNvbGFyaXMgYnkgcmVtb3Zpbmcgc3VwcG9ydCBmb3IgdGhlIGNpZHIgdGFibGUgZnVuY3Rpb24uCiAgIAoyMDAzLTA0LTI5IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaDoKCiAgIGF0dGVtcHQgdG8gZml4IHNvbGFyaXMgYnkgcmVtb3Zpbmcgc3VwcG9ydCBmb3IgdGhlIGNpZHIgdGFibGUgZnVuY3Rpb24uCiAgIAoyMDAzLTA0LTI5IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIExpbnV4IE11bHRpLUNQVSBkZXRlY3Rpb24gKGhvcGVmdWxseSEpLgogICBEb25lIGF0IGluaXRpYWxpc2F0aW9uLCBzbyB3b24ndCBkZXRlY3QgY2hhbmdlcyBkdXJpbmcgcnVuIHRpbWUuCiAgIChwcm9iYWJseSBmYWlybHkgdW5saWtlbHkhKS4KICAgQWxzbyBjaGFuZ2VzIGRldmljZSBpbmRleCB2YWx1ZSBmb3Igc2luZ2xlIENQVSBkZXZpY2Ugb24gb3RoZXIgYXJjaHMuCiAgIAoyMDAzLTA0LTI5IDAxOjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEZpcnN0IGRyYWZ0IG9mIExpbnV4IENQVSBkZXRlY3Rpb24gKHN0aWxsIG9ubHkgc3VwcG9ydHMgb25lIENQVSkuCiAgIAoyMDAzLTA0LTI5IDAxOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfcHJvYy5jLCBocl9vdGhlci5jOgoKICAgQ29uc29saWRhdGUgYWxsIGhyUHJvY2Vzc29yVGFibGUgaW1wbGVtZW50YXRpb24gaW50byBvbmUgcGxhY2UuCiAgIChCYXNpY2FsbHkganVzdCBtb3ZpbmcgY29kZSBmcm9tIGhyX290aGVyLmMgdG8gaHJfcHJvYy5jKQogICAKMjAwMy0wNC0yOCAyMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gZG94eWdlbiBkb2N1bWVudGF0aW9uIGZvciBldmVyeXRoaW5nIChnYXNwKQogICAtIFN1cHBvcnQgZm9yIHNhdmluZy9yZXN0b3Jpbmcgb2YgZW50aXJlIGRhdGFfbGlzdHMuCiAgIAoyMDAzLTA0LTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgbWFrZSBkb2NzLgogICAKMjAwMy0wNC0yOCAyMzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oOgoKICAgYWRkZWQgcHJvdG90eXBlcyBmb3Igc2F2ZS9yZXN0b3JlIG9mIGRhdGEgbGlzdHMuCiAgIAoyMDAzLTA0LTI4IDIzOjM2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgcHV0IGRhdGFfbGlzdC5oIGJlbG93IGNhbGxiYWNrLmgKICAgCjIwMDMtMDQtMjggMjM6MzUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBzbm1wdHJhcGQgLXQgYW5kIGRpc2tpbyBvbiBsaW51eAogICAKMjAwMy0wNC0yNSAxMToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgb3BwcwogICAKMjAwMy0wNC0yNSAwODowMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBGaXggdHlwbyBpbiAnV3JpdGVPbmx5JyAoc2VlIGJ1ZyAjNzExMzI0KQogICAKMjAwMy0wNC0yNSAwNzoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgcGVvcGxlCiAgIAoyMDAzLTA0LTI1IDA3OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvY3VtZW50IGRpc2tpbyBzdXBwb3J0IGZvciBsaW51eAogICAKMjAwMy0wNC0yNSAwNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjNzEyMjU5IGZyb20gSmFtZXMgS25pdHRlcjogZGlza2lvIHN1cHBvcnQgZm9yIGxpbnV4CiAgIAoyMDAzLTA0LTI1IDA3OjAyICBoYXJkYWtlcgoKICAgKiBtYW4vcmVhZF9jb25maWcuMy5kZWY6CgogICBwYXRjaCAjNzEwNjg3OiBmaXggZm9ybWF0dGluZyBidWcKICAgCjIwMDMtMDQtMjUgMDY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1Lmg6CgogICBwYXRjaCAjNzAyMzUxIGZyb20gSmFtZXMgSXJ3aW46IGEgbmV3IGdldEtzdGF0U3RyaW5nKCkgZnVuY3Rpb24uCiAgIAoyMDAzLTA0LTI1IDA2OjAwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gdGhlIC1lIEVOR0lORUlEIGZsYWcgZm9yIGNyZWF0ZVVzZXIuCiAgICAgLSBwb2ludGVkIG91dCBieSBEYW5hIENvb2sKICAgCjIwMDMtMDQtMjQgMDg6MTkgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdXNtLmMsIHNubXB2YWNtLmM6CgogICBGaXggYSB0eXBvIGluIG91dHB1dCBtZXNzYWdlcy4gIChTZWUgQnVnICM3MjY5NDMpCiAgIAoyMDAzLTA0LTI0IDA2OjAwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgUmVwb3J0IGJhY2sgZmFpbHVyZXMgaW4gbmV0c25tcF9jYWxsYmFja19jbG9zZSBjb3JyZWN0bHkuCiAgIFBhdGNoICM3MjQ5MjggYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNC0yMyAwNzozOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFBhdGNoICM3MjUxNDEgYnkgUGV0ZXIgV2FyYXNpbjogRml4IHNlZ21lbnRhdGlvbiBmYXVsdCBvbiBzbm1wdGFibGUKICAgCjIwMDMtMDQtMjMgMDY6NTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBjb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXB1c20uYzoKCiAgIFBhdGNoICM3MjQ5MTMgYnkgUGV0ZXIgV2FyYXNpbiAtIHJlbW92ZXMgMiBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMy0wNC0yMyAwNjo0NiAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBTdWJzdGl0dXRlIHN5c2NvbmZkaXIgY29ycmVjdGx5IHdoZW4gYnVpbGRpbmcgc2Vkc2NyaXB0LgogICBQYXRjaCAjNzEwNjg5IGJ5IFBldGVyIEJyZWl0ZW5sb2huZXIKICAgCjIwMDMtMDQtMjMgMDY6MzEgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBtYW4vTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGhlYWRlciBmaWxlcyBhbmQgbWFuIHBhZ2VzIHdpdGggYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMuCiAgIEZyb20gcGF0Y2ggIzcxMDY4NSBieSBQZXRlciBCcmVpdGVubG9obmVyCiAgIAoyMDAzLTA0LTIzIDA2OjIyICBkdHMxMgoKICAgKiBGQVE6CgogICBGaXggcmVmZXJlbmNlcyB0byBpbmNvcnJlY3QgQVBJIGNhbGxzCiAgIAoyMDAzLTA0LTIzIDAzOjA2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEFkZCBhbiBleHBsaWNpdCBleGFtcGxlIGZvciBjb20yc2VjIGFkZHJlc3MgbWFza2luZywgYXMgc3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDMtMDQtMjIgMDY6NDggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGRlYnVnIGluZGVudGF0aW9uIGxldmVsIHdoZW4gZHVtcGluZyBhbiBTTk1QdjEvdjJjCiAgIHJlcXVlc3QgUERVLiAgIFJlcG9ydGVkIGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDQtMTcgMDc6MjMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb3BhZ2F0ZSBlcnJvciBzdGF0dXMgdmFsdWVzIGJhY2sgdXAgdG8gdGhlIG1haW4gYWdlbnQgcHJvY2Vzc2luZwogICAoc28gdGhhdCBlLmcuIGZhaWxlZCBTTk1QdjIgc2V0IHJlcXVlc3RzIHVzaW5nIGEgcmVhZC1vbmx5IGNvbW11bml0eQogICAgcmVwb3J0IGEgZmFpbHVyZSwgcmF0aGVyIHRoYW4gYXBwZWFyaW5nIHRvIHN1Y2NlZWQhKQogICAKMjAwMy0wNC0xNiAwNjozNyAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgRGVmaW5lIGEgInByaXZhdGUgZXhwZXJpbWVudGF0aW9uIiBhcmVhIG9mIHRoZSBPSUQgdHJlZSwKICAgZm9yIHRob3NlIHdobyB3aXNoIHRvIGhhdmUgYSBwbGF5IHdpdGggdGhpbmdzLCBhbmQgZG9uJ3QKICAgeWV0IGhhdmUgYW4gZW50ZXJwcmlzZSBPSUQgb2YgdGhlaXIgb3duLgogICAKICAgU2VlIHRoZSBuZXQtc25tcC11c2VycyB0aHJlYWQgJ09JRCByZWdpc3RyYXRpb24nLCBmcm9tIE1hcmNoL0FwcmlsIDIwMDMuCiAgIAoyMDAzLTA0LTE2IDA2OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFR3YWVrIHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgdG8gYmUgYmFyZSB0aGUgc3VmZml4IGZvcm0KICAgKGFzIGV4cGVjdGVkIGJ5IFNOTVA6Ok9JRCB0ZXN0IGhhcm5lc3MpLgogICBXZSBzaG91bGQgcHJvYmFibHkgZGVmYXVsdCB0byBNSUI6OnZhcmlhYmxlIGZvcm0sIHRvIG1hdGNoCiAgIHRoZSBDIGxpYnJhcnksIGFuZCBwcm92aWRlIGEgZmxhZyBmb3IgdGhlIGJhcmUgc3VmZml4LgogICAKMjAwMy0wNC0xNiAwMjo0NiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggaGFuZGxpbmcgb2YgJ1VzZU51bWVyaWMnIGFuZCAnVXNlTG9uZ05hbWVzJyBmb3IgZ2V0L2dldG5leHQvZ2V0YnVsayBtZXRob2RzLgogICAKICAgRml4aW5nICdnZXRuZXh0Jy8nZ2V0YnVsaycgbW9zdGx5IGludm9sdmVkIHVwZGF0aW5nIHRoZSBjb25zb2xpZGF0ZWQKICAgTkVUU05NUF9EU19MSUJfT0lEX09VVFBVVF9GT1JNQVQnIHNldHRpbmcsIHJhdGhlciB0aGFuIHRoZSBpbmRpdmlkdWFsIGJvb2xlYW5zLgogICBGaXhpbmcgJ2dldCcgcmVxdWlyZWQgbW9yZSBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIHRoZSBvdXRwdXQgY29kZSwgc28gSSBzaW1wbHkKICAgY29waWVkIHRoZSAnZ2V0bmV4dCcgcm91dGluZSBlbi1tYXNzZSwgYW5kIHR3ZWFrZWQgaXQgYXBwcm9wcmlhdGVseS4KICAgVGhlcmUgaXMgYSBsYXJnZSBhbW91bnQgb2Ygb3ZlcmxhcCBiZXR3ZWVuIHRoZXNlIHRocmVlIHJvdXRpbmVzLCBhbmQgaXQgbWlnaHQKICAgYmUgd29ydGggbG9va2luZyBhdCBjb25zb2xpZGF0aW5nIHRoZSBjb21tb24gY29kZSBpbiBzb21lIHdheS4KICAgCjIwMDMtMDQtMTYgMDI6NDIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54cwo6CgogICBBcHBseSBBbGV4IEJ1cmdlcidzIHBlcmwgJ3RyYW5zbGF0ZU9iaicgaGFuZGxpbmcgcGF0Y2ggKCM3MjIwNzUpCiAgIAoyMDAzLTA0LTE1IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIEtpcmlsbCBTZW1lbmtvdiBmb3Igb25lIG1vcmUgZml4IHRvIGxpbnV4IGludGVyZmFjZSBzcGVlZAogICBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wNC0xMCAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suYywgaHJfZGlzay5oLAogICBocl9wYXJ0aXRpb24uYzoKCiAgIEZpeCBoYW5kbGluZyBvZiBoclBhcnRpdGlvblRhYmxlLCBicm9rZW4gZHVyaW5nCiAgIFRoZSBHcmVhdCBTVVNFICdwcmludGYnIEh1bnQuCiAgIFRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgZm9yIHRoaXMgcGF0Y2guCiAgIAoyMDAzLTA0LTA5IDAxOjUyICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBJbXBvcnQgU25tcEFkbWluU3RyaW5nLCBhcyBzdWdnZXN0ZWQgYnkgVmFkaW0gVGFyYXNzb3YuCiAgIAoyMDAzLTA0LTA4IDA3OjU3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIEZpeCB0aGUgZXJyb3IgY29kZSB1c2VkIGZvciB1bmF2YWlsYWJsZSByZXNvdXJjZXMuCiAgIFNwb3R0ZWQgYnkgY2hpY2hpZW4uCiAgIAoyMDAzLTA0LTAyIDA5OjIzICBzcmFkbWFuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGltcHJvdmUgbG1TZW5zb3JzIHN1cHBvcnQKICAgLSBjaGVjayBmb3IgaGVhZGVycwogICAtIGNoZWNrIGZvciBsaWJzCiAgIAoyMDAzLTA0LTAyIDA2OjMxICBzcmFkbWFuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oOgoKICAgYWRkIExNLVNFTlNPUlMtTUlCIHdoZW4gbW9kdWxlIGlzIGluY2x1ZGVkCiAgIAoyMDAzLTAzLTI4IDA2OjQ4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNSAoVjUtMC1wYXRjaGVzLjEpLCBSRUFETUUua3JiNToKCiAgIEtlbiBIb3Juc3RlaW4gbm90ZWQgdGhhdCB0aGUgcnd1c2VyIC1zIGZsYWcgd2FzIG1pc3NpbmcgaXQncyBhcmd1bWVudAogICAKMjAwMy0wMy0yOCAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBrc20uYyAoVjUtMC1wYXRjaGVzLjEpLCBzbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBmb3IgbWlzYyBrcmI1IGZpeGVzIChlbmNyeXB0aW9uIHR5cGVzLCBOZXcgY3J5cHRvIHN1cHBvcnQsLi4uCiAgIAoyMDAzLTAzLTIwIDExOjE4ICBzcmFkbWFuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBidWcgIzY3MjQ2NDogaWZBZG1pblN0YXR1cyBtdXN0IGNoYW5nZSB0byBkb3duCiAgIC0gaWZBZG1pblN0YXR1cyB1cCBpZiBpbnRlcmZhY2UgaXMgVVAKICAgLSBpZk9wZXJTdGF0dXMgdXAgaWYgaW50ZXJmYWNlIGlzIFVQIGFuZCBSVU5OSU5HCiAgIC0gYWRkZWQgc3VwcG9ydCBmb3IgdGhlICJsaW5rX3VwIiBrc3RhdAogICAtIGFkZGVkIENhc3NpbmkgR2lnYWJpdC1FdGhlcm5ldCAoY2UpIHN1cHBvcnQKICAgCjIwMDMtMDMtMTkgMTE6NDUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB0cmFpbGluZyBcIGZyb20gbGFzdCBsaW5lIG9mIHBlcmwgcnVsZXMKICAgCjIwMDMtMDMtMTMgMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNS0wLXBhdGNoZXMuMSksIHNubXBfYWdlbnQuYzoKCiAgIHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4gdG8gZml4IHNvbWUgQWdlbnRYIChtb3N0bHkpIG1lbW9yeSBsZWFrcwogICAKMjAwMy0wMy0xMiAxMDozOSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluIChWNS0wLXBhdGNoZXMuMyksIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHBhdGNoICM2OTkzODA6IEZyb20gQ2hyaXN0b3BoZSBLYWx0OiBtYWtlIG5ldC1zbm1wLWNvbmZpZyBkbyB3aGF0IGl0J3MgZG9jdW1lbnQgdG8gZG8gKGFkZCAtTEBsaWJkaXJAKQogICAKMjAwMy0wMy0xMiAwODo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY1LTAtcGF0Y2hlcy4zKSwgc25tcF9hcGkuYzoKCiAgIHBhdGNoICM3MDA2NzI6IHJlc2V0IGl0bXAgdG8gdGhlIG5ldyB2YWx1ZSBsZW5ndGggYWZ0ZXIgZGVjb2RpbmcgYSBoZXggc3RyaW5nCiAgIAoyMDAzLTAzLTEyIDA4OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJldHVybiBpbmRleGVzIGZvciBhdWdtZW50ZWQgdGFibGVzCiAgIAoyMDAzLTAzLTEyIDA4OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgUkVBRE1FOgoKICAgUGF0Y2ggIzcwMTM5ODogY29tMnNlY3VuaXggdG9rZW4gZnJvbSBYaWFvZmVuZyBMaW5nIGZvciB1bml4IHNvY2tldHMKICAgCjIwMDMtMDMtMTIgMDc6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSRUFETUUsIFJVTlRFU1RTOgoKICAgdXBkYXRlIHRvIHJlYWwgd29ybGQgYW5kIGFkZCBiZXR0ZXIgLWggb3V0cHV0CiAgIAoyMDAzLTAzLTEwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBhdHRlbXB0IHRvIGNvcnJlY3QgZm9yIGR5bmFtaWMgbG9hZGluZyBvZiBhIG9sZGVyIG9wZW5zc2wgbGlicmFyeSwgd2hpY2ggaXMgY29tbW9uIGlmIHlvdSBoYXZlIHRoZSBtb2Rfc3NsIHJwbSBpbnN0YWxsZWQgYW5kIGEgbmV3ZXIgbGliY3J5cHRvIGxpYnJhcnkgYXQgdGhlIHNhbWUgdGltZQogICAKMjAwMy0wMy0xMCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgYXR0ZW1wdCB0byBmaXggdGhlIG9wZW5zc2wgZnJlZSBidWcgZm9yIHRoZSBsYXN0IHRpbWUKICAgCjIwMDMtMDMtMDUgMjI6NDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUgKFY1LTAtcGF0Y2hlcy4yKSwgY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTAzLTA1IDIyOjM2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGZvciBsaWJ3cmFwIHcvbnNsCiAgIAoyMDAzLTAzLTA0IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IG5zTW9kdWxlVGFibGUuYyAoVjUtMC1wYXRjaGVzLjEpLAogICBuc01vZHVsZVRhYmxlLmM6CgogICB3cm9uZyB0eXBlIHJldHVybmVkIGZvciBuc01vZHVsZU1vZGVzIGFzIHJlcG9ydGVkIGJ5IE1pY2hhZWwgS2lya2hhbQogICAKMjAwMy0wMy0wNCAwMTo1NCAgZHRzMTIKCiAgICogSU5TVEFMTDoKCiAgIE1lbnRpb24gdGhlIG5lZWQgdG8gY29uZmlndXJlIHRoZSBhZ2VudC4KICAgCjIwMDMtMDMtMDEgMDc6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBzdWJhZ2VudC5jIChWNS0wLXBhdGNoZXMuMSksIHN1YmFnZW50LmMKOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGJldHRlciBlcnJvciBjaGVja2luZwogICAKMjAwMy0wMy0wMSAwNjo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jIChWNS0wLXBhdGNoZXMuMSksIG1hc3Rlci5jCjoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBkb24ndCBjcmVhdGUgZGVsZWdhdGVkIGNhY2hlIGZvciBDTEVBTlVQU0VUCiAgIAoyMDAzLTAyLTI4IDIwOjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCAoVjUtMC1wYXRjaGVzLjMpLCBNYWtlZmlsZS5QTDoKCiAgIHR5cG8KICAgCjIwMDMtMDItMjggMjA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBQYXRjaCAjNTUxOTA5IGZyb20gR2FyeSBFZHdhcmRzOiBkZXRlY3Qgem9tYmllIHByb2Nlc3NlcyBhbmQgcHJldmVudAogICB0aGVtIGZyb20gYmVpbmcgY291bnRlZCBhcyB2YWxpZCB1c2Vycy4KICAgCjIwMDMtMDItMjggMjA6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMIChWNS0wLXBhdGNoZXMuMiksIE1ha2VmaWxlLlBMOgoKICAgUGF0Y2ggIzU5NzYyOSBmcm9tIE1hdHQgU2Vsc2t5IHRvIGZpeCBtYW4gcGFnZSBpbnN0YWxsYXRpb24KICAgCjIwMDMtMDItMjggMjA6MDIgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC86IERFVkVOViwgZWxmZGVwZW5kLnNoLAogICBuZXQtc25tcC01LjAuNi1idWlsZDoKCiAgIHBhdGNoICM2NTQ1ODEgZnJvbSBTdGVmYW4gUmFkbWFuOiBTb2xhcmlzIFBhY2thZ2luZyBidWlsZCBzY3JpcHRzCiAgIAoyMDAzLTAyLTI4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzY5NTMxMiBmcm9tIEFsZXggQnVyZ2VyOiBhZGQgLXQgc3dpdGNoIHRvIGRpc2FibGUgc3lzbG9nLgogICAKMjAwMy0wMi0yOCAxOTozOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIGRvY3VtZW50IC10CiAgIAoyMDAzLTAyLTI4IDAyOjA4ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBTaW1wbGUgcGF0Y2ggdG8gY2F0Y2ggcmUtZGVjbGFyYXRpb25zIG9mIHRoZSAidG9wLWxldmVsIiBvYmplY3RzLgogICBTdXBwbGllZCBieSBTZWFuIEJ1cmtlCiAgIAoyMDAzLTAyLTI4IDAxOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBSZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWVzIGZvciBpcHY2Rm9yd2FyZGluZy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgWWl4aW9uZyBab3UgKEJ1ZyAjNjk0NzQ1KQogICAKMjAwMy0wMi0yNiAyMTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGRlZmF1bHQgb2N0ZXQgc3RyaW5ncyB0byB1bnNpZ25lZCBjaGFyIGFycmF5czsgZml4IGV4YW1wbGU7IGZpeCBsb2dpYyBvZgogICBjb25kaXRpb25hbDsgbWFrZSBjb2RlIHJlZmVyZW5jaW5nIGNhbl8oZGUpYWN0aXZhdGUgY29uZGl0aW9uYWwgd2l0aCBzYW1lIGxvZ2ljCiAgIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzCiAgIAoyMDAzLTAyLTI2IDEwOjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdmFjbWNvbmZpZywgU3ZhY21jb25maWcsCiAgIFQxMzBzbm1wdjF2YWNtZ2V0LCBUMTMxc25tcHYyY3ZhY21nZXQsCiAgIFQxMzJzbm1wdjN2YWNtZ2V0LCBUMTQwc25tcHYxdmFjbWdldGZhaWwsCiAgIFQxNDFzbm1wdjJjdmFjbWdldGZhaWwsIFQxNDJzbm1wdjN2YWNtZ2V0ZmFpbDoKCiAgIFBhdGNoICM2ODc4MzcgZnJvbSBYaWFvZmVuZyBMaW5nIGZvciBWQUNNIHRlc3QgY2FzZXMKICAgCjIwMDMtMDItMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIFJFQURNRSwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgcGF0Y2ggIzY5MDM1MyBmcm9tIEtldmluIEdyYWhhbTogcG9ydCB0byBUcnU2NCB2NSAvIG9zZjUKICAgCjIwMDMtMDItMjYgMTA6MTAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgcGF0Y2ggIzY5MjgzNCBmcm9tIERhdmlkIFZyYWJlbDogYWRkIC0td2l0aG91dC1ycG0gZm9yIGRpc2FibGluZyBycG0gY2hlY2tzCiAgIAoyMDAzLTAyLTI2IDA4OjI4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBPb3BzIC0gbWlzc2VkIHRoZSBkZWZpbml0aW9uIG9mICdJTlNUQUxMX0RBVEEnIGZyb20gUGV0ZXIncyBvcmlnaW5hbCBwYXRjaC4KICAgU29ycnkhCiAgIAoyMDAzLTAyLTI2IDA3OjExICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBUaGFua3MgdG8gU3Jpa2FudGggUGluZGlwcm9saQogICAKMjAwMy0wMi0yNiAwNzoxMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICB1cGRhdGUgdG8gcGF0Y2ggIzY1NTQ0NDogZG9jdW1lbnQgaW5jbHVkZUFsbERpc2tzIGZyb20gU3Jpa2FudGggUGluZGlwcm9saQogICAKMjAwMy0wMi0yNiAwNDo0NSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU3RvbXAgb24gdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiBjb25maWcgbGluZXMuCiAgIFRoaXMgYWxsb3dzIHRva2VuIGNvbXBhcmlzb25zIHRvIHdvcmsgYXMgZXhwZWN0ZWQuCiAgIChTZWUgYnVnICM2OTA3NzApCiAgIAoyMDAzLTAyLTI2IDA0OjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGdldG9wdCBoYW5kbGluZyBvZiAtUyAoc2VlIGJ1ZyAjNjkzMTY3KQogICAKMjAwMy0wMi0yNSAxMTo0NiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3A6CgogICBkb24ndCB0cnkgYW5kIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyIGlmIG5vdCBpbnN0YWxsZWQKICAgCjIwMDMtMDItMjUgMDY6NDggIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIG5ldC1zbm1wLWNvbmZpZyBwYXRjaCAoIzY5MjM3MykKICAgCjIwMDMtMDItMjUgMDY6NDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBSZWNvZ25pc2UgImRlZlZlcnNpb24gdjMiIGFzIHdlbGwgYXMgImRlZlZlcnNpb24gMyIgYXMgZG9jdW1lbnRlZAogICBpbiB0aGUgbWFuIHBhZ2VzIChwcmlvciB0byBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29ycmVjdGlvbikKICAgW1dlIG1pZ2h0IGFzIHdlbGwgc3VwcG9ydCBib3RoIHN0eWxlcy4uLi5dCiAgIAoyMDAzLTAyLTI1IDA2OjA2ICBkdHMxMgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZgosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wY21kLjEuZGVmLAogICBzbm1wY29uZi4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjguZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgIChwYXRjaGVzICM2OTIzODEsICA2OTIzODIgYW5kICA2OTIzODgpCiAgIAoyMDAzLTAyLTI1IDA2OjA0ICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNlZHNjcmlwdC5pbiwKICAgbG9jYWwvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLjguZGVmOgoKICAgQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvbmZpZ3VyYXRpb24tcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gY2hhbmdlcy4KICAgKHBhdGNoZXMgIzY5MjM3MiwgIDY5MjM3NywgIDY5MjM3OSBhbmQgNjkyMzg2KQogICAKMjAwMy0wMi0yNSAwNToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oOgoKICAgTGlzdCAiZml4ZWQgdHlwZSIgc3RvcmFnZSBlbnRyaWVzIGZpcnN0LCBzbyB0aGF0IHRoZXJlIGlzbid0IGFuCiAgIGFyYml0cmFyeSBsaW1pdCBvZiAxMDAgZGlzay1iYXNlZCBzdG9yYWdlIGVudHJpZXMuCiAgIAoyMDAzLTAyLTI1IDA1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgSGFuZGxlIHVzZXIvZ3JvdXAgbmFtZXMgd2hlbiBzZXR0aW5nIEFnZW50WCBzb2NrZXQgb3duZXJzaGlwLgogICAKMjAwMy0wMi0yNSAwMzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBQcmVsaW1pbmFyeSBwYXRjaCB0byBzdXBwb3J0IGNvbmZpZ3VyYXRpb24gb2YgQWdlbnRYIHNvY2tldCBwZXJtaXNzaW9ucy4KICAgCiAgIFBlcnNvbmFsbHksIEknbSBub3QgY29udmluY2VkIHRoYXQgdGhpcyBpcyByZWFkeSBmb3IgY29tbWl0dGluZyB0byB0aGUKICAgQ1ZTIHRyZWUgeWV0LCBidXQgTXkgTWFzdGVyIEhhcyBTcG9rZW4sIGFuZCBJIE11c3QgT2JleS4uLi4uLi4KICAgCjIwMDMtMDItMjEgMjA6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBDaWRyUm91dGVUYWJsZS5jLAogICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsCiAgIGlwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmgsIGlwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuYywKICAgaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5oLCBpcENpZHJSb3V0ZVRhYmxlX2NvbHVtbnMuaAosIGlwQ2lkclJvdXRlVGFibGVfZW51bXMuaDoKCiAgIEEgYmVnaW5uaW5nIGltcGxlbWVudGF0aW9uIG9mIHRoZSBJUC1GT1JXQVJELU1JQjo6aXBDaWRyUm91dGVUYWJsZS4KICAgICAtIHRoaXMgdGFibGUgaXMgYSByZXBsYWNlbWVudCBmb3IgdGhlIG9ic29sZXRlIGlwUm91dGVUYWJsZSwgd2hpY2gKICAgICAgIGlzbid0IGV2ZW4gaW1wbGVtZW50ZWQgYnkgbW9zdCB2ZW5kb3JzIGFueSBtb3JlLgogICAgIC0gbm90IGNvbXBsZXRlLiAgV3JpdGUgc3VwcG9ydCBub3QgaW1wbGVtZW50ZWQgeWV0LiAgUmVhZC1zdXBwb3J0CiAgICAgICB3b3JraW5nIHRob3VnaC4KICAgICAtIFNob3VsZCB3b3JrIG9uIGV2ZXJ5dGhpbmcgYnV0IGhwdXgxMT8gIHRlc3RpbmcgbmVlZGVkLgogICAgIC0gdGhpcyBpcyBhbm90aGVyIGV4YW1wbGUgb2YgYSB0YWJsZV9pdGVyYXRvciBhcHBsaWNhdGlvbiAoZGlmZmVyZW50CiAgICAgICB0aGFuIHRoZSByZXN0IHVzaW5nIGFjY2Vzc29ycykuCiAgIAoyMDAzLTAyLTIxIDIwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHJvdXRlX2hlYWRlcnMuaCwgdmFyX3JvdXRlLmM6CgogICBtb3ZlZCBoZWFkZXJzIHRvIGEgc2VwYXJhdGUgZmlsZSB1c2FibGUgYnkgb3RoZXIgbW9kdWxlcy4KICAgZXhwb3J0ZWQgdGhlIGNvbGxlY3RlZCByb3V0ZSB0YWJsZS4KICAgCjIwMDMtMDItMjEgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgbW92ZWQgaGVhZGVycyB0byBhIHNlcGFyYXRlIGZpbGUgdXNhYmxlIGJ5IG90aGVyIG1vZHVsZXMKICAgCjIwMDMtMDItMjEgMjA6MTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBBbiBhbHRlcm5hdGUgdGFibGVfaXRlcmF0b3IgLmNvbmYgZmlsZSAodGhhdCBtYXkgZXZlbnR1YWxseSBiZWNvbWUgdGhlCiAgIGRlZmF1bHQpLiAgVGhpcyBvbmUgdXNlcyBhY2Nlc3NvciBmdW5jdGlvbnMgdG8gZ2V0L3NldCBkYXRhIGFuZCBzaG91bGQKICAgdGFrZSBjYXJlIG9mIG1vc3Qgb3RoZXIgU05NUCBzcGVjaWZpYyBzdHVmZiBmb3IgeW91LiAgTm90IGNvbXBsZXRlLAogICBhbmQgYSBnb29kIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvZGUgcmVwZXRpdGlvbiB3aWxsIGxpa2VseSBtb3ZlIGludG8KICAgYW5vdGhlciBzdWItaXRlcmF0b3IgaGFuZGxlciBpbiB0aGUgZnV0dXJlLiAgVGhlIGlwQ2lkclJvdXRlVGFibGUgaXMKICAgYW4gZXhhbXBsZSBvZiB0aGlzIG91dHB1dC4KICAgCjIwMDMtMDItMjEgMjA6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIC0gY29tbWVudCBhZGRpdGlvbnMgYW5kIGNsZWFudXBzLgogICAtIHB1dCB0aGUgZnJlZS9ldGMgZnVuY3Rpb24gcG9pbnRlcnMgaW4gYW4gI2lmZGVmIGNsYXVzZQogICAKMjAwMy0wMi0yMSAyMDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29sdW1uX2VudW1zLmNvbmY6CgogICBjb21tZW50IG1vdmUgZm9yIGJldHRlciBmb3JtYXR0aW5nLgogICAKMjAwMy0wMi0yMSAyMDowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICAtIGdlbmVyYXRlIGFuZCB1c2UgdGhlIGVudW1zIGhlYWRlciBmaWxlLgogICAtIGdlbmVyYXRlIGEgLmggZmlsZS4KICAgLSBtaXNjIGZpeGVzLgogICAKMjAwMy0wMi0yMSAyMDowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgQSAuY29uZiBmaWxlIHRvIGdlbmVyYXRlIGdldF8vc2V0XyBhY2Nlc3MgZnVuY3Rpb25zIGZvciBlYWNoIGNvbHVtbi4KICAgICAtIGl0ZXJhdG9yIHNwZWNpZmljLgogICAKMjAwMy0wMi0yMSAyMDowNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIGVudW0gZml4LgogICAtIGRvbid0IHNvdXJjZSAocnVuKSAuY29uZiBmaWxlcyB0d2ljZS4KICAgCjIwMDMtMDItMjEgMjA6MDYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgLSBkb3h5Z2VuIHVwZGF0ZS4KICAgLSBpbmNsdWRlcyBuZXcgbmV0c25tcF9vaWRfc3Rhc2ggbWFuIHBhZ2UuCiAgIAoyMDAzLTAyLTIxIDIwOjA2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgLSBkb3h5Z2VuIGNvbW1lbnQgZXZlcnl0aGluZwogICAtIHN0YXJ0ZWQgKG5vdCBjb21wbGV0ZSkgYSBnZXRuZXh0IGZ1bmN0aW9uLgogICAtIGltcGxlbWVudGVkIGEgImZyZWUgdGhlIHRyZWUiIGZ1bmN0aW9uLgogICAKMjAwMy0wMi0yMSAyMDowNCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGFkZGVkIGF1dG9tNHRlLmNhY2hlCiAgIAoyMDAzLTAyLTIxIDIwOjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCB0aGUgaW5jbHVkZSBkaXJlY3RvcnkgdG8gdGhlIG1vZHVsZSBlZ3JlcCBjcHAgLUkgbGlzdC4KICAgCjIwMDMtMDItMjEgMDE6NTAgIGR0czEyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgSFRNTC1lc2NhcGUgJzwnIGFuZCAnPicgY2hhcmFjdGVycyBpbiBGQVEgZW50cmllcwogICAKMjAwMy0wMi0yMCAwODoxNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBVc2UgJ25ldHNubXBfcmVnaXN0ZXJfc2NhbGFyJyBpbnN0ZWFkIG9mICduZXRzbm1wX3JlZ2lzdGVyX2luc3RhbmNlJwogICBmb3IgaGFuZGxpbmcgc2NhbGFyIG9iamVjdHMuCiAgIAoyMDAzLTAyLTE5IDIxOjM5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcGF0Y2ggIzY1NzgwODogY2FsY3VsYXRlIGEgcHJvcGVyIGlmU3BlZWQgdW5kZXIgbGludXggd2hlbiBwb3NzaWJsZQogICBhbmQgZG8gbW9yZSBwcm9wZXIgaWZPcGVyU3RhdHVzIHN0YXRlIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTAyLTE5IDIxOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNjU3ODA4OiBjYWxjdWxhdGUgYSBwcm9wZXIgaWZTcGVlZCB1bmRlciBsaW51eCB3aGVuIHBvc3NpYmxlCiAgIGFuZCBkbyBtb3JlIHByb3BlciBpZk9wZXJTdGF0dXMgc3RhdGUgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDItMTkgMTY6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgdG9wIGxldmVsIGRveHlnZW4gd2ViIHBhZ2UgdGV4dAogICAKMjAwMy0wMi0xOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vbGRfYXBpLjMKLCBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NldF9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgZG94eWdlbiB1cGRhdGUuCiAgIAoyMDAzLTAyLTE5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBydW4gdGhlIGNvbHVtbl9lbnVtIGFuZCBjb2x1bW5fZGVmaW5lIC5jb25mIGZpbGVzIGFuZCBpbmNsdWRlIHRob3NlIGhlYWRlcnMuCiAgIAoyMDAzLTAyLTE5IDE2OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEFkZCBhIEBydW5AIHRhZyB0byBydW4gb3RoZXIgbWliMmMgY29uZmlndXJhdGlvbiBmaWxlcyBmcm9tIHRoZQogICBjdXJyZW50IG9uZS4KICAgCjIwMDMtMDItMTkgMTY6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgbW9yZSAoYmFkKSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaXRlcmF0b3IgKGdhc3ApCiAgIAoyMDAzLTAyLTE5IDE2OjUwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBhZGQgaW5jbHVkZSBkaXJlY3RvcmllcyBmb3IgcHJvY2Vzc2luZy4KICAgCjIwMDMtMDItMTkgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcmVtb3ZlIG9sZCB1bnVzZWQgY29tbWVudC4KICAgCjIwMDMtMDItMTkgMTM6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIGNvbnZlcnRlZCBhIGJ1bmNoIG9mIG5vbi1kb3h5Z2VuIGRvY3MgdG8gZG94eWdlbiBkb2NzLgogICAKMjAwMy0wMi0xOSAxMzowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBkb3h5Z2VuaXplIGEgZmV3IGRlZmluZXMuCiAgIAoyMDAzLTAyLTE4IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gY29uZmlndXJlCiAgIAoyMDAzLTAyLTE3IDExOjIwICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIHNtdXggdG8gbGlzdCBvZiBtb2R1bGVzIGZvciBkaXN0cmlidXRpb247IG1vdmUgdGVzdCBmb3IgbWFrZSBpbnNpZGUgb2YKICAgbnNiLW1ha2U7IGFkZCBibGFuayBsaW5lIGFib3ZlIEFCT1JUOyByZW1vdmUgdGVlIHRvIGxvZ2ZpbGUsIGFzIGl0IGVhdHMKICAgcmMgZnJvbSBjb21tYW5kOyBhZGQgTk9BVVRPREVQUz15IHRvIGFsbCBtYWtlIHN0ZXBzOyBkbyBtYWtlIHRvdWNoaXQgd2hlbgogICB0YXJnZXQgPSBhbGw7IHVzZSBuc2ItbWFrZSBmb3IgZGlzdGNsZWFuCiAgIAoyMDAzLTAyLTE3IDExOjE4ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBkb24ndCBkbyBhbnkgb2YgdGhlIGF1dG9jb25mL2F1dG9oZWFkZXIgZGVwcyBpZiBOT0FVVE9ERVA9KiBzcGVjaWZpZWQKICAgCjIwMDMtMDItMTcgMTE6MTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBhbm90aGVyIGRpciBsZXZlbCBmb3IgbWFrZSBkZXBlbmRzIChwZXIgRFMsIGZyb20gYSB3aGlsZSBiYWNrIC0gdGhvdWdodAogICB0aGlzIHdhcyBhbHJlYWR5IGNoZWNrZWQgaW4pCiAgIAoyMDAzLTAyLTE3IDA3OjMwICBuYmEKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBOb3RlIGFib3V0IGJhZCAvdXNyL3hwZzQvYmluL3NlZAogICAKMjAwMy0wMi0xNyAwNjozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBUaGUgaW5jbHVkZSBmb3IgZG1hbGxvYyBiZXR0ZXIgY29tZSBhZnRlciB0aGUgc3RkIGluY2x1ZGVzCiAgIAoyMDAzLTAyLTE3IDA1OjM2ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRG9udCBzZWFyY2ggL3Vzci9sb2NhbCBmb3IgZG1hbGxvYyB1bmxlc3MgdXNlciBleHBsaWNpdGx5IGFza3MgZm9yIGl0CiAgIAoyMDAzLTAyLTE3IDA1OjM0ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgQnJpbmcgYmFjayB0aGUgZGV2ZWxvcGVyIHdhcm5pbmdzCiAgIAoyMDAzLTAyLTE3IDA1OjMzICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHRleHQgZm9yIHNvY2tsZW5fdAogICAKMjAwMy0wMi0xNyAwNTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIFNvbWUgZXJyb3IgbWVzc2FnZXMgZm9yIFNvbGFyaXMKICAgCjIwMDMtMDItMTcgMDQ6MjMgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBORVQtU05NUC1UQyBtaWIKICAgCjIwMDMtMDItMTQgMDc6NDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBpbmNsdWRlQWxsRGlza3MKICAgCjIwMDMtMDItMTQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBkaXNrLmg6CgogICBQYXRjaCAjNjU1NDQ0IGZyb20gU3Jpa2FudGggUGluZGlwcm9saToKICAgICBJbXBsZW1lbnQgYSBuZXcgaW5jbHVkZUFsbERpc2tzIHNubXBkLmNvbmYgdG9rZW4gdG8gcGxhY2UgYWxsIGZvdW5kCiAgICAgZGlza3MgaW50byB0aGUgZHNrVGFibGUgbGlzdGluZy4KICAgCjIwMDMtMDItMTMgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFY1LTAtcGF0Y2hlcy4xKSwgdmFyX3JvdXRlLmMKOgoKICAgUGF0Y2ggIzY1NDMyOTogZG91YmxlIGNoZWNrIGxlbmd0aHMgd2hlbiBjb3B5aW5nCiAgIAoyMDAzLTAyLTEzIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYwosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLS1kaXNhYmxlLW1pYi1sb2RhaW5nIHJlbW92ZXMgdGhlIG1pYiBsb2FkaW5nIGNvZGUgZnJvbSBidWlsZHMuCiAgICAgKG9pZCBwcmludGluZyBhcmUgZm9yY2VkIG51bWVyaWMpCiAgICAgVGhpcyBzYXZlcyBhYm91dCBhYm91dCAyMDBrIGluIGJpbmFyeSBzaXplIG9uIGEgbGludXggYm94LgogICAgIFRoaXMgc2F2ZXMgYWJvdXQgYWJvdXQgMTAwayBpbiBydW5uaW5nIHNpemUgb24gYSBsaW51eCBib3ggKGFzc3VtaW5nCiAgICAgICB0aGUgd2l0aC1taWItbG9hZGluZyBpcyBhY3R1YWxseSBub3QgbG9hZGluZyBhbnl0aGluZyBqdXN0IHRvIGJlCiAgICAgICBmYWlyLCBvdGhlcndpc2UgaXRzIGFib3V0ID41MDBrKS4KICAgCjIwMDMtMDItMTMgMDg6MDEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBORVdTLCBhY2xvY2FsLm00LCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgLSBNaXNjIGNvbmZpZ3VyZSBjaGFuZ2VzL2ZpeGVzIChlZywgb3V0cHV0IHRoZSBkaXNhYmxlZCBzdGF0ZXMgZm9yIHBlcmwpCiAgIC0gQSBidW5jaCBvZiBuZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucyAgICAgICAgICBEbyBub3QgYnVpbGQgdGhlIGFwcHMgKHNubXBnZXQsIC4uLikuCiAgICAgLS1kaXNhYmxlLWFnZW50ICAgICAgICAgICAgICAgICBEbyBub3QgYnVpbGQgdGhlIGFnZW50IChzbm1wZCkuCiAgICAgLS1kaXNhYmxlLW1hbnVhbHMgICAgICAgICAgICAgICBEbyBub3QgaW5zdGFsbCB0aGUgbWFudWFscy4KICAgICAtLWRpc2FibGUtc2NyaXB0cyAgICAgICAgICAgICAgIERvIG5vdCBpbnN0YWxsIHRoZSBzY3JpcHRzIChtaWIyYywgLi4uKS4KICAgICAtLWRpc2FibGUtbWlicyAgICAgICAgICAgICAgICAgIERvIG5vdCBpbnN0YWxsIHRoZSBtaWIgZmlsZXMuCiAgIAoyMDAzLTAyLTEzIDA2OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGNoZWNrIGVudHJ5IG5vZGUgYXMgc3VnZ2VzdGVkIGJ5IElyZmFuIFNoZXJpZmYKICAgCjIwMDMtMDItMTMgMDU6NTkgIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFJlbW92ZSBpbnZhbGlkICd0ZXN0aW5nJyBjb25maWdfZmlsZSB0YXJnZXQuCiAgIFNpbmNlIHRoaXMgaXMgYSBkaXJlY3RvcnksICdjb25maWcuc3RhdHVzJyBmYWlscyB0byBjcmVhdGUgaXQuCiAgIAogICBJJ20gbm90IHF1aXRlIHN1cmUgd2hlcmUgdGhpcyBhcHBlYXJlZCBmcm9tLiAgSXQncyBub3QgcGFydCBvZgogICB0aGUgY29uZmlndXJlIHNjcmlwdCBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYgMi41MywgYnV0IGl0IG1pZ2h0CiAgIGhhdmUgYmVlbiBpbnRyb2R1Y2VkIGJldHdlZW4gdGhlcmUgYW5kIDIuNTcuCiAgIAoyMDAzLTAyLTEzIDAyOjEwICBkdHMxMgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgTWVjaGFuaXNtIGZvciBwYXNzaW5nIGFkZGl0aW9uYWwgb3B0aW9ucyB0byB0aGUgdGVzdCBydW4uCiAgIFN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAzLTAyLTEyIDExOjMwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBpbmNsdWRlIGFnZW50L21pYmdyb3VwIGhlYWRlcnMgZnJvbSAke3NyY2Rpcn0KICAgCjIwMDMtMDItMTIgMDk6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSB1cGdyYWRlIGNvbmZpZ3VyZSB0byBhdXRvY29uZiAyLjU3CiAgIC0gVGhpcyBpcyBmdW5jdGlvbmFsIG5vdywgYnV0IG5vdCBhbGwgZmxhZ3MsIGZlYXR1cmVzIGFuZCB0ZXN0cyBoYXZlCiAgICAgYmVlbiB0ZXN0ZWQuICBQbGVhc2UgcmVwb3J0IGVycm9ycyEgIFRoZXJlIGFyZSBtb3JlIHRoaW5ncyB0byBkbywKICAgICBsaWtlIGNvbnZlcnNpb24gb2YgbG9jYWwgbWFjcm9zIChlZywgU1RSVUNUX0ZPUikgdG8gYXV0b2NvbmYKICAgICBuZXdlciBzdGFuZGFyZCBtYWNyb3MuCiAgIAoyMDAzLTAyLTEyIDA2OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuaCAoVjUtMC1wYXRjaGVzLjEpLCB0dW5uZWwuaAogICAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgdHVubmVsLmg6CgogICB1cGRhdGUKICAgCjIwMDMtMDItMTEgMTg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBvbmx5IGRlZmluZSBzdHVmZiBpZiBoYXZlX3JlZ2V4IGlzIGRlZmluZWQKICAgCjIwMDMtMDItMTEgMTg6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcnVuIGNvbmZpZ19yZXF1aXJlIGNoZWNrcyB0aHJvdWdoIGNwcAogICAKMjAwMy0wMi0xMSAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBJcmZhbiBTaGVyaWZmIHBvaW50ZWQgb3V0IGEgYnVnIHdpdGggZ2V0bmV4dCByZXF1ZXN0cyBkaXJlY3RseSB0bwogICBhIGNvbHVtbi4KICAgCjIwMDMtMDItMTEgMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHBhdGNoIGZyb20gQ2hyaXN0b3BoZSBWYXJvcXVpIHRvIGZpeCBkcm9wcGluZyBzdGF0ZSBjaGFuZ2UgZm9yIHRocmVzaG9sZHMuCiAgIAoyMDAzLTAyLTExIDA4OjI2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc3lzdGVtLmMgKFY0LTItcGF0Y2hlcy41KSwgc3lzdGVtLmM6CgogICBSZW1vdmUgbGFzdCByZW1haW5pbmcgdXNlIG9mICdubGlzdCcgdW5kZXIgSFAtVVggMTAgJiAxMS4KICAgQXMgcGVyIHBhdGNoICM2NTY3NzMgZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDMtMDItMTEgMDg6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgQ2hlY2tpbmcgdGhlIGxlbmd0aCBvZiBhIHN0cmluZyBidWZmZXIgb25jZSBpcyBzdWZmaWNpZW50LgogICBVc2luZyAnc3Rybm5jcHknIFtzaWNdIHRvIGNoZWNrIHRoaXMgbGVuZ3RoIHR3aWNlIGlzIHVubmVjZXNzYXJ5Li4uCiAgIAoyMDAzLTAyLTExIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgaWZkZWYgb3V0IHVubGlrZWx5LWNvcnJlY3QtY29kZSBvbiB3aW4zMgogICAKMjAwMy0wMi0xMSAwNzo1NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBNZXNzIHdpdGggb3V0cHV0IG9mIGRveHlnZW4gdG8gYWRkIHNmIGxvZ29zLCBldGMsIHRvIHRoZSBib3R0b20gb2YgdGhlCiAgIGdlbmVyYXRlZCBodG1sIGZpbGVzLgogICAKMjAwMy0wMi0xMSAwNzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoICM2NTUxNTQgZnJvbSBKb2VsIFJvc2RhaGw6IG1vcmUgcHJvcGVyIGRlbW9uaXphdGlvbjoKICAgICAtIGNsb3NlIHN0ZGluL3N0ZG91dC9zdGRlcnIgaWYgYXBwcm9wcmlhdGUuCiAgICAgLSBkb3VibGUgZm9yay4KICAgICAtIGNoZGlyIC8gICBbSSdtIG5vdCBjb252aW5jZWQgdGhpcyBpcyBjb3JyZWN0IHVuZGVyIHdpbmRvd3M/ICBBbnlvbmU/XQogICAKMjAwMy0wMi0xMSAwNzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgcGF0Y2ggIzY2NzY5NCAoYW5vbikgdG8gYWRkIGJhY2sgbmV3bGluZXMgdG8gcGFzcyBjb2RlCiAgIAoyMDAzLTAyLTExIDA3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICM2NjIxNjkgZnJvbSBKYW4gV2lsbGVtIEx1aXRlbjogZGlza2lvIHN1cHBvcnQgZm9yIERhcndpbgogICAKMjAwMy0wMi0xMSAwNjoxNCAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBzZXQudDoKCiAgIEZpeCB0ZXN0cyBmb3IgYnVsa3dhbGsgKGR1cGxpY2F0ZSBoZWFkZXIpIGFuZCBzZXQgKGludmFsaWQgT0lEIGNvbnN0YW50KQogICAKMjAwMy0wMi0xMSAwNDo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBBY2NvbW1vZGF0ZSBhIGZ1c3N5IElSSVggZW52aXJvbm1lbnQsIHdoaWNoIGlzIHBpY2t5IGFib3V0IDx1bmlzdGQuaD4KICAgU2VlIGJ1ZyAjNjY3NzI2CiAgIAoyMDAzLTAyLTEwIDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgZml4IGluZGVudCBjb21tZW50IGRhbWFnZS4KICAgCjIwMDMtMDItMTAgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBFWFRFTlNJQkxFIC0+IFVDREFWSVNfTUlCCiAgIAoyMDAzLTAyLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQnJ1Y2UgU2hhdyBwb2ludGVkIG91dCBhIGNvbW1lbnQgdHlwbwogICAKMjAwMy0wMi0xMCAxNTozOCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBhZ2VudC9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBteSBkZWNsYXJhdGlvbnMgYXMgcG9pbnRlZCBvdXQgYnkgQW5kcmV3IFBhZ2UKICAgCjIwMDMtMDItMTAgMDk6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBmaWxlIG5hbWUgdHlwbwogICAKMjAwMy0wMi0xMCAwNzo1NyAgbmJhCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBsdG1haW4uc2gsCiAgIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmU6CgogICBVcGRhdGUgbGlidG9vbCB0byAxLjQuMwogICAKMjAwMy0wMi0xMCAwNzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIHR1cm4gb24gbG9nX21hdGNoIGJ5IGRlZmF1bHQKICAgCjIwMDMtMDItMTAgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIENocmlzdG9waGUgVmFyb3F1aSB0byB0aGUgdGhhbmtzIGZvciBoaXMgRElTTUFOIHBhdGNoZXMKICAgCjIwMDMtMDItMDkgMTA6MDIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQW4gYWRkaXRpb25hbCBjaGFuZ2UgdG8gc3VwcG9ydCAndCcgaGludHMKICAgCjIwMDMtMDItMDYgMjE6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaDoKCiAgIEZvciBsaW51eCwgdXNlIC9wcm9jL1gvc3RhdHVzIGluc3RlYWQuICBJdCBoYXMgdGhlIG5hbWUgb2YgcHJvY2Vzc2VzCiAgIHdoZW4gL3Byb2MvY21kbGluZSBkb2VzIG5vdC4gIEEgZGVmaW5lIChjb21tZW50ZWQgb3V0KSB3YXMgcHV0IGluCiAgIHN5c3RlbS9saW51eC5oIHRvIHJldmVydCB0byBwcmV2aW91cyBiZWhhdmlvciBpZiBkZXNpcmVkLiAgSSdtIG5vdAogICBzdXJlIGF0IHdoaWNoIGtlcm5lbCByZWxlYXNlIHRoZSBzdGF0dXMgZmlsZSB3YXMgYWRkZWQuCiAgIAoyMDAzLTAyLTA2IDIwOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBBZGQgYSBkZWJ1Z2dpbmcgdGFnICJwcm9jIiB3aGljaCBwcmludHMgcHJvY2VzcyBuYW1lcyBhcyBmb3VuZCBpbiBzb2xhcmlzLgogICAodGhpcyBzaG91bGQgYmUgbmljZSB3aGVuIHNlYXJjaGluZyBmb3IgdW5rbm93biBleGFjdCBwcm9jZXNzIG5hbWVzKQogICAKMjAwMy0wMi0wNiAxMTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHBhdGNoICM2NzQyMTg6IHJlb3BlbiBsb2cgZmlsZXMgb24gSFVQLgogICAKMjAwMy0wMi0wNiAxMDo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0wNiAxMDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgUGF0Y2ggZnJvbSBDaHJpc3RvcGhlIHRvIHN1cHBvcnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgCjIwMDMtMDItMDUgMjI6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgQSBtaWIyYyBmaWxlIHRoYXQgZ2VuZXJhdGVzIGEgYnVuY2ggb2YgZnVuY3Rpb25zIHRvIGNoZWNrIHRoZSB2YWx1ZSBvZgogICBpbmNvbWluZyBTRVQgcmVxdWVzdHMuCiAgICAgKG5vdCBjb21wbGV0ZSB5ZXQuICBOZWVkcyBzdXBwb3J0IGZvciBCSVRTIGVudW1zIGFuZCBhIGhlYWRlciBmaWxlCiAgICAgd2l0aCBwcm90b3R5cGVzKQogICAKICAgSGFwcHkgQmlydGhkYXkgKGxhdGUpIHRvIFJvYmVydC4KICAgCjIwMDMtMDItMDUgMjI6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgU3VwcG9ydCBmb3IgZm9yZWFjaCBvbiByYW5nZXMuCiAgIAoyMDAzLTAyLTA1IDAzOjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBsb2NhbC1vbmx5IGFjY2VzcyBmb3Igbm9uLXN0YW5kYXJkIHBvcnQgQWdlbnRYIGNvbm5lY3Rpb25zLgogICAKMjAwMy0wMi0wNSAwMToxMyAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgRG9uJ3QgcHJvbXB0IGZvciBhbiBhdXRoZW50aWNhdGlvbiBwYXNzLXBocmFzZSwgaWYgb25lIGhhcyBhbHJlYWR5CiAgIGJlZW4gc3VwcGxpZWQuICBSZXBvcnRlZCBieSBEYXJyZW4gR2FtYmxlLgogICAKMjAwMy0wMi0wNCAwNjoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGFuIGVudHJ5IGRlc2NyaWJpbmcgY29uZmlndXJpbmcgQWdlbnRYIG9uIGEgbm9uLXN0YW5kYXJkIHBvcnQuCiAgIAoyMDAzLTAyLTAzIDA3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjUtMC1wYXRjaGVzLjIpLCBzbm1wX2FwaS5jOgoKICAgRnJvbSBSaWNoYXJkIExhaW5nOiBjaGFuZ2UgdmFsdWUgY2hlY2sgb2YgYSBzdHJpbmcgdG8gdXNlIGEgcHJvcGVyIGxlbmd0aC4KICAgCjIwMDMtMDEtMjkgMDc6MTkgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIHBlcmwvU05NUC9SRUFETUU6CgogICBwZXJsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBmcm9tIEhhcnJpZQogICAKMjAwMy0wMS0yNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBwYXRjaCAjNjcyMDIxIGZyb20gSm9zaHVhIEdpbGVzOiBsYXJnZSBzZXQgcmVxdWVzdCBmaXhlcwogICAKMjAwMy0wMS0yMiAxNDo0NSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBIYXZpbmcgZm91bmQgYSBuZXcgcm93IHRvIHdvcmsgd2l0aCwgdXBkYXRlIHRoZSBpbmRleCB2YWx1ZXMgYXMgd2VsbC4KICAgVGhpcyBzZWVtcyB0byBmaXggdGhlIG1pc21hdGNoIGJldHdlZW4gdGhlIE9JRCBiZWluZyBwcm9jZXNzZWQKICAgYW5kIHRoZSBpbmRleCB2YXJiaW5kcy4KICAgCjIwMDMtMDEtMjAgMTk6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3RyaW5nIHRlc3QgY2FzZSBmb3IgYmluYXJ5IGFycmF5IHRlc3RpbmcKICAgCjIwMDMtMDEtMjAgMTk6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZpeGVzIGZvciBhcnJheV9xc29ydCAtIG5vdCBxdWl0ZSBzdXJlIHdoeS9ob3cgaXQgd29ya2VkIGJlZm9yZS4uOi0vCiAgIAoyMDAzLTAxLTIwIDE5OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIG5ldyBuZXRzbm1wX2NvbXBhcmVfbWVtOyBmaXggdHlwbyBpbiBkZWJ1ZyBtZXNzYWdlCiAgIAoyMDAzLTAxLTIwIDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNyZWF0ZSBtZDVzdW1zIGFmdGVyIGNyZWF0aW5nIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0xNCAwNjoxNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIDE2LWJpdCByZXF1ZXN0SURzLCBldGMgLSBmb3IgdGFsa2luZyB0byBicm9rZW4gYWdlbnRzLgogICAoQXMgcGVyIGEgc3VnZ2VzdGlvbiBvZiBOaWVscywgaW4gZGlzY3Vzc2lvbiB3aXRoIEhlbnJpayBPc3RlcmdhYXJkIE1hZHNlbikKICAgCjIwMDMtMDEtMTQgMDU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jCiwgZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGRveHlnZW4gY2hhbmdlcwogICAKMjAwMy0wMS0xMyAxODo0OSAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMC43CiAgIAoyMDAzLTAxLTEzIDE3OjMwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlY29nbml6ZSBuZXcgJ3QnIGNvZGUgaW4gZGlzcGxheSBoaW50cwogICAKMjAwMy0wMS0xMyAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHBhdGNoIGZvciBtZW1vcnkgbGVha3Mgc2VudCB0byBjb2RlcnMgYnkgSmF5IFBhcmxhcgogICAKMjAwMy0wMS0xMCAyMjoyNyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNyApCiAgIAoyMDAzLTAxLTEwIDIyOjI2ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNwogICAKMjAwMy0wMS0xMCAyMjoxNSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgY29uZmlndXJlLXN1bW1hcnkKICAgCjIwMDMtMDEtMTAgMjI6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTAxLTEwIDIyOjA4ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSB2YXJpYXRpb25zIG9mIGNoYW5nZWxvZy5hZGQKICAgCjIwMDMtMDEtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIGRveHlnZW4gb3V0cHV0IHRhZ3MgdG8gcHV0IHRoZSByZWNlbnRseSBkZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIGdyb3Vwcy4KICAgCjIwMDMtMDEtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX2FnZW50LjMsCiAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGVzCiAgIAoyMDAzLTAxLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG9wcHMKICAgCjIwMDMtMDEtMTAgMTQ6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIGRvdWJsZSBjaGVja2luZyBvdXRwdXQKICAgCjIwMDMtMDEtMTAgMTE6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldDoKCiAgIGZpeCBwb3NpdGlvbmFsIGFyZ3VtZW50cwogICAKMjAwMy0wMS0xMCAwNjowNCAgZHRzMTIKCiAgICogRkFROgoKICAgUmVmZXJlbmNlIEJydWNlIFNoYXcncyBkaXNjdXNzaW9uIG9mIHRoZSBwZXJsIGNvbXBpbGF0aW9uIHByb2JsZW1zCiAgIChzZWUgUkVBRE1FLnNvbGFyaXMpCiAgIAoyMDAzLTAxLTEwIDA1OjMxICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIEFnZW50WCB1bmRlciB3aW5kb3dzLCBhbmQgYmVlZiB1cCB0aGUgcGVybCBzdHVmZiBhIGJpdC4KICAgQWRkIGEgbWlzc2luZyBlbnRyeSBpbiB0aGUgY29udGVudHMgbGlzdC4KICAgKFRoaXMgbWF5IHByb3ZlIHRvbyBsYXRlIGZvciA1LjAuOCwgYnV0IGF0IGxlYXN0IGl0J2xsIGJlIHJlYWR5IGZvciBuZXh0IHRpbWUhKQogICAKMjAwMy0wMS0wOSAxNTo0MSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxNTozOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2MgdXBkYXRlLgogICAKMjAwMy0wMS0wOSAxNTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbW9kZV9lbmRfY2FsbC5oOgoKICAgZW5kLW9mLW1vZGUgaGVscGVyIHRvIGNhbGwgbW9yZSBoYW5kbGVycyBhZnRlciBwcm9jZXNzaW5nIHRoZSBtYWluCiAgIGxpbmUuICBGdW5jdGlvbmFsbHkgYWxsb3dzIHBhcmFsbGVsIGhhbmRsZXIgdHJlZXMgYW5kIGNhbGxiYWNrcyBhZnRlcgogICBhIHBhcnRpY3VsYXIgbW9kZSBpcyBjb21wbGV0ZWQgKHVzZWZ1bCBmb3IgdGhpbmdzIHJlZ2lzdGVyZWQgdW5kZXIgYQogICBzZXJpYWxpemUgaGFuZGxlciB3aGVuIHlvdSBkb24ndCBrbm93IHdoZW4gdGhlIG1vZGUgaXMgb3ZlcikuCiAgICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBwcm9kdWN0aW9uIGNvZGUgeWV0LikuCiAgIAoyMDAzLTAxLTA5IDA4OjU1ICBkdHMxMgoKICAgKiBGQVE6CgogICBNZW50aW9uIHRoZSBwZXJsIHNoYXJlZC9zdGF0aWMgbGlicmFyeSBwcm9ibGVtLAogICB0aGUgdW5yZXNwb25zaXZlIGFnZW50IHByb2JsZW0gKGFuZCBmaXgpLCBhbmQKICAgZGlzY2xhaW0gYWxsIGtub3dsZWRnZSBvZiBEYXZpZCBUb3duJ3MgTmV0OjpTTk1QIG1vZHVsZSwKICAgCjIwMDMtMDEtMDkgMDc6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2MHNubXB2MmNidWxrZ2V0LCBUMDIyMHNubXB2M2J1bGtnZXQKOgoKICAgR2V0QnVsayB0ZXN0aW5nIHN1cHBsaWVkIGJ5IFhpYW9mZW5nIExpbmcKICAgCjIwMDMtMDEtMDkgMDc6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBBZGQgLXggZmxhZyBmb3IgY2FsbGluZyBzdWJ0ZXN0cyB3aXRoICJzaCAteCIuCiAgIEZpeCBudW1iZXIgY291bnRpbmcgZm9yIGludGVyYWN0aXZlIG91dHB1dC4KICAgCjIwMDMtMDEtMDcgMTU6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy44KSwgQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCiAgIAoyMDAzLTAxLTA3IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgaXJjIHNlcnZlciBuYW1lIGNoYW5nZQogICAKMjAwMy0wMS0wNyAwODowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGJ1ZyAjNjYzNjI4IGFuZCBwYXRjaDogZml4IGlwIGFkZHJlc3MgaW5kZXggcGFyc2luZyBmcm9tIE9JRHMKICAgCjIwMDMtMDEtMDcgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgY29kZSB0byBmcmVlICdjYWxsYmFja19kYXRhX2tlZXAnIGRhdGEuCiAgIFRoaXMgYnJhbmNoIHdvdWxkIG5ldmVyIGJlIGludm9rZWQsIGFuZCBpcyBpbiB0aGUgd3JvbmcKICAgcGxhY2UgYW55d2F5LiAgUGF0Y2ggc3VwcGxpZWQgYnkgSmF5IFBhcmxhcgogICAKMjAwMy0wMS0wNiAwODoxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBTb2xhcmlzIDkgaGVhZGVyCiAgIAoyMDAzLTAxLTA1IDE1OjE0ICBuYmEKCiAgICogd2luMzIvd2luMzIub3B0OgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxNDoyOCAgbmJhCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgd2luMzIub3B0CiwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDEyOjQ1ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgU05NUC1NUEQtTUlCLnR4dCwgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0CiwgU05NUHYyLU1JQi50eHQsIFNOTVB2Mi1UTS50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbnMKICAgCjIwMDMtMDEtMDMgMTI6NTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNhbGwgQUNfRElTQUJMRV9TSEFSRUQsIGFzIHNldHMgdGhlIGRlZmF1bHQgdG8gZGlzYWJsZWQgKGl0J3MgdmVyeQogICBwcmVzZW5jZSBpbiBjb25maWd1cmUuaW4gZ2VuZXJhdGVzIGEgY29uZmlndXJlIHdpdGggc2hhcmVkIGRpc2FibGVkLCBldmVuCiAgIGlmIGl0IHdhcyBpbiBhbiBpZiBibG9jazsgZm9yIGRldmVsb3BlciBkZWZhdWx0LCBzZXQgZW5hYmxlX3NoYXJlZCBkaXJlY3RseQogICB1bmxlc3MgaXQgd2FzIHByZXZpb3VzbHkgc2V0OyB0ZXN0IHRoYXQgZW5hYmxlX3NoYXJlZD15ZXMgZm9yIGVtYmVkZGVkLXBlcmwKICAgCjIwMDMtMDEtMDMgMDU6MDIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBNZW50aW9uIHRoZSBTdHJhdHVzIFZPUyBwb3J0LiAoVGhhbmtzIHRvIEJyYW5kb24gSGFsbCkKICAgCjIwMDMtMDEtMDIgMTU6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBwYXJlbnMgYXJvdW5kIHggaW4gbWFjcm8gaW4gY2FzZSB4IGlzIG11bHRpcGxlIEMgdG9rZW5zCiAgIAoyMDAyLTEyLTIyIDA5OjMyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIFJFQURNRSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMiApCiAgIAoyMDAyLTEyLTIyIDA5OjMxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUyCiAgIAoyMDAyLTEyLTIyIDA5OjIwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0yMCAwNDo1OCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gYXdheSBuZXQtc25tcC1jb25maWcgb24gbWFrZSBjbGVhbgogICAKMjAwMi0xMi0yMCAwNDo1NyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc3Rhc2ggdGhlIG9pZF9zdGFzaCAuLi4KICAgCjIwMDItMTItMjAgMDE6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBIHBhdGNoIGZyb20gVjQgdGhhdCBkaWRuJ3QgbWFrZSBpdCAuLi4gYWxsb3cgbGlzdCBvZiBudW1lcmljIGJpdHMgc2V0dGluZyBCSVRTCiAgIAoyMDAyLTEyLTE5IDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgYWRkIGEgZ2xvYmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciByZWdpc3RlcmluZyBkaXJlY3RseSB2aWEgYSBjYWxsYmFjay4KICAgCjIwMDItMTItMTkgMjM6MzUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBhZGQgY2FsbGJhY2suaAogICAKMjAwMi0xMi0xOSAyMzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlIHJlbmFtaW5nLiAgKHNucHJpbnRmIGNoYW5nZSBtaXN0YWtlKQogICAKMjAwMi0xMi0xOSAyMzoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHNvbWUgbmV3IHJvdXRpbmVzIGZvciBzYXZpbmcgb2lkIHN0YXNoIGRhdGEgdG8gcGVyc2lzdGVudCBzdG9yYWdlLgogICAgIChub3QgdXNlZCBhbnl3aGVyZSBpbiBjdXJyZW50IHByb2R1Y3Rpb24gY29kZSkKICAgCjIwMDItMTItMTkgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSB3YXRjaCBmb3IgdW5kZWZzIHBhc3NlZCBpbiBhcyBhIHZhbHVlIHRvIGEgU0VUIGNsYXVzZS4KICAgLSBjaGFuZ2UgQklUUyB0byBhIE9jdGV0IFN0cmluZyBhcyBpdCBzaG91bGQgYmUuCiAgICAgLSBvbiBhIHNpZGUgbm90ZSwgZG8geW91IGtub3cgdGhhdCB0aGUgTmV0LVNOTVAgcGFyc2VyIGRvZXNuJ3QKICAgICAgIGRpc3Rpbmd1aXNoIGJldHdlZW4gQklUUyBhbmQgQklUIFNUUklORyBpbiBpdCdzIGxpc3Qgb2YgdHlwZXM/ICBJCiAgICAgICBkb24ndCB0aGluayBpdCdzIHBvc3NpYmxlIHRvIHVzZSBib3RoIHR5cGVzIGluIHRoZSBjb2RlIHRvZGF5CiAgICAgICAod2hpY2ggaXMgZmluZSwgc2luY2UgQklUIFNUUklORyBpcyBub3QgdXNlZCBpbiBTTk1QdjIgYW5kIGJleW9uZCkuCiAgIAoyMDAyLTEyLTE5IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBwcmludCBhIHdhcm5pbmcgd2hlbiB5b3UgY2FuJ3QgcGFyc2UgYW4gT0lEIChlcnIsIG5vdCBpZGVhbCkKICAgCjIwMDItMTItMTkgMTQ6NDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIHNraXAgU0VUaW5nIGNvbHVtbnMgd2l0aCBubyB2YWx1ZSBwYXNzZWQgaW4uCiAgIAoyMDAyLTEyLTE5IDExOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy9leGFtcGxlLmMsIGhvc3QvaHJfbmV0d29yay5jCiwgaG9zdC9ocl9zd2luc3QuYzoKCiAgIEJlaW5nIGEgYml0IHF1aWNrLCBlaCwgRGF2ZSAuLi4KICAgCjIwMDItMTItMTkgMDg6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMi1wYXRjaGVzLjIpLCBhdC5jOgoKICAgRW5zdXJlIHRoZSBpZm5hbWUgYnVmZmVyIGlzIGJpZyBlbm91Z2ggdG8gcmVhZCBpbiBhIGZ1bGwtbGVuZ3RoIG5hbWUuCiAgIChGcm9tIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jCiAgIChWNC0yLXBhdGNoZXMuWzgsOSwzLDMsMF0pLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9taWIuYzoKCiAgIERldGVjdCB3aGVuIG1lbW9yeSBhbGxvY2F0aW9ucyBmYWlsLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MuCiAgIChCYXNlZCBvbiBjaGFuZ2VzIHdpdGhpbiB0aGUgU1VTRSAiYXVkaXQiIHBhdGNoKQogICAKMjAwMi0xMi0xOSAwNzowNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgVGhlIEdyZWF0IFNVU0UgJ3NwcmludGYnIEh1bnQuLi4uLgogICAKMjAwMi0xMi0xOSAwMzowMiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIGNvZGUgd2l0aCBCU0RpNAogICAKMjAwMi0xMi0xOSAwMjo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hhbmdlIGEgY29tbWVudCB0aGF0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhlIHRyYW5zcG9ydCBzdHVmZgogICAgIC0gZml4IHNvbWUgcGFydGljdWxhcmx5IGJhZCBmb3JtYXR0aW5nIGluIHNubXBfb3Blbl9leAogICAKMjAwMi0xMi0xOCAxMDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgcmVtb3ZlIG1lbS1sZWFrIGNvbW1lbnQuICBPdXQgb2YgZGF0ZSBhbmQgd2FzIGZpeGVkCiAgIAoyMDAyLTEyLTE4IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBkZWxldGUgZXhwZXJpbWVudGFsIHdhcm5pbmcgYWJvdXQgYWdlbnR4CiAgIAoyMDAyLTEyLTE4IDEwOjQwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBmaXggYnVnIzY1NTQ4ODogZGVzY3JpcHRpb25zIG9mIHNzSU9SYXdSZWNlaXZlZCBhbmQgc3NSYXdJbnRlcnJ1cHRzIHdlcmUgcmV2ZXJzZWQKICAgCjIwMDItMTItMTggMDU6MTkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHN0ZGVyciBsb2dnaW5nIG9uIEhVUCAoaWYgLUwgd2FzIGdpdmVuIG9uIGNvbW1hbmQgbGluZSkKICAgCjIwMDItMTItMTcgMTY6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgJzsnIGZyb20gZGVmaW5lOyBpZiB0YWJsZSBoYXMgYSBzdG9yYWdlIHR5cGUsIGNoZWNrIHRoYXQgaXQncyBub3QKICAgcmVhZCBvbmx5IGJlZm9yZSBhbGxvd2luZyBzZXRzCiAgIAoyMDAyLTEyLTE3IDE2OjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgbmV2ZXIgbWluZAogICAKMjAwMi0xMi0xNyAxNjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERvbid0IGNoZWNrIGZvciBwcmVmaXhlcyBpbiB0ZXN0LiAgVGhleSBkb24ndCBleGlzdC4gIEhvd2V2ZXIsIGRvIHNldCBTTk1QQ09ORlBBVEggaW4gdGVzdCBpbml0aWFsaXphdGlvbiB0byBhIGJvZ3VzIHZhbHVlCiAgIAoyMDAyLTEyLTE3IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZW1vdmUgZGlyZWN0IGNhbGwgdG8gaW5pdF9zbm1wKCkuICBUaGlzIGlzIGFscmVhZHkgY2FsbGVkIGJ5IHRoZSAucG0gZmlsZQogICAKMjAwMi0xMi0xNyAwNzoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIHBlcnNpc3RlbmNlIGZvciBhcnJheS10YWJsZXMKICAgCjIwMDItMTItMTcgMDc6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4OyBhZGQgQVNOX1RJTUVUSUNLUyB3L0FTTl9VTlNJR05FRCBjYXNlcwogICAKMjAwMi0xMi0xNyAwNjo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZG9uJ3QgdXNlIFNPX1JFVVNFX0FERFIgc28gYWdlbnQgcG9ydCBjYW4ndCBiZSBoaWphY2tlZAogICAKMjAwMi0xMi0xNyAwNjo0MyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSBsb2NhbCB2YXIgZm9yIGJhc2UgYWdlbnQgbGliczsgcmVvcmRlciBiYXNlIGFnZW50IGxpYnMgc28gc3RhdGljIGxpbmtpbmcKICAgd29ya3MKICAgCjIwMDItMTItMTYgMTU6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIFlldCBhbm90aGVyIGNvbXBpbGVyIHdhcm5pbmcgLi4uCiAgIAoyMDAyLTEyLTE2IDE0OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICByZW1vdmUgYm9ndXMgY29tbWVudCByZWZlcmVuY2UgdG8gdGFibGVfZGF0YXNldCBoZWxwZXIuCiAgIAoyMDAyLTEyLTE2IDE0OjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIGFwcHMvc25tcHRyYXBkLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jCjoKCiAgIFNwcmVhZCBzb21lIG1hZ2ljIGR1c3QgdG8gcXVlbGwgY29tcGlsZXIgd2FybmluZ3MgKHdoeSBpc24ndCAtLWVuYWJsZS1zbGllbnQtbGlidG9vbCB0aGUgZGVmYXVsdCAuLi4pCiAgIAoyMDAyLTEyLTE2IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsgKHBlZXJuYW1lIGlzIGNvcGllZCBieSBzbm1wX29wZW5fZXgpCiAgIAoyMDAyLTEyLTE2IDA4OjMxICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDA4OjE5ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMDc6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBpbmNsdWRlIChjYXVzZWQgcHJvYmxlbXMgb24gU3VuIDUuNywgcmVwb3J0ZWQgYnkgamJwbikKICAgCjIwMDItMTItMTYgMDU6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgdy9vdXQgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE2IDA1OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBERVZGTEFHUz0iIiBpZiBub3QgZGV2ZWxvcGVyCiAgIAoyMDAyLTEyLTE1IDIzOjM5ICBuYmEKCiAgICogc25tcGxpYi86IG9pZF9zdGFzaC5jLCBzY2FwaS5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5jCiwgc25tcElQWERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTE1IDIzOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQb3NzaWJsZSBsZWFrIG9mIGZkIG9uIGVycm9yIHJldHVybgogICAKMjAwMi0xMi0xNCAwNzoyMiAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUxICkKICAgCjIwMDItMTItMTQgMDc6MjEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCjIwMDItMTItMTQgMDY6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYWdlbnQvbWliZ3JvdXA7IGZpeCBtb2R1bGVzIGZvciBjb25maWdfZGlzdAogICAKMjAwMi0xMi0xNCAwNjo1OCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwNjo1NCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGJ1bXAgcmV2IHRvIDUuMC43CiAgIAoyMDAyLTEyLTE0IDA2OjQ5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLW4gdG8gZ3JlcCBmb3IgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA2OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMTQgMDY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDY6MzAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGFkZCBjb21tZW50cyB0byBzb21lIHN0cnVjdHVyZSBtZW1iZXJzCiAgIAoyMDAyLTEyLTE0IDA2OjI5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgZXJyb3JzIGR1cmluZyBjb21taXQgdW5kbyBzaG91bGQgYmUgeHhGQUlMRUQ7IHVzZSBzZXRfcmVxdWVzdF9lcnJvciBpbnN0ZWFkIG9mCiAgIHNldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudDsgbW9yZSBkZWJ1Z2dpbmc7IGNoZWNrIGZvcgogICBhbmQgY2FsbCBsb3dlciBoYW5kbGVycwogICAKMjAwMi0xMi0xNCAwNjoyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFsd2F5cyBwcm9jZXNzIGxhdGVyIHBhc3NlcyBvZiBhIHNldCByZXF1ZXN0CiAgIAoyMDAyLTEyLTEzIDEzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDEyOjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDEyOjQwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IGluY29tcGxldGUgemVyb2luZyBvZiBzZWN1cml0eSBkYXRhCiAgIAoyMDAyLTEyLTEzIDEyOjM5ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IGEgcG9zc2libGUgZnJlZWluZyBvZiBhIE5VTEwgcG9pbnRlcgogICAKMjAwMi0xMi0xMyAxMjozOCAgbmJhCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAwODozOCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQ2xlYXIgdGhlICdwcm9jZXNzZWQnIGZsYWcgYmV0d2VlbiBwYXNzZXMsIHNvIHRoYXQgaGFuZGxlcnMKICAgY2FuIGNvcnJlY3RseSBjbGVhbiB1cCBhZnRlciBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkLgogICAKMjAwMi0xMi0xMyAwODowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWRkIGFzc2VyIHRvIHRyeSBhbmQgY2F0aCBpbnRlcm1pdHRlbnQgY3Jhc2ggaSd2ZSBiZWVuIHNlZWluZwogICAKMjAwMi0xMi0xMyAwODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGxvZyB1bmtub3duIGFnZW50eCBvcGVyYXRpb24KICAgCjIwMDItMTItMTMgMDc6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZiBubyByb3cgY3JlYXRlIGNhbGxiYWNrIG9uIHNldCwgdXNlIE5PVFdSSVRBQkxFIGluc3RlYWQgb2YgTk9TVUNISU5TVEFOQ0UKICAgCjIwMDItMTItMTMgMDc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBzbyBkZWxlZ2F0ZWQgZmxhZyBkaXNwbGF5ZWQgcHJvcGVybHkKICAgCjIwMDItMTItMTMgMDc6MDEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIGxvZyB0ZXh0IChBUFB8TElCfFRPSykgaW5zdGVhZCBvZiBzdG9yZSBpZCBpbiBkZWJ1ZyBtc2dzCiAgIAoyMDAyLTEyLTEzIDA2OjUzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIC0td2l0aC1saWJ3cmFwCiAgIAoyMDAyLTEyLTEzIDA2OjQ5ICByc3RvcnkKCiAgICogRkFROgoKICAgZ3JhbW1hci9pbmRlbnRpb24gdHdlYWsgKyBtZW50aW9uIHN0cmlwIGZvciBtZW1vcnkgZm9vdHByaW50IHF1ZXN0aW9uCiAgIAoyMDAyLTEyLTEzIDA2OjMyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgZXhwbGljaXQgbWVudGlvbiBvZiBTTk1QIG1vZHVsZSBkb2N1bWVudGF0aW9uLgogICBUaGlzIHNldHRpbmcgZG9lc24ndCBzZWVtIHRvIGJlIG5lY2Vzc2FyeSwgYW5kIHdpdGhvdXQgaXQsCiAgIHRoZSBtYW4gcGFnZSBpcyBpbnN0YWxsZWQgYXV0b21hdGljYWxseS4KICAgCjIwMDItMTItMTMgMDQ6NDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIC1TIGRvIHRoZSBzYW1lIGFzIHNubXBkIC1TIChzZXQgdGhlIHN5c2xvZyBmYWNpbGl0eSkKICAgICAtIG1ha2UgLWwgcHJpbnQgYSB3YXJuaW5nIHNheWluZyB0aGF0IGl0IGlzIGRlcHJlY2F0ZWQgYW5kIC1TIHNob3VsZAogICAgICAgYmUgdXNlZCBpbnN0ZWFkCiAgIAoyMDAyLTEyLTEzIDA0OjE0ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBpbmNyZWFzZSB3aWR0aCBvZiB0b2tlbiBmaWVsZCB0byBpbXByb3ZlIGxlZ2liaWxpdHkgb2YKICAgICAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlIGhlbHAgb3V0cHV0CiAgIAoyMDAyLTEyLTEyIDE0OjQ2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmtub3duIC1PIG9wdGlvbnMKICAgCjIwMDItMTItMTIgMTI6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzb21lIHNpemVfdCB0aGF0IHJlYWxseSBzaG91bGQgYmUgaW50CiAgIAoyMDAyLTEyLTEyIDExOjE4ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIEEgbG9uZyBvdmVyZHVlIHBhdGNoICgjNDE1MjUyKSBmcm9tIFJvYmVydCBIYXN0aW5ncyB0aGF0IGltcGxlbWVudHMKICAgcmV2ZXJzZSBESVNQTEFZLUhJTlQgcHJvY2Vzc2luZywgaS5lLiBpdCBhbGxvd3MgeW91IHRvIGlucHV0IGRhdGEKICAgZm9ybWF0dGVkIGxpa2UgdGhlIERJU1BMQVktSElOVCBwcmVzY3JpYmVzLiBFbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dAogICBjYW4gYmUgZGlzYWJsZWQgd2l0aCB0aGUgLUloIG9wdGlvbiBvciBub0Rpc3BsYXlIaW50IGluIHNubXAuY29uZgogICAKMjAwMi0xMi0xMiAxMDo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcGFyc2Ugb2lkcyBpbiB2aWV3IHN0YXRlbWVudHMgdGhlIHNhbWUgd2F5IHRoZSBhcHBzIGRvIGl0IChjb25zaXN0ZW5jeSwgaGUgc2FpZCkKICAgCjIwMDItMTItMTIgMTA6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBBZGQgYSBnZXRSb290T0lEIGZ1bmN0aW9uIHRvIHRoZSByZWdpbmZvIHBvaW50ZXIgcGFzc2VkIGludG8gaGFuZGxlcnMuCiAgIAoyMDAyLTEyLTEyIDEwOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY2hhbmdlIGNyZWF0ZSBhbmQgZHVwbGljYXRlIHJvdyB0byByZXR1cm4gc3BlY2lmaWMgY29udGV4dCBpbnN0ZWFkIG9mIGdlbmVyaWMKICAgbmV0c25tcF9pbmRleDsgY2F0Y2ggZXJyb3IgZnJvbSBwYXJzZV9vaWRfaW5kZXhlcyBvbiByb3cgY3JlYXRpb24KICAgCjIwMDItMTItMTIgMTA6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgUHJpbnQgZXJyb3JzIHRvIFNUREVSUiBpbnN0ZWFkLgogICAgIChhY3R1YWxseSBkb24ndCBiZWNhdXNlIHRoZXNlIHN0YXRlbWVudHMgYXJlIGNvbW1lbnRlZCBvdXQgaW4gdGhlCiAgICAgZmlyc3QgcGxhY2UpCiAgIAoyMDAyLTEyLTEyIDEwOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmV2ZXJzZSB0aGUgY29udGV4dCBvZiBhIGNvbnRleHQgaWYgc3RhdGVtZW50IHNvIGlmIG5vdCB0aGUgY29udGV4dAogICB0aGVuIGRvbid0IHVzZSB0aGUgY29udGV4dCBpbiB0aGUgZ2l2ZW4gY29udGV4dC4KICAgCjIwMDItMTItMTIgMDk6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBkcm9wIGxvbmctZGVwcmVjYXRlZCAtcSBhbmQgLVMgb3B0aW9ucwogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0xMi0xMiAwOTozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIG1lc3NhZ2UgaW4gdXNhZ2UKICAgCjIwMDItMTItMTIgMDg6MzcgIGR0czEyCgogICAqIG1hbi9zbm1wZC4xLmRlZiwgYWdlbnQvc25tcGQuYzoKCiAgIEltcGxlbWVudCBhIGNvbW1hbmQtbGluZSBvcHRpb24gKC1TKSB0byBzZXQgdGhlIGZhY2lsaXR5IHRvIHVzZSB3aGVuCiAgIGxvZ2dpbmcgdmlhIHN5c2xvZy4gICBCYXNlZCBvbiBhbiBpZGVhIGJ5IEpvZWwgUm9zZGFobCAoUGF0Y2ggIzYyNzcwMSkKICAgTm90ZSB0aGF0IC1sIGFuZCAtTCBhcmUgYWxyZWFkeSB0YWtlbjotKAogICAKICAgVG9EbzoKICAgICBQcm92aWRlIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBmb3IgYm90aCB0aGlzLCBhbmQgdGhlIHN5c2xvZyB0b2tlbiAoJ3NubXBkJykuCiAgIAoyMDAyLTEyLTEyIDA4OjE4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIFN1cHBvcnQgc2V0dGluZyBvZiBzeXNEZXNjciBhbmQgc3lzT2JqZWN0SUQgdmlhIHNubXBkLmNvbmYKICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzICh0aG91Z2ggbm90IHZpYSBTTk1QIFNFVCByZXFlc3RzKS4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc3MDIgYW5kICM2MjgwMTEpCiAgIAoyMDAyLTEyLTEyIDA3OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgdGFibGUuYzoKCiAgIFN1cHByZXNzIHNvbWUgY29tcGlsZXIgd2FybmluZ3MuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zICgjNjQ0MDQxKQogICAKMjAwMi0xMi0xMiAwNzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIFVzZSAnc3lzY29uZicgdG8gcmVwb3J0IG9uIFNvbGFyaXMgbWVtb3J5IHVzYWdlLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBCZW4gU3Rlcm4gKCM2NTExODIpCiAgIAoyMDAyLTEyLTEyIDA3OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBCYXNpYyBzdXBwb3J0IGZvciBtdWx0aXBsZSBBZ2VudFggc29ja2V0cyAob24gdGhlIG1hc3RlciBzaWRlIGF0IGxlYXN0KS4KICAgU2VlIEZlYXR1cmUgUmVxdWVzdCAjNjMyNTU2CiAgIAoyMDAyLTEyLTEyIDA1OjU3ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGNyZWF0ZSB2ZXJzaW9uIHRhZyBmcm9tIHZlcnNpb24gc28gY3ZzIGV4cG9ydCB3b3JrczsgZml4IFJFTDsgYWRkIHRhci5negogICBvZiBzb3VyY2UgYXMgZGVwZW5kZW5jeSBmb3IgcnBtZmlsZXMKICAgCjIwMDItMTItMTIgMDU6MDQgIG5iYQoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfZW51bS5jLCBzbm1wX3NlY21vZC5jLCBzbm1wX3RyYW5zcG9ydC5jCjoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xMiAwNDoxOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvY3VtZW50IHRoZSAtT1Ugb3B0aW9uLCBhbmQgYWxwaGFiZXRpc2UgdGhlIGhhbmRsaW5nIG9mIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEyIDAzOjI1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCAnc25tcGluZm9ybScgYXMgYSByZWxhdGl2ZSBsaW5rLCByYXRoZXIgdGhhbiBhbiBhYnNvbHV0ZSBvbmUuCiAgIEZpeCBwcm92aWRlZCBieSB0aGUgaW5kZWZhdGlnYWJsZSBTdGVmYW4gUmFkbWFuIChCdWcgIzY1MjU4NykKICAgCjIwMDItMTItMTIgMDI6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUXVvdGUgY29uZmlndXJlIG9wdGlvbnMgd2hlbiBjb250cnVjdGluZyBuZXQtc25tcC1jb25maWd1cmUgYW5kIG5ldC1zbm1wLWNvbmZpZ3VyZS5oCiAgIFRoaXMgYWxsb3dzIG9wdGlvbnMgY29udGFpbmluZyBzcGFjZXMsIGV0YywgdG8gYmUgaGFuZGxlZCBjb3JyZWN0bHkuCiAgIChTZWUgRmVhdHVyZSBSZXF1ZXN0ICM1NDcxNTIpCiAgIAoyMDAyLTEyLTExIDEzOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBQYXRjaCBmb3IgRnJlZUJTRC4gVGhhbmtzIHRvIEp1biBLdXJpeWFtYQogICAKMjAwMi0xMi0xMSAwOToxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0yLXBhdGNoZXMuNCksIHNubXBfbG9nZ2luZy5jOgoKICAgVHJ5IGRpc2FibGluZyBsaW5lLWJ1ZmZlcmluZyBvbiBXaW5kb3dzIHN5c3RlbXMgKHNpbmNlIGl0CiAgIGFwcGFyZW50bHkgZW5hYmxlcyBmdWxsLWJ1ZmZlcmluZyBpbnN0ZWFkKS4gIFNlZSBCdWcgIzU1ODgzNy4KICAgCjIwMDItMTItMTEgMDg6MjUgIGR0czEyCgogICAqIHBlcmwvU05NUC90LzogYXN5bmMudCwgZ2V0LnQsIGdldG5leHQudCwKICAgbm90aWZ5LnQsIHNldC50OgoKICAgRXhwbGljaXRseSBzZXQgU05NUCB2ZXJzaW9uID0gMSAodGhlIG9yaWdpbmFsIGRlZmF1bHQgYXMgZXhwZWN0ZWQgYnkgdGhlIHRlc3RzKQogICBUaGlzIHNob3VsZCBub3cgcGFzcyBhbGwgdGVzdHMgYXBhcnQgZnJvbSBjb25mLnQgIzMKICAgCjIwMDItMTItMTEgMDM6NDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgQmUgbW9yZSBzZWxlY3RpdmUgaW4gdXNpbmcgdGhlIDY0LWJpdCB2ZXJzaW9uIG9mIG5saXN0LiAoQnVnICM2MTE2NTUpCiAgIAoyMDAyLTEyLTExIDAzOjI3ICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIG5vbi1mdW5jdGlvbmFsaXR5IG9mIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIGFwcHJvYWNoZXMuCiAgIChCdWcgIzYxNzExOSkuICAgUmVwb3J0ZWQgYnkgUXVhbmFoIEdpYnNvbi1Nb3VudAogICAKMjAwMi0xMi0xMSAwMzoyMCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhhdCB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyB0aGUKICAgZW1iZWRkZWQgcGVybCBzY3JpcHQuICAoQnVnICM2MTc4OTEpIEZpeCBwcm92aWRlZCBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMi0xMi0xMSAwMjo1NiAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MyAoVjQtMi1wYXRjaGVzLjQpLCBSRUFETUUuc25tcHYzOgoKICAgRG9jdW1lbnQgdGhlIGxvY2F0aW9uIGFzc3VtcHRpb25zIGJlaW5nIG1hZGUgaW4gdGhpcyBkZXNjcmlwdGlvbi4KICAgCjIwMDItMTItMTEgMDE6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBmb3JjaW5nIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGluIGVpdGhlcgogICBBU0NJSSBvciBIZXggZm9ybWF0LCBieXBhc3NpbmcgdGhlICJndWVzcyIgbWVjaGFuaXNtIGFzIHRvIHdoaWNoCiAgIGlzIG1vcmUgYXBwcm9wcmlhdGUuICAgU3VnZ2VzdGVkIGJ5IE5pY2sgS2FuYWtha29ybi4KICAgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhZmZlY3Qgb2JqZWN0cyB3aXRoIGEgRGlzcGxheS1IaW50IGluCiAgIHRoZWlyIE1JQiBkZWZpbml0aW9uLgogICAKMjAwMi0xMi0xMSAwMTozMCAgZHRzMTIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoCiAgIChWNC0yLXBhdGNoZXMuWzIsNiw2XSksIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgQ29tbWFuZC1saW5lIG9wdGlvbiB0byBjb250cm9sIHdoZXRoZXIgdG8gdW5saW5rIHRoZSBQSUQgZmlsZSBvciBub3QuCiAgIE5lY2Vzc2FyeSBmb3IgY29ycmVjdCB0ZXN0IG9wZXJhdGlvbi4KICAgCjIwMDItMTItMTEgMDE6MjEgIGR0czEyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBUaGUgbGF0ZXN0IGxpYnJhcnkgZGVmYXVsdHMgdG8gTU9EVUxFOjpuYW1lIHN0eWxlIG91dHB1dCwKICAgc28gYWRqdXN0IHRoZSBleHBlY3RlZCBvdXRwdXQgY2hlY2tzIGFjY29yZGluZ2x5LgogICBBbHNvLCB0aGVyZSBhcmUgYWN0dWFsbHkgMzYgdGVzdHMsIG5vdCAzNSEKICAgCjIwMDItMTItMTEgMDE6MTcgIGR0czEyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIEluaXRpYWxpc2UgdGhlIFNOTVAgbGlicmFyaWVzLCB0byBzZXQgdXAgdGhlIE9JRCB0cmVlLgogICBBZGRyZXNzZXMgYnVncyAjNjM4MDI0IGFuZCAjNjI3NjQzCiAgICAgW1FuOiBEbyB3ZSBuZWVkIHRvIHN1cHBseSBhbiAnYXBwbmFtZScgKGMuZCB0aGUgU05NUCBtb2R1bGUpID9dCiAgIAoyMDAyLTEyLTEwIDE2OjI5ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBBbGxvdyBydW50aW1lIGNvbmZpZ3VyYXRpb24gb2YgcGVyc2lzdGVudCBkaXJlY3RvcnkKICAgCjIwMDItMTItMTAgMTY6MjQgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXBvcnQgZXJyb3JzIGhhbmRsaW5nIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcwogICAKMjAwMi0xMi0xMCAxNjoyMyAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBQYXNzIHVwIGVycm9yIG9uIGRpcmVjdG9yeSBjcmVhdGlvbgogICAKMjAwMi0xMi0xMCAxNDoyNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCZXR0ZXIgcmVzcGVjdCBmb3IgdGhlIG1heCB3aWR0aCBvcHRpb24gKHNubXB0cmFuc2xhdGUgLVRkKQogICAKMjAwMi0xMi0xMCAxNDoyNiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgb2lkT3V0cHV0Rm9ybWF0IG9wdGlvbgogICAKMjAwMi0xMi0xMCAxNDoyNSAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDbGVhbiB1cC4gUmVtb3ZlIGNhbGxzIHRvIG9ic29sZXRlIGZ1bmN0aW9ucyBzbm1wX3NldF9xdWlja19wcmludCwKICAgc25tcF9nZXRfZHVtcF9wYWNrZXQsIHNubXBfZ2V0X3N1ZmZpeF9vbmx5LiBSZW1vdmUgbGFzdCB0cmFjZXMgb2YgdGhlCiAgIG5vbl9zZXF1ZW50aWFsIGJhY2t3YXJkcyBoYWNrLiBNYWtlIHN1cmUgaXQgd29ya3MgZm9yIGFsbCAtTyBvcHRpb25zLgogICAKMjAwMi0xMi0xMCAwODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgaW50ZXJmYWNlcy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGVtcHR5IGxpbmVzIGluIC9wcm9jL25ldC9kZXYgIChCdWcgIzYyNTQyNikKICAgCjIwMDItMTItMTAgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdjMuYzoKCiAgIEZyZWUgZGVzdGluYXRpb24gbWVtb3J5IGJlZm9yZSBjbG9uaW5nIFNOTVAgRW5naW5lIElELgogICBGaXggcHJvdmlkZWQgYnkgTWFydGluIENhcmxzc29uLiAgKEJ1ZyAjODM1NDgxKQogICAKMjAwMi0xMi0xMCAwODowNyAgZHRzMTIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBBZGQgIiRDb25maWd7Y2NmbGFnc30iIHRvIENDRkxBR1MuICAgKFNlZSBidWcgIzY0MDg5OSkKICAgCjIwMDItMTItMTAgMDc6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY0LTItcGF0Y2hlcy44KSwgaXBBZGRyLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgTGludXggdmlydHVhbCBpbnRlcmZhY2VzIGluIHRoZSBpcEFkZHJlc3NUYWJsZS4KICAgKE5vdGUgdGhpcyBkb2VzICpub3QqIGluY2x1ZGUgc2VwYXJhdGUgcGVyLXYtaW50ZXJmYWNlIHN0YXRpc3RpY3MKICAgIGluIHRoZSBpbnRlcmZhY2VzIHRhYmxlKS4KICAgCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEplbnMgU2l0dG5lciAoIzYyMTI3NCkKICAgCjIwMDItMTItMTAgMDE6NTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiBleHRyYW5lb3VzIF5NIGNoYXJhY3RlcnMuCiAgIAoyMDAyLTEyLTA5IDIzOjM2ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdoZW4gdXNpbmcgLU9xdiBhbmQgcHJpbnRpbmcgYW4gZW1wdHkgc3RyaW5nIHlvdSBjb3VsZCBlbmQgdXAgd2l0aAogICBhIE5VTEwgc3RyaW5nIGFuZCBub3QgYW4gZW1wdHkgc3RyaW5nIGxlYWRpbmcgdG8gc29tZSB2ZXJ5IG9ic2N1cmUKICAgcHJvYmxlbXMgaW4gc25tcHRhYmxlIGFuZCBvdGhlciBhcHBsaWNhdGlvbnMuCiAgIAoyMDAyLTEyLTA5IDA4OjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBIYW5kbGUgbWlzc2luZyBpbnRlZ2VyIHZhbHVlcyAod2hldGhlciAzMi0gb3IgNjQtYml0ISkuICAgT29wcyEKICAgCjIwMDItMTItMDkgMDc6MTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmM6CgogICBIYW5kbGUgaW50ZWdlci1iYXNlZCB2YWx1ZXMgY29ycmVjdGx5IG9uIGEgNjQtYml0IHBsYXRmb3JtLgogICBQYXRjaCBzdXBwbGllZCBieSBUaG9tYXMgV2ViZXIgKCM1NjEwNzEpCiAgIAoyMDAyLTEyLTA5IDA2OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBUYWtlIG5vdGUgb2Ygc3ViYWdlbnQtcmVxdWVzdGVkIGJ5dGUgb3JkZXJpbmcgaW4gc3Vic2VxdWVudCBjb21tdW5pY2F0aW9ucy4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVXJiYW4gKCM2MzIyODQpCiAgIAoyMDAyLTEyLTA5IDA2OjMyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcGQuYzoKCiAgIFJlbW92ZSB0aGUgUElEIGZpbGUgb24gYWdlbnQgc2h1dGRvd24uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzY5OSkKICAgCjIwMDItMTItMDkgMDY6MjUgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBIYW5kbGUgJ3N0cnVjdCBzb2NrYWRkcicgdGhhdCBjb250YWluICdzYV9sZW4nIGZpZWxkcyBkaWZmZXJlbnRseQogICB0byB0aG9zZSB0aGF0IGRvbid0IChjLmYgaWZpbHRlcl9pb2N0bC5jIGluIEJJTkQgOS4yLjEgc291cmNlcykKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk2KQogICAKMjAwMi0xMi0wOSAwNDoxMiAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZWNvZ25pc2UgQlNEaTQsIGFuZCB0d2VhayB0aGUgcmVjb2duaXRpb24gb2YgJ2Rsb3BlbicuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsLgogICAKMjAwMi0xMi0wOSAwMzoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMKOgoKICAgUmVtb3ZlIHNvbWUgd2FybmluZ3MsIGFuZCB0cnkgdG8gY29wZSB3aXRoICdzeXNjdGwnIGZhaWx1cmVzLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IENocmlzIEpvaG5zLgogICAKMjAwMi0xMi0wOSAwMToyMCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBsaW1pdGF0aW9ucyBvbiAvdXNyL3VjYi9zZWQsCiAgIGFuZCBwb2ludCBwZW9wbGUgdG93YXJkcyAvdXNyL2Jpbi9zZWQgaW5zdGVhZC4KICAgCjIwMDItMTItMDcgMDU6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgSW5zZXJ0IG5ld2x5LWNyZWF0ZWQgcm93cyBpbnRvIHRoZSBwZXItcmVxdWVzdCBsaXN0cywgc28gdGhhdCBsb3dlcgogICBsZXZlbCBoYW5kbGVycyBjYW4gYWNjZXNzIHRoZW0uCiAgICAgW1FuOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIHNpbWlsYXIgd2l0aCB1cGRhdGVkIGxpc3RzIGFzIHdlbGw/XQogICAKMjAwMi0xMi0wNyAwNTozNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZXBvcnQgYmFjayB0aGUgY29ycmVjdCBlcnJvciBmb3Igcm93cyB0aGF0IGNvdWxkbid0IGJlIGNyZWF0ZWQuCiAgIAoyMDAyLTEyLTA3IDA1OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmcmVlaW5nIGEgcm93IHRoYXQgbmV2ZXIgZ290IGNyZWF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgogICAKMjAwMi0xMi0wNiAxNTowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgU2tpcCBvbiBub24tb3BlbnNzbCBtYWNoaW5lcy4gIFRIaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8ganVzdCBub3QgdXNpbmcgZW5jcnlwdGlvbiBvbiB0aG9zZSBtYWNoaW5lcywgYnV0IEkgZG8gbm90IGhhdmUgdGhlIHRpbWUgYXQgdGhlIG1vbWVudAogICAKMjAwMi0xMi0wNiAxMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVtb3ZlIHVjZERlbW9QdWJsaWMgZnJvbSAtLWVuYWJsZS1taW5pLWFnZW50CiAgIAoyMDAyLTEyLTA2IDEwOjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMDk6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgZGVsZXRlIHRoZSAib2xkIiAobm9uLWV4aXN0ZW50KSByb3csIHdoZW4gdGlkeWluZyB1cCBhZnRlcgogICBjcmVhdGluZyBhIG5ldyByb3cuCiAgIAoyMDAyLTEyLTA2IDA4OjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFR3ZWFrIGhhbmRsaW5nIG9mIChpbnZhbGlkKSBSb3dTdGF0dXMgY3JlYXRpb24gcmVxdWVzdHMgaW4gYW4KICAgImF1dG9tYXRpYyBjcmVhdGlvbiIgdGFibGUuICAgVGhlc2Ugc2hvdWxkIHJldHVybiB3cm9uZ1ZhbHVlIG9yCiAgIGluY29uc2lzdGVudFZhbHVlLCByYXRoZXIgdGhhbiBub3RXcml0YWJsZS4KICAgCjIwMDItMTItMDUgMDI6NDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3VwcG9ydCB1c2Ugb2YgUm93U3RhdHVzIG9iamVjdCB0byBjb250cm9sIGNyZWF0aW9uIG9mIG5ldyByb3dzCiAgIChpLmUuIHdoZW4gdGhlICdhbGxvd19jcmVhdGlvbicgZmxhZyBpcyBub3Qgc2V0KS4KICAgVGhpcyBzaG91bGQgZGVhbCB3aXRoIGV2ZXJ5dGhpbmcgZXhjZXB0IGRldGVybWluaW5nIHdoZXRoZXIgYQogICByb3cgaXMgcmVhZHkgdG8gZ28gJ2FjdGl2ZScgKGUuZy4gdmlhICdjcmVhdGVBbmRHbycpLiAgU3VjaCBhCiAgIGRlY2lzaW9uIGlzIGluaGVyZW50bHkgc3BlY2lmaWMgdG8gZWFjaCBpbmRpdmlkdWFsIE1JQiwgc28gbXVzdAogICByZWFsbHkgYmUgZG9uZSBpbiB0aGUgbG93ZXItbGV2ZWwgaGFuZGxlci4KICAgCjIwMDItMTItMDUgMDI6NDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgU3RvcCBwcm9jZXNzaW5nIHdoZW4gYSAnbm9uLXdyaXRhYmxlIGNyZWF0ZScgaXMgZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTA0IDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAtIEJJVF9TVFIgLT4gT0NURVRfU1RSLCB3aGljaCBpcyB3aGF0IGl0IHNob3VsZCBiZS4KICAgLSBydW4gZXZlbnRUYWJsZSBlbnRyaWVzLgogICAKMjAwMi0xMi0wNCAxNjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jOgoKICAgQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAKMjAwMi0xMi0wNCAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYzoKCiAgIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCB0byBnZXQgcmVhbCBzdHJpbmdzIGZyb20gbWliIGRhdGEuCiAgIAoyMDAyLTEyLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwKICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgKLCBtdGVFdmVudFRhYmxlLmMsIG10ZUV2ZW50VGFibGUuaDoKCiAgIC0gaW1wbGVtZW50ZWQgdGhlIG10ZUV2ZW50VGFibGUgYW5kIHRoZSBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlCiAgICAgLSBGWUksIHRvdGFsIGltcGxlbWVudGF0aW9uIHRpbWU6IGFib3V0IDQgaG91cnMKICAgICAtIG5vIGVhc3ktdG8tdXNlIC5jb25mIHdyYXBwZXJzIHlldCB0aG91Z2guICBzbm1wc2V0IHN1cHBvcnQgb25seS4KICAgCjIwMDItMTItMDQgMTY6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICAtIHVzZSB0aGUgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24gd2hpY2ggYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTEyLTA0IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICAtIGNyZWF0ZSBhIG5ldHNubXBfdGFibGVfc2V0X2FkZF9pbmRleGVzIGZ1bmN0aW9uLgogICAtIEFsbG93IHJvdyBjcmVhdGlvbiB1c2luZyByb3dTdGF0dXMgd2hlbiB0aGUgZGF0YSBjb2x1bW4gZXhpc3RzLCBidXQKICAgICB0aGVyZSBpcyBubyBhc3NpZ25lZCB2YWx1ZSAoaWUsIGlzIE5VTEwpLgogICAtIHVzZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbCBpbnN0ZWFkIG9mIG1lbWR1cCB0byBtYWtlIHN1cmUgYW4KICAgICBpbXBsaWNpdCBOVUxMIGlzIGluIHBsYWNlIGZvciB0aGluZ3MgdGhhdCB1c2UgdGhlIGRhdGEgYW5kIG5lZWQgaXQKICAgICBhcyBhIHJlYWwgc3RyaW5nLgogICAKMjAwMi0xMi0wNCAxNjoyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZG9jdW1lbnQgLS1wcmVmaXgKICAgCjIwMDItMTItMDQgMTA6MTYgIGhhcmRha2VyCgogICAqIE5FV1MgKFY0LTItcGF0Y2hlcy45KSwgTkVXUzoKCiAgIGRvY3VtZW50IDQuMi42CiAgIAoyMDAyLTEyLTAzIDAxOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBDbG9zZSBwcmludGVyIGZpbGUgaGFuZGxlIHdpdGggJ2ZjbG9zZScgcmF0aGVyIHRoYW4gJ3BjbG9zZScgdG8gYXZvaWQKICAgYSBtZW1vcnkgbGVhayBvbiBTb2xhcmlzIDIuNi4gICBGaXggcHJvdmlkZWQgYnkgSmFjb2JvIE1hdHV0ZS4KICAgCjIwMDItMTItMDMgMDE6MzMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhLmMsIHRhYmxlX2RhdGFzZXQuYzoKCiAgIFRyYW5zbGF0ZSBHZXROZXh0IChhbmQgR2V0QnVsaykgcmVxdWVzdHMgaW50byBzaW1wbGUgR2V0IHJlcXVlc3RzLAogICB3aGVuIHBhc3NpbmcgdGhlbSBmcm9tIHRoZSB0YWJsZV9kYXRhIGhhbmRsZXIgdG8gdGFibGVfZGF0YXNldC4KICAgICBUaGlzIGlzIGFuYWxvZ291cyB0byBob3cgdGhlIGl0ZXJhdGUgaGFuZGxlciB3b3JrcywgYW5kIGFsbG93cwogICBsb3dlciBsZXZlbCBoYW5kbGVycyB0byBvdmVycmlkZSB0aGUgYmFzaWMgYmVoYXZpb3VyICh3aXRob3V0CiAgIGhhdmluZyB0byBkdXBsaWNhdGUgYWxsIG9mIHRoZSAiZmluZCBuZXh0IHJvdyIgY29kZSBldmVyeSB0aW1lKS4KICAgCjIwMDItMTItMDIgMDE6NDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJldHVybiBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucywgcmF0aGVyIHRoYW4gdGhlIFNOTVB2MSAnbm9TdWNoTmFtZScgZXJyb3IuCiAgIFRoaXMgdXNlZCB0byBicmVhayBBZ2VudFggc3ViYWdlbnRzLCBidXQgdGhlIGxhdGVzdCBjaGFuZ2UgdG8gc25tcF9hZ2VudC5jCiAgICh0byBjYXRjaCBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zKSBzZWVtcyB0byBoYXZlIGZpeGVkIHRoYXQgcHJvYmxlbS4KICAgCjIwMDItMTItMDIgMDE6NDAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEV4cGxpY2l0bHkgcGFyZW50aGVzaXNlIGEgY29tcGFyaXNvbiwgdG8ga2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuCiAgIAoyMDAyLTEyLTAyIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbmNsdXNpdmUtcmFuZ2UgR2V0TmV4dCByZXF1ZXN0cyBhcmUgdHJhbnNtaXR0ZWQgYXMgR2V0IHJlcXVlc3RzLCBzbyBtYXkKICAgd2VsbCByZXR1cm4gbm9TdWNoe0luc3RhbmNlLE9iamVjdH0gZXhjZXB0aW9ucy4gIENhdGNoIHRoZXNlIGFzIHdlbGwuCiAgIAoyMDAyLTEyLTAyIDAxOjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIENhdGNoIChhbmQgcmVqZWN0KSBhdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgcm93IHZpYSBhIG5vbi13cml0YWJsZSBvYmplY3QuCiAgIAoyMDAyLTExLTI4IDAxOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBOdWxsIG91dCBvbmUgZmluYWwgbG9vcF9jb250ZXh0IHBvaW50ZXIgYWZ0ZXIgYmVpbmcgZnJlZWQuCiAgIChQYXRjaCBwcm92aWRlZCBieSBSb2dlciBNY0NhbG1hbikKICAgCjIwMDItMTEtMjYgMTQ6NTkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBEaXNjYXJkIHRoZSBzZWNvbmRhcnkgKEdST1VQKSBERVNDUklQVElPTiBpbnNpemUgYSBNT0RVTEUtQ09NUExJQU5DRQogICB0byBhdm9pZCBsZWFraW5nIG1lbW9yeS4gVGhhbmtzIHRvIEV1Z2VuZV9CcnVrQGJtYy5jb20KICAgCjIwMDItMTEtMjYgMTQ6NTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFJlaW5zdGF0ZSB0aGUgLXcgb3B0aW9ucyB0aGF0IHdhcyBsb3N0IGluIHRoZSBpbmRlbnQgZnVyeQogICAKMjAwMi0xMS0yNiAwNzo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBUaGUgbm90aWZpY2F0aW9uIHZhcmlhYmxlIHNob3VsZG4ndCBiZSBzdGF0aWMuICBBIGJ1ZyBmb3VuZCB3aGlsZQogICB0cmFja2luZyBkb3duIGEgcHJvYmxlbSBwb2ludGVkIG91dCBieSBWZW5pY2Ugb24gSVJDLgogICAKMjAwMi0xMS0yNiAwMToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIEZpeCBpbmNvcnJlY3QgdXNhZ2Ugb2YgU0VfTUFYX0lEUyB2cyBTRV9NQVhfU1VCSURTLgogICBSZXBvcnRlZCBieSAnc2hpbmVwZWFrJwogICAKMjAwMi0xMS0yNSAxOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBoYWNrIG9mIGEgaGFjayBvZiBhIGhhY2ssIG9yOiBmaXggbXVsdGktbGluZSBGQVEgcXVlc3Rpb25zCiAgIAoyMDAyLTExLTI1IDA3OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDItMTEtMTggMTg6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgYXBwbGllZCBwYXRjaCAjNTI3NjUwCiAgIAoyMDAyLTExLTExIDE0OjEwICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlc3BlY3QgdGhlIG1pYmRpcnMgY29uZiBkaXJlY3RpdmUuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0xMSAxMzo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGEgbWlzc2luZyBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMTEgMTE6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIGZpeCB0YWRkciBnZW5lcmF0aW9uL3BhcnNpbmcgZm9yIHBvcnQgYmFzZWQgdHJhbnNwb3J0cyB0byBwcm9wZXJseSB1c2UKICAgbmV0d29yayBieXRlIG9yZGVyaW5nLgogICAKMjAwMi0xMS0xMSAxMToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIGZpeCB3cml0ZSBzdXBwb3J0IGZvciB0aGUgdGltZW91dCBjb2x1bW4KICAgCjIwMDItMTEtMDkgMDc6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgRG8gYXdheSB3aXRoIGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTEtMDkgMDY6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcHJvYy5jLCBob3N0L2hyX3ByaW50LmMKOgoKICAgWmVybyBpcyBhbiBPSyBmaWxlIGRlc2NyaXB0b3IuIC0xIGlzIHRoZSBlcnJvciByZXR1cm4KICAgCjIwMDItMTEtMDkgMDY6NTQgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgTW9yZSB0byB0aGUgcG9pbnQgbWVzc2FnZSBmb3IgdW5kZWZpbmVkIGlkZW50aWZpZXJzLiBCcm91Z2h0IGZvcndhcmQgZnJvbSA0LjIKICAgCjIwMDItMTEtMDkgMDY6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBQcmludCB0aGUgZXJyb3IgaW5mb3JtYXRpb24gaW4gY2FzZSBvZiBlcnJvcgogICAKMjAwMi0xMS0wOSAwNjo1MSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB2MiBleGNlcHRpb24gcmVzdWx0cwogICAKMjAwMi0xMS0wOSAwNjo0OSAgbmJhCgogICAqIHNlZHNjcmlwdC5pbiwgbWFuL3NubXBjbWQuMS5kZWY6CgogICBQcm90ZWN0IFBSRUZJWCB3aGVuIGl0IGlzIHRoZSBlbnYgdmFyLiBUaGFua3MgdG8gU3RlZmFuIFJhZG1hbiAoc3JhZG1hbikKICAgCjIwMDItMTEtMDkgMDY6NDcgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGQgUkZDIDMzNzEgTDJUUC1NSUIKICAgCjIwMDItMTEtMDkgMDY6NDYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgZnJvbSBJQU5BCiAgIAoyMDAyLTExLTA3IDAyOjU1ICBqYnBuCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAgIC0gZml4IC1DZiBhbmQgLUN3IG9wdGlvbiBwcm9jZXNzaW5nIChwcmV2aW91c2x5IHdvdWxkIGNvcmUgZHVtcCBpZgogICAgICAgbm8gb3B0aW9uIHBhc3NlZCksIGFzIHBvaW50ZWQgb3V0IGJ5IGhhbXBhIG9uICNuZXQtc25tcAogICAKMjAwMi0xMS0wNiAxMjozNSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBjdXQvcGFzdGUKICAgCjIwMDItMTEtMDYgMTI6MDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluICYgbWFrZWZpbGVzCiAgIAoyMDAyLTExLTA2IDExOjA4ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG1pc3NpbmcgZW5kIHF1b3RlCiAgIAoyMDAyLTExLTA2IDEwOjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIEBERVZGTEFHU0Agd2VoZXJ2ZXIgdGhlcmUgaXMgYSBAQ0ZMQUdTQCwgZXhjZXB0IGZvciB0aGUgbmV3IC0tYmFzZS1jZmxhZ3MKICAgCjIwMDItMTEtMDYgMTA6MjIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBhZGQgQERFVkZMQUdTQCB0byBDRkxBR1MKICAgCjIwMDItMTEtMDYgMTA6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBzZXBlcmF0ZSBkZXZlbG9wZXIgY2ZsYWdzIGZyb20gbm9ybWFsIGNmbGFncwogICAKMjAwMi0xMS0wNiAwOTo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIGNoYW5nZSBzdHJ1Y3QuaCBpbmNsdWRlIHRvIHVzZSAiIiBpbnN0ZWFkIG9mIDxuZXQtc25tcC8+LCBzaW5jZSBpdCBpdCBhIGxvY2FsCiAgIGluY2x1ZGUsIG5vdCBhIHN5c3RlbSBpbmNsdWRlCiAgIAoyMDAyLTExLTA2IDA5OjM5ICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBwdXJnZSBJTl9VQ0RfU05NUF9TT1VSQ0UKICAgCjIwMDItMTEtMDUgMDk6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgYWRkZWQgYSB4bWxzaG9ydCBkZWxpbWl0ZXIgYXMgcmVxdWVzdGVkIGJ5IGxhbmRzIG9uIElSQwogICAKMjAwMi0xMS0wNSAwODo1OSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICB0YWJzIC0+IHNwYWNlcyBvbmx5IHRyeSB0byBjaG1vZCBSTyBzcmMgZGlyIGlmIG93bmVyIG9mIGRpcnMKICAgCjIwMDItMTEtMDUgMDg6NTYgIHJzdG9yeQoKICAgKiBta2luc3RhbGxkaXJzOgoKICAgbWFraW5nIGEgZGlyZWN0b3J5IGlzIG5vdCBhbiBlcnJvciwgc28gZG9uJ3Qgc2VuZCBvdXRwdXQgdG8gc3RkZXJyCiAgIAoyMDAyLTExLTA0IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBhbGxvdyB1bnJlZ2lzdGVyZWQgc2VjdXJpdHkgbW9kZWxzIDw9IDIKICAgCjIwMDItMTEtMDQgMDg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gdG8gYmUgYmV0dGVyIHN1cHBvcnRlZCAocm93c3RhdHVzIG5vIGxvbmdlciBoYXMgdG8KICAgYmUgZmlyc3QgaW4gdGhlIGxpc3QsIC4uLikKICAgCjIwMDItMTEtMDQgMDg6MTMgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBjcHBmbGFncyB0byAtLWNmbGFncwogICAKMjAwMi0xMS0wNCAwODoxMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZCBzdHVmZiBmb3IgNS4wLjcgKG9yIHdoYXRldmVyKSBtZW50aW9uaW5nIGEgZmV3IG5ldyBmZWF0dXJlcy4KICAgCjIwMDItMTEtMDEgMDk6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeGVkIGJ1ZyAjNjMyMDk0IHVzaW5nIHRoZSBzdWdnZXN0ZWQgbWV0aG9kOiB3YXRjaCBmb3IgTlVMTCBzdHJlcnJvcigpIHJldHVybgogICAKMjAwMi0xMS0wMSAwNzowOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdW5kbyBteSBjaGFuZ2VzIGZyb20gciA1LjE3LCBhdHRlbXB0aW5nIHRvIHJlZHVjZSBydW5zIG9mIGNvbmZpZy5zdGF0dXMKICAgYnkgdXNpbmcgZXhwbGljaXQgcGF0aHMgdG8gc3JjZGlyLCBhbmQgbGV0IFZQQVRIIGRvIGl0J3MgdGhpbmcKICAgCjIwMDItMTAtMjkgMTE6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdGFyZ2V0IHRvIGJ1aWxkIGJpbmFyeSBhcnJheSB0ZXN0IGFwcDsgdHdlYWsgdG8gcGFyc2UgdGVzdCB0YXJnZXQgKHJlZHVjZXMgbW9zdAogICBidXQgbm90IGFsbCBleHRlcm5hbCByZWZlcmVuY2VzKQogICAKMjAwMi0xMC0yOSAxMToyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGZvciBiaW5hcnkgc2VhcmNoIHByb2JsZW0gbm90ZWQgYnkgUm9teSBDaHJpc3RlbnNlbiBvbiBjb2RlcnM7IHBhcnRpYWwKICAgKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBhIGJpbmFyeSBhcnJheSBpdGVyYXRvcgogICAKMjAwMi0xMC0yOSAxMToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIHNpbXBsZSB0ZXN0IHByb2dyYW0gZm9yIGJpbmFyeSBhcnJheQogICAKMjAwMi0xMC0yOSAwNjoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBGaXggZGVidWdnaW5nIGFzIG5vdGVkIGluIGJ1ZyAjNjMwMzQ4CiAgIAoyMDAyLTEwLTI4IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgLjEuNi4zIHRvIDEuMy42IGFzIG5vdGVkIGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgCjIwMDItMTAtMjggMTI6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGNoYW5nZWQgcGFzc3dvcmQKICAgCjIwMDItMTAtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIG1pc2MgdmFjbSBmaXhlcwogICAKMjAwMi0xMC0yOCAwNTo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIGVycm9uZW91cyBmcmVlKCkgb2YgcnhidWYKICAgCjIwMDItMTAtMjUgMDk6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeGVkIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCAtPiBORVRTTk1QX09QX0NBTExCQUNLX0RJU0NPTk5FQ1QgYXMgbm90ZWQgYnkgVHJvZ0wgb24gSVJDCiAgIAoyMDAyLTEwLTI1IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGEgTkVUU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHR5cGUgY2FsbGJhY2sgaWYgd2UKICAgICAgIGRlY2lkZSB0byBzaHV0ZG93biBhIHN0cmVhbSB0eXBlIGNvbm5lY3Rpb24gYmVjYXVzZSB3ZSByZWNlaXZlZAogICAgICAgYW4gZXhjZXNzaXZlbHkgbGFyZ2UgcGFja2V0LgogICAKMjAwMi0xMC0yNCAwNzo0MSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIHN1cGVyLWJ1Zy1wYXRjaCBnZW5lcmF0b3IgU3RlZmFuIFJhZG1hbiB0byB0aGUgVEhBTktTIGxpc3QKICAgCjIwMDItMTAtMjQgMDc6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGJ1ZyAjNjE3NTA4OiBhZGRlZCB0aGUgbXRhX3NlbmRtYWlsIG1vZHVsZSB0byAtLWhlbHAKICAgCjIwMDItMTAtMjQgMDc6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgdXBkYXRlIGluc3RhbGwgbGlzdCBmb3IgbWliMmMgY29uZiBmaWxlcyBhbmQgcmVtb3ZlIG9sZCBvbmUKICAgCjIwMDItMTAtMjMgMTc6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGluY29ycmVjdCB2YXJpYWJsZSBuYW1lIEkgbm90aWNlZCB3aGVuIGNvcHlpbmcgdG8gYSBkaWZmZXJlbnQgY29uZmlndXJlIHNjcmlwdCBpbiBhbm90aGVyIHBhY2thZ2UKICAgCjIwMDItMTAtMjMgMTc6MjggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4ZWQgYnVnIzYxNzgzODogdmVyc2lvbnRhZyBpc24ndCBkaXN0cmlidXRlZCBhbmQgc2hvdWxkbid0IGJlIGFsd2F5cwogICB1c2VkIGluIHRoZSBtYWtlIGRpc3RjbGVhbiBjYWxscy4KICAgCjIwMDItMTAtMjMgMTc6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGluY29uc2VxdWVuY2lhbCBtZW1vcnkgbGVha3MgZml4ZWQgKGluaXQgdGltZSBsZWFrcykuCiAgIAoyMDAyLTEwLTIzIDE3OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBGaXhlZCB2YXJpb3VzIG1lbW9yeSBsZWFrcyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgYXMgcG9pbnRlZCBvdXQgYnkKICAgUm9nZXIgTWNDYWxtYW4gYW5kIEpheSBQYXJsYXIgb24gdGhlIC1jb2RlcnMgbGlzdCAoaW5jbHVkaW5nIHRoZWlyIHBhdGNoZXMpCiAgIAoyMDAyLTEwLTIzIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBzbm1wTm90aWZ5VGFibGUuYwogICAKMjAwMi0xMC0yMyAxNTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZnJlZSBhIHByZXZpb3VzbHkgbWFsbG9jZWQgcG9pbnRlciB0byB0aGUgd2F0Y2ggdmFyaWFibGUgYmVmb3JlIHJlcGxhY2luZyBpdC4KICAgCjIwMDItMTAtMjMgMTU6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYzoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdW51c2VkIG1hbGxvYy4KICAgCjIwMDItMTAtMjEgMDk6NDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOS5oOgoKICAgICAtIGFkZCBzeXN0ZW0gZmlsZSBmb3IgU29sYXJpcyA5CiAgIAoyMDAyLTEwLTE3IDE5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLCBzbm1wbGliL3ZhY20uYzoKCiAgIE9wdGltaXplZCB0aGUgVkFDTSBjaGVja3MgaW4gdGhlIGNhc2Ugb2YgZ2V0bmV4dC9nZXRidWxrIHNvIHRoYXQgd2hlbgogICBsYXJnZSBwb3J0aW9ucyBvZiB0aGUgbWliIHRyZWUgYXJlIGV4Y2x1ZGVkLCB0aGUgc3ViLW1pYiBhY2Nlc3MgY29kZQogICB3b24ndCBiZSBjYWxsZWQgYXQgYWxsIChmaW5hbGx5IGltcGxlbWVudGluZyBhIHZlcnkgbG9uZyBuZWVkZWQgb3B0aW1pemF0aW9uKS4KICAgCjIwMDItMTAtMTcgMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvbW1vbmFsaXR5IGJldHdlZW4gdHdvIG9pZHM6IG5ldHNubXBfb2lkX2ZpbmRfcHJlZml4CiAgIAoyMDAyLTEwLTE3IDE5OjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQcmludCBvdXQgYSAic3VtbWFyeSIgYXQgdGhlIGVuZCBvZiBhIHJ1bgogICAKMjAwMi0xMC0xNyAwMjo0MCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUHJvcGVybHkgdGVybWluYXRlIGEgbG9vcCBjb25zdHJ1Y3QgKG1pc3NpbmcgJ0BlbmRAJykKICAgU3BvdHRlZCBieSBLYXJsIENvb3Blci4gICAgT29wcyEKICAgCjIwMDItMTAtMTYgMTQ6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVzdG9yZSBjb250aW51ZSBhZnRlciBFSU5UUiBjYXVzZWQgYnkgc2lnbmFsIHdlIGhhbmRsZWQgKGluc3RlYWQgb2YgZmFsbGluZwogICB0aG9yb3VnaCB0byBleGl0ISkKICAgCjIwMDItMTAtMTYgMTQ6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY2hlY2sgZm9yIG91ciBzaWduYWwgZmxhZ3Mgb24gRUlOVFIsIGFuZCBvbmx5IHJlbGVzZWN0IGlmIG5vdCBjaGFuZ2VkOwogICBkZWJ1ZyBtc2cgd2hlbiBzaWduYWxzIHJlZ2lzdGVyZWQgYW5kIGZvciBzZWxlY3QvZmRzZXRzOwogICAKMjAwMi0xMC0xNiAxMjo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG1vdmUgQ1BQRkxBR1MgYmVmb3JlIHVzZXIgY29uZmlndXJlIENGTEFHUy4uIHNvIGlmIGEgdXNlciBhZGRzIHNvbWV0aGluZwogICBsaWtlIC91c3IvbG9jYWwvaW5jbHVkZSB0byBDRkxBR1MsIHdlIHdpbGwgcGljayB1cCBvdXIgbG9jYWwgaW5jbHVkZXMgZmlyc3QsCiAgIGluc3RlYWQgb2YgaW5jbHVkZXMgZnJvbSBhIHByZXZpb3VzIHJlbGVhc2UuLgogICAKMjAwMi0xMC0xNSAyMTowNiAgcnN0b3J5CgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmgKOgoKICAgbWFrZSBzdXJlIHNubXB0cmFwZCBhbHdheXMgaG9ub3JzIERTX0FQUF9OVU1FUklDX0lQIGZvciBsb2dnaW5nCiAgIAoyMDAyLTEwLTE1IDE0OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldHNubXBfZ2V0X2Jvb2xlYW4gLT4gbmV0c25tcF9kc19nZXRfYm9vbGVhbgogICAKMjAwMi0xMC0xNSAxMTowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpeCBjb25zdGFudCB1c2VkIGluIGFzc2VydCwgbm90ZWQgb24gY29kZXJzCiAgIAoyMDAyLTEwLTE1IDExOjA3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgaW5jbHVkZSBzeXNsb2cgZm9yIGxpYndyYXAgbG9nIGxldmVscwogICAKMjAwMi0xMC0xNSAwNzozOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBBZGQgeWV0IGFub3RoZXIgd2F5IHRvIHNwZWNpZnkgdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTE0IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGZpeCBpcHY2IHRyYW5zcG9ydCBhZGRyZXNzIHNwZWNzCiAgIAoyMDAyLTEwLTExIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuY211LCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBSZW1vdmUgdGhlIFJFQURNRS5jbXUgZmlsZSAoZW50aXJlbHkgb3V0IG9mIGRhdGUgYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTEwLTExIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggIzYwMDkzMyBmcm9tIERvbmFsIERpYW1vbmQ6IGRza1BlcmNlbnROb2RlIGZvciBGcmVlQlNENAogICAKMjAwMi0xMC0xMSAxMzo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1OTgyODAgZnJvbSBKZWZmIFdhdHNvbjogbWFrZSAtT1Egbm90IHByaW50IHR5cGUgd2FybmluZ3MuCiAgIAoyMDAyLTEwLTExIDEzOjQzICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZml4IGluY2x1ZGUgZGlyZWN0b3J5CiAgIAoyMDAyLTEwLTExIDEzOjQyICBoYXJkYWtlcgoKICAgKiBkaXN0Ly5jdnNpZ25vcmU6CgogICBpZ25vcmUgcnBtIHN1YmRpcgogICAKMjAwMi0xMC0xMSAxMzozMiAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGJldHRlciBkb2NzIGFib3V0IGF1dG8tZXh0cmFjdGVkIFNGIG5ld3MKICAgCjIwMDItMTAtMTEgMTM6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvOiBNYWtlZmlsZSwgbmV0LXNubXAuc3BlYzoKCiAgIG1lcmdlIGluIHBhdGNoICM1OTg4Njk6IE1hcmsgSGFyaWcncyBiZXR0ZXIgcnBtIHN0dWZmCiAgIAoyMDAyLTEwLTExIDEyOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jCjoKCiAgIEFsdGVybmF0aXZlIHRvIGEgcGF0Y2ggc3VnZ2VzdGlvbjogYWRkIC1PVSB0byBub3QgcHJpbnQgVU5JVFMgc3VmZml4ZXMuCiAgIAoyMDAyLTEwLTExIDEyOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIC4uL2FnZW50L3NubXBfYWdlbnQuYwogICAKMjAwMi0xMC0xMSAxMjoxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGRvbnRQcmludFVuaXRzCiAgIAoyMDAyLTEwLTExIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCAjNjE3MTUxIGZyb20gQW5kcmV3IFJ1Y2tlciBKb25lczogZml4IGxpYndyYXAgaGVhZGVycy4KICAgICAtIEknbSBzdGlsbCB1bmhhcHB5IHdpdGggaG93IGxpYndyYXAgZnVuY3Rpb25zLi4uICBuZWVkcyB0aGlua2luZyBhYm91dC4KICAgCjIwMDItMTAtMTEgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzMxMjY5NCBmcm9tIEpvaG4gU3VydmV5b3I6IGZpeCBkaXNraW8gb24gc29sYXJpcy4KICAgCjIwMDItMTAtMTEgMTA6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBBcHBsaWVkIHBhdGNoICM2MjEzOTggZnJvbSBNYXR0aGV3IEtyZW56ZXIgdG8gZml4IGxpbnV4IGFycCB0YWJsZS4KICAgCjIwMDItMTAtMTEgMDY6NDcgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBjaGcgbmV0c25tcG1pYnMgLT4gbmV0c25tcG1pYnNza2QgKG5vdGVkIG9uIGNvZGVycyBieSBKZWQgV2hpdHRlbikKICAgCjIwMDItMTAtMTEgMDY6NDUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gbm90ZSBzcXVhcmUgYnJhY2tldHMgZm9yIElQdjYgYWRkcmVzc2VzCiAgIAoyMDAyLTEwLTExIDA2OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzZWxlY3QoKSBtb3JlIHF1aWNrbHkgaWYgYW4gRUlOVFIgaGFwcGVucwogICAKMjAwMi0xMC0xMCAyMjo1MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYXBwbGllZCBIYXJyaWUncyBwYXRjaCBkZXNjcmliaW5nIGxvdyBtZW1vcnkgZm9vdHByaW50cwogICAKMjAwMi0xMC0xMCAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBQYXRjaCBmcm9tIEtlbiBIb3JzdGVpbiB0byBmaXggS1NNIG1vZHVsZQogICAKMjAwMi0xMC0xMCAwMzoyMiAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAgIC0gcmVtb3ZlIGJhZCBpbmxpbmVzIHdoaWNoIGNhdXNlIGZpbGUgbm90IHRvIGNvbXBpbGUgd2l0aCBTdW4gQ0MuCiAgICAgICBTZWUgYnVnICM2MjA4MjcuCiAgIAoyMDAyLTEwLTA5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBhZGQgLmxhIGZpbGVzCiAgIAoyMDAyLTEwLTA5IDIzOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBtYWtlIHRoZSAuc3BlYyBmaWxlIGFsbW9zdCB1c2FibGUuCiAgIAoyMDAyLTEwLTA4IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBGQVEgdXBkYXRlcyBmb3IgZG93bmxvYWQgc2l0ZXMuCiAgIAoyMDAyLTEwLTA4IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBQYXRjaCBmcm9tIEpvc2h1YSBLZXJvZXMgZm9yIHN0cmluZyBjb21wYXJpc29ucwogICAKMjAwMi0xMC0wNyAxMDo1NyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkZWQgYSBzdGF0ZW1lbnQgYWJvdXQgdGhlIENPUFlJTkcgZmlsZSAoc3VnZ2VzdGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMTAtMDYgMTE6MzIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgbnNiLSogbGlrZXMgZnVsbCBwYXRocywgdXBkYXRlIGV4YW1wbGVzOyBmaXggc291cmNlZm9yZ2UgdXBsb2FkIHNpdGUKICAgCjIwMDItMTAtMDUgMTQ6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jCiwgRkFRLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNiApCiAgIAoyMDAyLTEwLTA1IDE0OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgbWFrZSBkb2NzCiAgIAoyMDAyLTEwLTA1IDE0OjQxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC42CiAgIAoyMDAyLTEwLTA1IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlzYyB1cGRhdGVzCiAgIAoyMDAyLTEwLTA1IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTAtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjYKICAgCjIwMDItMTAtMDUgMTQ6MDggIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgaWxsZWdhbCBmbGFnIGZyb20gbnNiLWNvbmZpZwogICAKMjAwMi0xMC0wNSAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgYWxsb2NhdGUgMCBieXRlcwogICAKMjAwMi0xMC0wNSAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCByZWZlcmVuY2UgcHRyIGFmdGVyIGlzIGhhcyBiZWVuIGZyZWUnZC4KICAgCjIwMDItMTAtMDQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBzZWNvbmRhcnkgZWZmZWN0IG9mIGJ1ZyA2MTM5ODMgYW5kIHJlYWxseSBmaXggaXQgdGhpcyB0aW1lLgogICAKMjAwMi0xMC0wMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLzogdHVubmVsLmMgKFY0LTItcGF0Y2hlcy4yKSwgdHVubmVsLmMKOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIGZpeCBzb21lIGNvZGluZyBlcnJvcnMKICAgCjIwMDItMTAtMDEgMDc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG9mZmljYWwgcGF0Y2ggNjE3MDQ5OiBpbml0aWFsaXplIGNvbnRhaW5lciBsaXN0IGVhcmxpZXIgKGluIGluaXRfYWdlbnQpCiAgIAoyMDAyLTEwLTAxIDA3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycyAoZGFtbiB3aW5kb3dzIGVkaXRvcnMpCiAgIAoyMDAyLTA5LTMwIDE1OjE3ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC41ICkKICAgCjIwMDItMDktMzAgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIGluZm8gb24gbWQ1c3VtcyBhbmQgZ3BnIHNpZ25pbmcKICAgCjIwMDItMDktMzAgMTU6MTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZml4IGNobW9kIHRvIGRvIHdoYXQgSSB3YW50ZWQsIG5vdCB3aGF0IEkgdG9sZCBpdAogICAKMjAwMi0wOS0zMCAxNToxNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTWFrZWZpbGUudG9wLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNQogICAKMjAwMi0wOS0zMCAxNDoyNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIG1lcmdlIHByZSBjaGFuZ2VzIGludG8gNS4wLjQgY29tbWVudHMKICAgCjIwMDItMDktMzAgMTQ6MjUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE5FV1MgdXBkYXRlcyBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgbXkgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNAogICAKMjAwMi0wOS0zMCAxMzowOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2UgbGVuIGEgc2l6ZV90IHRvIGZpeCBwcm9ibGVtIG9uIDY0IGJpdCBzeXN0ZW0sIHJlcG9ydGVkIGJ5IHNlYm5vZGAgaW4gSVJDCiAgIAoyMDAyLTA5LTMwIDEzOjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0YXRpYyBsb2NhbCB2YXJzLCBhcyB0aGV5IGFyZSBsaWtlbHkgdG8gY2F1c2UgcHJvYmxlbXMgd2l0aCB0aHJlYWRzCiAgIAoyMDAyLTA5LTMwIDEyOjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1ha2Ugc3VyZSBpbnN0YWxsIGRpciBpcyByZWxhdGl2ZSB0byBidWlsZCBkaXIKICAgCjIwMDItMDktMzAgMTI6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgaW4gZGVidWcKICAgCjIwMDItMDktMzAgMTI6MTkgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKICAgCjIwMDItMDktMzAgMTI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhdm9pZCBpbmZpbml0ZSBsb29wCiAgIAoyMDAyLTA5LTMwIDExOjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgYXNzdW1lIG1ha2UgaXMgR05VIG1ha2UsIGFuZCBzZWFyY2ggZm9yIGl0LiByZXF1aXJlIHVzZXIgdG8gc2V0IGFuCiAgIGVudiB2YXIgaWYgbm8gR05VIG1ha2UgaXMgZm91bmQgaW4gUEFUSAogICAKMjAwMi0wOS0zMCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBpZiBDVlMgZGlyIGlzIHJvLCBhdXRvbWFnaWNhbGx5IG1ha2UgaXQgcncgYmVmb3JlIHVwZGF0ZSBhbmQgcm8gYWZ0ZXIgdXBkYXRlCiAgIAoyMDAyLTA5LTI3IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtYWtlIGdldF9zZXRfY2FjaGUoKSByZXR1cm4gYW4gZXJyb3IgaWYgbm8gcHJldmlvdXMgU0VUIGhhcyBiZWVuIHN0YXJ0ZWQuCiAgIAoyMDAyLTA5LTI3IDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZG91YmxlIGNoZWNrIGFnYWluc3Qgc29tZSBudWxsIHBvaW50ZXJzIGJlZm9yZSB1c2luZyB0aGVtIGluIHRoZSBjYWNoZSBjb2RlLgogICAKMjAwMi0wOS0yNyAxMDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgc2V0IHRyZWVjYWNoZV9udW0gdG8gLTEgYXQgaW5pdCBvZiBtZW1vcnksIHRvIGJlIGV4dHJhIHNhZmUuCiAgIAoyMDAyLTA5LTI2IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIG1vdmUgbGlid3JhcCB2YXJpYWJsZXMKICAgCjIwMDItMDktMjYgMTE6NTcgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBvaywgcmVtb3ZlIHRjcHdyYXBwZXJzIHZhcnMKICAgCjIwMDItMDktMjYgMTA6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBkZWZpbmUgc3R1cGlkIHZhcmlhYmxlcyBuZWVkZWQgYnkgdGNwd3JhcHBlcnMgYmVjYXVzZSB0aGV5IGRvbid0IGdldAogICBjb25jZXB0cyBvZiBlbmNhcHN1bGF0aW9uLiAgYXJnLgogICAKMjAwMi0wOS0yNiAwODoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGNoYW5nZSBjYWxsX3B2IHRvIHBlcmxfY2FsbF9wdiBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgcGVybC4KICAgCjIwMDItMDktMjYgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBydW4gc3RyZHVwKCkgb24gZ2V0X21pYl9kaXIoKSByZXN1bHRzIHRvIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgRXVnZW5lIEJydWsuCiAgIAoyMDAyLTA5LTIzIDEwOjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWVudGlvbiBmcmVzaG1lYXQKICAgCjIwMDItMDktMjMgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIGltcGxlbWVudCBhIChsb25nIG5lZWRlZCkgc2V0dGFibGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGN1cnJlbnQKICAgICBwZXJzaXN0ZW50IGluZm9ybWF0aW9uLgogICAKMjAwMi0wOS0yMyAwOTo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBtYWtlIG5vdCBpbiB0aW1lIHdpbmRvdyByZXBvcnRzIHRyaWdnZXIgYSByZXNlbmQgb2YgaW5mb3Jtcy4KICAgICAoc3VnZ2VzdGlvbiBmcm9tIEVyaWsgQW5nZ2FyZCkKICAgCjIwMDItMDktMjAgMDg6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAgIC0gcmVtb3ZlIGZ1bmN0aW9ucyB2YWNtX3BhcnNlX3NlY3VyaXR5IGFuZCB2YWNtX2ZyZWVfc2VjdXJpdHkgd2hpY2gKICAgICAgIGRvbid0IGV4aXN0CiAgIAoyMDAyLTA5LTE5IDE0OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgLSBzdXBwb3J0IGFnZW50IHNodXRkb3ducyAod2VsbCwgb2sgaXQncyBqdXN0IGFuIGFwaSBzaW5jZSBpdCBkb2Vzbid0IHdvcmspLgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAKMjAwMi0wOS0xOSAxMzozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IGFnZW50LnhzLCBuZXRzbm1wX3JlcXVlc3RfaW5mb1B0ci5wbToKCiAgIGZpeCBhZ2VudCByZXF1ZXN0X2luZm9QdHIgcHJvYmxlbXMuCiAgIAoyMDAyLTA5LTE5IDA5OjA0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgQ29tcGlsZSBhbmQgbGluayB3aXRoICdnZXRvcHQuYycgZXhwbGljaXRseS4KICAgCiAgIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnksIGJ1dCBmb3Igc29tZSByZWFzb24KICAgKHRoYXQgY29tcGxldGVseSBlc2NhcGVzIG1lISksIHVzaW5nIGNvbW1hbmQtbGluZSBvcHRpb25zCiAgIChzdWNoIGFzIC1JUikgd2l0aCB0aGUgUmVsZWFzZSB2ZXJzaW9uIG9mIHNubXB0cmFuc2xhdGUKICAgY2F1c2VzIGEgcnVuLXRpbWUgRExMIGVycm9yLiAgKFRoZSBEZWJ1ZyB2ZXJzaW9uIGlzIGZpbmUpLgogICBUaGUgb3RoZXIgYXBwbGljYXRpb25zIHNlZW0gdG8gYmUgT0sgLSB0aGlzIHByb2JsZW0gb25seQogICBzZWVtcyB0byBoaXQgc25tcHRyYW5zbGF0ZS4gIFNvIGFzIGEgc3RpY2tpbmctcGxhc3RlciwKICAgY29tcGlsaWluZyBnZXRvcHQuYyBpbiBhcyBwYXJ0IG9mIHRoZSBwcm9qZWN0LCBrZWVwcyBib3RoCiAgIHZlcnNpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiBoYXBweS4KICAgICBTb21lb25lIHdpdGggYmV0dGVyIFdpbmRvd3Mga25vd2xlZGdlIHRoYW4gbWUgbmVlZHMgdG8KICAgbG9vayBhdCB0aGlzIGFuZCBmaXggaXQgcHJvcGVybHkuCiAgIAoyMDAyLTA5LTE5IDAzOjE0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHVuZG8gd29yc3Qgb2YgaW5kZW50IGRhbWFnZQogICAKMjAwMi0wOS0xOSAwMzowMyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgX2RwYXJzZSBmdW5jdGlvbnMgKHdoaWNoIGRvbid0IGV4aXN0KQogICAKMjAwMi0wOS0xOCAwNzo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVzZXQgU05NUF9TTEVFUCBhZnRlciBsb29wCiAgIAoyMDAyLTA5LTE4IDA3OjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSByZW1vdmUgdmVyeSBvYnNvbGV0ZSAoYW5kIG5vdCB1c2VkIGFueXdoZXJlKSAjZGVmaW5pdGlvbnMgb2YKICAgICAgIFBBUlRZX01JQl9CQVNFIGFuZCBDT05URVhUX01JQl9CQVNFCiAgIAoyMDAyLTA5LTE3IDIzOjU5ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdHdlYWsgZm9yIDUuMC40IGxhc3QgbWludXRlIHVwZGF0ZQogICAKMjAwMi0wOS0xNyAyMzo0OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGNoZyA+IHRvIC1ndCB0byBhY2hpZXZlIGludGVuZGVkIHJlc3VsdAogICAKMjAwMi0wOS0xNyAyMjozOSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE3IDIyOjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40ICkKICAgCjIwMDItMDktMTcgMjI6MzIgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTE3IDIxOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgJChzcmNkaXIpIHRvIGEgZmV3IGRlcGVuZGVuY2llcyB0byB0cnkgYW5kIHJlZHVjZSB0aGUgIyBvZiB0aW1lcyB0aGF0CiAgIGNvbmZpZy5zdGF0dXMgaXMgcnVuIHdoZW4gYnVpbGRpbmcgb3V0c2lkZSB0aGUgc3JjIGRpcgogICAKMjAwMi0wOS0xNyAyMTo1NCAgcnN0b3J5CgogICAqIFJFQURNRS53aW4zMjoKCiAgIHZpc3VhbGx5IHByb3ZvY2F0aXZlIHNlY3Rpb24gaGVhZGVyczsgYWRkIHJlY2VudCBzdGF0dXMgKGFsbCBiYWQgbmV3cyk7CiAgIG5vdCB0byB1c2UgbmV3IHdpbjMyc2RrLmRzdyB0byBnZXQgYWRkaXRvbmFsIGZ1bmN0aW9uYWxpdHkgd2l0aCBwbGF0Zm9ybSBzZGs7CiAgIHJlbW92ZSBpbmZvIG9uIHJlbW92aW5nIGFnZW50eCwgYXMgaXQncyBiZWVuIGFyb3VuZCBub3cgZm9yIGEgd2hpbGU7IGFkZAogICBzZWN0aW9uIG9uIHdoYXQgZmlsZXMgdG8gZWRpdCB0byBhZGQgbWliMmMgZ2VuZXJhdGVkIGNvZGUgdG8gYWdlbnQ7IHJlbW92ZQogICByZWZlcmVuY2UgdG8gc3BlY2lmaWMgcmVsZWFzZSBudW1iZXIgaW4gZXhhbXBsZQogICAKMjAwMi0wOS0xNyAyMToyNSAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIHRha2UgJ3Nkaycgb3V0IG9mIGV4ZSBuYW1lCiAgIAoyMDAyLTA5LTE3IDIxOjI1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc3dhcCBzbm1wZHNkayBmb3Igc25tcGQKICAgCjIwMDItMDktMTcgMjE6MTQgIHJzdG9yeQoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZ2V0IGFsbCBvdXIgZHVja3MgaW4gYSByb3c6IGFkZCBhZHZhcGkzMi5saWIgdG8gbGluayBsaW5lcywgbWFrZSBzdXJlIGFsbAogICBSZWxlYXNlIGFuZCBEZWJ1ZyBsaWJzL2FwcHMgYXJlIGNvbXBpbGUgd2l0aCBzYW1lIEMrKyBzZXR0aW5ncwogICAKMjAwMi0wOS0xNyAyMToxMiAgcnN0b3J5CgogICAqIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIHJlbW92ZSBzZGsgZGVwZW5kZW50IG1vZHVsZXMKICAgCjIwMDItMDktMTcgMjE6MTAgIHJzdG9yeQoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBncm91cCBtb2R1bGVzIHRoYXQgZGVwZW5kIG9uIHdpbjMyIHNkayB0b2dldGhlciwgd2l0aCBpZmRlZgogICAKMjAwMi0wOS0xNyAyMTowOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgbm8gY2FsbGJhY2sgZm9yIHdpbjMyIHVudGlsIHBpcGUgZmQgcHJvYmxlbSBpcyBmaXhlZAogICAKMjAwMi0wOS0xNyAyMTowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBuZXcgdmVyc2lvbnMgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNyAyMTowNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIG5ldyB3b3Jrc3BhY2UgZm9yIHNkayB1c2VycwogICAKMjAwMi0wOS0xNiAxMzoyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBtaWIgbW9kdWxlIGxvYWRpbmcgZml4ZXMgYnkgY2FsbGluZyBpbml0X3NubXAgZmlyc3QKICAgCjIwMDItMDktMTMgMTI6MDUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgZXhhbXBsZSBuc2ItY29uZmlnIGNvbW1hbmQ7IGFkZCAtYiBiYWNrIHRvIGN2czJjbCwgb3RoZXJ3aXNlIHlvdQogICBnZXQgY2hhbmdlbG9nIG1zZ3MgZnJvbSBvdGhlciBicmFuY2hlcyBhbmQgaGF2ZSB0byB3ZWVkIHRoZW0gb3V0CiAgIAoyMDAyLTA5LTEzIDA5OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgZml4IGlsbGVnYWwgb2lkcyB0byBub3QgcmV0dXJuIGEgcG9pbnRlci4KICAgCjIwMDItMDktMTMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gbWlub3Igb3B0aW1pc2F0aW9uOyB3ZSBkb24ndCBuZWVkIGEgemVyby10ZXJtaW5hdGVkIGNvbW11bml0eQogICAgICAgc3RyaW5nIGV4Y2VwdCBmb3IgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDItMDktMTMgMDc6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkZWQgLWkgb3B0aW9uIHRvIHJlcXVlc3QgaW5kZW50IG5vdCBiZSBydW4KICAgCjIwMDItMDktMTMgMDc6MDYgIGpicG4KCiAgICogQ09QWUlORzoKCiAgICAgLSBhZGQgbWlzc2luZyB2ZXJiIGluIGludHJvZHVjdGlvbgogICAKMjAwMi0wOS0xMiAxMjo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwcm90ZWN0IGNhbGxpbmcgc29tZSBTdklWIGRlcmVmZXJlbmNlIGZ1bmN0aW9ucyBpZiBpdCdzIG5vdCBhbiBJVi4KICAgICAtIGVsaW1pbmF0ZXMgdGhlIHJlbWFpbmluZyBwZXJsIHdhcm5pbmdzLgogICAKMjAwMi0wOS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW5jbHVkZSBsZGZsYWdzIHdoZXJlIGFwcHJvcHJpYXRlICgtLWxpYnMsIC0tYWdlbnQtbGlicywgLi4uKQogICAKMjAwMi0wOS0xMSAyMjo0OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItbmlnaHRseSwgbnNiLXBhY2thZ2U6CgogICBhZGQvdXNlIG5ldyBvcHRpb24gdG8gcmVtb3ZlIGJ1aWxkIGRpciBhZnRlciBzdWNjZXNzZnVsIGJ1aWxkCiAgIAoyMDAyLTA5LTExIDIyOjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcHJpbnQgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTExIDIyOjE5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbXVjaCBtb3JlIGNvbXBsZXggdGVzdHMgb2YgVVNNIHVzZXIgY3JlYXRpb24vbW9kaWZpY2F0aW9uLgogICAKMjAwMi0wOS0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMDFzbm1wdjFnZXQsCiAgIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LCB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwKICAgdGVzdHMvVDAwNHNubXB2MW5vc3VjaDoKCiAgIC0gc3VwcG9ydCBmb3IgbXVsdGlwbGUgdGVzdHMgYXQgb25jZS4KICAgLSBtZXJnZSB2MSB0ZXN0cyBpbnRvIGEgc2luZ2xlIChmYXN0ZXIpIHRlc3QuCiAgIAoyMDAyLTA5LTExIDIxOjM0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgbW9ua2V5IGFyb3VuZCB3aXRoIHJldHVybmluZyBlcnJvciBjb2RlcywganVzdCBleGl0OyBtb3JlIHJlZ2V4cCB0d2Vha3MKICAgCjIwMDItMDktMTEgMTY6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gdXNlIHN1Yi1zZWNvbmQgc2xlZXBzIGlmIGF2YWlsYWJsZQogICAtIHNsZWVwIDEgKHN1Yi0pc2Vjb25kIGF0IGEgdGltZSB3aGVuIHdhaXRpbmcgZm9yIHBhcnRpY3VsYXIgdGVzdHMKICAgICByYXRoZXIgdGhhbiB0aGUgZnVsbCBTTk1QX1NMRUVQIGR1cmF0aW9uLgogICAKMjAwMi0wOS0xMSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHVzZSBzbm1wX2xvZyBpbnN0ZWFkIG9mIHByaW50ZiBmb3Igc2h1dGRvd24gbWVzc2FnZS4KICAgCjIwMDItMDktMTEgMTU6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc3NpbmcgdmFyaWFibGUgZGVjbCBwb2ludGVkIG91dCBieSBpcmM6ZGYKICAgCjIwMDItMDktMTAgMTM6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBlcnJvciByZWdleHBzICYgZXJyb3IgbWVzc2FnZXMKICAgCjIwMDItMDktMTAgMTI6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb21waWxlciB3YXJuaW5ncyBhcmUgeW91ciBmcmllbmQhOyBmaXggZW1iZWRlZCBjb21tZW50czsgZml4IG5vbi12b2lkCiAgIGZ1bmN0aW9ucyB3L25vIHJ0biB2YWx1ZXM7IGNvZGUgcmVvcmcgdG8gZml4IGVtYWNzIGluZGVudCBjb21wbGFpbnRzCiAgIAoyMDAyLTA5LTEwIDEyOjI2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyB0YXJnZXRzIHRvIGhlbHAgbmlnaHRseSBidWlsZCBzY3JpcHQgZGV0ZXJtaW5lCiAgIGlmIGEgbWFrZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiAgIAoyMDAyLTA5LTEwIDEyOjEyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWtzIGZvciBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHM7IGFkIG5zYi1hYm9ydCwgbnNiLWZsb3c7CiAgIGRpcmVjdCBzb21lIG1lc3NhZ2VzIHRvIHN0ZGVycjsgdXNlIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIG1ha2UgdGFyZ2V0czsKICAgdXBkYXRlIGVycm9yIGdyZXAgdG8gaW5jbHVkZSAnKioqJzsgY2hlY2sgZm9yIG5ldyB2YWx1ZSB0byBybSAtZlIgYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTEwIDEyOjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkcwogICAKMjAwMi0wOS0xMCAxMjowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBhZGQgb3B0aW9uIHRvIHJtIC1mUiBidWlsZCBkaXIgYXQgc3RhcnQ7IGNoZWNrIHNjcmlwIHBhdGggZm9yIG5zYi1mdW5jdGlvbnM7CiAgIHByZWZpeCBkZWZhdWx0IGJ1aWxkIGRpciB3L3ZlcnNpb247IGV4aXQgdy9yYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOS0xMCAxMjowNSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItY29uZmlnLCBuc2ItcGxhdGZvcm06CgogICBhZGQgY3VycmVudCBwYXRoIHRvIHNjcmlwdCB0byBuc2ItZnVuY3Rpb24gc2VhcmNoIHBhdGgKICAgCjIwMDItMDktMDkgMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBidWcgcG9pbnRlZCBvdXQgYnkgSmFyZWQgU21pdGgtTWlja2Vsc29uIChidWcgIzYwNTE0NykKICAgICAgIHdoZXJlYnkgcGFzc2luZyBhbiB1bmtub3duIHR5cGUgY2hhcmFjdGVyIHRvIHNubXBfYWRkX3ZhciB3b3VsZAogICAgICAgY2F1c2UgYSBzZWdmYXVsdC4KICAgCjIwMDItMDktMDkgMDY6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgZG91YmxlIGNoZWNrIGEgcG9pbnRlciB2YWx1ZSBiZWZvcmUgdXNpbmcgaXQuCiAgIAoyMDAyLTA5LTA5IDA2OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEN1cnJlbnQgaGVhZGVyIHVwZGF0ZSBwYXRjaCBmb3IgbmV0YnNkIGZyb20gUGF0cmljayBXZWxjaGUuCiAgIAoyMDAyLTA5LTA2IDE1OjMwICBkcmllaHVpcwoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBNYXJrIHRoZSBub24tcmF3IHZhcmlhbnRzIG9mIG9iamVjdHMgdGhhdCBhcmUgYWNjZXNzYWJsZSBhcyByYXcgY291bnRlcnMKICAgYXMgZGVwcmVjYXRlZCwgdG8gKGhvcGVmdWxseSEpIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2YgdXNlcnMgdGhhdCBnZXQKICAgYml0dGVuIGJ5IGl0Li4KICAgCjIwMDItMDktMDQgMTE6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgYWRkZWQgQnJ1Y2UncyBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTA0IDExOjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggcGVybGNsZWFuCiAgIAoyMDAyLTA5LTA0IDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IHByb2Nlc3MgZ3JvdXBpbmcgYnkgY2FsbGluZyBzZXRzaWQoKSAocmVwb3J0ZWQgYnkgaXJjOlRyb2dMKQogICAKMjAwMi0wOS0wNCAxMTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc2V0c2lkKCkuCiAgIAoyMDAyLTA5LTAzIDEwOjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYXNlcyB3aGVyZSB0aGVyZSBlaXRoZXIgYXJlIG5vIHRhYmxlcyBvciBubyBzY2FsYXJzLgogICAKMjAwMi0wOS0wMyAxMDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBkb24ndCB1c2UgTlVMTCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA5LTAyIDE5OjMzICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTIgKQogICAKMjAwMi0wOS0wMiAxOTozMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUyCiAgIAoyMDAyLTA5LTAyIDE5OjIyICByc3RvcnkKCiAgICogbWFuL25ldHNubXBfaGFuZGxlci4zOgoKICAgdXBkYXRlZCBkb2NzCiAgIAoyMDAyLTA5LTAyIDE5OjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA5LTAyIDE5OjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItY29uZmlnOgoKICAgdHJ5IGFuZCBndWVzcyBhdCBzcmMgZGlyIGlmIG5vdCBzcGVjaWZpZWQKICAgCjIwMDItMDktMDIgMTk6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgYWRkIG5vdGUgYWJvdXQgZXJyIHdoZW4gYnVpbGRpbmcgaW4gYW5kIG91dCBvZiBzb3VyY2UgdHJlZQogICAKMjAwMi0wOS0wMiAxODo1NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZnVsbCBwYXRoIHRvIHZlcnNpb250YWcsIGluIGNhc2Ugd2UgYXJlIGJ1aWxkaW50IG91dHNpZGUgb2Ygc3JjIGRpcmVjdG9yeQogICAKMjAwMi0wOS0wMiAxODozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBmb3JjZWQgcHJvbXB0IG9uIGVycm9ycwogICAKMjAwMi0wOS0wMiAxODozNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIHdhcm5pbmdzIHdoZW4gVkVSU0lPTiBpcyByZXF1aXJlZDsgYWRkIHRhcmNsZWFuIHRhcmdldDsgYWRkIHRhcmNsZWFuIHRvCiAgIGRpc3RjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMTg6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIG1zZyBvbiBlcnJvcjsgYWRkIGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAxNzoyNyAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgd2luMzIgJiBBZ2VudFggc3RhdHVzCiAgIAoyMDAyLTA5LTAyIDE3OjIwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIGZpeCB0byBhdm9pZCBsb2NraW5nIHVwIHRoZSBhZ2VudCB3aGVuIGEgc3VnYWdlbnQgZGllcyBkdXJpbmcgYSBzZXQgcmVxdWVzdC4gV2UKICAgbXVzdCBjbGVhbiB1cCB0aGUgZGVsZWdhdGVkIHJlcXVlc3RzIHdoZW4gdGhlIHNlc3Npb24ocykgYXJlIGNsb3NlZCwgc28gdGhhdAogICB0aGV5IHdpbGwgYmUgcHJvY2Vzc2VkIGFuZCByZW1vdmVkLCBhbGxvd2luZyBmdXJ0aGVyIHJlcXVlc3RzIHRvIGJlIHByb2Nlc3NlZC4KICAgCjIwMDItMDktMDEgMTA6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGNoYW5nZSByZXN1bHQgdHlwZSBiYWNrIHRvIGludCwgYXMgaXQgbWF5IHJlY2VpdmUgYSBuZWdhdGl2ZSB2YWx1ZQogICAKICAgUExFQVNFIGNoZWNrIHRoZSB1c2Ugb2YgYSB2YXJpYWJsZSBiZWZvcmUgY2hhbmdpbmcgaXMgc2lnbmVkbmVzcywgZXNwZWNpYWxseQogICBhcmVvdW5kIHJlbGVhc2UgdGltZSEKICAgCjIwMDItMDgtMzAgMTI6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgaW5jbHVkZSBjaGVja192YXJiaW5kLmgKICAgCjIwMDItMDgtMzAgMTI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBjaGFuZ2UgTk9TVUNITkFNRSB0byBOT1NVQ0hJTlNUQU5DRSBhZ2FpbiwgYXMgaXQgc2VlbXMgdGhlIGFnZW50WCBmaXggYWxzbwogICBjb3JyZWN0bHkgZGVhbHMgd2l0aCB0aGlzIGVycm9yIGNvZGUKICAgCjIwMDItMDgtMzAgMDY6MTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSBkZWxldGUgc3Vuc2l0ZS5jbmxhYi1zd2l0Y2guY2ggbWlycm9yLCBhcyBpdCBpc24ndCBvbmUgYW55bW9yZS4KICAgCjIwMDItMDgtMjkgMTA6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgbW9kdWxlcyBiZWZvcmUgY29uZmlndXJpbmcgdGhlbQogICAKMjAwMi0wOC0yOSAwNzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgRml4IHRoZSBsYXN0IEFFUyBidWcgSSBrbm93IG9mLiAgQUVTMTI4IHdvcmtzIGdyZWF0LgogICAgIEkgc3RpbGwgTmVlZCB0byBmaXggMTkyLzI1NiBmb3IgbG9uZ2VyIGtleSBnZW5lcmF0aW9uIGZyb20gTUQ1L1NIQQogICAKMjAwMi0wOC0yOSAwNzo1MiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIHVzZSB0aGUgcmlnaHQgcGVybCBtb2R1bGUgbmFtZSBpbiB0aGUgdXNlIGxpbmUuCiAgIAoyMDAyLTA4LTI5IDAzOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgd2luMzIvY29uZmlnLmg6CgogICBNb3JlIFdpbjMyLXJlbGF0ZWQgdGlkeWluZyB1cC4KICAgVGhlIGFnZW50IG5vdyBjb21waWxlcyB3aXRoIHJlbGF0aXZlbHkgZmV3IHdhcm5pbmdzLgogICAKMjAwMi0wOC0yOSAwMTo1MCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIERlY2xhcmUgbmV3IHJvdXRpbmUgJ25ldHNubXBfb2lkX2VxdWFscycsIGFuZCBhc3NvcnRlZCBXaW4zMiBjbGVhbnVwIGZpeGVzLgogICAKMjAwMi0wOC0yOCAxMToxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjbGFyaWZ5IGN2czJjbCBzY3JpcHQgbmFtZTsgcmVtb3ZlIC1iIGZsYWcgZnJvbSBjdnMyY2wgcGVyIERhdmU7IGEgbGl0dGxlCiAgIHJlb3JnYW5pemF0aW9uOyBwdXQgY29tbWFuZHMgb24gc2VwYXJhdGUgbGluZXMgcHJlZml4ZWQgd2l0aCAkOyBub3RlIDUueC80LngKICAgZGlmZmVyZW5jZXMgcGVyIERhdmUncyBlbWFpbDsgcGx1ZyBteSBuZXcgc2NyaXB0cyB3aGVyZSBhcHByb3ByaWF0ZQogICAKMjAwMi0wOC0yNyAxMTo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgVVJMIGZvciBjdnMyY2w7IHVwZGF0ZSBjdnMyY2wgY21kcyB0byBjdnMyY2wucGwsIHNpbmNlIHRoYXQncyB0aGUgZmlsZQogICB0aGF0J3MgYWN0dWFsbHkgZGlzdHJpYnV0ZWQKICAgCjIwMDItMDgtMjYgMjE6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNiAyMToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC40LnByZTEgKQogICAKMjAwMi0wOC0yNiAyMToyNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI2IDIxOjE5ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTI2IDIxOjE3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBtYW4gcGFnZXMgZm9yIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjYgMjE6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWc6CgogICBuZXcgZmlsZSB0byBjb25maWd1cmUgdXNpbmcgc2FtZSBvcHRpb25zIGFzIG5zYi1wYWNrYWdlIGZvciB0ZXN0IG9yIGRpc3QKICAgCjIwMDItMDgtMjYgMjE6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZG9uJ3QgYXBwZW5kIHN5cy1uYW1lIHdoZW4gYnVpbGRpbmcgaW4gc3JjIHRyZWUKICAgCjIwMDItMDgtMjYgMjE6MDkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdHlwbwogICAKMjAwMi0wOC0yNiAyMTowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbmFtZSBuc2ItZ2V0LWNvbmZnIC0+IG5zYi1jb25maWctZGlzdDsgdXNlIGRvdWJsZSBxdW90ZXMgY3V6IG9mIHNvbWUKICAgd2llcmQgc2hlbGwgdGhpbmcgSSBkb24ndCB5ZXQgdW5kZXJzdGFuZDsgY2hlY2sgZm9yIHNyYyBkaXIgaW4gY29uZmlnKgogICAKMjAwMi0wOC0yNiAyMDozNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgdHdlYWsgY29tbWVudGNoZWNrIHRhcmdldCB0byB3b3JrIG91dHNpZGUgdGhlIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA4LTI2IDIwOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvd2luc2VydmljZS5jCjoKCiAgIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMgKGFuZCBhbnl0aGluZyB0aGF0IGV2ZW4gcmVtb3RlbHkgcmVzZW1ibGVzIG9uZSkKICAgCjIwMDItMDgtMjYgMTQ6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBwYXNzIG1ha2UgcGFyYW1zIHRvIG1ha2UsIHNvIHdlIGRvbid0IHRyeSB0byBpbnN0YWxsIGluIC91c3IvbG9jYWwvYmluIG9mCiAgIHRoZSBjb21waWxlIHNlcnZlcnMuLi46LS8KICAgCjIwMDItMDgtMjYgMTQ6MzkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtYWtlIGRpc3QgJiBleHRyYSB0cmFuc3BvcnRzOyBubyBpcHY2IG9uIERhcndpbjsgbWFrZSB0b3VjaGl0IGJlZm9yZSBtYWtlCiAgIAoyMDAyLTA4LTI2IDE0OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jOgoKICAgcmVwbGFjZSB1X2ludDMyX3QsIHdoaWNoIGRvZXNuJ3QgY29tcGlsZSBvbiBTdW4gNS44LCB3aXRoIHVfaW50CiAgIAoyMDAyLTA4LTI2IDEzOjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmM6CgogICBmaXggdW5kZWNsYXJlZCB2YXJpYWJsZSBlcnJvciBzcG90dGVkIG9uIFN1biwgd2hpY2ggbGludXggbWlzc2VkIGNvbXBsZXRlbHkuCiAgIEkgaGF2ZSBubyBpZGVhIGhvdyB0aGlzIGNvbXBpbGVkIGJlZm9yZSEhCiAgIAoyMDAyLTA4LTI2IDEzOjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2xlYW5lciB3YXkgdG8gYWRkIHN5c3RlbSBzcGVjaWZpYyBtb2R1bGVzOyBkaXNhYmxlIHBlcmwsIGFzIGl0IGJyZWFrcwogICBidWlsZHMgb3V0c2lkZSBvZiB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMTI6NDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXgKICAgCjIwMDItMDgtMjYgMTI6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXg7IGJhaWwgb24gY29uZmlndXJlIGVycm9ycwogICAKMjAwMi0wOC0yNiAxMjowNCAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBhZGQgc3VnZ2VzdGlvbiB0byBzeW1saW5rIG5zYi0qIGluIGxvY2FsIGJpbiBkaXIKICAgCjIwMDItMDgtMjYgMTI6MDMgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLXBhY2thZ2UsIG5zYi1mdW5jdGlvbnM6CgogICBhZGQgb3B0aW9uIGZvciBwcmUtcmVsZWFzZSB0ZXN0IGNvbmZpZ3VyZSBvcHRpb25zCiAgIAoyMDAyLTA4LTI2IDEyOjAyICByc3RvcnkKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIG1ha2Ugc2VjdGlvbiBoZWFkZXJzIHN0YW5kIG91dCBtb3JlOyBtb3ZlIG5vdGUgYWJvdXQgZW5jcnlwdGlvbiBub3QgYmVpbmcKICAgZW5hYmxlZCB0byBhIG1vcmUgcHJvbWluZW50IHBsYWNlLgogICAKMjAwMi0wOC0yMiAwNTozMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43Lmg6CgogICAgIC0gRE9OVF9VU0VfTkxJU1QgcmVpbnN0YXRlZCwgc28gTk9fS01FTV9VU0FHRSByZWR1bmRhbnQKICAgCjIwMDItMDgtMjIgMDU6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgICAgLSByZWluc3RhdGUgdGVzdCBmb3IgRE9OVF9VU0VfTkxJU1QKICAgCjIwMDItMDgtMjIgMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBzdG9wIGFuZCByZXN0YXJ0IGxvZ2dpbmcgd2hlbiBIVVBwZWQuICBUaGlzIGFsbG93cyBsb2dmaWxlcyB0byBiZQogICAgICAgcm90YXRlZCBhbmQgc28gZm9ydGguCiAgIAoyMDAyLTA4LTIyIDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgQWRkIHRoZSBtaXNzaW5nICcteC9YJyBvcHRpb25zIHRvIHRoZSBleGFtcGxlIGF1dGhQcml2IGNvbW1hbmQgbGluZQogICAgIChyZXBvcnRlZCBieSBQcmFzYWRhIFIgVmFua2F5YWxhcGF0aSkKICAgCjIwMDItMDgtMjAgMDg6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIEZBUToKCiAgIHF1aWV0IHNubXB0cmFwZCB3aGVuIGl0IGNhbid0IGNvbm5lY3QgdG8gdGhlIGFnZW50eCBtYXN0ZXIuCiAgIAoyMDAyLTA4LTIwIDA1OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaDoKCiAgICAgLSBhZGQgI2RlZmluZSBOT19LTUVNX1VTQUdFIDEgc2luY2UgbmV0LXNubXAtY29uZmlnLmguaW4gbm8gbG9uZ2VyCiAgICAgICBwYXlzIGF0dGVudGlvbiB0byB0aGUgRE9OVF9VU0VfTkxJU1QgdG9rZW4uICBPbWlzc2lvbiBvZiB0aGlzCiAgICAgICBjYXVzZXMgdGhlIGFnZW50IHRvIGV4aXQgd2l0aCB0aGUgbWVzc2FnZSAiaW5pdF9rbWVtOiBrdm1fb3BlbgogICAgICAgZmFpbGVkOiBlcnJvciAwIi4KICAgCiAgICAgICBOT1RFOiB0aGlzIG1heSBuZWVkIGFwcGx5aW5nIHRvIG90aGVyIG1lbWJlcnMgb2YgdGhlIFNvbGFyaXMgMgogICAgICAgZmFtaWx5LCBidXQgSSBkb24ndCBoYXZlIG1hY2hpbmVzIHRvIGhhbmQgdG8gdGVzdCB0aGlzLgogICAKMjAwMi0wOC0yMCAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZGV0ZWN0IGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlcyAoZ2VOKQogICAgIC0gdW5kbyBpbmRlbnQgbWF5aGVtCiAgIAoyMDAyLTA4LTIwIDAyOjU3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICAgIC0gZm9yIG5vdywgZG9uJ3QgI2luY2x1ZGUgc25tcF9sb2NraW5nLmggc2luY2UgaXQgYnJlYWtzIHJlLWVudHJhbnQKICAgICAgIHN1cHBvcnQgKGJlY2F1c2UgbXV0ZXhfdHlwZSBnZXRzIG11bHRpcGx5LWRlZmluZWQpLiAgRnVydGhlcm1vcmUsIHRoZQogICAgICAgZnVuY3Rpb25zIGl0IGRlY2xhcmVzIGFyZSBuZXZlciB1c2VkIGFueXdoZXJlLCBub3IgZGVmaW5lZCBhbnl3aGVyZS4KICAgCjIwMDItMDgtMjAgMDI6NTYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaDoKCiAgICAgLSBkb24ndCBkZWZpbmUgImRvIG5vdGhpbmciIG1hY3JvcyBmb3Igc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zCiAgICAgICBvbiBXaW4zMiBwbGF0Zm9ybSAoc2luY2UgcmVhbCAiZG8gbm90aGluZyIgZnVuY3Rpb25zIGFyZSByZXF1aXJlZCBmb3IKICAgICAgIHJlYXNvbnMgYmVzdCBrbm93biB0byBzb21lb25lIGVsc2UpLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwMjo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2NraW5nLmg6CgogICAgIC0gZml4IGhpZ2hseSBib2d1cyBub24tQyBzeW50YXgKICAgCjIwMDItMDgtMjAgMDI6NTMgIGpicG4KCiAgICogc25tcGxpYi9tdF9zdXBwb3J0LmM6CgogICAgIC0gc25tcF9yZXNfbG9jayBldCBhbC4gZnVuY3Rpb25zIG5vIGxvbmdlciAjZGVmaW5lZCB0byAiZG8gbm90aGluZyIKICAgICAgIHRhcmdldHMgZm9yIFdpbjMyIGluIG10X3N1cHBvcnQuaCwgdGhlcmVmb3JlIG5vIG5lZWQgdG8gI3VuZGVmIHRoZW0KICAgICAgIGhlcmUuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTE5IDIyOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBoZWFkZXJzIGZvciBjYWNoZSBlbmFibGluZyBmdW5jdGlvbnMuCiAgIAoyMDAyLTA4LTE5IDIyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBkb24ndCB1c2Ugbm9uLWV4aXN0ZW50IG1lbW9yeSBwb2ludGVycyB0byB0aGUgcmVzcG9uc2UgZGF0YSAoZWc6ICJ0aW1lb3V0IikKICAgCjIwMDItMDgtMTkgMTQ6NDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBDaGFuZ2UgYSBmZXcgY29uZGl0aW9uYWxzIHRvIHVzZSAjaWYgaW4gcGxhY2Ugb2YgI2lmZGVmCiAgIAoyMDAyLTA4LTE5IDE0OjI4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgQWxpZ24gd2l0aCA0LjIgYnJhbmNoCiAgIAoyMDAyLTA4LTE5IDE0OjI2ICBuYmEKCiAgICogbWlicy86IERJU01BTi1TQ0hFRFVMRS1NSUIudHh0LAogICBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgSUFOQWlmVHlwZS1NSUIudHh0CiwgSU5FVC1BRERSRVNTLU1JQi50eHQsIE1ha2VmaWxlLm1pYiwgaWFuYWxpc3QKLCBtaWJmZXRjaCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQnMKICAgCjIwMDItMDgtMTkgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEJhaWwgb3V0IGZvciBiYWQgc25tcEFkbWluU3RyaW5nIHZhbHVlCiAgIAoyMDAyLTA4LTE5IDA3OjQzICBqYnBuCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjMpLCBGQVE6CgogICAgIC0gZG9uJ3QgdXNlIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBpbiBleGFtcGxlcwogICAgIC0gYnJlYWsgYSBjb3VwbGUgb2Ygb3Zlci1sb25nIGxpbmVzCiAgICAgLSBtZW50aW9uIG5ldHNubXBfIHZhcmlhbnQgb2YgZHNfc2V0XyBmdW5jdGlvbgogICAKMjAwMi0wOC0xOSAwMjo0NCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMiksIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBhYm91dCB0aGUgc25tcHRyYXBkL0FnZW50WCB3YXJuaW5nIG1lc3NhZ2UuCiAgIAoyMDAyLTA4LTE4IDE4OjI0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgY29uZmlndXJlIHdpdGggYnVpbGQgaW5zdGFsbCBkaXIsIGl0IGlzIGFscmVhZHkgc3BlY2lmaWVkIG9uIGNtZCBsaW5lCiAgIGZvciBtYWtlIGluc3RhbGwKICAgCjIwMDItMDgtMTggMTA6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtb3JlIGRlYnVnZ2luZyAtIGxvZyB2YWx1ZSByZXF1ZXN0IGlzIHRyeWluZyB0byBzZXQKICAgCjIwMDItMDgtMTYgMTU6MTMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIEJydWNlIFNoYXcgdG8gdGhlIHRoYW5rcyBsaXN0CiAgIAoyMDAyLTA4LTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIEEgZ3JlYXQgdXBkYXRlIHRhbGtpbmcgYWJvdXQgcGVybCBhbmQgc29sYXJpcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDItMDgtMTYgMDE6NTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENhdGNoIGV4cGxpY2l0bHkgJ25vU3VjaEluc3RhbmNlJyBleGNlcHRpb25zLCB3aGVuIHdhbGtpbmcgYW4KICAgaXRlcmF0b3ItaGFuZGxlZCBtb2R1bGUsIHNvIHRoYXQgaG9sZXMgY2FuIGJlIHNraXBwZWQgYW5kIHRoZQogICBuZXh0IHJlYWwgaW5zdGFuY2UgcmV0cmlldmVkLiAgKFRoaXMgd2FzIGFscmVhZHkgaGFuZGxlZCBmb3IKICAgbW9kdWxlcyB0aGF0IGRpZG4ndCBtYXJrIG1pc3NpbmcgaW5zdGFuY2VzIGV4cGxpY2l0bHkpLgogICAKMjAwMi0wOC0xNiAwMDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdHVybiBvZmYgY2FjaGluZyBieSBkZWZhdWx0LCBzaW5jZSB0aGUgYWdlbnR4IGNvZGUgYXBwZWFycyBicm9rZW4uCiAgIAoyMDAyLTA4LTE2IDAwOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfYWdlbnQuYzoKCiAgIHNwZWVkIGVuaGFuY2VtZW50cyB2aWEgaW1wbGVtZW50aW5nIGEgcmVnaXN0cmF0aW9uIHN1YnRyZWUgbG9va3VwCiAgIGNhY2hlLiAgZ3JlYXRseSBzcGVlZHMgdGhpbmdzIHVwIHdoZW4gc2ltaWxhciByZXF1ZXN0cyBjb21lIGluCiAgIChzbm1wd2FsaywgLi4uKS4KICAgCjIwMDItMDgtMTUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBOVUxMIGxhYmVscyBpbiBzdWJ0cmVlcwogICAKMjAwMi0wOC0xNSAwODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICB1c2UgbmV0c25tcF9vaWRfZXF1YWxzICh3aGljaCBpcyBzb21ldGltZXMgZmFzdGVyIHRoYW4KICAgc25tcF9vaWRfY29tcGFyZSkgaW4gYSBmZXcgcGxhY2VzIHRvIGFjaGlldmUgYmFyZWx5IG5vdGljZWFibGUgc3BlZWQgZ2FpbnMuCiAgIAoyMDAyLTA4LTE1IDA4OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIGV4aXN0cyBiZWZvcmUgcGFzc2luZyBpdCB0byBzdHJjbXAoKQogICAKMjAwMi0wOC0xNSAwODowNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIE1BTjNQT0RTIHRvIHNvbWV0aGluZyBjb21wbGlhbnQgd2l0aCB0aGUgcGVybCBtYW51YWxzLiAgSSB0aGluay4KICAgCjIwMDItMDgtMTQgMTA6NDIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIGFkZCBkZWJ1ZyBmb3IgbG9jYWwgcGFyc2luZyBvZiBhcmdzCiAgIAoyMDAyLTA4LTE0IDA5OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jLAogICBzdWJhZ2VudC5jOgoKICAgYWRkIG1vcmUgZGV0YWlsZWQgaW4gZGVidWcgbWVzc2FnZXM7IGFkZCBhIGZldyBuZXcgZGVidWdzCiAgIAoyMDAyLTA4LTE0IDA5OjIzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgd2hlbiBhbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgZmluaXNoZWQsIGNoZWNrIGFsbCByZXF1ZXN0cyBzdGF0dXMgc28gdGhhdAogICBhc3Agc3RhdHVzIGlzIHNldCwgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IGFnZW50eCBzZXQgcHJvY2Vzc2luZy4KICAgKG5vdyBpZiBJIGNhbiBqdXN0IGdldCBhbGwgdGhpcyBoYWlyIG9mZiB0aGUgZmxvb3IsIGFuZCBnbHVlIGl0IGJhY2sgdG8gbXkKICAgaGVhZCwgYW5kIHRoZW4gZml4IHRoYXQgZGVudCBpbiB0aGUgd2FsbCB3aGVyZSBJJ3ZlIGJlZW4gYmFuZ2luZyBteSBoZWFkLi4uLikKICAgCjIwMDItMDgtMTMgMTQ6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBhIGxlbmd0aCBjb21wYXJpc29uIHByb2JsZW0gd2l0aCBuZXRzbm1wX29pZF9pc19zdWJ0cmVlKCkKICAgCjIwMDItMDgtMTMgMTQ6MjQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBhIGZldyByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDgtMTMgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIEZpeCBvcGVuIGZpbGUgcnVuYXdheSBvbiBzb2xhcmlzLiAgU2VlIGJ1ZyAjNTkyODA2IHJlcG9ydGVkIGJ5IEphbWVzIElyd2luLgogICAKMjAwMi0wOC0xMyAxMjowNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGFycmF5IG9mIHBvaW50ZXJzID0gcG9pbnRlciB0byBhIHBvaW50ZXIKICAgCjIwMDItMDgtMDkgMTY6MzIgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgbWlzYyBkb2MgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE2OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXB2My5jOgoKICAgaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTY6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgc2xpZ2h0IHNwZWVkIHVwcyBmb3Igc25tcF9vaWRfY29tcGFyZSgpIHRvIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgdGlsbCAhPQogICAKMjAwMi0wOC0wOSAxNjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSBvcGVuc3NsIDAuOS43IHN1cHBvcnQgZm9yIERFUyBjaGFuZ2VzLgogICAtIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBpbmRlbnQgZml4ZXMuCiAgIAoyMDAyLTA4LTA5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzY2FwaS5oLCBzbm1wdXNtLmg6CgogICBkZWZpbmUgQUVTIGtleSBzcGVjaWZpY3MKICAgCjIwMDItMDgtMDkgMTY6MjYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLSBjaGVjayBmb3Igb3BlbnNzbCAuMC45LjcgREVTIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucy4KICAgLSBjaGVjayBmb3IgQUVTIHN1cHBvcnQgaW4gb3BlbnNzbCAoPiAwLjkuNykKICAgCjIwMDItMDgtMDkgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZml4IG1vZGUgcHJvY2Vzc2luZyBmb3IgUkVTRVJWRTEvUkVTRVJWRTIgdGVzdCBmYWlsdXJlcwogICAKMjAwMi0wOC0wOSAxNToyOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGxvZyBtc2cgd2hlbiB3ZSBpZ25vcmUvZml4IGlsbGVnYWwgZXJyb3JfdmFsdWVzIGZvciB0aGUgY2xpZW50IEFQSXMKICAgCjIwMDItMDgtMDkgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjb3JyZWN0aW9ucyB0byBleGFtcGxlIGNvZGUKICAgCjIwMDItMDgtMDkgMTU6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICByZXZlcnQgZXJyb3JzIHRvIHVuaW5mb3JtYXRpdmUgU05NUHYxIG5vU3VjaE5hbWUgZm9yIEFnZW50WCBnZXQtbmV4dC9pbmNsdXNpdmUKICAgcHJvY2Vzc2luZzsgYWxzbyBhZGQgbW9yZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZQogICAKMjAwMi0wOC0wOSAxNDowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGRlYnVnIG1zZyBmb3IgYWdlbnR4IG9pZCBmb3IgY2FzZXMgb3RoZXIgdGhhbiBnZXQvZ2V0bmV4dAogICAKMjAwMi0wOC0wOSAwODo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIGRvbid0IGZyZWUgcmVnaXN0cmF0aW9uIGluZm8gb24gZmFpbHVyZSwgYXMgbmV0c25tcF9yZWdpc3Rlcl9taWIgYWxyZWFkeSBkaWQgaXQKICAgCjIwMDItMDgtMDkgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5jLAogICBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYwosIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYywgc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSByZW5hbWUgc25tcF88ZG9tYWluPl9ibGFoIGZ1bmN0aW9ucyB0byBuZXRzbm1wXzxkb21haW4+X2JsYWgKICAgICAtIG1ha2UgdHJhbnNwb3J0IG1lbWJlciBmdW5jdGlvbnMgc3RhdGljLCB0byBlbXBoYXNpc2UgdGhhdCB0aGV5IHNob3VsZAogICAgICAgbm90IGJlIHVzZWQgZGlyZWN0bHkKICAgICAtIGhhbmRsZSBFSU5UUiBpbiBzZW5kIGFuZCByZWN2IGZ1bmN0aW9ucyAoYXMgcG9pbnRlZCBvdXQgYnkgQW50dGkgS3VudHNpCiAgICAgICBpbiBidWcgcmVwb3J0ICM1NzY4MDYpCiAgICAgLSBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTA4LTA5IDA2OjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uaCwgc25tcFRDUERvbWFpbi5oLCBzbm1wVENQSVB2NkRvbWFpbi5oCiwgc25tcFVEUERvbWFpbi5oOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDY6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICAgIC0gZG9uJ3QgZXhwb3J0IG5ldHNubXBfdW5peF9ibGFoKCkgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTA5IDA2OjUzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGZpeCBuYXN0eSBmb3JtYXR0aW5nCiAgIAoyMDAyLTA4LTA4IDA5OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHJld29yZCBjb25maWdfcGVycm9yIG1zZ3MgdG8gcmVtb3ZlICJFcnJvciIsIGFzIGl0IGlzIHJlZHVuZGFudAogICAKMjAwMi0wOC0wOCAwOToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIHJlbW92ZSBpZmRlZiB0byBsb2cgbXNnIHRvIHVzZXIsIGFmdGVyIG1ha2luZyBtc2cgbW9yZSBpbmZvcm1hdGl2ZTsgcmVtb3ZlCiAgIGFubm95aW5nIGJsYW5rIGxpbmVzCiAgIAoyMDAyLTA4LTA4IDA4OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoIGZyb20gSGFycmllIHRvIGNvbXBsZXRlbHkgZGlzYWJsZSBrbWVtIHVzYWdlCiAgIAoyMDAyLTA4LTA2IDAwOjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHNldCBtYWluX3Nlc3Npb24gdG8gTlVMTCBpbiBzdWJhZ2VudF9zaHV0ZG93bigpLiAgVGhpcyAoYWxvbmcgd2l0aCB0aGUKICAgICAgIGRlcmVnaXN0cmF0aW9uIG9mIGFsbCBhbGFybXMpIGFsbG93cyBBZ2VudFggZnVuY3Rpb25hbGl0eSB0byBiZQogICAgICAgc3RvcHBlZCBhbmQgcmVzdGFydGVkIGluIHN1YmFnZW50cy4KICAgICAtIFRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA2IDAwOjI3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmg6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAKMjAwMi0wOC0wNiAwMDoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jLCBzbm1wX2FwaS5jOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA1IDA3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWF0Y2ggZnVuY3Rpb24gZGVmaW5pdGlvbiB3L05ldHNubXBfKl9EYXRhUG9pbnQgdHlwZWRlZnM7IGFkZCBjdnMgSWQKICAgCjIwMDItMDgtMDMgMDg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYnJlYWsgdXAgbGluZXMgbG9uZyB0aGFuIDgwIGNoYXJzOyBhYmNkZSwgbm90IGFiY2RkCiAgIAoyMDAyLTA4LTAzIDAwOjIxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbW9yZSB1cGRhdGVzIGFib3V0IHRoaW5ncyBXZXMgZG9lcyBhdCAxMjozMCBhbQogICAKMjAwMi0wOC0wMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4zICkKICAgCjIwMDItMDgtMDIgMjM6NDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIFVwZGF0ZSBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMjM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGQgLmxpYnMKICAgCjIwMDItMDgtMDIgMjM6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA4LTAyIDIzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMDIgMjM6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBmb3Jnb3R0ZW4gdG8gY2hlY2sgaW4gdGVzdCBmb3IgcGVybF9ldiBjaGFuZ2VzCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgcHJpbnQgKG9wcHMpCiAgIAoyMDAyLTA4LTAyIDIzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgZml4IGRlZmF1bHQgdmVyc2lvbiB1c2FnZS4KICAgCjIwMDItMDgtMDIgMjM6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFBhdGNoICM1NzIzOTQgZnJvbSBLYXRzdWhpc2EgQUJFOgogICAgIC0gc3VwcG9ydCBsaW5rIGxvY2FsIGFkZHJlc3NlcwogICAgIC0gYmluZCB0byBpcHY2IG9ubHkgaWYgSVBWNl9WNk9OTFkgaXMgZGVmaW5lZC4KICAgCjIwMDItMDgtMDIgMjM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBmaXggY29uZmlndXJlIHNwZWNpZmllZCBkZWZhdWx0IHZlcnNpb25pbmcKICAgCjIwMDItMDgtMDIgMjI6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzU3MjM5NDogYWRkIGlwdjYgdHJhbnNwb3J0cyB3aGVuIC0tZW5hYmxlLWlwdjYgZGVmaW5lZC4gIFRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wOC0wMiAxNDo1OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6NTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgIHVwZGF0ZQogICAKMjAwMi0wOC0wMiAxNDozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1vcmUgZG9jcy4KICAgCjIwMDItMDgtMDIgMTQ6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjMsIE1ha2VmaWxlLmluOgoKICAgZG94eWdlbiB1cGRhdGUuCiAgIAoyMDAyLTA4LTAyIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdXBkYXRlIGZvciB5ZXQgbW9yZSBzdHVmZi4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSBhIGZldyBtb3JlIGRpc3QgcmVsYXRlZCBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVycm9yIG1lc3NhZ2UgY2hhbmdlIHRvIHJlbW92ZSBERVMgc3BlY2lmaWMgZXJyb3IgbXNnLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90eXBlbWFwOgoKICAgc3BhY2luZyBmaXhlcy4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQueHM6CgogICByZW5hbWVkIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogbmV0c25tcF9yZXF1ZXN0X2luZm8ucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgcmVuYW1lZCBmaWxlCiAgIAoyMDAyLTA4LTAyIDE0OjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIEFkZCBhICJldmFsdmFycyIgZGlyZWN0aXZlIHRvIGRvIHNpbXBseSByZXBsYWNlbWVudHMuCiAgIAoyMDAyLTA4LTAyIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIENWU1VTRVIgdmFyaWFibGUgd2hlbiBkb2luZyBzdHVmZiBpbnN0ZWFkIG9mIG15IGhhcmQtY29kZWQgbmFtZS4KICAgCjIwMDItMDgtMDIgMTQ6MTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBsaWJ0b29sIHZlcnNpb24gZm9yIDUuMC4zCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNoYW5nZSBjaGVja2NvbW1lbnQgdGFnIHRvIGV4Y2x1ZGUgd2luMzIgZmlsZXMuCiAgIAoyMDAyLTA4LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgY2hhbmdlbG9nIGJ1aWxkIG5vdGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGZpbGUuCiAgIAoyMDAyLTA4LTAyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY3JlYXRlZCBhIGhvdy10byBmaWxlIGZvciBtYWtpbmcgcmVsZWFzZXMKICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvY2hhbmdlbG9nZml4OgoKICAgY2hhbmdlbG9nIGZpeC11cCBzY3JpcHQKICAgCjIwMDItMDgtMDIgMTA6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0cmFuc2xhdGUgJy8nIGluIHN5c3RlbSBuYW1lIHRvICdfJyAoZm9yIGN5Z3dpbikKICAgCjIwMDItMDgtMDIgMDk6NTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHNlY3Rpb24gY3ZzIGdldCBjb21tYW5kIGV4YW1wbGUKICAgCjIwMDItMDgtMDIgMDk6MDYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIFN1cHByZXNzICdpbmxpbmUnIHdoZW4gbm90IHVzaW5nIEdDQy4gU3VnZ2VzdGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMi0wOC0wMiAwODo1OSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBvbiBza2lwcGluZyBtYWtlIHRlc3Q7IGFkZCAtcCBmbGFnIHRvIGV4YW1wbGVzCiAgIAoyMDAyLTA4LTAyIDA4OjUyICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGRlc2NyaWJlIHVzZSBvZiBuc2ItcGFja2FnZSBzY3JpcHQuIFRlc3RlcnMgYW5kIGNvbW1lbnRzIGFwcHJlY2lhdGVkLi4uCiAgIAoyMDAyLTA4LTAyIDA4OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGxhdGZvcm06CgogICBvdXRwdXQgcGxhdGZvcm0gaW5mbwogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVuYW1lZCB0byBuc2ItcGFja2FnZQogICAKMjAwMi0wOC0wMiAwODoxOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICByZW5hbWVkIG5zYi1idWlsZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBzY3JpcHQgZnVuY3Rpb24KICAgCjIwMDItMDgtMDIgMDg6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIENoYW5nZSBsb2NhdGlvbiBuYW1lIHRvIFVua25vd24KICAgCjIwMDItMDgtMDIgMDg6MDggIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA4OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCByZXR1cm4gY29kZQogICAKMjAwMi0wOC0wMiAwNzo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZG9uJ3QgcHVsbCBmaXJzdCBhcmcgdGlsIGFmdGVyIGdldG9wdHMvc2hpZnQ7IG1vdmUgc2V0IG9mIGRlZmF1bHQgb3B0cwogICAKMjAwMi0wOC0wMiAwNzozNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyBhZGQgLWYgb3B0aW9uIHRvIHByb21wdCB0byBvdmVycmlkZQogICBubyBwcm9tcHQgZmxhZyAodXNlZnVsIGZvciBlcnJvcnMpOyBuZXcgbnNiLW1ha2UgbWV0aG9kOyBjaGVjayByYyBvZgogICBtYWtlIGNsZWFuCiAgIAoyMDAyLTA4LTAyIDA3OjM2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBhZGQgb3B0aW9uIHRvIHNraXAgYnVpbGQgb3IgdGVzdCBzdGVwczsgdHdlYWsgdXNhZ2UKICAgCjIwMDItMDgtMDIgMDc6MTAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCB0eXBvOyByZW1vdmUgZXh0cmEgdHJhaWxpbmcgc2xhc2ggaW4gZGlyCiAgIAoyMDAyLTA4LTAyIDA2OjMzICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBjaGVjayBtb3JlIHBsYWNlcyB0byBzb3VyY2UgbnNiLWZ1bmN0aW9uczsgZml4IGZvciBjbWQgbGluZSBidWlsZCBwYXRoCiAgIAoyMDAyLTA4LTAyIDA2OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAganVzdCBzaG93IGVycm9ycyBhZnRlciBidWlsZCwgbm90IHdhcm5pbmdzCiAgIAoyMDAyLTA4LTAxIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICByZXZlcnQgdG8gbm9uLWFuc2kgcHJvdG90eXBlcyBmb3Igb2xkZXIgcGVybCB3aXRoIG9sZGVyIGNvbXBpbGVycyBvbgogICBvbGRlciBzeXN0ZW1zLiAgTm90IHRoYXQgSSdtIGdydW1weSwgb2YgY291cnNlLgogICAKMjAwMi0wOC0wMSAxNjoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGNoZWNrIGZvciBvbGRlciBhbmQgbmV3IGVtYmVkZGVkIHBlcmwgY2FsbCBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDEgMTQ6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBzeW1saW5rIHRvIHNyYyBmcm9tIGJ1aWxkOyB1cGRhdGUgbnNiLWdldC1jb25maWcKICAgCjIwMDItMDgtMDEgMTQ6MDYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGZpeCBmb3IgY21kIGxpbmUgYnVpbGQgZGlyCiAgIAoyMDAyLTA4LTAxIDEyOjU4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGNvbmZpZyBpbnN0YWxsIHBhdGg7IHJlbW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBmcm9tIG5zYi1idWlsZAogICAKMjAwMi0wOC0wMSAxMjo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgcmVtb3ZlIGhhcmQgY29kZWQgaW5mbwogICAKMjAwMi0wOC0wMSAxMjoyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBwcm9tcHRzOyByZW1vdmUgcHJldmlvdXMgaW5zdGFsbHM7IHR3ZWFrIGVyciBwYXR0ZXJuCiAgIAoyMDAyLTA4LTAxIDEyOjE0ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHVzZSBuZXRzbm1wX2RzX3NldF9ib29sZWFuKCkgaW5zdGVhZCBvZiBkc19zZXRfYm9vbGVhbigpCiAgIAoyMDAyLTA4LTAxIDEyOjEyICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZjoKCiAgICAgLSBjaGFuZ2UgY29kZSBzYW1wbGUgdG8gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKQogICAgIC0gdXBkYXRlIHJlZmVyZW5jZXMgdG8gbGlicmFyaWVzICh3aGljaCB3ZXJlIHN0aWxsIHRhbGtpbmcgYWJvdXQKICAgICAgIGxpYnVjZGFnZW50IGV0IGFsLikgLS0gUExFQVNFIFJFVklFVyBCRUZPUkUgNS4wLjMKICAgCjIwMDItMDgtMDEgMTI6MDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBsb3RzIG9mIGZpeGVzIHRvIHByZXZpb3VzZSB1bnRlc3RlZCBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDEyOjA0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBzY3JpcHQgdG8gYnVpbGQgcmVsZWFzZXMuLi4gc3RpbGwgc29tZSBoYXJkY29kaW5nIHdoaWxlIHRlc3RpbmcsIGJ1dCBpdHMKICAgZ2V0dGluZyB0aGVyZS4uLgogICAKMjAwMi0wOC0wMSAxMTo1MSAgcnN0b3J5CgogICAqIGRpc3QvOiBjdnNzaG93LCBjdnN1cDoKCiAgIHV0aWxpdHkgc2NyaXB0cwogICAKMjAwMi0wOC0wMSAwOTozMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHNjYWxhci5jLCBzY2FsYXIyLmM6CgogICBHbyB3aXRoIHRoZSAic2NhbGFyIGFzIHN1cGVyLWhhbmRsZXIgb2YgaW5zdGFuY2UiIGltcGxlbWVudGF0aW9uLgogICBTY2FsYXIxLmMgaXMgcHJvYmFibHkgcmVkdW5kZW50LCBidXQgd2UgY2FuIHJlbW92ZSB0aGlzIGxhdGVyLgogICAoWXVwIC0gSSdtIGEgY293YXJkLi4uLikKICAgCjIwMDItMDgtMDEgMDE6MTEgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE1pbm9yIHR5cG9zLCBwbHVzIGVtcGhhc2lzZSB0aGUgbmVlZCBmb3IgdGhlIElwSGxwQVBJIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTMwIDA4OjI2ICBkdHMxMgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dDoKCiAgIFJlY29nbmlzZSAnMCcgYXMgYSB2YWxpZCBzZXR0aW5nIGZvciBzdWZmaXhQcmludGluZywgYW5kIHVwZGF0ZSB0aGUKICAgcHJvbXB0cyB0byBtYXRjaCB0aGUgdjUgb3V0cHV0IGZvcm1hdHMgZGVmYXVsdHMuIFNlZSBCdWcgIzU2NzQ1MQogICAKMjAwMi0wNy0zMCAwNzo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpcnN0IGF0dGVtcHQgYXQgdGFja2xpbmcgQnVnICM1NzQ0MzQKICAgUmVjb2duaXNlIHRoYXQgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IGlzIGVxdWl2YWxlbnQgdG8gLU9TLgogICBTbm1wdGFibGUgc3RpbGwgY3Jhc2hlcyB3aXRoIC1PZiBvciAtT3UsIGJ1dCBhdCBsZWFzdCB0aGUKICAgZGVmYXVsdCBpbnZvY2F0aW9uIHdvcmtzLgogICAKMjAwMi0wNy0zMCAwNTo0MSAgZHRzMTIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBFeHBvcnQgbmV3bHktZGVmaW5lZCBwdWJsaWMgbmFtZXMsIGFuZCByZS1leHBvcnQgc29tZSByb3V0aW5lcyB0aGF0CiAgIGhhdmUgY2hhbmdlZCBuYW1lLiAgVGhpcyBzaG91bGQgbm93IGNvbXBpbGUgdW5kZXIgVmlzdWFsIEMrKyBhZ2Fpbi4KICAgCjIwMDItMDctMzAgMDI6MjcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRG9uJ3QgcmVtb3ZlIGEgUm93LVN0YXR1cyBhdXRvLWRlbGV0ZWQgcm93IHVudGlsIHRoZSBsYXN0IG1pbnV0ZSwKICAgaW4gY2FzZSBvdGhlciAobG93ZXIpIGhhbmRsZXJzIHRyeSB0byBhY2Nlc3MgaXQuCiAgIAoyMDAyLTA3LTMwIDAxOjM4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4xKSwgRkFROgoKICAgTWVudGlvbiB0aGUgbmVlZCB0byBlc2NhcGUgcXVvdGVzIHdoZW4gcXVlcnlpbmcgc3RyaW5nLWluZGV4ZWQgdGFibGVzLgogICAKMjAwMi0wNy0yOSAyMzo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVwZGF0ZSByZWdpc3RlciBmdW5jdGlvbiBuYW1lCiAgIAoyMDAyLTA3LTI5IDIzOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgYXV0b2dlbiBleGFtcGxlIGNvZGUgZm9yIGluZGV4IGNoZWNraW5nIGluIGV4dHJhY3RfaW5kZXg7IHVwZGF0ZSByZWdpc3RlcgogICBmdW5jdGlvbiBuYW1lOyB1c2UgY29udGFpbmVyIGluICpfZ2V0X2J5X2lkeCgpCiAgIAoyMDAyLTA3LTI5IDE2OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBuZXcgc3RydWN0IG5hbWU7IGFkZCBleGFtcGxlIGNvZGUgYXMgY29tbWVudHMgaW5zdGVhZCBvZiB2YXJfWFhYCiAgIGFuZCBzdWNoOyBpbiBhIGZldyBpbXBvcnRhbnQgcGxhY2VzIGFkZCBjb2RlIHdoaWNoIHdpbGwgYWxsb3cgYSBuZXdseQogICBnZW5lcmF0ZWQgbW9kdWxlIHRvIGJlIGNvbXBpbGVkIGlmIC1EVEFCTEVfQ09OVEFJTkVSX1RPRE8gaXMgc3BlY2lmaWVkOwogICBwcm9iYWJseSBhIGZldyBvdGhlciB0d2Vha3MgSSBmb3Jnb3QKICAgCjIwMDItMDctMjkgMDM6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9hcnJheS5jLCB0YWJsZS5jLCB0YWJsZV9kYXRhLmMKLCB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZGVmZXJlbmNpbmcgTlVMTCBwb2ludGVycy4KICAgKE1vc3Qgb2YgdGhlc2UgU2hvdWxkIE5ldmVyIEhhcHBlbiBidXQgWW91IENhbid0IEJlIFRvbyBDYXJlZnVsISkKICAgCjIwMDItMDctMjkgMDM6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRldGVjdCBgZG1mZScgZXRoZXJuZXQgY2FyZHMgYXMgZm91bmQgb24gTmV0cmEgWDEgbWFjaGluZXMuCiAgICAgICBUaGFua3MgdG8gSm9obiBPbHNvbiBmb3IgdmVyaWZ5aW5nIHRoaXMgZml4LgogICAKICAgICAgIEFsc28gbm90ZSB0aGF0IGBpbmRlbnQnIGhhcyAtLS0tZWQgdGhlIGZvcm1hdHRpbmcgb2YgdGhpcyBmaWxlCiAgICAgICBiZXlvbmQgbGVnaWJpbGl0eSBpbiBzZXZlcmFsIHBsYWNlcy4gIEkgZG9uJ3QgdGhpbmsgd2Ugd2FudCB0bwogICAgICAgZG8gKnRoYXQqIGFnYWluLgogICAKMjAwMi0wNy0yOSAwMjo0MCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBGdWxsZXIgdmFsaWRhdGlvbiBvZiBSb3dTdGF0dXMgdmFsdWVzIHdydCByb3cgY3JlYXRpb24vZXhpc3Rpbmcgcm93cy4KICAgCjIwMDItMDctMjkgMDE6MjUgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgVGFrZSBhY2NvdW50IG9mIHJlY2VudCBjaGFuZ2VzIGluIGxpYnJhcnkgZmlsZXMuCiAgICdSZWxlYXNlJyBhcHBsaWNhdGlvbnMgc3RpbGwgZG9uJ3QgbGluayBwcm9wZXJseSwgYnV0IGF0IGxlYXN0CiAgIHRoZSBsaWJyYXJpZXMgY29tcGlsZSwgYW5kIHRoZSAnRGVidWcnIHNpZGUgc2VlbXMgdG8gd29yay4KICAgCjIwMDItMDctMjkgMDE6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgVHdlYWsgaW5saW5lIGhhbmRsaW5nIGZvciBBSVggLSBzdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMi0wNy0yNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgYXV0b2RlcGVuZGVuY2llcyB1bnRpbCBwb3J0YWJsZSBzb2x1dGlvbiBjYW4gYmUgZm91bmQKICAgCjIwMDItMDctMjYgMDg6NDEgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9jb25maWcuaCwgbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICBtaWJfbW9kdWxlX2luaXRzLmg6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKG9ic29sZXRlKSB1Y2Qtc25tcC9yZWdpc3RyeSBtb2R1bGUuCiAgIAoyMDAyLTA3LTI2IDA3OjMyICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFByb3RlY3QgdGhlIFdpbjMyIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBmaWxlLCBzbyB0aGF0IHRoZSBvdGhlciBoZWFkZXIKICAgZmlsZXMgcmVjb2duaXNlIHRoYXQgaXQgaGFzIGluZGVlZCBiZWVuIGluY2x1ZGVkLgogICAKMjAwMi0wNy0yNiAwNzoyNCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMCksIEZBUToKCiAgIEEgYml0IG1vcmUgZGV0YWlsIG9uIG1pYjJjLCBwbHVzIHRoZSBub24td3JpdGVhYmlsaXR5IG9mIHN5c3tMb2NhdGlvbixDb250YWN0fQogICAKMjAwMi0wNy0yNiAwNToyMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOSksIEZBUToKCiAgIEFub3RoZXIgZW50cnkgYWJvdXQgaW52YWxpZCB1c2Ugb2YgbWliMmMuCiAgIAoyMDAyLTA3LTI2IDA1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgU3VwcHJlc3MgdGhlICJub24tc3RhbmRhcmQiIGNvbmRpdGlvbmFsIGNvbnN0cnVjdCwKICAgc2luY2UgaXQncyBub3QgcmVjb2duaXNlZCBieSBzb21lIHZlcnNpb25zIG9mICdtYWtlJy4KICAgCjIwMDItMDctMjUgMDU6MDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBBZGQgdGhlICdzY2FsYXInIGFuZCAnd2F0Y2hlcicgaGVscGVycyB0byB0aGUgaGVscGVyIGxpYnJhcnkuCiAgIAoyMDAyLTA3LTI1IDAzOjI4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgU3VwcG9ydCBmb3Igd2F0Y2hpbmcgYSBzeXNVcFRpbWUgbWFya2VyLgogICAKMjAwMi0wNy0yNSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgTmV3IHJvdXRpbmUgZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gdmFsdWUgZGlyZWN0bHkgZnJvbSBhIHJlcXVlc3Qgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAxMzoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY2hlY2sgZm9yIHNldHRpbmcgc2FtZSB2YWx1ZSBpbiBkc19zZXRfc3RyaW5nLCBzaW5jZSBpdCBmcmVlcyB0aGUgb2xkCiAgIHZhbHVlIGJlZm9yZSBkdXBpbmcgdGhlIG5ldyBvbmUKICAgCjIwMDItMDctMjQgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L3NubXBkLWluaXQuZDoKCiAgIGZpcnN0IHN0YWIgYXQgaW5pdC5kIHN0YXJ0dXAgc2NyaXB0IGZvciBzbm1wZAogICAKMjAwMi0wNy0yNCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBXaGVuIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2Ygb25lIGNvbHVtbiwgYW5kIG1vdmluZyBvbiB0byB0aGUgbmV4dAogICAoaW4gYSBHZXROZXh0KSwgd2UgbmVlZCB0byBzdGFydCBhZ2FpbiB3aXRoIHRoZSBmaXJzdCByb3cuCiAgIFRoaXMgaXMgcHJvYmFibHkgdGhlIGludGVudGlvbiBvZiB0aGUgY29uZGl0aW9uYWwgYmxvY2sgYXQgdGhlIHN0YXJ0CiAgIG9mIHRoaXMgbG9vcCwgYnV0IEkgY2FuJ3Qgc2VlIGhvdyB0aGlzIHRlc3QgY291bGQgZXZlciBwb3NzaWJseSBtYXRjaC4KICAgCiAgIE5vdGUgdGhhdCB0aGVyZSBpcyBhbHNvIGEgcmVmZXJlbmNlIHRvIHRoZSByb3cgZGF0YSBhY2Nlc3NpYmxlIHZpYQogICB0aGUgJ3JlcXVlc3QtPnBhcmVudF9kYXRhJyBkYXRhIGxpc3QuICAgVGhpcyB3aWxsIGFsc28gbmVlZCB0byBiZQogICByZXdvdW5kLiAgU3VnZ2VzdGlvbnMgYXMgdG8gaG93IGJlc3QgdG8gZG8gc28gZ3JhdGVmdWxseSByZWNlaXZlZC4KICAgCjIwMDItMDctMjQgMDY6MzkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIG1pc3NpbmcgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjQgMDY6MzcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eSBvZiBmYWlsaW5nIHRvIGV4dHJhY3QgYSByb3cgc3RydWN0dXJlLgogICAKMjAwMi0wNy0yNCAwNjozNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgVXNlIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zIHJhdGhlciB0aGFuIHRoZSB1bmluZm9ybWF0aXZlIFNOTVB2MQogICAnbm9TdWNoTmFtZScgZXJyb3IgZm9yIGludmFsaWQgdGFibGUgb2JqZWN0cy4KICAgCjIwMDItMDctMjMgMTQ6NTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIG1pc3NpbmcgY29tbWVudCB0ZXJtaW5hdG9yLjotKAogICAKMjAwMi0wNy0yMyAxMjowMiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgdXNlIG5ldyBuZXRzbm1wX2Fzc2VydCBpbnN0ZWFkIG9mIGFzc2VydAogICAKMjAwMi0wNy0yMyAxMjowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIGFkZCBuZXcgbmV0c25tcF9hc3NlcnQsIHdoaWNoIGRlZmF1bHRzIHRvIGxvZ2dpbmcgYSBtZXNzYWdlCiAgIAoyMDAyLTA3LTIzIDA3OjQzICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgKFY0LTItcGF0Y2hlcy4zKSwgbWliX2FwaS4zLmRlZjoKCiAgIEZpeCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSAnc3ByaW50X3JlYWxsb2MnIGNhbGxzLCB0byBpbmNsdWRlIHRoZSAnYWxsb3dfcmVhbGxvYycgcGFyYW1ldGVyLgogICAKMjAwMi0wNy0yMiAxMDo1OCAgcnN0b3J5CgogICAqIGRpc3QvOiBuZXQtc25tcC5zcGVjLCBuc2ItZnVuY3Rpb25zOgoKICAgbmV3IChhbG1vc3QgZW1wdHkpIHNwZWMgZmlsZTsgc3RhcnQgY3JlYXRpbmcgZnVuY3Rpb25zIGZvciBhdXRvbWF0ZWQgYnVpbGRzCiAgIAoyMDAyLTA3LTIyIDAxOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgQSBtb3JlIGdlbmVyYWxpc2VkIGZvcm0gb2YgdGhlICduc19yZWdpc3Rlcl97dHlwZX1faW5zdGFuY2UnIHJvdXRpbmVzLAogICBpbXBsZW1lbnRlZCBhcyBhIHNlcGFyYXRlIGhlbHBlciBtb2R1bGUsIGFuZCB1c2VhYmxlIHdpdGggYm90aCB0aGUKICAgaW5zdGFuY2UgYW5kIHNjYWxhciBoZWxwZXJzLgogICAgIFRoaXMgYWxzbyBzdXBwb3J0cyBhcmJpdHJhcnkgQVNOIHR5cGVzIChpbmNsdWRpbmcgc3RyaW5ncyBhbmQgT0lEcykuCiAgIAoyMDAyLTA3LTIyIDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcjEuYywgYWdlbnQvaGVscGVycy9zY2FsYXIyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmg6CgogICBBZ2VudCBoZWxwZXIgbW9kdWxlIGZvciBzdXBwb3J0IG9mIHNjYWxhciBvYmplY3RzLgogICBWZXJ5IHNpbWlsYXIgdG8gdGhlICJpbnN0YW5jZSIgaGVscGVyLCBleGNlcHQgdGhhdCB0aGlzIGRlYWxzIHdpdGgKICAgaW52YWxpZCBpbnN0YW5jZSBzdWJpZGVudGlmaWVycyBhcyB3ZWxsIChyZXBvcnRpbmcgbm9TdWNoSW5zdGFuY2UKICAgcmF0aGVyIHRoYXQgbm9TdWNoT2JqZWN0KS4KICAgCiAgIFRoZXJlIGFyZSB0d28gcGFyYWxsZWwgaW1wbGVtZW50YXRpb25zIGFzIHRoZSBtb21lbnQ6CiAgICAgLSBzY2FsYXIxIGlzIGVzc2VudGlhbGx5IGFuIGVuaGFuY2VkIGNvcHkgb2YgdGhlIGluc3RhbmNlIGhlbHBlciwKICAgICAgIGJ1dCBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIGl0LgogICAgIC0gc2NhbGFyMiBzaXRzIGFib3ZlIHRoZSBpbnN0YW5jZSBoZWxwZXIsIGFuZCB1c2VzIHRoYXQgdG8gZG8gbW9zdAogICAgICAgb2YgdGhlIHJlYWwgcHJvY2Vzc2luZy4KICAgU2NhbGFyMSBpcyBwcm9iYWJseSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCwgd2hpbGUgc2NhbGFyMiBmZWVscyBtb3JlCiAgIGluIGtlZXBpbmcgd2l0aCB0aGUgZ2VuZXJhbCBldGhvcyBvZiB0aGUgaGFuZGxlciBtZWNoYW5pc20uCiAgIFdlIHByb2JhYmx5IG5lZWQgdG8gZGVjaWRlIHdoaWNoIHRvIGFkb3B0LCBhbmQganVuayB0aGUgb3RoZXIuCiAgIAoyMDAyLTA3LTE5IDE0OjI0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdXNlIG5ldCBhZ2VudHggcmV0aXJlcy90aW1lb3V0IGRzIHZhbHVlcwogICAKMjAwMi0wNy0xOSAxNDoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICByZWdpc3RlciBwYXJzZXIgZm9yIGFnZW50eFRpbWVvdXQgYW5kIGFnZW50eFJldHJpZXMgdG9rZW5zCiAgIAoyMDAyLTA3LTE5IDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uLWV4aXN0ZW50IG5zdEFnZW50KiBmaWxlcwogICAKMjAwMi0wNy0xOSAxNDoxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBtb3ZlIE9ORV9TRUMgdG8gZGVmaW5pdGlvbnMuaDsgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUyBkZWZhdWx0cwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGFkZCBBR0VOVFhfVElNRU9VVCBhbmQgQUdFTlRYX1JFVFJJRVMKICAgCjIwMDItMDctMTkgMTQ6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmg6CgogICBtb3ZlIGRlZmluaXRpb24gb2YgT05FX1NFQyBoZXJlIGZyb20gc25tcGQuYwogICAKMjAwMi0wNy0xOSAxMToyMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBwYXNzIGxvY2FsIG9iaiwgbm90IHJhbmRvbSB1bml0aWFsaXplZCBwb2ludGVyLjotKAogICAKMjAwMi0wNy0xOSAwNDowNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBIYW5kbGUgc3lzdGVtcyB3aGVyZSBNQVhQQVRITEVOIGlzbid0IGRlZmluZWQuCiAgIAoyMDAyLTA3LTE5IDAzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSB0aGUgInN5c3RlbS1pbmRlcGVuZGVudCIgU05NUF9NQVhQQVRIIGxlbmd0aCBkZWZpbml0aW9uIGluc3RlYWQgb2YgTUFYUEFUSExFTgogICAKMjAwMi0wNy0xOCAyMjowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSByZWZzIHRvIG5vbmV4aXN0ZW50IG1pYmdyb3VwL25zdEFnZW50TW9kdWxlT2JqZWN0LmgKICAgCjIwMDItMDctMTggMTk6NDQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMiApCiAgIAoyMDAyLTA3LTE4IDE5OjQzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC4yCiAgIAoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBtaW5vciBwYXRjaCBmb3Igbm9uLWV4aXN0ZW50IChkaWVkKSBsb2cgZmlsZXMuCiAgIAoyMDAyLTA3LTE4IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC4yCiAgIAoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIG1ha2UgZGVwZW5kIGZpeGVzLgogICAKMjAwMi0wNy0xOCAxODo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFsYXJtLmMsIGV2ZW50LmM6CgogICBtYWtlIHRoZSBybW9uIGNvZGUgY29tcGlsZS4KICAgIC0gbmV3IHN1YnRyZWUgcG9pbnRlciBzdHJ1Y3R1cmUuCiAgICAtIHNwcmludF9vYmppZCAtPiBzbnByaW50X29iamlkCiAgIAoyMDAyLTA3LTE4IDE4OjMyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHNpbGVuY2UgcGVybCBzdWJkaXJlY3RvcnkgYnVpbGQgY29tbWFuZHMuCiAgIAoyMDAyLTA3LTE4IDE4OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gVXNlIG5ldHNoIC10IC1kIHhtbCB0byBnZXQgeG1sIG91dHB1dCBmcm9tIG5ldHNoLgogICAgIChPaywgSSdtIHNpdHRpbmcgaGVyZSBhdCBhbiBJRVRGIGNvbmZlcmVuY2UgaGF2aW5nIGFuIGFyZ3VtZW50IGFib3V0CiAgICAgIHhtbCB2cyBCRVIgYW5kIG5lZWRlZCBhIFhNTCgtbGlrZSkgZXhhbXBsZSBvZiBhIGh1Z2UgZGF0YSBzZXQsIHNvIEkKICAgICAgbWFkZSBuZXRzaCBkbyBpdC4pCiAgIAoyMDAyLTA3LTE4IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBpbml0aWFsIHN1cHBvcnQgZm9yIGRvaW5nIHJlcXVlc3RzIGZyb20gbXVsdGlwbGUgaG9zdHMgKHJldHJpZXZhbCwgbm90IHNldHMpCiAgIAoyMDAyLTA3LTE4IDE3OjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIG1vcmUgZml4ZXMgdG8gc3RpbGwgdWdseSBjb2xvcml6ZWQgdGV4dCAod2VsbCwgdGhlIHRleHQgaXMgcHJldHR5IGJ1dAogICB0aGUgc3VwcG9ydCBpcyB1Z2x5KS4KICAgCjIwMDItMDctMTggMTc6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGNoYW5nZSB0ZXh0IHN0cmluZyBlcnJvciB0byBtYXRjaCBmdW5jdGlvbiBuYW1lIGNhbGxlZC4KICAgCjIwMDItMDctMTggMTU6MzEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIHJlbmFtZSBmcmVlIC0+IGNmcmVlIHRvIGF2b2lkIHNvbWUgcHJvYmxlbSB3ZXMgaGFkLi4uIDstKQogICAKMjAwMi0wNy0xOCAxNDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICB0d28gcGVvcGxlIGZpeGluZyBtZW1vcnkgbGVhayBpbiBkaWZmZXJlbnQgcGxhY2VzID0gc2VnZmF1bHQKICAgCjIwMDItMDctMTggMTE6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAkbmFtZSAtPiAkaQogICAKMjAwMi0wNy0xOCAxMDo1NiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIHVwZGF0ZSB0byB1c2UgY29udGFpbmVycwogICAKMjAwMi0wNy0xOCAwOTo0MCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWRlYnVnLXRva2VucywgLS1pbmRlbnQtb3B0aW9ucwogICAKMjAwMi0wNy0xOCAwOToxOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsIHNubXBsaWIvc25tcC10Yy5jCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBCdWcgIzU4MjM0NywgZm9yIElyaXggNi41IHN1cHBvcnQuCiAgIFN1Ym1pdHRlZCBieSBKYW4gWWVueWEgS2FzcHJ6YWsKICAgCjIwMDItMDctMTggMDk6MTIgIGR0czEyCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0yLXBhdGNoZXMuNSksIHNubXB0cmFwZC44LmRlZjoKCiAgIEZpeCBtYXJrdXAgcHJvYmxlbSBvbiBzbm1wdHJhcGQgbWFuIHBhZ2UgKEJ1ZyAjNTgzMzI5KQogICAKMjAwMi0wNy0xOCAwOToxMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBUaGUgZml4IGZvciB0aGUgdG1fZ210b2ZmIHByb2JsZW0gb24gQUlYIChCdWcgIzU2NTc2OSkgYWxzbyBhcHBsaWVzIHRvIEFJWCA1CiAgIAoyMDAyLTA3LTE4IDA5OjA2ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jIChWNC0yLXBhdGNoZXMuMSksIGVuY29kZV9rZXljaGFuZ2UuYwo6CgogICBGaXggb2ZmLWJ5LW9uZSBidWZmZXIgb3ZlcmZsb3cgKHBhdGNoICM1NzcyNjEpCiAgIAoyMDAyLTA3LTE4IDA4OjUxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBHZW5lcmF0ZSBvbmUgY29kZS1maWxlIHBlciB0YWJsZSAodG8gbWF0Y2ggdGhlIGhlYWRlciBzdHJ1Y3R1cmUpLgogICBNeSBhcG9sb2dpZXMgaWYgdGhpcyBpc24ndCBjb3JyZWN0LCBSb2JlcnQgLSBidXQgdGhlIHByZXZpb3VzIGJlaGF2aW91cgogICBzZWVtZWQgdG8gYmUgYnJva2VuLgogICAKMjAwMi0wNy0xOCAwODozNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgVGFja2xlIHNvbWUgb2YgdGhlIGltbWVkaWF0ZSBkZWZpY2llbmNpZXMgaW4gdGhlIGZpcnN0IGRyYWZ0IG9sZC1hcGkgY29uZmlnLgogICAoTm93IHRoYXQgV2VzIGhhcyBwb2ludGVkIG1lIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGRvY3VtZW50YXRpb24hKQogICAKMjAwMi0wNy0xOCAwODoyMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBGaXggdGhlICdkZWNsJyBzdWJzdGl0dXRpb24gaGFuZGxpbmcgKHNvIGl0IGRvZXNuJ3QgaW5jbHVkZSB0aGUgaW50ZXJuYWwgdG9rZW4gYXMgd2VsbCkuCiAgIAoyMDAyLTA3LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFByb3ZpZGUgdGhlIG1pc3NpbmcgcGFyYW1ldGVyIGluIGEgcmVhZF9vbmx5IGluc3RhbmNlIHJlZ2lzdHJhdGlvbi4KICAgCjIwMDItMDctMTggMDc6MDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oCjoKCiAgIEJyaW5nIHRoZSAncmVhZF9vbmx5X2ludCcgaW5zdGFuY2UgaGFuZGxlciBpbiBsaW5lIHdpdGggdGhlIHJlc3Qgb2YKICAgdGhlIGNvbnZlbmllbmNlIGluc3RhbmNlIGhhbmRsZXJzLgogICAoYW5kIGV2ZW4gYnJlYWsgdGhlIGhhYml0IG9mIGEgbGlmZXRpbWUgYW5kIGRlY2xhcmUgdGhlIHRoaW5nLi4uLikKICAgCjIwMDItMDctMTggMDU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBhbm90aGVyIG1lbW9yeSBsZWFrIGR1ZSB0byBhbiBpbXByb3BlciBpZmRlZmVkIG91dCBzZWN0aW9uIG9mIGNvZGUKICAgCjIwMDItMDctMTggMDQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEknbSBiZWdpbm5pbmcgdG8gcmVncmV0IGV2ZXIgcnVubmluZyBpbmRlbnQgb24gdGhlIGNvZGUgYmFzZS4uLgogICAKMjAwMi0wNy0xNyAxNTo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29uZjoKCiAgIGRvY3VtZW50IGFuZCBpbnN0YWxsIG1pYjJjLm9sZC1hcGkuY29uZgogICAKMjAwMi0wNy0xNyAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCBzZWdmYXVsdCAocG9zc2libHkgY3JlYXRpbmcgbWVtb3J5IGxlYWspOyBhdXRob3IgbmVlZHMgdG8gZXhhbWluZSBjb2RlCiAgIAoyMDAyLTA3LTE3IDA3OjQxICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmFycmF5LXVzZXIuY29uZiwgbWliMmMuY29uZiwKICAgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaW50X3dhdGNoLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuc2NhbGFyLmNvbmY6CgogICBEYXZlJ3MgYmVpbmcgdW5yZWFzb25hYmx5IHBpY2t5IGFib3V0IGdyYW1tYXIgJiBzcGVsbGluZyBhZ2Fpbi4KICAgSnVzdCBpZ25vcmUgaGltLCBhbmQgaGUnbGwgZ28gYXdheS4uLi4uCiAgIAoyMDAyLTA3LTE3IDA3OjIwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBJbml0aWFsIHN1cHBvcnQgZm9yIHRoZSBvbGQgNHgtc3R5bGUgYWdlbnQgQVBJIHVzaW5nIHRoZSBuZXcgdmVyc2lvbiBvZiBtaWIyYy4KICAgSXQgZG9lc24ndCBoYW5kbGUgdHlwZXMgcHJvcGVybHksIGFuZCBJJ20gc3VyZSBJJ2xsIGhhdmUgYnVnZ2VyZWQgdXAgc29tZSBvZgogICB0aGUgY29udHJvbCBzdHJ1Y3R1cmUgaGFuZGxpbmcsIGJ1dCBpdCBzZWVtcyB0byBnZW5lcmF0ZSBzb21ldGhpbmcgdGhhdCdzCiAgIHByZXR0eSBjbG9zZSB0byB0aGUgb2xkIG91dHB1dC4gICBJdCdzIGJldHRlciB0aGFuIG5vdGhpbmcuLi4uLgogICAKMjAwMi0wNy0xNiAyMjo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICByZXN0b3JlIGlubGluZSBmdW5jdGlvbnMgKHNpZ2guIEkgZmVlbCBsaWtlIEknbSBwbGF5aW5nIHJpbmctYXJvdW5kLXRoZS1yb3NpZSkKICAgCjIwMDItMDctMTYgMjE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVuYW1lIHNvbWUgc3RydWN0IG1lbWJlcnMgdG8gbWFrZSBjb2RlIGVhc2llciB0byByZWFkOyBhIGJpdCBvZiByZS1vcmRlcmluZwogICBpbiB0aGUgc2V0IGNvZGU7IG5ldyBmbGFncyBmb3IgbmV3IGFuZCBkZWxldGVkIHJvd3M7IHJvdyBkZWxldGVzIG5vdwogICBhY3R1YWx5IHdvcmshCiAgIAoyMDAyLTA3LTE2IDE5OjMyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoYW5nZSBjb21wbGV4IG1hY3JvcyBpbnRvIGZ1bmN0aW9ucy4gd291bGQgYmUgbmljZSBpZiBDIGhhZCBpbmxpbmUuCiAgIAoyMDAyLTA3LTE2IDE4OjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdW1tLCB0cnkgdXNpbmcgY29ycmVjdCBkZWZpbmUuOi0vCiAgIAoyMDAyLTA3LTE2IDE4OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgdGVzdCB0aGF0IG5ldC1zbm1wLWNvbmZpZy5oIGhhcyBiZWVuIGluY2x1ZGVkLCBpbnN0ZWFkIG9mIGFjdHVhbGx5IGluY2x1ZGluZyBpdC4uCiAgIChzaG91bGRuJ3QgdGhpcyByZWFsbHkgYmUgaW4gYWxsIHRoZSBoZWFkZXIgZmlsZXM/KQogICAKMjAwMi0wNy0xNiAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVwZGF0ZSBmb3IgY29udGFpbmVycwogICAKMjAwMi0wNy0xNiAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTE2IDExOjE2ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzIChncnVtYmxlIGdydW1ibGUpCiAgIAoyMDAyLTA3LTE2IDExOjE0ICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDExOjAyICByc3RvcnkKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5kZXBlbmQsIG1pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZmFjdG9yeS5jCiAgIAoyMDAyLTA3LTE2IDEwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIG5ldHNubXBfY29udGFpbmVyX2luaXRfbGlzdCgpIGluIHN0YXJ0dXAgaW5pdHMKICAgCjIwMDItMDctMTYgMTA6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsIHNubXBsaWIvb2lkX2FycmF5LmMKOgoKICAgcmVtb3ZlIHVudXNlZCBmaWxlcwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBjaGcgcGFyYW0gdHlwZSBmcm9tIHZvaWQqIHRvIHN0cnVjdCAqCiAgIAoyMDAyLTA3LTE2IDEwOjAzICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oOyBhZGQgZmFjdG9yeSwgYmluYXJ5IGFycmF5IC5bY2hdOyBkZXJpdmUKICAgT0JKUyBhbmQgTE9CSlMgZnJvbSBDU1JDUzsgYWRkIChvcHRpb25hbCkgYXV0byBkZXBlbmRlbmN5IGdlbmVyYXRpb24KICAgCjIwMDItMDctMTYgMDk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaDoKCiAgIHJlbW92ZSByZWNlbnRseSBkZWxldGVkIG9pZF9hcnJheS5oCiAgIAoyMDAyLTA3LTE2IDA5OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oOgoKICAgc3RydWN0IHN1YnRyZWUgLT4gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE2IDA5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgbGFzdCByZW1haW5pbmcgcmVmcyB0byBub3cgZGVmdW5jdCBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGdlbmVyaWMgYmluYXJ5IGFycmF5IGNvbnRhaW5lciBleHRyYWN0ZWQgZnJvbSBvaWRfYXJyYXkKICAgCjIwMDItMDctMTYgMDk6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oOyBuZXcgdHlwZWRlZiBzdHJ1Y3QgbmV0c25tcF9pbmRleCAob2lkIHB0ciArIGxlbikKICAgCjIwMDItMDctMTYgMDk6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBnZW5lcmljIGNvbnRhaW5lciBpbnRlcmZhY2U7IHVzZSBuZXcgbmV0c25tcF9pbmRleCBpbnN0ZWFkIG9mCiAgIG9pZF9hcnJheV9oZWFkZXI7IHJlbmFtZSBhcnJheV9ncm91cCAtPiByZXF1ZXN0X2dyb3VwCiAgIAoyMDAyLTA3LTE2IDA5OjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGFkZCBpdGVyYXRvcnM7IG1vcmUgZnVuY3Rpb24gdHlwZWRlZnM7IHJlbmFtZSBzb21lIGZ1bmMgcHRycywgYWRkIGZpbmRfbmV4dCwKICAgZ2V0X3N1YnNldCwgZ2V0X2l0ZXJhdG9yLCBmb3JfZWFjaCwgbmNvbXBhcmU7IGFkZCBhYmlsaXR5IHRvIGhhdmUgbmVzdGVkCiAgIGNvbnRhaW5lcnM7IG1vcmUgdXRpbGl0eSByb3V0aW5lczsgY29udmVuaWVuY2UgbWFyY3Jvczsgc3RhcnQgYWRkaW5nIGNvbW1lbnRzCiAgIAoyMDAyLTA3LTE2IDA5OjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaDoKCiAgIGRlY2xhcmF0aW9ucyBmb3IgYSBnZW5lcmljIGZhY3RvcnkKICAgCjIwMDItMDctMTYgMDg6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2R5bml4LmMsIG1lbW9yeV9ocHV4LmMKLCB2bXN0YXRfZHluaXguYywgdm1zdGF0X2hwdXguYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gYnVnIHJlcG9ydCA1ODE2MTggKGFsc28gYXBwbGljYWJsZSB0byBkeW5peCkKICAgUHJvdmlkZWQgYnkgTmljaG9sYXMgTC4gTmlnYXkKICAgCjIwMDItMDctMTYgMDY6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBPSUQvT0lELnBtLCBhZ2VudC9hZ2VudC5wbSwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICByZW1vdmUgIm91ciIgcHJvYmxlbSBhbmQgdXNlIG9sZGVyICJ1c2UgdmFycyIgaW5zdGVhZCBmb3Igb2xkZXIgcGVybC4KICAgICAodGhpcyBzaG91bGQgbWFrZSBpdCB3b3JrIHdpdGggcGVybCA1LjAwNS4gIENvdWxkIHNvbWUgb25lIHRlc3QgdGhpcwogICAgICBmb3IgbWU/KQogICAKMjAwMi0wNy0xNSAwNjo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gbmFtZXMgb2YgbmV0c25tcF9zdWJ0cmVlIGVsZW1lbnRzIGNoYW5nZWQKICAgCjIwMDItMDctMTUgMDY6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTE1IDA1OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIFNvbWUgcmVhbGx5IG5hc3R5IGhhY2tzIHRvIGdldCBjb2xvcml6ZWQgdGFibGVzIHRvIHdvcmsuCiAgIAoyMDAyLTA3LTE0IDIwOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG1pYi50OgoKICAgY29tbWVudCBvdXQgYnJva2VuIHRlc3RzIGZvciBub3cgKFhYWCBtYXJrZWQpCiAgIAoyMDAyLTA3LTE0IDIwOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBnZXRidWxrLgogICAKMjAwMi0wNy0xNCAyMDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEEgbmV3IGZ1bmN0aW9uIHRvIGNhbGwgYSBzdWItaGFuZGxlciBidXQgcGFzc2luZyBpdCBvbmx5IG9uZSByZXF1ZXN0IHRvIGhhbmRsZS4KICAgCjIwMDItMDctMTAgMjE6MjEgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGRlZmluZSBMT0dfREFFTU9OLCBzaW5jZSB3aW5kb3dzIGRvZXNuJ3QgaGF2ZSBpdAogICAKMjAwMi0wNy0xMCAyMTowNyAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIGRlZmluZSBvZiBpbl9hZGRyX3QsIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiBuZXQtc25tcC90eXBlcy5oCiAgIAoyMDAyLTA3LTEwIDAyOjM2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0xMCAwMjozNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIGRvbid0IHVzZSAwIGluICVwIGZvcm1hdCBzcGVjaWZpZXJzCiAgIAoyMDAyLTA3LTEwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gZml4IHNvbWUgaG9ycmlibGUgaW5kZW50IGJyb2tlbiBmb3JtYXR0aW5nCiAgIAoyMDAyLTA3LTEwIDAyOjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSByZW1vdmUgc29tZSBvYnNvbGV0ZSB2YXJpYWJsZXMKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gcmVmbGVjdCBjaGFuZ2VkIGZ1bmN0aW9uIG5hbWVzIGZyb20gYWdlbnRfcmVnaXN0cnkKICAgCjIwMDItMDctMTAgMDI6MzIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgICAtIGNoYW5nZXMgZHVlIHRvIHJlbmFtaW5nIG9mIHN0cnVjdCBzdWJ0cmVlIHRvIG5ldHNubXBfc3VidHJlZQogICAgIC0gTk9URSBNRU1PUlkgTEVBSyAod2hpY2ggSSBjYW4ndCBzZWUgaG93IHRvIGZpeCAtLSBuZXcgYWdlbnQgQVBJCiAgICAgICBleHBlcnRzIHBsZWFzZSBleGFtaW5lKQogICAKMjAwMi0wNy0xMCAwMjoyOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBuYW1lLCBzdGFydCwgZW5kIG1lbWJlcnMgYXJlIG5vdyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdG8gcmVkdWNlCiAgICAgICB3YXN0ZWQgbWVtb3J5IChieSBhIGZhY3RvciBvZiA1IG9yIHNvKQogICAgIC0gZnVuY3Rpb25zIGFyZSByZW5hbWVkIGNvbnNpc3RlbnRseQogICAKMjAwMi0wNy0xMCAwMjoyMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50LzogYWdlbnRfcmVnaXN0cnkuaCwKICAgbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuaAosIHZhcl9zdHJ1Y3QuaDoKCiAgICAgLSBzdHJ1Y3Qgc3VidHJlZSByZW5hbWVkIHRvIG5ldHNubXBfc3VidHJlZQogICAKMjAwMi0wNy0wOSAwNjowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSBjYWNoZV9pZCBzdG9yYWdlIHdoZW4gY2xvc2luZyBzZXNzaW9uCiAgIAoyMDAyLTA3LTA5IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBqdXN0IGNhbGwgbmV0c25tcF9kc19zaHV0ZG93bigpIG9uY2UgaW4gc25tcF9zaHV0ZG93bigpCiAgIAoyMDAyLTA3LTA5IDA0OjE1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG5ldHNubXBfZml4dXBfbWliX2RpcmVjdG9yeSgpCiAgIAoyMDAyLTA3LTA5IDAzOjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIGEgY2FzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA4IDIyOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgZXh0ZXJuIEMgZm9yIEMrKyBjb21waWxlcwogICAKMjAwMi0wNy0wOCAwNzoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgICAtIHJlbW92ZSBvYnNvbGV0ZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTA3LTA3IDE5OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTA3IDE5OjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDctMDcgMTk6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgcHJvYy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDcgMTk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsIGhvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFycwogICAKMjAwMi0wNy0wNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMDctMDcgMTg6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgbWFrZSBwYXJhbSBjb25zdDsgZml4IGNvbXBpbGUgY29uc3Qgd2FybmluZwogICAKMjAwMi0wNy0wNyAxODoyNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZzsgZml4IG1lbW9yeSBsZWFrOyBwcmVwIGEgZmV3IGNvbW1lbnRzIGZvciBpbmRlbnQKICAgCjIwMDItMDctMDYgMTQ6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yLnByZTEgKQogICAKMjAwMi0wNy0wNiAxNDoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgY2hhbmdlIHByb2plY3QgdmVyc2lvbiB0byA1LjAuMgogICAKMjAwMi0wNy0wNiAxNDowOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgc25tcHRyYXBkIGlzIGFjdHVhbGx5IGJ1aWx0IGluIHRoZSBhcHBzIGRpcmVjdG9yeSwgbm90IHRoZSBhZ2VudCBkaXJlY3RvcnkuCiAgIAoyMDAyLTA3LTA1IDExOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBjbGFyaWZ5IGRpcmVjdGlvbnMgZm9yIG9idGFpbmluZyBwZXJsL1NOTVAgbW9kdWxlLgogICAKMjAwMi0wNy0wNSAwNToxOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSAuLi4KICAgCjIwMDItMDctMDUgMDM6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHgvY2xpZW50LmMsIG1pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBzeXNPYmplY3RJRCB3YXMgYmVpbmcgcmV0dXJuZWQgbWludXMgaXRzIGxhc3Qgc3ViLWlkZW50aWZpZXIgYmVjYXVzZQogICAgICAgdGhlIGxlbmd0aCB2YXJpYWJsZSBoYWQgbm90IGJlZW4gdXBkYXRlZCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgaXQKICAgICAgIGlzIG5vdyBsb25nZXIuICBDb2RlIGNoYW5nZWQgdG8gdXNlIHNpemVvZigpIGluc3RlYWQsIHNvIHRoaXMgd29uJ3QKICAgICAgIGhhcHBlbiBhZ2Fpbi4gIFJlcG9ydGVkIGJ5IFN0aWFuIFNvaWxhbmQgKGJ1ZyAjNTc3NDM5KS4KICAgCjIwMDItMDctMDQgMTA6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcAogICAKMjAwMi0wNy0wNCAwNzowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgaGFuZGxpbmcgb2Ygb3BhcXVlIHBvaW50ZXIgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzIHRvCiAgICAgICBhdm9pZCBib3RoIG11bHRpcGxlIGZyZWUoKSBwcm9ibGVtIGFuZCB1bm5lY2Vzc2FyeSBjb3B5aW5nLgogICAKMjAwMi0wNy0wNCAwNjowMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIChWNC0yLXBhdGNoZXMuWzUsOV0pLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBOZXR3b3JrRGlzayBwYXRjaCAjNTU0NTU0CiAgIAoyMDAyLTA3LTA0IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgKICAgKFY0LTItcGF0Y2hlcy5bNSwxXSksIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgTkZTIGZpbGVzeXN0ZW0gcGF0Y2ggIzU1NDU1MwogICAoc2ltcGxpZmllZCB0byBhdm9pZCB0aGUgcmUtaW5kZW50YXRpb24gLSB3aGljaCBtYWtlcyBpdCBlYXNpZXIgdG8gc2VlCiAgICB3aGF0J3MgY2hhbmdlZC4gIFRoZSB3aG9sZSBIb3N0UmVzIGdyb3VwIG5lZWRzIGNsZWFuaW5nIHVwIGFueXdheSEpCiAgIAoyMDAyLTA3LTA0IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnN1cmUgdHJhbnNwb3J0IG9wYXF1ZSBkYXRhIGlzbid0IG11bHRpcGx5IGFzc2lnbmVkCiAgIChhbmQgaGVuY2UgbXVsdGlwbHkgZnJlZWQpIGZvciBzdHJlYW0tYmFzZWQgdHJhbnNwb3J0cy4KICAgRGF0YWdyYW0tYmFzZWQgdHJhbnNwb3J0cyBkb24ndCBzdWZmZXIgZnJvbSB0aGlzIHByb2JsZW0uCiAgIEJhc2VkIG9uIFBhdGNoIDU3Mzc3MQogICAKMjAwMi0wNy0wMyAxNjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgYmUgcHJlY2lzZSBhYm91dCB3aGF0IGZpbGUgbmVlZHMgdG8gYmUgY29uZmlndXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wKICAgCjIwMDItMDctMDMgMTQ6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgZml4IG1pbm9yIGdyYW1tYXIgZXJyb3JzOyBhZGQgZGVzY3IgZm9yIG1pYjJjLmFycmF5LXVzZXI7IGFkZCBzZWN0aW9uIGhlYWRlcgogICBmb3IgZ2VuZXJhdGluZyBoZWFkZXIgZGVmaW5pdGlvbiBmaWxlcwogICAKMjAwMi0wNy0wMyAxMzoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiB0eXBlcy5oLCBsaWJyYXJ5L3N5c3RlbS5oOgoKICAgbW92ZSBpbmNsdWRlIGZvciBpbl9hZGRyX3QgdG8gbmV0LXNubXAvdHlwZXMuaCwgd2hlcmUgaW5fYWRkcl90IGlzIGRlZmluZWQKICAgZm9yIHN5c3RlbXMgdy9vdXQgbmV0aW5ldC9pbi5oCiAgIAoyMDAyLTA3LTAzIDEyOjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBtb3JlIHR3ZWFrcyBub3RpY2VkIG9uIHRoZSBtYWlsaW5nIGxpc3QKICAgCjIwMDItMDctMDMgMDg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvdGVzdC5wbDoKCiAgIG1ha2UgdGVzdCBjbGVhbnVwcyB0ZXN0LnBsCiAgIAoyMDAyLTA3LTAzIDAzOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYyAoVjQtMi1wYXRjaGVzLjEpLCB1dGlsX2Z1bmNzLmMKOgoKICAgU2h1dCB0aGUgYWdlbnQgZG93biBjbGVhbmx5IGJlZm9yZSByZXN0YXJ0aW5nLgogICBUaGlzIGNsb3NlcyBhbnkgU05NUC9BZ2VudFggcG9ydHMgYXMgd2VsbC4KICAgCjIwMDItMDctMDMgMDM6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE9JRCBzdWItaWRlbnRpZmllcnMgYXJlIHVuc2lnbmVkLCBzbyB0cmVhdGluZyB0aGVtIGFzIHNpZ25lZCBjYW4KICAgZ2l2ZSB0aGUgd3JvbmcgcmVzdWx0cyB3aXRoIGxhcmdlIHZhbHVlcy4KICAgCjIwMDItMDctMDMgMDM6MjAgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmggKFY0LTItcGF0Y2hlcy41KSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgRW5zdXJlIGluX2FkZHJfdCBpcyBkZWZpbmVkLgogICAKMjAwMi0wNy0wMyAwMjozNCAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBUZXN0aW5nIGZvciA8c3lzL2Rpc2tsYWJlbC5oPiByZXF1aXJlcyA8bWFjaGluZS90eXBlcy5oPiBvbiBOZXRCU0QgMS41LgogICBSZXBvcnRlZCBieSBGZWxpY2lhIE5lZmYuCiAgIChBcHBhcmVudGx5IGZyb20gdGhlIE5ldEJTRCBidWcgZGF0YWJhc2UgLSB3aHkgdGhleSBkaWRuJ3QgdGVsbCB1cyBhYm91dAogICBpdCBpcyBhIG15c3RlcnkgdG8gbWUuLi4uKQogICAKMjAwMi0wNy0wMyAwMjoxOSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHRoZSBkZWZhdWx0IHZhbHVlIGZvciBzeXNPYmplY3RJRCBhcyByZXBvcnRlZCBpbiB0aGUgY29uZmlndXJlIC0taGVscCBvdXRwdXQuCiAgIChUaGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgY29ycmVjdCAtIGl0J3MganVzdCB0aGUgaGVscCBvdXRwdXQgdGhhdCdzIHdyb25nKS4KICAgU3BvdHRlZCBieSBTYW5kaHlhIFNhdHlhbmFyYXlhbi4KICAgCjIwMDItMDctMDIgMjM6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICB1cGRhdGUgdGV4dCBmb3IgdmFyaW91cyAuY29uZiBmaWxlcwogICAKMjAwMi0wNy0wMiAxMzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgZml4ZXMgbm90ZWQgb24gdGhlIG1haWxpbmcgbGlzdCBieSBQYXRyaWNlIEthZGlvbmlrIDxrYWRpb25pa0BlbnNlaXJiLmZyPgogICAKMjAwMi0wNy0wMiAwMjozOSAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgQWRkIHRoZSAnc25tcGQnIGFuZCAnc25tcHRyYXBkJyBiaW5hcnkgbmFtZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHBhdGhzCiAgIHdoZW4gc2V0dGluZyB1cCB0aGUgdGVzdGluZyBmcmFtZXdvcmsuCiAgIAoyMDAyLTA3LTAxIDA3OjUzICBkdHMxMgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuOCksIGFzbjEuYzoKCiAgIEVuY29kZS9EZWNvZGUgT0lEcyBvZiB0aGUgZm9ybSAyLlggKFggPiA0MCkgY29ycmVjdGx5LgogICAKMjAwMi0wNy0wMSAwMjo0MCAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggaG9ycmlibGUgZm9ybWF0dGluZyBpbiBoZWxwIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAyLTA3LTAxIDAyOjIzICBkdHMxMgoKICAgKiBzZWRzY3JpcHQuaW46CgogICBQaWNrIHVwIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gZm9yIHRoZSByb290IG9mIHRoZSBVQ0QgZXh0ZW5zaWJsZSBhZ2VudCB0YWJsZXMKICAgKHNvIHRoYXQgdGhlIEVYQU1QTEUuY29uZiBmaWxlIGdldHMgc2V0IHVwIHdpdGggdGhlIGNvcnJlY3QgbnVtZXJpYyBPSURzKQogICAKMjAwMi0wNi0yOCAwNjo0NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdGNwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yOCAwNDo0MSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgVXBkYXRlIGRlZmF1bHQgc3RvcmUgcmV0cmlldmFsIGZ1bmN0aW9ucyB0byB1c2UgdGhlIGNvcnJlY3QgbmFtZS4KICAgCiAgIE5vdGUgdGhhdCB0aGlzIHRlc3Qgc2NyaXB0IGFwcGVhcnMgdG8gaW5jbHVkZSB0d28gaW5maW5pdGUgbG9vcHMuCiAgIEknbSBub3QgY2xlYXIgaG93IHRoaXMgaXMgZXhwZWN0ZWQgdG8gcnVuIHN1Y2Nlc3NmdWxseSA/CiAgIAoyMDAyLTA2LTI4IDA0OjM5ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmVtb3ZlIHJlZmVyZW5jZSB0byBub24tZXhpc3RlbnQgZGVndWdnaW5nIGZ1bmN0aW9uLgogICAKMjAwMi0wNi0yOCAwNDozNyAgZHRzMTIKCiAgICogcGVybC9tYW5hZ2VyLzogTWFrZWZpbGUuUEwsIGRpc3BsYXl0YWJsZS5wbSwKICAgZ2V0VmFsdWVzLnBtLCBtYW5hZ2VyLnBtLCBzbm1wdG9zcWw6CgogICBCcmluZyBwZXJsICdtYW5hZ2VyJyBtb2R1bGUgdW5kZXIgdGhlIE5ldFNOTVAgYmFubmVyCiAgIChib3RoIGluIHRlcm1zIG9mIG1vZHVsZSBncm91cCBuYW1lLCBhbmQgcmVmZXJlbmNlcyB0byAndWNkLXNubXAnKS4KICAgUmVtb3ZlIHNvbWUgVUNELXNwZWNpZmljIHNldHRpbmdzLgogICAKICAgTm90ZSB0aGF0IHNubXB0b3NxbCBzdGlsbCByZWZlcnMgZXhwbGljaXRseSB0byBXZXMnIFVDRCBlbWFpbCBhZGRyZXNzLAogICBhbmQgbWFuYWdlci5wbSB0byBXZXMnIFVDRCBmaWxlc3RvcmUgcGF0aC4gIFRoZSByZWxldmFudCBsaW5lcyBoYXZlCiAgIGJlZW4gaGlnaGxpZ2h0ZWQsIHRvIGVuY291cmFnZSBhbnlvbmUgd2lzaGluZyB0byB1c2UgdGhpcyB0byBjaGFuZ2UgdGhlbS4KICAgCjIwMDItMDYtMjggMDQ6MTIgIGR0czEyCgogICAqIHBlcmwvOiBBbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgU05NUC9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIG1hbmFnZXIvTWFrZWZpbGUuUEw6CgogICBSZW1vdmUgY2hlY2tpbmcgZm9yICJpbnRlcm5hbCIgcHJlcmVxdWlzaXRlcywgc28gdGhhdCAicGVybCBNYWtlZmlsZS5QTCIKICAgYXQgdGhlIHRvcCBsZXZlbCB3aWxsIHdvcmsgLSBldmVuIG9uIGEgcHJpc3RpbmUgc3lzdGVtLgogICAKICAgUW46CiAgICAgSXMgaXQgbmVjZXNzYXJ5L2Rlc2lyYWJsZSB0byBzZXBhcmF0ZSB0aGUgTmV0U05NUCBtb2R1bGVzIHRvIHRoaXMgZXh0ZW50PwogICBXb3VsZCBpdCBub3QgYmUgc2ltcGxlciB0byBoYXZlIGFsbCBvZiB0aGUgbWFpbiAucG0vLnhzIGZpbGVzIGluIGEgc2luZ2xlCiAgIE5ldFNOTVAgZGlyZWN0b3J5LCBhbmQgY29tcGlsZS9pbnN0YWxsIHRoZW0gYWxsIGZyb20gdGhlcmU/CiAgIAoyMDAyLTA2LTI4IDAxOjQ1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENoZWNrIGZvciAtLXdpdGgtZW50ZXJwcmlzZSAoZXQgYWwpIGJlaW5nIGludm9rZWQgd2l0aG91dCBhIHZhbHVlLCBhbmQgYm9tYiBvdXQuCiAgIAoyMDAyLTA2LTI3IDIxOjQzICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBuZXcgUkVBRE1FIGRldGFpbmxpbmcgdGhlIHVzZSBvZiBTRklPIHRvIGNpcmN1bXZlbnQgdGhlIDI1NSBmZCBsaW1pdCBvbgogICBzb2xhcmlzLgogICAKMjAwMi0wNi0yNyAxMTowOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgcmVtb3ZlIGNoYW5naW5nIGFycmF5OyBhZGQgbmV0c25tcF90YWJsZV9hcnJheV9yZW1vdmVfcm93KCkKICAgCjIwMDItMDYtMjcgMDQ6MTUgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgU29tZSB2ZXJzaW9ucyBvZiAnbWFrZWRlcGVuZCcgKGUuZy4gUmVkSGF0IDcuMSksIGNhbid0IGhhbmRsZSAiLW9zdWZmaXgiCiAgIGFzIGEgc2luZ2xlIG9wdGlvbi4gIEFsbCB2ZXJzaW9ucyBzZWVtIGhhcHB5IHdpdGggIi1vIHN1ZmZpeCIgc28gdXNlIHRoYXQuCiAgIAoyMDAyLTA2LTI3IDAzOjMxICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIEVOVl9TRVBBUkFUT1JfQ0hBUiByYXRoZXIgdGhhbiBoYXJkd2lyaW5nICc6JyBpbiBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5CiAgIChhcyBzdWdnZXN0ZWQgYnkgUm9iZXJ0KQogICAKMjAwMi0wNi0yNyAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSByZW1vdmUgdHJhbnNwb3J0IHNwZWNpZmllciBhbmQgcG9ydCBudW1iZXIgZnJvbSBzdHJpbmdzIHJldHVybmVkCiAgICAgICBmcm9tIHNubXBfdWRwX2ZtdGFkZHIoKSB3aGljaCBicmVhayB0Y3Bfd3JhcHBlcnMgKGFuZCBwZXJoYXBzCiAgICAgICBvdGhlciB0aGluZ3MpLgogICAKMjAwMi0wNi0yNyAwMzowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfbWliLmMKOgoKICAgVmFsaWRhdGUgbmV3IHNubXBFbmFibGVBdXRoZW5UcmFwcyB2YWx1ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KICAgU3BvdHRlZCAmIGZpeGVkIGJ5IFNoYW50aGEgS3VtYXJhCiAgIAoyMDAyLTA2LTI1IDE0OjA5ICByc3RvcnkKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBhZGQgQVBQVE9QUyAoLUNxKSBmb3Igc3VwcHJlc3Npbmcgb3V0cHV0IG9mIHNldCByZXN1bHRzIG9uIHN1Y2Nlc3MKICAgCjIwMDItMDYtMjUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIEFwcGx5IHBhdGNoICM1NTk4NDggdG8gdXNlIHRoZSAvcHJvYyBwc2V1ZG8tZmlsZXN5c3RlbSB1bmRlciBMaW51eAogICAocmF0aGVyIHRoYW4gcGFyc2luZyB0aGUgb3V0cHV0IG9mIHBzKQogICAKMjAwMi0wNi0yNSAwODo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBDaGVjayBmb3IgJ2FpeDQnICh3aGljaCBpcyB0aGUgdG9rZW4gZGVmaW5lZCBpbiB0aGUgc3lzdGVtIGhlYWRlciBmaWxlKQogICByYXRoZXIgdGhhbiAnYWl4Jy4gICBTZWUgYnVnICM1NjU3NjkKICAgCjIwMDItMDYtMjUgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFRyZWF0ICcwJyBhcyBhbiBpbnZhbGlkIGluZGV4IGZvciBhICJzaW1wbGUgdGFibGUiLgogICAKMjAwMi0wNi0yNSAwNzozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzeXNDb250YWN0LjAgYW5kIHN5c0xvY2F0aW9uLjAKICAgY29uZmlndXJhdGlvbiB0b2tlbnMuCiAgIAoyMDAyLTA2LTI1IDA2OjQwICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMuYm90LAogICBkZWZhdWx0X3N0b3JlLjMudG9wOgoKICAgICAtIGFkZCBuZXRzbm1wXyBwcmVmaXggdG8gZGVmYXVsdF9zdG9yZSBmdW5jdGlvbnMKICAgCiAgICAgLSBjbGVhbiB1cCBtYW5wYWdlIGEgYml0CiAgIAogICAgIC0gZml4IGJyZWFrYWdlIGluIGdlbmVyYXRpb24gb2YgZGVmYXVsdF9zdG9yZS4zLmggZHVlIHRvIGF1dG8taW5kZW50YXRpb24KICAgICAgIG9mIGRlZmF1bHRfc3RvcmUuaAogICAKMjAwMi0wNi0yNSAwMjo1NSAgamJwbgoKICAgKiBFWEFNUExFLmNvbmYuZGVmIChWNC0yLXBhdGNoZXMuMyksIEVYQU1QTEUuY29uZi5kZWY6CgogICAgIC0gbWVudGlvbiB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24gZXQgYWwuIGluIHNubXBkLmNvbmYgbWFrZXMgdGhlbQogICAgICAgcmVhZC1vbmx5CiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugc3ludGF4IG9mIGFsbCBleGFtcGxlIGNvbW1hbmQgbGluZSB0b29scyB0byB1c2UgbmV3ZXIKICAgICAgIC1jIENPTU1VTklUWSBzeW50YXggbm90IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAoyMDAyLTA2LTI0IDA4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIG1ha2UgYnVmZmVyIHNpemUgaW5jcmVhc2Ugbm90ZSBhIGRlYnVnIHN0YXRlbWVudCByYXRoZXIgdGhhbiBhIGdlbmVyaWMKICAgbG9nIHN0YXRlbWVudC4KICAgCjIwMDItMDYtMjMgMTg6NDAgIGRyaWVodWlzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgSGFuZGxlIENPVU5URVI2NCBpbiBfX3RyYW5zbGF0ZV9hc25fdHlwZS4KICAgCjIwMDItMDYtMjMgMTY6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNjcmlwdCBhbmQgdGhlIGxhbmd1YWdlIGl0IGhvdXNlcy4KICAgICAobWFuIHBhZ2UgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgY29udGFpbmVkIHBvZCBkb2N1bWVudGF0aW9uKQogICAKMjAwMi0wNi0yMyAxNTowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIHVwZGF0ZSB0byByZWZlcmVuY2UgdG9wIGxldmVsIE1ha2VmaWxlLlBMCiAgIAoyMDAyLTA2LTIzIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnhzIChWNC0yLXBhdGNoZXMuMSksIFNOTVAueHM6CgogICBmaXggcmVwb3J0ZWQgYnkgV2lsbGVtIERla2tlciBmb3IgV2luZG93cy4gIEJ1ZyAjNTQzMTk0IGZpeGVkLgogICAKMjAwMi0wNi0yMiAwODozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IG1ldGhvZG9sb2dpZXMKICAgCjIwMDItMDYtMjEgMTY6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZmluYWwgKGhvcGVmdWxseSEpIGZpeCBmb3IgcGFyc2luZyBpcCBhZGRyZXNzZXMgZnJvbQogICAiRmNvLiBKYXZpZXIgUmlkcnVlam8iIDxhY2JyaXBlZkBzaS5laHUuZXM+CiAgIAoyMDAyLTA2LTE5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZnJvbSBkb3h5Z2VuCiAgIAoyMDAyLTA2LTE5IDExOjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmludF93YXRjaC5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIHNjYWxhciBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBnZW5lcmF0aW5nIHNjYWxhciBjb2RlLgogICAKMjAwMi0wNi0xOSAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgY2xlYW4gdXAgbXVsdGktbGluZSBjb21tZW5kIHdoaWNoIHdhcyBtZXNzZWQgdXAgYnkgaW5kZW50LgogICAKMjAwMi0wNi0xOSAxMTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICAtIGFkZCBzdXBwb3J0IGZvciBwcm9tcHRpbmcgb2YgdW5rbm93biBwYXJhbWV0ZXJzIHRvIGFsaWFzZXMuCiAgIC0gbWlzYyBvdGhlciBpbXByb3ZlbWVudHMgKGxpa2UgInJlaGFzaCIpCiAgIAoyMDAyLTA2LTE5IDExOjM4ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggZm9yIG5ldyBkZWZhdWx0IHN0b3JlIEFQSQogICAKMjAwMi0wNi0xOSAxMToyOSAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5tYWtlZmlsZXMsCiAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBBUkdHR0dHRwogICBJIGxvdmUgcGVybC4KICAgSSBoYXRlIHBlcmwncyBtYWtlIHN5c3RlbS4KICAgSSBoYXRlIHRoZSBmYWN0IHRoYXQgcGVybCBzZWdmYXVsdHMgaWYgR2V0T3B0aW9ucygpIGlzIGNhbGxlZCBtb3JlCiAgIHRoYW4gb25jZS4KICAgc2lnaC4KICAgVGhpcyBob3BlZnVsbHkgd2lsbCBmaXggdGhlIHBlcmwgbW9kdWxlIGJ1aWxkIHJvdXRpbmVzIHNvIGl0IGF0IGxlYXN0CiAgIHdvcmtzIChidXQgaXQncyBzdGlsbCB1Z2x5IGFuZCBjb3VsZCB1c2UgbW9yZSBjbGVhbmluZykuCiAgIAoyMDAyLTA2LTE5IDA3OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGluZmludGUgbG9vcCBhbmQgYWRkIGRlYnVnIGluIHJlbW92ZV9kZWxlZ2F0ZWQKICAgCjIwMDItMDYtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIE5VTEwgdGhlIHByaXYgcG9pbnRlciBvbiBzZXNzaW9uIGR1cGxpY2F0aW9uLiAgdGhhbmtzIHRvIHJleml0b3oKICAgCjIwMDItMDYtMTcgMDY6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIENoYW5nZWQgS2F0c3VoaXNhJ3MgZW1haWwgYWRkcmVzcywgb24gcmVxdWVzdAogICAKMjAwMi0wNi0xNCAwNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzU2OTAyMTogZnJvbSBMYXVyaSBNeWxsYXJpCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gdGhlIHRhYmxlIGl0ZXJhdG9yIHN1cHBvcnQuCiAgIAoyMDAyLTA2LTE0IDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBsaWVkIHBhdGNoICM1NjkwMjAgZnJvbSByZXppdG96IG9uIElSQyB0byBmaXggbm9uLWluaXRpYWxpemVkIHZhcmlhYmxlCiAgIAoyMDAyLTA2LTE0IDAzOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmM6CgogICBBZGQgKG51bGwpIGNvbnRleHQsIHRvIGJyaW5nIGludG8gbGluZSB3aXRoIHRoZSB2NSByZWdpc3RyeSBBUElzLgogICBGaXhlcyBidWcgNTY4NTgwLgogICAKMjAwMi0wNi0xNCAwMjoyNyAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgVXNlIG1hdGNoaW5nICcgYW5kICIgcXVvdGVzIGZvciBBSVggY29uZmlndXJlIHRlc3QuCiAgIE1lbnRpb25lZCBpbiBwYXNzaW5nIGluIGJ1ZyA1NjU3NjkuCiAgIAoyMDAyLTA2LTEzIDE0OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9jb25mLnQ6CgogICBmaXggZGVmYXVsdF9zdG9yZSByb3V0aW5lcwogICAKMjAwMi0wNi0xMiAwNjo0MyAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBCcmluZyBXaW5kb3dzIE9JRCB1c2FnZSBpbnRvIGxpbmUgd2l0aCB0aGUgbWFpbiBjb25maWcgZmlsZSBzZXR0aW5ncy4KICAgCjIwMDItMDYtMTIgMDY6MzcgIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDb3JyZWN0IHRoZSBkZWZhdWx0IEVudGVycHJpc2UgT0lEIHVzZWQgaW4gdHJhcHMsIHRvIGF2b2lkIGEgcmVwZWF0ZWQgMAogICBzdWJpZGVudGlmaWVyLiAgKEZpeGVzIGJ1ZyAjNTY2OTE3KQogICAKMjAwMi0wNi0xMiAwNToxNCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVmaW5lICdsZW5ndGgnIGFzIGEgc2lnbmVkIHZhcmlhYmxlLCBzbyBpdCBjYW4gaGFuZGxlIGFuIGVycm9yIHZhbHVlIG9mIC0xLgogICBSZXBvcnRlZCBieSBKb2FraW0gQWx0aGluaS4KICAgCjIwMDItMDYtMTIgMDM6MTEgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIE1ha2Ugc3VyZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV4dCBsaW5rIGlzIHByb3Blcmx5IHNhdmVkLCBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIFByb2JsZW0gZGlzY292ZXJlZCBieSBIdWdvIENhY290ZS4KICAgCjIwMDItMDYtMTIgMDI6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhZ2VudC9hZ2VudF9pbmRleC5oLCBhZ2VudC9hZ2VudF90cmFwLmgKLCBhZ2VudC9hbGxfaGVscGVycy5oLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2J1bGtfdG9fbmV4dC5oLCBhZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGFnZW50L21pYl9tb2R1bGVzLmgsIGFnZW50L211bHRpcGxleGVyLmgsIGFnZW50L251bGwuaAosIGFnZW50L29sZF9hcGkuaCwgYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGFnZW50L3NlcmlhbGl6ZS5oLCBhZ2VudC9zZXRfaGVscGVyLmgsCiAgIGxpYnJhcnkvY211X2NvbXBhdC5oLCBsaWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsIGxpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVRFBEb21haW4uaCwgbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBsaWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIGxpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGxpYnJhcnkvc25tcF9zZWNtb2QuaCwgbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBsaWJyYXJ5L3VjZF9jb21wYXQuaDoKCiAgIFN1cHBseSBtaXNzaW5nICNpZm5kZWYvI2RlZmluZS8jZW5kaWYgYW5kIGV4dGVybiAiQyIge30gd3JhcHBlcnMKICAgCjIwMDItMDYtMTEgMTc6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVtb3ZlIHNwdXJpb3VzIHByaW50ZiB0byBzdGRlcnIKICAgCjIwMDItMDYtMTEgMTQ6MjEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBhZGQgZXh0ZXJuICJDIjsgYWRkIHZvaWRfYXJyYXkgc3RydWN0CiAgIAoyMDAyLTA2LTExIDE0OjIwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHRzZWFyY2g7IHVzZSBuZXcgY29udGFpbmVyIGluc3RlYWQKICAgCjIwMDItMDYtMTEgMTQ6MTkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICB1c2UgY29udGFpbmVyIGZvciBzZWNvbmRhcnkgaW5kZXgKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNvbnRhaW5lciB0byBoZWFkZXJzOyBhZGQgY29udGFpbmVyLmMKICAgCjIwMDItMDYtMTEgMTQ6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgaW5pdCBmdW5jdGlvbnMgZm9yIGJhc2ljL3NvcnRlZCBjb250YWluZXIKICAgCjIwMDItMDYtMTEgMTQ6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBtb3JlIG1ldGhvZHMgZm9yIGJhc2ljIGNvbnRhaW5lcjsgYWRkIHNvcnRlZCAod2lsbCBwcm9iYWJseSByZW5hbWUpIGNvbmF0aW5lcgogICAKMjAwMi0wNi0xMSAxMjoyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaDoKCiAgIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdWRlczsgYWRkIGV4dGVybiAiQyIgZm9yIF9fY3BsdXNwbHVzCiAgIAoyMDAyLTA2LTExIDExOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwsIE1ha2VmaWxlLlBMLCBSRUFETUUKLCBuZXRzaCwgc25tcHNoOgoKICAgcmVuYW1lZCBzbm1wc2ggdG8gbmV0c2gsIGFzIEkgbGlrZSB0aGUgbmFtZSBiZXR0ZXIgYW5kIGl0IGFwcGVhbHMgdG8gYQogICB3aWRlciBudW1iZXIgb2YgcGVvcGxlLgogICAKMjAwMi0wNi0xMCAwOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHdoZW4gZGVsZXRpbmcgYW4gYXNwIHBvaW50ZXIsIG1ha2Ugc3VyZSBpdCBpc24ndCBpbiB0aGUgZGVsZWdhdGVkIGxpc3QKICAgCjIwMDItMDYtMTAgMDg6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IHBhcnNlX29uZV9vaWRfaW5kZXggdG8gYWxsb3cgdG9vIHNob3J0IElQIGFkZHJlc3Mgd2hlbiBjb21wbGV0ZSBpcwogICBzcGVjaWZpZWQ7IGFkZCBuZXRzbm1wX29pZDJjaGFycyAmIG5ldHNubXBfb2lkMnN0cgogICAKMjAwMi0wNi0xMCAwNzo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRlZmF1bHRfc3RvcmUgZGVmaW5lcwogICAKMjAwMi0wNi0xMCAwNzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9NYWtlZmlsZS5QTDoKCiAgIFRvcCBsZXZlbCBwZXJsIE1ha2VmaWxlLlBMIHRvIGluc3RhbGwgdGhlIHdob2xlIGJ1bmNoIHVuZGVybmVhdGguCiAgIFRoaXMgc2hvdWxkIG5vdyBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGxvd2VyIGxldmVsIG1ha2VmaWxlcyBmb3IKICAgc2ltcGxpY2l0eS4KICAgCjIwMDItMDYtMTAgMDc6MjcgIGR0czEyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgQWNrbm93bGVkZ2Uga25vd24gZmFpbGluZyB0ZXN0cy4KICAgVGhpcyBtZXNzYWdlIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhlIHByb2JsZW0gaGFzIGJlZW4gaXNvbGF0ZWQgYW5kIGZpeGVkLgogICAKMjAwMi0wNi0xMCAwNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN1cHBvcnQgZm9yIGlwYWRkcmVzcyBidWlsZGluZy9wYXJzaW5nIG9mIE9JRCBpbmRleGVzLgogICAKMjAwMi0wNi0xMCAwMjowNyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIE1lbnRpb24gdGhlIG90aGVyIHBlcmwgbW9kdWxlcywgaW50cm9kdWNlZCB3aXRoIHY1IChwYXJ0aWN1bGFybHkgJ2RlZmF1bHRfc3RvcmUnKQogICAKMjAwMi0wNi0xMCAwMToyOCAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIE5ldyBlbnRyeSBkZXNjcmliaW5nIHBvc3NpYmxlIHByb2JsZW1zIHdpdGggdHJhcCBoYW5kbGVycy4KICAgCjIwMDItMDYtMDggMjE6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBkZWZhdWx0X3N0b3JlIGZpeGVzCiAgIAoyMDAyLTA2LTA4IDIwOjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBicmVhayBwZXJsIG1ha2VmaWxlIGNyZWF0aW9uIGludG8gc2VwZXJhdGUgc3RlcDsgb25seSBjbGVhbiBwZXJsIGRpcmVjdG9yeQogICBpZiB0aGVyZSBpcyBhIG1ha2VmaWxlCiAgIAoyMDAyLTA2LTA4IDIwOjE1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgcGVybHRlc3QgdGFyZ2V0IHRvIG1ha2UgdGVzdCBpbiBhbGwgcGVybCBkaXJlY3RvcmllcwogICAKMjAwMi0wNi0wOCAwOTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIGZpeCB0byBkZWFsIHdpdGggdXBkYXRlZCBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTA2LTA4IDA3OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgdXBkYXRlIHRvIFNRTC1TdGF0ZW1lbnQgcmVxdWlyZW1lbnQgb2YgMS4wMDQKICAgCjIwMDItMDYtMDggMDY6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVtb3ZlIG1pYiBpbml0IGNvZGUgZnJvbSBDIHNubXBfdHJhbnNsYXRlX29iaiBjYWxsCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluaXRfc25tcCBpbnNpZGUgdHJhbnNsYXRlT2JqCiAgIAoyMDAyLTA2LTA4IDA2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBjaGFuZ2UgdmVyc2lvbiB0byAwLjEKICAgCjIwMDItMDYtMDggMDY6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIEEgZmV3IGNsZWFudXBzIHRvIGlmY29uZmlnIGFuZCBuZXRzdGF0IGNvbW1hbmRzCiAgIAoyMDAyLTA2LTA4IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICAtIGJlZ2lubmluZyBzdXBwb3J0IGZvciBpbXBvcnQvZXhwb3J0IG9mIGRhdGEgKGN1cnJlbnRseSB0by9mcm9tIENTVikuCiAgIC0gc3VwcG9ydCBmb3IgImRpZmYiIHdoaWNoIGNvbXBhcmVzIG9sZCAocG9zc2libHkgaW1wb3J0ZWQgZGF0YSkgdG8gY3VycmVudC4KICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hhbmdlIHJlcXVpcmVkIFNOTVAgbW9kdWxlIHZlcnNpb24gZnJvbSA0IHRvIDUKICAgCjIwMDItMDYtMDggMDY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEFkZCBhIHR1dG9yaWFsIHBsYWNlIGhvbGRlciBjb21tZW50IE9JRC4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHRrbWliIGZvciBuZXdlciBwZXJsIG1vZHVsZXMuCiAgIAoyMDAyLTA2LTA4IDA2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIHR1cm4gb2ZmIGV4dHJhIGJvbGQvdW5kZXJsaW5lIGZvcm1hdHRpbmcgYnkgZGVmYXVsdC4KICAgCjIwMDItMDYtMDcgMTU6MDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBnZW5lcmljIGNvbnRhaW5lciBzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgZGF0YQogICAKMjAwMi0wNi0wNyAxMzowMSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi54czoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDYtMDcgMTA6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIHRvIGtlZXAgaW4gbGluZSB3aXRoIGNvbmZpZ3VyZS5pbiAod2h5PyBzaG91bGRuJ3QKICAgY29uZmlndXJlIG5vdCBiZSBpbiBDVlMgYW5kIGJlIGF1dG9nZW5lcmF0ZWQ/IE9uZSBvZiB0aGVzZSBkYXlzIEknbSBnb2luZwogICB0byBoYXZlIHRvIGxlYXJuIGF1dG9jb25mLi4uLikKICAgCjIwMDItMDYtMDcgMTA6MzUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBhbHdheXMgY2hlY2sgcmV0dXJuIHN0YXR1cyBvZiBtYWtlIHdoZW4gaW5zaWRlIGEgbG9vcCwgYW5kIGV4aXQgb24gZXJyb3JzCiAgIAoyMDAyLTA2LTA3IDA4OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjMpLAogICBpbnRlcmZhY2VzLmM6CgogICBPbmx5IG51bGwtdGVybWluYXRlIHRoZSBpbnRlcmZhY2UgbmFtZSB3aGlsZSBpdCdzIGFjdHVhbGx5IGJlaW5nIGNvcGllZC4KICAgUmVzdG9yZSB0aGUgZGF0YSBsaW5lIGFmdGVyd2FyZHMsIHNvIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IGlzIG1lYW5pbmdmdWwuCiAgIAoyMDAyLTA2LTA3IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggZm9yIGluZGV4aW5nIGVycm9yLCB0aGF0IGNhdXNlcyBhIGNyYXNoIGlmIG1vcmUgdGhhbiAxNiB2YXJiaW5kcwogICBhcmUgYWRkZWQgdG8gdGhlIGNhY2hlIGluIG9uZSBnby4gIFNwb3R0ZWQgYnkgU2hhbnRoIEt1bWFyYQogICAKMjAwMi0wNi0wNiAwMToxMiAgZHRzMTIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzcsNV0pLCBhY2xvY2FsLm00LAogICBjb25maWd1cmU6CgogICBEb24ndCBkaWZmZXJlbmNpYXRlIGJldHdlZW4gZWxmLSBhbmQgYS5vdXQtYmFzZWQgTmV0QlNEIHN5c3RlbXMuCiAgIChQcm9ibGVtIGhpZ2hsaWdodGVkIGJ5IEZlbGljaWEgTmVmZikKICAgCjIwMDItMDYtMDUgMTg6NTAgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgcHV0IGRlZmluZXMgZm9yIHNvY2tsZW5fdCBhbmQgaW5fYWRkcl90IGluIG5ldC1zbm1wL3R5cGVzLmggaW5zdGVhZCBvZiBoYXZpbmcKICAgY29uZmlndXJlIGdlbmVyYXRlIHRoZW07IGNvbmZpZ3VyZSBpbnN0ZWFkIGdlbmVyYXRlcyBIQVZFX1NPQ0tMRU5fVCBhbmQKICAgSEFWRV9JTl9BRERSX1QgZm9yIHN5c3RlbXMgd2hpY2ggZG9uJ3QgbmVlZCB0aGUgZGVmaW5lczsgdGhpcyBpcyBwcmltYXJpbHkKICAgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBXaW4zMiBwbGF0Zm9ybSwgd2hpY2ggZG9lc24ndCBoYXZlIGNvbmZpZ3VyZS4KICAgCjIwMDItMDYtMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBkb24ndCBhZHZhbmNlIHJlcXVlc3QgcG9pbnRlciBpbnNpZGUgZm9yIGxvb3AsIHNpbmNlIGZvciBsb29wIGRvZXMgaXQgZm9yCiAgIHVzOyBvdGhlcndpc2UgZm9yIGxvb3AgbWF5IGVuZCB1cCBkZXJlZmVyZW5jaW5nIE5VTEwgcG9pbnRlci4KICAgCjIwMDItMDYtMDUgMDY6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3MvdW5peDoKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSB2YXJpb3VzIHVuaXggdXRpbGl0aWVzOgogICAgLSBjdXJyZW50bHk6IG5ldHN0YXQsIHBzLCBkZiwgaWZjb25maWcKICAgCjIwMDItMDYtMDUgMDY6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL2NvbmZpZ3Mvc2NsaToKCiAgIGV4YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIHRvIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5IGluIEp1ZXJnZW4ncwogICBzY2xpIGNvbW1hbmQuCiAgIAoyMDAyLTA2LTA1IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBuZXcgY29tbWFuZHM6CiAgICAgc291cmNlIGZpbGUgLS0gc291cmNlcyBhbiByYyBmaWxlCiAgICAgd2F0Y2ggZXhwcmVzc2lvbiAtLSByZXBlYXRlZGx5IHJ1bnMgYSBjb21tYW5kIGFuZCBjb2xvcml6ZXMKICAgICAgIGRpZmZlcmVuY2VzIGluIGRhdGEKICAgICBldmFsIGV4cHJlc3Npb24gLS0gZXZhbHVhdGVzIGFuIGV4cHJlc3Npb24gZGlyZWN0bHkgaW4gcGVybAogICAgICAgLSBiZWdpbm5pbmdzIG9mIG92ZXJsb2FkcyBpbiBwZXJsIHNvIHRoYXQgY2FsbGluZyBzeXNDb250YWN0KCkKICAgICAgICAgd2lsbCByZXR1cm4gdGhlIHN5c0NvbnRhY3QgdmFsdWUuICB0YWJsZXMgbm90IHJldHVybmVkIHlldC4KICAgZml4ZXM6CiAgICAgdHVybnMgb2Ygb3JuYW1lbnRhbCBwcm9tcHQgc3VwcG9ydCAoaWNrKSBieSBkZWZhdWx0CiAgIAoyMDAyLTA2LTA1IDA0OjQzICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTItcGF0Y2hlcy44KSwgc25tcGNtZC4xLmRlZjoKCiAgIEJyaWVmIG1lbnRpb24gb2YgdGhlIG5lZWQgdG8gcXVvdGUgT0lEcyBjb250YWluaW5nIHN0cmluZyBpbmRleGVzLAogICB0byBwcm90ZWN0IHRoZSBkb3VibGUgcXVvdGVzIGZyb20gdGhlIHNoZWxsLgogICAKMjAwMi0wNi0wNCAxMDozOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGEgbnVsbCB0cmVlY2FjaGUgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQKICAgCjIwMDItMDYtMDQgMTA6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZvciBhc3AtPnBkdSA9PSBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0OyBub3RlZCBvbiB0aGUgY29kZXJzCiAgIGxpc3QgYnkgam9ha2ltLmFsdGhpbmlAcmVkZG8ubmV0LgogICAKMjAwMi0wNi0wNCAwNTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCBmb3IgcHJpbnRmLCBzaW5nbGUgcXVlcnkvc2V0cyBvZiBzY2FsYXJzLCBtdWx0aS1saW5lIGFsaWFzZXMuCiAgIAoyMDAyLTA1LTMwIDE1OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIG1ha2UgbmV3KCkgb3BlcmF0b3IgYSBiaXQgc21hcnRlcgogICAKMjAwMi0wNS0yOSAxOTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYWxhcm0uYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX2FsYXJtLmM6CgogICBzZXQgdGhlIHN0b3JhZ2UgcG9pbnRlciB0byBOVUxMLCBhcyBwb2ludGVkIG91dCBieSBNYXJrIEhveS4KICAgCjIwMDItMDUtMjkgMDk6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gQVBJaWZ5IE1JQkRJUlMgc3VwcG9ydAogICAKMjAwMi0wNS0yOSAwNzo0MyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNiksIEZBUToKCiAgIEV4cGFuZCBvbiB3aGVuIE9wZW5TU0wgaXMgbmVjZXNzYXJ5LCBhbmQgaG93IHRvIGNvbXBpbGUgdXNpbmcgaXQuCiAgIAoyMDAyLTA1LTI5IDA2OjUyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFNldCBSRVVTRUFERFIgc28gdGhhdCBzcGVjaWZ5aW5nIHRoZSBzYW1lIHBvcnQgdHdpY2UgZG9lc24ndCBraWxsIHRoZSBhZ2VudC4KICAgKFN1Z2dlc3RlZCBieSBSb2JlcnQgSGFzdGluZ3MpCiAgIAoyMDAyLTA1LTI5IDAyOjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgUmVmZXJlbmNlIGJvdGggdmVyc2lvbnMgb2YgdGhlIHR1dG9yaWFsIChzaW5jZSB0aGlzIGRvY3VtZW50IGlzIHVzZWQKICAgZm9yIGJ1aWxkaW5nIHRoZSBvbi1saW5lIHZlcnNpb24gb2YgdGhlIEZBUSkKICAgCjIwMDItMDUtMjkgMDI6MTYgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjQpLCBGQVE6CgogICBDbGFyaWZ5IHRoYXQgdHJhcCBmaWx0ZXJpbmcgaXMgbm90IHlldCBvcGVyYXRpb25hbC4KICAgCjIwMDItMDUtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgcmVtb3ZlIF5NIGNoYXJzCiAgIAoyMDAyLTA1LTI4IDE0OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZml4IGxvZ2ljIGluIGNhbl9kZWxldGU7IGNvbnNvbGlkYXRlIHVzZSBvZiBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3QgYnkgc2V0dGluZwogICByYyBmb3IgdXNlIGF0IGVuZCBvZiBsb29wOyBkb24ndCB1c2UgcmVtb3ZlZCBtYWNyb3MgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZSwKICAgdXNpbmcgbmV3IG5ldHNubXBfY2hlY2tfdmIqIHJvdXRpbmVzIGluc3RlYWQ7IGFkZCBhc3NlcnRzIGZvciBlcnJvciBjYXNlcyB0aGF0CiAgIHNob3VsZCBiZSBjYXVnaHQgYnkgZWFybGllciByb3V0aW5lcwogICAKMjAwMi0wNS0yOCAxNDo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBjYWxsYmFja3MgZm9yIHJvdyAoZGUpYWN0aXZhdGlvbgogICAKMjAwMi0wNS0yOCAwNjoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJvdGVjdCAiI2luY2x1ZGUgPHNlYXJjaC5oPiIgd2l0aCB0aGUgSEFWRV9TRUFSQ0hfSCB0b2tlbi4gIChTdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yOCAwNjoyMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oOgoKICAgRml4IHRoZSBkZWNsYXJhdGlvbiBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQuIChTcG90dGVkIGJ5IEhhcnJpZSkKICAgCjIwMDItMDUtMjcgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaAosIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBEb24ndCBoYXJkd2lyZSBzeXNsb2cgZmFjaWxpdHkgdG8gTE9HX0RBRU1PTi4KICAgRml4IHByb3ZpZGVkIGJ5IEpvYWtpbSBGYWxsc2pvLgogICAKMjAwMi0wNS0yNyAwMTozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwogICAoVjQtMi1wYXRjaGVzLlsyLDhdKSwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFR3ZWFrICd1c21Vc2VyJyBoZWxwIHN0cmluZyB0byBhY2N1cmF0ZWx5IHJlZmxlY3Qgd2hpY2ggYml0cyBhcmUgb3B0aW9uYWwuCiAgIFJlcG9ydGVkIGJ5IEFsaSBDaGFuYXVpLgogICAKMjAwMi0wNS0yNyAwMToyMiAgZHRzMTIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgImZpbGUiIGRpcmVjdGl2ZXMuCiAgIAoyMDAyLTA1LTI3IDAxOjE3ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHRyYWlsaW5nIGJhY2tzbGFzaCwgdGhhdCBjb25mdXNlcyBzb21lICdtYWtlJ3MKICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICBQcm9wZXIgY3JlYXRpb24gb2YgcmV0dXJuZWQgTmV0U05NUDo6T0lEIG9iamVjdC4KICAgCjIwMDItMDUtMjQgMDk6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBpbmNyZWFzZSByZWZlcmVuY2UgY291bnRzIG9uIHJldHVybmVkIG1pYiByZWdpc3RyYXRpb24gb2JqZWN0cyBzbwogICB0aGV5J3JlIG5vdCBhdXRvLWNsZWFuZWQgYnkgcGVybCAodGhlIGFnZW50IG5vdyBoYXMgYSBjb3B5IG9mIHRoZSBwb2ludGVyKQogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgZGVmYXVsdF9zdG9yZSBuZXRzbm1wXyBwcmVmaXhlcy4KICAgCjIwMDItMDUtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBmb3Igc2NhbGFycyAobWliMmMuc2NhbGFyLmNvbmYgZmlsZSBjb21pbmcgc2hvcnRseSkKICAgCjIwMDItMDUtMjQgMDk6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQSBuZXcgcnVsZSBjYWxsZWQgImNvbW1lbnRjaGVjayIgdG8gZ3JlcCBhbGwgc291cmNlcyBmb3IgLy8gY29tbWVudHMuCiAgIAoyMDAyLTA1LTI0IDA4OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgRGVjbGFyZSAncmVnaXN0ZXJfbWliX2RldGFjaF9ub2RlJyBiZWZvcmUgaXQncyB1c2VkIGZvciB0aGUgZmlyc3QgdGltZS4KICAgKFNwb3R0ZWQgYnkgWGlhbmcgWmhhbmcpCiAgIAoyMDAyLTA1LTI0IDA3OjQ0ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLgogICAoVGhhdCAqbWlnaHQqIGJlIGNvbmZ1c2luZyBTdW4ncyBtYWtlLCBidXQgaXMgd3JvbmcgYW55d2F5KQogICAKMjAwMi0wNS0yMyAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYywgdm1zdGF0X2JzZGk0LmMsCiAgIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfZnJlZWJzZDIuYywgdm1zdGF0X2hwdXguYywKICAgdm1zdGF0X25ldGJzZDEuYywgdm1zdGF0X3NvbGFyaXMyLmM6CgogICBCcmluZyB0aGUgdmFyaW91cyAndmFyX2V4dGVuc2libGVfdm1zdGF0JyBkZWZpbml0aW9ucyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmaWxlIC0gaS5lLiBub24tc3RhdGljLgogICAKMjAwMi0wNS0yMSAxNToyNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1JJChzcmNkaXIpL2luY2x1ZGUgdG8gQ1BQIHBhdGggZm9yIHBlb3BsZSBidWlsZGluZyBvdXRzaWRlIG9mIHNyYyB0cmVlCiAgIAoyMDAyLTA1LTIxIDA4OjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgYXBwbHkgcGF0Y2ggWyA1NTgxMjkgXSBNYWtlIHRoZSB0dW5uZWwgbWliIGNvbXBpbGUgaW4gNS4wLjEsIHN1Ym1pdHRlZAogICBieSBMb3JlbnpvIENvbGl0dGkgKGxjb2xpdHRpKSwgd2hpY2ggYWRkcyBtaXNzaW5nIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTA1LTIxIDA1OjMyICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGNvcmUgZHVtcCBpbiAtdSBvcHRpb24gcHJvY2Vzc2luZywgbm90ZWQgYnkgQW5kcmVhcyBNYXVzCiAgIAoyMDAyLTA1LTIxIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOSksIG1lbW9yeS5jCjoKCiAgIExhdGNoIG1lbW9yeSByZXBvcnRpbmcgYXQgMl4zMS0xLCByYXRoZXIgdGhhbiAyXjMyLTEgc2luY2UgdGhlc2UKICAgb2JqZWN0cyBhcmUgZGVmaW5lZCBhcyAoc2lnbmVkKSBJbnRlZ2VyMzIuCiAgIE9ubHkgbGF0Y2ggaWYgdGhlIHZhbHVlIGlzICpncmVhdGVyKiB0aGFuIHRoaXMgdGhyZXNob2xkLCBub3QgbGVzcyEKICAgCjIwMDItMDUtMjEgMDE6MjAgIGpicG4KCiAgICogaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jCjoKCiAgICAgLSBhZGQgY29tcGF0aWJpbGl0eSBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zIGZvciBuZXdseS1yZW5hbWVkCiAgICAgICBkZWZhdWx0IHN0b3JlIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyAoZGVmaW5lZCBpZmYKICAgICAgIC0tZW5hYmxlLXVjZC1jb21wYXRpYmlsaXR5IGlzIGdpdmVuIHRvIGF0IGNvbmZpZ3VyYXRpb24gdGltZSkKICAgCjIwMDItMDUtMjEgMDA6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAgIC0gbW92ZSBkZWZpbml0aW9uIG9mIG5ldHNubXBfZHNfcmVhZF9jb25maWcgdHlwZSBmcm9tIGRlZmF1bHRfc3RvcmUuaAogICAgICAgaW50byBkZWZhdWx0X3N0b3JlLmMgKHNpbmNlIGl0IGlzIG5vdCwgYW5kIHNob3VsZCBub3QsIGJlIHVzZWQKICAgICAgIGVsc2V3aGVyZSkuCiAgIAoyMDAyLTA1LTIwIDAzOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZWdpc3RlcnMgdG9rZW5zIGZvciBpcHY2IHJvL3J3IGNvbW11bml0eSwgYW5kIG1ha2Ugc3VyZSB0byBwYXJzZSB0aGVtCiAgIGFzIGlwdjYsIG5vdCB2NC4KICAgCjIwMDItMDUtMTkgMTE6MzggIGRyaWVodWlzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQnVnZml4IGZvciBGcmVlQlNEIHN1cHBvcnQgb2YgdGhlIGRpc2tJTyBtaWIuIFRoZSBvcmlnaW5hbCBjb2RlIG5lZ2xlY3RlZAogICB0aGUgZGV2aWNlIG51bWJlciwgd2hpY2ggbWFkZSBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuLCBzYXksIGFkMCBhbmQgYWQxCiAgIGltcG9zc2libGUuCiAgIAoyMDAyLTA1LTE3IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHNsaWdodGx5IHJlZHVjZSBtZW1vcnkgY29zdHMgb2YgcmVnaXN0YXJ0aW9ucwogICAKMjAwMi0wNS0xNiAxNzowNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZGVmYXVsdCBzdG9yZSB0YWcgbmFtZXMuCiAgIGZpeCBpbml0X3NubXAoKSBkZWZpbml0aW9uIHRvIG1hdGNoIG5vcm1hbCBwZXJsIG5vbi1hbnNpIG1vZGUuCiAgIAoyMDAyLTA1LTE2IDE2OjM5ICBkcmllaHVpcwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBNYWtlIHN1cmUgLS1jZmxhZ3Mgc3BpdHMgb3V0IHRoZSByZXF1aXJlZCBpbmNsdWRlIHBhdGggd2hlbiBpbnN0YWxsaW5nCiAgIGluIGEgbm9uLWRlZmF1bHQgbG9jYXRpb24sIGFzIGRvY3VtZW50ZWQgaW4gdGhlIHVzYWdlIGluZm8gaW4gdGhlIHNjcmlwdC4KICAgCjIwMDItMDUtMTYgMTU6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbToKCiAgIGFkZCBhIGxpbmUgdG8gdGhlIHN5c1NlcnZpY2VzIHByb21wdCBzYXlpbmcgaWYgeW91IGRvbid0IGtub3csIHNheSBuby4KICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUueHM6CgogICB1cGRhdGUgdG8gbmV3IGRlZmluZSBsaXN0CiAgIAoyMDAyLTA1LTE2IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHRlc3Qgc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgYXV0b2dlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZXMgdG8gbmV3IC5oIHRva2VucwogICAKMjAwMi0wNS0xNiAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2dlbjoKCiAgIC5oIC0+IHBlcmxtb2R1bGUgcmVnZW5lcmF0aW9uIHNjcmlwdAogICAKMjAwMi0wNS0xNiAwNzowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgQ29uc29saWRhdGUgdGhlIHZhcmlvdXMgT0lEIG91dHB1dCBjb25maWd1cmF0aW9uIG1lY2hhbmlzbXMgaW50byBvbmUuCiAgIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyAoeWV0ISkgLSBqdXN0IHRoZSBpbnRlcm5hbHMuCiAgIAoyMDAyLTA1LTE1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgZml4IGRlZmF1bHRfc3RvcmUKICAgCjIwMDItMDUtMTUgMTc6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNyZWF0ZSBhIGRlZmluZSBsb2NhdGlvbiBmb3IgSEFWRV9HRVRERVZTCiAgIAoyMDAyLTA1LTE1IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgZGVwZW5kIHVwZGF0ZSwgd2hpY2ggSSBtZWFudCB0byBjaGVjayBpbiBiZWZvcmUgdGhlIDUuMC4xIHJlbGVhc2UKICAgCjIwMDItMDUtMTUgMDU6NTMgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfcGVybC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYwo6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzkgIGpicG4KCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAgIC0gdXNlIG5ldyBuZXRzbm1wX2RzX2JsYWggZnVuY3Rpb25zIGFuZCBjb25zdGFudHMKICAgCjIwMDItMDUtMTUgMDU6MzcgIGpicG4KCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYwosIHNubXBfYWxhcm0uYywgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3NlY21vZC5jLCBzbm1wdXNtLmMsCiAgIHNubXB2My5jLCB1Y2RfY29tcGF0LmMsIHZhY20uYzoKCiAgICAgLSByZW5hbWUgZnVuY3Rpb25zIGFuZCBjb25zdGFudHMgZnJvbSBkZWZhdWx0X3N0b3JlIGZyb20gZHNfYmxhaAogICAgICAgdG8gbmV0c25tcF9kc19ibGFoCiAgIAoyMDAyLTA1LTE1IDAyOjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy4wKSwgc211eC5jOgoKICAgICAtIGluaXRpYWxpc2Ugc211eF9saXN0ZW5fc2QgdG8gYXZvaWQgcHJvYmxlbXMgbm90ZWQgaW4gYnVnICM1NDU0NDgKICAgICAgIChhIGJpdCB1bnJlYXNvbmFibGUgaW4gbXkgdmlldyBidXQgaXQgY2FuJ3QgZG8gYW55IGhhcm0pLgogICAKMjAwMi0wNS0xNCAxMjo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHByZWNpc2lvbiBleHRyYWN0aW9uIG9mIHR1bW9yIGluc3RlYWQgb2YgYW1wdXRhdGlvbiwgb3IsIGlmZGVmIHNlYXJjaC5oCiAgIGZ1bmN0aW9ucyB0aGF0IGFyZW4ndCBlc3NlbnRpYWwgdG8gdGFibGVfYXJyYXkgb3BlcmF0aW9uIGFuZCB3aWxsIHByb2JhYmx5CiAgIHZhbmlzaCBpbiB0aGUgbmVhciBmdXR1cmUgYW55d2F5LgogICAKMjAwMi0wNS0xMyAyMDoxNiAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBmaXggdHlwZSBpbiBzaXplb2YKICAgCjIwMDItMDUtMTMgMTM6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIHNlYXJjaC5oIGJlZm9yZSBjb21waWxpbmcgdGhlIHRhYmxlX2FycmF5IGhlbHBlcgogICAKMjAwMi0wNS0xMyAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTA1LTEzIDAwOjM5ICBkcmllaHVpcwoKICAgKiBDaGFuZ2VMb2c6CgogICBOb3RlIGNoYW5nZXMgdG8gY29uZmlndXJlLmluLgogICAKMjAwMi0wNS0xMiAxMDozMCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgTWFrZSBzdXJlIHRoZSBjaGVja3MgZm9yIGt2bSByZWxhdGVkIHN0dWZmIGhhcHBlbnMgd2hlbiAtbGt2bSBpcyBpbiBzY29wZS4KICAgQWRkIGRldGVjdGlvbiBvZiB0aGUgLWxkZXZzdGF0IHJlcXVpcmVtZW50IHdoZW4gYnVpbGRpbmcgd2l0aCB1Y2Qtc25tcC9kaXNraW8uCiAgIAoyMDAyLTA1LTEwIDIzOjMzICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuMSApCiAgIAoyMDAyLTA1LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBsaWJ0b29sIHZlcnNpb24gaW5jCiAgIAoyMDAyLTA1LTEwIDIyOjMyICBoYXJkYWtlcgoKICAgKiBORVdTLCBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMC4xCiAgIAoyMDAyLTA1LTEwIDE3OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIG1lbnRpb24gdHV0b3JpYWwtNSBpbnN0ZWFkIG9mIHR1dG9yaWFsCiAgIAoyMDAyLTA1LTEwIDE3OjA0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogTWFrZWZpbGUuUEwsIGFnZW50LnBtLAogICBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIHJlcXVlc3QgaW5mbyBwZXJsIGNvZGUgbW92ZWQgdG8gc2VwYXJhdGUgZmlsZS4KICAgCjIwMDItMDUtMTAgMTc6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBPSUQgYnVpbGRpbmcgb3ZlcmxvYWRzLgogICAKMjAwMi0wNS0xMCAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgQWRkIHByb3BlciBsZW5ndGggc2VnbWVudCB0byB0aGUgYnVpbGQgdmlldyBPSUQuCiAgIAoyMDAyLTA1LTEwIDE0OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV3IGRvYyBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZwogICAKMjAwMi0wNS0xMCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjApLCB2YWNtX3ZhcnMuYwo6CgogICBmaXggdmFjbSBwcm9ibGVtIG9uIHNldHMgd2l0aCBPSURzIGNvbnRhaW5pbmcgbGFyZ2UgbnVtYmVycyBhcyBub3RlZAogICBieSBWaW5heSBHYW9ua2FyIG9uIHRoZSAtY29kZXJzIG1haWxpbmcgbGlzdC4KICAgCjIwMDItMDUtMTAgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhbGxpbmcgb24gbXVsdGlwbGUgdGFibGVzCiAgIAoyMDAyLTA1LTEwIDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWVyZ2UgIlNUUklORzogSGV4OiIgdHlwZSB0b2tlbnMgaW50byBhIHNpbmdsZSB0b2tlbiAiSGV4LVNUUklORzoiCiAgIAoyMDAyLTA1LTEwIDAzOjEyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBSZXBvcnQgbm9uLWV4aXN0ZW50IHN1Ymluc3RhbmNlcyBhcyAnbm9TdWNoSW5zdGFuY2UnIHJhdGhlciB0aGFuICdub1N1Y2hPYmplY3QnLgogICAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMC45OSIgbm93IHJlc3BvbmRzIGNvcnJlY3RseS4KICAgKHRob3VnaCAic25tcGdldCAuLi4uIC4xLjMuNi4xLjYuMy4xMi4xLjUuMSIgc3RpbGwgcmV0dXJucyAnbm9TdWNoT2JqZWN0JykKICAgCiAgIEFsc28gZ3Vlc3MgdGhhdCBmYWlsZWQgU0VUIHJlcXVlc3RzIGFyZSAnbm9DcmVhdGlvbicgZXJyb3JzICh3aGljaCBpcwogICBwcm9iYWJseSB0aGUgbW9zdCBsaWtlbHkgb3B0aW9uKS4KICAgCjIwMDItMDUtMDkgMTU6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgZXhpdCBwcm9wZXJseSB3aGVuIGEgc3ViZGlyIGZhaWxzIHRvIG1ha2UgcHJvcGVybHkKICAgCjIwMDItMDUtMDkgMTU6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjcmVhdGUgYSB0b2tlbiBmb3IgdGhlIC1PdiBlcXVpdmVsYW50CiAgIAoyMDAyLTA1LTA5IDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNSksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgcGF0Y2ggZnJvbSBUYWt1bWkgS2Fkb2RlIHRvIGZpeCBtZW1vcnkgdXNhZ2Ugb24gc29sYXJpcwogICAKMjAwMi0wNS0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICB1cGRhdGVzIGZyb20gbWFsbG9jZWQgdm1zdGF0IGZpeGVzIGZyb20gcGF0Y2hlcyBicmFuY2gKICAgCjIwMDItMDUtMDggMTY6MzQgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIG5ldyAtLWNvbXBpbGUtc3ViYWdlbnQgZmVhdHVyZXM6CiAgICAgLS1jZmxhZ3MKICAgICAtLW5vcm0KICAgICAtLWxkZmxhZ3MKICAgICBpbmNsdWRlcyBoZWFkZXIgZmlsZXMKICAgICBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDUtMDggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWFrZSB0aGUgc3ViYWdlbnQgcHJvcGVybHkgY2FsbCB0aGUgcmVzZXJ2ZTIgc3RhdGUgYWdhaW4uCiAgIAoyMDAyLTA1LTA4IDEwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDggMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgdW0sIHVzZSAzMCBzZWNvbmRzIGxpa2UgYWR2ZXJ0aXNlZC4KICAgCjIwMDItMDUtMDggMDg6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZGVmaW5lIGEgYmV0dGVyIG5vdGlmaWNhdGlvbiBleGFtcGxlIChubyByZXF1ZXN0cy4gIGp1c3QgYWxhcm0gLT4gc2VuZCkKICAgCjIwMDItMDUtMDcgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgdXBkYXRlIHRvIGN1cnJlbnQgaW5kZW50IGNvbW1hbmQKICAgCjIwMDItMDUtMDcgMjI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBtb3ZlIHRleHQgaW4gY29tbWVudCBsZWZ0IHNsaWdodCAod2FzIHRvbyBsb25nKS4KICAgCjIwMDItMDUtMDcgMjI6NDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZW51bSBmaXhlcy4KICAgCjIwMDItMDUtMDcgMjI6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbHVtbl9kZWZpbmVzLmNvbmYsCiAgIG1pYjJjLmNvbHVtbl9lbnVtcy5jb25mLCBtaWIyYy5jb25mOgoKICAgTmV3IG1pYjJjIGZpbGVzIGZvciBnZW5lcmF0aW5nIGhlYWRlcnMgZnVsbCBvZiBjb2x1bW4gbnVtYmVyIGRlZmluZXMKICAgYW5kIGVudW0gZGVmaW5lcy4KICAgCjIwMDItMDUtMDcgMjI6NDAgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IGFnZW50IGxpYnJhcnkgcmVvcmRlcmluZyBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgbm93IHN1cHBvcnRzIC5vIGZpbGVzIChwcmVjb21waWxlZCBjb2RlKS4KICAgCjIwMDItMDUtMDcgMjI6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZToKCiAgIGhtbS4gIG1pc3NlZCBzb21lIGNoZWNraW4gZmlsZXMuCiAgIAoyMDAyLTA1LTA3IDExOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC86IGNvbmZ0ZXN0LmNvbmYsIHN0YXJ0YWdlbnQucGwsIGNvbmYudAo6CgogICB0ZXN0IGZvciBjb25maWd1cmF0aW9uIGZpbGUvZGVmYXVsdF9zdG9yZSBzdXBwb3J0CiAgIAoyMDAyLTA1LTA3IDExOjE0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbWFrZSBpbml0X3NubXAoKSB0YWtlIGEgY2hhciAqIGFyZ3VtZW50IGxpa2UgdGhlIHJlYWwgQVBJCiAgIAoyMDAyLTA1LTA3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICB0eXBvcy4KICAgCjIwMDItMDUtMDcgMDk6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgZml4IHRoZSAtZyBmbGFnLgogICAKMjAwMi0wNS0wNyAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGxpa2UgYSBnb29kIGJveS4KICAgCjIwMDItMDUtMDYgMjA6NDMgIHJzdG9yeQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpeCBtaXNzaW5nICQgbm90ZWQgYnkgSm9obiBNaWxscyBvbiB0aGUgY29kZXJzIGxpc3QKICAgCjIwMDItMDUtMDYgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiAgIChWNC0yLXBhdGNoZXMuWzQsMiwzLDNdKSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZSAoY29ycmVjdGx5IGRvbmUgdGhpcyB0aW1lKQogICAKMjAwMi0wNS0wNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNTo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluCiAgIChWNC0yLXBhdGNoZXMuWzMsNywxLDJdKSwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA2IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgUGF0Y2hlcyAjNTUxOTE0KyBmcm9tIEdhcnkgRWR3YXJkcyB0byBzdXBwb3J0IGhwdXgxMSBmb3IgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGFkZCBuZXcgaHB1eCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBuZXcgY29udHJpYnV0b3JzLgogICAKMjAwMi0wNS0wNiAxNDozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYKLCBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU1MTQ4OTogRnJvbSBKZWZmcmV5IFdhdHNvbiB0byBhZGQgYSAtUSBvcHRpb24gZm9yIHF1aWNrIGJ1dCB3LyBhbiAnPScKICAgCjIwMDItMDUtMDYgMTQ6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIGNoYW5nZSAtRCBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgY3VycmVudCBjb2RlLgogICAKMjAwMi0wNS0wNiAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgbWlzYyBzbWFsbCBidWdzIGFuZCBlcnJvciBtZXNzYWdlIHdvcmRpbmcgZml4ZXMuCiAgIAoyMDAyLTA1LTA2IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jIChWNC0yLXBhdGNoZXMuOSksIHNtdXguYzoKCiAgIGJ1ZyAjNTQ3MDEwOiBmaXggc211eCBhdXRoIGJ1ZyBhcyByZXBvcnRlZCBhbmQgZml4ZWQgYnkgU3RlZmFuIFJhZG1hbgogICAKMjAwMi0wNS0wMSAyMzowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyBmb3IgdXBkYXRlIHRvIHRhYmxlX2FycmF5CiAgIAoyMDAyLTA1LTAxIDIzOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgb2JqZWN0X21vbml0b3Igc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIGNoZWNrX3ZhcmJpbmQgc3R1ZmYKICAgCjIwMDItMDUtMDEgMjI6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdmFsaWRhdGlvbiB2YWJyaW5kIGluZm8KICAgCjIwMDItMDUtMDEgMjI6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGRvIEkgcmVhbGx5IGhhdmUgdG8gZG8gdGhpcz8gc2lnaC4gT2ssIHJlbmFtZSBkZWJ1ZyB0b2tlbjsgcmV2YW1wIGxvZ2ljIHRvCiAgIG1vZGlmeSByb3dzIGluIHBsYWNlLCBrZWVwaW5nIHVuZG8gaW5mbyAodnMgYWx3YXlzIGNoYW5naW5nIGEgY29weSBvZiBhIHJvdwogICBhbmQgc3dhcHBpbmcgcm93cyB3aGVuIHNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KSB0byBhbGxvdyBleHRlcm5hbCBjb2RlCiAgIHRvIGtlZXAgcG9pbnRlcnMgdGhhdCBkb24ndCBkaXNhcHBlYXIgb24gdGhlbTsgYWRkIGEgZmV3IGNhbGxiYWNrcywgaW5jbHVkaW5nCiAgIHJvd19jb21wYXJlLCBzbyB0YWJsZV9hcnJheSBjYW4gbWFpbnRhaW4gdGhlIHNlY29uZGFyeSBpbmRleCB0cmVlOyBkb24ndCBjYWxsCiAgIGNhbl9hY3RpdmF0ZS9jYW5fZGVsZXRlIHVubGVzcyB3ZSBhcmUgYWN0dWFsbHkgdHJ5aW5nIHRvIGFjdGl2YXRlL2RlbGV0ZSByb3c7CiAgIGFkZCBza2VsZXRvbiAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGNvb3BlcmF0aXZlIG5vdGlmaWNhdGlvbnMgb2Ygcm93IGV2ZW50czsKICAgdXBkYXRlIGNoYW5naW5nIGFycmF5IGluIGNvbW1pdCAmIHVuZG8gY2FzZXMsIG5vdCBqdXN0IGNvbW1pdDsgY2hhbmdlIHR5cGRlZnMKICAgZm9yIGEgZmV3IGNhbGxiYWNrIHBvaW50ZXJzOyB1bW1tbS4uLiBJICp0aGluayogdGhhdCdzIGl0Li4uLjotKQogICAKMjAwMi0wNS0wMSAxNzozMCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIEFkZCBpbmRleCBidWlsZGluZyB0byB0aGUgKyBvcGVyYXRvci4KICAgCjIwMDItMDUtMDEgMDk6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBPSUQvT0lELnhzLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbAosIGFnZW50L3R5cGVtYXA6CgogICBNYWtlIGdldE9JRCBmb3IgcmVxdWVzdHMgcmV0dXJuZWQgYSBOZXRTTk1QOjpPSUQgYmxlc3NlZCByZWZlcmVuY2UuCiAgIEknbSBub3QgaGFwcHkgYWJvdXQgaG93IHRoaXMgaXMgZG9uZSwgYnV0IGFsbCBhdHRlbXB0cyB0byBkbyBpdAogICBjb3JyZWN0bHkgb25seSBsZWZ0IG1lIGluIGNvbmZ1c2lvbi4KICAgCjIwMDItMDUtMDEgMDk6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwo6CgogICBDaGFuZ2UgdGhlIGRvbWFpbiBPSURzIHRvIHBvaW50IHRvIHRoZSBuZXQtc25tcCBkb21haW5zIGNyZWF0ZWQgYnkgRGF2ZS4KICAgVGhpcyBmaXhlcyBidWcgIzU0NDI0NSBhcyB3ZWxsLgogICAKMjAwMi0wNS0wMSAwOTozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBZGQgdGhlIE9JRCBwZXJsIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBtb2R1bGVzLgogICAKMjAwMi0wNS0wMSAwNzo0NSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy4wKSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIHJlbW92ZSBvbGQgKGFuZCBjb25mbGljdGluZyB3aXRoIHRyYXBzKSB0cmFuc3BvcnQgZG9tYWluIE9JRHMKICAgCjIwMDItMDUtMDEgMDY6MTkgIGR0czEyCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEuZGVmLAogICBzbm1wc2V0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHdhbGsuMS5kZWY6CgogICBBZGQgdHlwZSB0YWdzICJTVFJJTkc6ICIgYW5kICJJTlRFR0VSOiAiIHRvIGV4YW1wbGUgb3V0cHV0LgogICBBZGQgZXhwbGljaXQgc2V0dGluZyBvZiBwcm90b2NvbCB2ZXJzaW9uIHRvIGV4YW1wbGUgY29tbWFuZHMuCiAgIAoyMDAyLTA1LTAxIDAzOjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWd1dGlsLmgsCiAgIGFndXRpbF9hcGkuaCwgYWxhcm0uYywgYWxhcm0uaCwgZXZlbnQuYywKICAgZXZlbnQuaCwgaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHJvd19hcGkuaCwKICAgcm93cy5jLCByb3dzLmgsIHN0YXRpc3RpY3MuYywgc3RhdGlzdGljcy5oOgoKICAgICAtIHJlbW92ZSBDVlMgTG9nOiBlbnRyaWVzIHdoaWNoIGFyZSBjYXVzaW5nIHByb2JsZW1zIHNpbmNlIHRoZXkgYXJlCiAgICAgICBlbWJlZGRlZCBpbiBhIGNvbW1lbnQsIGJ1dCBzb21lIG9mIHRoZSBsb2cgZW50cmllcyBjb250YWluIGNvbW1lbnQKICAgICAgIGRlbGltaXRlcnMuCiAgIAoyMDAyLTA0LTMwIDIyOjE1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlbW92ZSBuZXRzbm1wX3Byb2Nlc3Npbmdfc2V0LCBpdCBsaXZlcyBpbiBzbm1wX2FnZW50LmMKICAgCjIwMDItMDQtMzAgMjI6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL3NubXAtdGMuYwo6CgogICByZW1vdmUgdW51c2VkIHBhcmFtZXRlcjsgYWxsb3cgTk9ORSBhcyBvbGQgdmFsdWUgZm9yIHN0b3JhZ2UgdHlwZSB0cmFuc3Rpb25zCiAgIAoyMDAyLTA0LTMwIDIyOjEyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIG92ZXJseSBjb21wbGV4IG1hY3JvIHN0dWZmIGZvciByb3dzdGF0dXMvc3RvcmFnZXR5cGUKICAgCjIwMDItMDQtMzAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUKLCB0ZXN0LnBsOgoKICAgLSBhbGxvdyBjb252ZXJzaW9ucyB0byBhbiBhcnJheSAobmVlZHMgdG8gYmUgdGllZCBzdGlsbCkuCiAgIC0gZG9jdW1lbnRhdGlvbi4KICAgCjIwMDItMDQtMzAgMDg6MTUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMyksIHNubXBkLmM6CgogICAgIC0gZml4IGJ1ZyAjNTQ1Nzc1LCByZXBvcnRlZCBieSBEYXZlIERlbnNvbiwgd2hlcmVieSB0aGUgUElEIG9mIGFuCiAgICAgICBhbHJlYWR5LXJ1bm5pbmcgc25tcGQgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgc3RhcnRpbmcgYSBuZXcgc25tcGQKICAgICAgICh3aGljaCB3b3VsZCB0aGVuIGV4aXQsIGxlYXZpbmcgdGhlIG9yaWdpbmFsIHNubXBkIHJ1bm5pbmcgYW5kIHRoZQogICAgICAgd3JvbmcgUElEIGluIHRoZSBmaWxlKS4gIFNvbHV0aW9uIGlzIG5vdCB0byB3cml0ZSB0aGUgUElEIHVudGlsIHdlCiAgICAgICBoYXZlIHN1Y2Nlc3NmdWxseSBvcGVuZWQgYWxsIG91ciBzb2NrZXRzLgogICAKMjAwMi0wNC0zMCAwNzoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiAuY3ZzaWdub3JlLCBDaGFuZ2VzLCBNQU5JRkVTVCwKICAgTWFrZWZpbGUuUEwsIE9JRC5wbSwgT0lELnhzLCBSRUFETUUsCiAgIHRlc3QucGwsIHR5cGVtYXA6CgogICBPSUQgcGVybCBtb2R1bGUgc28geW91IGNhbiBkbyBzaW1wbGUgT0lEIG1hbmlwdWxhdGlvbnMgd2l0aGluIHBlcmwgZWFzaWx5OgogICAgIC0gRXhhbXBsZTogIG5ldyBOZXRTTk1QOjpPSUQoJ2ludGVyZmFjZXMnKSA+IG5ldyBOZXRTTk1QOjpPSUQoJ3N5c3RlbScpCiAgIAoyMDAyLTA0LTI5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgcmVnZXhwIGZpeCBmb3Igd2hpdGUgc3BhY2UgY2hlY2tzIGluIGluZGVudCBmb3JtYXR0ZWQgY29kZQogICAKMjAwMi0wNC0yOSAxNjo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW9yZGVyIHBlcmwgbW9kdWxlIG5hbWVzIHRvIHJlZmxlY3QgKG5ldykgZGVwZW5kZW5jaWVzLgogICAKMjAwMi0wNC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBmaXggYSBmZXcgd2FybmluZ3Mgb24gZmFpbGVkIHRlc3RzIChqdXN0IHNjcmVlbiBjbGVhbnVwcykKICAgCjIwMDItMDQtMjkgMDk6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgTWFrZSB0aGUgcGVybCBtb2R1bGUgcmVzcGVjdCBzbm1wLmNvbmYgc2V0dGluZ3MgKGZpbmFsbHkpLgogICAgIC0gTm93IHJlcXVpcmVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgTmV0U05NUDo6ZGVmYXVsdF9zdG9yZSBtb2R1bGUgdGhvdWdoLgogICAKMjAwMi0wNC0yNyAwODoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvbid0IHByb2Nlc3Mgc2V0IHJlcXVlc3QgdGlsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgYXJlIGNvbXBsZXRlLCBhbmQgcXVldWUKICAgYW55IG90aGVyIHJlY2VpdmVkIHBhY2tldHMgdW50aWwgYSBzZXQgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nLgogICAKMjAwMi0wNC0yNyAwODoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNsZWFuIHVwIGNvbW1lbnRzIG11bmdlZCBieSBpbmRlbnQKICAgCjIwMDItMDQtMjcgMDg6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNC0yNyAwODowNyAgcnN0b3J5CgogICAqIGFnZW50Lzogb2JqZWN0X21vbml0b3IuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBpZmRlZiBneW1uYXN0aWNzIHRvIG1ha2Ugc3VyZSBhc3NlcnRzIGFyZSBvbmx5IGNvbXBpbGVkIGluIG9ubHkgaWYgZXhwbGljaXR5CiAgIHJlcXVlc3RlZAogICAKMjAwMi0wNC0yNiAyMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgZml4IHVuYmFsYW5jZWQgZW5kaWYgb24gbGludXguIGhvcGUgSSBkaWRuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZS4KICAgCjIwMDItMDQtMjYgMTk6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZml4IHVudXNlZCB2YXIgd2FybmluZyBmb3IgIXdpbmRvd3MKICAgCjIwMDItMDQtMjYgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaDoKCiAgIGZpeCBPSURfTEVOR1RIIGRlZmluaXRpb25zCiAgIAoyMDAyLTA0LTI2IDEwOjUzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcyBpbiBtYWtlZmlsZXMuICBNYWtlIGV2ZXJ5dGhpbmcgdXNlCiAgIG5ldC1zbm1wLWNvbmZpZywgLi4uCiAgIAoyMDAyLTA0LTI2IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtOgoKICAgLSBDbGVhbnVwLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gQ2hhbmdlIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcyBmb3IgdWNkLXNubXAKICAgLSBDaGFuZ2UgY29udGFjdCBsb2NhdGlvbiB0byBuZXQtc25tcC11c2VycyAocGVyIEpvZSdzIGFncmVlbWVudCkKICAgCjIwMDItMDQtMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgUkVBRE1FCiwgZGVmYXVsdF9zdG9yZS5wbSwgdGVzdC5wbDoKCiAgIC0gY2xlYW51cC4KICAgLSBVc2UgbmV0LXNubXAtY29uZmlnIHRvIGZpbmQgbGlicmFyeSwgZXRjLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gYSBmZXcgbW9yZSB0ZXN0cyBhZGRlZAogICAtIHVzZSBjb3JyZWN0IGxpYnJhcmllcwogICAtIGFkZCBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTA0LTI2IDA0OjIyICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEV4dHJhY3RpbmcgdGhlIHZlcnNpb24gZnJvbSAnc25tcGxpYi9zbm1wX3ZlcnNpb24uYycgbmVlZHMgdG8gdGFrZSBhY2NvdW50CiAgIG9mIGJsYW5rIHNwYWNlLiAgUmVwb3J0ZWQgYnkgU3RlZmFuIFJhZG1hbiAoQnVnICM1NDczNzkpCiAgIAoyMDAyLTA0LTI2IDA0OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuOCksIG1lbW9yeS5jCjoKCiAgIEhhbmRsZSBtZW1vcnkgdmFsdWVzID4gMzJiaXQgKGxhdGNoaW5nIGF0IDJeMzItMSkKICAgUGF0Y2ggIzU0ODY2MyBmcm9tIFJvYiBNeWVycwogICAKMjAwMi0wNC0yNiAwMzo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgJ0ludmFsaWQgb3B0aW9uJyBtZXNzYWdlLCBzaW5jZSB0aGlzIGlzIHR5cGljYWxseQogICByZXBvcnRlZCBieSBnZXRvcHQoKS4gIChTdWdnZXN0ZWQgYnkgQW5kcmV3IFJ1Y2tlciBKb25lcyAtIHBhdGNoICM1NDg3NDggKQogICAKMjAwMi0wNC0yNiAwMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFkZCAndicgdG8gdGhlIGxpc3Qgb2YgdmFsaWQgb3B0aW9ucyAocGF0Y2ggIzU0ODc0OCkKICAgVGhhbmtzIHRvIEFuZHJldyBSdWNrZXIgSm9uZXMuCiAgIAoyMDAyLTA0LTI2IDAzOjM2ICBkdHMxMgoKICAgKiBSRUFETUUuaHB1eDExLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBpbXByb3ZlZCBIUC1VWCAxMSBwYXRjaAogICAoIzUzMDcyNCkgdG8gdGhlIG1haW4gdjUgbGluZSwgYXMgd2VsbCBhcyB0aGUgdjQtMiBicmFuY2guCiAgIFRoZSBjb2RlIG5vdyBjb21waWxlcyBjbGVhbmx5IHVuZGVyIEhQLVVYIDExIHVzaW5nIGdjYy4KICAgCjIwMDItMDQtMjUgMDc6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBQYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZyB0byBmaXggcG9zc2libGUgdmFyaWFibGUgbmFtZSBjbGFzaAogICAKMjAwMi0wNC0yNCAyMjozOSAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBoYW5kbGUgY2FsbGJhY2tzIHNlbmRpbmcgbmV3IG5vdGlmaWNhdGlvbnMgKHdoaWxlIHByb2Nlc3Npbmcgbm90aWZpY2F0aW9ucykKICAgCjIwMDItMDQtMjQgMjE6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29iamVjdF9tb25pdG9yLmg6CgogICBoZWFkZXIgZm9yIG5ldyBmdWNudGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0cwogICAKMjAwMi0wNC0yNCAyMTozNCAgcnN0b3J5CgogICAqIGFnZW50L29iamVjdF9tb25pdG9yLmM6CgogICBuZXcgZnVuY3Rpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdCB2YWx1ZXMKICAgCjIwMDItMDQtMjQgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgL3Byb2Mvc3RhdCBjYW4gYmUgbGFyZ2VyIHRoYW4gMTAyNAogICAKMjAwMi0wNC0yNCAwNjoxOSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1pc3NpbmcgJ21kNS5oJyBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDQtMjMgMDk6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBsYXN0IG9mIHRoZSAjd2FybmluZ3MsIGFkZCB4eHgtcmtzIGlmIG5lY2Vzc2FyeQogICAKMjAwMi0wNC0yMyAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIHdhcm5pbmdzCiAgIAoyMDAyLTA0LTIyIDE5OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUU6CgogICB1cGRhdGUgVVJMIHRvIHVzZSBmcmVlbm1wLmNvbSBtaXJyb3IgKHVubGVzcyBzb21lb25lIGtub3dzIGEgYmV0dGVyIHBsYWNlPykKICAgCjIwMDItMDQtMjIgMTQ6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYXBwbHkgZG9jdW1lbnRhdGluIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnZXIgPEF4ZWwuS2l0dGVuYmVyZ2VyQG1heHhpby5jb20+CiAgIAoyMDAyLTA0LTIyIDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlIGV4dHJhIEBlbmRAIChzdXJlIHdvdWxkIGJlIG5pY2UgaWYgbWliMmMgd291bGQgY2hlY2sgZm9yIHVuYmFsYW5jZWQKICAgQGVuZEBzKQogICAKMjAwMi0wNC0yMiAwOTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICB1cGRhdGUgZnVuY3Rpb24gbmFtZXMgdG8gbWF0Y2ggaGVhZGVyIChubyBtaXhlZCBjYXNlKQogICAKMjAwMi0wNC0yMiAwODoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIGZpeCBidWcgIzU0NzExMDogcHJvcGVybHkgc3BlbGwgZGVmaW5lCiAgIAoyMDAyLTA0LTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBhZGQgc3RhdGljIHRvIGEgcmV0dXJuZWQgdmFyaWFibGUKICAgCjIwMDItMDQtMjEgMTY6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aC1wZXJsLW1vZHVsZXMKICAgCjIwMDItMDQtMjEgMTE6MzcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgNS4wLnByZTMgLT4gNS4wOyAoSSdtIHN1cmUgdGhlcmUgYXJlIG90aGVyIHBsYWNlcyB0aGlzIG5lZWRzIHRvIGNoYW5nZSwKICAgYnV0IEkgd2FudGVkIHRvIGdldCB0aGUgZmlyc3QgcG9zdCA1LjAgY2hlY2tpbi4uLjotKQogICAKMjAwMi0wNC0yMCAwMDozNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMCApCiAgIAoyMDAyLTA0LTIwIDAwOjMyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgY2hhbmdlIHZlcnNpb24gdG8gNS4wCiAgIAoyMDAyLTA0LTIwIDAwOjI5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBBR0VOVC50eHQsIENPUFlJTkcsIENoYW5nZUxvZwosIENvZGluZ1N0eWxlLCBFWEFNUExFLmNvbmYuZGVmLCBGQVEsCiAgIElOU1RBTEwsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywKICAgTWFrZWZpbGUudG9wLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsCiAgIFJFQURNRS5hZ2VudHgsIFJFQURNRS5jbXUsIFJFQURNRS5ocHV4MTEsCiAgIFJFQURNRS5rcmI1LCBSRUFETUUuc25tcHYzLCBSRUFETUUudGhyZWFkLAogICBSRUFETUUud2luMzIsIFRPRE8sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBkb3RnZGJpbml0LCBkb3h5Z2VuLmNvbmYsIGluc3RhbGwtc2gsCiAgIGx0bWFpbi5zaCwgbWFrZWRlcGVuZC5pbiwgbWFrZWZpbGVpbmRlcGVuZC5wbCwKICAgbWFrZW5vc3lzZGVwZW5kLnBsLCBtYWtldGFyZ2V0LCBta2luc3RhbGxkaXJzLAogICBuZXQtc25tcC1jb25maWcuaW4sIHJlbW92ZS1maWxlcywgc2Vkc2NyaXB0LmluLAogICBzdGFtcC1oLCBzdGFtcC1oLmluLCBhZ2VudC8uY3ZzaWdub3JlLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvbTJtLmgsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsCiAgIGFnZW50L3NubXBfcGVybC5wbCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9kbG1vZHMvLmN2c2lnbm9yZSwKICAgYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jCiwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMKLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRQosIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4LCBhZ2VudC9taWJncm91cC9SbW9uLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50eC5oCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIGFnZW50L21pYmdyb3VwL21pYklJLmgKLCBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi5oLCBhZ2VudC9taWJncm91cC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLCBhZ2VudC9taWJncm91cC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYWdlbnQvbWliZ3JvdXAvUm1vbi9SRUFETUUKLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vdGVzdF9hbGFybS5zaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2hpc3Quc2gsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2QsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdmVzdGludGVybmV0dC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmUKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmgsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgKLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oCiwgaW5jbHVkZS9uZXQtc25tcC8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvLmN2c2lnbm9yZSwgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hdXRvX25saXN0LmgsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaAosIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaAosIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3Zhcl9zdHJ1Y3QuaAosIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLCBsb2NhbC8uY3ZzaWdub3JlLAogICBsb2NhbC9GQVEySFRNTCwgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL1JFQURNRS5taWIyYwosIGxvY2FsL2NvbnZlcnRjb2RlLCBsb2NhbC9maXhwcm9jLAogICBsb2NhbC9pcGYtbW9kLnBsLCBsb2NhbC9taWIyYywKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCBsb2NhbC9taWIyYy5jb25mLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mLCBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0CiwgbG9jYWwvcGFzc3Rlc3QsIGxvY2FsL3NubXAtdWNkLnNoLAogICBsb2NhbC9zbm1wY2hlY2suZGVmLCBsb2NhbC9zbm1wY29uZiwgbG9jYWwvdGttaWIsCiAgIGxvY2FsL3RyYXB0b2VtYWlsLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2F1dGhvcHRzCiwgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9kZWJ1Z2dpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvbWlicywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9vdXRwdXQsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9hY2wsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2Jhc2ljX3NldHVwLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9leHRlbmRpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL29wZXJhdGlvbiwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW0sCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3RyYXBzaW5rcywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2Zvcm1hdHRpbmcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlLCBtYW4vLmN2c2lnbm9yZQosIG1hbi9NYWtlZmlsZS5pbiwgbWFuL2FkZF9taWJkaXIuMywKICAgbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMywgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsCiAgIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsCiAgIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfZGVidWcuMywKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF90YWJsZS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMywgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIG1hbi9wcmludF9taWIuMywgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zCiwgbWFuL3ByaW50X3ZhcmlhYmxlLjMsIG1hbi9yZWFkX2FsbF9taWJzLjMsCiAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3JlYWRfbWliLjMsCiAgIG1hbi9yZWFkX21vZHVsZS4zLCBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLAogICBtYW4vcmVhZF9vYmppZC4zLCBtYW4vc2h1dGRvd25fbWliLjMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FnZW50X2FwaS4zLmRlZiwKICAgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2FwaS4zLmRlZiwKICAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMKLCBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsCiAgIG1hbi9zbm1wX3NlbmQuMywgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWYsCiAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsCiAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsCiAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLAogICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLAogICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsCiAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsCiAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjMsCiAgIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsCiAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsIG1hbi9zbm1wY21kLjEuZGVmLAogICBtYW4vc25tcGNvbmYuMS5kZWYsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMSwgbWFuL3NubXBkZi4xCiwgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwKICAgbWFuL3NubXBpbmZvcm0uMSwgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEuZGVmCiwgbWFuL3NubXBzdGF0dXMuMS5kZWYsIG1hbi9zbm1wdGFibGUuMS5kZWYsCiAgIG1hbi9zbm1wdGVzdC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsCiAgIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtYW4vc25tcHVzbS4xLmRlZiwKICAgbWFuL3NubXB3YWxrLjEuZGVmLCBtYW4vdmFyaWFibGVzLjUuZGVmLAogICBtaWJzLy5jdnNpZ25vcmUsIG1pYnMvQUdFTlRYLU1JQi50eHQsCiAgIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQsIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQKLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwgbWlicy9FdGhlckxpa2UtTUlCLnR4dAosIG1pYnMvSENOVU0tVEMudHh0LCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgIG1pYnMvSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LAogICBtaWJzL0lBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dCwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsCiAgIG1pYnMvSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCwgbWlicy9JRi1NSUIudHh0LAogICBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0LCBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwKICAgbWlicy9JUC1NSUIudHh0LCBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LAogICBtaWJzL0lQVjYtTUlCLnR4dCwgbWlicy9JUFY2LVRDLnR4dCwKICAgbWlicy9JUFY2LVRDUC1NSUIudHh0LCBtaWJzL0lQVjYtVURQLU1JQi50eHQsCiAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLm1pYiwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0CiwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgbWlicy9ORVQtU05NUC1UQy50eHQKLCBtaWJzL05FVFdPUkstU0VSVklDRVMtTUlCLnR4dCwKICAgbWlicy9OT1RJRklDQVRJT04tTE9HLU1JQi50eHQsIG1pYnMvUkVBRE1FLm1pYnMsCiAgIG1pYnMvUkZDLTEyMTUudHh0LCBtaWJzL1JGQzExNTUtU01JLnR4dCwKICAgbWlicy9SRkMxMjEzLU1JQi50eHQsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1NNVVgtTUlCLnR4dCwgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LAogICBtaWJzL1NOTVAtRlJBTUVXT1JLLU1JQi50eHQsIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwKICAgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dAosIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIG1pYnMvU05NUHYyLUNPTkYudHh0LAogICBtaWJzL1NOTVB2Mi1NSUIudHh0LCBtaWJzL1NOTVB2Mi1TTUkudHh0LAogICBtaWJzL1NOTVB2Mi1UQy50eHQsIG1pYnMvU05NUHYyLVRNLnR4dCwKICAgbWlicy9UQ1AtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dCwKICAgbWlicy9VQ0QtREVNTy1NSUIuaW5jLCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsCiAgIG1pYnMvVUNELURJU0tJTy1NSUIuaW5jLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwKICAgbWlicy9VQ0QtRExNT0QtTUlCLmluYywgbWlicy9VQ0QtRExNT0QtTUlCLnR4dCwKICAgbWlicy9VQ0QtSVBGSUxURVItTUlCLmluYywgbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dCwKICAgbWlicy9VQ0QtSVBGV0FDQy1NSUIuaW5jLCBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQsIG1pYnMvVUNELVNOTVAtTUlCLmluYywKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0CiwgbWlicy9taWJmZXRjaCwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZgosIG1pYnMvc21pc3RyaXAsIG92Ly5jdnNpZ25vcmUsIG92L01ha2VmaWxlLmluCiwgb3YvUkVBRE1FLCBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsCiAgIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluLAogICBvdi9iaXRtYXBzL1VDRC4yMC5tLCBvdi9iaXRtYXBzL1VDRC4yMC5wLAogICBvdi9iaXRtYXBzL1VDRC4yNi5tLCBvdi9iaXRtYXBzL1VDRC4yNi5wLAogICBvdi9iaXRtYXBzL1VDRC4zMi5tLCBvdi9iaXRtYXBzL1VDRC4zMi5wLAogICBvdi9iaXRtYXBzL1VDRC4zOC5tLCBvdi9iaXRtYXBzL1VDRC4zOC5wLAogICBvdi9iaXRtYXBzL1VDRC40NC5tLCBvdi9iaXRtYXBzL1VDRC40NC5wLAogICBvdi9iaXRtYXBzL1VDRC41MC5tLCBvdi9iaXRtYXBzL1VDRC41MC5wLAogICBvdi9iaXRtYXBzL1VDRC5maWVsZHMsIHBlcmwvLmN2c2lnbm9yZSwKICAgcGVybC9BU04vLmN2c2lnbm9yZSwgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FTTi9BU04ueHMKLCBwZXJsL0FTTi9DaGFuZ2VzLCBwZXJsL0FTTi9NQU5JRkVTVCwKICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvQVNOL3Rlc3QucGwsCiAgIHBlcmwvQW55RGF0YV9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvQW55RGF0YV9TTk1QL0NoYW5nZXMKLCBwZXJsL0FueURhdGFfU05NUC9EQkRfQW55RGF0YS5wYXRjaCwKICAgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLCBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMLAogICBwZXJsL0FueURhdGFfU05NUC9NQU5JRkVTVCwgcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEwKLCBwZXJsL0FueURhdGFfU05NUC9SRUFETUUsIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0KLCBwZXJsL0FueURhdGFfU05NUC9zbm1wc2gsIHBlcmwvU05NUC8uY3ZzaWdub3JlLAogICBwZXJsL1NOTVAvQlVHLCBwZXJsL1NOTVAvTUFOSUZFU1QsCiAgIHBlcmwvU05NUC9NQU5JRkVTVC5TS0lQLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsCiAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54cwosIHBlcmwvU05NUC9UT0RPLCBwZXJsL1NOTVAvcGVybHNubXAuaCwKICAgcGVybC9TTk1QL3R5cGVtYXAsIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzEucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy9hc3luYzIucGwsIHBlcmwvU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbAosIHBlcmwvU05NUC9leGFtcGxlcy9pcGZvcndhcmQucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy9taWJ0cmVlLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvbWlid2Fsay5wbAosIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdGFibGV3YWxrLnBsLAogICBwZXJsL1NOTVAvZXhhbXBsZXMvdGVzdGxlYWsucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90cmFwLWV4YW1wbGUucGwsIHBlcmwvU05NUC9oaW50cy9pcml4LnBsCiwgcGVybC9TTk1QL2hpbnRzL3NvbGFyaXMucGwsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUKLCBwZXJsL1NOTVAvdC9SRUFETUUsIHBlcmwvU05NUC90L2FzeW5jLnQsCiAgIHBlcmwvU05NUC90L2J1bGt3YWxrLnQsIHBlcmwvU05NUC90L2dldC50LAogICBwZXJsL1NOTVAvdC9nZXRuZXh0LnQsIHBlcmwvU05NUC90L21pYi50LAogICBwZXJsL1NOTVAvdC9taWIudHh0LCBwZXJsL1NOTVAvdC9taWJsb2FkLnQsCiAgIHBlcmwvU05NUC90L25vdGlmeS50LCBwZXJsL1NOTVAvdC9zZXNzaW9uLnQsCiAgIHBlcmwvU05NUC90L3NldC50LCBwZXJsL1NOTVAvdC9zbm1wdGVzdC5jb25mLAogICBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLCBwZXJsL2FnZW50Ly5jdnNpZ25vcmUsCiAgIHBlcmwvYWdlbnQvQ2hhbmdlcywgcGVybC9hZ2VudC9NQU5JRkVTVCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9hZ2VudC5wbSwKICAgcGVybC9hZ2VudC9hZ2VudC54cywgcGVybC9hZ2VudC90ZXN0LnBsLAogICBwZXJsL2FnZW50L3R5cGVtYXAsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlCiwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCBwZXJsL2RlZmF1bHRfc3RvcmUvQ2hhbmdlcwosIHBlcmwvZGVmYXVsdF9zdG9yZS9NQU5JRkVTVCwKICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS90ZXN0LnBsLCBwZXJsL2RlZmF1bHRfc3RvcmUvdHlwZW1hcCwKICAgcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmUsIHBlcmwvbWFuYWdlci9JTlNUQUxMLAogICBwZXJsL21hbmFnZXIvTWFrZWZpbGUuUEwsIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG0sCiAgIHBlcmwvbWFuYWdlci9nZXRWYWx1ZXMucG0sIHBlcmwvbWFuYWdlci9ncmVlbi5naWYsCiAgIHBlcmwvbWFuYWdlci9tYW5hZ2VyLnBtLCBwZXJsL21hbmFnZXIvcmVkLmdpZiwKICAgcGVybC9tYW5hZ2VyL3NldHVwYXV0aCwgcGVybC9tYW5hZ2VyL3NldHVwZGIsCiAgIHBlcmwvbWFuYWdlci9zZXR1cHVzZXIsIHBlcmwvbWFuYWdlci9zbm1wdG9zcWwsCiAgIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NU0cwMDAwMS5iaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMKLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMKLCBzbm1wbGliL3N0cnRvbC5jLCBzbm1wbGliL3N0cnRvdWwuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvdWNkX2NvbXBhdC5jLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi93aW5zZXJ2aWNlLmMsCiAgIHNubXBsaWIvd2luc2VydmljZS5tYywgc25tcGxpYi93aW5zZXJ2aWNlLnJjLAogICB0ZXN0aW5nLy5jdnNpZ25vcmUsIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUkVBRE1FCiwgdGVzdGluZy9SVU5URVNUUywgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gKLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNSwKICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzCiwgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsCiAgIHRlc3RpbmcvZXZhbF9vbmVzY3JpcHQuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwKICAgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsCiAgIHRlc3RpbmcvdGVzdF9rdWwuc2gsIHRlc3RpbmcvdGVzdHMvU3YxY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzREVTY29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1N2M1NIQURFU2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLAogICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAwMnNubXB2MWdldG5leHQKLCB0ZXN0aW5nL3Rlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMDRzbm1wdjFub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwKICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQKLCB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsCiAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwKICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybSwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcAosIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsCiAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbAosIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwKICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB3aW4zMi8uY3ZzaWdub3JlLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZCwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9kb3RfY29uZi5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oLCB3aW4zMi9zbm1wc21faW5pdC5oLAogICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLm9wdCwgd2luMzIvYmluLy5jdnNpZ25vcmUKLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLy5jdnNpZ25vcmUsCiAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYi8uY3ZzaWdub3JlLCB3aW4zMi9saWJhZ2VudC8uY3ZzaWdub3JlLAogICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcAosIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgIHdpbjMyL2xpYnNubXAvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnVjZG1pYnMvLmN2c2lnbm9yZSwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZgosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oLAogICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIHdpbjMyL3NubXBidWxrZ2V0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCB3aW4zMi9zbm1wZGVsdGEvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCB3aW4zMi9zbm1wZ2V0Ly5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICB3aW4zMi9zbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC8uY3ZzaWdub3JlCiwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy8uY3ZzaWdub3JlCiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwCiwgd2luMzIvc25tcHRlc3QvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgd2luMzIvc25tcHRyYW5zbGF0ZS8uY3ZzaWdub3JlLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHdpbjMyL3NubXB0cmFwZC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcAosIHdpbjMyL3NubXB2YWNtLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcAosIHdpbjMyL3NubXB3YWxrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICBjdnMgZmlsZSB2ZXJzaW9uIG51bWJlciBjaGFuZ2UKICAgCjIwMDItMDQtMjAgMDA6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIGNoYW5nZWxvZwogICAKMjAwMi0wNC0yMCAwMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfcGVybC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9SbW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC5oLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaAosIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oCiwgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oCiwgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmgsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgKLCBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oCiwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC92YXJiaW5kX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaAosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0LmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvZGF0YV9saXN0LmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2dldG9wdC5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMKLCBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLmMsIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL2V0aW1ldGVzdC5jCiwgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIFdoaXRlIHNwYWNlLCBvaCBnbG9yaW91cyB3aGl0ZSBzcGFjZS4KICAgSG93IGdyZWF0IG91ciB0aG91Z2g/CiAgIFRoZSBjb2RlIGlzIGZpbmUuCiAgIFdlIGFncmVlIG9uIGZ1bmN0aW9uYWxpdHkgZWFzaWx5LgogICBXaGF0IHJlYWxseSB0cm91YmxlcyB1cz8KICAgU29tZXRoaW5nIHdlIGNhbid0IHNlZS4KICAgU29tZXRoaW5nIGJldHdlZW4gdGhlIGNvZGUuCiAgIFdlIGJvdyBkb3duIHRvIHlvdXIgbWFnbmlmaWNlbmNlLAogICBGb3IgeW91IGFyZSBldmVyeXdoZXJlLAogICBCZXR3ZWVuIGV2ZXJ5dGhpbmcuCiAgIFByZXR0eSBub3RoaW5nbmVzcyB5b3UgYXJlLgogICAKMjAwMi0wNC0yMCAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0dXJuIG9uIHVjZCBjb21wYXQgYnkgZGVmYXVsdC4KICAgCjIwMDItMDQtMjAgMDA6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBsYXN0IHVwZGF0ZXMKICAgCjIwMDItMDQtMTkgMjM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICByZW1vdmUgdGVzdGRlbGF5ZWQKICAgCjIwMDItMDQtMTkgMjM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IC5jdnNpZ25vcmUsIC5jdnNpZ25vcmU6CgogICBjdnMgaWdub3JlIGZpbGUKICAgCjIwMDItMDQtMTkgMjM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgZG9uJ3QgZGllIGlmIHBlcmwgZG9lc24ndCBpbml0LgogICAKMjAwMi0wNC0xOSAyMzowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBSRUFETUUsIFNOTVAucG06CgogICBjaGFuZ2Ugd2FybmluZy4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG11bHRpcGxlIGluc2VydHMgaW50byB0aGUgZGVsZWdhdGVkIGNoYWluIGRvbid0CiAgIGhhcHBlbiAocmVhZDogdGhleSBzaG91bGRuJ3QgYW55d2F5LCBidXQuLi4uLikuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHR5cGVkZWYgdXBkYXRlCiAgIAoyMDAyLTA0LTE5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgRml4IHRoZSBjYWxsYmFjayBidWlsZCBob29rIHRvIHR1cm4gb2ZmIHRoZSBleHBlY3QgcmVzcG9uc2UgZmxhZyB3aGVuCiAgIG5vdCBhcHByb3ByaWF0ZS4KICAgCjIwMDItMDQtMTkgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBzcGVsbGluZyBtaXN0ZWFrOyByZW1vdmUgY2FwaXRhbCBsZXR0ZXJzIGluIGZ1bmN0aW9uIG5hbWVzCiAgIAoyMDAyLTA0LTE5IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZWQgaW4gb2lkX2FycmF5LmgKICAgCjIwMDItMDQtMTkgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbWFrZSB0aGUgcGVybEluaXRGaWxlIGFuZCBkaXNhYmxlUGVybCB0b2tlbnMgcmVnaXN0ZXIgYXMgcHJlbWliIHN1Y2gKICAgdGhhdCB3aGVuIHBhc3NlZCBhcyBhIC0tRkxBRyBpdCdsbCBhY3R1YWxseSBkbyB0aGUgcmlnaHQgdGhpbmcgYW5kCiAgIGRpc2FibGUgdGhlIGxhdGVyICJwZXJsIiB0b2tlbiBoYW5kbGVycy4KICAgCjIwMDItMDQtMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfZGVidWcuMywKICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMwosIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF90YWJsZS4zLAogICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMwosIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIGRvY3VtZW50YXRpb24uICBDYW4ndCBnZXQgZW5vdWdoLgogICAgIC0gbWFrZSBkb2NzIG5vdyBpbnN0YWxscyBtYW4gcGFnZXMgaW50byB0aGUgbWFuIGRpciwgd2hpY2ggYXJlIHRoZW4gaW5zdGFsbGVkLgogICAKMjAwMi0wNC0xOSAxNzoxNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgIENvcnJlY3QgZm9yIG5ldyBTVFJJTkcgcHJlZml4LgogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIEthdHN1aGlzYSBBQkUKICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnhzLCBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHM6CgogICBmaXggaGVhZGVyIGZpbGVzIGZvciBuZXcgcGF0aHMuCiAgIAoyMDAyLTA0LTE5IDE3OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEFwcGx5IHBhdGNoICM1MzI1NTU6IGlwdjYgY29tMnNlYyBzdXBwb3J0LCB0aGFua3MgdG8gS2F0c3VoaXNhIEFCRS4KICAgCjIwMDItMDQtMTkgMTY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggc3lzVXBUaW1lIChhbmQgcmVsYXRlZCBmdW5jdGlvbnMpIHRvIGhhbmRsZSBtdWNoIGxhcmdlciB1cFRpbWUKICAgdmFsdWVzIChpZSwgZml4IHNpZ25lZCBpbnRlZ2VyIHdyYXBwaW5nKS4KICAgCjIwMDItMDQtMTkgMTE6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZW1iZWRkZWQgcGVybCBzdXBwb3J0LgogICAKMjAwMi0wNC0xOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfcGVybC5wbCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMCjoKCiAgIEFkZCBzb21lIG5ldyBzbm1wZC5jb25mIHRva2VucyBmb3IgY29udHJvbGxpbmcgcGVybCBiZXR0ZXIuCiAgIEZpeCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIAoyMDAyLTA0LTE5IDExOjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54czoKCiAgIEFkZGVkIG1pc3NpbmcgYWdlbnQgZGVmYXVsdF9zdG9yZSBzdHVmZi4gICh0aGV5IGV4aXN0ZWQgb24gbXkgbWFjaGluZSwKICAgSSBkb24ndCBrbm93IHdoeSBldmVyeW9uZSBlbHNlIHdhcyBoYXZpbmcgcHJvYmxlbXMpCiAgIAoyMDAyLTA0LTE5IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhpbmdzIHRoYXQgc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuCiAgIAoyMDAyLTA0LTE5IDAzOjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIDxTaWdoPiBBIGxpdHRsZSBsZWFybmluZyBpcyBhIGRhbmdlcm91cyB0aGluZy4KICAgQXBwbHkgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoIGZyb20gQXhlbCAtIHNvcnJ5LgogICAKMjAwMi0wNC0xOSAwMTo0OSAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGRvY3VtZW5hdGlvbiB3aGVuIHNyY2RpciAhPSBjb25maWdkaXIKICAgKFBhdGNoIHN1cHBsaWVkIGJ5IEF4ZWwgS2l0dGVuYmVyZ2VyKQogICAKMjAwMi0wNC0xOCAxNzozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBmaXggc25tcElQWERvbWFpbiAoYWdhaW4pCiAgIAoyMDAyLTA0LTE4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBvbmx5IG9wZW4gc3ViYWdlbnQgY29ubmVjdGlvbnMgb25jZSBhdCBzdGFydHVwCiAgIAoyMDAyLTA0LTE4IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IGZvciBkb3duIHN1YmFnZW50IGNhc2VzLCBtYXJrIHJlZ2lzdHJhdGlvbnMgYXMgZGV0YWNoZWQKICAgCjIwMDItMDQtMTggMTc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlZmluZSBhIG1heGltdW0gcGFja2V0IHNpemUgd2UgY2FuIGFjY2VwdCB0byBwcm90ZWN0IGNlcnRhaW4gZXJyb3IKICAgY29uZGl0aW9ucyAoLTEgYWZ0ZXIgY29udmVyc2lvbiBpcyBub3cgdG9vIGxhcmdlKS4KICAgCjIwMDItMDQtMTggMTY6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBjaGFuZ2UgdGhlIGVudGVycHJpc2UgT0lEcyBpbiB0aGUgcHJvcGVyIHBsYWNlIChuZXQtc25tcC1jb25maWcuaC5pbgogICBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUpLgogICAKMjAwMi0wNC0xOCAxMzo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICAtIEFkZCB0d28gbmV3IG9wdGlvbnMgdG8gbmV0LXNubXAtY29uZmlnIGFzIHJlcXVlc3RlZCBvbiB0aGUgSVJDIGNoYW5uZWwuCiAgICAgLS1jb25maWd1cmUtb3B0aW9ucwogICAgIC0tc25tcGQtbW9kdWxlLWxpc3QKICAgCjIwMDItMDQtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wNC0xOCAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDYWxjdWxhdGUgdGhlIGxlbmd0aCBvZiBzdXBwbGllZCBlbnRlcnByaXNlIE9JRHMgY29ycmVjdGx5CiAgIChhbmQgdXNlIGEgbW9yZSBtZWFuaW5nZnVsIG91dHB1dCBtZXNzYWdlKQogICAKICAgU2hhbWUgdGhlc2Ugc2V0dGluZ3MgYXJlbid0IGNhY2hlZCBmb3IgbGF0ZXIgcmUtdXNlLi4uLgogICAKMjAwMi0wNC0xOCAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE5vdGlmeSBvbiBhZ2VudCByZWNvbmZpZ3VyYXRpb24uCiAgIAoyMDAyLTA0LTE4IDA3OjE2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBub3RpZmljYXRpb25zIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE4IDA3OjA4ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBGaXggdGhlIHRhYmxlLW9mLWNvbnRlbnRzIHNlcXVlbmNlIGZvciB0aGUgbnNNb2R1bGVUYWJsZSwgYWRkIG5vdGlmaWNhdGlvbgogICBkZWZpbml0aW9ucyBmb3IgdGhlIGFnZW50LCBhbmQgZGVmaW5lIGdyb3VwcyBmb3IgZXZlcnl0aGluZy4KICAgCjIwMDItMDQtMTggMDI6NTIgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBCcmluZyBpbnRlZ2VyIGFuZCBzdHJpbmcgb3V0cHV0IGZvcm1hdHMgaW50byBsaW5lIHdpdGggdGhlIG90aGVyIHR5cGVzCiAgIGJ5IHByaW50aW5nIGEgdHlwZSB0b2tlbiBiZWZvcmUgdGhlIHZhbHVlICh1bmxlc3Mgc3VwcmVzc2VkIGJ5ICdxdWljayBwcmludCcpCiAgIFRoYW5rcyB0byBFcmlrIGZvciB0aGUgcGF0Y2gKICAgCjIwMDItMDQtMTggMDE6NDYgIGR0czEyCgogICAqIEZBUToKCiAgIFJlcGxhY2UgdGhlIGRsbW9kICdXSEVSRScgd2l0aCBzb21ldGhpbmcgbW9yZSBtZWFuaW5nZnVsLi4uLgogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBkZWZpbmUgdGhlIGlweERvbWFpbiB2YXJpYWJsZXMKICAgCjIwMDItMDQtMTcgMTI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIEVycm9yIGNvbmRpdGlvbiB0ZXN0cwogICAKMjAwMi0wNC0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBPaCwganVzdCBhIHNtYWxsIHBhdGNoIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gbWFrZSBtb2R1bGVzIHJlcXVlc3QKICAgdGhhdCBhbGwgcXVlcmllcyB0byBhIHNldCBvZiByZWdpc3RyYXRpb25zIGdldCBwYXNzZWQgYWxsIGF0IG9uY2UKICAgKHdoaWNoIGFwcGFyZW50bHkgaXMgaW1wb3J0YW50IGZvciwgb2gsIGFnZW50eCkKICAgCjIwMDItMDQtMTcgMTA6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1pc2Mgbm9uLWNoYW5nZSBjbGVhbiB1cHMKICAgCjIwMDItMDQtMTcgMTA6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbmFtZSBzdHJ1Y3R1cmVzIGJlZ2lubmluZyB3aXRoIF8gdG8gZW5kaW5nIHdpdGggX3MKICAgCjIwMDItMDQtMTcgMTA6MDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGEgdm9pZCAqIHBvaW50ZXIgZm9yIHRoZSBzZXNzaW9uIGNyZWF0b3IgdG8gdXNlIGF0IHdpbGwgKGRpZmZlcmVudAogICBmcm9tIHRoZSBjYWxsYmFjayBtYWdpYykuCiAgIAoyMDAyLTA0LTE3IDA5OjAwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgc3lzT0lEcyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xNyAwODoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlLgogICAKMjAwMi0wNC0xNyAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZQogICAKMjAwMi0wNC0xNyAwNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBtb3ZlIG5zTW9kdWxlVGFibGUgaW50byBEYXZlJ3Mgc3RydWN0dXJlLgogICAKMjAwMi0wNC0xNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcFRDUElQdjZEb21haW4uaCwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbnMgb2YgRG9tYWluIG9iamVjdHMgKGNvbnN0IC0+IGV4dGVybikKICAgCjIwMDItMDQtMTcgMDY6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIHNubXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCBzbm1wdHJhcGQtZGF0YS9zbm1wY29uZi1jb25maWcKOgoKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBkYXRhCiAgIAoyMDAyLTA0LTE3IDAzOjAxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSByZXBvcnRlZCBkZWZhdWx0IHNldHRpbmdzIGZvciBzeXNvaWQgJiBub3RpZmljYXRpb24gT0lEcwogICBiYWNrIGludG8gbGluZSB3aXRoIHdoYXQgd2UgYWN0dWFsbHkgdXNlIChpLmUuIHRoZSB1Y2RhdmlzIE9JRHMpLgogICAKICAgUW46ICBEbyB3ZSB3YW50IHRvIHN3aXRjaCB0byB1c2luZyB0aGUgbmV0LXNubXAgZXF1aXZhbGVudCBzeXNPSURzPwogICBRbjogIFdoYXQgYWJvdXQgZGVmaW5pbmcgbmV0LXNubXAgbm90aWZpY2F0aW9ucz8KICAgCjIwMDItMDQtMTcgMDI6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IC0td2l0aC1lbnRlcnByaXNlLXN5c29pZCBhbmQgLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCwKICAgYW5kIHRyeSB0byBjbGFyaWZ5IHRoYXQgdGhlc2UgYXJlIE9JRHMsIHdoaWxlIC0td2l0aC1lbnRlcnByaXNlLW9pZAogICBpcyBhY3R1YWxseSBqdXN0IHRoZSBlbnRlcnByaXNlICpudW1iZXIqCiAgIAogICBRbjogIHNob3VsZCB3ZSBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gdG8gcmVmbGVjdCB0aGlzPwogICAKMjAwMi0wNC0xNiAxMDowNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUzICkKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGRlbGV0ZSB0b3AgZGlzY2xhaW1lcnMKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMDQtMTYgMTA6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWlzYyBidWcgZml4ZXMKICAgCjIwMDItMDQtMTYgMDg6MTkgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBjb25jZXJuaW5nIHRoZSAnbGliY3J5cHRvJyBSUE0gZGVwZW5kZW5jeS4KICAgCjIwMDItMDQtMTYgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wNC0xNiAwNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGEgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIHRvZG8gY29tbWVudAogICAKMjAwMi0wNC0xNiAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgSSBndWVzcyBJIGZvcmdvdCB0byBydW4gYXV0b2NvbmYKICAgCjIwMDItMDQtMTUgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogc25tcGNvbmYsIE1ha2VmaWxlLmluOgoKICAgbW92ZSBzbm1wY29uZiBkYXRhIGRpcmVjdG9yaWVzIHRvIGRpZmZlcmVudCBuYW1lcyB0byBhdm9pZCBjb25mdXNpb24KICAgCjIwMDItMDQtMTUgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9hdXRob3B0cywKICAgc25tcC1kYXRhL2RlYnVnZ2luZywgc25tcC1kYXRhL21pYnMsIHNubXAtZGF0YS9vdXRwdXQKLCBzbm1wZC1kYXRhL2FjbCwgc25tcGQtZGF0YS9iYXNpY19zZXR1cCwKICAgc25tcGQtZGF0YS9leHRlbmRpbmcsIHNubXBkLWRhdGEvbW9uaXRvciwKICAgc25tcGQtZGF0YS9vcGVyYXRpb24sIHNubXBkLWRhdGEvc3lzdGVtLAogICBzbm1wZC1kYXRhL3RyYXBzaW5rcywgc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywKICAgc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZToKCiAgIGRhdGEgZmlsZSBtb3ZpbmcKICAgCjIwMDItMDQtMTIgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgTWFzc2l2ZSBjbGVhbnVwIGVmZm9ydC4gIEl0IHNob3VsZCBub3cgcmVzcGVjdCBvcmRlcmluZyBpbiB0aGUKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBmaWxlcyBhcyB3ZWxsLgogICAKMjAwMi0wNC0xMiAxMzowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGZpeCBmb3Igb3ZlcnplYWxvdXMgcGVybCBzY3JpcHQKICAgCjIwMDItMDQtMTIgMDk6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNvcHkgdWNkIHBlcnNpc2VudCBkaXJlY3RvcnkgdG8gbmV0LXNubXAgKHByb21wdHMsIGZsYWdzIGFuZCBvdGhlciBmdW4pCiAgIAoyMDAyLTA0LTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgdHJhcHRvZW1haWwKICAgCjIwMDItMDQtMTIgMDc6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIHJlbW92ZSB0cmFwbm90aWYKICAgCjIwMDItMDQtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHJzbm1wOgoKICAgcmVtb3ZlIHJzbm1wLCB3aGljaCBpcyB2ZXJ5IHZlcnkgb2xkIGFuZCBvdXQgb2YgZGF0ZQogICAKMjAwMi0wNC0xMiAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIG1pYjJjLjEuZGVmOgoKICAgQSBtYW51YWwgcGFnZSBmb3IgbWliMmMgKGhlbHAsIEknbSB0dXJuaW5nIGludG8gRGF2ZSkKICAgCjIwMDItMDQtMTIgMDc6MjggIGhhcmRha2VyCgogICAqIGRvdGdkYmluaXQ6CgogICBhIGdkYiBpbml0aWFsaXphdGlvbiBmaWxlIHdpdGggaGVscGZ1bCBmdW5jdGlvbnMKICAgCjIwMDItMDQtMTIgMDI6NDIgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgQWRkICdzbm1wY29uZicgYW5kICdtaWIyYycgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyB0byBpbnN0YWxsLgogICAKICAgSSd2ZSBsZWZ0ICd0cmFwdG9lbWFpbCcgb2ZmIHRoaXMgbGlzdCwgc2luY2UgaXQgc2F5cyBpdCdzIG5vdCBpbnRlbmRlZAogICBhcyBhIGRpcmVjdGx5IHVzZXItaW52b2tlZCBjb21tYW5kLCBzbyBwcm9iYWJseSBvdWdodCBub3QgdG8gYmUgaW5zdGFsbGVkCiAgIGludG8gYSBiaW5hcnkgZGlyZWN0b3J5LgogICAKMjAwMi0wNC0xMiAwMjo0MSAgZHRzMTIKCiAgICogbG9jYWwvcnNubXA6CgogICBGaXggdGhlIHBhdGggb2Ygc25tcHdhbGsgdG8gYmUgc29tZXRoaW5nIG1vcmUgcGxhdXNpYmxlLgogICAoSSdtIG5vdCBjb252aW5jZWQgYWJvdXQgdGhlIHZhbGlkaXR5IG9mIHRoYXQgaW5pdGlhbCAncnRvcG1pYicgT0lEIG1pbmQhKQogICAKMjAwMi0wNC0xMiAwMjozNiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIEZpeCB0eXBvIGluIHJlZmVyZW5jZSB0byAnbWliMmMuaXRlcmF0ZS5jb25mJwogICAKMjAwMi0wNC0xMiAwMjozMyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtYWluIGxpYnJhcnkgYXMgJ2xpYnNubXAnIGlmIGNvbmZpZ3VyZWQgdXNpbmcgVUNEIGNvbXBhdGliaWxpdHkuCiAgIFRoaXMgc2hvdWxkIGhhbmRsZSB0aGUgcmVxdWlyZW1lbnRzIG9mIGFwcGxpY2F0aW9uIGNvbXBhdGliaWxpdHkuCiAgIEFnZW50IGxpYnJhcnkgY29tcGF0aWJpbGl0eSBpcyBsaWtlbHkgdG8gcHJvdmUgYSBoYXJkZXIgcHJvYmxlbQogICAoc2luY2UgdGhlcmUgYXJlIG5vdyB0aHJlZSBsaWJyYXJpZXMsIG5vdCBqdXN0IHR3by4uLikKICAgCjIwMDItMDQtMTEgMjI6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBzZXQgU05NUENPTkZQQVRIIGlmZiBbc2ljXSBub3Qgc2V0CiAgIAoyMDAyLTA0LTExIDIyOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJldHVybiBmcm9tIGluaXRNaWIgYmVmb3JlIGRvaW5nIGFueXRoaW5nLgogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgdHVybiBvZmYgY29tcGxpZXIgd2FybmluZ3MKICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgInNob3cgY29sdW1ucyBmcm9tIFRBQkxFIgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgbmV3IGRlbW8gc2NhbGFyOiB0aGUgc2xlZXBlci4gIChkYWggZGFoIGRhaCBkdW1tbW1tKQogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgaW5kZW50LgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy5oLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMKLCBleGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmg6CgogICBBZGQgYSBkZWxheWVkIGluc3RhbmNlIGV4YW1wbGUsIHNob3dpbmcgaG93IHRvIHJldHVybiBtaWIgcmVxdWVzdAogICByZXN1bHRzIGxhdGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5LgogICAKMjAwMi0wNC0xMSAyMjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYzoKCiAgIHJlbW92ZSBsZWdhY3kgZXhhbXBsZS4KICAgCjIwMDItMDQtMTEgMjI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGFkZCBjb21tZW50IGFib3V0IHBvc3NpYmx5IGZpeGluZyBpbmNsdXNpdmUgcmVxdWVzdHMgaW4gdGhlIGZ1dHVyZS4KICAgCjIwMDItMDQtMTEgMTc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIGNoYW5nZSBtb2R1a2VzLT4gbW9kdWxlcwogICAKMjAwMi0wNC0xMSAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHR1cm4gb2ZmIGRlYnVnZ2luZyB3aGVuIGNhbGxpbmcgbG9nZ2luZyBjYWxsYmFja3MKICAgCjIwMDItMDQtMTAgMTI6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggcGVybCBtb2R1bGUgaW4gbWFueSBtYW55IHBsYWNlcy4gIG1vc3QgdGVzdHMgbm93IHBhc3MuCiAgIAoyMDAyLTA0LTEwIDEyOjUwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgZm9yY2Ugc2V0dGluZyB0byBhICJib2d1cyIgU05NUENPTkZQQVRILgogICAKMjAwMi0wNC0xMCAxMjo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgRXhwb3J0aW5nIGZ1bmN0aW9ucyBnb29kLiAgSW50ZXJuYWxpemluZyBiYWQuCiAgIAoyMDAyLTA0LTEwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICBzaWdoLgogICAKMjAwMi0wNC0xMCAwOToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wNC0xMCAwOToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIE1ha2UgdGhlIHBlcmwgbW9kdWxlIGNhbGwgaW5pdF9zbm1wKCkKICAgICAtIHRoaXMgaXMgYSBmYWlybHkgbWFqb3IgY2hhbmdlLCBpcyBpdCBub3cgd2lsbCByZWFkIC5jb25mIGZpbGVzLgogICAgIC0gbWFueSBwZW9wbGUgaGF2ZSBhc2tlZCBmb3IgdGhpcy4KICAgLSBtaXNjIGNsZWFuIHVwcy4KICAgCjIwMDItMDQtMTAgMDk6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRG9uJ3QgcmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIGZvciB0aGUgY29uc2l0dWVudCBzdWJ0YXJnZXRzIG9mICJtYWtlIGluc3RhbGwiCiAgIAoyMDAyLTA0LTEwIDA5OjA5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgYSBmZXcgdGhpbmdzLCBzZXBhcmF0ZWQgcGVybCBzdHVmZiBpbnRvIGl0J3Mgb3duIHNlY3Rpb24uCiAgIAoyMDAyLTA0LTEwIDA4OjQ2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEJyaW5nIHRoZSBoZWxwIG1lc3NhZ2UgZm9yIHRoZSBVQ0QgY29tcGF0YWJpbGl0eSBvcHRpb24gaW50byBsaW5lIHdpdGgKICAgd2hhdCdzIGFjdHVhbGx5IHJlY29nbmlzZWQuCiAgIAoyMDAyLTA0LTEwIDA3OjUyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjaGFuZ2UgbGlidG9vbCB2ZXJzaW9uaW5nIHRvIHRoZWlyIHJlY29tbWVuZGVkIG1ldGhvZCBvZiBkb2luZyB0aGluZ3MKICAgKHdoaWNoIEkgaGF0ZSwgYnV0IGlzIHN0aWxsIGJldHRlciB0aGFuIHdoYXQgd2Ugd2VyZSBkb2luZywgSSBndWVzcykKICAgCjIwMDItMDQtMTAgMDc6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgQnJpbmcgdXNlIG9mIEJVSUxUU1VCRElSIHdpdGhpbiAnaW5zdGFsbGxvY2FsaGVhZGVycycgaW50byBsaW5lCiAgIHdpdGggdGhlIHByZWNlZGluZyBjb21tZW50LCBhbmQgYWN0dWFsIHVzYWdlLgogICAoaS5lLiBJTlNUQUxMQlVJTFRTVUJESVIgcmF0aGVyIHRoYW4gSU5DTFVERUJVSUxUU1VCRElSKQogICAKMjAwMi0wNC0xMCAwNTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFR5cG8gaW4gc2VjdXJpdHktaW5jbHVkZSBoZWFkZXIgZGVzdGluYXRpb24gZGlyZWN0b3J5IHZhcmlhYmxlCiAgIAoyMDAyLTA0LTEwIDA1OjU1ICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgaW5zdGFsbGluZyBtaWIyYyBjb25mIGZpbGVzLgogICAKMjAwMi0wNC0xMCAwMTo1NSAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDRzbm1wdjFub3N1Y2gsIFQwMTlzbm1wdjJjbm9zdWNoOgoKICAgVHdvIG5ldyB0ZXN0cyB0byBjaGVjayBoYW5kbGluZyBvZiBHRVRpbmcgbm9uLWV4aXN0YW50IGluc3RhbmNlcwogICAKMjAwMi0wNC0xMCAwMTo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQSBmaXggZm9yIFNOTVB2MSBlcnJvcnMgdGhhdCBkb2Vzbid0IGVuZCB1cCBicmVha2luZyBBZ2VudFggZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAyLTA0LTA5IDEwOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQYXRjaCBmcm9tIERhdmUgdG8gZml4IHYxIGVycm9yIHJlc3VsdHMuCiAgIAoyMDAyLTA0LTA4IDIxOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpeCBpbmNvcnJlY3QgbGVuZ3RoIHJldHVybiB2YWx1ZQogICAKMjAwMi0wNC0wOCAxODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmg6CgogICBkb24ndCBhbGxvdyBuby1jb25maWd1cmF0aW9uIGFjY2VzcyBhbnltb3JlLgogICAKMjAwMi0wNC0wOCAxNzo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXB1c20uYwo6CgogICBtb3JlIHVuY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDItMDQtMDggMTc6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgc2l6ZV90IGV4dGVybnMgZm9yIGV4cG9ydGVkIG9pZHMKICAgCjIwMDItMDQtMDggMTc6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHN0YXRlbWVudHMgdGhhdCBhY2NpZGVudGFsbHkgYmVjYW1lIHBlcm1hbmVudC4KICAgCjIwMDItMDQtMDggMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBfdHJhbnNwb3J0LmM6CgogICBkZWZpbmUgbGVuZ3RoIHNpemVfdCdzIGZvciBvaWQgdmFyaWFibGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBzdXBwb3J0ICJudWxsIiB0eXBlcy4KICAgCjIwMDItMDQtMDggMTY6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIG5vdGlmaWNhdGlvbiBsb2cgbWliIHN1cHBvcnQgYmVmb3JlIC1IIHVzYWdlLgogICAKMjAwMi0wNC0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpeCBhIGZldyB0aGluZ3MgYW5kIG1ha2Ugc3ViaGFuZGxlcnMgbm90IGFibGUgdG8gdGVsbCB0aGVyZSB3ZXJlIG1vcmUgcmVxdWVzdHMuCiAgIAoyMDAyLTA0LTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgQSBjby13b3JrZXIgcG9pbnRlZCBvdXQgdGhhdCB0aGUgSU5TVEFMTCBzY3JpcHQgc3RpbGwgc2FpZCB0byBlZGl0IGNvbmZpZy5oCiAgIAoyMDAyLTA0LTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHVuc3RhdGljLWl6ZSBhIGZldyBvaWRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBleHRlcm5hbAogICAKMjAwMi0wNC0wOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBUQ1BEb21haW4uYywKICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uYywgc25tcF9hcGkuYywgc25tcF90cmFuc3BvcnQuYwosIHNubXB1c20uYzoKCiAgIENoYW5nZSBjb25zdCBvaWQgZGVjbGFyYXRpb25zIGludG8gc3RhdGljIG9uZXMgc2luY2Ugc2hhcmVkIGxpYnJhcmllcwogICBoYXZlIGEgcHJvYmxlbSB3aXRoIGluaXRpYWxpemluZyB0aGVtIG9uIGxpbnV4IHN5c3RlbXMgYXQgbGVhc3QuCiAgIAoyMDAyLTA0LTA4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pbmltYWwgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdnaW5nIGFuZCB0aGUgaW5qZWN0SGFuZGxlciB0b2tlbgogICAKMjAwMi0wNC0wNSAxNDozMiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcHRyYXBkLjguZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQiBzdXBwb3J0LgogICAKMjAwMi0wNC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBjb250ZXh0IG5hbWUgc3VwcG9ydCBpbiBwcm94eSBjb2RlLgogICAKMjAwMi0wNC0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZGlzbWFuIGV2ZW50IG1pYiBzdXBwb3J0IGZvciBzZW5kaW5nIHRyYXBzIHZpYSBtb25pdG9yZWQgT0lEcy4KICAgCjIwMDItMDQtMDUgMTA6MTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcHV0IHRyYXAgY29uZmlnIGludG8gaXRzIG93biBzZWN0aW9uLgogICBkb2N1bWVudCB0aGUgIm92ZXJyaWRlIiB0b2tlbi4KICAgCjIwMDItMDQtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBjaGFuZ2UgZGVmYXVsdCBjb250ZXh0IHRvIGFuIGVtcHR5IHN0cmluZwogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuNSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgTWFrZSBhbiBleGFtcGxlIGRhdGFzZXQgdGFibGUgdG8gaG9sZCBhbmQgc3RvcmUgZGF0YSBpbiAoYWRtaXR0ZWRseQogICB1c2VsZXNzIGRhdGEgZnJvbSBhIG5ldHdvcmsgbWFuYWdlbWVudCBwb2ludCBvZiB2aWV3LCBidXQgaXQncyBhbiBleGFtcGxlKS4KICAgCjIwMDItMDQtMDIgMjI6MTIgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gZnJvbSBzdWJkaXIgYnVpbGQgY2FzZS4KICAgCjIwMDItMDQtMDIgMjE6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNubXB2My1zZWN1cml0eS1pbmNsdWRlcyBmcm9tIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmggYW5kIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCBmcm9tIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuaCBmcm9tIHRoZSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGNyZWF0ZSBzb21lIGluc3RhbGwgZnJvbSBidWlsdCBoZWFkZXIgcnVsZXMuCiAgIAoyMDAyLTA0LTAyIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgcmVtb3ZlIGRlbGV0ZWQgYXJyYXktYXV0byBmcm9tIC5jb25mIGluc3RhbGwvcmVmZXJlbmNlIGxpc3RzCiAgIAoyMDAyLTA0LTAyIDE1OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIHVjZC1zbm1wL3JlZ2lzdHJ5Lmg6CgogICByZW1vdmUgdGhlIHJlZ2lzdHJ5IG1vZHVsZSwgYXMgaXQncyBvYnNvbGV0ZSBkdWUgdG8gY29udGV4dHMuICBVc2UgdGhlIG5zTW9kdWxlVGFibGUgaW5zdGVhZAogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jIChWNC0yLXBhdGNoZXMuNyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY0LTItcGF0Y2hlcy44KSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMiAwNzowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgY2hhciBmb3IgTlVMTCBiZWZvcmUgc2V0dGluZyB0bzoKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOSksIGNtdV9jb21wYXQuYywKICAgc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI5IDE1OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzICYgdXBkYXRlcwogICAKMjAwMi0wMy0yOSAxMDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhZGQgY29tbWVudAogICAKMjAwMi0wMy0yOSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBhIGFsbG93X2NyZWF0aW9uIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTI5IDA4OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG1ha2UgbmV0LXNubXAtY29uZmlnIGV4ZWN1dGFibGUgYWZ0ZXIgaXQncyBidWlsdAogICAKMjAwMi0wMy0yOSAwODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzZXRTZXJpYWxOby5jLCBzZXRTZXJpYWxOby5oOgoKICAgb3Bwcy4gIGZvcmdvdCB0byBjaGVjayB0aGUgc2V0U2VyaWFsIGNvZGUgaW4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jIChWNC0yLXBhdGNoZXMuNCksIHBhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFY0LTItcGF0Y2hlcy40KSwgaHJfZmlsZXN5cy5jCjoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvaW50ZXJmYWNlcy5jCiwgbWliSUkvaXBBZGRyLmM6CgogICBBcHBseSBuZXRic2QgZml4IHBhdGNoICM1Mjk3MzMKICAgCjIwMDItMDMtMjggMjM6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOCksIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjUgIGR0czEyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIHJlYWRfY29uZmlnLjMuZGVmLAogICBzbm1wX2FwaS4zLmRlZjoKCiAgIFR3ZWFrIHRvIHVzZSB0aGUgbmV3IGluY2x1ZGUgc3RydWN0dXJlLgogICAKMjAwMi0wMy0yOCAxNToyMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuOCksIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yOCAxNDo1NiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbmFtZS9wcmVmaXggZnVuY3Rpb25zOyBhZGQgZG94eWdlbiBkb2N1bWVudGF0aW9uCiAgIAoyMDAyLTAzLTI4IDEzOjAwICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgYWRkIGRlZmluZSBmb3IgZXhjbHVkaW5nIHN0dWZmIChET1hZR0VOX1NIT1VMRF9TS0lQX1RISVMpCiAgIAoyMDAyLTAzLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgYWRkIHNldFNlcmlhbE5vCiAgIAoyMDAyLTAzLTI4IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIGZpeCBhIG5ldmVyLXNlZW4tYnV0LXZlcnktb2xkLWJ1ZyB1c2luZyB0aGUgd3JvbmcgZGVmYXVsdF9zdG9yZSB0b2tlbi4KICAgCjIwMDItMDMtMjggMTI6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG9ubHkgc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBzdHlsZSBpZiBpdCdzIG5vdCBhbHJlYWR5IHNldCB0byBzb21ldGhpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgd3JhcHBpbmcuCiAgIAoyMDAyLTAzLTI4IDEyOjE3ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgdmVyc2lvbiBudW1iZXIKICAgCjIwMDItMDMtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGJhY2sgb3V0IGNoYW5nZSBmcm9tIHZlcnNpb24gMS42NSB1bnRpbCBiZXR0ZXIgc29sdXRpb24gY2FuIGJlIGZvdW5kOwogICBidWcgIzUzNTAyOQogICAKMjAwMi0wMy0yOCAxMjowMyAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICByZXR1cm4gc3BlY2lmaWMgcmVzdWx0IGNvZGUgZm9yIHJlZ2lzdHJhdGlvbiBmYWlsdXJlIGlmIGF2YWlsYWJsZS4KICAgCjIwMDItMDMtMjggMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCjoKCiAgIHBlcmwgdHlwbwogICAKMjAwMi0wMy0yNyAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGRlbGV0ZSBvbGQsIHVudXNlZCBjb25mIGZpbGUKICAgCjIwMDItMDMtMjcgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMsIG5vdGlmaWNhdGlvbl9sb2cuaCwKICAgc25tcHRyYXBkLmM6CgogICBhZGQgImRvbnRSZXRhaW5Mb2dzIiB0b2tlbiB0byBzbm1wdHJhcGQuY29uZiB0byBub3QgZW5hYmxlIHRoZQogICBub3RpZmljYXRpb24gbG9nIG1pYi4KICAgCjIwMDItMDMtMjcgMDE6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFVzZSB0aGUgY29ycmVjdCBuYW1lIG9mIHRoZSBXaW5kb3dzIElQIEhlbHBlciBBUEkgbGlicmFyeS4KICAgKENvbXB1dGVycyBjYW4gYmUgc29vb28gcGlja3khKQogICAKMjAwMi0wMy0yNiAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gUmVhbGx5IGZpeCB0aGUgInVuZG8gZmFpbGVkIiBwcm9ibGVtLiAgSUUsIG5vdCBqdXN0IGFueSBvbGQgZXJyb3IKICAgICB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIG1lc3NhZ2UgdG8gZ2V0IHNlbnQgYmFjay4gIE9ubHkgdmFyYmluZHMKICAgICB3aXRoIGFuIHVuZG8gZmFpbGVkIGVycm9yIGNvZGUgd2lsbCBjYXVzZSBhbiB1bmRvIGZhaWxlZCByZXN1bHQuCiAgICAgdW5kbyBmYWlsZWQgcmVzdWx0cyBkbyBzdGlsbCBzdXBlcnNlZGUgYWxsIG90aGVyIGVycm9yIGNvZGVzLAogICAgIGhvd2V2ZXIsIHdoaWNoIGlzIHdoYXQgdGhlIG9yaWdpbmFsIHByb2JsZW0gd2FzIGFsbCBhYm91dC4gIFdlIHN0aWxsCiAgICAgaGF2ZSB0byBkZXBlbmQgb24gdGhlIG1vZHVsZXMgcmV0dXJuaW5nIHRoZSByaWdodCBlcnJvciBjb2RlIChidXQKICAgICB0aGF0J3MgdGhlaXIgZmF1bHQgaWYgdGhleSBkb24ndCkuCiAgIC0gbWlzYyBjbGVhbnVwcyBhbmQgcmVuYW1lcwogICAKMjAwMi0wMy0yNiAyMzoyMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIENyYWlnIFNldGVyYQogICAKMjAwMi0wMy0yNiAxNDowNyAgcnN0b3J5CgogICAqIFRPRE86CgogICBhZGQgY3JlYXRpbmcgc3JjIHJwbSBzcGVjIGZpbGUKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlza2lvLmMgKFY0LTItcGF0Y2hlcy4yKSwgZGlza2lvLmMKOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NTggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBmaXggZm9yIG90aGVyLWRpciBidWlsZHMKICAgCjIwMDItMDMtMjYgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGluZm8gaW4gc3BsaXRfc3VidHJlZQogICAKMjAwMi0wMy0yNiAwNzo0MyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bMCwwXSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls5LDldKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo0MSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgbGlzdCBvZiBhZ2VudCBsaWJyYXJpZXMsIHdoZW4gcnVubmluZyBvbiBXaW5kb3dzCiAgICh1c2luZyBDeWd3aW4pLiAgU2hvdWxkIGZpeCBCdWcgIzUzNDQwOS4KICAgCjIwMDItMDMtMjUgMjI6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogcGFyc2UuYyAoVjQtMi1wYXRjaGVzLjMpLCBwYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxNToxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgoKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDMtMjUgMTQ6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgdXNlIGVtYWNzIHRvIGZpeCBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgcGVybCB0byBzZWFyY2ggYW5kIHJlcGxhY2UgcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMjUgMDg6NDMgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIub3B0LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBkZi9zbm1wZGYuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcAosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBSZW1vdmUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucyBvZiAnZ2V0b3B0LmMnIGFuZCAnc25tcF9wYXJzZV9hcmdzLmMnIGluCiAgIGVhY2ggaW5kaXZpZHVhbCBhcHBsaWNhdGlvbiBwcm9qZWN0LiAgVGhlc2Ugcm91dGluZXMgYXJlIGluY2x1ZGVkIHdpdGhpbgogICB0aGUgbGlicmFyaWVzLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIHVzZSB0aG9zZS4KICAgCjIwMDItMDMtMjUgMDU6NTMgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oLCB3aW4zMi5vcHQsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIEdvdGNoYSEgIEV2ZXJ5dGhpbmcgbm93IGJ1aWxkcyAobW9yZS1vci1sZXNzKSBjbGVhbmx5IHVuZGVyIFZpc3VhbCBDKysuCiAgIFlvdSBzdGlsbCBoYXZlIHRvIHVzZSB0aGUgIkJhdGNoIEJ1aWxkIiBtZWNoYW5pc20gKG9yIGVsc2UgYmUgY2FyZWZ1bCB3aGljaAogICBvZiBsaWJzbm1wL2xpYnNubXBfZGxsIHlvdSBidWlsZCBpbiBlYWNoIG9mIHRoZSBEZWJ1ZyAmIFJlbGVhc2UgbW9kZXMpLAogICBhbmQgeW91IG5lZWQgdG8gYnVpbGQgdHdpY2UgaW4gb3JkZXIgdG8gZ2V0IGVuY29kZV9rZXljaGFuZ2UgbGlua2luZy4KICAgQnV0IHRoaW5ncyAqZG8qIGZpbmFsbHkgYnVpbGQuCiAgIAoyMDAyLTAzLTI0IDA1OjIxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjMgMDk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICByZWFsbHkgZml4IHNubXBpbmZvcm0gaW5zdGFsbHMgdGhpcyB0aW1lLgogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaW5hbCBjbGVhbnVwcyBvZiBub3RpZmljYXRpb24gbG9nIHN1cHBvcnQKICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIG9mIHNubXBpbmZvcm0KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSZW5hbWUgc3R1ZmYuICBGaXggc3R1ZmYuICBZb3Uga25vdywgbm9ybWFsIHJvdXRpbmUuCiAgIAoyMDAyLTAzLTIyIDIyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCB2ZXJzaW9uIGZpbGUgbG9jYXRpb24gZm9yIG5vbi1zb3VyY2VkaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTIyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZvcmdvdCB0byBjb21taXQgYSBwcm90b3R5cGUuCiAgIAoyMDAyLTAzLTIyIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgcmVnaXN0ZXJfbWliX2NvbnRleHQyIC0+IG5ldHNubXBfcmVnaXN0ZXJfbWliIChhbmQgbWFya2VkIGFzIGludGVybmFsKQogICAKMjAwMi0wMy0yMiAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICB1c2UgbmV3IGVycm9yIGxvZ2dpbmcgYXBpIHdoZW4gIXJvb3QKICAgCjIwMDItMDMtMjIgMTQ6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGVuYWJsZSBsb2dnaW5nIHNlc3Npb24gZXJyb3JzIHRvIHNvbWUgbG9nIGxldmVsIG90aGVyIHRoYW4gRVJSLgogICAKMjAwMi0wMy0yMiAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHN1YmFnZW50LmM6CgogICBiZXR0ZXIgYWdlbnR4IGNvbm5lY3Rpb24gcmVsYXRlZCBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMjIgMDk6MzUgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMi5vcHQsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIHNubXBkL3NubXBkLmRzcDoKCiAgIFNsb3dseSBtYWtpbmcgcHJvZ3Jlc3Mgb24gNS4wIFdpbmRvd3MgYnVpbGQuCiAgIEV2ZXJ5dGhpbmcgbm93IGNvbXBpbGVzLCB0aG91Z2ggdGhlIFJlbGVhc2UgdmVyc2lvbiBkb2Vzbid0IGxpbmsuCiAgICAgKGNvbXBsYWlucyBhYm91dCBhc3NvcnRlZCB1bmtub3duIHJvdXRpbmVzIHRoYXQgYXJlIHRoZXJlLAogICAgICBzdGFyaW5nIGl0IGluIHRoZSBmYWNlLiAgR3JyciEhISEpCiAgIAoyMDAyLTAzLTIyIDA4OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIG5vdCAidHdlYWsiIHJhbmdlX3N1YmlkIHdoZW4gZGVhbGluZyB3aXRoIGNvbXByZXNzZWQgT0lEcy4KICAgICAgIFRoYW5rcyB0byBDcmFpZyBTZXRlcmEgZm9yIHBvaW50aW5nIG91dCB0aGlzIGRldmlhdGlvbiBmcm9tIFJGQwogICAgICAgMjc0MS4KICAgCjIwMDItMDMtMjIgMDc6NTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL29pZF9hcnJheS5jCiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBWYXJpb3VzIG1pbm9yIGluY29uc2lzdGVuY2llcyAobW9zdGx5IHRvIGRvIHdpdGggc3VidGxlIHZhcmlhdGlvbnMgaW4gdHlwZXMpCiAgIAoyMDAyLTAzLTIyIDA3OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTAzLTIyIDA3OjI5ICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDoKCiAgIEJyaW5nIFdpbmRvd3MgdmVyc2lvbnMgb2YgImF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIiBoZWFkZXIgZmlsZXMgdXAgdG8gZGF0ZS4KICAgCjIwMDItMDMtMjIgMDI6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRvbid0IHVzZSAicmVnIiBhcyBhIHBhcmFtZXRlciBuYW1lIGluIGtlcm5lbF9zdW5vczVfY2FjaGVfYWdlKCkKICAgICAgIGFzIC91c3IvaW5jbHVkZS9pbmV0L2NvbW1vbi5oIHNheXM6CiAgICAgICAjZGVmaW5lIHJlZyByZWdpc3RlcgogICAgICAgKCEpIHdoaWNoIHRoZSBjb21waWxlciB0aGVuIGJhcmZzIG9uLiAgUmVwb3J0ZWQgYXMgYnVnICM1MzMzMzYgYnkKICAgICAgIEFub255bW91cy4KICAgCjIwMDItMDMtMjEgMDk6MjQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gc25tcF9jb25maWcqIC0+IG5ldHNubXBfY29uZmlnIChmb3IgbmV3IGZ1bmN0aW9ucyBvbmx5KQogICAtIGZpeCBidWcgd2hlcmUgc25tcF9jb25maWcoKSBzdHJpbmdzIHdlcmUgZ2V0dGluZyBwYXJzZWQgdHdpY2UuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgd3JhcCBhZ2VudHggc3R1ZmYgaW4gYSBzdGlsbCB1bnVzZWQgdmFyaWFibGUgKGF0IHRoaXMgcG9pbnQpLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICByZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAKMjAwMi0wMy0yMSAwOToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggb2lkIHBhcnNpbmcuCiAgIAoyMDAyLTAzLTIxIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24vYWxhcm0uYywgUm1vbi9zdGF0aXN0aWNzLmMsCiAgIG1pYklJL2F0LmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIxIDA2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjAgMjA6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBhIGxpc3Qgb2YgcmVnaXN0ZXJlZCB0ZXh0IGVudW1zIHRvIEFTTl8qIHZhbHVlcy4KICAgICAoSW4gcHJvYmFibHkgdGhlIHdyb25nIHBsYWNlLikKICAgCjIwMDItMDMtMjAgMjA6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oOgoKICAgY3JlYXRlIGEgbmV3ICJvdmVycmlkZSIgZGlyZWN0aXZlIHRvIGZvcmNlIGFuIE9JRCB0byBhIHBhcnRpY3VsYXIgdmFsdWUKICAgLSBub3QgZmluaXNoZWQuICBJdCdzIGRlc2lnbmVkIHRvIGRvIHJlYWQtd3JpdGUgYXMgd2VsbCwgYnV0IGRvZXNuJ3QuCiAgIAoyMDAyLTAzLTIwIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjaGVjayBmb3IgaW5jbHVzaXZlCiAgIAoyMDAyLTAzLTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIGluY2x1ZGUgbmV3IGRlbGV0ZS9yZW1vdmUgYnJlYWtkb3duIEFQSXMKICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQVBJIGNoYW5nZS4KICAgCjIwMDItMDMtMjAgMTE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgc29tZSAidGhpcyB3aWxsIGNoYW5nZSIgZWFybHkgcm93IHN0YXR1cyBpbXBsZW1lbnRhdGlvbi4KICAgIC0gKHRoaXMgd2lsbCBtb3ZlIHRvIGEgc2VwYXJhdGUgaGFuZGxlcikKICAgCjIwMDItMDMtMjAgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgcG9pbnRlciBjaGVja2luZyBhZ2FpbnN0IGlsbGVnYWwgYWRkcyAoaWUsIHNob3VsZG4ndCBoYXBwZW4gYnV0IGNoZWNrIGFueXdheSkKICAgCjIwMDItMDMtMjAgMDg6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBPaywgSSBtYWtlIG1pc3Rha2VzLiAgSSBhZG1pdCBpdC4gIEl0IHJlYWxseSBzaG91bGQgaGF2ZSBiZWVuIGEgTlVMTC4KICAgCjIwMDItMDMtMjAgMDg6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgbWlzc2luZyBjb21tYQogICAKMjAwMi0wMy0yMCAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgc2VwYXJhdGUgb3V0IGRlbGV0ZS9yZW1vdmUgcm93IGZ1bmN0aW9uYWxpdHkKICAgCjIwMDItMDMtMjAgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIHN5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMjAgMDY6MjcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlLCBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG1hbnkgbWFueSAtVCBmbGFncyBmb3IgZGVmaW5pbmcgdHlwZXMuCiAgIAoyMDAyLTAzLTE5IDIxOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZm9yY2Ugc2V0dGluZyBvZiAnIXJvb3QnIGZsYWcgc28gdGhhdCBpdCB3aWxsIHJ1biBmb3Igbm9uLXByaXZpbGVnZWQKICAgdXNlcnMgb3Igd2hlbiBhbiBhZ2VudHggbWFzdGVyIHNpbXBseSBoYXMgbmV2ZXIgZXhpc3RlZC4KICAgCjIwMDItMDMtMTkgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gYWxsb3cgdGFibGVzIHRvIGJlIG1hcmtlZCB3aGV0aGVyIHRoZXkgc2hvdWxkIHN1cHBvcnQgY3JlYXRpb24gb3Igbm90LgogICAtIGJ1ZyBmaXhlcwogICAKMjAwMi0wMy0xOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGhlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBtaWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMKOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIHBlcmwvYWdlbnQvYWdlbnQueHMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIHJlbmFtZWQgYSBmZXcgYmFkbHkgbmFtZWQgZnVuY3Rpb25zIChuZXRzbm1wXyBhcHBlYXJlZCB0d2ljZSkuCiAgIC0gaW1wbGVtZW50ZWQgdGhlIGJlZ2lubmluZyBvZiBjcmVhdGlvbiBzdXBwb3J0IGZvciBkYXRhc2V0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFwcGFyZW50bHkgSSByYW4gYXV0b2NvbmYgZWFybGllciBhbmQgbWlzc2VkIGNoZWNraW5nIGluIHRoZSByZXN1bHRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBhZGQgLW5mY2EKICAgCjIwMDItMDMtMTcgMTY6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIFNldCBkZWZhdWx0IHBvcnQgdG8gMTYyLgogICAKMjAwMi0wMy0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgaW1wcm92ZWQgZm9ybWF0dGluZyBzdHJpbmdzIHNob3dpbmcgYm90aCB0cmFuc3BvcnQgdHlwZSBhbmQgcG9ydCBudW1iZXIuCiAgIAoyMDAyLTAzLTEzIDIzOjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBtaXNzaW5nICJpbnN0YWxsc3ViZGlycyIgdGFyZ2V0IG1pc3NpbmcgKHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFKQogICAKMjAwMi0wMy0xMyAyMzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgLS1jcmVhdGUtc25tcHYzLXVzZXIgdG8gYXV0b21hdGUgYWRkaW5nIGEgdjMgdXNlciB0byBib3RoIHRoZSB1c20KICAgYW5kIHZhY20gdGFibGVzIChieSBhZGRpbmcgbGluZXMgdG8gYm90aCB0aGUgcGVyc2lzdGVudCBhbmQgbm9ybWFsCiAgIGNvbmYgZmlsZXMpLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgYnVnIGZpeCBmb3IgcHJlLXByb2Nlc3NlZCByZXF1ZXN0cy4KICAgCjIwMDItMDMtMTMgMTY6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CgogICAtIC0tZW5hYmxlLXVjZC1zbm1wLWNvbXBhdGliaWxpdHkgYWN0dWFsbHkgaW5zdGFsbHMgaGVhZGVycyAoYXMgb3Bwb3NlZAogICAgIHRvIGFsd2F5cywgd2hpY2ggaXMgd2hhdCBpdCB1c2VkIHRvIGRvKS4KICAgLSBhZGQgYWdlbnRfbWlicyB0byBjb25maWd1cmUgZGVmYXVsdCBtaWIgbW9kdWxlcyBhbmQgZG9jdW1lbnQuCiAgIC0gY2hhbmdlIGhlbHAgZG9jdW1lbnRhdGlvbiBhIGJpdCBmb3IgdGhlIG1pYiBtb2R1bGVzLgogICAtIGFkZCBhIGZvcmNlZCBkZXBlbmRlbmN5IGZvciBtaWJfbW9kdWxlcy5sbwogICAKMjAwMi0wMy0xMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaDoKCiAgIG9wcHMuICBkdXBsaWNhdGVzIGV4aXN0aW5nIGFnZW50X21pYnMuaAogICAKMjAwMi0wMy0xMyAxNTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0CiAgIChWNC0yLXBhdGNoZXMuWzEsMSwxLDEsMSw5XSksIFVDRC1ERU1PLU1JQi50eHQsCiAgIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LAogICBVQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkcmVzcyBjaGFuZ2VzIGZvciB1Y2Qtc25tcCAtPiBuZXQtc25tcCBub3RlIHNheWluZyB0aGVzZSBtaWJzIGFyZSBubwogICBsb25nZXIgc3VwcG9ydGVkIGJ5IFVDRC4KICAgCjIwMDItMDMtMTMgMTU6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBBZGRlZCBhIG5zTW9kdWxlVGFibGUgdGFibGUgd2hpY2ggcmVwbGFjZXMgdGhlIG9sZGVyIG1yVGFibGUuCiAgIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgaXRlbXMgd2l0aGluIHRoZSBNSUIKICAgdHJlZSBqdXN0IGxpa2UgdGhlIG1yVGFibGUgd2FzLCBidXQgd2l0aCBzdXBwb3J0IGZvciBjb250ZXh0cyBhbmQgZm9yCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zIHdpdGggZGlmZmVyZW50IHByaW9yaXRpZXMuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdG9vbHMuYyAoVjQtMi1wYXRjaGVzLjQpLCB0b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgdW5uZWVkZWQgZGVidWcgc3RhdGVtZW50CiAgIAoyMDAyLTAzLTEzIDE0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgVXNlIGxvY2FsIHZhcmlhYmxlIG5hbWUgYnVmZmVycyBieSBkZWZhdWx0IHdoZW4gYnVpbGRpbmcgb2lkIHNlZ21lbnRzLgogICAKMjAwMi0wMy0xMyAxNDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLyogc3RvcCB3YXRlciBmcm9tIGZsb3dpbmcgdGhyb3VnaCBkYW0gKi8KICAgZmluZ2VyLT5pbnNlcnQoImhvbGUiKQogICAKMjAwMi0wMy0xMyAwNDowMyAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjE6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIGZpeCBoZWFkZXJzLgogICAKMjAwMi0wMy0xMiAyMToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgZG9uJ3QgZm9ybWF0IGNvbW1lbnRzIG9wdGlvbgogICAKMjAwMi0wMy0xMiAyMToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIHRhYmxlcyB3aXRoIGhvbGVzLgogICAKMjAwMi0wMy0xMiAyMTowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIG1vdmUgZGVmYXVsdCBtaWJzIHRvIHRoZWlyIG93biB2YXJpYWJsZS4KICAgCjIwMDItMDMtMTIgMjE6MDYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvYWdlbnQueHMsIGFnZW50L3R5cGVtYXA6CgogICAtIHVzZSBuZXQtc25tcC1jb25maWcgdG8gZmlndXJlIHRoaW5ncyBvdXQuCiAgIC0gdXBkYXRlIGhlYWRlcnMgYW5kIHR5cGVpbmZvIGZvciByZWNlbnQgY2hhbmdlcy4KICAgCjIwMDItMDMtMTIgMjA6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogRkFRMkhUTUwsIFJFQURNRS5taWIyYywgbWliMmMsIHRrbWliCiwgbWliMmMuYXJyYXktYXV0by5jb25mLCBtaWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1Y2Qtc25tcCAtPiBuZXQtc25tcCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgcmVtb3ZlIG9ic29sZXRlIG1pYjJjLmNvbmYgZmlsZQogICAKMjAwMi0wMy0xMiAxODoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb24ndCBmb3JnZXQgdG8gc2V0IHJvdy0+bmV4dC0+cHJldiB0byBzb21ldGhpbmcgd2hlbiByZW1vdmluZyByb3cuCiAgIAoyMDAyLTAzLTEyIDE3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggYWdlbnR4IGluY2x1c2l2ZSBzZWFyY2hlcyB0byBpZ25vcmUgZ2V0IGVycm9ycy4KICAgCjIwMDItMDMtMTIgMTc6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBzb21lIG1pbmltYWwgZHVtcCBkZWJ1Z2dpbmcuCiAgIAoyMDAyLTAzLTEyIDA4OjM0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgY2FzdCAtMSB0byB1X2NoYXIgc28gdGVzdCBkb2Vzbid0IGFsd2F5cyBmYWlsIChmaXggY29tcGlsZXIgd2FybmluZykKICAgCjIwMDItMDMtMTEgMTc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHRyZWF0IChpbGxlZ2FsKSBlcnJvcnMgZnJvbSBzdWJhZ2VudHMgc3BlY2lhbGx5IGZvciBnZXRuZXh0IGNhc2VzLgogICAKMjAwMi0wMy0xMSAxMzo0MSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIG91ciBzbm1wIGxpYnJhcmllcyB0byBvdXRwdXQKICAgCjIwMDItMDMtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiB0YWJsZV9kYXRhLmgsIHRhYmxlX2RhdGFzZXQuaAo6CgogICBkZWxldGUvcmVtb3ZlIHN1cHBvcnQgaGVhZGVyIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTExIDA5OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGFsbG93IGNvbXBpbGF0aW9uIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1UQ1AKICAgCjIwMDItMDMtMTEgMDg6MjEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBmaXhlcyBmb3IgLS1kaXNhYmxlLWRlYnVnZ2luZwogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNSksIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA2OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgY29ycmVjdCBzZXNzaW9uIElEIHdoZW4gdGFsa2luZyB0byBzdWJhZ2VudHMuICBUaGFua3MgdG8gQ3JhaWcKICAgICAgIFNldGVyYSBmb3IgdGhpcyBmaXguCiAgIAoyMDAyLTAzLTExIDA1OjIwICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIGZyZWVzLCBldmVuIHRob3VnaCBpdCdzIHN1cHBvc2VkIHRvIGJlIG9rIGFjY29yZGluZyB0byBhbnNpLgogICAKMjAwMi0wMy0xMSAwMDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBiZWdpbm5pbmcgc3VwcG9ydCBmb3IgbWF4aW11bSBsb2dnZWQgY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTExIDAwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC0gcmVtb3ZlL2RlbGV0ZSByb3cgc3VwcG9ydC4KICAgLSBudWxsIGNoZWNrCiAgIC0gZG9jIGNvbW1lbnRzLgogICAKMjAwMi0wMy0xMSAwMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAKMjAwMi0wMy0xMSAwMDowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY2FsbCBuZXh0IGhhbmRsZXJzIChvcHBzKS4KICAgCjIwMDItMDMtMTAgMTQ6MTEgIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgIEZpeCBvbmUgc3ByaW50X3ZhcmlhYmxlID0+IHNucHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDMtMTAgMTQ6MDYgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBBZGQgc25wcmludF8qIGZ1bmN0aW9ucyB0aGF0IHdlcmUgc3ByaW50XyogaW4gdWNkLXNubXAgNAogICAKMjAwMi0wMy0xMCAxNDowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMKLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXggY29tcGlsYXRpb24gd2hlbiBJUFgtdHJhbnNwb3J0IGVuYWJsZWQKICAgCjIwMDItMDMtMTAgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgRml4IGNvbXBpbGF0aW9uIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMy0wOCAyMjoyNiAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUyICkKICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1pc2MgY2hhbmdlcy4KICAgCjIwMDItMDMtMDggMTg6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbmV3IGFwaSBjaGFuZ2VzCiAgIAoyMDAyLTAzLTA4IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZCB0byBkZWFsIHdpdGggU2VuZG1haWwgOC4xMiBxdWV1ZWdyb3Vwcy4KICAgCjIwMDItMDMtMDggMTY6NTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIGNzZXRlIHRvIGZpeCB3aW4zMiBidWlsZHMKICAgCjIwMDItMDMtMDggMTY6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIENhbGxiYWNrIHRyYW5zcG9ydCB0byBjeWd3aW4KICAgCjIwMDItMDMtMDggMTY6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHJtb24gc3VwcG9ydC4KICAgCjIwMDItMDMtMDggMTY6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gcmVtb3ZlIG9sZCBhbiB1bnVzZWQgcG9pbnRlcgogICAKMjAwMi0wMy0wOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLAogICBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmYsIHBlcmwvU05NUC9TTk1QLnhzLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgc3RydWN0IHNubXBfc2Vzc2lvbiB0eXBlZGVmZWQgdG8gbmV0c25tcF9zZXNzaW9uLiAgJiBwZHUuICYgLi4uCiAgIAoyMDAyLTAzLTA4IDE0OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGdldF9zeW1ib2wgLT4gZ2V0X3RyZWUKICAgCjIwMDItMDMtMDggMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvOiBTTk1QL1NOTVAueHMsIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cwosIGFnZW50L3Rlc3QucGw6CgogICBtaXNzZWQgdXBkYXRlcwogICAKMjAwMi0wMy0wOCAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jCiwgb2lkX2FycmF5LmMsIG9pZF9zdGFzaC5jLCByZWFkX2NvbmZpZy5jCiwgc25tcEFBTDVQVkNEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXB2My5jOgoKICAgbWlzc2luZyB1cGRhdGVkIGNvZGUKICAgCjIwMDItMDMtMDggMDI6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgICAtIHNvbWUgc25tcCAtPiBuZXRzbm1wIGZpeGVzCiAgIAoyMDAyLTAzLTA3IDEzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyA0KQogICAKMjAwMi0wMy0wNyAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDMpCiAgIAoyMDAyLTAzLTA3IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMikKICAgCjIwMDItMDMtMDcgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaAosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAxKQogICAKMjAwMi0wMy0wNyAwNjoyMSAgamJwbgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6NDcgIGpicG4KCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICAgIC0gbWlub3IgdXBkYXRlcwogICAKMjAwMi0wMy0wNyAwNTozOSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6MDAgIGpicG4KCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgICAtIG1ha2UgcHJvdG90eXBlcyBtYXRjaCBoZWFkZXIKICAgCiAgICAgLSBtYWtlIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAzOjA3ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGZpeCB1cCBzbnByaW50XyBkZWNsYXJhdGlvbnMsIGZpeCBzbWFsbCB0eXBvLiAgUGF0Y2ggYnkgR3V5CiAgIEhhcnJpcy4KICAgCjIwMDItMDMtMDcgMDI6NDQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2Ygc3ByaW50X3JlYWxsb2NfYnlfdHlwZSwgYXMgbm90ZWQKICAgICAgIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCBwZXJsL1NOTVAvdC8uY3ZzaWdub3JlCjoKCiAgIG5ldyBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDMtMDYgMTc6MTMgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgZG9jcwogICAKMjAwMi0wMy0wNiAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGV4YW1wbGVzIG1vZHVsZSB3cmFwcGVyIHRvIGluY2x1ZGUgYWxsIChuZXcpIGV4YW1wbGVzLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnQgYmV0dGVyLgogICAKMjAwMi0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgc2VhcmNoIGV4YW1wbGVzIGZvciBkb2NzLgogICAKMjAwMi0wMy0wNiAxNjoyOSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgZXhhbXBsZSBNSUIgdGVtcGxhdGUgKGFuZCBvbmUgbm9kZSkKICAgCjIwMDItMDMtMDYgMTY6MjggIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtTUlCLnR4dDoKCiAgIGluc3RhbnRpYXRlIGV4YW1wbGVzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIE5TIG1pYnMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogc2NhbGFyX2ludC5jLCBzY2FsYXJfaW50Lmg6CgogICBFeGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgU05NUCBlbmFibGVkIGludCByZWdpc3RlcmVkIGF0IGEgc2NhbGFyLgogICAKMjAwMi0wMy0wNiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgbWFueSBjaGFuZ2VzIGZvciBpbnN0YW5jZXMuICBTcGVjaWZpY2ljYWxseToKICAgICAtIGFsbG93IGZvciBzdWJoYW5kbGVycy4KICAgICAtIHByb3ZpZGUgYW4gaW50IHdyYXBwZXIuCiAgICAgLSByZXVzZSBtb3JlIGNvZGUuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoyMDAyLTAzLTA2IDE0OjA1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIGEgYmxhbmsgbGluZS4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIEZpeCBtYXN0ZXIgYWdlbnQgZ2V0YnVsayBzdXBwb3J0LiAgdGhpcyBoYXMgdG8gYmUgaW5kZXBlbmRlbnRseSBvZiB0aGUKICAgbm9ybWFsIGJ1bGstPm5leHQgZml4ZXMgZHVlIHRvIGRlbGVnYXRpb24uICBMb25nIHN0b3J5LgogICAKMjAwMi0wMy0wNiAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIG1vdmUgYnVsa190b19uZXh0IGZpeGluZyBmdW5jdGlvbmFsaXR5IGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UuCiAgIAoyMDAyLTAzLTA2IDEwOjI2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBzcHJpbmtsZSBtYWdpYyBjb25zdCBkdXN0CiAgIAoyMDAyLTAzLTA2IDEwOjE4ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGRvY3VtZW50IGNoYW5nZWQgQVBJLCBpbmNvcnBvcmF0aW5nIHBhdGNoZXMgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMDk6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEyYWdlbnR4c2V0ZmFpbCwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIGZpeCB0ZXN0cy4KICAgCjIwMDItMDMtMDYgMDk6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICByZS1lbmFibGUgc2V0dGluZyBvcHRpbmQgdG8gMSB0aWxsIERhdmUgdGVsbHMgbWUgd2hlcmUgdGhpcyBicmVha3MuCiAgIAoyMDAyLTAzLTA2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1MXNubXB2MmN0cmFwLCBUMDUyc25tcHYyY2luZm9ybSwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICBmaXhlcyBmb3IgbmV3IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjIwMDItMDMtMDYgMDk6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIG1vcmUgaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgKG1vc3RseSkKICAgCjIwMDItMDMtMDYgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIGF1dG9jb25mCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcHYzLmM6CgogICBGaXggYSBjb25mdXNpb24gYmV0d2VlbiBkZWZBdXRoVHlwZSBhbmQgZGVmUHJpdlR5cGUuCiAgIAoyMDAyLTAzLTA2IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgcHJvdG9jb2wuYzoKCiAgIHByb3BlciBmaXggZm9yIG5vdCByZXF1aXJpbmcgcmVzcG9uc2VzIHRvIENMRUFOVVAgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTA2IDA2OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB6ZXJvIHRoZSBuYW1lIG9mIGVsZW1lbnRzIG9mIHRoZSBidWxrIGNhY2hlCiAgIAoyMDAyLTAzLTA2IDA2OjA2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY2FsbG9jKCkgbm90IG1hbGxvYygpIGluIGEgZmV3IHBsYWNlcyB0byBpbml0aWFsaXNlIHNvbWUgYnVmZmVycwogICAgICAgdG8gemVyb2VzLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDA1OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCBzZW5kIHJlcXVlc3RzIGZvciBPSURzIHByZWNlZWRpbmcgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uCiAgICAgICAodGhpcyBjYW4gbGVhZCB0byBsb29wcyBpZiBlLmcuIGEgc3ViYWdlbnQgaGFzIHJlZ2lzdGVyZWQgdHdvCiAgICAgICBhZGphY2VudCByb3dzKS4KICAgCjIwMDItMDMtMDYgMDU6MDcgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgdGVzdGNsZWFuCiAgIAoyMDAyLTAzLTA2IDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gdXNlIG1vcmUgZWZmaWNpZW50IGdldF90cmVlKCkgaW4gc3ByaW50X3JlYWxsb2NfdmFsdWUoKQogICAKMjAwMi0wMy0wNSAxODoyOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTVzbm1wdjJjZ2V0bmV4dCwgVDAwMXNubXB2MWdldCwKICAgVDAwMnNubXB2MWdldG5leHQsIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldAosIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgVDEwMGFnZW50aHVwOgoKICAgZml4ZXMgZm9yIG5ldyBmb3JjZWQgLWMgZmxhZ3MKICAgCjIwMDItMDMtMDUgMTg6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBhcHByb3ByaWF0ZSBjb21tZW50LgogICAKMjAwMi0wMy0wNSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggZHVwbGljYXRlIGZyZWUgYnkgY2xvbmluZyB0aGUgcGR1IGJlZm9yZSBzZW5kaW5nIGl0IG91dCBhZ2FpbgogICAodGhvdWdodCBJIGhhZCBkb25lIHRoaXMgb25jZSBpbiB0aGUgcGFzdCBhbHJlYWR5LCBidXQgSSBnb3QgMS8yIGZ1bmN0aW9ucykuCiAgIAoyMDAyLTAzLTA1IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRlbXBvcmFyeSBmaXggdG8gZml4IGZvciBhZ2VudHggU0VUIHJlcXVlc3RzLiAgVGhpcyByZXZlcnNlcyBhCiAgIHByZXZpb3VzIEpvaG4gY2hhbmdlIHdoZXJlIHJlc3BvbnNlcyB0byBjbGVhbnVwcyBhcmUgbm93IGV4cGVjdGVkCiAgIGFnYWluLiAgVGhpcyB0b29rIG1lIGEgZ29vZCAyIGRheXMgdG8gdHJhY2sgZG93biwgc2lnaC4uLgogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBhZGQgKGFzY2lpKSBhZ2VudHggc3RhdGUgZGlhZ3JhbQogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBtdWx0aXBsZSBmcmVlIGJ1ZyBmaXhlcy4KICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDMtMDUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMsIG1hc3Rlcl9yZXF1ZXN0LmgKOgoKICAgcmVtb3ZlZCB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDMtMDUgMTA6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gb29wcywgZml4IGJhZCBjdXQgYW5kIHBhc3RlCiAgIAoyMDAyLTAzLTA1IDEwOjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlaW50cm9kdWNlIHNjb3BlIHByb2Nlc3NpbmcgKHNlZSBSRkMgMjc0MSwgcC4gNjYsIHNlY3Rpb24gNy4yLjMuMgogICAgICAgcGFyYWdyYXBoIDIpOiAiSWYgdGhlIHN1YmFnZW50IGNhbid0IGxvY2F0ZSBhbiBhcHByb3ByaWF0ZQogICAgICAgdmFyaWFibGUsIF9fdi5uYW1lX2lzX3NldF90b190aGVfc3RhcnRpbmdfT0lEX18gW3RoZSBpbXBvcnRhbnQKICAgICAgIGJpdF0gYW5kIHRoZSBWYXJCaW5kIGlzIHNldCB0byBgZW5kT2ZNaWJWaWV3JyIKICAgCjIwMDItMDMtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDg6NDggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBzbm1wX2FnZW50LmMsCiAgIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIG5ldyBERUJVR01TR1ZBUiBtYWNybyBpbiBhIGZldyBwbGFjZXMKICAgCjIwMDItMDMtMDUgMDg6NDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHTVNHVkFSIG1hY3JvIHRvIHByaW50IG91dCBhIHZhcmlhYmxlCiAgIAoyMDAyLTAzLTA1IDA4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgcHJpbnRfdmFsdWUgZnVuY3Rpb24gdXBkYXRlcy4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogdWNkRGVtb1B1YmxpYy5jIChWNC0yLXBhdGNoZXMuMiksCiAgIHVjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDg6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGdycnIsIGJvdGNoZWQgbGFzdCBmaXgKICAgCjIwMDItMDMtMDUgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IGNhbGxiYWNrIHNlc3Npb24gdmVyc2lvbiBudW1iZXIgdG8gdGhlIGdlbmVyaWMgLTEKICAgdmVyc2lvbiBhbGxvd2luZyB0aGUgcGR1IHRvIHBhc3NlZCB3aXRob3V0IHZlcnNpb24gY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtb3ZlIE5VTEwgY2hlY2sgdG8gKmJlZm9yZSogeW91IGFjdHVhbGx5IHVzZSB0aGUgcG9pbnRlci4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIG1hcmsgSU5DTFVTSVZFIHJlcXVlc3RzIGFzIHN1Y2gKICAgCjIwMDItMDMtMDUgMDc6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSB1c2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgd2hpbGUgbG9vcCwganVzdCBhIHByZWNhdXRpb24gZm9yIGZ1dHVyZSBwcm9ibGVtcy4KICAgCjIwMDItMDMtMDUgMDc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfY2hlY2tfcGFyc2UpIGFsbG93IGludGVybmFsIHNldCB0cmFuc2FjdGlvbnMgdG8gYmUgcGFzc2VkIHRvCiAgICAgdGhlIGFnZW50LCBzaW5jZSBhZ2VudHggc2VuZHMgdGhlbS4KICAgCjIwMDItMDMtMDUgMDc6MjEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBkb24ndCBhZGQgdGhlICJtb2R1bGUgSUQiIHRvIE9JRHMgaWYgaXQgaXMgbnVtZXJpYyBiZWNhdXNlIHdlCiAgICAgICBjb3VsZG4ndCBsb29rIGl0IHVwIHByb3Blcmx5ICh0byBhdm9pZCBob3JyaWJsZSBsb29raW5nIG91dHB1dAogICAgICAgbGlrZSB0aGlzOiAiT0lEOiAjLTE6Omlzby4yLjMuNC41LiIpCiAgIAoyMDAyLTAzLTA1IDA3OjA1ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIDJjIGluIGVycm9yIG1lc3NhZ2UgZnJvbSB2ZXJzaW9uIHByb21wdAogICAKMjAwMi0wMy0wNSAwNzowMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB0ZXN0cwogICAKMjAwMi0wMy0wNSAwNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIHJlLWVtcGhhc2lzIGEgc3VnZ2VzdGlvbiB0byBzd2l0Y2ggdG8gYSBzZWN1cmUgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wuCiAgIC0gZGVsZXRlIG5vdGlvbiB0aGF0IHYzIHdpdGhvdXQgYXV0aC9wcml2IHByb3ZpZGVzIGJldHRlciBzZWN1cml0eSAoaXQgZG9lc24ndCkuCiAgIC0gRG9uJ3QgYWNjZXB0IHYyYyBhcyBhbiBhY2NlcHRlZCB2YWx1ZSwgYXMgaXQncyB1c2VkIGFzIGFuIGludC4KICAgICAtIGJ1dCBkbyBjaGFuZ2UgaGVscCBtZXNzYWdlcywgZXRjLCB0byByZWZsZWN0IHRoYXQgMiA9IHYyYy4KICAgCjIwMDItMDMtMDUgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDYXN0IGEgY2FsbG9jIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA1IDA2OjIwICBqYnBuCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IHR5cG8gaW4gT0JKUyBkZWZpbml0aW9uCiAgIAoyMDAyLTAzLTA1IDA2OjE4ICBqYnBuCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgICAtIGNsZWFuIHRhcmdldCBkZXBlbmRzIG9uICQoT0JKUykgYW5kICQoTE9CSlMpLCBzbyBkZWZpbmUgdGhlbQogICAKMjAwMi0wMy0wNSAwMzo1MiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGRlZmF1bHQgdmVyc2lvbiB0ZXN0cyAoc3BsaXR0aW5nIHRoZW0gb3ZlciBzZXZlcmFsIGxpbmVzCiAgICAgICBjb25mdXNlcyBzaCBvbiBTb2xhcmlzLCBhdCBsZWFzdCkuCiAgIAogICAgIC0gZGlzYW1iaWd1YXRlIHNvbWUgaW5zdGFuY2VzIG9mICJ2ZXJzaW9uIiBpbiBkZWZhdWx0IHZlcnNpb24KICAgICAgIHByb21wdCB0ZXh0LgogICAKMjAwMi0wMy0wNSAwMjozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb3JyZWN0bHkgZGV0ZWN0IHdoZW4gbm8gaW5pdGlhbCBkZWZhdWx0IHZlcnNpb24gaGFzIGJlZW4gc2V0LgogICBBY2NlcHQgJzJjJyBhcyB3ZWxsIGFzICcyJyBmb3IgYSBkZWZhdWx0IHZlcnNpb24gY2hvaWNlLgogICBGaXggdGhlIHRpdGxlIGZvciB0aGlzIHByb21wdCwgYW5kIHJld29yZCB0aGUgZGVzY3JpcHRpb24gdG8KICAgbWFrZSBpdCBhICpzbGlnaHRseSogbGVzcyBsZWFkaW5nIHF1ZXN0aW9uLCBtJ2x1ZC4KICAgCiAgIFFuOiBTaG91bGQgd2Ugc3VwcG9ydCBhICJubyBkZWZhdWx0IHZlcnNpb24iIG9wdGlvbiA/CiAgICAgKGhlbmNlIGFsbG93IHRoZSBhZG1pbiB0byBmb3JjZSB0aGUgZGVjaXNpb24gZG93biB0byB0aGUgdXNlcikKICAgCjIwMDItMDMtMDQgMTg6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZQogICAKMjAwMi0wMy0wNCAxODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgKFRvIEpvaG4pOiBkbyBub3QgZnJlZSB0aGUgbXl2b2lkIHBvaW50ZXIgaW4gYSBoYW5kbGVyLiAgWW91IGNhbiBub3QKICAgYXNzdW1lIHRoYXQgaXQncyBhIGZyZWVhYmxlIHJlc291cmNlLiAgRm9yIGluc3RhbmNlLCB0aGUgYWdlbnR4IG1hc3RlcgogICBhZ2VudCB3YXMgdXNpbmcgaXQgdG8gc3RvcmUgdGhlIG1hc3RlciBzZXNzaW9uIHBvaW50ZXIgaW4gaXQgKHdoaWNoCiAgIHdvdWxkIGV4aXN0IGluIG11bHRpcGxlIHJlZ2lzdGVyZWQgbm9kZXMpLgogICAKMjAwMi0wMy0wNCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhIGNvbmZpZ3VyZSBnZW5lcmF0ZWQgd3JhcHBlciBoZWFkZXIgZm9yIHYzIHNlY3VyaXR5IG1vZHVsZXMuCiAgIAoyMDAyLTAzLTA0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgZG1hbGxvYy5oIHRvIHRoZSBwcm9wZXIgcGxhY2UuCiAgIAoyMDAyLTAzLTA0IDExOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBzdHJpbmcgY2xlYW4gdXBzLgogICAKMjAwMi0wMy0wNCAxMTo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBJbXBsZW1lbnQgYSBkZWZhdWx0IHZlcnNpb24gcHJvbXB0IGZvciBjb25maWd1cmUuCiAgICAtIChXZXMgZHVja3MgYXMgdGhpcyBpcyBjdXJyZW50bHkgc2V0IHRvICczJyB3aGljaCBoZSBtYXkgaGF2ZSB0bwogICAgICAgY2hhbmdlIGFzIGl0IGhhc24ndCBleGFjdGx5IGJlZW4gYWdyZWVkIHVwb24gYXMgdGhlIHByb3BlciBkZWZhdWx0IHlldCkuCiAgICAtIC0td2l0aC1kZWZhdWx0LXNubXAtdmVyc2lvbiBhbHNvIGNyZWF0ZWQuCiAgICAtIGNoYW5nZWQgaGFuZGxpbmcgb2YgZGVmYXVsdCBzdG9yZSAvIHNubXAuY29uZiB1c2FnZSBidXQgaW1wYWN0CiAgICAgIHNob3VsZCBiZSBsb3csIGhvcGVmdWxseS4KICAgCjIwMDItMDMtMDQgMTE6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGEgZmV3IGVycm9yIHN0cmluZ3Mgc2xpZ2h0bHkgaW1wcm92ZWQuICBXZSByZWFsbHkgbmVlZCB0byBjaGFuZ2UgdGhlCiAgIHdheSB0aGVzZSBhcmUgaGFuZGxlZCB0byBnZXQgYmV0dGVyIGltcHJvdmVtZW50LgogICAKMjAwMi0wMy0wNCAwNzo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIHNlcGFyYXRlIG91dCB0aGUgY2xlYW5pbmcgb2YgL3RtcCBmcm9tIHRoZSBtYWluIGNsZWFuaW5nIHRvIHByb3ZpZGUgaXQKICAgYXMgYSBzcGVjaWFsIHRhcmdldC4KICAgCjIwMDItMDMtMDQgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLVdhbGwgZml4ZXMuCiAgIAoyMDAyLTAzLTA0IDA1OjMyICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEuZGVmLCBzbm1wYnVsa3dhbGsuMS5kZWYsCiAgIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEuZGVmLCBzbm1wc3RhdHVzLjEuZGVmCiwgc25tcHRlc3QuMS5kZWYsIHNubXB0cmFwLjEuZGVmOgoKICAgICAtIHJlbW92ZSBmdXJ0aGVyIGluc3RhbmNlcyBvZiBwb3NpdGlvbmFsIGNvbW11bml0eSBzdHJpbmcgcGFyYW1ldGVyLAogICAgICAgYWZ0ZXIgUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDU6MjUgIGpicG4KCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcHdhbGsuMS5kZWY6CgogICAgIC0gcGF0Y2hlcyBmcm9tIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDAxOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jIChWNC0yLXBhdGNoZXMuNiksIG1lbW9yeS5jCjoKCiAgIENvcnJlY3QgZGVidWcgb3V0cHV0IG1lc3NhZ2UgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDMtMDEgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgbWFraW5nIHRoZSAoc2FtZSkgZGVidWdnaW5nIHN0YXRlbWVudCBtb3JlIHVzZWZ1bC4KICAgCjIwMDItMDMtMDEgMjI6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSB0byBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCiAgIAoyMDAyLTAzLTAxIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWliLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYSBmZXcgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wMSAxMjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IGluc3RhbGwgaGVhZGVycyBoZXJlLgogICAKMjAwMi0wMy0wMSAwNTo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICAgIC0gYWRkIHNucHJpbnRfdmFsdWUsIHNucHJpbnRfdmFyaWFibGUsIHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDItMjggMDY6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBBZGQgYmFjayB0aGUgJ3NubXBDYWxsYmFjaycgZG9tYWluIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI3IDEwOjA0ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jCiwgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMsIG1ha2UgdGhlbSBtb3JlIGNvbnNpc3RlbnQgYW5kIGJyaW5nIGluIGxpbmUKICAgICAgIHdpdGggbWFudWFsIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwgc25tcHRyYXAuMS5kZWYKLCBzbm1wdXNtLjEuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgY2hhbmdlcwogICAKMjAwMi0wMi0yNyAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHRhcnQgdXAgdXNhZ2UgbWVzc2FnZXMgdG8gYmUgbW9yZSBjb25zaXN0ZW50IGFuZCBpbiBsaW5lIHdpdGggbWFudWFsCiAgICAgICBwYWdlcwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI3IDA2OjUwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gW0FERFJFU1NFU10gLT4gW0xJU1RFTklORyBBRERSRVNTRVNdIGluIHVzYWdlIG1lc3NhZ2UsIHRvIG1hdGNoCiAgICAgICBtYW51YWwgcGFnZS4KICAgCjIwMDItMDItMjcgMDY6MDkgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZHJvcCBvcHRpb25hbCBwb3NpdGlvbmFsIGNvbW11bml0eSBwYXJhbWV0ZXIgZnJvbSB0cmFwc2VzcwogICAgICAgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTAyLTI3IDA1OjUxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBkcm9wIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIG5vIHNucHJpbnRfYmxhaCB5ZXQKICAgCjIwMDItMDItMjcgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmM6CgogICBVc2UgdGhlIG1vcmUgaW5mb3JtYXRpdmUgJ291dHB1dF9hcGkuaCcgaGVhZGVyIGZpbGUgbmFtZQogICAgIChJIG11c3QgaGF2ZSBtaXNzZWQgdGhlc2UgZWFybGllcikKICAgCjIwMDItMDItMjcgMDU6MzUgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICAgIC0gZHJvcCBjb21tdW5pdHkgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCiAgICAgLSB5ZXMsIGZvciBvbmNlIHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgKmJlZm9yZSogdGhlCiAgIGNvZGUhCiAgIAoyMDAyLTAyLTI3IDA1OjEyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQIGZ1bmN0aW9uCiAgIAoyMDAyLTAyLTI3IDA1OjExICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfYXBpLmgsIHNubXBfZGVidWcuaCwKICAgc3lzdGVtLmg6CgogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MTAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmg6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUEwgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDQ6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHdhbGsuYwosIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDAyOjI2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI3IDAyOjA4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlLCBubywgSSBNRUFOIGl0IHRoaXMgdGltZQogICAKMjAwMi0wMi0yNyAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF92YXJpYWJsZQogICAKMjAwMi0wMi0yNiAxMjo0NiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNsZWFyIG5ldyBtZW1vcnkgYWZ0ZXIgcmVhbGxvYygpIHNpbmNlIHJlYWxsb2MgZG9lc24ndCBkbyBpdC4KICAgCjIwMDItMDItMjYgMTI6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIFVOU0lHTkVEMzIKICAgCjIwMDItMDItMjYgMDg6NTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgbWliSUkvYXQuYywgbWliSUkvaWNtcC5jLCBtaWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYklJL2lwLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gY2hhbmdlIGNhY2hlIGltcGxlbWVudGF0aW9uIGFmdGVyIHNvbWUgaW50ZXJlc3RpbmcgcHJvZmlsaW5nIChzZWUKICAgICAgIGxlbmd0aHkgbmV3IGNvbW1lbnQgaW4ga2VybmVsX3N1bm9zNS5jKQogICAKMjAwMi0wMi0yNiAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgc25tcGxpYi9zbm1wLXRjLmMsCiAgIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgUmVtb3ZlIGFzc29ydGVkIGV4dHJhbmVvdXMgXk0ncwogICAKMjAwMi0wMi0yNiAwNzoxNCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQSBxdWljayBndWlkZSB0byBpbnN0YWxsaW5nIHRoZSBDb3JlIFBsYXRmb3JtIFNESywgbmVlZGVkIGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjYgMDc6MDMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBBc3NvcnRlZCBtaW5vciB0d2Vha3MgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgIE1vc3RseSBiZWNhdXNlIFZDKysgaXMgZnVzc3kgYWJvdXQgc29ydC1vZi1jb21wYXRpYmxlIGRhdGEgdHlwZXMKICAgICAoZS5nLiBzaWduZWQgdnMgdW5zaWduZWQgaW50ZWdlcnMpLgogICAKMjAwMi0wMi0yNiAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyLmRzdywgd2luMzIub3B0CiwgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIHNubXBkL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBSZW5hbWUgJ2xpYnVjZG1pYnMnIHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiBwcm9qZWN0IG5hbWUsCiAgIGFuZCBhc3NvcnRlZCB0d2Vha3Mgc28gdGhhdCB0aGUgZnVsbCBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICAgIChOLkI6IFRoZSBhZ2VudCByZXF1aXJlcyAiTWljcm9zb2Z0IFBsYXRmb3JtIENvcmUgU0RLIiBpbiBvcmRlcgogICAgICAgdG8gYnVpbGQgdGhlICduZXRzbm1wbWlicycgcHJvamVjdCkKICAgCjIwMDItMDItMjYgMDY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICByZW1vdmUgZHVwbGljYXRlIHZhcmlhYmxlIGluIGEgd2FybmluZwogICAKMjAwMi0wMi0yNiAwNjo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBpbmNsdWRlIG5ldC1zbm1wLWNvbmZpZy5oCiAgIAoyMDAyLTAyLTI1IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbW9yZSBpbnN0YWxsIGNoYW5nZXMKICAgCjIwMDItMDItMjUgMjE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGluc3RhbGxpbmcgREJEOjpGaWxlLgogICAKMjAwMi0wMi0yNSAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG9uZSB0b28gbWFueSAnMCdzIGluIGEgdXJsLgogICAKMjAwMi0wMi0yNSAyMDozMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHJld29yZC4KICAgCjIwMDItMDItMjUgMjA6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICBtb3ZlIHdhcm5pbmcgb3V0c2lkZSBzZWNvbmRhcnkgd2FybmluZyBhdWdtZW50YXRpb24gbG9vcC4KICAgCjIwMDItMDItMjUgMjA6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgU1FMOjpTdGF0ZW1lbnQgbW9kdWxlLgogICAKMjAwMi0wMi0yNSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBmaW5kX3RhYmxlX2FycmF5X2hhbmRsZXIoKTsgcmVtb3ZlIGRlYnVnZ2luZyBjb2RlL2NvbW1lbnRzOwogICBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgaGFuZGxlciBiZWZvcmUgdXNpbmcgdGhlIHZvaWQgcG9pbnRlcjsKICAgcmVtb3ZlIF5NIGNoYXJhY3RlcnMKICAgCjIwMDItMDItMjUgMTE6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGF0YV9saXN0LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaAo6CgogICAyIG5ldyBmdW5jdGlvbnMuCiAgIAoyMDAyLTAyLTI1IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHNldCBzZWN1cml0eSBtb2RlbAogICAKMjAwMi0wMi0yNSAwODoxNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgd2luMzIvd2luMzIuZHN3OgoKICAgQ29udGludWluZyBpbXByb3ZlbWVudHMgdG8gY29tcGlsYXRpb24gb2YgdGhlIGxhdGVzdCBjb2RlIHVuZGVyIFZpc3VhbCBDKysuCiAgIFRoZSAnbGliaGVscGVycycgcHJvamVjdCBub3cgY29tcGlsZXMsIGFuZCB0aGlzIGFsc28gYWRkcmVzc2VzIGEgbnVtYmVyCiAgIG9mIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGxpYmFnZW50IGFuZCBsaWJ1Y2RtaWJzIHByb2plY3RzLgogICAgIEJ1dCB0aGVzZSB0d28gc3RpbGwgZmFpbCBvbiAnT0lEX0xFTkdUSCcgYW5kICdpcGhscGFwaS5oJwogICAKMjAwMi0wMi0yNSAwNzowMCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFByb3ZpZGUgYSBwbGF1c2libGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI1IDA2OjA0ICBqYnBuCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgICAgLSByZXNvbHZlIGNvbmZsaWN0aW5nIFNZTlRBWGVzIGZvciBuc1RyYW5zYWN0aW9uTW9kZQogICAKICAgICAtIGFkZCByYW5nZSBmb3IgaW5kZXggbnNUcmFuc2FjdGlvbklECiAgIAoyMDAyLTAyLTI1IDAzOjIzICBkdHMxMgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBFbnN1cmUgdGhlIG1haW4gbGlicmFyeSBjb21waWxlcyBhbmQgd29ya3MgdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjUgMDM6MTkgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmgsIHNubXB0cmFwZC5jOgoKICAgRW5zdXJlIHNubXB0cmFwZCBjb21waWxlcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzowOSAgZHRzMTIKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfc3Rhc2guYywgc25tcC10Yy5jLAogICB1Y2RfY29tcGF0LmM6CgogICBNaW5vciB0d2Vha3MgdG8ga2VlcCBWaXN1YWwgQysrIGhhcHB5LgogICAKMjAwMi0wMi0yNSAwMjo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICBXcmFwIHdpdGggImV4dGVybiBDIgogICAKMjAwMi0wMi0yNSAwMjo1NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaDoKCiAgIFBhbmRlciB0byBDUFAncyBpbmNyZWRpYmx5IGZ1c3N5IG5hdHVyZSwgYW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGUgbmFtZS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBAZm9yZWFjaCAkdmFyMSAkdmFyMiBlbnVtc0AKICAgCjIwMDItMDItMjIgMTA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHJlbW92ZSB0cmFpbGluZyA7J3MgZnJvbSBzcWwgc3RhdGVtZW50cy4KICAgCjIwMDItMDItMjIgMTA6NTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBkZWZpbmUgbmV0c25tcF9zdHJkdXBfYW5kX251bGwKICAgCjIwMDItMDItMjIgMTA6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgdXRpbGl0aWVzLgogICAKMjAwMi0wMi0yMiAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBkb24ndCBsb29wIGFnYWluIGZvciBzZWNvbmRhcnkgU0VUIG1vZGVzIGFuZCBjYWNoZSBpbmZvcm1hdGlvbiBpbnN0ZWFkLgogICAtIHZhcmlvdXMgZml4ZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGwgZGlyZWN0b3JpZXMgZm9yIGhlYWRlcnMKICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNvbXBpbGUtc3ViYWdlbnQgZm9yIGF1dG9tYXR0ZWQgc3ViYWdlbnQgY29tcGlsYXRpb24gZnJvbQogICBtaWJtb2R1bGUgLmMgZmlsZXMgOy0pCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jIChWNC0yLXBhdGNoZXMuWzEsMV0pLAogICBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWM6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDA4OjQwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIFR3ZWFrcyByZXF1aXJlZCB0byBnZXQgdGhlIGxpYnJhcnkgY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MgVkMrKwogICAKMjAwMi0wMi0yMiAwODozNyAgZHRzMTIKCiAgICogd2luMzIvOiBzbm1wc21faW5pdC5oLAogICBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgbGliYWdlbnQvbGliYWdlbnQuZHNwLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AKLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBQcm92aWRlIFdpbmRvd3Mtc3BlY2lmaWMgdmVyc2lvbnMgb2YgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLAogICBhbmQgYWRkIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUgdG8gdGhlIHByb2plY3QgZmlsZXMuCiAgIAoyMDAyLTAyLTIyIDA3OjI0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaDoKCiAgIERlZmluZSBzdGFuZGFyZCBPSUQgbGVuZ3RocyBoZXJlICh3aGVyZSB0aGV5J3JlIGF2YWlsYWJsZSB0byBhbnkKICAgZmlsZSB3YW50aW5nIHRvIGFjY2VzcyB0aGUgT0lEIHN0cnVjdHVyZXMpCiAgIAoyMDAyLTAyLTIyIDAzOjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgU3VwcG9ydCAiLi4uLiAtM3Uge3NlY05hbWV9IC4uLi4iIHN5bnRheAogICAoaW4gdGhlIG5vcm1hbCBnZXRvcHQgc3R5bGUgLSBpLmUuIG5vIG5lZWQgZm9yIHN1cnJvdW5kaW5nIHF1b3RlcykKICAgCiAgIEl0IHNob3VsZCBub3cgYmUgcG9zc2libGUgdG8gc3dpdGNoIHRvIHRoaXMgYXMgdGhlIHJlY29tbWVuZGVkIGZvcm0KICAgZm9yIFNOTVB2MyBvcHRpb25zIC0gaWYgdGhhdCdzIHdoYXQgd2Ugd2FudCB0byBkby4KICAgICBRbjogIERvIHdlIHdhbnQgdG8/CiAgIAoyMDAyLTAyLTIxIDA4OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgU3VwcG9ydCAiLTN1IHtzZWNOYW1lfSIgc3ludGF4ICgqd2l0aCogdGhlIHF1b3RlcywgdW5mb3J0dW5hdGVseSkuCiAgIE5vdyBjb21lcyB0aGUgZnVuIGJpdC4uLi4uCiAgIAoyMDAyLTAyLTIxIDA3OjU0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDA3OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGRyb3AgaW5saW5lIChtb3JlIHRyb3VibGUgdGhhbiBpdCBpcyB3b3J0aCkKICAgCjIwMDItMDItMjEgMDU6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBGaXJzdCBwYXNzIGF0IGFuIFNOTVB2MyAiY29tYmluZWQtb3B0aW9uIiBjb21tYW5kLWxpbmUgZmxhZyAoLTN4KS4KICAgKEluICphZGRpdGlvbiogdG8gdGhlIGN1cnJlbnQgY29tbWFuZC1saW5lIGZsYWdzLCBJIGhhc3RlbiB0byBhZGQhKQogICAKICAgU3VwcG9ydHMgICIuLi4gLTN1e3NlY05hbWV9IC4uLiIgYW5kICIuLi4gLTN1PXtzZWNOYW1lfSAuLi4iIHN5bnRheCwKICAgYnV0IG5vdCB0aGUgc2VwYXJhdGUgIi4uLiAtM3Uge3NlY05hbWV9IC4uLiIgc3R5bGUuCiAgIAogICBJIGhhdmVuJ3QgdG91Y2hlZCB0aGUgZG9jdW1lbnRhdGlvbiBvciB1c2FnZSBtZXNzYWdlIHRvIG1lbnRpb24gdGhpcy4KICAgCjIwMDItMDItMjAgMTg6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHVzZSBmb3IgaW5zdGVhZCBvZiBjb250aW51ZSBmb3IgbG9vcHMuCiAgIAoyMDAyLTAyLTIwIDEzOjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIEFkZCBhIC0tcXVpdCBvcHRpb24gKGFuZCBhIGNvbmZpZ3VyYXRpb24gdG9rZW4pIHNvIHRoYXQgeW91IGNhbiBub3cKICAgICBjcmVhdGUgbmV3IHVzZXJzIGJ5IHNpbXBseSBjYWxsaW5nIHNubXBkIGFzOgogICAgICAgc25tcGQgLS1jcmVhdGVVc2VyPSJteXVzZXIgTUQ1IG15cGFzc3dvcmQiIC0tcXVpdAogICAtIENoYW5nZSBSRUFETUUuc25tcHYzIGRvY3VtZW50YXRpb24gdG8gbWFrZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgogICAKMjAwMi0wMi0yMCAwNjoxNiAgamJwbgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IHRvIHNubXB0cmFwZCAodW50ZXN0ZWQpCiAgIAogICAgIC0gbWlub3IgY2hhbmdlcyB0byBzbm1wZCBsaWJ3cmFwIHN1cHBvcnQKICAgCiAgICAgLSBjb25maWd1cmUgZml4ZXMgZm9yIGxpYndyYXAKICAgCjIwMDItMDItMjAgMDM6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0yMCAwMzowNiAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0yMCAwMzowMyAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIHVwIHRoZSBvYmplY3QgZmlsZXMgYXMgd2VsbAogICAKMjAwMi0wMi0yMCAwMTo0MSAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgdGhlIG5ldyBjcm9wIG9mIGdlbmVyYXRlZCBtYW4gcGFnZXMuCiAgIAoyMDAyLTAyLTIwIDAxOjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBTdXBwbHkgbWlzc2luZyBkb3VibGUtcXVvdGUgIChvb3BzKQogICAKMjAwMi0wMi0xOSAwNDowMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBJbml0aWFsaXNlIHRoZSBsaWJyYXJ5IGludGVybmFscyAqYmVmb3JlKiBwYXJzaW5nIHRoZSBjb21tYW5kIGxpbmUsCiAgIHNvIHRoYXQgZGVmYXVsdHMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgUW46ICBTaG91bGQgJ19pbml0X3NubXAnIGJlIGludm9rZWQgYnkgJ3NubXBfcGFyc2VfYXJncycgaXRzZWxmPwogICAKMjAwMi0wMi0xOSAwMzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IG11bHRpcGxlIG91dHB1dCBmb3JtYXQgZmxhZ3Mgd29yayBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLgogICAoaS5lLiB0aGUgbGFzdCBvbmUgaXMgdXNlZCwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBpbnRlcm5hbCBvcmRlcmluZykuCiAgIAoyMDAyLTAyLTE4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMsIHRlc3RoYW5kbGVyLmM6CgogICBpbmNsdWRlIHN0ZGxpYi5oCiAgIAoyMDAyLTAyLTE4IDIxOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIGZpeCBpbmNsdWRlcwogICAKMjAwMi0wMi0xOCAyMTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICAtIG1ha2UgY2FwYWJpbGl0eSB0byBjcmVhdGUgZGF0YSBjb250ZXh0cyBmcm9tIGEgbG9vcCBjb250ZXh0IChsZXNzCiAgICAgbWFsbG9jcyB3aGVuIG1hbGxvY3MgYXJlbid0IG90aGVyd2lzZSBhdm9pZGFibGUpLgogICAtIGRvbid0IGRvdWJsZSBmcmVlIHRoZSBkYXRhIGNvbnRleHQgcG9pbnRlci4KICAgCjIwMDItMDItMTggMjE6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgYWxsIGFnZW50IGhlbHBlcnMuCiAgIAoyMDAyLTAyLTE4IDIxOjQ5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmg6CgogICBwcm90ZWN0IGluY2x1ZGUgZnJvbSBkb3VibGUgaW5jbHVkZQogICAKMjAwMi0wMi0xOCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgZml4IGluY2x1ZGUgcGF0aHMKICAgCjIwMDItMDItMTggMDI6MzUgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHdlYWsgdGhlIGxpc3Qgb2YgaGVhZGVyIGZpbGVzIHRvIGJlIGluc3RhbGxlZCAodGhhbmtzIHRvIENocmlzdG9waCBNYW1taXR6c2NoKQogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAoVjQtMi1wYXRjaGVzLjcpLCBocl9zdG9yYWdlLmMKOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNiAyMzoxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IE5FVC1TTk1QLU1JQi50eHQsIE5FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCwKICAgTkVULVNOTVAtU1lTVEVNLU1JQi50eHQsIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHdoaXRlIHNwYWNlIGNsZWFuIHVwLiAgKEFHRU5ULU1JQiBub3QgY2hlY2tlZCBpbiBkdWUgdG8gb3RoZXIKICAgaW5jb21wbGV0ZSBjaGFuZ2VzKS4KICAgCjIwMDItMDItMTYgMDA6MTcgIGhhcmRha2VyCgogICAqIE5FV1MsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBmaW5pc2ggaW1wbGVtZW50aW5nIHNubXBfY29uZmlnKCJteSBjb25maWcgbGluZSIpCiAgICAgLSB3YXMgZG9uZSBiZWZvcmUsIGJ1dCBwcmV2aW91c2x5IGhhZCB0byBiZSBjYWxsZWQgb25seSBhZnRlcgogICAgICAgY29uZmlndXJhdGlvbiBmaWxlcyBoYWQgYmVlbiByZWFkLiAgTm93IGNhbiBiZSBjYWxsZWQgYXQgYW55IHRpbWUuCiAgIC0gbWFrZSBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBhcyAtLWxvbmdvcHRzIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAgIC0gLS1zb21ldGhpbmc9dmFsdWUgLT4gInNvbWV0aGluZyB2YWx1ZSIKICAgICAtIC0tc29tZXRoaW5nICAgICAgIC0+ICJzb21ldGhpbmcgMSIgKHdvcmtzIGZvciBzZXR0aW5nIGJvb2xlYW5zIHRvIHRydWUpCiAgIAoyMDAyLTAyLTE2IDAwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcnBtIGZvciA0LjAuMyBhbmQgYWJvdmUgKG9yIHdoZW5ldmVyIGl0IHdhcyB0aGF0IHdlIG5vdyBuZWVkIGxpYnJwbWRiKQogICAKMjAwMi0wMi0xNiAwMDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBpbnN0YWxsL2NsZWFuL2V0Yy4KICAgCjIwMDItMDItMTUgMjI6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGluc3RhbGwgYWxsIHN5c3RlbSBhbmQgbWFjaGluZSBmaWxlcywgc2luY2UgdGhleSBpbmNsdWRlIGVhY2ggb3RoZXIKICAgCjIwMDItMDItMTUgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwKICAgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQsIG1pYnMvTkVULVNOTVAtU1lTVEVNLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIFNrZWxldG9uIGZyYW1ld29yayBmb3IgdGhlIE5ldC1TTk1QIGVudGVycHJpc2UgdHJlZS4KICAgKGluY29ycG9yYXRpbmcgdGhlIGluaXRpYWwgJ25zVHJhbnNhY3Rpb25UYWJsZScsIGJ1dCBub3RoaW5nIGVsc2UgYXMgeWV0KQogICAKMjAwMi0wMi0xNSAwOToxMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBjb21tYW5kLWxpbmUgb3B0aW9ucy4KICAgCjIwMDItMDItMTUgMDc6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jCiwgYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aHUgUHJhYmh1KQogICAKMjAwMi0wMi0xNSAwNzoyNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgU3Rva2UgV2VzJyBzZW5zZSBvZiBwYXJhbm9pYSBieSBjb25jZWRpbmcgd2l0aG91dCBjb21tZW50LgogICAgICAgKFdoYXQgbWlnaHQgU2hpZWxkIGJlIHBsb3R0aW5nIG5vdy4uLi4uLikKICAgCjIwMDItMDItMTUgMDc6MTkgIGpicG4KCiAgICogbWFuL3NubXB1c20uMS5kZWY6CgogICAgIC0gZml4IHRpbnkgZm9ybWF0dGluZyBlcnJvcgogICAKMjAwMi0wMi0xNSAwNzoxNyAgZHRzMTIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgTk9USUZJQ0FUSU9OLUxPRy1NSUIgKHNpbmNlIGl0J3Mgb25lIG9mIHRoZSBkZWZhdWx0IGxvYWQgbGlzdCEpCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UucmM6CgogICBmaWxlIHdpbnNlcnZpY2UucmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmg6CgogICBmaWxlIHdpbnNlcnZpY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGZpbGUgd2luc2VydmljZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIEluY2x1ZGUgdGhlIDxzeXMvdGltZS5oPiBjYXNjYWRlLCB0byBwaWNrIHVwIHRoZSBkZWZpbml0aW9uIG9mICd0aW1ldmFsJwogICAKMjAwMi0wMi0xNSAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGNoYW5nZSB0byBicmluZyB1c2FnZSBtZXNzYWdlIGluIGxpbmUgd2l0aCBtYW5wYWdlCiAgIAoyMDAyLTAyLTE1IDAzOjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgQ2F0Y2ggdXNlIG9mIHRoZSB0cmFuc3BvcnQgYW5kIHBvcnQgb3B0aW9ucywgYW5kIGlzc3VlIGFuIGFwcHJvcHJpYXRlCiAgIGVycm9yIG1lc3NhZ2UsIGRlc2NyaWJpbmcgdXNlIG9mIHRoZSA8aG9zdG5hbWU+IHBhcmFtZXRlciBpbnN0ZWFkLgogICAKMjAwMi0wMi0xNSAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgKmJlZm9yZSogcHJvY2Vzc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywKICAgcmF0aGVyIHRoYW4gYWZ0ZXIuICBUaGF0J3MgcHJvYmFibHkgYSBiaXQgbW9yZSBmbGV4aWJsZTotKQogICAKMjAwMi0wMi0xNSAwMjozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCwgZGVmaW5pdGlvbnMuaCwKICAgbWliX2FwaS5oLCBvdXRwdXRfYXBpLmgsIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaAosIHNubXB2M19hcGkuaCwgdHlwZXMuaCwgdXRpbGl0aWVzLmgsCiAgIHZhcmJpbmRfYXBpLmg6CgogICBSZW1vdmUgJ25ldC1zbm1wLWNvbmZpZy5oJyBmcm9tIHRoZSBtYWluIEFQSSBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgd2lsbCBoYXZlIHRvIGJlICNpbmNsdWRlZCBzZXBhcmF0ZWx5IChlaXRoZXIgZXhwbGljaXRseQogICBvciB2aWEgdGhlIGFsbC1pbi1vbmUgJ25ldC1zbm1wLWluY2x1ZGVzLmgnIGhlYWRlcikKICAgCjIwMDItMDItMTUgMDI6MzEgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBSRUFETUUgdG8gZGVzY3JpYmUgdGhlIHN0YXR1cyBvZiA8bmV0LXNubXAvbGlicmFyeT4gYW5kIDxuZXQtc25tcD4gaGVhZGVyIGZpbGVzLgogICAKMjAwMi0wMi0xNSAwMjoxMyAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUge3N5c3RlbSxtYWNoaW5lfS8qLmggaGVhZGVyIGZpbGVzIGFzIHdlbGwuCiAgIAogICBEb2luZyB0aGlzIHZpYSB0aGUgJ21hbicgJiAnbWlicycgTWFrZWZpbGVzIGlzIGEgZ3Jvc3MgaGFjaywKICAgYW5kIHJlYWxseSBuZWVkcyB0byBiZSBoYW5kbGVkIG1vcmUgY2xlYW5seS4gIEJ1dCBpdCdzIHRoZQogICBiZXN0IEkgY2FuIGNvbWUgdXAgd2l0aCBhdCB0aGUgbW9tZW50LiAgU29ycnkgLSBEYXZlLgogICAKMjAwMi0wMi0xNSAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBVQ0QtY29tcGF0YWJpbGl0eSBoZWFkZXJzIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTE1IDAxOjU3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIE9ubHkgaW5zdGFsbCBzdWJkaXJlY3Rvcnkgc3R1ZmYgKm9uY2UqLiAgKERvbid0IGJlIHNvIGVudGh1c2lhc3RpYywgRGF2ZSEpCiAgIAoyMDAyLTAyLTE1IDAxOjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgUmVtb3ZlIHJlZHVuZGVudCAnLUNOJyBhbmQgJy1DTycgb3B0aW9ucyBmcm9tIHRoZSBleGFtcGxlIHNubXB1c20gY29tbWFuZC4KICAgICAoYXMgbWVudGlvbmVkIGJ5IFdlcyBvbiB0aGUgdXNlcnMgbWFpbGluZyBsaXN0IDIwMDItMDItMTMpCiAgICAgUW46IERvZXMgdGhpcyBuZWVkIHRvIGJlIGRvbmUgb24gdGhlIFY0LTItcGF0Y2hlcyBicmFuY2ggYXMgd2VsbD8KICAgCjIwMDItMDItMTUgMDE6MTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBSZXN0b3JlICd2ZXJzaW9uLmgnIGFzIGJlaW5nIGEgInRvcC1sZXZlbCIgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTAyLTE1IDAxOjEzICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgZnVsbCBzZXQgb2YgbGlicmFyeSBoZWFkZXIgZmlsZXMsCiAgIHJldGFpbmluZyB0aGUgdG9wLWxldmVsIHZzIGxpYnJhcnkgc3ViZGlyZWN0b3J5IHNwbGl0LgogICAKMjAwMi0wMi0xNSAwMToxMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBMb29rIGZvciB0cmFuc3BvcnQtcmVsYXRlZCBoZWFkZXIgZmlsZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTE1IDAxOjA5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEVuc3VyZSBwYXJ0aWFsIGluc3RhbGwgdGFyZ2V0cyByZWN1cnNlIHByb3Blcmx5LgogICAKMjAwMi0wMi0xNCAwODoxOCAgZHRzMTIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTG9vayBmb3IgbWliX21vZHVsZV9jb25maWcuaCBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbgogICAKMjAwMi0wMi0xNCAwODowNiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IG1hbjggaW5zdGFsbCBkZWZpbml0aW9ucwogICAKMjAwMi0wMi0xNCAwNzo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN1YnN0aXR1dGUgdmFsdWVzIGludG8gJ25ldC1zbm1wLWNvbmZpZycgcHJvcGVybHksIGFuZCBkb24ndCAnbWFrZSBjbGVhbicgaXQgYXdheS4KICAgCjIwMDItMDItMTQgMDc6MjIgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcwogICAKMjAwMi0wMi0xNCAwNzoxNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjEwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIGFnZW50L2FnZW50X3RyYXAuYwosIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MDggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgYW4gZXh0cmFuZW91cyBzcGFjZSBmcm9tIENQUEZMQUdTCiAgIAoyMDAyLTAyLTE0IDA2OjIzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oLCBkZWZpbml0aW9ucy5oLAogICBtaWJfYXBpLmgsIG5ldC1zbm1wLWluY2x1ZGVzLmgsIG91dHB1dF9hcGkuaCwKICAgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oLCBzbm1wdjNfYXBpLmgsIHR5cGVzLmgKLCB1dGlsaXRpZXMuaCwgdmFyYmluZF9hcGkuaDoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNjoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hc24xLmgsIGluY2x1ZGUvbmV0LXNubXAvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgKLCBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaCwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaAosIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oCiwgaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgKLCBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9zdGFzaC5oLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC92YWNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZlcnNpb24uaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaCwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC10Yy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi92YWNtLmM6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDQ6NDEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYywKICAgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBtb3ZlcyB0b3dhcmRzIHVzaW5nIHRoZSAicHVibGljIiBBUEkgaGVhZGVyIGZpbGVzIGluIHRoZSBsaWJyYXJ5CiAgIGNvZGUgYXMgd2VsbCAoY29uY2VudHJhdGluZyBvbiBvdXRwdXQvY29uZmlnL3V0aWxpdHkgaGVhZGVyIGZpbGVzKS4KICAgCjIwMDItMDItMTQgMDM6MTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2xvc2UgYSBkYW5nbGluZyAiaWYiIGJsb2NrLiAgIChvb3BzISkKICAgCjIwMDItMDItMTQgMDE6NDcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jIChWNC0yLXBhdGNoZXMuNCksIGlmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIExhdGVzdCBSZWRIYXQgcnBtLXJlbGF0ZWQgcGF0Y2gKICAgCjIwMDItMDItMTQgMDE6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIFJQTSBsaWJyYXJpZXMKICAgCjIwMDItMDItMTMgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTWFrZSBKb2huIHRydXN0IGhpcyBjb2RlCiAgIAoyMDAyLTAyLTEzIDA4OjM0ICBqYnBuCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgICAtIHRyYW5zcG9ydCBmaXhlcyAodW50ZXN0ZWQsIHN0aWxsICNpZiAwKQogICAKMjAwMi0wMi0xMyAwODowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtYXJrIHNvbWUgSm9obi10by1kby1zZWN0aW9ucwogICAKMjAwMi0wMi0xMyAwNzo1NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmLAogICBzbm1wbGliL21pYi5jOgoKICAgU3dpdGNoIHRvIHVzaW5nIC1PUyBzdHlsZSBvdXRwdXQgYnkgZGVmYXVsdCwgYW5kIGRyb3AgdGhlIHJlcXVpcmVtZW50CiAgIGZvciBmdWxsIE9JRHMgdG8gc3RhcnQgd2l0aCAnLicsIHBsdXMgY29tbWFuZC1saW5lIG9wdGlvbnMgdG8gcmVzdG9yZQogICB0aGUgb3JpZ2luYWwgVUNELXN0eWxlIGJlaGF2aW91ci4KICAgCjIwMDItMDItMTMgMDc6MzYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBBcHBseSBKb2huJ3MgZml4IGZvciBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZAogICBjb2x1bW5zIGluIHdyb25nIG9yZGVyKSB0byB0aGUgbWFpbiBicmFuY2ggYXMgd2VsbC4KICAgCjIwMDItMDItMTIgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGNvbnN0IGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogLmN2c2lnbm9yZSwgQVNOLy5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUKLCBkZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmU6CgogICBhZGQgLmN2c2lnbm9yZSBmaWxlLgogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgYWRkIGFnZW50L2FnZW50X2hhbmRsZXIuaAogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oOgoKICAgY29uc3QgYWRkaXRpb25zLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQWRkIHN0cmluZy5oCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgaGVhZGVyLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4ZXMgdG8gcmVlbmFibGUgZGlzbWFuIGV2ZW50IHN0dWZmIGZvciA1LjAgY29kZS4gIE5vdCBkb25lIHRoZQogICAicmlnaHQiIHdheSwgYnV0IGl0IHdvcmtzLgogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIC1XYWxsIGZpeGVzCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGFkZCBzdGRsaWIuaAogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgbm8gbG9uZ2VyIHVzZWQgImR1bXBfdmFyIiByb3V0aW5lLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGNvbnN0IHNwZWNpZmljIGNoYW5nZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbmV3IHBlcmwgc3BlY2lmaWMgZmVhdHVyZXMuCiAgIAoyMDAyLTAyLTEyIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC5QSE5PWSBtb2RzCiAgIAoyMDAyLTAyLTEyIDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9sb2dnaW5nX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaAo6CgogICBSZW5hbWUgdGhlIGxvZ2dpbmcgJiByZWxhdGVkIG91dHB1dCBBUEkgaGVhZGVyIGZpbGUsIHRvIGJldHRlcgogICByZWZsZWN0IHRoZSBzY29wZSBvZiB0aGlzIEFQSS4gIChBcyBzdWdnZXN0ZWQgYnkgV2VzICYgSm9obikKICAgCjIwMDItMDItMTIgMDc6MjEgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjM5ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBsaWIgZGVwZW5kZW5jeSBmaXggZm9yIHNubXBkIHRhcmdldAogICAKMjAwMi0wMi0xMSAwODoyOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmgsIGluY2x1ZGUvbmV0LXNubXAvbWliLmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3VjZF9jb21wYXQuaCwgc25tcGxpYi9jbXVfY29tcGF0LmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBFeHRyYWN0IENNVV9DT01QQVRBQklMSVRZIGNvZGUsIGFuZCBleHBsaWNpdGx5IGRlcHJlY2F0ZWQgVUNEIGNvZGUgaW50byBzZXBhcmF0ZSBmaWxlcy4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICBVc2UgdGhlICdkc19zZXRfeHh4JyBsaWJyYXJ5IHJvdXRpbmVzLCByYXRoZXIgdGhhbiB0aGUgb2xkICdzbm1wX3NldF94eHgnIGNhbGxzCiAgIAoyMDAyLTAyLTExIDA0OjQ1ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgbWlub3Igc3BlbGxpbmcgdHdlYWtzCiAgIAoyMDAyLTAyLTExIDA0OjI3ICBqYnBuCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMKLCBtaWJfYXBpLjMuZGVmLCBzbm1wX2FnZW50X2FwaS4zLAogICBzbm1wX2FnZW50X2FwaS4zLmRlZiwgc25tcF9hbGFybS4zLCBzbm1wX2FsYXJtLjMuZGVmCiwgc25tcF9hcGkuMywgc25tcF9hcGkuMy5kZWYsIHNubXBfc2Vzc19hcGkuMwosIHNubXBfc2Vzc19hcGkuMy5kZWYsIHNubXBfdHJhcF9hcGkuMywKICAgc25tcF90cmFwX2FwaS4zLmRlZiwgdmFyaWFibGVzLjUsIHZhcmlhYmxlcy41LmRlZgo6CgogICAgIC0gZ2VuZXJhdGUgdGhlIHJlc3Qgb2YgdGhlIG1hbnVhbCBwYWdlcyAodG8gZ2V0IHZlcnNpb24gaW4gZm9vdGVyKQogICAKMjAwMi0wMi0wOCAxNTo1NiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgbWliX21vZHVsZV9jb25maWcuaCwKICAgbWliX21vZHVsZV9pbml0cy5oLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBzbm1wZC9zbm1wZC5kc3A6CgogICB3aW4zMiBzcGVjaWZpYyBwb3J0aW9ucyBvZiBwYXRjaCA1MDMyNTYKICAgCjIwMDItMDItMDggMTU6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3A6CgogICBwYXRjaCM1MDMyNTY6IGhlbHBlcnMgbGlicmFyeSBkZWZpbml0aW9uIGZvciB3aW4zMgogICAKMjAwMi0wMi0wOCAwOTowOCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXQgdHdlYWthZ2UKICAgCjIwMDItMDItMDggMDg6MjIgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMywgc25tcF9hZ2VudF9hcGkuMywgc25tcF9hbGFybS4zCiwgc25tcF9hcGkuMywgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMKOgoKICAgUmVmZXJlbmNlIHRoZSBuZXcgaGVhZGVyLWZpbGVzIGluIHNlY3Rpb24gMyBtYW4gcGFnZSBzeW5vcHNlcy4KICAgCjIwMDItMDItMDggMDc6NTAgIGpicG4KCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wX3RyYXBfYXBpLjMsCiAgIHNubXBjbWQuMS5kZWYsIHNubXBjb25mLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICB2YXJpYWJsZXMuNToKCiAgICAgLSBtb3JlIG1pbm9yIHR3ZWFrcyAodWNkLXNubXAgLT4gTmV0LVNOTVAgZXRjLikKICAgCjIwMDItMDItMDggMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBsb2NhbCBtb2R1bGVzIGZyb20gZGVwZW5kZW5jeSBsaXN0CiAgIAoyMDAyLTAyLTA4IDA3OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaW5kZXguYywKICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jCiwgYXV0b19ubGlzdC5jLCBrZXJuZWwuYywgbWliX21vZHVsZXMuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgaGVscGVycy9idWxrX3RvX25leHQuYywgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYywgaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBoZWxwZXJzL251bGwuYywgaGVscGVycy9vbGRfYXBpLmMsIGhlbHBlcnMvcmVhZF9vbmx5LmMKLCBoZWxwZXJzL3NlcmlhbGl6ZS5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYywgaGVscGVycy90YWJsZV9kYXRhLmMsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIG1pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9SbW9uL2FndXRpbC5jLAogICBtaWJncm91cC9SbW9uL2FsYXJtLmMsIG1pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIG1pYmdyb3VwL1Jtb24vcm93cy5jLAogICBtaWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYwosIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwosIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMKLCBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBtaWJncm91cC9taWJJSS9pcHY2LmMsIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBtaWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwosIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKLCBtaWJncm91cC9taXNjL2RsbW9kLmMsIG1pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwosIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jCiwgbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMKLCBtaWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm94eS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFVzZSB0aGUgbmV3ICduZXQtc25tcC1pbmNsdWRlcycgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzLAogICBpbiBwbGFjZSBvZiB0aGUgKHVuaW5zdGFsbGVkKSAnbWliaW5jbC5oJy4KICAgICBXaGVlZWVlLi4uLi4uCiAgIAoyMDAyLTAyLTA4IDA3OjE3ICBqYnBuCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMywKICAgc25tcF9hbGFybS4zLCBzbm1wX2FwaS4zLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgc25tcF9zZXNzX2FwaS4zLCBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAgIC0gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gZ2VuZXJhdGUgbWFuIHBhZ2VzIGF0IGNvbXBpbGUgdGltZQogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwKICAgc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwgc25tcGNtZC4xCiwgc25tcGNtZC4xLmRlZiwgc25tcGNvbmYuMSwgc25tcGNvbmYuMS5kZWYKLCBzbm1wZ2V0LjEsIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEsCiAgIHNubXBnZXRuZXh0LjEuZGVmLCBzbm1wc2V0LjEsIHNubXBzZXQuMS5kZWYsCiAgIHNubXBzdGF0dXMuMSwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEsCiAgIHNubXB0YWJsZS4xLmRlZiwgc25tcHRlc3QuMSwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYW5zbGF0ZS4xLmRlZiwgc25tcHRyYXAuMQosIHNubXB0cmFwLjEuZGVmLCBzbm1wdXNtLjEsIHNubXB1c20uMS5kZWYsCiAgIHNubXB3YWxrLjEsIHNubXB3YWxrLjEuZGVmLCBzbm1wdHJhcGQuOCwKICAgc25tcHRyYXBkLjguZGVmOgoKICAgICAtIHJlbmFtZSBtYW4gcGFnZXMgd2hpY2ggYXJlIG5vdyBnZW5lcmF0ZWQgYXQgY29tcGlsZSB0aW1lIGluIG9yZGVyCiAgICAgICB0byBwaWNrIHVwIHRoZSB2ZXJzaW9uICh3aGljaCBnZXRzIHB1dCBpbiB0aGUgZm9vdGVyKS4KICAgCiAgICAgLSBhbHNvIHNvbWUgZWRpdGluZyB0byBtYWtlIHN0eWxlIGNvbnNpc3RlbnQsIGFkZCBzb21lIG1pc3Npbmcgb3B0aW9ucywKICAgICAgIGNoYW5nZSB1Y2Qtc25tcCB0byBOZXQtU05NUCBhbmQgdGhpbmdzIGxpa2UgdGhhdC4KICAgCjIwMDItMDItMDggMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICBSZW1vdmUgdGhlIGF0dGVtcHRlZCAnbWliSUknIHJlLXdyaXRlLgogICBJZiB3ZSB3YW50IHRvIHRpZHkgdXAgbWliSUksIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gdXNlIHRoZSBuZXcgYWdlbnQgQVBJcy4KICAgCjIwMDItMDItMDggMDY6NDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBuZXQtc25tcC1pbmNsdWRlcy5oLAogICBhZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQnJpbmcgc2luZ2xlLWluY2x1ZGUgaGVhZGVyIGZpbGVzIGNsb3NlciBpbiBsaW5lIHdpdGggdGhlIGV4aXN0aW5nICJtaWJpbmNsLmgiIGZpbGUKICAgCjIwMDItMDItMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHN5c09SVGFibGUuaDoKCiAgIEVuc3VyZSB0aGUgbnVsbCB2ZXJzaW9ucyBvZiB0aGUgdHdvIFJFR0lTVEVSIG1hY3JvcyBzd2FsbG93IHRoZWlyIHBhcmFtZXRlcnMuCiAgIAoyMDAyLTAyLTA4IDA0OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbXBsZW1lbnQgdGhlIG1pc3Npbmcgb3V0Z29pbmcgZXJyb3Igc3RhdGlzdGljcyBjb3VudGVycwogICAocGF0Y2ggIzUxMDE5NCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiAgIChWNC0yLXBhdGNoZXMuWzYsM10pLCBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQ29uc29saWRhdGUgaWRlbnRpY2FsIE1JQiBvYmplY3QgZW50cmllcyAoV0lOMzIvbm9uLVdJTjMyKQogICAKMjAwMi0wMi0wOCAwMDo1MCAgamJwbgoKICAgKiBtYW4vUkVBRE1FOgoKICAgICAtIHJlbW92ZSBjaHJvbmljYWxseSBkYXRlZCB1bmhlbHBmdWwgUkVBRE1FCiAgIAoyMDAyLTAyLTA3IDEzOjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBtYWtlZmlsZWluZGVwZW5kLnBsLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtYWtlIG1ha2UncyBNYWtlZmlsZSdzIHRvIG1ha2UgYmV0dGVyIG1ha2luZwogICAKMjAwMi0wMi0wNyAxMzozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY2hlY2sgbG9jYWwgcGF0aGVzCiAgIAoyMDAyLTAyLTA3IDEyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbnN1cmUgYWdlbnQgcmV0dXJucyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBmb3IgVU5ETyBhbmQgQ09NTUlUIGZhaWx1cmVzLgogICAKMjAwMi0wMi0wNyAxMToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAueHMsIHQvc3RhcnRhZ2VudC5wbAo6CgogICBhdHRlbXB0IGF0IHBvcnRpbmcgSm9lJ3MgU05NUCBtb2R1bGUgdG8gbmV0LXNubXAuCiAgIEl0IGNvbXBpbGVzLCBidXQgb25seSBzb21lIG9mIHRoZSB0ZXN0cyBzdWNjZWVkLgogICAKMjAwMi0wMi0wNyAxMDowOSAgamJwbgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMsCiAgIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfYWdlbnRfYXBpLjMKLCBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmCiwgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMsIHNubXBidWxrZ2V0LjEKLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNvbmYuMSwgc25tcGQuY29uZi41LmRlZgosIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcGdldC4xLAogICBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLCBzbm1wc2V0LjEsCiAgIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0ZXN0LjEsCiAgIHNubXB0cmFuc2xhdGUuMSwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYKLCBzbm1wdXNtLjEsIHNubXB3YWxrLjEsIHZhcmlhYmxlcy41OgoKICAgICAtIGFkZCBOZXQtU05NUCBpbiBoZWFkZXIgb2YgYWxsIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwOTo1MiAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHVwZGF0ZSBzdHlsZSB0byBtYXRjaCBzbm1wZCBhbmQgc25tcHRyYXBkIG1hbiBwYWdlcwogICAKMjAwMi0wMi0wNyAwODoxNSAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gZml4IHNwZWVsaW5nIG1pc3Rha2UKICAgCjIwMDItMDItMDcgMDg6MDAgIGpicG4KCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgICAtIGJyaW5nIHVwIHRvIGRhdGUgd2l0aCBzbm1wdHJhcGQKICAgCjIwMDItMDItMDcgMDc6MjggIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFjY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDcgMDY6MzAgIGpicG4KCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgICAtIGFscGhhYmV0aXNlIG9wdGlvbnMKICAgCiAgICAgLSBicmluZyBtYW4gcGFnZSBpbiBsaW5lIHdpdGggbmV3IHBvc2l0aW9uYWwgYXJndW1lbnRzIGxpc3RlbmluZwogICAgICAgYWRkcmVzcyBzcGVjaWZpY2F0aW9uIGFuZCBhZGQgc2VjdGlvbiBkZXNjcmliaW5nIHRoYXQKICAgCiAgICAgLSBwdXQgTmV0LVNOTVAgaW4gaGVhZGVyCiAgIAoyMDAyLTAyLTA2IDEwOjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaDoKCiAgICAgLSBmaXggYnVnIG5vdGVkIGJ5IE5pZWxzCiAgIAoyMDAyLTAyLTA2IDA5OjI1ICBqYnBuCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYzoKCiAgICAgLSBtaW5vciB0d2Vha3MgZHVlIHRvIGNoYW5nZSBpbiBkZWZpbml0aW9uIG9mIFVTTSBPSURzLgogICAKMjAwMi0wMi0wNiAwOToxNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjMuaAosIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gbW92ZSBVU00gT0lEIGRlZmluaXRpb25zIGludG8gc25tcHVzbS5jLCBtYWtlIHRoZW0gY29uc3QKICAgCiAgICAgLSBjb25zZXF1ZW50IGluY3JlYXNlIGluIGNvbnN0LW5lc3MgaW4gc29tZSBmdW5jdGlvbiBwcm90b3R5cGVzCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICByZW1vdmUgaW50ZXJuYWwgbm90ZSBhYm91dCB2MyBhcGksIHdoaWNoIHNob3VsZCBiZSBwdWJsaWMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0Lmg6CgogICByZW1vdmVkIHVubmVlZGVkIGZpbGUKICAgCjIwMDItMDItMDYgMDk6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgY29uc3QtbmVzcyBmb3IgdHJhbnNmb3JtIHR5cGUgYXJncwogICAKMjAwMi0wMi0wNiAwOTowMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGFkZCBzb21lIGNvbnN0LW5lc3MgZm9yIE9JRCBhcmdzIChtYWlubHkgc28gdGhhdCBkZWJ1Z21zZ19vaWQgdGFrZXMKICAgICAgIGNvbnN0KS4KICAgCjIwMDItMDItMDYgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBTdXBwb3J0IGZvciBEeW5peC9QVFggNC40LCBjb3VydGVzeSBvZiBQYXRyaWNrIEhlc3MuCiAgIAoyMDAyLTAyLTA2IDA3OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgZmlyc3QgYXJndW1lbnQgb2Ygc25tcF9kdXBfb2JqaWQoKSBjb25zdC4KICAgCiAgICAgLSBiZXR0ZXIgaGFuZGxlIE5VTEwgdmFsdWVzIGluIHNubXBfZHVwX29iamlkKCkuCiAgIAoyMDAyLTAyLTA2IDA3OjA5ICBkdHMxMgoKICAgKiBGQVEsIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICBDbGFyaWZ5IHRoZSBhcHBsaWNhYmlsaXR5IG9mICdzbm1wX3RyYXBfYXBpKDMpJyByb3V0aW5lcyB0byBBZ2VudFggc3ViYWdlbnRzLgogICAKMjAwMi0wMi0wNiAwNTo1OCAgZHRzMTIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgbm90aWZpY2F0aW9uX2xvZy5jLAogICBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYwosIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYwosIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L2lmLmMKLCBzbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBuZXRzdGF0L21haW4uYywgc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIEFwcGxpY2F0aW9ucyBhbWVuZGVkIHRvIHVzZSB0aGUgbmV3LXN0eWxlIGxpYnJhcnkgaGVhZGVyIHN0cnVjdHVyZS4KICAgKEluIG1vc3QgY2FzZXMsIHNpbXBseSBpbmNsdWRpbmcgdGhlIHNpbmdsZSAiZnVsbCBBUEkiIGhlYWRlciBmaWxlKQogICAKMjAwMi0wMi0wNiAwNTo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFzbjEuaCwgY29uZmlnX2FwaS5oLAogICBkZWZpbml0aW9ucy5oLCBsb2dnaW5nX2FwaS5oLCBtaWJfYXBpLmgsCiAgIG5ldC1zbm1wLWluY2x1ZGVzLmgsIHBkdV9hcGkuaCwgc2Vzc2lvbl9hcGkuaCwKICAgc25tcHYzX2FwaS5oLCB0eXBlcy5oLCB1dGlsaXRpZXMuaCwgdmFyYmluZF9hcGkuaAo6CgogICBGcmFtZXdvcmsgZm9yIG5ldyBsaWJyYXJ5IGhlYWRlciBmaWxlIG9yZ2FuaXNhdGlvbiwgd2l0aCBlaWdodCBtYWluIGdyb3VwcwogICBvZiBBUEkgcm91dGluZXMuICBDdXJyZW50bHkgdGhlc2Ugc3RpbGwgcmVmZXIgdG8gdGhlIFVDRC1zdHlsZSBzdHlsZSBoZWFkZXIKICAgZmlsZXMgZm9yIHRoZSBhY3R1YWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgogICAKMjAwMi0wMi0wNiAwNTozMSAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gcmVwbGFjZSB1c2Ugb2YgJDwgd2l0aCBleHBsaWNpdCBmaWxlbmFtZSwgc2luY2Ugbm9uLUdOVSBtYWtlcyBzZWVtCiAgICAgICB0byBiYXJmIG9uIGl0CiAgIAoyMDAyLTAyLTA2IDAzOjMxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEZpeCBpbmNvcnJlY3QgZGlyZWN0b3J5IHNwZWNpZmljYXRpb24gaW4gJ21ha2UgY2xlYW4nCiAgIAoyMDAyLTAyLTA2IDAzOjE4ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdGVjdCB0aGUgcHJvamVjdCBjb25maWcgZmlsZSBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4KICAgCjIwMDItMDItMDYgMDM6MDcgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cyBhbmQKICAgICAgIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi8uLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzCiAgICAgICBhbmQgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuNyksIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGVybCBmaXhlcwogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtb3ZlIHRoZSBvaWR0cmVlX2NvbXBhcmUgZnVuY3Rpb24gdG8KICAgdGhlIG1haW4gbGlicmFyeS4KICAgCjIwMDItMDItMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBwZXJsIGJ1aWxkIGZpeGVzLgogICAKMjAwMi0wMi0wNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBvcHBzLiAgUmVtb3ZlZCBmb3JjZWQgcGVybCBlbWJlZGRpbmcKICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB0aGlzIGZpbGUgc2hvdWxkbid0IGJlIGNoZWNrZWQgaW4KICAgCjIwMDItMDItMDQgMTY6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfcGVybC5jCiwgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gU3VwcG9ydCBmb3IgZW1iZWRkaW5nIHBlcmwgc3Vicm91dGluZXMgaW50byB0aGUgYWdlbnQgdG8gYmUgY2FsbGVkCiAgICAgYXMgaGFuZGxlcnMuCiAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zOgogICAgIC0td2l0aC1wZXJsLW1vZHVsZXMgYXR0ZW1wdHMgdG8gYnVpbGQgY29udGFpbmVkIG1vZHVsZXMgKHBvb3JseSBjdXJyZW50bHkpLgogICAgIC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWN0dWFsbHkgc3BlY2lmaWVzIHRvIGRvIHBlcmwgZW1iZWRkaW5nCiAgICAgd2l0aGluIHRoZSBhZ2VudC4KICAgCjIwMDItMDItMDQgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnBtLCBBU04vQVNOLnhzLCBBU04vQ2hhbmdlcywKICAgQVNOL01BTklGRVNULCBBU04vTWFrZWZpbGUuUEwsIEFTTi90ZXN0LnBsLAogICBhZ2VudC9DaGFuZ2VzLCBhZ2VudC9NQU5JRkVTVCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2FnZW50LnBtLCBhZ2VudC9hZ2VudC54cywgYWdlbnQvdGVzdC5wbCwKICAgYWdlbnQvdHlwZW1hcCwgZGVmYXVsdF9zdG9yZS9DaGFuZ2VzLAogICBkZWZhdWx0X3N0b3JlL01BTklGRVNULCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywgZGVmYXVsdF9zdG9yZS90ZXN0LnBsLAogICBkZWZhdWx0X3N0b3JlL3R5cGVtYXA6CgogICBCZWdpbm5pbmdzIG9mIG5ldyBwZXJsIG1vZHVsZXMgbmVlZGVkIHRvIGltcGxlbWVudCBhbiBTTk1QIGFnZW50IChvcgogICBhZ2VudHggc3ViYWdlbnQpIGluc2lkZSBwZXJsLgogICAgIC0gbm90IGNvbXBsZXRlIHlldC4KICAgICAtIG1heSBjaGFuZ2UuCiAgICAgLSBidXQgd29ya3MuCiAgIAoyMDAyLTAyLTA0IDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAyLTAxIDAxOjUwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHRoZSBwcm9jZWR1cmUgZm9yIGNvbXBpbGluZyB3aXRoICdjYycgcmF0aGVyIHRoYW4gJ2djYycKICAgCjIwMDItMDEtMzEgMTQ6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHMvc25tcGxpYlwvLy87CiAgIAoyMDAyLTAxLTMxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlIGNsZWFuIGFzIHJlcG9ydGVkIGJ5IEJyYWRsZXkgQm96YXJ0aC4KICAgCjIwMDItMDEtMzAgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBCcmluZyBNSUIgdmFyaWFibGUgdmVyc2lvblRhZyBpbnRvIGxpbmUgd2l0aCB0aGUgbmV3IDxuZXQtc25tcC92ZXJzaW9uLmg+IHVzYWdlCiAgIAoyMDAyLTAxLTI5IDE3OjUzICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTW92ZWQgdmVyc2lvbmluZyBpbmZvcm1hdGlvbiBmcm9tIHZlcnNpb24uaCB0bzoKICAgICAtIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgICAtIGRlZmluZSBuZXRzbm1wX2dldF92ZXJzaW9uKCk7CiAgICAgICAtIGNyZWF0ZSBhIGNvbnN0IGNoYXIgKk5ldFNubXBWZXJzaW9uSW5mbwogICAgIC0gaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGV4dGVybiB0aGUgYWJvdmUgY2hhciAqCiAgICAgICAtIHByb3RvdHlwZSB0aGUgZnVuY3Rpb24KICAgICAtIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBjcmVhdGUgYSBzdGF0aWMgdmFyaWFibGUgKHRoZSBvbGQgd2F5KSBhbmQgc2V0IGl0IHRvIE5ldFNubXBWZXJzaW9uSW5mbwogICAKMjAwMi0wMS0yOSAxNjowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sCiAgIHRlc3RzL1QwNTBzbm1wdjN0cmFwLCB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsCiAgIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsCiAgIHRlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgdHJhcCB0ZXN0IGZpeGVzIHNvIHRoZSBtYWpvcml0eSBvZiB0aGUgdGVzdHMgbm93IHdvcmsuCiAgIAoyMDAyLTAxLTI5IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGdlbmVyYXRlIHVjZC1zbm1wLWNvbmZpZy5oIGFueSBsb25nZXIuCiAgIAoyMDAyLTAxLTI5IDE1OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWlwcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi44LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N1bm9zLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3lzdi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS91bHRyaXg0Lmg6CgogICBtb3ZlZCBzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS8qLmgKICAgbW92ZWQgbS9nZW5lcmljLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaAogICAKMjAwMi0wMS0yOSAwOToyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtYyBhcmd1bWVudCBwYXJzaW5nLgogICAKMjAwMi0wMS0yOSAwOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVmZXJlbmNlIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggaW5zdGVhZCBvZiBqdXN0IGNvbmZpZy5oCiAgIAoyMDAyLTAxLTI5IDA5OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGF0dGVtcHQgdG8gZml4IHRoZSB1bmtub3duIGVuZ2luZWlkL3Vua25vd24gdXNlciBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMi0wMS0yOCAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB3aG9vcHMuICBNaXNzZWQgc29tZSAuaCBmaWxlIGNoZWNrcyBpbiBjb25maWd1cmUuICBUaGFua3MgUm9iZXJ0LgogICAKMjAwMi0wMS0yOCAyMTowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBtaW5vciBmaXguCiAgIAoyMDAyLTAxLTI4IDIxOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIGFkZGVkIGNvZGUgY29udmVydCBzY3JpcHQgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGhlYWRlciBjb252ZXJzaW9uCiAgIAoyMDAyLTAxLTI4IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLAogICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oCiwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaAosIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCwgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnNubXAuaCwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9tdF9zdXBwb3J0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmgsIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgKLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfYWxhcm0uaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2VudW0uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBrc20uaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS9uZXQtc25tcC90b29scy5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKLCBtYW4vTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RhdGFfbGlzdC5jLAogICBzbm1wbGliL2RhdGFfbGlzdC5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvZ2V0b3B0LmgsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL2tleXRvb2xzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9tZDUuYwosIHNubXBsaWIvbWQ1LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvb2lkX2FycmF5LmMsIHNubXBsaWIvb2lkX2FycmF5LmgsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvb2lkX3N0YXNoLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5jCiwgc25tcGxpYi9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5oLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUERvbWFpbi5oLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQRG9tYWluLmgsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uaCwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oLCBzbm1wbGliL3NubXBfYWxhcm0uYwosIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX2VudW0uaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmgsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaCwgdGVzdGluZy9SVU5URVNUUywKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaAosIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3lzdGVtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMjA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMKLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLCBtaWJfbW9kdWxlcy5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGhlbHBlcnMvbnVsbC5jLCBoZWxwZXJzL29sZF9hcGkuYywgaGVscGVycy9yZWFkX29ubHkuYwosIGhlbHBlcnMvc2VyaWFsaXplLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jLCBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBtaWJncm91cC9ob3N0X3Jlcy5oLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC9SbW9uL2FsYXJtLmMsCiAgIG1pYmdyb3VwL1Jtb24vZXZlbnQuYywgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIG1pYmdyb3VwL1Jtb24vcm93cy5jLCBtaWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYwosIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwosIG1pYmdyb3VwL21pYklJL2F0LmMsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYywgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYwosIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgKLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDE5OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgREVGSU5FIElUIGluc3RlYWQKICAgCjIwMDItMDEtMjggMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBkZWZpbmUgaXQgaW5zdGVhZAogICAKMjAwMi0wMS0yNSAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2Vfb25lX29pZF9pbmRleDoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBpbnQgZm9yIGxlbmd0aCdzIHB1bGxlZCBmcm9tIHRoZSBvaWQuCiAgICAgLSBNYWtlIHN1cmUgdGhleSdyZSBhbHdheXMgPCAxMjgKICAgCjIwMDItMDEtMjUgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjbG9zZXIgYWRoZXJlbmNlIHRvIHN0YXRlIG1hY2hpbmVzIGRlc2NyaWJlZCBpbiBSRkMgMjU3NAogICAKMjAwMi0wMS0yNSAwOToxMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSB1c21EZWNyeXB0aW9uRXJyb3IgcmVwb3J0cyB0byBiZSBzZW50IGluIGEgY291cGxlIG9mIGV4dHJhCiAgICAgICBjYXNlczogYmFkIHNhbHQgKGxlbmd0aCAhPSA4KSBhbmQgbGVuZ3RoIG9mIGVuY3J5cHRlZCBkYXRhIG5vdCBhCiAgICAgICBtdWx0aXBsZSBvZiA4IG9jdGV0cyAocGVyIFJGQyAyNTc0KS4KICAgCjIwMDItMDEtMjUgMDk6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZvciB1bmtub3duIG1lc3NhZ2UgdHlwZXMsIGluY3JlbWVudCBzbm1wSW5BU05QYXJzZUVycnMgYW5kIGZhaWwKICAgICAgIGF0IHRoZSBwb3N0LXBhcnNlIHN0YWdlLgogICAKICAgICAtIGZvciBub3RpZmljYXRpb24gdHlwZXMsIGluY3JlbWVudCBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGFuZCBiYWlsCiAgICAgICBvdXQgZWFybHkuCiAgIAoyMDAyLTAxLTI1IDA5OjAxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmb3IgdW5oYW5kbGVkIG1lc3NhZ2VzIChlLmcuIFJFU1BPTlNFIG1lc3NhZ2VzIHNlbnQgdG8gYWdlbnRzKSwKICAgICAgIGluY3JlbWVudCB0aGUgc25tcFVua25vd25QRFVIYW5kbGVycyBjb3VudGVyLgogICAKICAgICAtIHRyeSB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWZzIHdoZW4gcG9zdC1wYXJzZSBmYWlscy4KICAgCjIwMDItMDEtMjUgMDY6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjYpLCB2YWNtX3ZhcnMuYwo6CgogICAgIC0gZml4IG1pbm9yIHByb2JsZW0gd2l0aCBzdG9yYWdlVHlwZSAoYWx3YXlzIG9rYXkgdG8gc2V0IHRvIGN1cnJlbnQKICAgICAgIHZhbHVlKS4KICAgCiAgICAgLSBkb24ndCByZXNldCBzb21lIHZhcmlhYmxlcyB0byBvbGQgdmFsdWUgdW5sZXNzIHdlIGFjdHVhbGx5IHNldAogICAgICAgdGhlbSBpbiB0aGUgZmlyc3QgcGxhY2UhCiAgIAoyMDAyLTAxLTI1IDA1OjAwICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBkb24ndCBwcmludCBvdXQgZGVidWdnaW5nIGluZm8gaW4gYSBmdXJ0aGVyIGNhc2Ugd2hlcmUgaXQgaGFzIGJlZW4KICAgICAgIGZyZWUoKWQuCiAgIAogICAgIC0gc2V0IHRoZSBleGNlcHRpb24gbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gZXJyb3Igbm9TdWNoTmFtZSB3aGVuCiAgICAgICB3ZSBoYXZlIHRoZSBpbmNvcnJlY3QgbnVtYmVyIG9mIGluZGljZXMuCiAgIAoyMDAyLTAxLTI1IDA0OjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL1JFQURNRS5uZXdsaWI6CgogICBmaWxlIFJFQURNRS5uZXdsaWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUxJQlJBUlktQVBJLgogICAKMjAwMi0wMS0yNSAwNDo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGJlZm9yZSB3aGVyZSAocG90ZW50aWFsbHkpIHRoZSBkYXRhIGl0IGlzCiAgICAgICB0cnlpbmcgdG8gcHJpbnQgZ2V0cyBmcmVlKClkLgogICAKMjAwMi0wMS0yNSAwNDo0MCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0ga2VlcCBhc3AtPnZiY291bnQgY29ycmVjdCBpbiBjcmVhdGVfc3VidHJlZV9jYWNoZSgpIGlmIHdlIGR1bXAKICAgICAgIHZhcmJpbmRzIGluIHRoZSBHRVRORVhUIGNhc2UgYmVjYXVzZSBudW12YXJiaW5kcyA+IG5vbi1yZXBlYXRlcnMuCiAgICAgICBGYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCBjYXVzZSBwcm9ibGVtcyBsYXRlciB3aGVuIHlvdSBpdGVyYXRlIG92ZXIKICAgICAgIDAgLi4gYXNwLT52YmNvdW50IC0gMSBpbiByZWFzc2lnbl9yZXF1ZXN0cygpLgogICAKMjAwMi0wMS0yNCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHVwZGF0ZSBtYWNyb3MgdG8gcHV0IHBhcmVucyBhcm91bmQgcGFyYW1ldGVycyB3aGVuIHVzZWQsIGluIGNhc2UgYSBwYXJhbWV0ZXIgaXMgYW4gZXhwcmVzc2lvbiwgd2hpY2ggbWlnaHQgbXVjayBhYm91dCB3aXRoIG9wZXJhdG9yIHByZWNlZGVuY2UgcnVsZXMgYW5kIGNhdXNlIHVuZXhwZWN0ZWQgYW5kIHVuZGVzaXJhYmxlIGJlaGF2aW9yLgogICAKMjAwMi0wMS0yNCAxMTowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHRyeSB0byBmaW5kICYgaGFuZGxlIGV4dGVybmFsIGluZGV4ZXM7IHVzZSBuZXcgc3R5bGUgbmV0LXNubXAgaW5jbHVkZXM7IGFkZAogICByb3dfY29weTsgdXNlIGNvbnRleHQgdHlwZXMgJiBjYXN0cyBpbiBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgZ2VuZXJpYyB0eXBlcwogICByZWNhc3QgaW5zaWRlIG1ldGhvZAogICAKMjAwMi0wMS0yNCAwNjowMyAgamJwbgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjMpLCByZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDA0OjM0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGRvbid0IGF1dG9tYXRpY2FsbHkgYWNjZXB0IGEgbXNnVXNlck5hbWUgb2YgIiIgd2hlbiBwcm9jZXNzaW5nCiAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4KICAgCjIwMDItMDEtMjQgMDQ6MzAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJpZ2dlciBidWZmZXIgZm9yIG1zZ0F1dGhvcml0YXRpdmVFbmdpbmVJRCBmaWVsZCBzaW5jZSBpdCBpcyBub3QKICAgICAgIGxpbWl0ZWQgdG8gMzIgYnl0ZXMgbGlrZSBTbm1wRW5naW5lVEMuICBSZWFsbHkgdGhpcyBuZWVkcyB0byBiZQogICAgICAgYWxsb2NhdGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGUgYnV0IGZvciBub3cgd2UnbGwganVzdCBtYWtlIGl0CiAgICAgICB0d2ljZSBhcyBiaWcuCiAgIAoyMDAyLTAxLTI0IDAzOjE5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQUlYIHN1cHBvcnQgZm9yIHRoZSBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNlY01vZGVsIG9mIDAgaXMgYSBwYXJzZSBlcnJvciBpbiBIZWFkZXJEYXRhCiAgIAoyMDAyLTAxLTIzIDA3OjIzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiZSBjYXJlZnVsIHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZiBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlcyBpbgogICAgICAgc25tcHYzX3BhcnNlIC0tIGZpeGVzIG1lbW9yeSBsZWFrcyB3aGVuIG1hbGZvcm1lZCBQRFVzIGFyZQogICAgICAgcmVjZWl2ZWQuCiAgIAoyMDAyLTAxLTIyIDE5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBjaGcgYXBpIGZvciBzbm1wX29pZF9uY29tcGFyZSwgZG9uJ3QgaW1wbGVtZW50IGl0IHZpIHNubXBfb2lkX2NvbXBhcmUKICAgCjIwMDItMDEtMjIgMTk6NDYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9hcnJheS5oOgoKICAgYWRkIEdldF9vaWRfZGF0YV9jb3VudCgpOyBhZGQgc3Vic2V0IHN1cHBvcnQKICAgCjIwMDItMDEtMjIgMTk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgYWRkIG5ldHNubXBfc3RyMm9pZCgpCiAgIAoyMDAyLTAxLTIyIDE5OjQxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbgogICAKMjAwMi0wMS0yMiAxOTo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb247IGFkZCBwcmVsaW1pbmFyeSBsb2NraW5nIGNvZGU7IGFkZCB0YV9jaGVja19yb3dfc3RhdHVzCiAgIAoyMDAyLTAxLTIyIDA2OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbV92YXJzLmMKOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSBhIHBhcnNlIGVycm9yIGlmIHdlIHJlY2VpdmUgVXNtU2VjdXJpdHlQYXJhbWV0ZXJzIHdpdGggYQogICAgICAgbXNnVXNlck5hbWUgdGhhdCBpcyBpbGxlZ2FsbHkgbG9uZy4KICAgCjIwMDItMDEtMjIgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgICAtIG9vcHMsIGxlZnQgb2xkIGNvZGUgaW4gI2lmIDAgYnJhbmNoIEFHQUlOLiAgSSBhbSBnZXR0aW5nIGludG8gYmFkCiAgICAgICBoYWJpdHMhCiAgIAoyMDAyLTAxLTIyIDAzOjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWtzIGluIHJvdyBjcmVhdGlvbi9kZXN0cnVjdGlvbgogICAKICAgICAtIG1vcmUgYWdncmVzc2l2ZSB2YWxpZGl0eSBjaGVja2luZyBvZiBzbm1wTm90aWZ5VGFnLCBzbm1wTm90aWZ5VHlwZQogICAgICAgYW5kIHNubXBOb3RpZnlTdG9yYWdlVHlwZS4KICAgCiAgICAgLSBwYXNzZXMgNi41LjEuMCAtLSA2LjUuOC4zCiAgIAoyMDAyLTAxLTIyIDAxOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRQYXJhbXNUYWJsZQogICAKMjAwMi0wMS0yMSAyMzo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIHRpZHkgdGhpbmdzIHVwIGEgYml0IChoYWQgbGVmdCBzb21lIG9sZCBjb2RlIHNpdHRpbmcgaWYgI2lmIDAKICAgICAgIGJyYW5jaCkuCiAgIAogICAgIC0gcmVtZW1iZXIgdG8gY2xvc2UgKHRhcmdldC0+c2Vzcykgd2hlbiB3ZSBtb3ZlIGEgdGFyZ2V0IHRvCiAgICAgICBub3RJblNlcnZpY2UoMikuCiAgIAoyMDAyLTAxLTIxIDExOjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldEFkZHJUYWJsZQogICAKMjAwMi0wMS0yMSAwNjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgICAgLSBpbXBsZW1lbnQgc25tcFRhcmdldFNwaW5Mb2NrIG9iamVjdAogICAKMjAwMi0wMS0xOCAwOToxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlLiAgUGFzc2VzIGFsbCB0aGUKICAgICAgIHJlbGV2YW50IFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA4OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiB2YWNtLmMsIHZhY20uaDoKCiAgICAgLSBhZGQgYSBzd2l0Y2ggdG8gdmFjbV9nZXRWaWV3RW50cnkoKSB0byBhbGxvdyB0aGUgbWFzayBlbnRyaWVzCiAgICAgICB0byBiZSBpZ25vcmUgKHdoaWNoIGlzIHdoYXQgeW91IHdhbnQgd2hlbiB5b3UgYXJlIGp1c3QgdXNpbmcgdGhpcwogICAgICAgZnVuY3Rpb24gdG8gbG9vayB1cCBhbiBlbnRyeSBpbiB0aGUgdGFibGUgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBuZXcKICAgICAgIHZhbHVlIHRvIG9uZSBvZiB0aGUgY29sdW1uYXIgb2JqZWN0cykuCiAgIAoyMDAyLTAxLTE4IDA2OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbUFjY2Vzc1RhYmxlLiAgUGFzc2VzIGFsbCB0aGUgcmVsZXZhbnQKICAgICAgIFNpbHZlcmNyZWVrIFZBQ00gdGV0c3QuCiAgIAoyMDAyLTAxLTE4IDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlIChpLmUuIGRvbid0CiAgICAgICBqdXN0IGRvIGV2ZXJ5dGhpbmcgaW4gdGhlIENPTU1JVCBwaGFzZSkuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDQ6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBlcnJvciBzdGF0dXMgYWZ0ZXIgQ09NTUlUIG9yIFVORE8KICAgICAgIHBoYXNlcyB3aXRoIGNvbW1pdEZhaWxlZCBvciB1bmRvRmFpbGVkIChidXQgZG8gdHJhbnNsYXRlIGVycm9yCiAgICAgICByZXR1cm5zIGZyb20gdGhvc2UgcGhhc2VzIGludG8gdGhvc2UgZXJyb3JzIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhbgogICAgICAgZXhpc3RpbmcgZXJyb3Igc3RhdHVzKS4KICAgCjIwMDItMDEtMTcgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhbmRsZSBpbGxlZ2FsIHZhbHVlcyBvZiBtc2dJRCBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZSBwYWNrZXQKICAgICAgIGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNyAwNjozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ01heFNpemUgY29ycmVjdGx5IChieSBkcm9wcGluZyB0aGUKICAgICAgIHBhY2tldCBhbmQgaW5jcmVtZW50aW5nIHNubXBJbkFTTlBhcnNlRXJycykKICAgCjIwMDItMDEtMTUgMDg6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICB0b3AgbGV2ZWwgaW5jbHVkZSB3aGljaCBpbmNsdWRlcyB1c2VmdWwgc25tcGxpYiBoZWFkZXJzCiAgIAoyMDAyLTAxLTE1IDA4OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS91Y2Qtc25tcC86IGFnZW50X2luZGV4LmgsIGFnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudF9yZWdpc3RyeS5oLCBhZ2VudF90cmFwLmgsIGFzbjEuaCwKICAgYXV0b19ubGlzdC5oLCBjYWxsYmFjay5oLCBkZWZhdWx0X3N0b3JlLmgsCiAgIGRzX2FnZW50LmgsIGhlYWRlcl9jb21wbGV4LmgsIGludDY0LmgsIGtleXRvb2xzLmgKLCBtaWIuaCwgbWliX21vZHVsZV9jb25maWcuaCwgbWliaW5jbC5oLAogICBwYXJzZS5oLCByZWFkX2NvbmZpZy5oLCBzY2FwaS5oLCBzbm1wLXRjLmgsCiAgIHNubXAuaCwgc25tcF9hZ2VudC5oLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmgKLCBzbm1wX2NsaWVudC5oLCBzbm1wX2RlYnVnLmgsIHNubXBfaW1wbC5oLAogICBzbm1wX2xvZ2dpbmcuaCwgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBfdmFycy5oLAogICBzbm1wdXNtLmgsIHNubXB2My5oLCBzdHJ1Y3QuaCwgc3lzdGVtLmgsCiAgIHRvb2xzLmgsIHRyYW5zZm9ybV9vaWRzLmgsIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgKLCB1Y2Qtc25tcC1jb25maWcuaCwgdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgdXRpbF9mdW5jcy5oLCB2YXJfc3RydWN0LmgsIHZlcnNpb24uaDoKCiAgIGNyZWF0ZSA0LnggaGVhZGVycyB0aGF0IGFyZSB3cmFwcGVycyBwb2ludGluZyB0byBuZXcgaGVhZGVycwogICAKMjAwMi0wMS0xNCAxNTowOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIGFkZCBVc2VyUm93QWN0aW9uIGFuZCB2b2lkIHBvaW50ZXIKICAgCjIwMDItMDEtMTQgMTM6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsIE1ha2VmaWxlLmluOgoKICAgLT4gbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAKMjAwMi0wMS0xNCAxMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlZAogICAKMjAwMi0wMS0xNCAxMzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGNvcHkgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCBhbmQgdXBkYXRlIHRvIG5ldC1zbm1wIHVzZSBuZXcgYWdlbnQgZGlyCiAgIAoyMDAyLTAxLTE0IDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9pbmRleC5oLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIG1vdmVkIHRoZSAvYWdlbnQgaW5zdGFsbGVkIGhlYWRlcnMgdG8gLi4vaW5jbHVkZS9uZXQtc25tcC9hZ2VudAogICAKMjAwMi0wMS0xMyAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgYSBjb3VwbGUgbW9yZSBpbnN0YWxsIGhlYWRlcnMuCiAgIAoyMDAyLTAxLTExIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIG5vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIE1vdmUgYWxsIGFnZW50L2hlbHBlcnMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvIGFuZCBjaGFuZ2UKICAgcmVmZXJlbmNlcy4KICAgCjIwMDItMDEtMTEgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmgsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5oLAogICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmgKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaAosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmgsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSBBZGQgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgdG8gaW5jbHVkZSBwYXRoLgogICAtIFJlbmFtZSAzIGFnZW50IGxpYnJhcmllcyBmcm9tIGxpYnVjZCogLT4gbGlibmV0c25tcCoKICAgCjIwMDItMDEtMTEgMDc6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZG9uJ3QgdXNlIHdoaWxlKHgtLSA+PSAwKSBsb29wcyBmb3IgbmV3IHVuc2lnbmVkIGluZGV4IGNvbXBvbmVudHMKICAgCjIwMDItMDEtMTEgMDU6MjcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYmUgY2FyZWZ1bCBhYm91dCBzaWduZWRlc3Mgb2YgaW5kZXggY29tcG9uZW50cyBpbiB0YWJsZXMKICAgCjIwMDItMDEtMTAgMTM6MTIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENyZWF0ZSB0aGUgaW5jbHVkZSBkaXJlY3Rvcnkgd2hlbiBidWlsZGluZyBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDEtMTAgMDg6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBsb25nIGxvb3AgdmFyaWFibGUgaW4gdmFyX3N5c09SVGFibGUoKSB0byBhdm9pZAogICAgICAgaW5jb3JyZWN0IGxleGktb3JkZXJpbmcgd2hlbiBkb2luZyByZXF1ZXN0cyBsaWtlIEdFVE5FWFQKICAgICAgIHN5c09SRGVzY3IuNDI5NDk2NzI5NS4KICAgCiAgICAgLSBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGNoYW5nZXMKICAgCjIwMDItMDEtMTAgMDc6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBtaW5vciBtZW1vcnkgbGVhayBpbiByZWFzc2lnbl9yZXF1ZXN0cygpCiAgIAoyMDAyLTAxLTEwIDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzZXQgdHlwZSBmb3IgdW5oYW5kbGVkIEdFVCByZXF1ZXN0cyBpbiBoYW5kbGVfcGR1KCkgdG8gYmUKICAgICAgIG5vU3VjaEluc3RhbmNlIHJhdGhlciB0aGFuIG5vU3VjaE9iamVjdCAobm9TdWNoT2JqZWN0IGV4Y2VwdGlvbnMKICAgICAgIGFyZSBkZXRlY3RlZCBhbmQgZXhwbGljaXRseSBzZXQgZWFybGllcikuCiAgIAoyMDAyLTAxLTEwIDA1OjUyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGNvcnJlY3QgdHlwbyB0aGF0IG1lYW50IGVycm9yIHJldHVybnMgZnJvbSBvbGQtYXBpIHdyaXRlIG1ldGhvZHMKICAgICAgIHdlcmUgaWdub3JlZC4KICAgCjIwMDItMDEtMTAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIGNoYW5nZSB2YWx1ZSBvZiBTVEFUX1RBUkdFVF9TVEFUU19FTkQgc28gdGhhdCBtaWJJSS9zbm1wX21pYi5jIGNhbgogICAgICAgcmV0dXJuIHZhbHVlcyBvZiBtYW5kYXRvcnkgb2JqZWN0cyBzbm1wU2lsZW50RHJvcHMgYW5kCiAgICAgICBzbm1wUHJveHlEcm9wcy4KICAgCjIwMDItMDEtMDkgMDg6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdW5rbm93bi9pbGxlZ2FsIHZhcmJpbmQgdHlwZXMgaW4gdjEvdjJjIFBEVXMgY2F1c2UKICAgICAgIHNubXBJbkFTTlBhcnNlRXJycyB0byBiZSBpbmNyZW1lbnRlZC4KICAgCjIwMDItMDEtMDkgMDc6NTUgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA5IDA3OjMyICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgICAgLSBicmluZyBhcHAtc3BlY2lmaWMgb3B0aW9ucyBpbiBsaW5lIHdpdGggc25tcGJ1bGt3YWxrICgtQyByYXRoZXIKICAgICAgIHRoYW4gLUIpCiAgIAoyMDAyLTAxLTA5IDA3OjMxICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gZm9ybWF0dGluZyBjaGFuZ2UgdG8gdXNhZ2UgbWVzc2FnZQogICAKMjAwMi0wMS0wOSAwNjozNSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCiAgIAoyMDAyLTAxLTA4IDA4OjU1ICBqYnBuCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICAgIC0gYWRkIG9wdGlvbnMgZnJvbSBzbm1wd2FsawogICAKICAgICAtIGFsbG93IG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMgdG8gYmUgc2V0CiAgIAogICAgIC0gY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2YgbWF4LXJlcGVhdGVycyB0byBhIGxvd2VyIHZhbHVlIHRvIGF2b2lkCiAgICAgICB0aW1lb3V0cyB3aXRoIHNsb3dlciBhZ2VudHMKICAgCjIwMDItMDEtMDggMDg6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHRyeSB0byBtYWxsb2MoKSBhIHplcm8tbGVuZ3RoIGJ1ZmZlciwgaW4gY2FzZSBzb21lIG1hbGxvYygpcwogICAgICAgY29tcGxhaW4uCiAgIAoyMDAyLTAxLTA4IDA4OjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBob3BlZnVsbHkgZmluYWwgR0VUQlVMSyBmaXggLS0gcGFzc2VzIGFsbCBTaWx2ZXJDcmVlaydzIEdFVEJVTEsKICAgICAgIHRlc3RzIChpbmNsLiBuZWdhdGl2ZSBub24tcmVwZWF0ZXJzIGFuZCBtYXgtcmVwZWF0ZXJzKQogICAKMjAwMi0wMS0wOCAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgICAtIEdFVEJVTEsgZml4IHRvIGlnbm9yZSB2YXJiaW5kcyBmb3Igd2hpY2ggemVybyByZXBldGl0aW9ucyBhcmUKICAgICAgIGNhbGxlZCBmb3IKICAgCiAgICAgLSBkcm9wIGFzcC0+c3RhcnQgYW5kIGFzcC0+ZW5kIHdoaWNoIGFyZSBoYXJkbHkgdXNlZCBhbmQgd2hpY2ggZ2V0CiAgICAgICBpbiB0aGUgd2F5IG9mIHRoaXMgdHlwZSBvZiBwcm9jZXNzaW5nCiAgIAogICAgIC0gaWdub3JlIG5lZ2F0aXZlIHJlcGV0aXRpb25zIGluIGJ1bGtfdG9fbmV4dCBoYW5kbGVyCiAgIAoyMDAyLTAxLTA3IDA4OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTAxLTA3IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvSU5TVEFMTDoKCiAgIFBOR0dyYXBoIC0+IEdEOjpHcmFwaAogICAKMjAwMi0wMS0wNCAxMzo0OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTAxLTA0IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2FjY29uZmlnLmg6CgogICBtb3ZlIGFjY29uZmlnLmggYmFjayB0byB0aGUgdG9wIGRpciB3aGVyZSBpdHMgYXBwYXJlbnRseSBzdXBwb3NlZCB0byBsaXZlLgogICAKMjAwMi0wMS0wNCAxMzoxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtb3JlIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHRyYW5zbGF0aW9ucy4gIHdhcm5pbmc6IGluY2x1ZGVzIHRoZSBkZWZhdWx0IHBlcnNpc3RlbnQgc3RvcmUuCiAgIAoyMDAyLTAxLTA0IDEzOjA0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlLzogbmV0LXNubXAvLmN2c2lnbm9yZSwgdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMS0wNCAxMzowMiAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBidWlsdCBuZXQtc25tcC1jb25maWcKICAgCjIwMDItMDEtMDQgMTM6MDAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLAogICBub3RpZmljYXRpb25fbG9nLmMsIHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jCiwgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwosIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS91Y2Qtc25tcC9SRUFETUUsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2VudW0uYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcGtzbS5jLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgc25tcGxpYi9zdHJ0b3VsLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHNubXBsaWIvdmFjbS5jLCB0ZXN0aW5nL1QuYywKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsCiAgIHRlc3RpbmcvbWlzY3Rlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYwosIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgcmVtb3ZlZCB1bmVlZGVkIG9sZGVyIGZpbGVzCiAgIAoyMDAyLTAxLTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoICM0OTIwNzIgdG8gbWFpbiBicmFuY2gKICAgCjIwMDItMDEtMDMgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGNoZWNrIHJlc3VsdHMgb2Ygc2V0bW50ZW50IGJlZm9yZSB1c2luZyB0aGVtLgogICAKMjAwMi0wMS0wMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAyLTAxLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtOgoKICAgUE5HR3JhcGggLT4gR0RHcmFwaAogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoYW5nZSBleHBvcnQgbmFtZSB0byAibmV0LXNubXAiIGZyb20gInVjZC1zbm1wIgogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIG1ha2UgdXNlIG9mIHRoZSBuZXcgbXVsdGktYWRkIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTE6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9kYXRhc2V0LmMsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGFkZCBtdWx0aXBsZSBkZWZhdWx0IHJvdyBjb2x1bW4gZGVmaW5pdGlvbnMgdXNpbmcgb25lIGZ1bmN0aW9uIGNhbGwgKHZhcmFyZ3MpLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlLmg6CgogICBhZGQgbXVsdGlwbGUgaW5kZXhlcyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zIChnZXRTdGF0UHRyIG5vIGxlc3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIG9pZF9zdGFzaC5jLCBvaWRfc3Rhc2guaAo6CgogICBkYXRhIHN0YXNoaW5nIGJhc2VkIG9uIGFuIG9pZCBjYWNoaW5nIHRyZWUuCiAgIAoyMDAxLTEyLTI2IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMLCBNYWtlZmlsZS5QTCwgbWFuYWdlci5wbQo6CgogICB1cGRhdGUgdG8gbWFrZSBpdCBhIGJpdCBlYXNpZXIgdG8gaW5zdGFsbCAoaW5jbHVkaW5nIGEgTWFrZWZpbGUgZm9yCiAgIGF1dG9tYXRlZCBpbnN0YWxsYXRpb24pLgogICAKMjAwMS0xMi0yNiAxMzoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCwgZGlzcGxheXRhYmxlLnBtLCBnZXRWYWx1ZXMucG0KLCBncmVlbi5naWYsIG1hbmFnZXIucG0sIHJlZC5naWYsIHNldHVwYXV0aAosIHNldHVwZGIsIHNldHVwdXNlciwgc25tcHRvc3FsOgoKICAgbW92aW5nIG1hbmFnZXIgdG8gcGVybC9tYW5hZ2VyCiAgIAoyMDAxLTEyLTI0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUxICkKICAgCjIwMDEtMTItMjQgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLCBtaWIyYy5jb25mOgoKICAgVXBkYXRlIHRvIG1ha2UgcGVvcGxlIHVuZGVyc3RhbmQgdGhhdCBpdCdzIG5vdCBmaW5pc2hlZCBhbmQgeW91IG11c3QKICAgcmVmZXJlbmNlIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGZpbGUgYXQgdGhpcyBwb2ludC4KICAgCjIwMDEtMTItMjQgMTU6NTEgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLm5vdC5ldmVuLmNsb3NlICkKICAgCjIwMDEtMTItMjQgMTU6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1vcmUgY29tbWVudHMuCiAgIAoyMDAxLTEyLTI0IDE1OjQxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICA1LjAgY29tbWVudCB1cGRhdGVzLgogICAKMjAwMS0xMi0yNCAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZG94eWdlbiBjb21tZW50cyBvbiBhIGZldyBmdW5jdGlvbnMuCiAgIAoyMDAxLTEyLTI0IDE1OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTEyLTI0IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgZm9yIG5vbi1leGlzdGVudCBtb2R1bGVzCiAgIAoyMDAxLTEyLTIzIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWc6CgogICBvcHBzLiAgRG9uJ3QgY2hlY2sgaW4gZ2VuZXJhdGVkIGZpbGVzLgogICAKMjAwMS0xMi0yMyAxNTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgZml4IHJwbSB1c2FnZSAoSSBob3BlKS4KICAgCjIwMDEtMTItMjMgMTQ6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50Ly5jdnNpZ25vcmU6CgogICBhZGRlZCAuY3ZzaWdub3JlIGZpbGUKICAgCjIwMDEtMTItMjMgMTQ6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBuZXQtc25tcC1jb25maWcuCiAgIAoyMDAxLTEyLTIzIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbmV0LXNubXAtY29uZmlnLCBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gY3JlYXRlZCBhIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgdG8gcmVwb3J0IGNvbXBpbGVkIGxpYnMuCiAgIC0gc2VwYXJhdGVkIGxpYnMgbmVlZGVkIGJ5IGFnZW50IGZyb20gdGhvc2UgbmVlZGVkIGJ5IHRoZSByZXN0IG9mIHRoZQogICAgIGFwcGxpY2F0aW9ucy4KICAgCjIwMDEtMTItMjEgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGhvdyB0byBpbnN0YWxsIERCSQogICAKMjAwMS0xMi0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICByZW1vdmUgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgQW55RGF0YQogICAKMjAwMS0xMi0yMSAxNjozNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1ha2UgaW5zdGFsbCBhcyByb290LgogICAKMjAwMS0xMi0yMSAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMLCBJTlNUQUxMLCBJTlNUQUxMLAogICBJTlNUQUxMOgoKICAgYmV0dGVyIGRlc2NyCiAgIAoyMDAxLTEyLTIxIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjIwMDEtMTItMjEgMTY6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGl0J3MgdmVyeSBhbHBoYSBjb2RlLgogICAKMjAwMS0xMi0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG5ldyBpbnN0cnVjdGlvbnMKICAgCjIwMDEtMTItMjEgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGRveHlnZW4uCiAgIAoyMDAxLTEyLTIxIDEwOjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgY29tcGlsZSBpbiBhZ2VudCBzcGVjaWZpYyBzdXBwb3J0IG1pYnMuCiAgIAoyMDAxLTEyLTIxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKHN0aWxsIGluY29tcGxldGUpIDJuZCB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0yMSAwOTo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIChpbmNvbXBsZXRlKSB1cGRhdGUgZm9yIDUuMAogICAKMjAwMS0xMi0xOSAxNzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggcmVhbGxvYyBmbG9hdCBhbmQgZG91YmxlIGJ1aWxkcy4KICAgCjIwMDEtMTItMTkgMTY6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1pc2MgZml4ZXMuCiAgIAoyMDAxLTEyLTE5IDE2OjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRlZmluZSBhIEMgZGF0YXR5cGUgYXMgJHZhci5kZWNsIChwZXIgUm9iZXJ0J3Mgc3VnZ2VzdGlvbi4gIFJvYmVydDogd2UKICAgcHJvYmFibHkgd2FudCBwb2ludGVycyBmb3IgdGhpbmdzIGxpa2Ugc3RyaW5ncywgbm8/ICBtYXliZSBvbmUgdHlwZQogICB0aGF0IGlzIGFsd2F5cyBhIHBvaW50ZXIgYW5kIGFub3RoZXIgdGhhdCBpcyBzb21ldGltZXMgZGVwZW5kaW5nIG9uCiAgIHRoZSB0eXBlPykKICAgCjIwMDEtMTItMTkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGJ1bGt3YWxrLmM6CgogICBjaGFuZ2UgZGVmYXVsdCBidWxrIG51bWJlciB0byAxMDAgZnJvbSB0aGUgcmlkaWN1bG91cyAxMDAwLgogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDEtMTItMTkgMDg6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgZ2V0YnVsayB1cGRhdGVzIHRvIG1ha2UgaXQgdGhlIG1vZHVsZXMgcmVzcG9uc2liaWxpdHkgdG8gdXBkYXRlIHRoZQogICB2YXJiaW5kIGNoYWluIGFuIHRoZSByZXBlYXQgY291bnRlci4KICAgCjIwMDEtMTItMTkgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAosIGhlbHBlcnMvTWFrZWZpbGUuaW4sIGhlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgaGVscGVycy9hbGxfaGVscGVycy5oLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5oOgoKICAgR0VUQlVMSyBzdXBwb3J0IGZvciB0aGUgbmV3IEFQSS4KICAgICAtIG1heSBuZWVkIHRvIG1ha2Ugc29tZSBzbGlnaHQgbW9kaWZpY2F0aW9ucy4KICAgICAtIGRlZmF1bHRzIHRvIEdFVE5FWFQgZm9yIGFueSBoYW5kbGVyIHRoYXQgZG9lc24ndCBzZXQgSEFORExFUl9DQU5fR0VUQlVMSy4KICAgICAtIGRvZXNuJ3QgZGVhbCBwcm9wZXJseSB5ZXQgd2l0aCBlbmQtb2YtbWliIGNvbmRpdGlvbiByZW1vdmFsLgogICAKMjAwMS0xMi0xOSAwNjowNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgLXAgb3B0aW9uLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcyBvcHRpb25hbAogICAgICAgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSBkcm9wIChsb25nLWRlcHJlY2F0ZWQpIC1xIG9wdGlvbi4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIGFuZAogICAgICAgY2hhbmdlZCBkZXNjcmlwdGlvbiBvZiBzb21lIG9wdGlvbnMgdG8gYmUgbW9yZSBzaW1pbGFyIHRvIHNubXBkCiAgICAgICBvcHRpb25zICh3aGVyZSBhcHByb3ByaWF0ZSkuCiAgIAoyMDAxLTEyLTE5IDA0OjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucy4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMKICAgICAgIG9wdGlvbmFsIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBwbHVzCiAgICAgICBtaW5vciBmb3JtYXR0aW5nIHR3ZWFrcy4KICAgCiAgICAgLSByZS13cml0dGVuIG9wdGlvbnMgcHJvY2Vzc2luZyBsb29wIHRvIHVzZSBvcHRhcmcoKS4KICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy41KSwgVUNELVNOTVAtTUlCLnR4dAo6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICB3YXJuaW5nIC0+IGRlYnVnLgogICAKMjAwMS0xMi0xNyAxMDoxNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIGdldE5leHQgcXVlcmllcyB3aGVyZSB0aGUgaW5pdGlhbCB2YXJiaW5kLT50eXBlIGlzCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFICh0aGVzZSBjdXJyZW50bHkgYXJpc2Ugb25seSBpbiBBZ2VudFgKICAgICAgIHN1YmFnZW50cyBidXQgdGhlIGhhbmRsaW5nIGlzIG5vdCBzcGVjaWZpYyB0byBBZ2VudFgpLgogICAKICAgICAgIEJhc2ljYWxseSB0aGlzIGlzIGRvbmUgYnkgcGVyZm9ybWluZyBhIEdFVCBmaXJzdCBvbiBhbGwgdGhlCiAgICAgICB2YXJpYWJsZXMgaW4gYSByZXF1ZXN0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGhhZCBhbiBpbml0aWFsIHR5cGUgb2YKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIHdlcmUgc2F0aXNmaWVkIGJ5IHRoaXMgaW5pdGlhbCBHRVQsIHdlIHVzZQogICAgICAgdGhpcyB2YWx1ZSBhcyB0aGUgcmVzdWx0LiAgRm9yIHZhcmlhYmxlcyB0aGF0IGRpZCBub3QgaGF2ZSBhbgogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UsIG9yIHZhcmlhYmxlIHRoYXQgaGFkIGFuZAogICAgICAgaW5pdGlhbCB0eXBlIG9mIEFTTl9QUklWX0lOQ0xfUkFOR0UgYnV0IHdlcmUgbm90IHNhdGlzZmllZCBieSB0aGlzCiAgICAgICBHRVQgcmVxdWVzdCwgd2UgcHJvY2VlZCB0byBwZXJmb3JtIGEgR0VULU5FWFQgdHlwZSByZXF1ZXN0IGFzCiAgICAgICBub3JtYWwuCiAgIAoyMDAxLTEyLTE3IDEwOjA0ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgICAtIGFkZCBmdW5jdGlvbiByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2ggZW11bGF0ZXMgb2xkCiAgICAgICBmdW5jdGlvbmFsaXR5LgogICAKICAgICAtIHVzZSBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2ZyZWUoKSBpbiByZWdpc3Rlcl9vbGRfYXBpKCkuCiAgIAoyMDAxLTEyLTE3IDA5OjM5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gZml4IGJvZ3VzIGluZGVudAogICAKMjAwMS0xMi0xNyAwOTozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcmlnaHQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVnaXN0ZXJfbWliX2NvbnRleHQyKCkgaW4KICAgICAgIHJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIGRpdHRvLgogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIGhhbmRsZXIgaW5qZWN0aW9uIG9yZGVyIChzZXJpYWxpemUgbmVlZHMgdG8gYmUgY2FsbGVkIGZpcnN0KQogICAKMjAwMS0xMi0xMyAxOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNoZWNrIGZvciBhbHJlYWR5IGFuc3dlcmVkIEFTTl9OVUxMcyBpbiBmaXJzdCBwYXNzLgogICAKMjAwMS0xMi0xMiAwOTozMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiAuY3ZzaWdub3JlLCBJTlNUQUxMLCBNQU5JRkVTVAosIFJFQURNRSwgc25tcHNoOgoKICAgLSBkb2MgdXBkYXRlLgogICAtIHNubXBzaCBub3cgc3VwcG9ydHMgYWxpYXNlcyBzbyB5b3UgY2FuIGRlZmluZSBjb21tYW5kIHNldHMuCiAgIC0gc25tcHNoIG5vdyByZWFkcyBhIH4vLnNubXBzaHJjIGZpbGUgZm9yIHN0b3JpbmcgdGhlc2UgZGVmaW5lZCBhbGlhc2VzLgogICAKMjAwMS0xMi0xMiAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIG5ldyBmdW5jdGlvbiBqb2luX3N1YnRyZWUoKSB3aGljaCByZXBhaXJzICJwdW5jdHVyZWQiIHN1YnRyZWVzCiAgICAgICAodGhlc2UgYXJpc2UgaW4gcGFydGljdWxhciB3aGVuIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucyBhcmUKICAgICAgIHdpdGhkcmF3bikuCiAgIAogICAgIC0gY29weSByZWdpbmZvIHdoZW4gZG9pbmcgYSByYW5nZSByZWdpc3RyYXRpb24gKGFzIHdlIHVzZWQgdG8gZG8KICAgICAgIHdpdGggdGhlIHZhcmlhYmxlIHN0cnVjdHVyZSksIHNpbmNlIGVhY2ggbm9kZSBtdXN0IHN0YW5kIGFsb25lLgogICAKICAgICAtIGFkZCBwYXJhbWV0ZXIgdG8gcmVnaXN0ZXJfbWliX2NvbnRleHQyIHRvIGFsbG93IFJFR0lTVEVSX09JRAogICAgICAgY2FsbGJhY2tzIHRvIGJlIHdpdGhoZWxkIChmb3IgaW5zdGFuY2UsIHlvdSBuZWVkIHRoaXMgdG8gYXZvaWQKICAgICAgIGV4Y2VzcyBBZ2VudFggdHJhZmZpYyBmb3Igcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHJlbW92ZSByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgLS0gdGhpcyBoYXMgbW92ZWQgdG8gb2xkX2FwaS5jCiAgIAogICAgIC0gY2FsbCBqb2luX3N1YnRyZWUoKSBpbiB1bnJlZ2lzdGVyX21pYnNfYnlfc2Vzc2lvbigpLgogICAKMjAwMS0xMi0xMiAwNjozMyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaGFuZGxlci5oOgoKICAgICAtIGFkZCBmdW5jdGlvbnMgc25tcF9oYW5kbGVyX2ZyZWUoKSwgc25tcF9oYW5kbGVyX2R1cCgpLAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9kdXAoKSBhbmQKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpLgogICAKMjAwMS0xMi0xMSAxODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggYnVnIHdoZXJlIHBkdS0+Y29udGV4dE5hbWUgaXMgTlVMTC4KICAgCjIwMDEtMTItMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQklUUzogaXBhZGRyIC0+IG9jdGV0X3N0cgogICAKMjAwMS0xMi0xMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc2VuZCBJTkNMVVNJVkUgc2VhcmNoIHJhbmdlcyBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0xMCAyMDo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIG5vYWNjZXNzIGZsYWcgZm9yIG5vdC1hY2Nlc3NpYmxlIG5vZGVzCiAgIAoyMDAxLTEyLTEwIDE0OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IENoYW5nZXMsIERCRF9BbnlEYXRhLnBhdGNoLAogICBGb3JtYXQucG0sIElOU1RBTEwsIE1BTklGRVNULCBNYWtlZmlsZS5QTCwKICAgU3RvcmFnZS5wbSwgc25tcHNoOgoKICAgRmlyc3QgdmVyc2lvbgogICAKMjAwMS0xMi0xMCAwMzoyMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCBhcmcgdG8gZHNfc2V0X3N0cmluZwogICAKMjAwMS0xMi0xMCAwMzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZGl0dG8gaW4gc2V0X3BlcnNpc3RlbnRfZGlyZWN0b3J5KCkKICAgCjIwMDEtMTItMTAgMDM6MTggIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGluIHNldF9jb25maWd1cmF0aW9uX2RpcmVjdG9yeSgpIGJlY2F1c2UKICAgICAgIGRzX3NldF9zdHJpbmcoKSBhbHJlYWR5IGRvZXMgdGhhdCBmb3IgeW91LgogICAKMjAwMS0xMi0wNyAwOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuaAosIG1pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIC0gSW1wbGVtZW50IG5ldyBtYW50cmE6ICJhbHdheXMgcGFzcyBtb3JlIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiBsZXNzIi4KICAgLSBmaXggdGFibGUgaXRlcmF0ZXIgR0VUTkVYVHMgZm9yIG1pc3NpbmcgZGF0YSBwb2ludHMuCiAgIC0gYWRkIGEgbmV3IGhvb2sgdG8gZnJlZSBsb29wIGNvbnRleHRzIGF0IHRoZSBlbmQgb2YgdGhlIGVudGlyZSBpdGVyYXRpb24uCiAgIAoyMDAxLTEyLTA2IDA2OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jIChKQlBOLUNCTC00LjEpLCBjbGllbnQuYzoKCiAgICAgLSBpZiByZXF1ZXN0IElEcyBkb24ndCBtYXRjaCwgdGhlbiBjYWxsIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkgLS0KICAgICAgIGNvcGVzIGJldHRlciB3aXRoIHVuZXhwZWN0ZWQgcGFja2V0cywgaW4gcGFydGljdWxhciBmaXhlcwogICAgICAgaW50ZXJtaXR0ZW50IGR1cGxpY2F0ZSB0cmFwIGlzc3VlIChkdWUgdG8gcmVzZW50CiAgIGFnZW50eC1Ob3RpZnktUERVKS4KICAgCjIwMDEtMTItMDUgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQWhlbS4gIE9wcHMuICBNaXNzaW5nIGluY2x1ZGVzLgogICAgIC0gbm90ZSB0byBzZWxmOiBjb21waWxlIGZpcnN0LCAqdGhlbiogY2hlY2sgaW4gY2hhbmdlcy4KICAgCjIwMDEtMTItMDUgMTM6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgYWRkIGluIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBORVctQUdFTlQtQVBJIGJyYW5jaC4KICAgICAoYW5kIHRvIGFuc3dlciBSb2JlcnQncyBwZW5kaW5nIHF1ZXN0aW9uIG9mIHdoYXQgaGFwcGVuZWQsIGl0IHdhcwogICAgICBsaWtlbHkgb25lIG9mIHRoZSBmaWxlcyB0aGF0IGZhaWxlZCB0byBjb21taXQgb24gbXkgc2lkZSB0aGF0IHlvdQogICAgICB0cmllZCB0byBmaXggYW5kIHNvbWV3aGVyZSBiZXR3ZWVuIHRoZSB0d28gb2YgdXMgdGhlIGNoYW5nZXMgd2VyZSBsb3N0KS4KICAgCjIwMDEtMTItMDUgMTA6MDMgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBtaW5vciB0d2Vha3MKICAgCjIwMDEtMTItMDUgMDk6MTQgIGpicG4KCiAgICogbWFuL3NubXBjbWQuMToKCiAgICAgLSBhZGQgVENQL0lQdjYgZG9tYWluIHRvIEFHRU5UIFNQRUMgc2VjdGlvbgogICAKICAgICAtIGluY29ycG9yYXRlIHN1Z2dlc3Rpb25zIGZyb20gcnN0b3J5CiAgIAoyMDAxLTEyLTA1IDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgICAgLSB1c2UgU09DS19TVFJFQU0gbm90IFNPQ0tfREdSQU0gKGR1aCEpLiAgWW91IHdvdWxkbid0IGJlbGlldmUgaG93CiAgICAgICBjb25mdXNpbmcgdGhpcyB3YXMgLS0gZS5nLiBob3cgb24gKmVhcnRoKiBjYW4gdGhhdCBjb25uZWN0KCkgYmUKICAgICAgIHN1Y2NlZWRpbmchCiAgIAoyMDAxLTEyLTA1IDA4OjM2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2Ugc3VyZSB0byBjbG9zZSBzb2NrZXQgaWYgeW91IGNhbid0IG1hbGxvYyB0aGUgZW5jb2RlZCBmYXItZW5kCiAgICAgICBhZGRyZXNzIGluIHNubXBfdGNwX3RyYW5zcG9ydCgpCiAgIAoyMDAxLTEyLTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA4OjIzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUkVBRE1FLAogICBSRUFETUUud2luMzIsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBsb2NhbC9taWIyYywgbG9jYWwvdGttaWIKLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBwZXJsL1NOTVAvU05NUC5wbSwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyL3dpbjMyLmRzdywKICAgd2luMzIvd2luMzIub3B0LCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwCiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCjoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA3OjUxICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBmaXggYnVnIGluIGFkZHJlc3MgcGFyc2VyCiAgIAoyMDAxLTEyLTA1IDA3OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1pbm9yIGNoYW5nZXMgdG8sIGFoZW0sIG1ha2UgaXQgY29tcGlsZQogICAKMjAwMS0xMi0wNSAwNzo0MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBjb25kaXRpb25hbGlzZSAjaW5jbHVkZSA8ZmNudGwuaD4KICAgCjIwMDEtMTItMDUgMDc6MzggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTEyLTA1IDA3OjI5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBtZW50aW9uIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgaW4gY29uZmlnLCBhbmQgYWRkIGEgI2RlZmluZSBmb3IgaXQKICAgICAgIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBjYWxsIHNubXBfdGNwNl9jdG9yKCkgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmg6CgogICAgIC0gVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIFVudGVzdGVkLgogICAKMjAwMS0xMi0wNSAwNzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWFrZSBlbmNvZGVkIGFkZHJlc3NlcyBhdCB0cmFuc3BvcnQgb3BlbiB0aW1lCiAgIAoyMDAxLTEyLTA1IDA3OjE3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gbW92ZSAjZGVmaW5pdGlvbiBvZiBTTk1QX1NUUkVBTV9RVUVVRV9MRU4gZnJvbSBzbm1wVENQRG9tYWluLmMKICAgICAgIHRvIHNubXBfdHJhbnNwb3J0LmgKICAgCjIwMDEtMTItMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucyBsaWtlLCBvaCwgSSBkb24ndCBrbm93LCBnZXRTdGF0UHRyKCkuCiAgIAoyMDAxLTEyLTA1IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0xMi0wNSAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gY2hhbmdlZCB0ZXh0dWFsIGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMi0wNCAyMjo1MiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeCBiaW5kIHBhcmFtZXRlcnMsIHNvIHRoYXQgdGhlIGFnZW50IHdvcmtzCiAgIAoyMDAxLTEyLTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgLSBtb3ZlIGZvcmdvdHRlbiBmdW5jdGlvbiB0eXBlZGVmcyB0byBpdGVyYXRvciBzcGVjaWZpYyBoZWFkZXIgZmlsZS4KICAgLSBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIGNhbGxiYWNrcyB0byBtYWtlIGZ1bmN0aW9ucyBtb3JlIHJldXNhYmxlLgogICAKMjAwMS0xMi0wNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIG1vdmUgaXRlcmF0b3Igc3BlY2lmaWMgdGFibGUgaW5mb3JtYXRpb24gaW50byBpdHMgb3duIHN0cnVjdHVyZS4KICAgCjIwMDEtMTItMDQgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIEZpeCBwcm90b3R5cGUgYXMgcG9pbnRlZCBvdXQgYnkgSmVyb21lIFBlZHVjYXNzZQogICAKMjAwMS0xMi0wNCAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1lbnRpb24gdGhhdCBub3QgYWxsIHRyYW5zcG9ydCBkb21haW5zIGFyZSBhbHdheXMgYXZhaWxhYmxlLgogICAKMjAwMS0xMi0wNCAwOTo1NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHJlbW92ZSAtcCBhbmQgLVQgb3B0aW9ucyBmcm9tIGRvY3VtZW50YXRpb24uCiAgIAogICAgIC0gYWRkIGxlbmd0aHkgbmV3IHNlY3Rpb24gZGVzY3JpYmluZyBuZXcgdHJhbnNwb3J0IGFkZHJlc3MKICAgICAgIHNwZWNpZmljYXRpb24gZm9ybWF0LCB3aXRoIGV4YW1wbGVzIGFuZCBldmVyeXRoaW5nIQogICAKMjAwMS0xMi0wNCAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMgZm9yIGFwcHMuCiAgIAoyMDAxLTEyLTA0IDAzOjEwICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIGFkZCBjcmVhdGVfb3N0cmluZyBtZXRob2QsIGV4cG9ydCB1Y2RTbm1wVURQSVB2NkRvbWFpbltdCiAgIAoyMDAxLTEyLTA0IDAyOjE5ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBtZW50aW9uIElQdjYgdHJhbnNwb3J0IGRvbWFpbiBPSURzIGluIHJlbGV2YW50IGNvbW1lbnQuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBRdWVsbCBhIGNvbnN0IGNhc3Qgd2FybmluZy4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZGVidWcgb3V0cHV0IGZyb20gcmV0cmllcy4KICAgCjIwMDEtMTItMDMgMTU6MDYgIG5iYQoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEhBVkVfU1lTX1RZUEVTX0ggaXMgbm90IGNvbmRpdGlvbmFsLgogICAKMjAwMS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYWxsb3cgY29tcGlsYXRpb25zIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeS4KICAgCjIwMDEtMTItMDMgMTU6MDMgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4ZXMgdG8gbWFrZSBVRFBJUHY2IHRyYW5zcG9ydCB3b3JrIGZvciBTb2xhcmlzLCBMaW51eCBhbmQgRnJlZUJTRC4KICAgSXQgY29tcGlsZXMsIGFuZCB0aGUgYXBwcyBzZW5kIHY2IHBhY2tldHMuIEFnZW50IG5vdCB5ZXQgdGVzdGVkLgogICAKMjAwMS0xMi0wMyAwOTo0OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYKOgoKICAgY29weSByb2JlcnRzIHNwaWZmeSBoZWFkZXIgdGV4dAogICAKMjAwMS0xMi0wMyAwODozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBkYXRlbnRpbWUgY29sdW1uLgogICAKMjAwMS0xMi0wMyAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHByb2JsZW0gd2l0aCBkb3VibGUgZGVsZWdhdGVkIHJlcXVlc3RzIGFmdGVyIGdldG5leHQgbG9vcC4KICAgCjIwMDEtMTItMDMgMDg6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dDoKCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliIGFkZGVkIHRvIGRlZmF1bHQgbGlzdC4KICAgCjIwMDEtMTItMDMgMDU6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGRlYnVnZ2luZyBvdXRwdXQgKCJibGFoIikKICAgCjIwMDEtMTEtMzAgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAo6CgogICBDaGFuZ2UgaG93IHJlcXVlc3QgcHJvY2Vzc2luZyBnZXRzIGRvbmUgc3VjaCB0aGF0IHJlcXVlc3Qgb2JqZWN0cyBhcmUKICAgYWxsIGNhbGxvY2VkIGF0IG9uY2UgYW5kIGdldCByZXVzZWQgaW5zdGVhZCBvZiByZWFsbG9jYXRlZC4gIEJpZyBzcGVlZAogICBpbXByb3ZlbWVudHMuCiAgIAoyMDAxLTExLTMwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgIm1ha2UgZG9jIiB0byBydW4gZG94eWdlbi4KICAgCjIwMDEtMTEtMzAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBkZWJ1Z19oYW5kbGVyLmMsIG11bHRpcGxleGVyLmg6CgogICBkb3h5Z2VuIGZpeGVzCiAgIAoyMDAxLTExLTMwIDA5OjI2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSBpbiByZWdpc3Rlcl9oYW5kbGVyKCkgaWYgYXBwcm9wcmlhdGUuCiAgIAoyMDAxLTExLTMwIDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKSB3aGVuIHN1YmFnZW50IHRyaWVzIHRvCiAgICAgICByZWdpc3RlciBhIE1JQiByZWdpb24gdGhhdCBmYWlscyBlaXRoZXIgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZQogICAgICAgb3IgYmVjYXVzZSBvZiBzb21lIG90aGVyIHJlYXNvbi4KICAgCjIwMDEtMTEtMzAgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIG9mIG9sZF9pbmZvICh0aGF0IG5ldmVyIHNlZW1zIHRvIGdldCB1c2VkIGZvcgogICAgICAgYW55dGhpbmcgYW55d2F5PykKICAgCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgdGhhdCBhcmlzZXMgZHVyaW5nIHJvdyByZWdpc3RyYXRpb24gKGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzKSBiZWNhdXNlIHN1Y2Nlc3NpdmUgdmFycyBjYXVzZSBhcHBhcmVudCBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMgKHRoaXMgaXMgYSBkZWZpY2llbmN5KSAtLSBidXQgaXQgd291bGQgYXBwZWFyIHRoaXMKICAgICAgIGNvdWxkIGFyaXNlIGluIG90aGVyIHNpdHVhdGlvbnMgdG9vIChnZW51aW5lIGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucykuCiAgIAoyMDAxLTExLTMwIDA2OjMzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBmaXggYnJva2VuIHBhcnNpbmcgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzKCkgLS0gbG9vcCB3YXMKICAgICAgIGNvcHlpbmcgdGhlIHNhbWUgKGZpcnN0KSB0b2tlbiBNQVhfQVJHUyB0aW1lcy4KICAgCiAgICAgLSBlbGltaW5hdGUgbWVtb3J5IGxlYWsgaW4gZGl0dG8uCiAgIAogICAgIC0gZml4IHR5cG8gKCJQYXVzaWJsZSBjYXVzZSIgLT4gIlBvc3NpYmxlIGNhdXNlKSBpbiBkaXR0by4KICAgCjIwMDEtMTEtMzAgMDY6MjkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHByaW50IGZkIGluIHNlc3NfcHJvY2Vzc19wYWNrZXQoKSAtLSB1c2VmdWwgZm9yIGRlYnVnZ2luZwogICAKMjAwMS0xMS0zMCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgICAtIHJlbW92ZSBhIGNvdXBsZSBvZiB1bm5lY2Vzc2FyeSAjaW5jbHVkZXMgZnJvbSBzbm1wQ2FsbGJhY2tEb21haW4uaAogICAKICAgICAtIHNldCAqb3BhcXVlIHRvIE5VTEwgYWZ0ZXIgd2UgZnJlZSBpdCAtLSBpdCBtaWdodCBtYXR0ZXIuCiAgIAoyMDAxLTExLTMwIDAzOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGNsb25lIFBEVSBpbiBoYW5kbGVfYWdlbnR4X3N1YmFnZW50KCkgYmVmb3JlIHNlbmRpbmcgaXQgb24gY2FsbGJhY2sKICAgICAgIHNlc3Npb24gdG8gYXZvaWQgZG91YmxlIGZyZWUoKSBhbmQgZnJlZSgpZCBtZW1vcnkgcmVhZHMuCiAgIAogICAgIC0gbW9yZSBjb25jaXNlIChhaGVtKSBkZWNsYXJhdGlvbiBvZiBteWNhbGxiYWNrIGluIGhhbmRsZV9hZ2VudHhfcGFja2V0KCkuCiAgIAoyMDAxLTExLTI5IDA1OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBwdXQgc2Vzc2lvbiBhbmQgc3Vic2Vzc2lvbiBpbiBzdWJhZ2VudCBkZXNjcmlwdGlvbiAoaGVscGZ1bCBmb3IKICAgICAgIGRlYnVnZ2luZykKICAgCjIwMDEtMTEtMjkgMDU6NDkgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggSU5TVEFMTEhFQURFUlMKICAgCjIwMDEtMTEtMjkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIHNvbWUgZGVidWdnaW5nIHRvIGluaXRfc3ViYWdlbnQoKSAod2hpY2ggc2hvd2VkIHRoYXQgaXQgd2Fzbid0CiAgICAgICBiZWluZyBjYWxsZWQsIHNvLi4uKS4KICAgCiAgICAgLSBmaXggY2FzdCBpbiBoYW5kbGVfc3ViYWdlbnRfc2V0X3Jlc3BvbnNlKCkKICAgCjIwMDEtMTEtMjkgMDU6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWFrZSBzdXJlIGluaXRfc3ViYWdlbnQoKSBnZXRzIGNhbGxlZAogICAKMjAwMS0xMS0yOCAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNoZWNrIGZvciBzZXNzaW9uIHJlZ2lzdHJhdGlvbnMgaW4gYWxsIGNvbnRleHRzLgogICAKMjAwMS0xMS0yOCAwNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBBZGQgc3lzL3R5cGVzLmggZm9yIGJ1ZyAjNDg2Mjc3LgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgICAgLSAjaW5jbHVkZSA8bmV0ZGIuaD4KICAgCjIwMDEtMTEtMjggMDQ6MDMgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGluc3RhbGwgc25tcF90cmFuc3BvcnQuaCBhbmQgc25tcCpEb21haW4uaCAoZm9yIHRoZSBjb25maWd1cmVkCiAgICAgICB0cmFuc3BvcnQgZG9tYWlucykKICAgCjIwMDEtMTEtMjggMDM6MjkgIGpicG4KCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgICAtIHJldmVyc2UgbXlzdGVyeSByZW1vdmFsIG9mICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGFuZCAjaW5jbHVkZQogICA8c3lzL3RpbWUuaD4KICAgCjIwMDEtMTEtMjcgMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBtb3JlIGludGVsbGlnZW50bHkgYWxsb2NhdGUgdHJlZSBzcGFjZSBiYXNlZCBvbiBudW1iZXIgb2YgdmFyYmluZHMgaW4gcmVxdWVzdC4KICAgCjIwMDEtMTEtMjcgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBtYWxsb2Mgb25lIGxhcmdlIHRyZWVfY2FjaGUgYXJyYXkgcmF0aGVyIHRoYW4gYW4gYXJyYXkgb2YgdHJlZV9jYWNoZSBwb2ludGVycy4KICAgCjIwMDEtMTEtMjcgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGluY2x1ZGUgZmlsZSBuYW1lIGNoYW5nZS4KICAgCjIwMDEtMTEtMjcgMTE6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNvbW1lbnQgY2hhbmdlcy4KICAgCjIwMDEtMTEtMjcgMDc6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXhlZCBNYWtlZmlsZSBmb3Igc25tcHRyYXBkLgogICAKMjAwMS0xMS0yNyAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IE1ha2VmaWxlLmluLCBhbGxfaGVscGVycy5jLAogICBhbGxfaGVscGVycy5oLCBkZWJ1Z19oYW5kbGVyLmMsIGRlYnVnX2hhbmRsZXIuaDoKCiAgIGRlYnVnIGhhbmRsZXIgY3JlYXRlZCBmb3IgaW5zZXJ0aW5nIGRlYnVnZ2luZyBvdXRwdXQgaW50byB0aGUgY2FsbGluZyBjaGFpbi4KICAgCjIwMDEtMTEtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGVudW0gZGVmaW5pdGlvbnMgZm9yIG1vZGVzIGFuZCBjYW5fbW9kZXMuCiAgIAoyMDAxLTExLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgUERVIHZhcmlhYmxlIHRvIE5VTEwgdG8gYXZvaWQgZnJlZWluZyBpdCB0d2ljZS4KICAgCjIwMDEtMTEtMjYgMTE6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBwbHVnIGFub3RoZXIgbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsCiAgIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMsCiAgIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTLAogICBUMDI4c25tcHYzZ2V0ZmFpbCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAKLCBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMTEwYWdlbnR4Z2V0LAogICBUMTExYWdlbnR4c2V0LCBUMTEyYWdlbnR4c2V0ZmFpbCwgVDExM2FnZW50eHRyYXAsCiAgIFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsOgoKICAgZG9uJ3QgdXNlIGNvbnRleHRzIGluIHRlc3RzLgogICAKMjAwMS0xMS0yNiAwODo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGZpeCBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYywgYWdlbnR4L21hc3Rlci5jLAogICB1Y2Qtc25tcC9wcm94eS5jOgoKICAgdXNlIGZyZWVfZGVsZWdhdGVkX2NhY2hlKCkgdG8gcGx1ZyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTExLTI2IDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfaGFuZGxlci5oOgoKICAgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSByb3V0aW5lCiAgIAoyMDAxLTExLTI2IDA4OjE5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIHRoZSBhYmlsaXR5IHRvIGxpc3RlbiBmb3IgdHJhcHMgb24gbXVsdGlwbGUgdHJhbnNwb3J0cyB2aWEgdGhlCiAgICAgICAtcCBvcHRpb24gKGNvbnNpc3RlbnQgd2l0aCBzbm1wZCkuCiAgIAoyMDAxLTExLTI2IDA1OjQ0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3RyYW5zcG9ydF9vaWQoKSB0byBkbyBzZXNzaW9uIGNyZWF0aW9uIGZyb20KICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLCB0byBhbGxvdyBjcmVhdGlvbiBvZgogICAgICAgbm9uLUlQdjQgc2Vzc2lvbnMgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4KICAgCjIwMDEtMTEtMjYgMDQ6NDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBjcmVhdGluZyBhIHRyYW5zcG9ydCBmcm9tIGEKICAgICAgIDx0RG9tYWluLW9pZCwgdEFkZHJlc3Mtb2N0ZXQtc3RyaW5nPiBwYWlyLgogICAKMjAwMS0xMS0yNiAwMzowNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAgIC0gdXNlIHNubXBfdGRvbWFpbl9zdXBwb3J0KCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB0cmFuc3BvcnQgZG9tYWluCiAgICAgICBpcyBzdXBwb3J0ZWQuCiAgIAoyMDAxLTExLTIzIDEwOjI0ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIG11bHRpcGxlIHRyYW5zcG9ydCBkb21haW4gc3VwcG9ydCBmb3IgdHJhcGQgLS0gdGhpcyB3YXMgcmVhbGx5CiAgICAgICBSRUFMTFkgZWFzeSEKICAgCjIwMDEtMTEtMjMgMDk6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGZ1bmN0aW9uIHNubXBfdHJhbnNwb3J0X3N1cHBvcnQoKSAocmVwbGFjZWQgd2l0aAogICAgICAgc25tcF90ZG9tYWluX3N1cHBvcnQoKSkuCiAgIAoyMDAxLTExLTIzIDA4OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYzoKCiAgICAgLSB1c2UgbmV0d29yayBvcmRlciBmb3IgQUFMNVBWQyB0cmFuc3BvcnQgYWRkcmVzcyBlbmNvZGluZwogICAKMjAwMS0xMS0yMyAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIHNldCBsb2NhbF9sZW5ndGgsIHJlbW90ZV9sZW5ndGggYXMgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTEtMjMgMDg6MzkgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbwogICAKMjAwMS0xMS0yMyAwODozNCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIG1ha2UgdHJhcHMgd29yayB3aXRoIG5ldy1zdHlsZSBhZGRyZXNzZXMsIHVzZSBkb21haW4tYmFzZWQgYWRkcmVzcwogICAgICAgZW5jb2RpbmdzIGluIHNubXBUYXJnZXRBZGRyVGFibGUuICBOb3RlIHlvdSBjYW4gbm93IHNlbmQgdHJhcHMvaW5mb3JtcwogICAgICAgb3ZlciBhbnkgc3VwcG9ydGVkIHRyYW5zcG9ydCB0eXBlIGJ5IHVzaW5nIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUgYW5kCiAgICAgICBhIHRyYW5zcG9ydDphZGRyZXNzIHR5cGUgc3BlY2lmaWNhdGlvbi4KICAgCjIwMDEtMTEtMjMgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgICAtIGNyZWF0ZSBhcHByb3ByaWF0ZWx5LWVuY29kZWQgbG9jYWwgb3IgcmVtb3RlIGVuZHBvaW50IGFkZHJlc3NlcyBhdAogICAgICAgdHJhbnNwb3J0IG9wZW4gdGltZS4KICAgCjIwMDEtMTEtMjMgMDY6NTAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSB1cGRhdGUgZGVwZW5kZW5jaWVzIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTIyIDA5OjA4ICBqYnBuCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIHRlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsLCB0ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICB0ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCwKICAgdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwKICAgdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICB0ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0cy9UMTAwYWdlbnRodXAsCiAgIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgIHRlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0cy9UMTIxcHJveHlzZXQsCiAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICAgIC0gdXNlIHVkcDo8aG9zdG5hbWU+Ojxwb3J0PiBpbnN0ZWFkIG9mIC1wIHRvIG1ha2UgdGVzdHMgd29yayBhZ2FpbgogICAKMjAwMS0xMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgbW9yayB3b3JlIG9uIHRoZSBub3RpZmljYXRpb24gbG9nIG1pYi4gIEl0IG5vdyBzdXBwb3J0cyB2YXJpYWJsZQogICBzdG9yYWdlLCBidXQgc2VnZmF1bHRzIG9uIGFjY2VzcyBkdWUgdG8gcGR1IGNsb25pbmcgcHJvYmxlbXMgSSdtIG5vdAogICBnb2luZyB0byB3b3JrIG91dCByaWdodCBub3cuCiAgIAoyMDAxLTExLTIxIDIzOjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHNubXB0cmFwZCBsaW5raW5nLgogICAKMjAwMS0xMS0yMSAyMjo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBPSURfTEVOR1RIOyB1c2UgYWN0dWFsIG9pZCB0eXBlIGluIGNhbGN1bGF0aW9uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgYWRkIE5VTEwgcG9pbnRlciBmb3IgcmJ1aWxkIGluIHNlc3Npb24gY3JlYXRpb24uCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwo6CgogICBuZXRpbmV0L2luLmggbmVlZGVkLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICB2YXJpYWJsZSBjbGVhbiB1cHMuCiAgIAoyMDAxLTExLTIxIDIyOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBsb2NhbC9taWIyYywKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0LCBwZXJsL1NOTVAvU05NUC54cywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgc25tcGxpYi92YWNtLmMKOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIyOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi86IHZhY20uaCwgYXNuMS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQzICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jLCBvaWRfYXJyYXkuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgZGF0YV9saXN0Lmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMTg6NTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHZlcnNpb24uaCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4KLCBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmgsIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9udWxsLmgsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaCwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCwgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaCwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZS5oLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaAosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgKLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDA2OjQzICBqYnBuCgogICAqIGNvbmZpZy5oLmluOgoKICAgICAtIElQdjYgY29uZmlnIGRlZnMKICAgCjIwMDEtMTEtMjEgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVtb3ZlIG5vdy1leHRyYW5lb3VzICNpbmNsdWRlICJzbm1wQmxhaERvbWFpbi5oIiBsaW5lcwogICAKMjAwMS0xMS0yMSAwMzozOSAgamJwbgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTExLTIwIDA5OjM4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMsIHNubXBJUFhEb21haW4uaDoKCiAgICAgLSBkdWguICBGb3Jnb3QgYSBjb3VwbGUgb2YgdGhpbmdzIHRvIGRvIHdpdGggZG9tYWluLWJhc2VkIHRyYW5zcG9ydAogICAgICAgYWRkcmVzcyBwYXJzaW5nLgogICAKMjAwMS0xMS0yMCAwOToyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIG5ldyBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZyBmb3IgYWdlbnQgTlNBUHMKICAgCjIwMDEtMTEtMjAgMDk6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmgKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBEb21haW4uaCwKICAgc25tcFVuaXhEb21haW4uYywgc25tcFVuaXhEb21haW4uaCwgc25tcF9hcGkuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMS0yMCAwOToxNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBVRFAvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgTm90ZTogaW5jb21wbGV0ZSEKICAgCjIwMDEtMTEtMjAgMDg6MjkgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIHVucmVnaXN0ZXJfe3N0cmluZyxpbnQsb2lkfV9pbmRleCgpIHV0aWxpdHkgZnVuY3Rpb25zIGNvbnRyaWJ1dGVkCiAgICAgICBieSBEYW1pYW4gR2lsbXVycmF5LgogICAKMjAwMS0xMS0yMCAwMjoyNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMTY6NTkgIGRyaWVodWlzCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IHR5cG8gaW4gY29tbWVudCBba2FybGhlZ0BtaWNyb3NoYXJwLmNvbV0KICAgCjIwMDEtMTEtMTYgMDg6MzQgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGFkZCBzdXBwb3J0IGZvciBVbnNpZ25lZDMyL0dhdWdlMzIgdHlwZXMKICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogcHJvdG9jb2wuYyAoVjQtMi1wYXRjaGVzLjUpLCBwcm90b2NvbC5jCjoKCiAgICAgLSBzdHJpY3RlciB0ZXN0IGZvciBudWxsIE9JRHMKICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDY6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gbGV0IFZBQ00gY2hlY2tzIHN1Y2NlZWQgZm9yIG5vbi1JUHY0IHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMTUgMDU6MTkgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy42KSwgc25tcGQuYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZm9ybWF0dGluZyBvZiB1c2FnZSBtZXNzYWdlCiAgIAoyMDAxLTExLTE1IDA0OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgInNubXBkLmgiIChmb3IgI2RlZmluaXRpb24gb2YgTUFTVEVSX0FHRU5UKQogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgYWdlbnR4c29ja2V0IHZhbHVlIC0tIGRzX3NldF9zdHJpbmcgZG9lcyBpdCBmb3IgeW91CiAgICAgLSBjaGFuZ2UgZGVidWdnaW5nIHRvIGZpdCBpbiBiZXR0ZXIgd2l0aCByZXN0IG9mIG1vZHVsZQogICAKMjAwMS0xMS0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY0LTItcGF0Y2hlcy5bNyw3XSksIGNvbmZpZy5oLmluCiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBhZ2VudHhfY29uZmlnLmMsIGFnZW50eF9jb25maWcuaAosIG1hc3Rlci5jLCBtYXN0ZXIuaCwgc3ViYWdlbnQuaDoKCiAgIHNsaWdodGx5IG1vZGlmaWVkIHBhdGNoIGZyb20gSGFycmllIHRvIG1vdmUgYWdlbnR4IGNvbmZpZ3VyYXRpb24gaW50bwogICBhIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbGUgbm90aWZpY2F0aW9uX2xvZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaWxlIE5FVC1TTk1QLUFHRU5ULU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmg6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDA1OjI5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIHBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIHF1aWV0ZW4gc29tZSBub2lzeSBsb2dnaW5nCiAgIAoyMDAxLTExLTEzIDA0OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSB1c2UgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hlbiBhcHByb3ByaWF0ZSBpbgogICAgICAgdW5yZWdpc3Rlcl9hZ2VudHhfbGlzdCgpLgogICAKMjAwMS0xMS0xMyAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHJlc2V0IHZyLT5uYW1lbGVuIHdoZW4gd2UndmUgZmluaXNoZWQgd2l0aCBpdAogICAKMjAwMS0xMS0xMiAyMzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jOgoKICAgZmlsZSBhbGxfaGVscGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmg6CgogICBmaWxlIGFsbF9oZWxwZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMDggMDg6MDkgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBiZXR0ZXIgaW1wbGVtZW50YXRpb24gb2YgdW5yZWdpc3Rlcl9taWJfdGFibGVfcm93KCksIHdoaWNoIHVzZXMKICAgICAgIHJhbmdlcyBwcm9wZXJseSBpbiB0aGUgY2FsbGJhY2sgKGhlbmNlIG11Y2ggbW9yZSBlZmZpY2llbnQgZm9yCiAgICAgICBBZ2VudFgpLgogICAKMjAwMS0xMS0wNyAwOTo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgbm93LXJlZHVuZGFudCBhZ2VudHhfYnVpbGQgZnVuY3Rpb25zCiAgIAoyMDAxLTExLTA3IDA2OjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXJfYWRtaW4uYywKICAgcHJvdG9jb2wuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSgpIGluIGEgY291cGxlIG9mIHBsYWNlcyBmb3IgbW9yZSBjb21wcmVoZW5zaXZlCiAgICAgICBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKICAgICAtIHBhcnNlIHVucmVnaXN0ZXIgcmFuZ2VzIHByb3Blcmx5LCBhbmQgdXNlIHRoZSByYW5nZSBwcm9wZXJseSBmb3IKICAgICAgIHBhc3NpbmcgdG8gdW5yZWdpc3Rlcl9taWJfY29udGV4dCgpLgogICAKMjAwMS0xMS0wNyAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAgIC0gYWRkIERFQlVHU01TR09JRFJBTkdFKCkgbWFjcm8gZm9yIGRlYnVnZ2luZyBPSUQgcmFuZ2VzCiAgIAoyMDAxLTExLTA2IDA2OjA0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZyBpbiBhIGNvdXBsZSBvZiBjYXNlcywgdG8gcHJldmVudCBzcHVyaW91cwogICAgICAgSU5DTFVTSVZFIGdldE5leHQgYmVoYXZpb3VyCiAgIAoyMDAxLTExLTA1IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGNvcnJlY3QgYnVnIGluIHJhbmdlX3N1YmlkIHR3ZWFrIGNvZGUKICAgCjIwMDEtMTEtMDUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjYWxjdWxhdGUgdXBwZXIgYm91bmQgZm9yIHRhYmxlIHJvdyByZWdpc3RyYXRpb25zIHNsaWdodGx5IGRpZmZlcmVudGx5CiAgIAoyMDAxLTExLTAxIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBwcm90b2NvbC5jLAogICBwcm90b2NvbC5oLCBzdWJhZ2VudC5jOgoKICAgICAtIGltcGxlbWVudCByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIGFnZW50eF9idWlsZCgpIHJvdXRpbmVzLAogICAgICAgYW5kIHVzZSB0aGVtLgogICAKMjAwMS0xMS0wMSAwOTozMyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgICAgLSBzdXBwb3J0IGZvciByZWxvY2F0YWJsZSBidWZmZXIgYnVpbGQgY2FsbGJhY2tzIHZpYSBvcGVuX2V4IGNhbGxzCiAgIAoyMDAxLTEwLTMwIDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTMwIDAzOjI0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHRoZSBpbml0aWFsIGJ1ZmZlciBzaXplIDIwNDggaW4gc25tcF9yZXNlbmRfcmVxdWVzdCAoYXMgaW4KICAgICAgIF9zZXNzX2FzeW5jX3NlbmQpIHRvIG1ha2Ugc3VjY2Vzcy9mYWlsIGJlaGF2aW91ciBmb3IgQWdlbnRYIG1vcmUKICAgICAgIHByZWRpY3RhYmxlIChzaW5jZSBBZ2VudFggU1RJTEwgZG9lc24ndCB1c2UgcmVsb2NhdGluZyBidWZmZXJzLAogICAgICAgYm9vIGhpc3MpLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktdXNlci5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS1hdXRvLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBmaWxlIHRhYmxlX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5Lmg6CgogICBmaWxlIHRhYmxlX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5oOgoKICAgZmlsZSBvaWRfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaWxlIG9pZF9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI2IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZnVuY3Rpb24gbmFtZSBpbiBlcnJvciBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDA2OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAgICAtIGFkZCBzdXBwb3J0IGZvciByeCBhbmQgdHggZHJvcCBjb3VudHMgKGlmSW5EaXNjYXJkcyBhbmQKICAgICAgICBpZk91dERpc2NhcmRzKSBmb3IgTGludXggKDIuMispCiAgIAoyMDAxLTEwLTI2IDA1OjU3ICBqYnBuCgogICAqIGFjbG9jYWwubTQ6CgogICAgIC0gYWRkIGlmX2lxZHJvcHMgbWVtYmVyIHRvIHN0cnVjdCBpZm5ldAogICAKMjAwMS0xMC0yNiAwNDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gYWRkIHRyYW5zbGF0aW9uIGZvciBhdG0oMzcpIHR5cGUgaW50ZXJmYWNlcyBmb3IgTGludXgKICAgCjIwMDEtMTAtMjYgMDM6NDMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAoVjQtMi1wYXRjaGVzLjQpLAogICBzeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA4OjQzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaHJfc3dpbnN0LmMKOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6NDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMjQgMDM6MzggIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yMSAwNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgZmlsZSBtaWIyYy5pdGVyYXRlLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBmaWxlIG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjIpLCBGQVE6CgogICBNZW50aW9uIHRoZSBNUlRHIHR1dG9yaWFsIHdlYiBwYWdlcwogICAgIChhcyBzdWdnZXN0ZWQgYnkgQ2hyaXN0aWFuIFJvYm90dG9tIFJlaXMpCiAgIAoyMDAxLTEwLTE1IDA2OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wSVBYRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgICAgLSB6ZXJvIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZXMuICBIb3BlZnVsbHkgZml4ZXMgcHJvYmxlbXMgb24gTmV0QlNECiAgICAgICBub3RlZCBieSBKb2FraW0gQWx0aGluaSAocmVsYXRlZCB0byBzYV9sZW4gbWVtYmVyIHByb2JhYmx5Pz8pLgogICAKMjAwMS0xMC0xMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPcHBzZXMuCiAgIAoyMDAxLTEwLTExIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcF9lcnJvci4zLAogICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywKICAgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1hbi9zbm1wc2V0LjEsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIG1hbi9zbm1wdHJhcGQuOCwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLAogICBtYW4vc25tcHdhbGsuMSwgbWlicy9ESVNNQU4tU0NSSVBULU1JQi50eHQsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLm1pYiwKICAgbWlicy9SRUFETUUubWlicywgbWlicy9TTVVYLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgbWlicy9taWJmZXRjaCwgbWlicy9yZmNsaXN0CiwgbWlicy9zbWlzdHJpcCwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9pbnQ2NC5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL210X3N1cHBvcnQuYwosIHNubXBsaWIvbXRfc3VwcG9ydC5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCiwgc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTExIDE0OjAxICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBDaGFuZ2VMb2csIEZBUSwgTWFrZWZpbGUuaW4sCiAgIE5FV1MsIFJFQURNRSwgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gKLCBtYWtlZmlsZWluZGVwZW5kLnBsLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL21pYjJjLmNvbmYsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsCiAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QsIGxvY2FsL3RrbWliOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0wOSAwNzoxNCAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBTb21ldGltZXMgd2UgZmVlbCBsaWtlIGEgLW51dAogICAKMjAwMS0xMC0wOSAwNjoxNSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIHByb3Blcmx5IGFjY291bnQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHN1ZmZpeCBpbiB0aGUgdmFyaWFibGUKICAgICAgIHRhYmxlIGluIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKMjAwMS0xMC0wOCAwODo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAgIC0gZGVjbGFyZSB2ZXJzaW9uX3N5c29pZF9sZW4gYXMgZXh0ZXJuIElOVCBub3QgZXh0ZXJuIG9pZCwgc28gYXMgdG8KICAgICAgIG1hdGNoIGl0cyBhY3R1YWwgZGVmaW5pdGlvbiBpbiBzeXRlbV9taWIuYy4gIFRoaXMgY2F1c2VkIGFsbCBraW5kcyBvZgogICAgICAgZnVuICYgZ2FtZXMgb24gTGludXggb24gYSBBbHBoYS4KICAgCjIwMDEtMTAtMDQgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHNubXBfY2FsbGJhY2tfbGlzdCgpIHRvIHJldHVybiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgYQogICAgICAgZ2l2ZW4gPG1ham9yLCBtaW5vcj4gcGFpci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBmaWxlIHBhc3NfcGVyc2lzdHRlc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0xMC0wMyAwNTo0MiAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDMgMDM6MTEgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBkbyBTTk1QRF9DQUxMQkFDS19VTlJFR0lTVEVSX09JRCBjYWxsYmFja3MgaW4KICAgICAgIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkgLS0gY2FsbGVkIHdoZW4gQWdlbnRYIHN1YmFnZW50cwogICAgICAgZGlzYXBwZWFyLgogICAKMjAwMS0xMC0wMiAwNjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkb24ndCBzZW5kIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIEFTTl9QUklWX0VYQ0xfUkFOR0Ugb24tdGhlLXdpcmUKICAgCjIwMDEtMDktMjYgMDg6MDMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBhbGxvdyBzcGxpdF9zdWJ0cmVlKCkgdG8gZG8gYSBzcGxpdCBpbiB0aGUgbWlkZGxlIG9mIGEgY29sdW1uLAogICAgICAga2VlcGluZyB0aGUgcmVsZXZhbnQgdmFyaWFibGUgaW4gYm90aCB0aGUgb2xkIHRyZWUgYW5kIHRoZSBuZXcKICAgICAgIHRyZWUgKGFyaXNlcyBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHBhdGNoIGZyb20gRGFtaWFuIEdpbG11cnJheSBmb3IgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoCiAgICAgICBhbGxvd3MgaXQgdG8gY29wZSB3aXRoIG5vbi16ZXJvIGxlbmd0aCB2YXJpYWJsZXMgYW5kIGFsc28KICAgICAgIG5vbi1jb250aWd1b3VzIE9JRHMgZm9yIGFkamFjZW50IGNvbHVtbnMuCiAgIAogICAgIC0gcmV3cml0dGVuIGR1bXBfcmVnaXN0cnkoKSB0aGF0IHVzZXMgcmVhbGxvY2F0aW5nIHByaW50IGZ1bmN0aW9ucwogICAgICAgYW5kIGFsc28gcHJpbnRzIG91dCB2YXJpYWJsZSBsaXN0cy4KICAgCjIwMDEtMDktMjYgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWJ0cmVlIG5hbWUgYmVpbmcgbG9uZ2VyIHRoYW4KICAgICAgIHJlcXVlc3RlZCBuYW1lIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHN1ZmZpeCBmb3IgdmFyaWFibGUgbWF0Y2hpbmcuCiAgIAogICAgIC0gYmUgc3RyaWN0IGFib3V0IHN1YnRyZWUgY2h1bmtzIGJlaW5nIGluY2x1c2l2ZSBvZiB0aGUgc3RhcnQgT0lECiAgICAgICBhbmQgZXhjbHVzaXZlIG9mIHRoZSBlbmQgT0lEIChzaG93cyB1cCBiaWcgdGltZSBpbiBBZ2VudFgpLgogICAKMjAwMS0wOS0yNiAwNzoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBkb24ndCBkbyBnZXROZXh0IHJlcXVlc3RzIG9uIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZXMgdGhhdCBiZWdpbiBpbgogICAgICAgYSB0cmVlIG1hcmtlZCBhcyBhIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSAodGhleSBhcmUgZG9vbWVkIHRvCiAgICAgICBmYWlsKS4gIFNraXAgdG8gdGhlIG5leHQgcGFydCBvZiB0aGUgdHJlZSBzdHJhaWdodCBhd2F5LgogICAKMjAwMS0wOS0yNiAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gYnJpbmcgZGVidWdnaW5nIHRva2VucyBpbnRvIGxpbmUgd2l0aCByZXN0IG9mIEFnZW50WCBjb2RlCiAgIAoyMDAxLTA5LTI1IDA4OjE1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UgY2hhcmFjdGVyCiAgIAoyMDAxLTA5LTI1IDAzOjU4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBjYXN0CiAgIAoyMDAxLTA5LTI1IDAzOjQ1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIGluZmVsaWNpdHkgd2hlbiBwcmludGluZyBhbmQgc3lzbG9nZ2luZyAobm90IHN1cmUgdGhpcyBpcwogICAgICAgYWN0dWFsbHkgcG9zc2libGUgYnV0KQogICAKMjAwMS0wOS0yNSAwMzowOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGludGVncmF0ZSBzb21lIGNoYW5nZXMgZnJvbSB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaDogSGFycmllJ3MKICAgICAgIHByb3RvdHlwZXMgYW5kIFdlcydzIGZpeCBmb3IgYnVnICAjNDYzMjI2LgogICAKMjAwMS0wOS0yNSAwMzowMSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBmaXggc2lnbmVkbmVzcyBvZiB0aW1lIHN0dWZmCiAgIAoyMDAxLTA5LTI1IDAyOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAgIC0gbWFrZSBhcmd1bWVudCBvZiBzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQgY29uc3QKICAgCiAgICAgLSBkb24ndCBzdHJkdXAgREVGQVVMVF9MT0dfSUQgaWYgYSBOVUxMIGFyZyBpcyBnaXZlbgogICAKMjAwMS0wOS0yNCAwOTozOSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIHJld3JpdHRlbiBvdXRwdXQgZnVuY3Rpb25zIGluIHNubXB0cmFwZF9sb2cuYyB3aGljaAogICAgICAgYXZvaWQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAogICAgIC0gZml4IGJ1ZyBub3RlZCBpbiBzdXBwb3J0IHJlcXVlc3QgIzQ1NjY0NiAoY3VzdG9tIHRyYXAgZm9ybWF0IHdhcwogICAgICAgYmVpbmcgaWdub3JlZCBmb3IgdjIgdHJhcHMgYW5kIGluZm9ybXMpLiAgVGhhbmtzIHRvCiAgICAgICBHLlByaW5jaXBhdG9AbW90b3JvbGEuY29tIGZvciBzcG90dGluZyB0aGlzIG9uZS4KICAgCiAgICAgLSBjb3JyZWN0IHVzYWdlIGZvciAtUCBvcHRpb24gdG8gcmVmbGVjdCB0aGF0IGl0IGNhdXNlcyBvdXRwdXQgb24KICAgICAgIHN0ZGVyciBub3Qgc3Rkb3V0LgogICAKMjAwMS0wOS0yNCAwOTozNiAgamJwbgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gcmV3cml0ZSBvZiBvdXRwdXQgZnVuY3Rpb25zIHRvIGF2b2lkIHVzZSBvZiBmaXhlZC1sZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yMCAxMzowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgbmV3IGxvZ21hdGNoIG1pYiBmcm9tIFN0ZXBoYW4gV2VuemVsLgogICAKMjAwMS0wOS0xNSAwODo0MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBvdmVycmlkZSBleGNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dCBvcGVyYXRpb25zIHdoZW4gcmV0cnlpbmcKICAgICAgIG9wZXJhdGlvbnMKICAgCjIwMDEtMDktMTUgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgICAgLSBpbXByb3ZlZCBzdXBwb3J0IGZvciBBZ2VudFgtc3R5bGUgaW5jbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQKICAgCjIwMDEtMDktMTQgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggIzQ0MzExNSBmcm9tIFlpbWluIEdlOiBkaXNraW8gc3VwcG9ydCBmb3IgZnJlZWJzZDQKICAgCjIwMDEtMDktMTQgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICBQYXRjaCAjNDQwMzIwIGZyb20gTWFyayBGZXJsYXR0ZToKICAgCiAgIDEpIEFkZHMgYSBuZXcgZnVuY3Rpb24gdG8gdGhlIHNubXBfbG9nZ2luZyBBUEkKICAgICAgKHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudChjaGFyICppZGVudCkpCiAgIAogICAyKSBQb3J0cyBzbm1wdHJhcGQgdG8gdXNlIHRoZSBleGlzdGluZyBzbm1wX2xvZ2dpbmcgQVBJIGluc3RlYWQgb2YKICAgICAgdXNpbmcgc3lzbG9nIGRpcmVjdGx5LgogICAKICAgMykgUG9ydHMgc25tcF9sb2dnaW5nLltjaF0gdG8gdXNlIHRoZSBXaW4zMiBFdmVudCBMb2cgd2hlbiBjb21waWxlZCBvbgogICAgICBXaW4zMi4gSSBkaWRuJ3QgdXBkYXRlIHRoZSBWaXN1YWwgQyBwcm9qZWN0IGZpbGVzLCBiZWNhdXNlIEkgb25seQogICAgICBoYXZlIGFjY2VzcyB0byBhIG5ld2VyIHZlcnNpb24gb2YgVkMsIGFuZCBJIGRpZG4ndCBrbm93IGlmIHlvdQogICAgICB3YW50ZWQgdGhlbSB1cGRhdGVkLiBUaGUgYWR2YXBpMzIgbGlicmFyeSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUKICAgICAgcHJvamVjdCBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrIG9uIFdpbjMyICh0aGF0J3Mgd2hlcmUgdGhlIGV2ZW50CiAgICAgIGxvZyBBUEkgaXMpLgogICAKMjAwMS0wOS0xNCAxNDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIEksIHVoLCBjb3VnaCwgdWggZm9yZ290IHRvIHJ1biBhdXRvY29uZi9hdXRvaGVhZGVyLiAgRGF2ZTogZG9uJ3Qga2lsbCBtZS4KICAgCjIwMDEtMDktMTQgMTQ6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQYXRjaCAjNDI4ODg0OiBBZGQgLVBSIGxpa2Ugb3B0aW9uIHRvIHBlcmwgbW9kdWxlIChmcm9tIEpvZSBDbGFya2UpLgogICAKMjAwMS0wOS0xNCAxNDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oCiwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgKLCBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvYXNuMS5oOgoKICAgQXBwbGllZCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzQyNzM0MyBmcm9tIEhhcnJpZToKICAgICBtYWtlIGVudGVycHJpc2UgSUQgcmVsb2NhdGFibGUgd2hlcmUgbGVnYWwgdG8gZG8gc28KICAgCjIwMDEtMDktMTQgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMTI6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl91dGlscy5jLCBocl91dGlscy5oOgoKICAgcmVtb3ZlZC4gIEZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gc25tcGxpYi9zbm1wLXRjLltjaF0KICAgCjIwMDEtMDktMTQgMTI6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAtdGMuaDoKCiAgIEFsdGVybmF0aXZlIHNvbHV0aW9uIHRvIHBhdGNoICMzMTI2OTQ6CiAgICAgbW92ZSBkYXRlX25fdGltZSB1dGlsaXRpZXMgdG8gc25tcGxpYi9zbm1wLXRjLmMuCiAgIAoyMDAxLTA5LTE0IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgZmlsZSBjb25maWcuaC5ib3JsYW5kIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDktMTQgMDY6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsCiAgIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICAgIC0gdXNlIGluY2x1c2l2ZSBzZWFyY2ggcmFuZ2Ugb25seSB3aGVuIGFwcHJvcHJpYXRlIGZvciBnZXROZXh0CiAgICAgICBxdWVyaWVzCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMDYgMDc6NDAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgICAtIGlmIGluY2x1ZGUgYml0IGlzIHNldCBpbiBhbiBBZ2VudFggU2VhcmNoUmFuZ2UgKGhlbmNlIHR5cGUgb2YgdmFyYmluZAogICAgICAgaXMgQVNOX1BSSVZfSU5DTF9SQU5HRSksIHRyeSBhbiBleGFjdCBxdWVyeSBmaXJzdCBiZWNhdXNlIGFuIG9iamVjdAogICAgICAgd2hvc2UgbmFtZSBpcyBsZXhpLWVxdWFsIGlzIGEgdmFsaWQgcmVzcG9uc2U7IGlmIGV4YWN0IHF1ZXJ5IGZhaWxzCiAgICAgICB0aGVuIGZhbGwgYmFjayB0byBhbiBpbmV4YWN0IHF1ZXJ5LgogICAKMjAwMS0wOS0wNiAwNzozOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywKICAgcHJvdG9jb2wuYywgc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCB1c2VkIElOQ0wvRVhDTCB3cm9uZyB3YXkgcm91bmQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzCiAgIAogICAgIC0gYmV0dGVyIHRlc3QgZm9yIHNjb3BpbmcgcmVxdWlyZW1lbnRzIGluIHN1YmFnZW50CiAgIAoyMDAxLTA5LTA0IDA3OjE0ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTI4IDAzOjA0ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjEpLCBzbm1wZC5jOgoKICAgICAtIGF2b2lkIHVzZSBvZiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMgaW5zaWRlIHByaW50ZigpIGNhbGwsIHdoaWNoCiAgICAgICBpcyBhIG1hY3JvIGluIGdsaWJjLCBtYWtpbmcgdGhpcyBhbiB1bmRlZmluZWQgYmVoYXZpb3VyCiAgICAgICBjb25zdHJ1Y3QgKHdoaWNoIEdDQyAzLjAgcmVmdXNlcyB0byBjb21waWxlKS4gIFNlZSBidWcgIzQ1NTgwNCBmb3IKICAgICAgIGZ1cnRoZXIgZGV0YWlscy4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5oOgoKICAgZmlsZSBkYXRhX2xpc3QuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBmaWxlIGRhdGFfbGlzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTIyIDA4OjQ1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gYWRkIGNoZWNraW5nIHRoYXQgcmVzdWx0cyB0byBiZSByZXR1cm5lZCB0byBtYXN0ZXIgYWdlbnQgYXJlIGluCiAgICAgICByZXF1ZXN0ZWQgc2NvcGUgKGlmIGFueSkgKGdldEJ1bGsgbm90IHlldCBkb25lKQogICAKMjAwMS0wOC0xNSAwOTozMSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgaW4gZGVidWdtc2dfb2lkIHRvIHByaW50IGxvbmcgT0lEcy4KICAgCjIwMDEtMDgtMTUgMDg6MzcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHRoZSB2YWx1ZSBvZiBzbm1wSW5CYWRDb21tdW5pdHlVc2VzIHdoZW4gYXR0ZW1wdGluZyBhbgogICAgICAgb3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgYnkgdGhlIGdpdmVuIGNvbW11bml0eSwgcGVyIFJGQyAxOTA3LgogICAKMjAwMS0wOC0xNSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gd2hlbiB0cmFuc2xhdGluZyB0aGUgdjIrIGVycm9yLXN0YXR1cyB2YWx1ZSBhdXRob3JpemF0aW9uRXJyb3IKICAgICAgIGludG8gbm9TdWNoTmFtZSBmb3IgYSB2MSBzZXNzaW9uLCBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mCiAgICAgICBzbm1wSW5CYWRDb21tdW5pdHlVc2VzLCBwZXIgUkZDIDI1NzYuCiAgIAoyMDAxLTA4LTE0IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBpbiBzbm1wX3NldF92YXJfb2JqaWQoKSwgdHJ5IHRvIGRldGVjdCBhIHByZXZpb3VzbHktbWFsbG9jKCllZAogICAgICAgYnVmZmVyIGZvciB0aGUgdmFyaWFibGUgbmFtZSwgYW5kIGZyZWUoKSBpdCwgdG8gYXZvaWQgbWVtb3J5CiAgIGxlYWtzLgogICAKMjAwMS0wOC0xMyAwMzo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB1c2UgV2luMzIgY2FsbHMgdG8gY2hhbmdlIGJsb2NraW5nIHN0YXRlIG9mIHNvY2tldHMgaWYKICAgICAgIGFwcHJvcHJpYXRlLiAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMTMgMDM6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYW4gU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbiBpZgogICAgICAgd2UgZ2V0IGFuIGVycm9yIG9uIGEgc3RyZWFtIHJlY2VpdmUsIGFzIHdlbGwgYXMgaWYgaXQgaXMgY2xvc2VkIGluCiAgICAgICBhbiBvcmRlcmx5IGZhc2hpb24uICBUaGlzIG1ha2VzIGxpZmUgZWFzaWVyIG9uIFdpbjMyIGlucGFydGljdWxhci4KICAgICAgIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgd2l0aCBkZWJ1Z2dpbmcgdGhpcy4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDkgMDM6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oOgoKICAgZmlsZSB0YWJsZV9kYXRhc2V0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgZmlsZSB0YWJsZV9kYXRhLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDggMDE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oOgoKICAgZmlsZSB0YWJsZV9kYXRhLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjM6CgogICBmaWxlIHNubXBfYXBpX2VycnN0cmluZy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9lcnJvci4zOgoKICAgZmlsZSBzbm1wX2Vycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3BlcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXNzX3BlcnJvci4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNiAwNDoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTMwIDEwOjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gbW92ZSBzbm1wX3NvY2tldF9sZW5ndGggZnVuY3Rpb24gdG8gYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICAgIGZyb20gc25tcF9hcGkuYyAtLSB0aGlzIGlzIHRoZSBvbmx5IHJlbWFpbmluZyBwbGFjZSB0aGF0IHVzZXMgdGhpcwogICAgICAgZnVuY3Rpb24sIHdoaWNoIGNlcnRhaW5seSBkb2Vzbid0IGJlbG9uZyBpbiBzbm1wX2FwaS5jIGFmdGVyIHRoZQogICAgICAgdHJhbnNwb3J0IGFic3RyYWN0aW9uIG1hbGFya2V5LgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGZpbGUgYWdlbnRfaGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTMwIDA3OjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHRyeSB0byByZXR1cm4gaW52YWxpZCgyKSBmb3IgdGhlIGlwUm91dGVUeXBlIGNvbHVtbiBpZiB0aGUgcm91dGUKICAgICAgIGlzIG5vdCB1cC4gIFNlZSBidWcgIzQyNjcxMCwgcmVwb3J0ZWQgYnkgcGp3ZWJlci4KICAgCjIwMDEtMDctMjcgMDc6MzIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBzZXQgZGVmYXVsdEF1dGhUeXBlIHRvIHVzbUhNQUNTSEExQXV0aFByb3RvY29sIGlmIFNIQSBzcGVjaWZpZWQKICAgICAgICh3YXMgc2V0IHRvIHVzbUhNQUNNRDVBdXRoUHJvdG9jb2wgaW4gdGhpcyBjYXNlKS4gIFNwb3R0ZWQgYnkKICAgICAgIFdpbGxpYW0gS2VubmVtZXIgKGJ1ZyAjNDQ0ODYwKQogICAKMjAwMS0wNy0yNyAwNjo1OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBjaGFuZ2UgdG8gaGFuZGxlX2FnZW50eF9yZXNwb25zZSBPTkxZIHRvIHNlbmQgTkVXTFkgZGVsZWdhdGVkCiAgICAgICByZXF1ZXN0cyBhZnRlciBwcm9jZXNzaW5nIGEgc3VjY2Vzc2Z1bCByZXNwb25zZS4gIFRoaXMgaXMgYWNoaWV2ZWQKICAgICAgIGJ5IHNhdmluZyB0aGUgdmFsdWUgb2YgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBhbmQgdGVtcG9yYXJpbHkKICAgICAgIHNldHRpbmcgaXQgdG8gTlVMTC4gIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHZhcmJpbmRzIGluIHRoZQogICAgICAgcmVzcG9uc2UsIHRoZXJlZm9yZSwgYXNwLT5vdXRzdGFuZGluZ19yZXF1ZXN0cyBjb250YWlucyBvbmx5IG5ld2x5CiAgICAgICBkZWxlZ2F0ZWQgcmVxdWVzdHMsIGlmIGFueS4gIEFmdGVyIHNlbmRpbmcgdGhlc2UsIHRoZSBuZXcgcmVxdWVzdHMKICAgICAgIGFyZSBtZXJnZWQgd2l0aCB0aGUgc2F2ZWQgcXVldWUuCiAgIAogICAgICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IGFyaXNlcyBpZiB5b3UgcmVxdWVzdCB2YXJpYWJsZXMgZnJvbSB0d28gb3IKICAgICAgIG1vcmUgc2VwYXJhdGUgc3ViYWdlbnRzIHNpbXVsdGFuZW91c2x5LiAgV2hhdCB1c2VkIHRvIGhhcHBlbiBpcwogICAgICAgdGhhdCwgdXBvbiByZWNlaXZpbmcgdGhlIGZpcnN0IHJlc3BvbnNlLCB0aGUgbWFzdGVyIGFnZW50IHdvdWxkCiAgICAgICBub3RpY2UgdGhhdCBpdCBoYWQgYW4gb3V0c3RhbmRpbmcgcmVxdWVzdCwgYW5kIHJldHJhbnNtaXQgaXQuCiAgICAgICBUaGVuIHRoZSBzZWNvbmQgcmVzcG9uc2UgYXJyaXZlcywgYW5kIHRoZSBtYXN0ZXIgYWdlbnQgc2VuZHMgdGhlCiAgICAgICByZXBseSB0byB0aGUgKFNOTVApIHJlcXVlc3RlciBhbmQgZnJlZXMgdGhlIHJlcXVlc3RzIChpbmNsdWRpbmcKICAgICAgIGNhbGxiYWNrIGRhdGEpLiAgRmluYWxseSwgYW5vdGhlciBBZ2VudFggcmVzcG9uc2UgKHRvIHRoZQogICAgICAgZXJyb25lb3VzbHkgdHJhbnNtaXR0ZWQgcmVxdWVzdCkgYXJyaXZlcyBhbmQgdGhlIGNhbGxiYWNrIGlzCiAgICAgICBjYWxsZWQgcmVmZXJlbmNpbmcgZGVhbGxvY2F0ZWQgbWVtb3J5LCB3aGljaCBjYXVzZXMgYSBzZWdmYXVsdC4KICAgCjIwMDEtMDctMjYgMDc6MjggIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChORVctTElCUkFSWS1BUEkuNCksIHNubXBfYXBpLmM6CgogICBBZGRpbmcgYSAnZG91YmxlJy12YWx1ZWQgdmFyYmluZCBpc24ndCBpbmhlcmVudGx5IGFuIGludGVybmFsIGVycm9yIQogICAKMjAwMS0wNy0yNSAwNTo0NyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGRpc2FibGUgc3RkZXJyIGxvZ2dpbmcgKGlmIHJlcXVlc3RlZCkgYmVmb3JlIGNhbGxpbmcgaW5pdF9taWJfbW9kdWxlcygpLgogICAgICAgVGhpcyBzaG91bGQgZml4IHRoZSBwcm9ibGVtIG5vdGVkIGJ5IE5pZ2VsIE1ldGhlcmluZ2hhbSBpbiBidWcgIzQxODg1NwogICAgICAgd2hlcmVieSB0aGUgQWdlbnRYIG1hc3RlciBtb2R1bGUgcHJpbnRzIGEgbWVzc2FnZSB0byBzdGRlcnIgd2hpY2ggY2F1c2VzCiAgICAgICBhIFNJR1BJUEUgd2hlbiB0aGUgYWdlbnQgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbi4KICAgCjIwMDEtMDctMjUgMDI6MTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gaW5pdGlhbGlzZSBidWZmZXJzIHRvIHplcm8gaW4gaGFuZGxlX3dyYXBfZm10LCB0byBhdm9pZCBnYXJiYWdlIGluCiAgICAgICBkaXNwbGF5IG9mIHNlY3VyaXR5IHBhcmFtZXRlcnMsIGFzIG5vdGVkIGJ5IFdpbGxpYW0gRnJhdWVuaG9mZXIKICAgICAgIChidWcgIzQzNzIzMSkuCiAgIAogICAgIC0gYWRkIGNsb3NpbmcgcGFyZW50aGVzaXMgYWZ0ZXIgKHZpYSA8YWRkcmVzcz4gaW4gZm9ybWF0X3BsYWluX3RyYXAKICAgCjIwMDEtMDctMjMgMDc6NTMgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIHJlbW92ZSBleGNlc3NpdmUgZGVidWdnaW5nIGZyb20gc25tcF8ocmUpYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAxLTA3LTIzIDA0OjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgICAgLSBtaW5vciBmaXggdG8gZGVidWdnaW5nIG91dHB1dCB0byBwcmludCBsb3NpbmcgcGF0aCBjb3JyZWN0bHkgd2hlbgogICAgICAgYSByZW1vdGUgY29ubmVjdCBmYWlscy4KICAgCjIwMDEtMDctMTcgMDk6NTYgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdXBkYXRlIGZvciBuYW1pbmcgY29udmVudGlvbnMgYW5kIGZvciBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAxLTA3LTE3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGluaXRpYWwgY29kaW5nIHN0eWxlIGd1aWRlbGluZSBkb2N1bWVudC4KICAgCjIwMDEtMDctMTcgMDk6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVtZW1iZXIgdG8gcmVtb3ZlX3RyYXBfc2Vzc2lvbihvdXItc2Vzc2lvbi13aXRoLW1hc3Rlci1hZ2VudCkKICAgICAgIGlmIHRoZSBtYXN0ZXIgYWdlbnQgc2Vzc2lvbiBnb2VzIGF3YXksIGJlY2F1c2Ugb3RoZXJ3aXNlIHlvdQogICAgICAgbWF5IHN1YnNlcXVlbnRseSB0cnkgdG8gdXNlIGl0LCB3aGljaCB3aWxsIHByb2JhYmx5IGR1bXAgY29yZSwKICAgICAgIGFuZCBpcyBjZXJ0YWlubHkgYW4gZXJyb3IuCiAgIAogICAgIC0gYWxzbyBjaGFuZ2Ugd2hlbiB0cmFwIHNlc3Npb24gaXMgcmVnaXN0ZXJlZCB0byBiZWluZyBpbW1lZGlhdGVseQogICAgICAgdGhlIHNlc3Npb24gaXMgb3BlbmVkIHNvIHRyYXBzIGNhbiBiZSBzZW50LCBlLmcuIGZyb20gdGhlCiAgICAgICBJTkRFWF9TVEFSVCBjYWxsYmFjayAoZm9yIGV4YW1wbGUgbGlua1VwIHRyYXBzIGluIHN1YmFnZW50cyB0aGF0CiAgICAgICByZWdpc3RlciBhIHJvdyBvZiBpZlRhYmxlKS4KICAgCjIwMDEtMDctMTcgMDg6NDggIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGNoYW5nZSB0byByZW1vdmVfdHJhcF9zZXNzaW9uKCksIHNvIGFzIG5vdCB0byBjbG9zZSBhbiBTTk1QCiAgICAgICBzZXNzaW9uIHNpbXBseSBiZWNhdXNlIHdlIGFyZSByZW1vdmluZyBpdCBmcm9tIHRoZSB0cmFwX3NpbmsKICAgICAgIGxpc3QuICBUaGUgcmF0aW9uYWxlIGlzIHRoYXQgdGhlIHNlc3Npb24gbWF5IHN0aWxsIGJlIGluIHVzZSBmb3IKICAgICAgIG90aGVyIHB1cnBvc2VzLCBvciAobW9yZSB0byB0aGUgcG9pbnQpIHlvdSBtYXkgYmUgY2FsbGluZyB0aGlzCiAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBzZXNzaW9uJ3MgY2FsbGJhY2sgKGZyb20gd2hlcmUgY2xvc2luZyB0aGUKICAgICAgIHNlc3Npb24gaXNuJ3QgYSBnb29kIGlkZWEpLgogICAKMjAwMS0wNy0xMyAwNjowMiAgZHRzMTIKCiAgICogc25tcGxpYi9uZXRzbm1wLmg6CgogICBmaWxlIG5ldHNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAxLTA3LTEyIDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaWxlIHRhYmxlX2l0ZXJhdG9yLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaDoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAwMjoyMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBmaXggZm9yIGJ1ZyAjNDM5MDk0LCByZXBvcnRlZCBieSBFdmVydC1KYW4gdmFuIFR1aWpsLCB3aGVyZWJ5CiAgICAgICB0aGUgQWdlbnRYIG1hc3RlciBhZ2VudCBleHBlY3RzIGEgcmVzcG9uc2UgdG8gYW4gYWdlbnR4LUNsZWFudXBTZXQtUERVCiAgICAgICBtZXNzYWdlIChpbmNvcnJlY3RseSkuICBUaGlzIG9ubHkgc2hvd3MgdXAgd2hlbiB0ZXN0aW5nIGFnYWluc3Qgb3RoZXIKICAgICAgIHN1YmFnZW50cyAoZS5nLiBqYXgpIGJlY2F1c2UgdGhlIG5ldC1zbm1wIHN1YmFnZW50IHNlbmRzIGEgcmVzcG9uc2UKICAgICAgIHRvIHRoZSBhZ2VudHgtQ2xlYW51cFNldC1QRFUgKGluY29ycmVjdGx5KS4KICAgCjIwMDEtMDctMTAgMTY6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgZmlsZSB2YWNtX2NvbnRleHQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0Lmg6CgogICBmaWxlIHZhY21fY29udGV4dC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmg6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmM6CgogICBmaWxlIHRhcmdldF9jb3VudGVycy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTA1IDA2OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmg6CgogICAgIC0gbWFrZSBJbnRlcmZhY2VfU2Nhbl9HZXRfQ291bnQgbm9uLXN0YXRpYyBhcyBpdCdzIHZlcnkgdXNlZnVsCiAgIAoyMDAxLTA3LTA1IDAzOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGZyZWUgdGhlIGNhY2hlZCBzZWN1cml0eSBwYXJhbWV0ZXJzIHdoZW4gd2UgaGF2ZSBhIHBhcnNlIGVycm9yCiAgICAgICBvbiBpbnB1dCwgb3RoZXJ3aXNlIHdlIGxlYWsgbWVtb3J5ICh0cmlnZ2VyZWQgYnkgU0MgMy4wLjEzLnsyLDN9KS4KICAgCjIwMDEtMDctMDQgMDk6NTEgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjYXRjaCBzb21lIG1hbGZvcm1lZCBTTk1QdjMgcGFja2V0cwogICAKMjAwMS0wNy0wNCAwNzo0MiAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBiYWQgbWlzdGFrZSBpbiBzbm1wdjNfc2NvcGVkUERVX2hlYWRlcl9yZWFsbG9jX3JidWlsZCB3aGljaAogICAgICAgd2FzIGVuY29kaW5nIHRoZSB3cm9uZyBsZW5ndGggaW50byB0aGUgU2NvcGVkUERVIFNFUVVFTkNFIGhlYWRlcgogICAgICAgKHdhc24ndCBpbmNsdWRpbmcgbGVuZ3RoIG9mIGFjdHVhbCBkYXRhLCBpLmUuIFBEVSEpLiAgVG90YWxseSBteQogICAgICAgZmF1bHQgLS0gaW50cm9kdWNlZCB3aGVuIGNoYW5naW5nIG92ZXIgdG8gcmVhbGxvY2F0aW5nIGJ1ZmZlcgogICAgICAgdHlwZSBmdW5jdGlvbnMuICBBbWF6aW5nIHRoaXMgaGFzbid0IGNhdXNlZCBhbGwgc29ydHMgb2YgdHJvdWJsZQogICAgICAgZm9yIHBlb3BsZSEKICAgCjIwMDEtMDctMDIgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGZpbGUgc25tcC10Yy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTAyIDA5OjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAxLTA3LTAyIDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgICAgLSBmaXggYmFkIGJlaGF2aW91ciBpbiBoZWFkZXJfc2ltcGxlX3RhYmxlIHdoZW4gdGhlIGluZGV4IGlzCiAgICAgICBlcXVhbCB0byBVTE9OR19NQVgKICAgCjIwMDEtMDYtMjggMTA6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjaGFuZ2Ugc2Vuc2Ugb2Ygc25tcF9vaWRfY29tcGFyZSgpIHJlc3VsdCBjaGVjayBpbiB2YXJfdXNtVXNlcgogICAgICAgdG8gZG8gbGV4aS1vcmRlcmluZyBjb3JyZWN0bHkKICAgCjIwMDEtMDYtMjggMDc6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNvdW50IG1vcmUgdjEvdjJjIHBhcnNlIGVycm9ycyAoU0MgMS4xLjEyLjEwKQogICAKMjAwMS0wNi0yOCAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hlY2sgdGhhdCB2ZXJzaW9uIGZpZWxkIG9mIFBEVSBpcyBvZiBpbnRlZ2VyIHR5cGUgcmF0aGVyIHRoYW4ganVzdAogICAgICAgYXNzdW1pbmcgaXQgaXMgKFNDIDEuMS4xMi4yLjEpCiAgIAoyMDAxLTA2LTI4IDA0OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCBzbm1wSW5CYWRDb21tdW5pdHlOYW1lcyB3aGVuIHdlIHNlZSB1bmtub3duIGNvbW11bml0eQogICAgICAgbmFtZXMsIHBlciBSRkMxOTA3CiAgIAoyMDAxLTA2LTI3IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIG5ldyBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgdG8gbWFyayBhbGwgb3VyCiAgICAgICBub2RlcyBhcyBkZXRhY2hlZCB3aGVuIHdlIGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0IGluZGljYXRpb24uCiAgIAoyMDAxLTA2LTI3IDA4OjA3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIGFkZCBhZGRpdGlvbmFsIGZsYWcgdG8gc3VidHJlZSBzdHJ1Y3R1cmUgdGhhdCBzdWJhZ2VudHMgY2FuIHVzZQogICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYXR0ZW1wdCBoYXMgYmVlbiBtYWRlIHRvIHJlZ2lzdGVyIGFuZCBPSUQKICAgICAgIHdpdGggYSBtYXN0ZXIgYWdlbnQgZHVyaW5nIGEgc2Vzc2lvbidzIGxpZmV0aW1lLiAgVGhpcyBhbGxvd3MKICAgICAgIG1hbnVhbCByZS1yZWdpc3RyYXRpb24gYW5kIGF1dG9tYXRpYyByZS1yZWdpc3RyYXRpb24gdG8gYmUgbWl4ZWQKICAgICAgIHdpdGhpbiBhIHN1YmFnZW50IChwZXJoYXBzIGJlY2F1c2UgeW91IGFyZSBkb2luZyBpbmRleCBzdHVmZikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB3aGljaCB1bnNldHMgdGhpcyBmbGFnIGZvcgogICAgICAgYWxsIGtub3duIG5vZGVzIChzdWJhZ2VudCB3b3VsZCB0eXBpY2FsbHkgY2FsbCB0aGlzIG9uIGRpc2Nvbm5lY3QKICAgICAgIGluZGljYXRpb24pLgogICAKICAgICAtIGFkZCBmdW5jdGlvbiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKQogICAKICAgICAtIGNvcnJlY3QgYmFkIHJlY3Vyc2l2ZSBiZWhhdmlvdXIgaW4gcmVnaXN0ZXJfbWliX3JlYXR0YWNoKCkgd2hpY2gKICAgICAgIHVzZWQgdG8gdHJ5IHRvIHJlLXJlZ2lzdGVyIE4gbm9kZXMgTiEgdGltZXMuICBPbmNlIHdpbGwgbm9ybWFsbHkKICAgICAgIGJlIGVub3VnaC4KICAgCiAgICAgLSBjaGFuZ2UgdG8gZHVtcF9yZWdpc3RyeSgpIGZvcm1hdCB0byBpbmNsdWRlIGhleCBkaXNwbGF5IG9mCiAgICAgICBmbGFncyBmaWVsZC4KICAgCjIwMDEtMDYtMjYgMDk6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCBlcnJvciBpbiBTTk1QdjIgdHJhcCBleGFtcGxlcyAgKElkZW50aWZpZWQgYnkgRGl3YWthciBTaGV0dHkpLgogICAKMjAwMS0wNi0yNiAwMjozNSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3RlZCBzZW5zZSBvZiBkdW1wX3JlYWxsb2Nfb2lkX3RvX3N0cmluZygpIHJldHVybiB2YWx1ZQogICAgICAgY2hlY2tzLCBhcyBzcG90dGVkIGJ5IFJvYmVydCBTdG9yeS4KICAgCjIwMDEtMDYtMjUgMDY6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gc21hbGwgdHdlYWsgaW4gaGFuZGxlX2FnZW50eF9yZXNwb25zZSgpIHdoZW4gcmV0cnlpbmcgdW5mdWxmaWxsZWQKICAgICAgIHJlcXVlc3RzOiBjb250aW51ZSBmcm9tIHRoZSAic3RhcnQiIE9JRCBvZiB0aGUgbmV4dCBub2RlIG9mIHRoZQogICAgICAgdHJlZSwgbm90IGZyb20gdGhlICJuYW1lIiBPSUQsIHdoaWNoIGNhdXNlcyBsb29waW5nLgogICAKMjAwMS0wNi0yMSAwOTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBoYW5kbGUgImhvbGVzIiBpbiByb3dzIG9mIHRhYmxlcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHN1YmFnZW50cwogICAKICAgICAgIFNpbmNlIHRoZSBmdWxseS1xdWFsaWZpZWQgaW5zdGFuY2UgaXMgcmVnaXN0ZXJlZCwgd2UgaW50ZXJwcmV0CiAgICAgICBhIHJldHVybiBvZiBub1N1Y2hJbnN0YW5jZSB3aGVuIGRvaW5nIGFuIGluZXhhY3QgcXVlcnkgYXMgbWVhbmluZwogICAgICAgd2Ugc2hvdWxkIHJldHJ5IHRoZSBxdWVyeS4KICAgCjIwMDEtMDYtMjEgMDI6NTAgIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBmb3Jnb3QgdG8gY29tbWl0IGF0IHRoZSBzYW1lIHRpbWUgYXMgbGFzdCBtaWIuYyBjb21taXQ7IHVwZGF0ZWQKICAgICAgIHByb3RvdHlwZSBmb3Igc3ByaW50X3JlYWxsb2NfaGludGVkX2ludGVnZXIKICAgCjIwMDEtMDYtMjAgMDY6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBjb3VudF9pbmRleGVzIHdoaWNoIHJldHVybnMgdGhlIG51bWJlciBvZiBpbmRleGVzCiAgICAgICBhbGxvY2F0ZWQgZm9yIGEgZ2l2ZW4gT0lELiAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcKICAgICAgICJyb3cgY291bnQiIG9iamVjdHMsIGUuZy4gaWZOdW1iZXIuCiAgIAoyMDAxLTA2LTIwIDA1OjM3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jCjoKCiAgICAgLSBhZGQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RBUlQgYW5kIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUT1AKICAgICAgIGNhbGxiYWNrcyB3aGljaCBtYXkgYmUgdXNlZCB0byBtYW5hZ2UgaW5kZXggYWxsb2NhdGlvbnMuCiAgIAogICAgICAgTWFzdGVyIGFnZW50IHNob3VsZCBwcm9iYWJseSBjYWxsIHRoZXNlIGNhbGxiYWNrcyB0b28sIGFsdGhvdWdoCiAgICAgICBpdCdzIGEgYml0IG9mIGEgZGVnZW5lcmF0ZSBjYXNlLgogICAKMjAwMS0wNi0xOSAwOTo0NCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIHVzZSBhbiBleHBsaWNpdCBmaWVsZWQgImFsbG9jYXRlZCIgaW4gc25tcF9pbmRleCBzdHJ1Y3R1cmUgdG8KICAgICAgIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgY3VycmVudGx5IGFsbG9jYXRlZCwgcmF0aGVyCiAgICAgICB0aGFuIG92ZXJsb2FkaW5nIGEgTlVMTCBzZXNzaW9uIHRvIG1lYW4gdGhhdCBpdCBpcyBub3QuCiAgIAogICAgICAgVGhpcyBhbGxvd3Mgc3RhcnR1cCBjb2RlIGluIGEgbWFzdGVyIGFnZW50IHRvIHByZS1yZWdpc3RlciBpbmRpY2VzCiAgICAgICB3aGVuIHRoZXJlIGFyZSBubyBzZXNzaW9ucyBvcGVuLgogICAKMjAwMS0wNi0xOSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAgIC0gIGtlZXAgdGhlIHZhbHVlIG9mIE5FVFdPUktfQllURV9PUkRFUiBmcm9tIGguZmxhZ3MgaW4gdGhlCiAgICAgICAgYWdlbnR4LU9wZW4tUERVIGFuZCB1c2UgaXQgZm9yIHN1YnNlcXVlbnQgbWFzdGVyLWluaXRpYXRlZAogICAgICAgIEFnZW50WCBwcm90b2NvbCBvcGVyYXRpb25zLCBwZXIgUkZDIDI3NDEgKHNlY3Rpb24gNy4xLjEsCiAgICAgICAgcGFyYWdyYXBoIDQpLgogICAKICAgICAgICBGb3Igbm93LCB3ZSBhcmUgc3RvcmluZyB0aGlzIGluIHRoZSBmbGFncyBmaWVsZCBvZiBhCiAgICAgICAgc3Vic2Vzc2lvbi4gIFRoaXMgaXMgbGlrZWx5IHRvIHN0b3Agd29ya2luZyBpZiB0aGUgZmxhZ3MKICAgICAgICBkZWZpbml0aW9ucyBjaGFuZ2UgKGkuZS4gaXQncyBub3QgYSBncmVhdCBzb2x1dGlvbikKICAgCiAgICAgLSAgVGhhbmtzIHRvIFBldGVyIEtvcnN0ZW4gKHNldmVyaXR5b25lIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldCkKICAgICAgICBmb3IgaWRlbnRpZnlpbmcgdGhpcyBidWcsIGFuZCBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcyBmaXguCiAgIAoyMDAxLTA2LTE5IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcmVpbnN0YXRlIHNwYWNlIGJldHdlZW4gbnVtYmVycyBhbmQgdW5pdHMuCiAgIAogICAgIC0gcmVzcGVjdCBESVNQTEFZLUhJTlRzIGZvciBVbnNpZ25lZDMyLCBHYXVnZSwgR2F1Z2UzMiB0eXBlcy4KICAgCjIwMDEtMDYtMTMgMDM6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGRlYnVnZ2luZyB0byByZWR1Y2UgIm5vaXNlIGxldmVsIiBmcm9tIFB1cmlmeQogICAKMjAwMS0wNi0xMiAxMDozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBldGl0aW9ucyBmaWVsZCB2YWx1ZXMgb2YgPCAwIChieQogICAgICAgc2V0dGluZyB0aGVtIHRvIDAsIHBlciBSRkMgMTkwNSkKICAgCjIwMDEtMDYtMTIgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBidWcgdGhhdCBjYXVzZWQgYSBudWxsIHBvaW50ZXIgdG8gYmUgZm9sbG93ZWQgd2hlbiBwcm9jZXNzaW5nIGEKICAgICAgIEdFVEJVTEsgcmVxdWVzdCB3aXRoIG5vbi1yZXBlYXRlcnMgPiAwLCBtYXgtcmVwZXRpdGlvbnMgPT0gMCBhbmQgbm8KICAgICAgIHZhcmJpbmRzIGluIHRoZSByZXF1ZXN0LgogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4xKSwgcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMDYgMDc6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUoKSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpIGNhbGxzCiAgIAoyMDAxLTA2LTA2IDA3OjM3ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gbW9yZSB1bmlmb3JtIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCk6IG1ha2UgaXQgYWx3YXlzIGEKICAgICAgIHZhcmJpbmQgd2hpY2ggdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZSgpaW5nLCBvciBlbHNlIE5VTEwuCiAgIAoyMDAxLTA2LTA1IDAzOjEwICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZml4IGZvciBpbmRleCBhbGxvY2F0aW9uLCBzdWNoIHRoYXQgcmVxdWVzdHMgZm9yIHNwZWNpZmljIGluZGljZXMgd2hpY2gKICAgICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGFsbG9jYXRlZCwgYnV0IGFyZSBub3QgY3VycmVudGx5IGluIHVzZSwgc3VjY2VlZC4KICAgCiAgICAgLSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmg6CgogICBmaWxlIG11bHRpcGxleGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGZpbGUgaW5zdGFuY2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmg6CgogICBmaWxlIG51bGwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaDoKCiAgIGZpbGUgcmVhZF9vbmx5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jOgoKICAgZmlsZSBtdWx0aXBsZXhlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZmlsZSBzZXJpYWxpemUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oOgoKICAgZmlsZSB0YWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmg6CgogICBmaWxlIGluc3RhbmNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpbGUgdGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuaDoKCiAgIGZpbGUgc2VyaWFsaXplLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2V0X2hlbHBlci5oOgoKICAgZmlsZSBzZXRfaGVscGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZmlsZSBudWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuaDoKCiAgIGZpbGUgb2xkX2FwaS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jOgoKICAgZmlsZSByZWFkX29ubHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBmaWxlIG9sZF9hcGkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwNzozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtaXNjIGZpeGVzIGZvciBvaWQgZm9ybWF0dGluZyBwcm9ibGVtcy4KICAgCjIwMDEtMDYtMDEgMDc6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBNYXJ0aW4gT2xkZmllbGQuCiAgIAoyMDAxLTA2LTAxIDAyOjUwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGZpeCBmb3IgYWJzb2x1dGVseSBtaW5kLWJlbmRpbmcgbWVtb3J5IGxlYWsgd2hlbiBBZ2VudFggc2Vzc2lvbnMKICAgICAgIHRpbWVvdXQuICBhZ2VudF9zZXNzaW9uX2xpc3QgaG9sZHMgYSBxdWV1ZSBvZiBzZXNzaW9ucyB3aXRoIG91dHN0YW5kaW5nCiAgICAgICByZXF1ZXN0cy4gIFdoZW4gYSBzZXNzaW9uIHRpbWVzIG91dCwgdGhpcyBtdXN0IGJlIHNjYXZlbmdlZCB0byBtYWtlCiAgICAgICBzdXJlIHRoZSBzZXNzaW9ucyB0aGF0IGhhdmUgdGltZWQgb3V0LCBhbmQgdGhlaXIgYXNzb2NpYXRlZCByZXF1ZXN0cwogICAgICAgYXJlIGZyZWUoKWQuCiAgIAoyMDAxLTA1LTMwIDAzOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJldHJ5IGluaXRpYWwgb3BlbiBvZiBBZ2VudFggbWFzdGVyIHNvY2tldCBpZiBBZ2VudFggcGluZ3MgYXJlCiAgICAgICBlbmFibGVkIChzaG91bGQgcmVhbGx5IGJlIGEgc2VwYXJhdGUgZGVmYXVsdF9zdG9yZSBvcHRpb24gYnV0CiAgICAgICBuZXZlciBtaW5kKQogICAKMjAwMS0wNS0zMCAwMzoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBtb3JlIGFnZ3Jlc3NpdmUgaGFuZGxpbmcgb2YgdGltZW91dCBjb25kaXRpb25zIChhbHNvIGZpeCBtZW1vcnkKICAgICAgIGxlYWspCiAgIAoyMDAxLTA1LTMwIDAzOjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBtb3JlIGluZm9ybWF0aXZlIGRlYnVnZ2luZwogICAKMjAwMS0wNS0zMCAwMjozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgICAgLSByZW1vdmUgbm9pc3kgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb3JlIGNvbXBhY3QgZGVidWdnaW5nIGluIF9zZXNzX3NlbGVjdF9pbmZvCiAgIAoyMDAxLTA1LTMwIDAyOjM0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gY29weSBmbGFncyBpbiByZWF0dGFjaF9zdWJ0cmVlIChuZWVkZWQgZm9yIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKQogICAKMjAwMS0wNS0yOCAwODo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBzdWJhZ2VudC5jOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSB0d2VhayB0byBnZXRTdGF0UHRyIHRvIGhhbmRsZSBnZXROZXh0IG9wZXJhdGlvbnMgaW4gY29tYmluYXRpb24gd2l0aAogICAgICAgRlVMTFlfUVVBTElGSUVEX0lOU1RBTkNFIG5vZGVzICh3aGljaCBhcmlzZSBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikuCiAgIAoyMDAxLTA1LTI4IDA4OjQ2ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gc21hbGwgdHdlYWsgdG8gZGVidWdnaW5nIG91dHB1dAogICAKMjAwMS0wNS0yOCAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkbyBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzICpwcm9wZXJseSouCiAgIAoyMDAxLTA1LTI4IDA0OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggcG9zc2libGUgbWVtb3J5IGxlYWsgaW4gX3Nlc3NfYXN5bmNfc2VuZCBlcnJvciBjYXNlcwogICAKMjAwMS0wNS0yOCAwNDoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBhZGQgcGFyc2luZy9idWlsZGluZyBvZiBBU05fUFJJVl9FWENMX1JBTkdFIGFuZAogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSB0eXBlcy4KICAgCjIwMDEtMDUtMjMgMDk6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlc3BlY3QgbXNnTWF4U2l6ZSBpbiByZWNlaXZlZCB2MyBQRFVzIChpbiB0aGUgd2VhayBzZW5zZSB0aGF0IGlmCiAgICAgICB0aGUgc2VyaWFsaXplZCByZXNwb25zZSBQRFUgaXMgbW9yZSB0aGFuIGl0LCB3ZSBkb24ndCBzZW5kIGl0KQogICAKICAgICAtIHJlbW92ZWQgZnVuY3Rpb25zIGFzY2lpX3RvX2JpbmFyeSwgaGV4X3RvX2JpbmFyeS4gIFVzaW5nIHRoZXNlCiAgICAgICBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleSB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4KICAgICAgIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsIGRlZmluZWQgaW4gdG9vbHMuaCwgYXJlCiAgICAgICBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDk6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVzcElwCiAgIAoyMDAxLTA1LTIzIDA4OjU4ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBlYXJseSBiYWlsIG91dCBvZiBoYW5kbGVfc25tcF9wYWNrZXQoKSBpZiB0aGUgY2FsbGJhY2sgb3BlcmF0aW9uCiAgICAgICB0eXBlIGlzIG5vdCBTTk1QX0NBTExCQUNLX09QX1JFQ0VJVkVEX01FU1NBR0UuICBJbiBwcmFjdGljZSwgdGhlCiAgICAgICBvbmx5IHdheSB0aGlzIGFyaXNlcyBjdXJyZW50bHkgaXMgd2hlbiBhIHN0cmVhbSB0cmFuc3BvcnQgYmFzZWQKICAgICAgIGNvbm5lY3Rpb24gZ29lcyBhd2F5IGFuZCBhIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBvY2N1cnMuCiAgIAoyMDAxLTA1LTIzIDA4OjQ0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBuZXcgZmllbGRzIHJjdk1zZ01heFNpemUgYW5kIHNuZE1zZ01heFNpemUgaW4gc25tcF9zZXNzaW9uCiAgICAgICBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB2MyBtc2dNYXhTaXplCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5IGZyb20gcHVibGljCiAgICAgICBpbnRlcmZhY2UuICBVc2luZyB0aGVzZSBmdW5jdGlvbnMgaXMgcmVhbGx5IGJhZCwgc2luY2UgdGhleQogICAgICAgd2lsbCBoYXBwaWx5IG92ZXJmbG93IGJ1ZmZlcnMuICBUaGUgc3VwZXJpb3IgYWx0ZXJuYXRpdmVzLAogICAgICAgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkuCiAgIAoyMDAxLTA1LTIzIDA4OjM3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgbXNnTWF4U2l6ZSBmaWVsZCB0byBzbm1wX3RyYW5zcG9ydCBzdHJ1Y3R1cmUgdG8gc3VwcG9ydAogICAgICAgbXNnTWF4U2l6ZSBuZWdvdGlhdGlvbiBmb3IgdjMKICAgCjIwMDEtMDUtMjMgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19oZXhzdHJpbmcgaW5zdGVhZCBvZiBzcHJpbnRfaGV4c3RyaW5nIGZvcgogICAgICAgU05NUF9URVNUSU5HX0NPREUgZGVidWdnaW5nIG91dHB1dCBvZiBJViwga2V5IGFuZCBwbGFpbnRleHQKICAgCjIwMDEtMDUtMjMgMDU6MjUgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDozOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgb3B0aW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDQ6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIGFuZCAtRSBvcHRpb25zLCByYXRoZXIgdGhhbiBhcmNoYWljIGhleF90b19iaW5hcnkKICAgCjIwMDEtMDUtMjMgMDM6NTYgIGpicG4KCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgICAtIHVzZSBuZXcgc25tcF97ZGVjaW1hbCwgaGV4fV90b19iaW5hcnkgZnVuY3Rpb25zIGZvciBpbnB1dCBzdHJpbmcKICAgICAgIHRvIE9DVEVUIFNUUklORyBjb252ZXJzaW9uLCByYXRoZXIgdGhhbiBhcmNoYWljIGFzY2lpX3RvX2JpbmFyeQogICAgICAgYW5kIGhleF90b19iaW5hcnkKICAgCiAgICAgLSBvbWl0IHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBzdHJpbmcgKGhlbHBmdWwgZm9yIG9iamVjdHMgdGhhdCBkb24ndAogICAgICAgYWxsb3cgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMsIGUuZy4gc3lzTG9jYXRpb24uMCkKICAgCjIwMDEtMDUtMjAgMDg6MTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJld3JpdHRlbiBfc2Vzc19yZWFkKCkgZnVuY3Rpb246CiAgIAogICAgICAgLSBiZXR0ZXIgaGFuZGxpbmcgb2YgbG9uZyBwYWNrZXRzCiAgICAgICAtIHplcm8tY29weSByZWNlcHRpb24gb2YgcGFja2V0cyBvbiBzdHJlYW0gdHJhbnNwb3J0cwogICAgICAgLSBsb3dlciBtZW1vcnkgb3ZlcmhlYWRzIGZvciBwYWNrZXQgZnJhZ21lbnQgaGFuZGxpbmcgZm9yIHN0cmVhbQogICAgICAgICB0cmFuc3BvcnRzCiAgIAogICAgIC0gYWxsb3cgcGFyc2luZyBvZiBsYXJnZSBvYmplY3RzICg+ODE5MiBvY3RldHMpCiAgIAoyMDAxLTA1LTIwIDA1OjQ4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgY29udGV4dE5hbWUsIHNlY3VyaXR5TmFtZSAtLSBjYXVzZXMgbWlub3IgbWVtb3J5CiAgICAgICBsZWFrLgogICAKMjAwMS0wNS0yMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSB0ZXN0IHJldHVybiBvZiBmY250bChGX0dFVEZMKSwgc28gYXMgbm90IHRvIHNldCBmbGFncyB0byBnYXJiYWdlCiAgIAogICAgIC0gY29ycmVjdGlvbiB0byBjb21tZW50IC0tIHNldCBzb2NrZXQgdG8gKmJsb2NraW5nKiEKICAgCiAgICAgLSBjaGVjayBvcGFxdWUgYmVmb3JlIHdyaXRpbmcgdG8gaXQgaW4gcmVjdgogICAKMjAwMS0wNS0yMCAwNTowMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcHJvcGVyIGhhbmRsaW5nIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBpbiBzbm1wX3N5bmNoX2lucHV0OgogICAgICAgc2V0IGFuIGVycm9yIGNvbmRpdGlvbiwgd2l0aCBlcnJubyBTTk1QRVJSX0FCT1JUICgiU2Vzc2lvbiBhYm9ydAogICAgICAgZmFpbHVyZSIpLCB3aGljaCBzZWVtcyBsaWtlIGEgZ29vZCBlbm91Z2ggbWF0Y2guCiAgIAoyMDAxLTA1LTE4IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIG1ha2UgbmV3bHktYWNjZXB0KCllZCBzb2NrZXRzIGJsb2NraW5nOyBvdGhlcndpc2UgcHJvYmxlbXMgYXJpc2UKICAgICAgIGxhdGVyIHdoZW4gc2VuZCgpaW5nIGxhcmdlIFBEVXMgKHNpbmNlIG9ubHkgYSBzaW5nbGUgc29ja2V0IGJ1ZmZlcidzCiAgICAgICB3b3J0aCBvZiBkYXRhIGF0IG1vc3QgY2FuIGJlIHNlbnQgd2l0aG91dCBibG9ja2luZykuCiAgIAoyMDAxLTA1LTE4IDA3OjE3ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGluc3RlYWQgb2YKICAgICAgIHNwcmludF9vYmppZCBhbmQgc3ByaW50X3ZhcmlhYmxlIHJlc3BlY3RpdmVseSwgdG8gYWxsb3cgbGFyZ2UgUERVcwogICAgICAgdG8gYmUgcHJpbnRlZCB3aGVuIGRlYnVnZ2luZwogICAKMjAwMS0wNS0xOCAwNzoxNiAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIHNubXBfcmVhbGxvYygpCiAgIAoyMDAxLTA1LTE4IDA3OjE1ICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICAgIC0gcmVtb3ZlIGRlYnVnZ2luZyBmcm9tIG91dHB1dCByb3V0aW5lcwogICAKICAgICAtIG5ldyBmdW5jdGlvbiBzcHJpbnRfcmVhbGxvY19vYmppZAogICAKICAgICAtIG1ha2Ugc3ByaW50X3JlYWxsb2Nfb2JqaWQgYW5kIHNwcmludF9yZWFsbG9jX3ZhcmlhYmxlIGV4dGVybmFsbHkKICAgICAgIHZpc2libGUKICAgCjIwMDEtMDUtMTggMDY6MjggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gaW1wcm92ZWQgZGVidWdnaW5nIG91dHB1dCBmcm9tIGFzbl9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTUgMDQ6MTAgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIGFkZCBPSURzIGZvciBVRFAvSVB2NiBhbmQgVENQL0lQdjYKICAgCjIwMDEtMDUtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gYWRkZWQgXG4gdG8gdGV4dCBvZiBzbm1wX2xvZygpIG1lc3NhZ2VzIChidWcgIzQyMjk3OCkKICAgCjIwMDEtMDUtMTEgMDc6MzAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgICAgLSBhZGRlZCBzcHJpbnRfcmVhbGxvY188dHlwZT4gZmFtaWx5IG9mIGZ1bmN0aW9ucyB3aGljaCB0YWtlIGV4dHJhCiAgICAgICBwYXJhbWV0ZXJzIGFuZCB1c2UgcmVsb2NhdGluZyBidWZmZXJzIHRvIHJlbW92ZSBsaW1pdGF0aW9ucyBkdWUgdG8KICAgICAgIGZpeGVkLXNpemUgYnVmZmVycyAoZS5nLiBzZWUgYnVnICM0MDkxODEpLgogICAKICAgICAtIGFsc28gZml4ZXMgcG90ZW50aWFsIHByb2JsZW0gbm90ZWQgYXMgYnVnICM0MTQ4MDMKICAgCiAgICAgLSBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBhbmQgZnByaW50X3ZhbHVlIHVzZSBuZXcgZnVuY3Rpb25zCiAgICAgICBzdWNoIHRoYXQgc25tcGdldCBldGMuIGFyZSBpbXByb3ZlZCBpbW1lZGlhdGVseQogICAKICAgICAtIG9sZCBmdW5jdGlvbnMgcmVtYWluICpGT1IgTk9XKiAtLSBidXQgcmVhbGx5IHRoZXkgc2hvdWxkIGJlCiAgICAgICBjb25zaWRlcmVkIHRvIGJlIGRlcHJlY2F0ZWQgKG5ldyBmdW5jdGlvbnMgcHJvdmlkZSBhIHN1cGVyc2V0IG9mCiAgICAgICB0aGVpciBmdW5jdGlvbmFsaXR5KS4KICAgCjIwMDEtMDUtMTEgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgICAtIGFkZGVkIGFkZGl0aW9uYWwgZnVuY3Rpb24gcG9pbnRlciB0byBzdHJ1Y3QgdHJlZSB0byBwb2ludCBhdAogICAgICAgcmVsb2NhdGluZyBidWZmZXIgY29tcGF0aWJsZSBvdXRwdXQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMTEgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gYWRkZWQgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3N0cmNhdCwgd2hpY2ggYXBwZW5kcyBhIHN0cmluZyB0byBhCiAgICAgICByZWxvY2F0YWJsZSBidWZmZXIKICAgCjIwMDEtMDUtMTAgMTE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4IGJ1ZyAjNDIzMTA5IGluY29ycmVjdCBpbmRleCBwYXJzaW5nCiAgIAoyMDAxLTA1LTA5IDE2OjQzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IHNubXBfY2xpZW50LmM6NTY5OiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uCiAgIAoyMDAxLTA1LTA5IDEyOjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi5oLCBSbW9uL1JFQURNRSwgUm1vbi9hZ3V0aWwuYwosIFJtb24vYWd1dGlsLmgsIFJtb24vYWd1dGlsX2FwaS5oLCBSbW9uL2FsYXJtLmMKLCBSbW9uL2FsYXJtLmgsIFJtb24vZXZlbnQuYywgUm1vbi9ldmVudC5oLAogICBSbW9uL2hpc3RvcnkuYywgUm1vbi9oaXN0b3J5LmgsIFJtb24vcm93X2FwaS5oLAogICBSbW9uL3Jvd3MuYywgUm1vbi9yb3dzLmgsIFJtb24vc3RhdGlzdGljcy5jLAogICBSbW9uL3N0YXRpc3RpY3MuaCwgUm1vbi90ZXN0X2FsYXJtLnNoLAogICBSbW9uL3Rlc3RfaGlzdC5zaDoKCiAgIEluY2x1ZGUgQWxleCBSb3ppbidzIFJtb24uCiAgIAoyMDAxLTA1LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIEFkZGVkIGEgY291cGxlIG9mIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgbWFuaXB1bGF0aW5nIHZhcmJpbmRsaXN0czoKICAgICBpbnQgc25tcF9zZXRfdmFyX3R5cGVkX3ZhbHVlKHN0cnVjdCB2YXJpYWJsZV9saXN0ICpuZXd2YXIsIHVfY2hhciB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9jaGFyICp2YWxfc3RyLCBzaXplX3QgdmFsX2xlbik7CiAgICAgdm9pZCBzbm1wX3JlcGxhY2VfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBvbGRfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld190eXBlKTsKICAgICB2b2lkIHNubXBfcmVzZXRfdmFyX3R5cGVzKHN0cnVjdCB2YXJpYWJsZV9saXN0ICp2YmwsIGludCBuZXdfdHlwZSk7CiAgIAoyMDAxLTA1LTA3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBkZWZpbmUgU05NUF9NQUxMT0NfVFlQRURFRigpCiAgIAoyMDAxLTA1LTA1IDA3OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgZml4IHN0b3JlXyBuYW1lOyBkb24ndCBjYXN0IHRvIGFzbnkgdHlwZSBpZiBwYXJtIGV4cGVjdGluZyB1X2NoYXIqOyBmaXggX3ZhcmlhYmxlX29pZAogICBuYW1pbmc7IGNhc3QgcGFybSAyIG9mIG1lbWR1cCB0byB1X2NoYXIqCiAgIAoyMDAxLTA1LTAzIDE0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeGVkIHJhdXRoIG9mZnNldCBpbmNyZW1lbnRpbmc6IHdhcyBpbmNyZW1lbnRpbmcgdGhlIHBvaW50ZXIsIG5vdCB0aGUgdmFsdWUuCiAgICAgLS0gbW9yZSBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgcHJvYmxlbSBmb3VuZC4KICAgCjIwMDEtMDUtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgCjIwMDEtMDUtMDMgMTA6MDggIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBsdG1haW4uc2g6CgogICB1cGRhdGVkIHRvIGxpYnRvb2wgMS40CiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIHVzZSByZWFsbG9jIHJvdXRpbmVzLgogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHZhcmlhYmxlIGRlY2xhcmF0aW9uLgogICAKMjAwMS0wNS0wMSAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IHByaW50IGhleCBmb3Igc3RyaW5nIGxlbmd0aHMgbGVzcyB0aGFuIDQuICBTaG91bGQgaGF2ZSBkaWVkIGFnZXMgYWdvLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICBGaXggcHJvdG90eXBlIHNvIGl0cyBub3Qgc3RhdGljIChpdCBzaG91bGRuJ3QgYmUpLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIG1ha2UgUk9OTFkgdmFyaWFibGVzIHdyaXRhYmxlICh3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrLiAgSSdtIGJldHRpbmcgbm90LikKICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hlY2sgZm9yIGFuIHJwbSBzdWJkaXJlY3RvcnkuCiAgIAoyMDAxLTA0LTIzIDIwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGJpZyBjbGVhbnVwIGFuZCBvdGhlciBmaXhlcyBJJ3ZlIGFscmVhZHkgZm9yZ290dGVuIGluIHRoZSBsYXN0IGZldyBtaW51dGVzLgogICAKMjAwMS0wNC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCB3YWxrIG9mZiBlbmQgb2YgbWliIHRyZWUgKHNpZ2gpLgogICAKMjAwMS0wNC0yMyAyMDoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGhlIG1pYiBpbmZvIGRpc3BsYXkgb3B0aW9ucy4KICAgc2F2ZSB0aGVtIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAxLTA0LTIzIDE4OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1vcmUgc2F2YWJsZSBvcHRpb24gaXRlbXMuCiAgIHVzZSBEYXRhOjpEdW1wZXIgdG8gc2F2ZSBtb3N0IHN0dWZmLgogICAKMjAwMS0wNC0yMyAxNzoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBEb24ndCBzYXZlIHNlc3Npb24gb3B0aW9ucyB0d2ljZS4KICAgTWFrZSBjb2xvciBvZiB3cml0YWJsZSBvYmplY3RzIGEgdmFyaWFibGUuCiAgIAoyMDAxLTA0LTIzIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRrbWliIChWNC0yLXBhdGNoZXMuMiksIHRrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0yMyAxNjozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICByZWR1Y2Ugc2NyZWVuIHJlYWxlc3RhdGUgYWxsIG92ZXIgdGhlIHBsYWNlCiAgIAoyMDAxLTA0LTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHRlc3QgYWdhaW5zdCB2ZXJzaW9uIDUKICAgCjIwMDEtMDQtMTggMDg6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCwgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQKLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBBZGRlZCBMTS1TRU5TT1JTLU1JQiBzdXBwb3J0IChkaXNraW8gZXh0ZW5zaW9uKSBmcm9tIE1hcnRpbiBPbGRmaWVsZAogICAKMjAwMS0wNC0xOCAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFja2luZyBvbiBzbm1wX2FkZF92YXIgdG8gaGFuZGxlIGxvbmcgdmFsdWVzCiAgIAogICAgICAgLSB1c2Ugc25tcF97aGV4LGRlY2ltYWx9X3RvX2JpbmFyeSBpbnN0ZWFkIG9mIGhleF90b19iaW5hcnkKICAgICAgICAgYW5kIGFzY2lpX3RvX2JpbmFyeTsgdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQKICAgCiAgICAgICAtIGRvbid0IHVzZSBzdHJ0b2sgaW4gcHJvY2Vzc2luZyBiaXRzdHJpbmdzCiAgIAoyMDAxLTA0LTE4IDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHVzZSB0aGUgZ2VuZXJpYyBzbm1wX3JlYWxsb2MgZnVuY3Rpb24gaW4gYXNuX3JlYWxsb2MKICAgCjIwMDEtMDQtMTggMDI6NDAgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gbmV3LCByZWFsbG9jYXRpbmcgdXRpbGl0eSBmdW5jdGlvbnMgc25tcF9oZXhfdG9fYmluYXJ5IGFuZAogICAgICAgc25tcF9kZWNpbWFsX3RvX2JpbmFyeSB0byBjb252ZXJ0IGhleCBhbmQgZGVjaW1hbCBzdHJpbmdzIHRvIG9jdGV0CiAgICAgICBzdHJpbmdzIHJlc3BlY3RpdmVseS4KICAgCiAgICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiBzbm1wX3JlYWxsb2MgdG8gcGVyZm9ybSBidWZmZXIgKHJlLSlhbGxvY2F0aW9uCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDEwOjA2ICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGV4dGVuZGVkIChhbmQgY29ycmVjdGVkISkgY29tbWVudGFyeSBvbiBjb3JyZWN0IHVzYWdlIG9mIG5ldyBBUEkuCiAgIAoyMDAxLTA0LTExIDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wLmMsIHNubXAuaDoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGRfdmFyX29wIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLgogICAKMjAwMS0wNC0xMSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowMiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBhc25fcmVhbGxvYygpIGZ1bmN0aW9uIGNoZWNrcyB3aGV0aGVyIGl0IGhhcyBiZWVuIHBhc3NlZCBhIE5VTEwKICAgICAgIHBvaW50ZXIgYW5kIHVzZXMgbWFsbG9jKCkgaW4gdGhhdCBjYXNlICh0aGFua3MgdG8gTWljaGFlbCBTbGlmY2FrCiAgICAgICBmb3IgcG9pbnRpbmcgb3V0IHRoZSBkYW5nZXIgaGVyZSkuCiAgIAoyMDAxLTA0LTExIDA2OjEzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDQ6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gc2V0IFNPX1NOREJVRiBhbmQgU09fUkNWQlVGIHRvIDEyOEtiIGZvciBuZXdseS1vcGVuZWQgVURQIHNvY2tldHMsCiAgICAgICB0byBlbmFibGUgbGFyZ2UgUERVcyB0byBiZSBzZW50IGFuZCByZWNlaXZlZC4gIFNvbWUKICAgICAgIGltcGxlbWVudGF0aW9ucyBkZWZhdWx0IHZlcnkgbG93IChTb2xhcmlzIDIuNyA4S2IsIExpbnV4IDIuNAogICAgICAgNjRLYikuCiAgIAoyMDAxLTA0LTA5IDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIG1vZGlmaWVkIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIG1ha2UgdXNlIG9mIHJlYWxsb2NhdGluZwogICAgICAgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgICAgLSBhZGRpdGlvbmFsIHBhcmFtZXRlciB0byB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmg6CgogICAgIC0gYWxsb3cgYWRkaXRpb25hbCBwYXJhbWV0ZXIgZm9yIG91dGdvaW5nIHBhcmFtcyB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcHJvdG90eXBlcyBmb3IgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucwogICAKMjAwMS0wNC0wOSAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgdG8gdXNlIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIGlmCiAgICAgICB1c2luZyByZXZlcnNlIGVuY29kaW5nIGF0IGFsbC4KICAgCjIwMDEtMDQtMDkgMDk6NDkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAgIC0gYWRkIG5ldyBmdW5jdGlvbiBzbm1wX3JlYWxsb2NfcmJ1aWxkX3Zhcl9vcCgpIHdoaWNoIHVzZXMKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIHRvIGVuY29kZSB2YXJiaW5kcy4KICAgCjIwMDEtMDQtMDkgMDk6NDcgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gcHJvdG90eXBlIGZvciBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LAogICAgICAgd2hpY2ggcGVyZm9ybSByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUKICAgICAgIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCiAgICAgLSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgYWJvdmUuCiAgIAoyMDAxLTA0LTA5IDA5OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sIHdoaWNoIHBlcmZvcm0KICAgICAgIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCiAgICAgICBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKMjAwMS0wNC0wNiAxMjoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBDT1BZSU5HLCBDaGFuZ2VMb2csCiAgIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgTkVXUywgUE9SVElORywKICAgUkVBRE1FLCBSRUFETUUuYWdlbnR4LCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4LAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMsIGxvY2FsL3NubXBjb25mCiwgbG9jYWwvdGttaWIsIGxvY2FsL3dlc3Jlc3RhcnQsIG1hbi9zbm1wY21kLjEKLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkZWx0YS4xLAogICBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgbWVyZ2UzIC0+IG1lcmdlNC4gIEkgZG9uJ3QgKnRoaW5rKiBJIGJyb2tlIGFueXRoaW5nLgogICAgIC0gVGhlIG1haW4gbGluZSBzaG91bGQgbm93IGNvbnRhaW4gYWxsIHRoZSA0LjIuMSBwYXRjaGVzLgogICAgIC0gSSBtYXkgZG91YmxlIGNoZWNrIHRoaXMgYXQgYSBsYXRlciBkYXRlLgogICAKMjAwMS0wNC0wNSAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEhhbmRsZSBzZXR0aW5nIG51bGwgc3RyaW5nIHZhbHVlcyB2aWEgdGhlICdwYXNzJyBtZWNoYW5pc20uIChTdXBwb3J0IzQwNjcyOCkKICAgQWxzbyBoYW5kbGUgZW1iZWRkZWQgd2hpdGVzcGFjZSBpbiBzdWNoIHZhbHVlcy4KICAgQWxzbyBhcHBsaWVkIHRvICdwYXNzX3BlcnNpc3QnLgogICAKMjAwMS0wNC0wNSAwNjowNyAgZHRzMTIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGtlcm5lbC5jCiwgbWliX21vZHVsZXMuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgKLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiwgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDUgMDY6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDUgMDY6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAoQSBjbGVhbmVyIGFwcHJvYWNoIHRoYW4gdGhlIHByZXZpb3VzIHBhdGNoKQogICAKMjAwMS0wNC0wNSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDUgMDQ6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gc2F2ZSBhIHN0cmNweSgpIGFuZCBhbGxvdyBsb25nIG9jdGV0IHN0cmluZyB2YWx1ZXMgd2l0aG91dCBjcmFzaGluZwogICAgICAodGhvdWdoIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBkdWUgdG8gdGhlIGxpYmVyYWwgdXNlIG9mIGZpeGVkCiAgICAgIHNpemUgYnVmZmVycyB3aXRoIG5vIGJvdW5kcyBjaGVja2luZyBhbGwgb3ZlciB0aGUgcGxhY2UuICBTaWdoKS4KICAgCjIwMDEtMDQtMDQgMDY6NDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDMgMDk6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEVuc3VyZSB0aGF0IHRoZSAnZXh0bXAnIGNvbW1hbmQgdmFyaWFibGUgaXMgYWNjZXNzaWJsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgRVhFQ1YuCiAgIAoyMDAxLTA0LTAzIDA5OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MjIgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBUQ1BEb21haW4uaAosIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYywKICAgc25tcFVuaXhEb21haW4uaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsCiAgIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0LmgsIHN5c3RlbS5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAxMDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBjaGVjayBmb3IgbGltaXRzLmggcHJvcGVybHkKICAgCjIwMDEtMDQtMDIgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSBtaW5vciB0eXBlZmFjZSBjaGFuZ2VzCiAgIAoyMDAxLTAzLTMxIDA2OjI3ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MjUgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMzoKCiAgICAtIGRvY3VtZW50IHRoZSBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyIGZ1bmN0aW9uCiAgIAogICAgLSBleHBhbmQgdGhlIE5PVEVTIHNlY3Rpb24gZGlzY3Vzc2luZyB1c2Ugb2YgU0lHQUxSTSAob3Igbm90KQogICAKMjAwMS0wMy0zMSAwNjoxNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seSBhbmQgY2FuY2VsIGFsbAogICAgICBjYWxsYmFja3Mgd2hpY2ggbWFrZSByZWZlcm5jZSB0byB0aGUgQWdlbnRYIHNlc3Npb24uCiAgIAoyMDAxLTAzLTMxIDA2OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAtIEZpeCBtdWx0aXBsZSBmcmVlKCkgb2YgcGFydHMgb2YgdGhlIHN1YnNlc3Npb24gYnkgemVyb2luZyBvdXQKICAgICAgZmllbGRzIHRoYXQgd2UgZG9uJ3QgdXNlLgogICAKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIENoYW5nZWQgcGFja2V0IGhhbmRsaW5nIG9uIHN0cmVhbS1saWtlIHRyYW5zcG9ydHMgc28gdGhhdCBhbGwKICAgICAgY29tcGxldGUgcmVjZWl2ZWQgcGFja2V0cyBhcmUgcHJvY2Vzc2VkOgogICAKICAgICAgX3Nlc3NfcmVhZCBpcyByZWZhY3RvcmVkIGludG8gdHdvIGZ1bmN0aW9uczogX3Nlc3NfcmVhZCByZW1haW5zCiAgICAgIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSB0aGUgdHJhbnNwb3J0IGxheWVyLCBidXQgdGhlbgogICAgICBjYWxscyAocGVyaGFwcyBtb3JlIHRoYW4gb25jZSkgX3Nlc3NfcHJvY2Vzc19wYWNrZXQgdG8gZGlzcGF0Y2gKICAgICAgZWFjaCBwYWNrZXQgcmVhZC4KICAgCiAgICAtIFRoZSBwcmVzZW5jZSBvZiBhIHNlc3Npb24gd2l0aCBhIGJ1ZmZlcmVkIHBhcnRpYWwgcGFja2V0IG5vIGxvbmdlcgogICAgICBjYXVzZXMgc25tcF9zZWxlY3RfaW5mbyB0byByZXR1cm4gd2l0aCBhIHRpbWVvdXQgb2YgemVyby4KICAgCiAgICAtIEZyZWUgdGhlIHN1YnNlc3Npb25zIG9mIGEgc2Vzc2lvbiB3aGVuIGRvaW5nIGFuIHNubXBfc2Vzc19jbG9zZTsKICAgICAgdGhpcyBmaXhlcyBhbiBBZ2VudFggbWVtb3J5IGxlYWsgd2hlbiBzdWJhZ2VudHMgY29tZSBhbmQgZ28uCiAgIAogICAgLSBQZXJmb3JtIGNhbGxiYWNrcyB3aXRoIGFuIG9wZXJhdGlvbiBhcmd1bWVudCBvZgogICAgICBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgd2hlbiB5b3UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDMtMzEgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgTWFkZSB0cmFuc3BvcnQgZG9tYWluIGNvbnN0CiAgIAoyMDAxLTAzLTMxIDA1OjU1ICBqYnBuCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB0aGF0IGNhbiBvY2N1ciB3aGVuIGRlcmVnaXN0ZXJpbmcgY2FsbGJhY2tzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZmlsZSBSRUFETUUuYWdlbnR4IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUyAoVjQtMi1wYXRjaGVzLjEpLCBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBsaWJzbm1wLmRlZgo6CgogICBBZGQgdmFjbV9pc19jb25maWd1cmVkLgogICAKMjAwMS0wMy0yOCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDY6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MzYgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgLSByZW5hbWUgY2FsbGJhY2sgb3BlcmF0aW9ucyB0byBTTk1QX0NBTExCQUNLX09QXzxuYW1lPgogICAgLSBhZGQgbmV3IG9wZXJhdGlvbnMgU05NUF9DQUxMQkFDS19PUF9DT05ORUNULCBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QKICAgIC0gYWRkIGxlZ2FjeSBkZWZpbml0aW9ucyBmb3IgUkVDRUlWRURfTUVTU0FHRSwgVElNRURfT1VULCBTRU5EX0ZBSUxFRAogICAKMjAwMS0wMy0yNyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgY2hhbmdlIGZwcmludGYgLT4gc25tcF9sb2cuCiAgIERvbid0IGFsbG93IG1vZGlmaWNhdGlvbnMgb2YgcmVhZC1vbmx5IHJvd3MgaW4gbXRlT2JqZWN0c1RhYmxlLgogICAKMjAwMS0wMy0yNyAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMKLCBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBTdXBwb3J0IGZvciBuZXcgZmVhdHVyZXMgaW4gdGhlIERJU01BTi1FVkVOVC1NSUIgY29kZToKICAgICBOZXcgc25tcGQuY29uZiB0b2tlbnM6CiAgICAgIC0gbW9uaXRvciBbLW8gb2lkLi4uXSBbLXUgdXNlcl0gb2lkIFsoPXwhPXw8PXwuLi4pIFZBTFVFXS4KICAgICAgLSBkZWZhdWx0TW9uaXRvcnMgeWVzCiAgIAoyMDAxLTAzLTI3IDEwOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTW92ZWQgKiBmcm9tIGJlZ2lubmluZyBvZiByb3V0aW5lIHRvIHRoZSBzYW1lIGxpbmUgYXMgdGhlIHJldHVybgogICB2YXJpYWJsZSBkZWNsYXJhdGlvbi4gIFdhcyBjYXVzaW5nIGV0YWdzIGdyaWVmIHRoZSBvdGhlciB3YXkuCiAgIAoyMDAxLTAzLTI3IDEwOjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbjogdXNlICVzIGluc3RlYWQgb2YgQHMgZm9yIHNlYXJjaC9yZXBsYWNlIGRlbGltaXRlcnMuCiAgIAoyMDAxLTAzLTI3IDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgdHJhcF9mbXRfZnJlZSBuZWVkcyAoKXMuCiAgIAoyMDAxLTAzLTI3IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgSGFuZGxlIG5vbi1yZXNwb25zaXZlIEFnZW50WCBzdWItYWdlbnRzIG1vcmUgcm9idXN0bHkuCiAgICAgIChCYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEhhcnJpZSBIYXpld2lua2VsICYgUGF1bCBSYXNtdXNzZW4pCiAgIAoyMDAxLTAzLTI3IDA4OjAzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBdm9pZCBkb3VibGUtZnJlZWluZyBvZiBjYWNoZWQgYWRkcmVzcyBzdHJpbmdzLgogICAgICAoSm9obidzIGltcHJvdmVtZW50IHRvIG15IHN1Z2dlc3RlZCBmaXgpLgogICAKMjAwMS0wMy0yNyAwMjozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKICAgKFY0LTItcGF0Y2hlcy5bMSwyLDFdKSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGlwZi1tb2QucGwgKFY0LTItcGF0Y2hlcy4xKSwgaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAwNzo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIEFTTl9PQ1RFVF9TVFIgcmF0aGVyIHRoYW4gdGhlIGhpc3RvcmljIEFTTl9CSVRfU1RSIGZvciAnYicgb2JqZWN0IHZhbHVlcwogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAoVjQtMi1wYXRjaGVzLjMpLCBhZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MzAgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBdm9pZCBjcmFzaCBpbiBzbm1wX3NodXRkb3duIG9uIHBsYXRmb3JtcyB0aGF0IGNoZWNrIHBvaW50ZXIgdmFsaWRpdHkKICAgaW4gZnJlZSgzKSwgZS5nLiBGcmVlQlNELgogICAKMjAwMS0wMy0yMSAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMKLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIGNvcHlfbndvcmQgY3JlYXRlZCB0aGF0IGNoZWNrcyBidWZmZXIgbGVuZ3Rocy4KICAgTWFkZSBldmVyeXRoaW5nIHVzZSBpdC4KICAgCjIwMDEtMDMtMjEgMDg6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0yMCAwOToxMyAgamJwbgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIFB1cmlmeSBhbmQgTkZTIHN0dWZmCiAgIAoyMDAxLTAzLTE2IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIGFkZGVkIE1JVF9ORVdfQ1JZUFRPIChmb3Iga3NtKSBkZWZpbml0aW9uIHdoaWNoIHdhcyBtaXNzaW5nCiAgIAoyMDAxLTAzLTE2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGZpeCByaWRpY3Vsb3VzIG1lbW9yeSBsZWFrIGluIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgd2hvb3BzLiAgTWlzc2VkIGEgbWVyZ2UgY29uZmxpY3QgbGluZQogICAKMjAwMS0wMy0xNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBSRUFETUUud2luMzIsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcGQuOAosIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LAogICBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9SRUFETUUubWlicywKICAgbWlicy9UVU5ORUwtTUlCLnR4dCwgbWlicy9pYW5hbGlzdCwgbWlicy9taWJmZXRjaAosIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYsIG1pYnMvc21pc3RyaXAKLCBwZXJsL1NOTVAvU05NUC54cywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5oLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICBtZXJnZSBmcm9tIHBhdGNoZXMgYnJhbmNoOiBtZXJnZTItPjMuCiAgIAoyMDAxLTAzLTE1IDEwOjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaDoKCiAgIGV4dHJhIG1lbWJlcnMgZm9yIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAKMjAwMS0wMy0xNSAwNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBydW4gc2lnbmFsIGhhbmRsZXJzIGVhcmxpZXIKICAgCjIwMDEtMDMtMTQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5oIChWNC0yLXBhdGNoZXMuMiksIGFnZW50X3RyYXAuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6IG1ha2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycyBhIHB1YmxpYyBmbi4KICAgCjIwMDEtMDMtMTQgMTI6MTYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMTowNSAgc2xpZgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaAosIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgdGhlIHRlc3Qgc2NyaXB0IGNoYW5nZXMgbWFkZSBpbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaC4KICAgCjIwMDEtMDMtMTQgMTA6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQ2hhbmdlIHRvIGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZyB0byBzdG9wIGl0IHJldHVybmluZyBUUlVFIGFsbCB0aGUKICAgdGltZQogICAKMjAwMS0wMy0xNCAxMDo1MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICAgLSByb3VnaCBzdGFiIGF0IGRpc2NvbnRpbnVpdHkgcHJvY2Vzc2luZwogICAgLSBiYWlsIG91dCBvZiBnZXROZXh0LXR5cGUgbG9vcHMgb24gYSBiYWRUeXBlIGNvbmRpdGlvbgogICAKMjAwMS0wMy0xNCAxMDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBrZXJiZXJvcyBSRUFETUUgZmlsZSBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMTQgMTA6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBHZXQgcmV0dXJuZWQgKnZhcl9sZW4gcmlnaHQgZm9yIG10ZVRyaWdnZXJEZWx0YURpc2NvbnRpbnVpdHlJRAogICAKMjAwMS0wMy0xNCAxMDoxOSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBxdWlldCBzb21lIHdhcm5pbmdzLgogICAKMjAwMS0wMy0xNCAxMDoxOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgS1NNIHBhdGNoIGZyb20gS2VuIEhvcm5zdGVpbi4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd3J1bi5jIChWNC0yLXBhdGNoZXMuNSksIGhyX3N3cnVuLmMKOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRuClhuCkhopuZ2VyKQogICAKMjAwMS0wMy0xNCAwNToyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMDMtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgIC0gc2F2ZSBvcmlnaW5hbCBQRFUncyB0cmFuc3BvcnQgZG9tYWluIC0tIG5lY2Vzc2FyeSBmb3IKICAgICAgY29tbXVuaXR5IHN0cmluZyBwcm9jZXNzaW5nCiAgIAogICAgICBDQVVUSU9OOiBpbmNvbXBhdGlibGUgY2hhbmdlIGluIGZvcm1hdCBvZiBtdGVUcmlnZ2VyVGFibGUKICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBlbnRyeQogICAKICAgIC0gZml4IG1lbW9yeSBsZWFrIGluIG10ZV9ydW5fdHJpZ2dlciBieSByZWxlYXNpbmcgUERVcwogICAKICAgIC0gc2VuZCAiYmFkIHR5cGUiIG5vdGlmaWNhdGlvbnMgaW4gc29tZSBjYXNlcwogICAKICAgIC0gb3RoZXIgbWlub3IgbWVtb3J5IGxlYWtzCiAgIAogICAgLSAiZGVsdGEiIHNhbXBsZVR5cGUgaGFuZGxlZCBmb3IgYm9vbGVhbiB0cmlnZ2VycwogICAKICAgIC0gbW9yZSAiWFhYOiIgY29tbWVudHMhCiAgIAoyMDAxLTAzLTEzIDEzOjUyICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHN1cHBvcnQgZm9yIEludGVnZXIzMgogICAKMjAwMS0wMy0xMSAwODo0MyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3Qgd2hldGhlciBhbiBPSUQgY29ycmVzcG9uZHMgdG8gYSBzdXBwb3J0ZWQgdHJhbnNwb3J0CiAgIGRvbWFpbi4KICAgCjIwMDEtMDMtMTEgMDc6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmg6CgogICBBZGQgI2luY2x1ZGVzIHRvIG1ha2Ugc3RydWN0IHNvY2thZGRyX2luIGNvbXBsZXRlCiAgIAoyMDAxLTAzLTExIDA3OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaDoKCiAgIFJlbW92ZSBzcHVyaW91cyAjaW5jbHVkZQogICAKMjAwMS0wMy0wOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcnd1c2VyIC1zIG1vZGVsIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAxLTAzLTA5IDA1OjUyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU2V0IGEgUERVJ3Mgb3BhcXVlIGRhdGEgb24gYSB0Y3BfcmVjdjsgdGhpcyBpc24ndCBuZWNlc3NhcnkgdG8gc2VuZAogICByZXBsaWVzIChiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBzdHJvbmdseSBjb25uZWN0ZWQpIGJ1dCBpZgogICB5b3UgZG9uJ3QgZG8gdGhpcyB0aGVuIHlvdSBjYW4ndCBkbyAiY29tMnNlYyIgdHlwZSBwcm9jZXNzaW5nIGZvciBQRFVzCiAgIHJlY2VpdmVkIG9uIFRDUCBzZXNzaW9ucy4uLiBpbnRlcmVzdGluZy4KICAgCjIwMDEtMDMtMDkgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggYmFkIGFzc3VtcHRpb24gdGhhdCBjb21tdW5pdHkgc3RyaW5nIGlzIHplcm8tdGVybWluYXRlZAogICAKMjAwMS0wMy0wOCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29ycmVjdCB2ZXJzaW9uIHN0YXRlbWVudHMgdG8gaW5kaWNhdGUgbmV0LXNubXAuCiAgIC0gcmVtb3ZlIG15IG5hbWUgYXMgYXV0aG9yIChJJ20gY2VydGFpbmx5IG5vdCB0aGUgb25seSBvbmUpCiAgIC0gYWRkIHdlYiBhZGRyZXNzLgogICAKMjAwMS0wMy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBLZW4gSG9ybnN0ZWluJ3MgbmFtZSB0byBjb250cmlidXRlcnMgbGlzdC4KICAgLSBSZW1vdmVkIG1pbmUgZnJvbSBiZWluZyBsaXN0ZWQgc2VwYXJhdGVseS4KICAgCjIwMDEtMDMtMDggMTQ6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi9zbm1wa3NtLmMsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgQWRkZWQgYSBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2R1bGUgKGtzbSkuCiAgICAgSG93ZXZlciwgTmVlZHMgbGlicmFyaWVzICgtbGtyYjUgLWxjb21fZXJyKSBub3QgYmVpbmcgY2hlY2tlZCBmb3IgY3VycmVudGx5LgogICAKMjAwMS0wMy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgV2hvb3BzLiAgU2hvdWxkbnQgaGF2ZSBhIG5lZ2F0aW9uIHNpZ24gb24gdGhlIG1vc3QgcmVjZW50IGNoZWNraW4uCiAgIAoyMDAxLTAzLTA4IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJZiBOT19QUk9CRSBpcyBzZXQsIGRvbid0IGRvIGFueSBwb3N0IHByb2JpbmcgYWN0aXZpdGllcyBlaXRoZXIgbGlrZQogICB0aW1lIHVwZGF0aW5nIGFuZCB1c2VyIGNyZWF0aW9uLgogICAKMjAwMS0wMy0wOCAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBSZW1vdmUgc3RyZHVwKClzIG9uIHNvbWUgc2Vzc2lvbiBwYXJhbWV0ZXJzIHdoaWNoIGNhdXNlIG1lbW9yeSBsZWFrcwogICAoc2luY2Ugc25tcF9vcGVuIGRlZXAgY29waWVzIHRoZSBpbnB1dCBzZXNzaW9uIGFueXdheSkKICAgCjIwMDEtMDMtMDggMDg6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIE1ha2Ugc3VyZSBzZXNzIGZpZWxkIG9mIG5ldyBlbnRyaWVzIGlzIGluaXRpYWxpc2VkIHRvIE5VTEwuCiAgIAoyMDAxLTAzLTA4IDA3OjQ5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIE1ha2UgY29uZmlnIHRva2VuIHBhcnNlciB1cGRhdGUgdGltZXN0YW1wIG9uIGVudHJ5IGl0IGNyZWF0ZXM7CiAgIG1vdmUgdXBkYXRlX3RpbWVzdGFtcCBmdW5jdGlvbi4KICAgCjIwMDEtMDMtMDcgMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIHJlbW92ZSB1bm5lZWRlZCB0aW1lc3RhbXAgc3VwcG9ydAogICAKMjAwMS0wMy0wNiAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfc2VjbW9kLmMKLCBzbm1wX3NlY21vZC5oLCBzbm1wdXNtLmM6CgogICBzZWNtb2Qgc3RydWN0IHN5bWJvbCBuYW1lIGNoYW5nZXMgdG8gc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlLgogICAKMjAwMS0wMy0wNiAxNjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIHNldCB0aGUgZGVmYXVsdCBwZHUgc2VjdXJpdHkgbW9kZWwgdG8gU05NUF9ERUZBVUxUX1NFQ01PREVMIChub3QgMCkuCiAgIC0gZG9uJ3QgZm9yY2UgdGhlIHNlY3VyaXR5IG1vZGVsIG9mIHRoZSBzZXNzaW9uIG9uIHRoZSBwZHUgaWYgYWxyZWFkeSBzZXQuCiAgIAoyMDAxLTAzLTA2IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGhvcGVmdWxseSBmaXggdG8gYWxsb3cgb3RoZXIgKHJlZ2lzdGVyZWQpIHNlY3VyaXR5IG1vZGVscyB0byBiZSB1c2VkLgogICAKMjAwMS0wMy0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMjAwMS0wMy0wNiAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICBDcmVhdGUgYSBuZXcgc2VjbW9kIGNhbGxiYWNrIHdoZW4gYSB0aW1lb3V0IG9uIGEgcGR1IG9jY3Vycy4KICAgCjIwMDEtMDMtMDYgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcHJvcGVybHkgaW5zdGFsbCBzZWNtb2QgaGVhZGVyIGxpc3QuCiAgIAoyMDAxLTAzLTA2IDA4OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gYnVnIGZpeGVzIGZvciBzZWNtb2QgcmVsYXRlZCBzdHVmZiAoaXQgY29tcGlsZXMgbm93IChvcHBzKSkuCiAgIAoyMDAxLTAzLTA2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIC0gdHdvIG5ldyBzZWNtb2QgY2FsbGJhY2tzIGZvciBmcmVlaW5nIGEgcGR1IGFuZCBhIHNlc3Npb24uCiAgIC0gbW92ZSB0cmFuc3BvcnQgY2xvc2luZyBpbiBzbm1wX3Nlc3NfY2xvc2UoKSB0byBhZnRlciBwZW5kaW5nCiAgICAgcmVxdWVzdHMgYXJlIGZyZWVkL2Nsb3NlZCBpbiBjYXNlIHNvbWV0aGluZyBuZWVkcyB0byBtYWtlIHVzZSBvZiB0aGUKICAgICB0cmFuc3BvcnQgYmVmb3JlIGl0IGNsb3Nlcy4KICAgCjIwMDEtMDMtMDYgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgUGFzcyBpbiBwZHUgdG8gc2VjbW9kIGVuY29kZS9kZWNvZGUgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA2IDAzOjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vZGlmaWVkIGZ1bmN0aW9uIEludGVyZmFjZV9JbmRleF9CeV9OYW1lIChTb2xhcmlzIHNwZWNpZmljKSB0byBjb3BlIG1vcmUKICAgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMKICAgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZCBtZW1vcnkgcmVhZHMuCiAgIAoyMDAxLTAzLTA1IDE2OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXZlcnNlIGNhbGxiYWNrIG9yZGVyaW5nIG9mIG5vcm1hbCBjYWxsYmFjay9zZWNtb2QgY2FsbGJhY2sKICAgcHJvY2Vzc2luZyBpbiBzZXNzX2NvcHkoKS4KICAgCjIwMDEtMDMtMDUgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIHJlbW92ZSB1bnVzZWQgZnJlZSBmdW5jdGlvbiBjYWxscyBmb3Igc2VjdXJpdHkgbW9kdWxlIHVucmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDMtMDUgMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgbWlub3IgQVBJIGNoYW5nZXMgdG8gdGhlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbCBoYW5kbGluZy4KICAgCjIwMDEtMDMtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3Blcmx5IHJlc3BlY3QgdGhlIERPTlRfUFJPQkVfRkxBRy4KICAgCjIwMDEtMDMtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX3NlY21vZC5oCjoKCiAgIGFkZCBhIHNlc3Npb24gcG9pbnRlciB0byB0aGUgdjMgYnVpbGQgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA1IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIEFkZCBhIGtyYjUgc3BlY2lmaWMgZXJyb3IgY29kZS4KICAgCjIwMDEtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcHJvcGVybHkgaGFuZGxlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2R1bGVzCiAgIAoyMDAxLTAzLTA1IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIG1rZGlyIHNubXBsaWIgYmVmb3JlIGNyZWF0aW5nIGEgZmlsZSBpbiBpdAogICAKMjAwMS0wMy0wNSAxNDo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSByZXNwZWN0IG5vbi1sb2NhbCBzcmNkaXJzIGZvciB0cmFuc3BvcnQvc2VjbW9kcwogICAKMjAwMS0wMy0wNSAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9pbmRleC5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvLmN2c2lnbm9yZSwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBzdXBwb3J0IGZvciBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWxzLiAgQ3VycmVudGx5IG9ubHkgdGhlIFVTTSBpcwogICBhdmFpbGFibGUsIGJ1dCBhIG5ldyBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2RlbCB3aWxsIGJlIGF2YWlsYWJsZQogICBzaG9ydGx5LiAgVGhlc2UgY2hhbmdlcyBzaW1wbHkgbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW9yZSB0aGFuIG9uZQogICBzZWN1cml0eSBzZXJ2aWNlLgogICAKMjAwMS0wMy0wNSAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfc2VjbW9kLmMsIHNubXBfc2VjbW9kLmg6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgYXV0aG9ycyBsaXN0LgogICAKMjAwMS0wMy0wNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uaDoKCiAgIENvbW1lbnQgcmUtYXJyYW5naW5nIHRvIGFjdHVhbGx5IGJlIG5lYXIgdGhlIGZ1bmN0aW9ucyB0aGV5J3JlIGRlc2NyaWJpbmcuCiAgIAoyMDAxLTAzLTA1IDA2OjEwICBqYnBuCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCBnZXRfbXlhZGRyKCkgZnVuY3Rpb24gdG8gY29wZSBtb3JlIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzCiAgIG9mIGludGVyZmFjZXMsIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBub24tSVB2NCBhZGRyZXNzZXMgb24gc29tZQogICBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcyBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkCiAgIG1lbW9yeSByZWFkcy4gIFVzZSAib2ZmaWNpYWwiIGRlZmluaXRpb24gb2YgSU5BRERSX0xPT1BCQUNLLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvUkVBRE1FLm1pYnM6CgogICBmaWxlIFJFQURNRS5taWJzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgZmlsZSBpYW5hbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgZmlsZSByZmNsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIGZpbGUgcmZjbWlicy5kaWZmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDEgMTk6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfYXBpLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wMi0yOCAyMzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZyhjaGFyICpsaW5lKSB0byBwYXJzZSBhIC5jb25mIGNvbmZpZ3VyYXRpb24KICAgICBsaW5lIGF0IGFueSB0aW1lIGluIHRoZSBjb2RlIChoYW5kbGVycyBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhbmQpLgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnX3JlbWVtYmVyKGNoYXIgKmxpbmUpIHRvIG1lbW9yaXplIGl0IGZvcgogICAgIGxhdGVyIHVzZS4KICAgLSByZWFkX2NvbmZpZ3MsIGV0IGFsLCB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGVtIGFmdGVyIHJlYWRpbmcKICAgICBldmVyeXRoaW5nIGVsc2UuCiAgIC0gQWRkZWQgYSAtWSBmbGFnIHRvIHNubXBfcGFyc2VfYXJncyB0byBzdG9yZSByZWFkIGNvbmZpZyBkaXJlY3RpdmVzCiAgICAgZm9yIGxhdGVyIHVzZSwgdGh1cyBhbGxvd2luZyB5b3UgdG8gc3BlY2lmeSAuY29uZiBkaXJlY3RpdmVzIG9uIHRoZQogICAgIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDItMjcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgYW5kIFZBQ00gY2hlY2tpbmcgaW50ZXJhY3Rpb24uCiAgIChGaXggcHJvdmlkZWQgYnkgRnJhbmsgU3RyYXVzcykKICAgCjIwMDEtMDItMjEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB1Y2Qtc25tcC1pbmNsdWRlcy5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHVjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYyAoVjQtMi1wYXRjaGVzLjIpLCBpbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2YXJfc3RydWN0LmggKFY0LTItcGF0Y2hlcy4xKSwgdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNiAwNDoxNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBDaGFuZ2UgYmVoYXZpb3VyIG9uIGN5Z3dpbiB0byBleGNsdWRlIFVuaXggZG9tYWluIHRyYW5zcG9ydHMgYnkgZGVmYXVsdAogICBvbiBjeWd3aW4sIGFuZCBhbHNvIGZpeCBhIG1pbm9yIGJ1ZywgdGhhbmtzIHRvIHN1Z2dlc3Rpb25zIGJ5IFBldGVyIEZvbGsuCiAgIAoyMDAxLTAyLTE0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMiAxNDoxMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZGVkIEthcmwncyBwYXRjaCBmb3IgdXNlbnVtZXJpYwogICAKMjAwMS0wMi0xMiAxMzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCwgU05NUC5wbSwgU05NUC54cywKICAgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgYWRkZWQgdHJhcCByZWNlcHRpb24gQVBJIGZyb20gUGhpbGlwIFByaW5kZXZpbGxlIDxwaGlsaXBwQGNpc2NvLmNvbT4KICAgCjIwMDEtMDItMTEgMDg6MjMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2FkZCBub3Qgc25tcF9zZXNzX2FkZCAodGhlIGxhdHRlciBkb2Vzbid0IGFkZCBhIHNlc3Npb24gdG8KICAgdGhlIFNlc3Npb24gbGlzdCwgYW5kIGl0IHRoZXJlZm9yZSB3b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdCgpCiAgIGZkc2V0LCBoZW5jZSBzbm1wdHJhcGQgd2lsbCBuZXZlciByZWNlaXZlIHZlcnkgbXVjaCkuCiAgIAoyMDAxLTAyLTExIDA4OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGltcHJvcGVybHktdGVybWluYXRlZCBsaXN0IGluIGNvbTJzZWMgaGFuZGxpbmcuCiAgIAoyMDAxLTAyLTExIDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDbGVhbiB1cCBtZXJnZSAoPj4+Pj4+LCA9PT09PT0gZXRjLiBsZWZ0IGJlaGluZCkuCiAgIAoyMDAxLTAyLTEwIDA5OjI2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvLgogICAKMjAwMS0wMi0xMCAwOToxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmMsCiAgIHN1YmFnZW50LmM6CgogICBNZW1vcnkgbGVhayBwYXRjaGVzIChzb3VyY2Vmb3JnZSBwYXRjaCAjMTAzNjA1KS4KICAgUmVtb3ZlIGEgZmV3IHN0cmR1cCgpcywgYW5kIGNhbGwgZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24oKSByYXRoZXIgdGhhbgogICBmcmVlKCkgaW4gc3ViYWdlbnQuYzpoYW5kbGVfYWdlbnR4X3BhY2tldCgpIGZvciBBR0VOVFhfTVNHX1JFU1BPTlNFCiAgIGFuZCBkZWZhdWx0IGNhc2VzLCB0byBlbnN1cmUgZnJlZSgpaW5nIG9mIGNsb25lZCBQRFUgYWxsb2NhdGVkIGJ5CiAgIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAKMjAwMS0wMi0xMCAwNzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBBQUw1UFZDRG9tYWluLmgsCiAgIHNubXBJUFhEb21haW4uYywgc25tcElQWERvbWFpbi5oLCBzbm1wVENQRG9tYWluLmMKLCBzbm1wVENQRG9tYWluLmgsIHNubXBVRFBEb21haW4uYywKICAgc25tcFVEUERvbWFpbi5oLCBzbm1wVW5peERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5oCiwgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaDoKCiAgIFdob29wcy4gIEZvcmdvdCB0aGUgbmV3IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGx1Z2dhYmxlIHRyYW5zcG9ydCBzdHVmZi4KICAgCjIwMDEtMDItMDkgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLCBtdGVPYmplY3RzVGFibGUuYwosIG10ZU9iamVjdHNUYWJsZS5oLCBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmgsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgSW1wbGVtZW50ZWQgYW5kIG1hZGUgdXNlIG9mIG10ZU9iamVjdHNUYWJsZSB0byBzZW5kIGFkZGl0aW9uYWwgb2JqZWN0cyBvdXQgd2l0aCB0cmFwcyBnZW5lcmF0ZWQuICBBbHNvLCBkb24ndCByZXR1cm4gZGF0YSBmb3IgbWlzYyB0YWJsZXMgd2hlbiB0aGF0IHRyaWdnZXIgaXNuJ3QgZGVmaW5lZCB0byB1c2UgdGhhdCB0ZXN0IHR5cGUuCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jIChWNC0yLXBhdGNoZXMuMiksIG1pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuMSksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmMKICAgKFY0LTItcGF0Y2hlcy5bMSw0XSksIG1lbW9yeV9mcmVlYnNkMi5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNzAyOiBmaXggc3dhcCByZXBvcnRpbmcgb24gZnJlZWJzZCA0LjIKICAgCjIwMDEtMDItMDkgMTA6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi92YWNtLmg6CgogICBBcHBsaWVkIHBhdGNoIDEwMzUxMDogZG9tYWluIHRyYW5zcG9ydCBpbmRlcGVuZGVuY2UuICBOb3RlOiBUcmFwcy9WQUNNIGJyb2tlbi4KICAgCjIwMDEtMDItMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQwMjBzbm1wdjNnZXQsCiAgIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LAogICBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwKICAgVDAyNXNubXB2M2dldFNIQURFUywgVDAyOHNubXB2M2dldGZhaWwsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24sIFQwNTNhZ2VudHYxdHJhcCwKICAgVDA1NGFnZW50djJjdHJhcCwgVDA1NWFnZW50djFtaW50cmFwLAogICBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMDU4YWdlbnRhdXRodHJhcCwgVDEwMGFnZW50aHVwCiwgVDExMGFnZW50eGdldCwgVDExMWFnZW50eHNldCwgVDExMmFnZW50eHNldGZhaWwKLCBUMTEzYWdlbnR4dHJhcCwgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQKLCBUMTIycHJveHlzZXRmYWlsOgoKICAgdXBkYXRlZCBtb3N0IHRlc3RzIHRvIHVzZSBudW1lcmljIE9JRHMgc28gYXMgdG8gbm90IHJlbHkgb24gbWliIHBhcnNpbmcKICAgCjIwMDEtMDItMDkgMDc6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgcHJvdG90eXBlOiBnZXRfYWdlbnR4X3RyYW5zSUQKICAgCjIwMDEtMDItMDggMTQ6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC90cmFwdG9lbWFpbCwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgdHJhcHRvZW1haWwgcGVybCBzY3JpcHQgY3JlYXRlZCBhcyBhbiBleGFtcGxlIHRyYXBoYW5kbGUgc2NyaXB0CiAgIAoyMDAxLTAyLTA4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgYXBwcy9zbm1wZGVsdGEuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvbWliMmMsIG1hbi9zbm1wY21kLjEsIG1pYnMvUk1PTi1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIE1lcmdlIGZyb20gVjQtMi1wYXRjaGVzOiBtZXJnZSAxLT4yCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYyAoVjQtMi1wYXRjaGVzLjEpLCBkaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHVzZSBzbm1wX2VudW0ncyBwcm9wZXJseSAoc3RyZHVwKCkgdGhlIHN0cmluZ3MgZmlyc3QpCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgcHJvcGVyIGNvbnN0bmVzcyBmb3Igc29tZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLgogICAKMjAwMS0wMS0zMCAxMzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IGJ1ZyBJIGp1c3QgaW50cm9kdWNlZCAocmV0dXJuaW5nIHByb3BlciBzYXZldG8gcG9pbnRlcikKICAgCjIwMDEtMDEtMzAgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSBzbm1wc2V0cyBhcmUgc3VwcG9ydGVkCiAgICAgLSBBIG5ldyAic2V0IiBidXR0b24gaGFzIGJlZW4gYWRkZWQgdG8gcGVyZm9ybSBzZXRzIG9uIGFuIG9pZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIGEgdGFibGUgYXJlIG5vdyBidXR0b25zIHRoYXQgYnJpbmcgdXAgdGhlCiAgICAgICBzZXQgd2luZG93IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgaW5zdGF0ZWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiB0aGUgb3V0cHV0IG9mIHNubXB7Z2V0LHdhbGssZ2V0bmV4dH0KICAgICAgIGJ1dHRvbnMgYXJlIGRpc3BsYXllZCBhcyBibHVlIGFuZCBhcmUgY2xpY2thYmxlIHRvIGNoYW5nZSB0aGVpcgogICAgICAgdmFsdWVzLgogICAtIHNldHRpbmdzIGNvbmZpZ3VyZWQgdmlhIHRoZSBvcHRpb25zIG1lbnUgY2FuIG5vdyBiZSBzYXZlZC4KICAgLSB1c2UgR2V0b3B0OjpTdGQgbm93LgogICAtIHN1cHBvcnRzIG1vc3Qgb2YgdGhlIGltcG9ydGFudCBzbm1wY21kKDEpIGZsYWdzIGZvciBzZXNzaW9uIHNldHVwLgogICAKMjAwMS0wMS0zMCAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmgsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLAogICBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIG10ZVRyaWdnZXJUYWJsZS5jLCBtdGVUcmlnZ2VyVGFibGUuaCwKICAgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgSW5pdGlhbCAobm90LWNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRElTTUFOLUVWRU5ULU1JQjoKICAgICAtIEltcGxlbWVudHMgYWxsIDMgdGVzdHMgKGJvb2xlYW4sIHRocmVzaG9sZCBhbmQgZXhpc3RlbmNlKS4KICAgICAtIG5vdCByaWdvcm91c2x5IHRlc3RlZC4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHF1ZXJ5aW5nIHRoZSBsb2NhbCBhZ2VudAogICAgICAgKG10ZVRyaWdnZXJUYXJnZXRUYWcgbXVzdCBiZSAnJykuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzZW5kaW5nIHRyYXBzIGFuZCB0aGUgbXRlT2JqZWN0c1RhYmxlIGlzCiAgICAgICBub3QgaW1wbGVtZW50ZWQgKG15IG5leHQgdG9kbyBpdGVtKQogICAgIC0gT25seSB0aGUgZGVmYXVsdCB0cmFwcyBhcmUgc2VudC4gIFRoZSBtdGVFdmVudCogb2JqZWN0cyBoYXZlbid0CiAgICAgICBiZWVuIGltcGxlbWVudGVkIChubyBzZWxmLWRlZmluZWQgdHJhcHMvc2V0cykuCiAgICAgLSBubyBlYXN5IHRvIHVzZSBjb25maWd1cmF0aW9uIHlldCAoc29vbikuCiAgICAgLSBjb25maWd1cmUgd2l0aCAtLXdpdGgtbWliLW1vZHVsZXM9ZGlzbWFuL2V2ZW50LW1pYgogICAKMjAwMS0wMS0zMCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHNwcmludGYgZm9yIHN0cmluZ3MgdGhhdCBtYXkgbm90IGJlIG51bGwgdGVybWluYXRlZC4KICAgCjIwMDEtMDEtMzAgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICBJbXBsZW1lbnRlZCBnZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCkgYW5kIHNldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKToKICAgICAtIFRoZXNlIGFsbG93IGEgbWliIG1vZHVsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudAogICAgICAgYWdlbnRfc25tcF9zZXNzaW9uIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgIC0gVGhpcyBzaG91bGQgcHJvYmFibHkgZG9uZSBkaWZmZXJlbnRseSBsYXRlciB3aGVuIHdlIGNoYW5nZSB0aGUgbWliCiAgICAgICBtb2R1bGUgYXBpLgogICAgIC0gVGhpcyB3aWxsIGNvbXBsZXRlbHkgZmFpbCB0byB3b3JrIHByb3Blcmx5IGluIGEgbXVsdGktdGhyZWFkZWQKICAgICAgIGFnZW50ICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbnl3YXkpLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgZGVidWdnaW5nIHN0YXRlbWVudCBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcHJvcGVybHkgbWFsbG9jIGEgMSBieXRlLCBOVUxMIGNoYXJhY3RlciBzdHJpbmcgZm9yICIiIHJlYWQgc3RyaW5ncy4KICAgCjIwMDEtMDEtMjkgMTE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIGRhdGEgc2VwZXJhdGlvbiBhbmQgbmV3IGZ1bmN0aW9uczoKICAgICBoZWFkZXJfY29tcGxleF9nZXRfZnJvbV9vaWQoKQogICAgIGhlYWRlcl9jb21wbGV4X2FkZF9kYXRhX2J5X29pZCgpCiAgIAoyMDAxLTAxLTEyIDA4OjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0OgoKICAgLSBESVNNQU4tRVZFTlQtTUlCIGFkZGVkIHRvIG1pYiByZXBvc2l0b3J5LiAoT3IsIGd1ZXNzIHdoYXQgSSBkaWQgZHVyaW5nIGEgNiBob3VyIHBsYW5lIGZsaWdodD8pCiAgIAoyMDAxLTAxLTEyIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgYml0IHN0cmluZ3MKICAgCjIwMDEtMDEtMTIgMDg6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIG5ldyBkYXRhIHR5cGVzIHN1cHBvcnRlZCBmb3IgcmVhZF9jb25maWcgcm91dGluZXM6IHVuc2lnbmVkLCBiaXRfc3RyLgogICAKMjAwMS0wMS0xMiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbW92ZSBjb25maWcgc3RyaW5nIGluaXRpYWxpemVyIGFib3ZlIHN1YmFnZW50IGNoZWNrIHNvIGl0cyBrbm93biBldmVuCiAgIGlmIG5vdCB1c2VkLgogICAKMjAwMS0wMS0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKICAgKFY0LTItcGF0Y2hlcy5bMSwxXSksIG1pYjJjLnN0b3JhZ2UuY29uZiwKICAgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0wOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBkc19hZ2VudC5oLCB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oCjoKCiAgIFN1YkFnZW50IHBpbmcgc3VwcG9ydDoKICAgICAtIGFnZW50eFBpbmdJbnRlcnZhbCBzcGVjaWZpZXMgU0VDT05EUyBiZXR3ZWVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICAgICB0cmllcyB0byBwaW5nIHRoZSBtYXN0ZXIgYWdlbnQuCiAgICAgLSBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCwgaXQgdHJpZXMgdG8gcmVjb25uZWN0LgogICAgIC0gZmFpbGluZyB0aGF0IGl0IHRyaWVzIGV2ZXJ5IFNFQ09ORFMgYWdhaW4gdGlsbCBpdCBzdWNjZWVkcy4KICAgICAtIHJlLXJlZ2lzdGVycyBpdHMgb2lkJ3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3VidHJlZSBsaXN0LgogICAgICAgLSBtYXkgbmVlZCBzb21lIHRob3VnaHQuICBBc3N1bWVzICphbGwqIG5lZWQgdG8gYmUgcmUtcmVnaXN0ZXJlZC4KICAgICAgIC0gbmVlZHMgdG8gcmUtcmVnaXN0ZXIgc3lzb3J0YWJsZSBlbnRyaWVzIHRvbywgYnV0IGRvZXNuJ3QuCiAgICAgLSBjdXJyZW50bHkgc2VnLWZhdWx0cyBvbiBhYm91dCB0aGUgMi00dGggdGltZSBvciBzby4gIE5vdCBzdXJlIHdoeS4KICAgICAtIFNob3VsZCBtYWtlIERhdmUgc21pbGUgb3IgY3JpbmdlIG9yIGdpZ2dsZSwgbm90IHN1cmUgd2hpY2guCiAgIAoyMDAxLTAxLTA5IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIEFsbG93IGRlcmVnaXN0ZXJpbmcgb2YgY2FsbGJhY2tzCiAgIAoyMDAxLTAxLTA5IDA2OjIwICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC86IHNubXBuZXRzdGF0LmRzcCAoVjQtMi1wYXRjaGVzLjEpLAogICBzbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA0IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMsIHNubXBfZW51bS5oOgoKICAgLSBnZW5lcmljIHNubXAgZW51bSBsaXN0IHN1cHBvcnQuICBOb3QgdXNlZCBhbnl3aGVyZSAoeWV0KS4KICAgCjIwMDEtMDEtMDQgMTY6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaAosIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gbWVyZ2VkIHBhdGNoZXMgZnJvbSBWNC0yLXBhdGNoZXMgYnJhbmNoIHRvIG1haW4gYnJhbmNoLgogICAKMjAwMS0wMS0wNCAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYwo6CgogICAtIGFkZGVkIG5ldyBwcmludEhleFRleHQgc25tcC5jb25mIHRva2VuLgogICAtIGRvY3VtZW50ZWQgLU9ULCBhbmQgdGhlIHRva2VuLgogICAKMjAwMS0wMS0wNCAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICBQYXRjaCAjMTAzMDkxIGFwcGxpZWQ6CiAgICAgLSBBZGRlZCAtT1Qgb3B0aW9uIHRvIHZpZXcgaGV4IHN0cmluZ3Mgd2l0aCB0ZXh0IGluIHRoZW0uCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcDoKCiAgIGZpbGUgVDA1NWFnZW50djFtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIGZpbGUgVDA1NmFnZW50djJjbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTIyIDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0xOSAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2UgaW5pdF9zbm1wdjMoKSBkZWFsIHdpdGggYSBOVUxMIGFyZ3VtZW50IHByb3Blcmx5LgogICAKMjAwMC0xMi0xOCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiByZW1vdmUgcGFzc3Rlc3QgZnJvbSB0aGUgLmN2c2lnbm9yZSBmaWxlIChidWcgIzEyNjk0KQogICAKMjAwMC0xMi0xOCAxMDo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG06CgogICBtaW5vciBkb2MgZml4CiAgIAoyMDAwLTEyLTE0IDEzOjQ2ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IGZpeCB1cHRpbWUgZm9yIDY0LWJpdCBTb2xhcmlzCiAgIAoyMDAwLTEyLTE0IDEzOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IHN0dXBpZCBzcGVsbGluZyBlcnJvcgogICAKMjAwMC0xMi0xMyAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBjb25mdXNpb24gYmV0d2VlbiBpbnQsIHNpemVfdCwgbG9uZyBmb3IgNjQtYml0IGNvbXBpbGVzLgogICAKMjAwMC0xMi0xMyAwODo0MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcGNvbmYuMQogICAKMjAwMC0xMi0wOCAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gdmFjbV92YXJzLmMsIHZhY20uYzogaW5kZXhpbmcgb2YgdmFjbVZpZXdUcmVlRmFtaWx5RW50cnkgd2FzIGhvc2VkLCBhc3N1bWluZwogICAJdGhhdCB0aGUgU3VidHJlZSBpbmRleCBoYWQgYW4gSU1QTElFRCBhdHRyaWJ1dGUuCiAgIAoyMDAwLTEyLTA4IDE0OjQ2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6CgogICAtIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6IGZpeCBzb21lIHplcm8gaW5kZXggdmFsdWVzLgogICAKMjAwMC0xMi0wOCAxNDo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogZml4IHJldHVybnMgb2YgemVyb0RvdFplcm8gKHN1Y2ggYXMgaWZTcGVjaWZpYykKICAgCjIwMDAtMTItMDggMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXBkLmM6IHNlY3VyaXR5IG1vZGVsIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGlzIHNubXAgdmVyc2lvbiB2YWx1ZXMKICAgCjIwMDAtMTItMDYgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogTGludXgga2VybmVsIDIuMC54IGhhcyBubyBBUlBIUkRfSElQUEkKICAgCjIwMDAtMTItMDUgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggcnNubXAncyAvdXNyL2xvY2FsIGhhcmRjb2RlZCBwYXRoLgogICAKMjAwMC0xMi0wNCAxNzowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogZml4CiAgIAoyMDAwLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yICkKICAgCjIwMDAtMTItMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIC0gKE5FV1MsIFJFQURNRSk6IHVwZGF0ZXMuCiAgIAoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnhzLCB0L21pYmxvYWQudAosIHQvc3RhcnRhZ2VudC5wbDoKCiAgIGVuc3VyZSBtaWJsb2FkLnQgdXNlcyBjb3JyZWN0IE1JQkRJUiBmb3IgdGVzdGluZwogICAKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBGQVEsIFJFQURNRToKCiAgIC0gKEFHRU5ULnR4dCwgRkFRLCBSRUFETUUpOiBjb252ZXJ0IHVybCdzIHRvIHd3dy5uZXRzbm1wLm9yZy4KICAgCjIwMDAtMTItMDQgMDg6NDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KICAgCjIwMDAtMTItMDMgMDc6MjkgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSBzbm1wdHJhcGRfbG9nLmM6IGZveCBtaXNzaW5nIGxlYWRpbmcgemVyb2VzIGZvciAlLjJkIGxpa2UgZm9ybWF0cy4KICAgCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgogICAKMjAwMC0xMi0wMiAxODoyMiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzLCB0L2J1bGt3YWxrLnQsCiAgIHQvbm90aWZ5LnQsIHQvc2Vzc2lvbi50OgoKICAgZm91bmQgdGhlIHVuaW5pdGlhbGl6ZWQgZGF0YSBidWcuLi5tdXN0IGhhdmUgYmVlbiBpbiB0aGVyZSBkb3JtYW50IGZvciBhIHdoaWxlLCBvdGhlciB0ZXN0IGZpeGVzIC0gZ29vZCB0byBnbyEKICAgCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgogICAKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiByZW1vdmUgdGhlIGJ1ZyByZXBvcnQgc2NyaXB0LgogICAKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCiAgICogUE9SVElORzoKCiAgIC0gKFBPUlRJTkcpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCiAgIAoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBtZW50aW9uIHRoZSBmYWN0IHRoYXQgc25tcHYzIHRyYXBzIGFyZQogICAgIHRoZSBzYW1lIGFzIHNubXB2MiB0cmFwcy4KICAgCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdXBkYXRlLgogICAKMjAwMC0xMi0wMSAxNToxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIGZvciBwcm94eSBzdXBwb3J0LgogICAKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGEgZmV3IHRoaW5ncy4KICAgCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZGlhZ25vc2Ugd3JvbmcgcXVvdGluZyBpbiBpbmRpY2VzCiAgIAoyMDAwLTEyLTAxIDE0OjIzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBhZGQgUkZDLTEyMTMgYXMgYW4gYWxpYXNlIGZvciBSRkMxMjEzLU1JQiAodXNlZCBpbiBtYW55IG1pYnMpCiAgIAoyMDAwLTEyLTAxIDE0OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogcmVmb3JtYXQgc29tZSBkZWJ1ZyBtZXNzYWdlcyBmb3IgcmVhZGFiaWxpdHkKICAgCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogZml4IGlmVHlwZSB2YWx1ZXMgZm9yIExpbnV4CiAgIAoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCiAgIAoyMDAwLTEyLTAxIDEwOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcXVvdGUgdGhpbmdzIHdpdGggc3BhY2VzIGluIHRoZW0uCiAgIAoyMDAwLTEyLTAxIDA5OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNvbmYuMToKCiAgIC0gKHNubXBjb25mLjEpOiBxdWljayBtYW4gcGFnZSBmb3Igc25tcGNvbmYuCiAgIAoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiBjaGFuZ2Ugbm8tcGFyZW50IGxvZyBtZXNzYWdlIGludG8gYSB3YXJuaW5nLgogICAKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCiAgIAoyMDAwLTEyLTAxIDA5OjEwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMi0wMSAwNzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgdjItPnYxIHRyYXAgY29udmVyc2lvbi4KICAgCjIwMDAtMTItMDEgMDc6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB0eXBvLgogICAKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9ub3RpZnkudCwgc25tcGxpYi9taWIuYzoKCiAgIGFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQogICAKMjAwMC0xMS0zMCAxNDowNiAgbmJhCgogICAqIHNubXBsaWIvOiBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6CgogICAtIGdldG9wdC5oLCBzbm1wX3BhcnNlX2FyZ3MuaDogZXh0ZXJuICJDIiBicmFja2V0aW5nCiAgIAoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCiAgIAoyMDAwLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMS0zMCAxMDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggYmFkIHNldHMgZm9yIGFnZW50eC4KICAgCjIwMDAtMTEtMzAgMDk6MTkgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKG92L1JFQURNRSk6IG1pbm9yIGNvcnJlY3Rpb25zLCBwcm9iYWJseSBzdGlsbCBpbmNvcnJlY3QuCiAgIAoyMDAwLTExLTMwIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluLCBzbm1wY29uZiwgYWNsLCBiYXNpY19zZXR1cCwgbW9uaXRvciwgb3BlcmF0aW9uLAogICAgIHN5c3RlbSwgdHJhcHNpbmtzKToKICAgICAtIGdyb3VwaW5nIHN1cHBvcnQuCiAgICAgLSBzb3J0LW9mLXF1aWV0IG91dHB1dCBzdXBwb3J0LgogICAgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCiAgIAoyMDAwLTExLTMwIDA5OjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKICAgICBwZXJzaXN0ZW50IGRhdGEgZmlsZS4KICAgCjIwMDAtMTEtMzAgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyk6IENsZWFudXAgcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgogICAKMjAwMC0xMS0zMCAwOToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCiAgIAoyMDAwLTExLTMwIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWVudGlvbiB0aGUgVFVOTkVMLU1JQiBzdXBwb3J0LgogICAKMjAwMC0xMS0yOSAxODoyMSAgc2xpZgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZS1tYWlsIGFkZHJlc3MgZm9yIFNsaWZjYWsKICAgCjIwMDAtMTEtMjkgMTE6MzQgIG1hcnoKCiAgICogY29uZmlndXJlOgoKICAgZml4ZWQgb3JkZXIgb2YgZnVuY3Rpb24gY2hlY2tpbmcgc28gdGhhdCB2c25wcmludGYgaXMgbm90IGZvdW5kIGluIGxpYmRiIChCU0QgZGIpIGJ5IG1pc3Rha2UKICAgCjIwMDAtMTEtMjkgMDU6MTggIG1hcnoKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFJFQURNRToKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI4IDE4OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgcGVybC9TTk1QL1JFQURNRSwKICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzLAogICBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50LAogICBwZXJsL1NOTVAvdC9taWIudCwgcGVybC9TTk1QL3Qvbm90aWZ5LnQsCiAgIHBlcmwvU05NUC90L3Nlc3Npb24udCwgcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCiAgIAoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKGxvY2FsL3NubXBjb25mKToKICAgICAtIGFkZCBzdXBwb3J0IGZvciAiZ3JvdXBzIiBvZiBpdGVtcy4KICAgICAtIGRvbid0IHVzZSBJTzo6RGlyLCBhcyBpdHMgbm90IGluIHRoZSBzdGFuZGFyZCBwZXJsIG1vZHVsZSBkaXN0cmlidXRpb25zLgogICAKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgpOiByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUgcmVmZXJlbmNlLgogICAKMjAwMC0xMS0yNyAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBhdXRvLXNldCBzdXBwb3J0IGZvciB0aGUgYWdlbnQgKGFuZCBwbHVnIGEgbWVtb3J5IGxlYWspLgogICAKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIHNubXAuY29uZi41LmRlZjogZG9jdW1lbnQgdG9rZW5zIGV4dGVuZGVkSW5kZXggYW5kIG5vUmFuZ2VDaGVjawogICAKMjAwMC0xMS0yNyAxMzo0MSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC2gcGFyc2UuYzogZml4IGEgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDAtMTEtMjQgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLAogICB2bXN0YXRfbmV0YnNkMS5jOgoKICAgLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CiAgIAoyMDAwLTExLTIyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSAobWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyk6IFBhdGNoIGZyb20gU2VhbiBIYXJkaW5nOgogICAgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgogICAKMjAwMC0xMS0yMSAxNToxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcGFyc2luZyBvZiBvaWQgbGlrZSA5OS4xMy5cImd1ZlwiOAogICAKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgogICAqIHBlcmwvU05NUC9TTk1QLnhzLCBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCiAgIAl0eXBlcyBpbiB0aGUgcGFyc2VyIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHRoZSBwZXJsIG1vZHVsZSBhbmQgaW4gdHVybgogICAJZm9yIG1pYjJjLiBTb3JyeSBmb3Igbm90IGNhdGNoaW5nIHRoaXMgYmVmb3JlIHByZTI6LSgKICAgCjIwMDAtMTEtMTkgMTI6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSBmaXhlcyB0byAuL2NvbmZpZ3VyZSAtLXdpdGgtZGVmYXVsdHMgLS1lbmFibGUtbWluaS1hZ2VudDsgbWFrZSBpbnN0YWxsCiAgIAlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldDotKQogICAKMjAwMC0xMS0xOCAwNzoxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQogICAKMjAwMC0xMS0xOCAwNzoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtOgoKICAgLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgogICAKMjAwMC0xMS0xNyAxMTowMSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAogICAJaW5kaWNlcy4gQWxzbyBmaXggYSBidWcgd2l0aCBxdW90ZWQgaW5kaWNlcy4KICAgCjIwMDAtMTEtMTcgMTA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICAtICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KICAgCjIwMDAtMTEtMTcgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGZpeCBjYXNlcyB3aGVyZSB0aGUgZm9ybWF0IHN0cmluZ3MgYXJlIHNwZWNpZmllZC4KICAgCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCiAgIAoyMDAwLTExLTE3IDA4OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IG1lbW9yeSBsZWFrcy4KICAgICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KICAgCjIwMDAtMTEtMTYgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wbGliL3NubXB2My5jKTogYWRkZWQgYSBzcGFjZSBpbiBhIGRlYnVnZ2luZyBvdXRwdXQgc3RhdGVtZW50LgogICAKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2ltcGxlIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYWRkZWQuCiAgIAoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzZXQgRFNfTElCX0FQUFRZUEUgaWYgaXQgaGFzbid0IGJlZW4gc2V0IHlldC4KICAgCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGFkZCBDT05GSUdUUkFQRC4KICAgCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKHNubXBsaWIvbWliLmMsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKICAgICAtIHN1cHBvcnQgLUlyIGZvciAiZG9udCBjaGVjayByYW5nZS90eXBlIHZhbHVlcyIgKGxldHRlciByIHN1YmplY3QgdG8gZGViYXRlKS4KICAgCjIwMDAtMTEtMTYgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gKGNhbGxiYWNrLmMpOiBiZXR0ZXIgZGVidWdnaW5nIG91dHB1dCB0byBkaXNwbGF5IGEgY2FsbGJhY2sgY291bnQgd2hlbiBkb25lLgogICAKMjAwMC0xMS0xNiAxNjo1MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcDoKCiAgIC0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCiAgIAoyMDAwLTExLTE2IDE2OjUwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwOgoKICAgLSAoVDA1OGFnZW50YXV0aHRyYXApOiBzbGVlcCBzb21lIGFuZCBvbmx5IHBlcmZvcm0gb25lIGdldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwOgoKICAgLSAoVDA1NGFnZW50djJjdHJhcCk6IHNsZWVwIGEgYml0IGFuZCBvbmx5IHNlbmQgb25lIHNubXAgc2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCiAgICogc25tcGxpYi9nZXRvcHQuYzoKCiAgIC0gZ2V0b3B0LmM6IHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAwLTExLTE2IDE1OjMxICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIG1pYi5jLCBwYXJzZS5oLAogICBzbm1wX2FwaS5jOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYywgc25tcF9hcGkuYzogcmVuYW1lIFRZUEVfVUlOVEVHRVIzMiBiYWNrIHRvIFRZUEVfVUlOVEVHRVIKICAgCjIwMDAtMTEtMTYgMTU6MTYgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGQuY29uZjogbmV3IGNvbmZpZyBkaXJlY3RpdmVzIGZvcm1hdDEgYW5kIGZvcm1hdDIgdG8KICAgCXNldCBsb2cgZm9ybWF0cyBmb3IgVFJBUDEgYW5kIFRSQVAyIHBkdXMuCiAgIAoyMDAwLTExLTE2IDEzOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBhZGQgZnVuY3Rpb25hbGl0eSB0byBjaGVjayB2YWx1ZSB0eXBlcyBpbiBhZGRpdGlvbiB0byByYW5nZXMKICAgCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KICAgCjIwMDAtMTEtMTYgMTM6NDcgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCiAgIAkoaS5lLiBERUZWQUwgeyB7IDAgMCB9IH0gZXRjKQogICAKMjAwMC0xMS0xNiAxMTozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTE6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6CiAgICAgLSBzZW5kIGEgdjJjIHRyYXAgdXNpbmcgaXRzIG93biBkYXRhLCBub3QgdGhlIHN5c3RlbV9taWIncy4KICAgICAtIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgogICAgIC0gbmV3IHRlc3RzIGZvciB0cmFwcyBzZW50IGJ5IHRoZSBhZ2VudC4KICAgCjIwMDAtMTEtMTYgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogRG9uJ3QgZGVsZXRlIFJFQURPTkxZIHRyYXAgc2Vzc2lvbnMuCiAgIAoyMDAwLTExLTE1IDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtOgoKICAgLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgogICAKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMToKCiAgIC0gKGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjEpOiBzdXBwb3J0IC1DaSBmb3Igc2VuZGluZyBpbmZvcm1zLgogICAKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgogICAKMjAwMC0xMS0xNSAxNDoxOCAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IG1ha2UnaW5nIGluIHJlbW90ZSBkaXJlY3RvcnkKICAgCjIwMDAtMTEtMTUgMTQ6MTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiB1cGRhdGUgdG8gdXNlIGdldG9wdCBmb3IgYXJndW1lbnQgcGFyc2luZy4KICAgCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogZml4IGEgY29uZnVzaW5nIGluZGVudGF0aW9uLgogICAKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcC5jOiBtYWtlIHN1cmUgY29tbXVuaXR5IGlzIFwwLXRlcm1pbmF0ZWQgaW4gdGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCiAgIAlzaW5nbGUgcGFyYW1ldGVyLiBGaXggYSBiYWQgbGltaXQgdGVzdCBpbiBzdHJfYXBwZW5kLgogICAKMjAwMC0xMS0xNSAxNDowMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IGZpeCBhIHN0dXBpZCBwZXJyb3IgZm9yIHNubXBfcGVycm9yCiAgIAoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBtaWIuYzogZW5oYW5jZSB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIElOVEVHRVIsIEludGVnZXIzMiwKICAgCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCiAgIAoyMDAwLTExLTE1IDEzOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQogICAKMjAwMC0xMS0xNSAwNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaAo6CgogICAtIChzbm1wX3ZhcnMuYywgc3ViYWdlbnQuYyk6IFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZDoKICAgICAtIERvbid0IG1ha2UgaW5pdF9hZ2VudCgpL3N1YmFnZW50X3ByZV9pbml0KCkgZXhpdCBidXQgcmV0dXJuIGFuCiAgICAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KICAgCjIwMDAtMTEtMTIgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgogICAKMjAwMC0xMS0xMiAwNDo0NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgogICAKMjAwMC0xMS0xMiAwNDo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBnaXZlIHRoZSB0cmVlLXRvcCBhIG5hbWUgdG8gcHJvdGVjdCBlcnJvciBtZXNzYWdlIHdoZW4gbG9va2luZyB1cCAuZm9vCiAgIAoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKICAgCjIwMDAtMTEtMTIgMDQ6MzQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgLSBwcm94eS5jOiByZW1vdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC1hZ2VudF90cmFwcy5jOiBNb3ZlIGEgY29uZGl0aW9uYWxseSB1c2VkIHZhcmlhYmxlCiAgIAoyMDAwLTExLTEyIDA0OjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIEZpeCBhIGJvZ3VzICNpZmRlZgogICAKMjAwMC0xMS0xMCAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFwcGx5IHBhdGNoICMxMDIyMjQgZnJvbSBqYnBuIGZvciBjcm9zcy1jb21waWxpbmcuCiAgIAoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcDoKCiAgIC0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgogICAgLSBmaXJzdCBwYXNzIGF0IGEgdGVzdGluZyBzY3JpcHQgdG8gdGVzdCB0cmFwIGZ1bmN0aW9uYWxpdHkuCiAgICAgIC0gd2hpY2ggZXZlbiB1bmNvdmVyZWQgYSBidWcuCiAgIAoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAgLSBmb3JrIGlmIGZpbGUgbG9nZ2luZyBvciBzeXNsb2dnaW5nLCBidXQgbm90IHByaW50aW5nLgogICAgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KICAgCjIwMDAtMTEtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSAoYXBwcy9zbm1wdHJhcGRfbG9nLmMpOiBwcm9wZXJseSBudWxsIHRlcm1pbmF0ZSBsb2cgc3RyaW5ncy4KICAgCjIwMDAtMTEtMDkgMTY6NDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGF0dGVtcHQgdG8gaW1wbGVtZW50IGEgLS13aXRoLXJzYXJlZiBmbGFnLgogICAKMjAwMC0xMS0wOSAxNTozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgogICAKMjAwMC0xMS0wOSAxNTozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgcGVybC9TTk1QL1JFQURNRToKCiAgIC0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCiAgIAoyMDAwLTExLTA5IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50OgoKICAgLSAoZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudCk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgogICAKMjAwMC0xMS0wOSAxNDo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwKICAgU05NUC54czoKCiAgIC0gKE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KICAgCjIwMDAtMTEtMDggMjM6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgogICAKMjAwMC0xMS0wOCAyMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgogICAKMjAwMC0xMS0wOCAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IGZpeCBPSUQuCiAgIAoyMDAwLTExLTA4IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KICAgCjIwMDAtMTEtMDggMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgogICAKMjAwMC0xMS0wOCAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgbGlicnNhcmVmLCBldGMsIGlmIG5lZWRlZC4KICAgCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudC9zbm1wZC5jKToKICAgICAtIHVpZC9naWQgY2hhbmdlcy4KICAgCjIwMDAtMTEtMDcgMTU6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSAoU05NUC54cyk6IGZpeCBUWVBFX05PVElGIC0+IFRZUEVfTk9USUZUWVBFLgogICAKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzKTogUGF0Y2ggZnJvbSBKb2UgQ2xhcmtlOgogICAgIC0gaW1wbGVtZW50IGJlc3QtZ3Vlc3MgKC1JYikgcGFyc2luZy4KICAgICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgogICAgIC0gcmFuZ2UgYWNjZXNzLgogICAKMjAwMC0xMS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIGJ1aWxkIGNyZWF0ZWQgZmlsZXMuCiAgIAoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHM6CgogICAtIChSRUFETUUsIFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCiAgIAoyMDAwLTExLTA3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAvU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgogICAgIC0gbXVsdGlwbGUgY2FsbGJhY2sgcGF0Y2ggZm9yIHBlcmwvU05NUC9TTk1QLnhzLgogICAKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBvcHRpb25hbCBjb25maWcgZmlsZSBETkUuCiAgIAoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KICAgCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKICAgICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGltcGxlbWVudCB1aWQvZ2lkIGNoYW5nZXMgYWZ0ZXIgc3RhcnR1cCBmb3IgdGhlIGFnZW50LgogICAKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBhIGJldHRlciBzYW5pdHkgY2hlY2sgZm9yIHNlc3Npb24gZGVsZXRpb24uCiAgIAoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IFBhdGNoIGZyb20gRGF2ZSB0byBzYW5pdHkgY2hlY2sgcGFyYW0tPnVwZGF0ZVRpbWUuCiAgIAoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBjaGVjayB0byBzZWUgdGhhdCBNRHNpZ24oKSBkYXRhIGxpZXMgb24gYSAzMiBieXRlIGJvdW5kcnkuCiAgICAgLSBpdHMgcG9zc2libGUgc29tZSBjb21waWxlcnMgd2lsbCBjaG9rZSBvbiB0aGlzIGhhY2suCiAgICAgLSBmaXhlcyBidWcgIzEyMTc1LgogICAKMjAwMC0xMS0wMyAxNzo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHNvcnQgT0lEcyBwcm9wZXJseS4KICAgCjIwMDAtMTEtMDMgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIC0gKGV4YW1wbGUuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBmaXggbWliIHJlZ2lzdHJhdGlvbnMgZm9yIGR1cGxpY2F0ZSBPSURzIGJlaW5nIHVzZWQgZm9yIHRoZSB0cmFwIGV4YW1wbGVzLgogICAKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KICAgICAtIFVtLCBhcHBsaWVkIGNvcnJlY3RseSB0aGlzIHRpbWUgKEkgaG9wZSkuCiAgIAoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgogICAKMjAwMC0xMS0wMiAyMjoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jLCBpcC5jLCBpcEFkZHIuYwosIHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgogICAKMjAwMC0xMS0wMiAyMjoxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IHNvbWUgJChzcmNkaXIpIHJlZmVyZW5jZXMgd2hlbiBydW5uaW5nIG91dHNpZGUgc291cmNlCiAgIAoyMDAwLTExLTAyIDIyOjE1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKICAgCjIwMDAtMTEtMDIgMjI6MTQgIG5iYQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwogICAKMjAwMC0xMS0wMiAyMjoxMiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICBEb2N1bWVudCB0aGUgLU9YIG91dHB1dCBvcHRpb24KICAgCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgogICAKMjAwMC0xMS0wMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgpOiBhZGQgdWNkLXNubXAvcHJveHkuCiAgIAoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IGNoYW5nZSBjdnMgYXJjaGl2ZSBzaXRlIGFuZCBwYWNrYWdlIG5hbWUuCiAgIAoyMDAwLTExLTAyIDEzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIDEwMjIzOSBmcm9tIGRvdWd3YXJ6IHRvIGZpeCBhIHByZXZpb3VzbHkgYmFkIHNtdXguYyBwYXRjaC4KICAgCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUxICkKICAgCjIwMDAtMTEtMDEgMTY6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIC0gKFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsKTogcHJveHkgdGVzdCBzdWl0ZS4KICAgCjIwMDAtMTEtMDEgMTY6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgpOgogICAgIC0gbWluaW1hbCBTRVQgc3VwcG9ydCBmb3IgdGhlIHByb3h5IGNvZGUuCiAgIAoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsOgoKICAgLSAoVDExMmFnZW50eHNldGZhaWwpOiB0ZXN0IGZvciBhZ2VudHggc2V0cyB0aGF0IHNob3VsZCBmYWlsIHByb3Blcmx5LgogICAKMjAwMC0xMC0zMSAxNDozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICAtIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKICAgCjIwMDAtMTAtMzEgMTQ6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gc211eC5jOiBmaXggd3JvbmcgdmFyaWFibGUgbGVuZ3RoCiAgIAoyMDAwLTEwLTMxIDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGZpeCBzb21lIHN1c3BpY2lvdXMgbG9va2luZyBjb2RlCiAgIAoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCiAgIAoyMDAwLTEwLTMxIDEyOjQxICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIG1pYi5jOiBhZGQgLU9YIG91dHB1dCBmb3JtYXQsIGZvciBqdXN0IGFub3RoZXIgd2F5IG9mIHByaW50aW5nIGluZGljZXMKICAgCjIwMDAtMTAtMzEgMTI6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKICAgCjIwMDAtMTAtMzEgMTI6MjUgIG5iYQoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMKOgoKICAgLSBhcHBzLyo6IG1ha2Ugc3VyZSB3ZSByZXBvcnQgYW55IGVycmluZGV4L2VycmNvZGUgaW4gdGhlIHJlc3BvbnNlCiAgIAoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAwLTEwLTMxIDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IHBhdGNoICMxIGZyb20gYnVnICMxMTcyNzMgYXBwbGllZCB0byBmaXggc211eCBzb2NrZXQgcHJvYmxlbXMuCiAgIAoyMDAwLTEwLTMxIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAueHMpOiBwcmludCBjb3VudGVyNjQncyBhcyB1bnNpZ25lZC4KICAgCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzdWJhZ2VudC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKICAgICAtIGZpeCBub3RpZmljYXRpb25zIGZyb20gYWdlbnR4IHN1YmFnZW50cy4KICAgCjIwMDAtMTAtMzAgMjI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZml4IGJ1ZyAjMTE5Nzg2OiBtYWtlIHNtdXggcmV1c2Ugc29ja2V0IGFkZHJlc3MuCiAgIAoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwKICAgdGVzdHMvVDExMWFnZW50eHNldDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgogICAgIC0gZml4IGJ1ZyAjMzgyCiAgICAgLSBmaXggYWdlbnR4IG5vbi1yb290IHRlc3RzIHRvIHVzZSAteCAvdG1wL2JsYWgvYWdlbnR4X3NvY2tldC4KICAgCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZml4IGEgdHlwbyBwb2ludGVkIG91dCBieSBDaHJpcyBQZXBwZXIuCiAgIAoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQ6CgogICAtICh0ZXN0cy9UMTExYWdlbnR4c2V0KTogdGVzdCBzY3JpcHQgZm9yIEFnZW50WCBzZXQgc3VwcG9ydC4KICAgCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldDoKCiAgIC0gKHRlc3RzL1QxMTBhZ2VudHhnZXQpOiBoZWFkZXIgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSB3b3JkIEdFVC4KICAgCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIHVjZC1zbm1wL3Ztc3RhdF8qLCBtZW1vcnlfZnJlZWJzZDIuYywgZGxtb2QuYzogTWFrZSBzc1Jhd0NwdSBvYmplY3RzIENvdW50ZXJzLAogICAJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKICAgCjIwMDAtMTAtMzAgMTE6MDcgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSBDbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMDFhZ2VudHgsIFQxMTBhZ2VudHhnZXQ6CgogICAtICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CiAgICAgLSByZW5hbWVkIHRoZSBhZ2VudHggdGVzdCBzY3JpcHQuCiAgIAoyMDAwLTEwLTMwIDExOjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBkb24ndCBhZGQgLWMgQ09ORklHRklMRSBpZiBpdCBkb2Vzbid0IGV4aXN0LgogICAKMjAwMC0xMC0zMCAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgogICAKMjAwMC0xMC0yNyAxMToyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXBkLmMpOiBhZGQgLW8gZmxhZyB0byBsb2cgdG8gYSBwYXJ0aWN1bGFyIGZpbGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiB1c2UgbWtzdGVtcCBpZiBhdmFpbGFibGUuCiAgIAoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTZWFyY2ggZm9yIG1rc3RlbXAoKS4KICAgCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBsaW51eCBrZXJuZWwgbGlzdCB0byBpbmNsdWRlIDIuMi4KICAgCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBtYWtlIFNLSVBJRk5PVCBjaGVjayB0aGUgbWliIG1vZHVsZSBsaXN0IHRvby4KICAgCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eDoKCiAgIC0gKHRlc3RzL1QxMDFhZ2VudHgpOiBBZ2VudFggc3ViYWdlbnQgdGVzdCBmb3Igc2ltcGxlIGdldCByZXRyaWV2YWwuCiAgIAoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IEFkZCAtWCBvcHRpb24gdG8gc25tcGQgdG8gcnVuIGFzIGEgc3ViYWdlbnQuCiAgIAoyMDAwLTEwLTI1IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZml4IGZvciBjYXNlcyB3aGVuZSBkZWJ1Z2dpbmcgaXMgYWx3YXlzIG9mZi4KICAgCjIwMDAtMTAtMTcgMTU6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bgogICAKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYWdlbnR4L21hc3Rlci5jKTogU3BlY2lmeSB0aGUgbGVuZ3RoIG9mIHRoZSAocHNldWRvLSlhbnN3ZXIgdG8gYSByZXF1ZXN0LgogICAJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTEwLTE2IDAzOjExICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIG1vZGUgaW5mb3JtYXRpb24KICAgCVRoaXMgc2hvdWxkIGhlbHAgd2l0aCAoc29tZSBvZikgdGhlIFNFVCBoYW5kbGluZyBwcm9ibGVtcy4KICAgCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgogICAJVGhpcyBob2xkcyBpbmZvcm1hdGlvbiB0aGF0IG5lZWRzIHRvIHBlcnNpc3QgYWNyb3NzIG11bHRpLXBhc3MgcmVxdWVzdHMuCiAgIAlJIHJlYWxpc2UgdGhhdCB0aGlzIGludHJvZHVjZXMgYSBtZW1vcnkgbGVhaywgYnV0IHRoaXMgaXNuJ3QgdGhlCiAgIAljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgogICAKMjAwMC0xMC0xMiAxNDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBhZGQgLUkgdG8gdGhlIGhlbHAgb3V0cHV0LgogICAKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzLzogTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaAosIGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzLyopOiByZW1vdmUgb2Jzb2xldGUgdmVyc2lvbnMKICAgCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KICAgCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBNYXR0IEJyYWl0aHdhaXRlOgogICAgIC0gdWRwIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0byBjaGVjayBmb3IgbWlzYyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1RVTk5FTC1NSUIudHh0OgoKICAgLSAoVFVOTkVMLU1JQi50eHQpOiBUVU5ORUwtTUlCIGRlZmluaXRpb24uCiAgIAoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oKTogY29uZmlnX2FkZF9taWIoVFVOTkVMLU1JQikuCiAgIAoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHR1bm5lbC5oLCB0dW5uZWwvdHVubmVsLmMsCiAgIHR1bm5lbC90dW5uZWwuaDoKCiAgIC0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBpbXBsZW1lbnQgdGhlIFRVTk5FTC1NSUIuCiAgIAoyMDAwLTEwLTEwIDE0OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdW5saW5rX3RyZWUgZm9yICJ0b3AgbGV2ZWwiIHRyZWUgbm9kZXMuCiAgIAoyMDAwLTEwLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmV2ZXJzZSBsaWJyYXJ5IGxpbmsgb3JkZXJpbmcgYWdhaW4uLi4KICAgCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KICAgCjIwMDAtMTAtMTAgMDY6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICBSZW1vdmUgdW5uZWVkZWQgZGVjbCBvZiB2c25wcmludGYgd2l0aG91dCBzdGRhcmcvdmFyYXJncyBkZWNsIG9mIHZhX2xpc3QuCiAgIAoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgQXBwbHkgcGF0Y2ggZm9yIERFQyBBbHBoYSBFVjYsIHN1cHBsaWVkIGJ5IFNodW1vbiBIdXF1ZTxzaHVxdWVAaXNjLnVwZW5uLmVkdT4KICAgCjIwMDAtMTAtMDkgMTc6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgogICAKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiBtaW5vciBkZWJ1Z2dpbmcgb3V0cHV0IGFkZGl0aW9ucy4KICAgCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KICAgCjIwMDAtMTAtMDkgMTE6NDMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGQgbmV3IG1pcnJvci4KICAgCjIwMDAtMTAtMDkgMTA6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIE1vdmUgY29uZmlnLSBhbmQgc3RvcmUtcmVsYXRlZCBjbGVhbnVwIGZyb20gc2h1dGRvd25fbWliIHRvIHNubXBfc2h1dGRvd24uCiAgIAoyMDAwLTEwLTA5IDAyOjM2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBRdWFsaWZ5IGFuIGluZGl2aWR1YWwgaW50ZXJmYWNlIHR5cGUgdGVzdCBzeW1ib2wKICAgCShRbjogc2hvdWxkIGFueS9hbGwgb2YgdGhlIG90aGVycyBiZSBxdWFsaWZpZWQgYXMgd2VsbD8pCiAgIAoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LAogICBtYW4vZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NodXRkb3duX21pYi4zLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICBTdXBwb3J0IGZvciBzaHV0ZG93bl9taWIgLSBjbGVhcmluZyB0aGUgTUlCIHRyZWVzIGFuZCBjb25maWd1cmVkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGx1ZyBtZW1vcnkgbGVhayBmb3IgdWNkLXN1cHBsaWVkIHNldGVudiBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDAtMTAtMDYgMDQ6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0wNSAyMzo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCiAgIAlpbnRvIHN1Yi1pZHMgd2Uga25vdyBub3RoaW5nIGFib3V0CiAgIAoyMDAwLTEwLTA1IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCiAgIAoyMDAwLTEwLTA0IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCAiZXh0ZW5kaW5nIiBzbm1wY29uZiBmaWxlLgogICAKMjAwMC0xMC0wNCAxNDo1MCAgbmJhCgogICAqIEZBUToKCiAgIC0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgogICAKMjAwMC0xMC0wNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIChwYXNzX3BlcnNpc3QuYyk6IG9wYXF1ZXMgaW4gcGFzc19wZXJzaXN0LgogICAKMjAwMC0xMC0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogc3VwcG9ydCBvcGFxdWUgcmV0dXJuIHR5cGVzLgogICAKMjAwMC0xMC0wNCAwNzoxNSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgRml4IHBhcnNpbmcgcHJvYmxlbSBmb3IgLVBjIG9wdGlvbjsgcmVwb3J0ZWQgYnkgQ2hyaXN0aWFuIE1hdXRuZXIuCiAgIAoyMDAwLTEwLTA0IDA2OjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBxdWFsaWZ5IHN5bWJvbHMgZm9yIG5ldyBpL2YgdHlwZXMuCiAgIAoyMDAwLTEwLTA0IDA2OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICBUZXJtaW5hdGUgbGlzdCB0byBjb21waWxlIChhZGQgYSBjb21tYSkuCiAgIAoyMDAwLTEwLTA0IDAwOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKICAgCUdFVEJVTEsKICAgCjIwMDAtMTAtMDMgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGFkZCBhIHBhc3NiYWNrIGFyZ3VtZW50IHRvIHJlZ2lzdGVyX3JlYWRmZCgpIGNhbGxiYWNrcy4KICAgCjIwMDAtMTAtMDMgMTg6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgogICAKMjAwMC0xMC0wMyAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBGcmllZHJpY2g6CiAgICAgLSBmaXggZ2V0bmV4dCByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCiAgIAoyMDAwLTEwLTAzIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgogICAKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CiAgICAgLSBmaXggb2lkIHBhcnNpbmcgaW4gdHJhcHMuCiAgIAoyMDAwLTEwLTAzIDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwogICAgIEkgaGF2ZSB2ZXJ5IHNhZGx5IGZvcmdvdHRlbi4gIEkndmUgYmVlbiBsb29raW5nIGZvciB0aGF0IG1lc3NhZ2UgZm9yCiAgICAgYSB3aGlsZSB0byBwcm9wZXJseSBhdHRyaWJ1dGUgdGhpcyBwYXRjaC4gIFNpZ2guCiAgIAoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERvdWdsYXMgV2FyemVjaGE6CiAgICAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KICAgCjIwMDAtMTAtMDMgMDk6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCiAgIAoyMDAwLTEwLTAzIDA4OjAzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdmFjbS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIENhc3RpbmcgdG8gZml4IHByb2JsZW1zIGJ1aWxkaW5nIHdpdGggYUNDCiAgIFRoYW5rcyB0byBNYXJra3UgTGF1a2thbmVuIDxwa3lAbW9yZW1hZ2ljLmNvbT4KICAgCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgY2hkaXIgdG8gdW5kbyBmaXggZm9yIChCVUcjMjk4KQogICAKMjAwMC0xMC0wMiAyMTo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCiAgIAoyMDAwLTEwLTAyIDIxOjM5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gc25tcF9sb2dnaW5nLmM6ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAgIAoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCiAgIAljb25maWd1cmF0aW9uIGZpbGVzCiAgIAoyMDAwLTEwLTAyIDIxOjM3ICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBzZXQuYzogRG8gYSBleGl0KDIpIGZvciBmYWlsdXJlIGluIHNldHRpbmcgdGhlIHZhcmlhYmxlLgogICAKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogYWRkIGEgc2FmZWd1YXJkIGZvciB2ZXJ5IGxvbmcgYXJndW1lbnQgbGlzdHMuCiAgIAoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgogICAKMjAwMC0xMC0wMiAyMTozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCiAgIAoyMDAwLTEwLTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXB1c20uaC4KICAgCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOgogICAgIC0gbmV3IG9wdGlvbnMgZm9yIGluc3RhbGxpbmcgY3JlYXRlZCBmaWxlcy4KICAgICAtIG1vcmUgY29tbWVudHMgaW4gdGhlIGNvZGUuCiAgICAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgogICAgIC0gbWlzYy4KICAgCjIwMDAtMTAtMDIgMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQtbGVzcy4KICAgCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGJ5dGUgc3RhdFAgbWFsbG9jcy4KICAgCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KICAgCjIwMDAtMTAtMDEgMTY6NDAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBQZXIgTmllbHMgcmVjb21tZW5kYXRpb24sIGNoZGlyIHRvIFBFUlNJU1RFTlRfRElSRUNUT1JZIChyZTogYnVnICMyOTgpCiAgIAoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgRml4IERFQlVHTVNHVEwgbm90IGZvdW5kIGVycm9yIGZvciBidWlsZHMgd2l0aG91dCBkbG1vZCBzdXBwb3J0LgogICBUaGFua3MgdG8gc2ltb25AemlkLnR1d2Vpbi5hYy5hdAogICAKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kICsgLm8gLT4gLmxvIGZpeGVzLgogICAKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbDoKCiAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwpOiBza2lwIGVtcHR5IGRlcGVuZCBsaW5lcy4KICAgCjIwMDAtMDktMjkgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBkcm9wIGR1cGxpY2F0ZSBsaW5lcyBmcm9tIHJlYWQgaW4gc25tcGQuY29uZiBmaWxlcy4KICAgCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KICAgCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCiAgIAoyMDAwLTA5LTI5IDExOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCiAgIAoyMDAwLTA5LTI5IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgogICAKMjAwMC0wOS0yOSAxMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KICAgICAtIGRvbid0IGludGVycHJldGUgdGhlbSBhcyBhbiBpcC1wb3J0LgogICAKMjAwMC0wOS0yOSAxMDozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbToKICAgICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgogICAgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMgd2hpY2ggY2FuIGNhdXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAoQnVnICMzNjcpCiAgIAoyMDAwLTA5LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBmaXggdXNlIG9mIE5VTEwgdGltZXN0YW1wIHBvaW50ZXIgaW4gbmV3IHJvdyBjcmVhdGlvbiAoQnVnICMzNDYpCiAgIAoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gbWliX2FwaS4zOiBhZGQgYSBmZXcgZnVuY3Rpb25zIHRvIHRoZSBoZWFkZXIKICAgCjIwMDAtMDktMjggMTQ6MTQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXB0cmFwLmM6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHNubXBfZnJlZV9wZHUKICAgCjIwMDAtMDktMjggMTQ6MTMgIG5iYQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgYWRkX21pYmRpci4zLAogICBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsIGdldF9tb2R1bGVfbm9kZS4zLCBpbml0X21pYi4zCiwgaW5pdF9taWJfaW50ZXJuYWxzLjMsIHByaW50X2Rlc2NyaXB0aW9uLjMsCiAgIHByaW50X21pYi4zLCBwcmludF9vYmppZC4zLCBwcmludF92YWx1ZS4zLAogICBwcmludF92YXJpYWJsZS4zLCByZWFkX2FsbF9taWJzLjMsIHJlYWRfbWliLjMsCiAgIHJlYWRfbW9kdWxlLjMsIHJlYWRfbW9kdWxlX25vZGUuMywgcmVhZF9vYmppZC4zLAogICBzbm1wX3NldF9taWJfd2FybmluZ3MuMywgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMzoKCiAgIC0gbWFuLzogYWRkIG1hbiBlbnRyaWVzIGZvciBtYW55IGxpYnJhcnkgZnVuY3Rpb25zIChwb2ludGluZyB0byBzbm1wX2FwaS4zKQogICAKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIHJlbW92ZSBzZWNvbmQgY29weSBvZiBzeXMvc29ja2V0LmgKICAgCjIwMDAtMDktMjcgMTI6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICAtIChkbG1vZC5oKTogYWRkIHRoZSBVQ0QtRExNT0QtTUlCIHRvIHRoZSBkZWZhdWx0IGxvYWQgbGlzdC4KICAgCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVjZF9zbm1wLmgsIGRsbW9kLmMpOgogICAgIC0gaW5jbHVkZSB1Y2Qtc25tcC9kbG1vZCBieSBkZWZhdWx0LgogICAgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KICAgCjIwMDAtMDktMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBkb24ndCBwcmludCBrZXJuZWwgYmFzZWQgd2FybmluZyBtZXNzYWdlcyB3aGVuIC1yLCBldGMsIGlzIHNwZWNpZmllZC4KICAgCjIwMDAtMDktMjYgMTM6MTcgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgRm9yIFdpbjMyIEFQSTogRGVjbGFyZSBzdHJ0b3VsLCB2c25wcmludGY7IEVuYWJsZSByZXZlcnNlIEJFUiBlbmNvZGluZy4KICAgCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJbmNsdWRlIHN5c3RlbS5oICh2c25wcmludGYgZGVjbCkKICAgCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29uLgogICAKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDAtMDktMjYgMTM6MTMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggc2lnbmVkIGNvbXBhcmlzb247IFJlbW92ZSB1bnVzZWQgdmFyLgogICAKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEluY2x1ZGUgZ2V0b3B0LmggKG9wdGFyZyBkZWNsKTsgUmVtb3ZlIHVudXNlZCB2YXIuCiAgIAoyMDAwLTA5LTI2IDEzOjExICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBNYXRjaCBJbml0aWFsaXNlX1RhYmxlIGFyZ3MgMyw0IGRlY2xhcmF0aW9ucyB3aXRoIGRlZmluaXRpb25zLgogICAKMjAwMC0wOS0yNiAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSB0aGUgYWRtaW5zdGF0dXMgUk9OTFkuCiAgIAoyMDAwLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogY2hvbXAoJDEpIGlzIGlsbGVnYWwuCiAgIAoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgogICAKMjAwMC0wOS0yNSAxNjo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQogICByZXNvbHZlZC4KICAgCjIwMDAtMDktMjUgMDk6MzUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBjYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgogICAKMjAwMC0wOS0yMiAwNjowMyAgbmJhCgogICAqIG1pYnMvOiBIQ05VTS1UQy50eHQsIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsCiAgIElORVQtQUREUkVTUy1NSUIudHh0LCBJUC1GT1JXQVJELU1JQi50eHQsIHNtaXN0cmlwCjoKCiAgICAtbWlicy86IE1JQiB1cGRhdGVzCiAgIAoyMDAwLTA5LTIyIDA1OjU1ICBuYmEKCiAgICogbWlicy86IElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LAogICBJQU5BaWZUeXBlLU1JQi50eHQsIE1UQS1NSUIudHh0LCBNYWtlZmlsZS5pbiwKICAgTWFrZWZpbGUubWliLCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQsIFJGQy0xMjE1LnR4dAosIFJGQzExNTUtU01JLnR4dCwgUkZDMTIxMy1NSUIudHh0OgoKICAgLSBtaWJzLzogTUlCIHVwZGF0ZXMKICAgCjIwMDAtMDktMjIgMDU6NTIgIG5iYQoKICAgKiBtYW4vc25tcHNldC4xLCBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jCiwgYXBwcy9zbm1wc2V0LmM6CgogICAtIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwogICAKMjAwMC0wOS0yMiAwNTo1MCAgbmJhCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSBzbm1wc3RhdHVzLmM6IHNob3cgZXJyb3Igb2JqZWN0CiAgIAoyMDAwLTA5LTIyIDA0OjI5ICBuYmEKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIHNubXB1c20uYzogaXNzdWUgZXJyb3IgbWVzc2FnZSB3aXRoIG9iamVjdAogICAKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIHN5c3RlbS5oOiBwcm92aWRlIHByb3RvdHlwZXMgZm9yIHN0cnRvbCwgc3RydG91bCwgc25wcmludGYsIHZzbnByaW50ZgogICAKMjAwMC0wOS0yMiAwNDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzogcHJvdGVjdCBhZ2FpbnN0IG92ZXJydW4gb2Ygc3RyaW5ncwogICAKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gYXBwcy86IGRpc3BsYXkgZmFpbGVkIG9iamVjdCB3aGVuIG9uZSBpcyBpZGVudGlmaWVkIGJ5IHBkdS0+ZXJyaW5kZXgKICAgCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZGYuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuMSk6IGRvY3VtZW50IHRoZSBzbm1wZGYgY29tbWFuZC4KICAgCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKICAgKiBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZTogdXNlIEdFVEJVTEsgdG8gY29sbGVjdCBkYXRhIHdoZW4gcHJvdG9jb2wgYWxsb3dzIGl0LiBBZGQKICAgCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgogICAKMjAwMC0wOS0yMSAxNTozOCAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xOgoKICAgLSBtaWIuYzogcmV3cml0ZSBpbmRleCBoYW5kbGluZyBpbiBvYmplY3QgaWRzLCB0byBhbGxvdyBzeW1ib2xpYyBlbnVtcy4KICAgCUFkZCBEYXZlcyBzdWdnZXN0ZWQgLU92IG91dHB1dC4gQWxzbyBlbmhhY2UgLVRkIG91dHB1dCB0bwogICAJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCiAgIAoyMDAwLTA5LTIxIDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgLSAoc25tcGRmLmMpOiB1c2UgdGhlIFVDRC1TTk1QLU1JQidzIGRza1RhYmxlIGlmIHRoZQogICAgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA5LTIxIDE1OjI4ICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIHBhcnNlLmM6IGFkZCBhYmlsaXR5IHRvIGNvbGxlY3QgVkFSSUFCTEVTL09CSkVDVFMgZm9yIFRSQVAtVFlQRQogICAJYW5kIE5PVElGSUNBVElPTi1UWVBFLiBJZ25vcmUgZmlsZXMgdGhhdCBkb2VzIG5vdCBoYXZlIERFRklOSVRJT05TCiAgIAlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KICAgCjIwMDAtMDktMjEgMTU6MjIgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmMsIHNubXBsaWIvc3RydG9sLmMsCiAgIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4KLCBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSBzbm1wbGliOiBhZGQgc25wcmludGYsIHN0cnRvbCwgc3RydG91bCBmb3Igc3lzdGVtcyB0aGF0IGRvbid0IGhhdmUgdGhlbQogICAKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogYWRkIGZha2Ugc3RydWN0IGRlZmluaXRpb24gZm9yIGVudW1zCiAgIAoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCiAgICogc25tcGxpYi9zdHJ0b3VsLmM6CgogICBmaWxlIHN0cnRvdWwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3N0cnRvbC5jOgoKICAgZmlsZSBzdHJ0b2wuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKICAgKiBzbm1wbGliL3NucHJpbnRmLmM6CgogICBmaWxlIHNucHJpbnRmLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA5LTIxIDA2OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KICAgCjIwMDAtMDktMjEgMDA6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKICAgICAtIGZpeCBidWcgIzM2MCB3aGVyZSBhIGNsaWVudCBtaWdodCByZW1vdmUgYSBhbGFybSByZWdpc3RyYXRpb24KICAgICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCiAgICAgICBiZWluZyB1c2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgogICAKMjAwMC0wOS0yMSAwMDoyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0tZGlzYWJsZS1zaGFyZWQgYnkgZGVmYXVsdCBpbiBjdnMgY2hlY2tvdXRzLgogICAKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCiAgIAoyMDAwLTA5LTIwIDE3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IG51bGwgaW50ZXJuYWwgaGVscCBsaW5lcy4KICAgCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCiAgIAoyMDAwLTA5LTIwIDE3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMsIHNubXB2My5jKTogTlVMTCBvdXQgaGVscCBtZXNzYWdlcyBmb3IgLmNvbmYKICAgICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCiAgICAgZG9pbmcgdGhpbmdzLgogICAKMjAwMC0wOS0yMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGV4cG9ydCBTTk1QQ09ORlBBVEggdG8gTWFrZWZpbGVzCiAgIAoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGNvcnJlY3Rpb24gb2YgdGFibGUgbmFtZS4gIE1vcmUgZXJyb3JzIGV4aXN0LgogICAKMjAwMC0wOS0yMCAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgZGVidWdnaW5nLCBtaWJzLCBvdXRwdXQpOiBtb3JlIHNubXAuY29uZiBzbm1wY29uZiBjb25maWcgZmlsZXMuCiAgIAoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgogICAKMjAwMC0wOS0yMCAxNDo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6CiAgICAtIGRvbid0IGZvcmNlIHJlYWRpbmcgb2YgL3Vzci9sb2NhbC9zaGFyZS9zbm1wZC5jb25mLgogICAgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KICAgCjIwMDAtMDktMjAgMTQ6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzcGFjZSB0aGluZ3Mgb3V0IG9uIHRoZSBzY3JlZW4gYSBiaXQgYmV0dGVyLgogICAKMjAwMC0wOS0yMCAxNDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGNvbmYpOiBpbnN0YWxsIHNubXBjb25mIGFuZCBpdHMgdmFyaW91cyBzdXBwb3J0IGZpbGVzLgogICAKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCiAgIAoyMDAwLTA5LTIwIDExOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogbWlzYyB1cGRhdGVzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA5LTIwIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IGR5bmFtaWMgYXJyYXkgIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgSm9jaGVuIEttaWV0c2NoLgogICAKMjAwMC0wOS0yMCAwMjowNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IERvbid0IGluY2x1ZGUgY29udGV4dCBzdHJpbmdzIG9uIFBEVXMgdGhhdCBzaG91bGRuJ3QgaGF2ZSB0aGVtCiAgIAkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCiAgIAoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgogICAKMjAwMC0wOS0xOSAxNDo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXAuYzoKCiAgIC0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKICAgICBkYXRhdHlwZXMgKGZsb2F0LCBkb3VibGUsIGV0YykuCiAgIAoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQogICAgIGF1dG9jb25mIG1hY3JvIGxpYnJhcnkuCiAgIAoyMDAwLTA5LTE5IDA4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCiAgIAoyMDAwLTA5LTE4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBzbm1wZC5oOgoKICAgLSAoc25tcF92YXJzLmgsIHNubXBkLmgpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCiAgIAoyMDAwLTA5LTE4IDE0OjU1ICBtc2xpZmNhawoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgRml4IGJ1ZyAjMzQ3IHJlcG9ydGVkIGJ5IGRhc19kZW5pekB5YWhvby5jb206IG1ha2Ugc2JpbiBpbnN0YWxsIGRpcgogICAKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIGFkZCBhIHBvcnQgc3BlY2lmaWNhdGlvbiBzbm1wZC5jb25mIHRva2VuLgogICAKMjAwMC0wOS0xNCAwODo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogaWdub3JlIG91dHB1dCBvZiBnZXRob3N0YnluYW1lIGZvciB0cmFwIHNlc3Npb24gYWRkaW5nLgogICAKMjAwMC0wOS0xMyAxNTowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IG5ldyB1dGlsaXR5IHRvIGdlbmVyYXRlIC5jb25mIGZpbGVzIGJ5IHByb21wdGluZyB0aGUKICAgICB1c2VyIHdpdGggcXVlc3Rpb25zLgogICAKMjAwMC0wOS0wOCAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjoKICAgICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgogICAKMjAwMC0wOS0wNyAxMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgIC0gZml4IG9wZW5zc2wgY2hlY2tzLgogICAgLSBydW4gYXV0b2hlYWRlci4KICAgCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIE1pbm9yIHRvdWNodXBzIHRvIGJ1aWxkIG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wZGYvLmN2c2lnbm9yZSwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXB2YWNtLy5jdnNpZ25vcmUsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIFdlbGNvbWUgdGhlIG5ld2VzdCB1Y2Qtc25tcCBhcHBsaWNhdGlvbnMgdG8gdGhlIFdpbjMyIGJ1aWxkcy4KICAgCjIwMDAtMDktMDQgMTU6MTkgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IHJlc3RhcnQgZXJyb3Jjb3VudCB3aGVuIHJlbG9hZGluZyBjb25maWcKICAgCjIwMDAtMDktMDQgMTU6MTIgIG5iYQoKICAgKiBtYW4vc25tcG5ldHN0YXQuMToKCiAgIC0gc25tcG5ldHN0YXQuMTogYWxpZ24gbWFuIHBhZ2Ugd2l0aCBwcm9ncmFtCiAgIAoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICAtIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKICAgCjIwMDAtMDktMDQgMTU6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgbWliSUkvdGNwLmMsCiAgIG1pYklJL3RjcFRhYmxlLmMsIG1pYklJL3VkcC5jLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgLSBtaWJpbmNsLmgsIHt0Yyx1ZH1weyxUYWJsZX0uYzogZW5zdXJlIGp1c3Qgb25lIGluY2x1ZGUgb2Ygc29ja2V0LmgKICAgCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQogICAKMjAwMC0wOS0wNCAxNTowNSAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IG1ha2UgLS13aXRob3V0LWxpYndyYXAgd29yawogICAKMjAwMC0wOS0wMSAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHVwZGF0ZWQgY29kZS4KICAgCjIwMDAtMDktMDEgMTE6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFNjb3R0IExpcGNvbiBub3RlZCB0aGF0IHNubXB0cmFwZCBkb2Vzbid0IHN1cHBvcnQgLVQuCiAgIAoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggbG9vcCBpbiBzeW50YXggZXJyb3IgaW4gREVGVkFMIGNsYXVzZS4gQWxzbyBmaXggcmVhZGluZwogICAJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCiAgIAoyMDAwLTA4LTI4IDEzOjQzICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWlub3Igc3ludGF4IGdsaXRjaCBpbiBQT0QgZG9jcwogICAKMjAwMC0wOC0yNCAwMTo1NSAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwogICAJKFRoYW5rcyB0byBFcm5pZSBNaWxsZXIpCiAgIAoyMDAwLTA4LTE5IDExOjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIEFwcGx5IHBhdGNoIGZyb20gPENocmlzdG9waC5NYW1taXR6c2NoQHR1LWNsYXVzdGhhbC5kZT4KICAgdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgogICAKMjAwMC0wOC0xOCAwNDoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KICAgCjIwMDAtMDgtMTggMDM6NDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KICAgCjIwMDAtMDgtMTggMDM6MjAgIG1zbGlmY2FrCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgogICAKMjAwMC0wOC0xOCAwMjo1MiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCiAgIAoyMDAwLTA4LTE3IDEzOjQyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgogICAKMjAwMC0wOC0xNiAxNTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXB1c20uYyk6IGZpeCB2YXJpb3VzIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9ibGVtcy4KICAgCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBmaXggcGFkZGluZyBzaXplIGluIGVuY3J5cHRpb24uCiAgIAoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogc2V0IHBsYWludGV4dCBsZW5ndGggYXQgdGhlIGVuZCBvZiBzY19kZWNyeXB0LgogICAKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCiAgICogRkFROgoKICAgRml4IGJ1ZyAyODQgd2l0aCBhIHNob3J0IGV4cGxhbmF0aW9uIGFib3V0IHNubXAuY29uZi4KICAgCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgogICAqIElOU1RBTEw6CgogICBGaXggYnVnIDI4MyAtIHVtYXNrIDAyMiwgbWFrZSBpbnN0YWxsLiBUaGFua3MgdG8gY3NhYmEudG90aEBzemsuYmtlLmh1CiAgIAoyMDAwLTA4LTE1IDAwOjA4ICBuYmEKCiAgICogYXBwcy86IHNubXB0ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wdGVzdC5jOgoKICAgLSBzbm1wdGVzdC5jOiBvdmVyaGF1bCBpbnB1dF92YXJpYWJsZSwga2lsbCBuZXdsaW5lCiAgIAoyMDAwLTA4LTE0IDIyOjA1ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLlsxLDAsMF0pLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CiAgIAoyMDAwLTA4LTE0IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgogICAKMjAwMC0wOC0xNCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBhIG5ldyAoZGVmYXVsdCkgZW5naW5lSUQgdHlwZSBiYXNlZAogICAgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgogICAgIC0gSSB0aGluayBpdCB3b24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMgKGhlaCkuCiAgIAoyMDAwLTA4LTE0IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGlmIC1EcmVhZF9jb25maWcsIHRoZW4gcHJpbnQgZXZlbiBuby1oZWxwIHRva2VucyBhbmQgYSAqIGZvciBQUkVNSUIgb25lcy4KICAgCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCBhcHBzL3NubXBidWxrZ2V0LmMKLCBzbm1wbGliL2dldG9wdC5oLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAobWFueSk6IHBvcnRhYmlsaXR5IGZpeGVzIGZvciBPcGVuQlNEIDIuNiwgRnJlZUJTRCA0LjEsIFVsdHJpeCA0LjUKICAgCjIwMDAtMDgtMTQgMTE6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIHVudXNlZCBjb250ZXh0IHZhcmlhYmxlcy4KICAgCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCiAgIAoyMDAwLTA4LTExIDEzOjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCiAgIAoyMDAwLTA4LTExIDA4OjU1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKICAgICAtIHR5cG9zLgogICAKMjAwMC0wOC0xMSAwNjowNSAgbmJhCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYwosIHNubXB3YWxrLmM6CgogICAtIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgogICAKMjAwMC0wOC0xMSAwMDo0MyAgbmJhCgogICAqIG1hbi86IHNubXB0cmFwZC44IChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcHRyYXBkLjg6CgogICAtIHNubXB0cmFwZC44OiBmaXggdHlwby4gVGhhbmtzIHRvIEcuIEFsbGVuIE1vcnJpcyBJSUkgPGdhbTNAYWNtLm9yZz4KICAgCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IHByZWRlZmluZSBPYmplY3RTeW50YXgsIEFwcGxpY2F0aW9uU3ludGF4LCBTaW1wbGVTeW50YXggYW5kCiAgIAlPYmplY3ROYW1lCiAgIAoyMDAwLTA4LTEwIDE2OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWIyYyk6CiAgICAgLSBtYWtlIG1pYjJjIGxvb2sgaW4gJChzbm1wbGliZGlyKSBmb3IgLmNvbmYgZmlsZXMuCiAgICAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KICAgCjIwMDAtMDgtMTAgMTQ6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBkeW5hbWljYWxseSBkZWNpZGUgdG8gcmV2ZXJzZS9mb3J3YXJkIGVuY29kZS4KICAgCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYyk6IGZpeCBDUiB0ZXJtaW5hdGlvbi4KICAgCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgogICAKMjAwMC0wOC0xMCAxMzowMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBmaXggYnVnIDI1MiBmb3IgY29uZmlndXJlIGFuZCBzeXMvc29ja2V0Lmggb24gQlNEL09TIDQuMgogICAKMjAwMC0wOC0xMCAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKICAgc25tcHVzbS5oLCBzbm1wdjMuYzoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gaW1wbGVtZW50IHJldmVyc2UgZW5jb2RlZCBtZXNzYWdlcy4KICAgICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgogICAKMjAwMC0wOC0wOSAxNTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA5IDE1OjI3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdmFjbS5jOgoKICAgbm8gLy8gY29tbWVudCwgaW4gZGVmZXJlbmNlIHRvIG5vbi1BTlNJLUMgY29tcGlsZXJzLgogICAKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHRoZSBSdW5QYXRoIGZvciBzd2FwcGVkIG91dCBMaW51eCBwcm9jZXNzCiAgIAoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3ByaW50LmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9wcmludC5jCjoKCiAgIC0gaHJfcHJpbnQuYzogZml4IGEgZGVidWcgdG9rZW4KICAgCjIwMDAtMDgtMDkgMDQ6NDQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBmaXggcGFyc2luZyBvZiAtdgogICAKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoZXh0ZW5zaWJsZS5jKTogc3RyaXAgbmV3bGluZXMuCiAgIAoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjogc3RhcnQgb3B0aW5kIGF0IDEgbm90IDAuCiAgICAgLQogICAKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KICAgCjIwMDAtMDgtMDggMDY6MDUgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmM6CgogICBmaXggYnVnICMyOTggcmVwb3J0ZWQgYW5kIHBhdGNoIHN1cHBsaWVkIGJ5IENvbnJhZCBMaW5rIDxjbGlua0BtbC5jb20+CiAgIAoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOiBmaXggYSBidXN5IGxvb3Agd2hlbiBhbGFybSBxdWV1ZSBpcyBhY3RpdmUgd2l0aG91dCBhbnkKICAgCW91dHN0YW5kaW5nIHJlcXVlc3RzCiAgIAoyMDAwLTA4LTA4IDA0OjQ3ICBuYmEKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIC0gc25tcHNldC4xOiBjYW5ub3Qgc2V0IGNvdW50ZXJzCiAgIAoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCAoQlVHIzMzMikgdXNpbmcgcGF0Y2ggc3VibWl0dGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIEFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KICAgCjIwMDAtMDgtMDcgMDY6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCiAgICogbWFuL2FkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMzoKCiAgIGZpbGUgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgogICAqIG1hbi9yZWFkX29iamlkLjM6CgogICBmaWxlIHJlYWRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjM6CgogICBmaWxlIHNubXBfc2V0X21pYl93YXJuaW5ncy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zOgoKICAgZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9yZWFkX21vZHVsZV9ub2RlLjM6CgogICBmaWxlIHJlYWRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9tb2R1bGUuMzoKCiAgIGZpbGUgcmVhZF9tb2R1bGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9taWIuMzoKCiAgIGZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9hbGxfbWlicy4zOgoKICAgZmlsZSByZWFkX2FsbF9taWJzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhcmlhYmxlLjM6CgogICBmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X3ZhbHVlLjM6CgogICBmaWxlIHByaW50X3ZhbHVlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X29iamlkLjM6CgogICBmaWxlIHByaW50X29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X21pYi4zOgoKICAgZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMzoKCiAgIGZpbGUgcHJpbnRfZGVzY3JpcHRpb24uMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWIuMzoKCiAgIGZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjM6CgogICBmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9nZXRfbW9kdWxlX25vZGUuMzoKCiAgIGZpbGUgZ2V0X21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2FkZF9taWJkaXIuMzoKCiAgIGZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFkZCBpbiB0aGUgbm90aWZpY2F0aW9uIGdyb3VwIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTA4LTA0IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaDoKCiAgIC0gKG5vdGlmaWNhdGlvbi5oKTogbm90aWZpY2F0aW9uIG1pYiB3cmFwcGVyLgogICAKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKToKICAgIC0gaW5pdGlhbGl6ZSBvcHRpbmQgYmVmb3JlIGNhbGxpbmcgZ2V0b3B0LgogICAgLSBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMC0wOC0wNCAxNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gKHByb3h5LmMpOiBwcm9wZXJseSBzZXQgdGhlIGZpcnN0ICh1bnVzZWQpIGFyZ3VtZW50IHRvIHNubXBfcGFyc2VfYXJncygpLgogICAKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X3RyYXAuYywgc25tcE5vdGlmeVRhYmxlLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBpZiB1c2luZyB0aGUgc25tcE5vdGlmaWNhdGlvblRhYmxlLCBpbnNlcnQgbm9uLXYxIHRyYXAgc2lua3MgaW50byBpdC4KICAgCjIwMDAtMDgtMDQgMDU6MjYgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKLmg6CgogICAtIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKICAgCjIwMDAtMDgtMDQgMDU6MjEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChtaWJncm91cC91dGlsX2Z1bmNzLltjaF0pOiBOZXcgJ2NhY2hlZCB0YWJsZScgcm91dGluZXMKICAgCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBidWcgIzMyNSBpZGVudGlmaWVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JUC1GT1JXQVJELU1JQi50eHQ6CgogICBmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lORVQtQUREUkVTUy1NSUIudHh0OgoKICAgZmlsZSBJTkVULUFERFJFU1MtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKICAgKiBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQ6CgogICBmaWxlIElGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9IQ05VTS1UQy50eHQ6CgogICBmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDIgMDc6MDYgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KICAgCjIwMDAtMDgtMDIgMDY6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBCVUcgIzI5MTogYWxsb3cgIjI1NS4yNTUuMjU1LjI1NSIgZm9yIHRleHQgaW5wdXQgdG8gQVNOX0lQQUREUkVTUwogICAKMjAwMC0wOC0wMiAwNToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYXBwcy9zbm1wdGVzdC5jCjoKCiAgIEZpeCAoQlVHIzMyMyk6IGZyZWUgUERVIHdoZW4gc25tcF9zZW5kIGZhaWxzLgogICAKMjAwMC0wOC0wMiAwNTowNiAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgogICBGaW5kIE1JQkRJUlMgaW4gc291cmNlIHRyZWUuCiAgIEZpeCBjb25kaXRpb24gdG8gc2V0IFBBVEguCiAgIAoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gaXAuYzogT25lIG1vcmUgI2lmIHNvbGFyaXMKICAgCjIwMDAtMDgtMDEgMjM6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKICAgCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSB1bnVzZWQgdXNhZ2UoKSB0eXBlZGVmLgogICAKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgLSAocHJveHkuYywgcHJveHkuaCk6IC1XYWxsIHdhcm5pbmcgZml4ZXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIG5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMuCiAgIAoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL1RFU1RDT05GLnNoLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCiAgIAoyMDAwLTA4LTAxIDE2OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgogICAKMjAwMC0wOC0wMSAxMDoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC11Y2Quc2g6CgogICAtIChzbm1wLXVjZC5zaCk6IGZpeCBidWcgIzI5NyAoZG9uJ3Qga2lsbCBncmVwIGFuZCBpbml0IHNjcmlwdCBpbnZvY2F0aW9ucykuCiAgIAoyMDAwLTA4LTAxIDA0OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBidWcgZm91bmQgYnkgWWlnYWwgSG9jaGJlcmcgPGhvY2hiZXJnQGRtaHNvZnR3YXJlLmNvbT4KICAgCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECiAgIAkod29yayB3aXRoIHRoZSBuYW1lIG9yaWdpbmFsbHkgcmVnaXN0ZXJlZCwKICAgCSBub3QgYW55IHN1YnNlcXVlbnQgZGl2aXNpb24gYm91bmRhcmllcykKICAgCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZm9wZW4gZnJvbSBzaGVsbF9jb21tYW5kLgogICAKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaC5pbjoKCiAgIChURVNUQ09ORi5zaC5pbikgLSBzZXQgTUlCRElSUyB0byBzaWJsaW5nIG9mIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KICAgKFJVTlRFU1RTKSAtIGFsbG93IGJpbmFyaWVzIHRvIGJlIGluIHRoZSAiLUQgYmluZGlyIiBkaXJlY3RvcnkuCiAgIAoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLmluOgoKICAgRG9udCBhZGp1c3QgUEFUSCBpZiBTTk1QX1BBVEggaXMgc2V0LgogICBEb250IGFkZCBwb3J0IHNwZWMgdG8gU05NUF9GTEFHUyBpZiBvbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQuCiAgIAoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBSZW1vdmUgdGVzdCBkaXJlY3RvcmllcyBmb3Igc2tpcHBlZCB0ZXN0cy4KICAgS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCiAgIEtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgcGFzc2VkIHRlc3RzIHdoZW4gIlJVTlRFU1RTIC1zIiBpcyBzcGVjaWZpZWQuCiAgIFNlYXJjaCBjb25maWcuaCBhdCB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgdHJlZS4KICAgCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5ndWVzczoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcCwgQ3JheS1UMywgU1gtNCwgU1gtNQogICAKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIE1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcAogICAKMjAwMC0wNy0zMCAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6CiAgICAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCiAgICAgLSBkZWxldGUgdW51c2VkIGZ1bmN0aW9uLgogICAgIC0gbWlzYyB3YXJuaW5nIGZpeGVzLgogICAKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jCiwgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmg6CgogICAtIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgpOgogICAgIC0gbW9yZSBub3RpZmljYXRpb24gdGFibGUgaW1wbGVtZW50YXRpb25zIGZvciBmaWx0ZXJpbmcuCiAgICAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCiAgIAoyMDAwLTA3LTMwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhhbmRsZSBpbXBsaWVkIG9iamVjdHMuCiAgICAgLSBpbXBsZW1lbnQgaGVhZGVyX2NvbXBsZXhfZ2V0KCkgZm9yIHNpbXBsZSBkYXRhIHJldHJpZXZhbHMuCiAgIAoyMDAwLTA3LTI4IDA2OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmFyX3JvdXRlLmM6CgogICBDbGVhbnVwIGluY2x1ZGUgaGVhZGVycyB0byBmaXggYnVnICMzMDcuIFRoYW5rcyB0byBzYW5kdmVuQHJlc2VhcmNoLmF0dC5jb20uCiAgIAoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKICAgICAtIGFjY2Vzc19ob3N0cygpIHJlcXVpcmVzIGFuIGFyZ3VtZW50IHNvIGZha2Ugb25lLgogICAKMjAwMC0wNy0yNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXR0aWFzIEJhcnRoZWw6CiAgICAgLSBmaXggZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBhdHRhY2hlZCBJUCBhZGRyZXNzLgogICAKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAtIHN1cHBvcnQgcmF3IHZhbHVlcy4KICAgCjIwMDAtMDctMjcgMDg6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogcHJpbnQgZXJyb3JzIHRvIHN0ZGVyci4KICAgCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGl6YXRpb24gd2hlbiBvbmUgTUlCIGhvbGRzIE1PRFVMRS1DT01QTElBTkNFCiAgIAlmb3IgYW5vdGhlcgogICAKMjAwMC0wNy0yNyAwMTozNSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CiAgIAlUaGFua3MgdG8gRGFuYSBQLiBDb29rIDxkY29va0BjYWJsZXRyb24uY29tPgogICAKMjAwMC0wNy0yNiAyMjoyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBVcGRhdGUgZm9yIHdpbjMyIGJ1aWxkOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgdW5wdWJsaXNoZWQgbWV0aG9kLgogICAKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBjaGFuZ2VzIGFuZCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdHJhbnNsYXRlT2JqIGhhY2suCiAgIAoyMDAwLTA3LTI2IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCiAgIAoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KICAgCjIwMDAtMDctMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNvcHkga2V5IGxlbmd0aCBhcyB3ZWxsIGFzIHRoZSBrZXkgd2hlbiB1c2luZyB0aGUgc2FtZQogICAgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KICAgCjIwMDAtMDctMTEgMTM6MzQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzLCB0L21pYi50CjoKCiAgIGFkZGVkIHJhbmdlcyBmaWVsZCB0byBTTk1QOjpNSUIgaGFzaAogICAKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBtYWtlIG51bGwgUFJFRklYIHZhcmlhYmxlIHBvc3NpYmxlIHNvIG5vbi1kb3QtbGVhZGluZyBvaWRzIGFyZSBhY2NlcHRlZC4KICAgCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKICAgICAgICJhdXRob3JpdGF0aXZlIiwgbWVhbmluZyB3ZWF0aGVyIHRoZXkgc2hvdWxkIGJlIGxlYXJuaW5nIGVuZ2luZUlEcwogICAgICAgb3IgcmVwb3J0aW5nIG9uIHRoZW0uCiAgICAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAogICAgICAgdXNtX3Byb2NjZXNzX2luX21zZygpIHRvIHVzZSB0aGlzIGZsYWcuCiAgICAgLSBzZXQgaXNBdXRob3JhdGF0aXZlID0gdHJ1ZSBpbiB0aGUgYWdlbnQsIGFuZCB1bmtub3duIGluIHRoZSBzbm1wdHJhcGQuCiAgIAoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtYWtlIHRoZSBjcmVhdGVVc2VyIHRva2VuIGFjY2VwdCBhbiBlbmdpbmVpZCAoLWUgQVJHKSB0byB1c2UuCiAgIAoyMDAwLTA3LTA3IDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBSZWNvZ25pc2UgVG9rZW4gUmluZyBpbnRlcmZhY2VzIHVuZGVyIExpbnV4CiAgIAoyMDAwLTA3LTA2IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcHJpbnQgZ2VuZXJpYyBzdHJpbmdzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQogICAgIHdoZXJlIHBvc3NpYmxlLiAgKElFLCBjaGVjayBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMgYmVmb3JlIHByaW50aW5nIGhleCkuCiAgIAoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluOgoKICAgLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogbW92ZWQgVEVTVENPTkYuc2ggdG8gVEVTVENPTkYuc2guaW4KICAgICBhbmQgaGF2ZSB0aGUgTUlCUyBwYXRoIHZhcmlhYmxlIGJ1aWx0IGJ5IGNvbmZpZ3VyZSBzaW5jZSBpdCBrbm93cwogICAgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCiAgIAoyMDAwLTA3LTA2IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBoZWFkZXJfY29tcGxleC5jLCBzbm1wTm90aWZ5VGFibGUuYywKICAgICBhc24xLmgsIHNubXBfYXBpLmMpOgogICAgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCiAgICAgLSBtYWtlIHRoZSBjcmVhdGVkIFVTTSBlbnRyaWVzIHNldCB0aGUgc3RvcmFnZVR5cGUgYW5kIFJvd1N0YXR1cwogICAgICAgYXBwcm9wcmlhdGVseS4KICAgCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBiZXR0ZXIgY29tbWVudHMgb24gYSBjb3VwbGUgb2YgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCiAgIAoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggKEJVRyMyOTApIGdyYWNlZnVsbHkgaGFuZGxlIHNvbWUgUERVcyB0aGF0IGhhdmUgbm8gdmFyaWFibGVzLgogICAKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCiAgICAgLSBtYWtlIGVuZ2luZWlkIHJlcG9ydHMgZnJvbSB0aGUgdXNtIGhhcHBlbiBiYXNlZCBvbiB0aGUgcmVwb3J0IGZsYWcKICAgICAgIGluIHRoZSBtZXNzYWdlIGZsYWcuCiAgICAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCiAgICAgICAgIHNwZWNpZmljYXRpb25zIG5vdGUgdGhhdCB5b3Ugc2VuZCBhIHJlcG9ydCBpZiB5b3UgYXJlCiAgICAgICAgICJhdXRob3JpdGF0aXZlIiwgYnV0IGRvbid0IGRlc2NyaWJlIGhvdyB0byBrbm93IGlmIHlvdSBhcmUKICAgICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCiAgICAgICAgIG5vdGlmaWNhdGlvbiByZWNlaXZlcnMsIHdoZXJlIHlvdSBhcmUgc29tZXRpbWVzIGF1dGhvcml0YXRpdmUKICAgICAgICAgYW5kIG90aGVyIHRpbWVzIHlvdSdyZSBub3QsIHRoaXMgaXMgcHJvYmxlbWF0aWMuICBUaGUgU05NUHYzCiAgICAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKICAgICAgICAgV0cgaGFzIHByb2NsYWltZWQgdGhhdCB0aGUgQVNJcyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgYXMgYW4KICAgICAgICAgQVBJLCBidXQgdGhlIGluaXRpYWwgd29yayBkb25lIGJ5IE5BSSBhbmQgVElTTGFicyBhdHRlbXB0ZWQgdG8KICAgICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQogICAgICAgICBhbmQgaGVuY2Ugd2UgZm9sbG93ZWQgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIgYW5kIHVzZWQKICAgICAgICAgdGhlIEFTSXMgYXMgQVBJcyBqdXN0IHRvIHNlZSBpZiB3ZSBjb3VsZC4gIFdlIGNvdWxkIHByZXZpb3VzbHkKICAgICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCiAgICAgICAgIG5vbi1hdXRob3JpdGF0aXZlLiAgU2luY2UgYmVnaW5uaW5nIHRvIHdvcmsgb24gcHJveHkgYW5kIHRoZQogICAgICAgICBub3RpZmljYXRpb24gbWliLCB0aGlzIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gIEZvciB0aGUgcmVjb3JkLCBJCiAgICAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKICAgICAgICAgbWFubmVyIGFzIGl0IG5vIGxvbmdlciBjb25mb3JtcyBleGFjdGx5IHRvIHRoZSBTTk1QdjMgQVNJcy4gIFNvCiAgICAgICAgIGFzIG5vdCB0byBjb25mdXNlIGFueW9uZSwgdGhpcyBpcyBhbiBlbnRpcmVseSB0aGVvcmV0aWNhbCBpc3N1ZQogICAgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKICAgICAgICAgdG8gZG8uICBUaG91Z2ggSSBjb3VsZCBlYXNpbHkgZ28gb24sIEknbGwgc3RlcCBvZmYgbXkgc29hcCBib3ggbm93LgogICAKMjAwMC0wNy0wMyAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmgsIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CiAgICAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCiAgICAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgdXNlIGl0LgogICAgIC0gbWFrZSB0aGUgdGFyZ2V0IG1pYiBnZW5lcmF0ZSBtb3JlIHBlcnNpc3RlbnQgc2Vzc2lvbnMuCiAgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgogICAgICAgbGlzdCwgd2hpY2ggaXMgbm93IGNhY2hlZCBkaXJlY3RseSBieSB0aGUgdGFyZ2V0IG1pYi4KICAgCjIwMDAtMDctMDMgMDg6MzggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYwosIHN5c3RlbS5jOgoKICAgZml4IChCVUcjMjYyKSAtIChzb21lKSBzdGF0ZW1lbnRzIHRoYXQgY2Fubm90IGJlIHJlYWNoZWQuCiAgIAoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBmaXggKEJVRyMyODcpCiAgIAoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIGZpeCBidWcgIyAyODkKICAgCjIwMDAtMDYtMzAgMDQ6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CiAgIAoyMDAwLTA2LTMwIDAwOjQ3ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKICAgCjIwMDAtMDYtMjggMjM6MzcgIG5iYQoKICAgKiBtaWJzLzogSUYtTUlCLnR4dCwgTWFrZWZpbGUubWliOgoKICAgLSBJRi1NSUIudHh0OiB1cGdyYWRlIHRvIFJGQyAyODYzCiAgIAoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQogICAKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSBtYWluLmM6IGJldHRlciBvcHRpb24gcGFyc2luZy4KICAgCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgogICAKMjAwMC0wNi0yNyAwMDozMyAgbmJhCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIHNubXB0cmFuc2xhdGUuMTogZG9jdW1lbnQgdGhhdCAtdyBpcyBhbHNvIGZvciAtVGQKICAgCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xCiwgc25tcGdldC4xLCBzbm1wZ2V0bmV4dC4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRlc3QuMSwgc25tcHRyYXAuMQosIHNubXB0cmFwZC44LCBzbm1wd2Fsay4xLCB2YXJpYWJsZXMuNToKCiAgIC0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwogICAKMjAwMC0wNi0yNyAwMDoyOCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBmaXhlcyBhbmQgdXNhZ2UgbWVzc2FnZSBmb3IgLUNoIGFuZCAtQ0gKICAgCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKICAgKiBtaWJzLzogQUdFTlRYLU1JQi50eHQsIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0LAogICBESVNNQU4tU0NSSVBULU1JQi50eHQsIEV0aGVyTGlrZS1NSUIudHh0LAogICBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCBJQU5BLUxBTkdVQUdFLU1JQi50eHQKLCBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQKLCBJUFY2LUlDTVAtTUlCLnR4dCwgSVBWNi1NSUIudHh0LCBJUFY2LVRDLnR4dAosIElQVjYtVENQLU1JQi50eHQsIE1ha2VmaWxlLmluLCBSTU9OLU1JQi50eHQKLCBTTVVYLU1JQi50eHQsIFNOTVAtQ09NTVVOSVRZLU1JQi50eHQsCiAgIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsIFNOTVAtTVBELU1JQi50eHQsCiAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1UQVJHRVQtTUlCLnR4dCwgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgU05NUHYyLUNPTkYudHh0LAogICBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVNNSS50eHQsIFNOTVB2Mi1UQy50eHQsCiAgIFNOTVB2Mi1UTS50eHQsIFRDUC1NSUIudHh0LCBVRFAtTUlCLnR4dDoKCiAgIC0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgogICAKMjAwMC0wNi0yNiAyMzo0MiAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIC0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwogICAJZG9jdW1lbnRzLgogICAKMjAwMC0wNi0yNiAyMzo0MCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBwYXJzZS5jLCBtaWIuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhZGQgcGFyc2luZyBvZiBDSE9JQ0UgYW5kIGNoZWNrcyBmb3IKICAgCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQogICAJY29tcGxldGUgTUlCIGV4dHJhY3RzIGZyb20gUkZDIGRvY3VtZW50cy4KICAgCjIwMDAtMDYtMjYgMjM6MzggIG5iYQoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIE1ha2VmaWxlLnRvcDogbWFrZSBsaWJ0b29sIHNpbGVudCwgc28gd2UgY2FuIHNlZSB0aG9zZSB3YXJuaW5ncwogICAKMjAwMC0wNi0yNiAyMzozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAtIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCiAgIAoyMDAwLTA2LTI2IDIzOjMyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAogICAJaXMgc2VudC4KICAgCjIwMDAtMDYtMjYgMTE6NTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCAoQlVHIzIzMykKICAgCjIwMDAtMDYtMjMgMDY6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlcGxhY2UgbWFsbG9jL21lbXNldCAwIHdpdGggY2FsbG9jLgogICAKMjAwMC0wNi0yMyAwMTowOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpcC5jOgoKICAgLSAobWliSUkva2VybmVsX2xpbnV4LltjaF0sIG1pYklJL2lwLmMpOiBBZGRlZCBzdXBwb3J0IGZvciBpcFJvdXRpbmdEaXNjYXJkcwogICAJKFRoYW5rcyB0byBCcnlhbiBCbGFja21hbikKICAgCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIHJlbW92ZSBleHRyYSBpbmNsdWRlIGVycm9ybWliLmgKICAgCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeCBidWcgIzI3NiAtIGNsb3NlIG1vc3QgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgZXhlYydpbmcgY29tbWFuZC4KICAgCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKOgoKICAgZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KICAgCjIwMDAtMDYtMjIgMTU6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIFVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KICAgCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gKHNubXBOb3RpZnlUYWJsZS5jKTogVWgsIG9ubHkgaWYgbm90IGRlbGV0ZWQuCiAgIAoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYyk6IGNoYW5nZSBjcmVhdGVBbmRHby9jcmVhdGVBbmRXYWl0IHN0YXRlcyB0byBhY3RpdmUvTklTLgogICAKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICBEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KICAgCjIwMDAtMDYtMjAgMTc6MzAgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgRG9udCBhc3N1bWUgQU5TSSBDLXByZXByb2Nlc3NvciAocmVwbGFjZSAiIyMiIGNvbmNhdGVuYXRpb24gd2l0aCBzcHJpbnRmKS4KICAgCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZGVmLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCBzbm1wZC9zbm1wZC5kc3AsCiAgIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHNubXB1c20vc25tcHVzbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFdpbjMyIE1TLVZDKysgYnVpbGQgZml4dXBzLgogICAKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgogICAKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCiAgIAoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFVzZSBpbnQgdnMgdWxvbmcgZm9yIGFycmF5IGluZGV4aW5nIHZhcmlhYmxlcyB0byBhdm9pZCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2guCiAgIAoyMDAwLTA2LTIwIDE1OjM0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgogICAKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyICJpbml0bGlzdCIuCiAgIAoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEZWNsYXJlIHN0cm5jYXNlY21wIGluIHN5c3RlbS5oIDsgUmVtb3ZlIHVudXNlZCB2YXIgInN0YXR1cyIuCiAgIAoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFycy4KICAgCjIwMDAtMDYtMjAgMTU6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIERlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgogICAKMjAwMC0wNi0yMCAxNDowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgogICAKMjAwMC0wNi0yMCAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMKLCBzbm1wTm90aWZ5VGFibGUuaDoKCiAgIC0gKC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCk6CiAgICAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CiAgICAgICAtIHVzZXMgdGhlIFNOTVAtVEFSR0VULU1JQiB0byBnZXQgaXRzIGFkZHJlc3NlcyBmcm9tLgogICAgICAgLSB1c2VzIGhlYWRlcl9jb21wbGV4IHRvIGhhbmRsZSB0aGUgZGF0YS4KICAgICAgIC0gbXVjaCB0b2RvOgogICAgICAgICAtIGR5bmFtaWMgdGFyZ2V0L25vdGlmaWNhdGlvbiBtaWIgdXBkYXRpbmcgd2l0aG91dCBraWxsIC1IVVAgbmVlZGVkLgogICAgICAgICAgIC0gdGhpcyB3aWxsIGJlIGEgcmVhbCBwYWluLgogICAgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KICAgICAgICAgLSB0aGUgcmVzdCBvZiB0aGUgU05NUC1OT1RJRklDQVRJT04tTUlCIHRhYmxlcy4KICAgCjIwMDAtMDYtMjAgMTM6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KICAgLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgogICAKMjAwMC0wNi0yMCAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3RhcmdldC5jLAogICB0YXJnZXQvdGFyZ2V0Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKTogZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgogICAgIGJhc2VkIG9uIGVudHJpZXMgaW4gdGhlIFNOTVAtVEFSR0VULU1JQiB0YWJsZS4KICAgCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogcmVtb3ZlIE1pY2hhZWwncyBob3JyaWJsZWx5IHdyb25nICJmaXhlcyIuCiAgIAoyMDAwLTA2LTIwIDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgogICAKMjAwMC0wNi0yMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgogICAKMjAwMC0wNi0xOSAxMjozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KICAgCjIwMDAtMDYtMTkgMTI6MTUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBwcm90b2NvbC5jOgoKICAgKHByb3RvY29sLmMpIFVzZSBzaXplb2Yob2lkKSwgbm90IDQhCiAgIChjbGllbnQuYykgQWRkIF9hbGxfIG9mIE9JRCB2YWx1ZSBmb3IgYWdlbnR4X3JlZ2lzdGVyIGFuZCBhZ2VudHhfdW5yZWdpc3Rlci4KICAgCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgUmVtb3ZlZCBzaXplb2YodV9jaGFyKSBhbmQgdW5uZWNlc3NhcnkgKHVuc2lnbmVkKSBjYXN0cyB0byBtYWxsb2MgcGFyYW1zLgogICAKMjAwMC0wNi0xOSAwMzowNCAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgUHJvdG90eXBlIGZpeHVwLgogICAKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICBzL2NvbmlmZy9jb25maWcvIC4uLi4gSHJycm1tbXBmCiAgIAoyMDAwLTA2LTE5IDAyOjU4ICBuYmEKCiAgICogbWFrZW5vc3lzZGVwZW5kLnBsLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIG1ha2Vub3N5c2RlcGVuZC5wbCBNYWtlZmlsZS5pbjogb2JqZWN0IGZpbGVzIGFyZSBub3cgbmFtZWQgLmxvIC4uLgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCk6IGFkZCB0aGUgU05NUHYyLVRNIG1pYiB0byB0aGUgZGVmYXVsdCBsaXN0LgogICAKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCiAgIAoyMDAwLTA2LTE1IDA2OjQ1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIGZhdCBmaW5nZXJzCiAgIAoyMDAwLTA2LTE1IDA2OjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5QTDoKCiAgIGFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KICAgCjIwMDAtMDYtMTIgMTY6NDMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRyYXBzZXNzLgogICAKMjAwMC0wNi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKICAgICAtIG5ldyBzbm1wZC5jb25mIHRva2VuIGZvciB0cmFwIHNlc3Npb25zOiAidHJhcHNlc3MiLgogICAgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncyBzbyBhbnkgdHlwZSBvZiB0cmFwIGNhbiBiZSBzZW50IHdpdGggaXQKICAgICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KICAgICAgIC0gdjMgdHJhcHMgZG9uJ3Qgd29yayBkdWUgdG8gdGhlIHNhbWUgVVNNIHByb2JsZW1zIGZvdW5kIGluIHRoZQogICAgICAgICByZWNlbnQgcHJveHkgc3VibWlzc2lvbnMgKG15IG5leHQgdGFyZ2V0KS4KICAgICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KICAgCjIwMDAtMDYtMTIgMTY6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlLWVuYWJsZSBmcmVlaW5nIG9mIG1hc3RlciByZXF1ZXN0LgogICAKMjAwMC0wNi0xMiAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNhdmUgZXhlYyBkYXRhIHRvIC92YXIvdWNkLXNubXAuCiAgICAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgogICAKMjAwMC0wNi0xMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIChzbm1wdHJhcGRfbG9nLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSByZW1vdmUgZW5kaW5nIGNvbW1hcyBpbiBlbnVtIGxpc3QuCiAgIAoyMDAwLTA2LTA3IDEzOjIzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9jb25maWcuNS5kZWYsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKICAgICAgIGZpbGUgVFlQRSBpZiBhIHNwZWNpYWwgIltUWVBFXSIga2V5d29yZCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICAgICAgLmNvbmYgZmlsZS4gIFNlZSBzbm1wX2NvbmZpZyg1KSBmb3IgYSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCiAgIAoyMDAwLTA2LTAyIDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCiAgIAoyMDAwLTA2LTAyIDExOjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLAogICBtaWIyYywgdGttaWI6CgogICAtIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKICAgICAtIG1ha2UgKGFuZCBpbnN0YWxsKSBwZXJsIHNjcmlwdHMgZGlmZmVyZW50bHksIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBvcmlnLgogICAKMjAwMC0wNi0wMSAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KICAgICBlbnN1cmUgd2UgdXBkYXRlIGNvdW50ZXJzIGFuZCBzdHVmZiB0aGF0IG11c3QgY2hhbmdlIChlZywgZW5naW5lQm9vdHMpLgogICAKMjAwMC0wNS0zMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkZXNjcmliZSAtSS4KICAgCjIwMDAtMDUtMzEgMTU6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJfbW9kdWxlcy5jCiwgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wZC5jKToKICAgICAtIG5ldyAtSSBzd2l0Y2ggdG8gc25tcGQgdG8gZG8gZHluYW1pYyBkZXRlcm1pbmF0b24gb2Ygd2hpY2ggbWliCiAgICAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KICAgCjIwMDAtMDUtMzEgMTU6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KICAgIC0gd2hpY2ggSSBpbW1lZGlhdGVseSBkZWNpZGVkIHRvIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yIHdoYXQgSQogICAgICBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGl0IGZvciwgc28gaXRzIG5vdCBiZWluZyB1c2VkIHlldC4KICAgCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXAuaDoKCiAgIC0gKG1pYklJL2lwLltjaF0pOiBBbGxvdyBJUCBzdXBwb3J0IHdpdGhvdXQgdGhlIEF0L2lwTmV0VG9NZWRpYSBtb2R1bGUKICAgCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKHByb3h5LmMsIHByb3h5LmgpOiBzaW1wbGUgcHJveHkgc3VwcG9ydC4KICAgICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KICAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzKCkgc28gaXQgdGFrZXMgc3RhbmRhcmQgY29tbWFuZCBsaW5lIGNvbmZpZyBvcHRpb25zLgogICAgIC0gbm8gc2V0IHN1cHBvcnQuCiAgICAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KICAgICAtIG5vIFNOTVB2MyBzdXBwb3J0IChzaWdoKS4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dDoKCiAgIGZpbGUgSUFOQS1MQU5HVUFHRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQ6CgogICBmaWxlIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvRElTTUFOLVNDSEVEVUxFLU1JQi50eHQ6CgogICBmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgogICAqIG1pYnMvQUdFTlRYLU1JQi50eHQ6CgogICBmaWxlIEFHRU5UWC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgRml4IHByb2JsZW0gaWRlbnRpZmllZCBieSBWLiBHcmVuZXQ6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL21pYmZldGNoOgoKICAgZmlsZSBtaWJmZXRjaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL3NtaXN0cmlwOgoKICAgZmlsZSBzbWlzdHJpcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIGZpbGUgTWFrZWZpbGUubWliIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3N5c09SVGFibGUuYyBtaWJJSS9zeXN0ZW1fbWliLmMpOgogICAgIC0gVXNlIG5ldyB0aW1lIHV0aWxpdHkgcm91dGluZXMgdG8gc2ltcGxpZnkgcHJvY2Vzc2luZwogICAgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCiAgIAoyMDAwLTA1LTI2IDA5OjIzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5bY2hdKTogTmV3IHRpbWUtZGlmZiB1dGlsaXR5IHJvdXRpbmVzCiAgIAoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIChzbm1wZC5jIHNubXBfYWdlbnQuYyBtaWJJSS92YXJfcm91dGUuYyk6IFVzZSAnbWliaW5jbC5oJyBoZWFkZXIKICAgCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXQogICAgICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwogICAKMjAwMC0wNS0yNiAwNzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogU3VwcG9ydCBmb3IgcGVyLXJlcXVlc3QgdGltZW91dCBoYW5kbGluZwogICAKMjAwMC0wNS0yNiAwNzo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IE1pbm9yIGVycm9yIGluIEFnZW50WCBwYWNrZXQgZHVtcAogICAKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq4KWG4KSG4KSQcnN0YWQ6CiAgICAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KICAgCjIwMDAtMDUtMjUgMDU6MzggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCB1c2Ugb2YgYmluMmFzYyB0byBub3QgYWx3YXlzIHNob3cgInN0cmluZyI7IHVzZSBzbm1wX29pZF9jb21wYXJlLCB0b28uCiAgIFNlZSBidWcgIzIzNCBmb3IgZGV0YWlscy4KICAgCjIwMDAtMDUtMjUgMDM6MzkgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvbnNvbGlkYXRlIGhlYWRlciBoYW5kbGluZy4KICAgCjIwMDAtMDUtMjUgMDM6MzEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKG1pYklJL2ludGVyZmFjZXMuYyk6IENvcnJlY3QgY29uZnVzaW5nIGNvbW1lbnQKICAgCjIwMDAtMDUtMjUgMDE6NTMgIGRhdmVzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IFJlcGxhY2UgdXNlIG9mICdjdXQnIHdpdGggZXF1aXZhbGVudCAnc2VkJyBjYWxscwogICAKMjAwMC0wNS0yNSAwMTozMCAgZGF2ZXMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUpOgogICAgIC0gRGlyZWN0IGNlcnRhaW4gY2hlY2tzIHRvIHRoZSBhcHByb3ByaWF0ZSBmaWxlIGRlc2NyaXB0b3IgKHNlZSBCVUcjMjQ3KQogICAKMjAwMC0wNS0yMiAxNjoyMiAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkIG1vcmUgc3R1ZmYgdG8gaWdub3JlLgogICAKMjAwMC0wNS0yMiAxNjoyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa2dldC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYwosIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGtnZXQuYywKICAgICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYywgTWFrZWZpbGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBfcGFyc2VfYXJncy5oKToKICAgICAtIG1vdmVkIHNubXBfcGFyc2VfYXJncyB0byB0aGUgbGlicmFyeSwgYXMgSSBwcm9taXNlZCB0byBkbyBhZ2VzIGFnby4KICAgICAgIC0gbm8gbG9uZ2VyIGNhbGxzIHVzYWdlKCkgZGlyZWN0bHksIGJ1dCByZXR1cm5zIC0xIGlmIHlvdSBzaG91bGQuCiAgIAoyMDAwLTA1LTIyIDA1OjQ3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgIC0gKHNubXBsaWIvdG9vbHMuW2NoXSk6IFJvdXRpbmUgZm9yIGNvbXBhcmluZyB0d28gbWFya2Vycy4KICAgCjIwMDAtMDUtMjIgMDU6NDIgIGRhdmVzCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobG9jYWwvbWliMmMpOiBHZW5lcmF0ZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIGNvZGUgZmlsZQogICAKMjAwMC0wNS0xNyAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gd3JpdGFibGUgdmFjbSBtaWIgc3VwcG9ydC4KICAgICAtIG90aGVyIG1pc2MgdmFjbSBmaXhlcy4KICAgCjIwMDAtMDUtMTcgMTA6MjYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gRG9uJ3Qgc2VnZmF1bHQgb24gYW4gdW5rbm93biBjb21tYW5kLCBpbnN0ZWFkIHByaW50IGEgd2FybmluZy4uCiAgIAoyMDAwLTA1LTE3IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICAtIChzbm1wdmFjbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgogICAgIC0gYWRkZWQgYSBuZXcgY29tbWFuZDogc25tcHZhY20uCiAgIAoyMDAwLTA1LTE3IDA5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IG1lbnRpb24gdGhlIHBvcnQgbnVtYmVyIG9uIHRoZSB0cmFwc2luayBoZWxwIGxpbmUuCiAgIAoyMDAwLTA1LTE3IDA5OjIwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiB1c2Ugc3RhbmRhcmRpemVkIGJ1ZmZlciBzaXplcwogICAKMjAwMC0wNS0xNyAwOToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20KICAgICBKZWZmIENvdXJzOgogICAgIC0gY3VzdG9taXplZCBmb3JtYXR0aW5nIG9mIHRyYXAgb3V0cHV0LgogICAKMjAwMC0wNS0xNyAwOToxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkIEplZmYgYW5kIEFybmUuCiAgIAoyMDAwLTA1LTE3IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiAqY29ycmVjdGx5KiBhc3NvY2lhdGUgZXNjYXBlUXVvdGVzIHdpdGggdGhlIHJpZ2h0IGRlZmF1bHRfc3RvcmUgYm9vbC4KICAgCjIwMDAtMDUtMTcgMDg6MTEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBlc2NhcGVRdW90ZXMuCiAgIAoyMDAwLTA1LTE3IDA4OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBjbWQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG5ldyBvcHRpb24gLU9FOgogICAgIC0gc2hlbGwgYmFja3NsYXNoIGVzY2FwZSBxdW90YXRpb25zIG1hcmtzIGZvciBjdXR0aW5nIGFuZCBwYXN0aW5nCiAgICAgICBvbnRvIGFub3RoZXIgc25tcCBjb21tYW5kIGxpbmUuCiAgIAoyMDAwLTA1LTE1IDA5OjI0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaAosIGljbXAuYywgaXAuYywgaXAuaCwgaWNtcC5oLCB0Y3AuYwosIHRjcC5oLCB1ZHAuYywgdWRwLmg6CgogICAtIChtaWJJSS97aXAsaWNtcCx0Y3AsdWRwLGtlcm5lbF9saW51eH0uW2NoXSk6CiAgICAgLSAgUHVsbCBMaW51eCBNSUItSUkgc3RhdGlzdGljcyBnYXRoZXJpbmcgaW50byBhIHNpbmdsZSByb3V0aW5lLgogICAgIC0gIENhY2hlIE1JQi1JSSBzdGF0aXN0aWNzIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgogICAKMjAwMC0wNS0xNSAwODo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC92bXN0YXRfYnNkaTQuYwosIHVjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oOgoKICAgLSAodWNkX3NubXAuaCwgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gdm1zdGF0IHN1cHBvcnQgZm9yIGJzZGk0LgogICAKMjAwMC0wNS0xNSAwMzowNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKICAgCShJdCByZWFwcGVhcmVkIGR1cmluZyBhIHJlY2VudCBjaGFuZ2UpCiAgIAoyMDAwLTA1LTE1IDAzOjAwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X2luZGV4LmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmgsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBJbXBsZW1lbnQgbWlzc2luZyByb3V0aW5lICd1bnJlZ2lzdGVyX21pYl9jb250ZXh0JwogICAKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudF9pbmRleC5bY2hdKTogTW92ZSAnZmQnIHJlZ2lzdHJ5IGhhbmRsaW5nIGJhY2sgdG8gYWdlbnRfcmVnaXN0cnkKICAgCiAgIC0gKGFnZW50eC9jbGllbnQuYyk6IFJlY29nbmlzZSBuZXcgY29kZSBmaWxlIGZvciBpbmRleCBoYW5kbGluZwogICAKMjAwMC0wNS0xMiAxMDoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogVW0sIGRlZmF1bHQgdG8gcG9ydCAxNjEuICBPcHBzLgogICAKMjAwMC0wNS0xMiAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gdmFyX3N0cnVjdC5oIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBQcmVwYXJhdGlvbiBmb3IgcGVyLU1JQiByZWdpb24gdGltZW91dCwgYW5kIGNvbnRleHQgc3VwcG9ydAogICAKMjAwMC0wNS0xMiAwODo0NSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUmVjb2duaXNlIFNvbGFyaXMgQVRNIExBTiBFbXVsYXRpb24gaW50ZXJmYWNlcwogICAJVGhhbmtzIHRvIEpheSBZb3VuZwogICAKMjAwMC0wNS0xMiAwODoxMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9pbmRleC5oLCBNYWtlZmlsZS5pbgosIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X2luZGV4LltjaF0gYWdlbnRfcmVnaXN0cnkuW2NoXSBNYWtlZmlsZS5pbiBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gU3BsaXQgaW5kZXggaGFuZGxpbmcgb3V0IGZyb20gdGhlIE1JQiByZWdpc3RyeS4KICAgCjIwMDAtMDUtMTIgMDc6MDIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEFkZCBzdXBwb3J0IGZvciByZWNvZ25pc2luZyBRdWFkRmFzdEV0aGVyIGludGVyZmFjZQogICAKMjAwMC0wNS0xMiAwNjo1NyAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggcHJvYmxlbSB3aXRoIG1pc3Npbmcgc2VwYXJhdG9yICh3aXRoIC1DaSAtQ2YpCiAgIAlUaGFua3MgdG8gWGF2aWVyIEZPVVJORVQKICAgCjIwMDAtMDUtMTIgMDQ6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCiAgIAlJJ20gc3VyZSB0aGlzIHdhcyBwdXQgaW4gZm9yIGEgcmVhc29uLCBidXQgSSBjYW4ndCByZW1lbWJlciB3aGF0LgogICAJSXQgZG9lc24ndCBzZWVtIHRvIGJlIG5lZWRlZCBub3csIGFuZCBqdXN0IGxlYWtzIG1lbW9yeS4KICAgCUhlcmUncyBob3BpbmcuLi4uLgogICAKMjAwMC0wNS0xMiAwMzoxMSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBDYXRjaCAoYW5kIGlnbm9yZSkgU0lHUElQRSBzaWduYWxzLgogICAJRGlzYXBwZWFyaW5nIHN1YmFnZW50cyB0aGVyZWZvciBhcHBlYXIgYXMgbm9ybWFsIEkvTyBmYWlsdXJlcwogICAKMjAwMC0wNS0xMiAwMjoyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6CiAgICAgLSBJbXBsZW1lbnQgb3BhcXVlLWVuY29kZWQgZmxvYXQgJiBkb3VibGUgdHlwZXMKICAgICAtIEJyaW5nIHBhY2tldCBkdW1wIGluIGxpbmUgd2l0aCB0aGUgbWFpbiBsaWJyYXJ5IHN0eWxlCiAgICAgLSBBZGQgcGFja2V0IGR1bXAgY2FwYWJpbGl0eSBmb3Igb3V0Z29pbmcgUERVcwogICAKMjAwMC0wNS0xMCAxNjo1MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtcC4KICAgCjIwMDAtMDUtMTAgMTY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgdHJhbnNwb3J0IG1hcHBpbmcsIG5vdCB0aGUgbGFzdCBvbmUuCiAgIAoyMDAwLTA1LTEwIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGltcGxlbWVudCBtdWx0aXBsZSB0cmFuc3BvcnQKICAgICBtYXBwaW5ncyB2aWEgLXAgW3RyYW5zcG9ydDpdcG9ydFtAYWRkcmVzc10uCiAgIAoyMDAwLTA1LTEwIDExOjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCB1ZHBzdGF0IC0tPiB0Y3BzdGF0CiAgIAoyMDAwLTA1LTEwIDA3OjU5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYwo6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBIYW5kbGUgc3ViYWdlbnQgZGlzYXBwZWFyaW5nIHdpdGhvdXQgd2FybmluZwogICAKMjAwMC0wNS0xMCAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAtIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIGFzeW5jaHJvbm91cyBzZW5kIGZhaWx1cmVzLgogICAKMjAwMC0wNS0xMCAwNjoxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IExvZ2ljYWwgTk9UPyBCaXR3aXNlIE5PVD8gV2hvJ2xsIG5vdGljZSB0aGUgZGlmZmVyZW5jZSBhbnl3YXkhCiAgIAoyMDAwLTA1LTEwIDA1OjM0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSGFuZGxlIG5vbi1yZXNwb25zaXZlIHN1YmFnZW50cwogICAKMjAwMC0wNS0xMCAwNTozMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBtaWJJSS9zeXNPUlRhYmxlLmMpOiBEb24ndCBhc3N1bWUgc3Vic2Vzc2lvbiBsaW5rIGlzIHZhbGlkCiAgIAoyMDAwLTA1LTEwIDA1OjI5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogRGVmaW5pdGlvbnMgZm9yIHNlc3Npb24gY2xvc2Vkb3duIGhhbmRsaW5nCiAgIAoyMDAwLTA1LTA5IDE0OjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIGFsc28gY2xlYW4gV2luMzIgYmluYXJ5IG9iamVjdHMsIGFuZCBjb3JlIGZpbGVzLgogICAKMjAwMC0wNS0wOSAxNDozNCAgbXNsaWZjYWsKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHRvdWNoIHVwIHRoZSAiY2xlYW4iIHJ1bGUuCiAgIAoyMDAwLTA1LTA5IDExOjMyICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHVudGlsIERhdmUncyB2ZXJzaW9uIHdpbnMsIG5lZWQgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBidWlsZCBXaW4zMiBhZ2VudC4KICAgCjIwMDAtMDUtMDkgMTE6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggc29tZSBXaW4zMiBidWlsZHMgKHNpZ25hbHM/IHdlIGRvbid0IG5lZWQgbm8gc3RlZW5raW5nIHNpZ25hbHMhKQogICAKMjAwMC0wNS0wOSAxMTozMCAgbXNsaWZjYWsKCiAgICogbHRtYWluLnNoOgoKICAgUmVtb3ZlIHRyYWlsaW5nIENSIFsweDBkXSBmcm9tIG9uZSBsaW5lLgogICAKMjAwMC0wNS0wOSAwODo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwogICAgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCiAgIAoyMDAwLTA1LTA5IDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwogICAgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCiAgIAoyMDAwLTA1LTA5IDA3OjQzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogU2VuZCBvdXQgcmUtZGVsZWdhdGVkIHJlcXVlc3RzCiAgIAkoYW5kIGZpeCBhIHByb2JsZW0gd2l0aCBzcGVjaWZ5aW5nIHRoZSBlbmQtb2YtcmFuZ2UgdmFsdWUpCiAgIAoyMDAwLTA1LTA5IDA3OjQwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIGVycm9yIHJlc3BvbnNlIGdlbmVyYXRpb24KICAgCShieSBhbmFsb2d5IHdpdGggcmVjZW50IGNoYW5nZXMgdG8gc25tcF9hZ2VudC5jKQogICAKMjAwMC0wNS0wOSAwNzozNCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogSGFuZGxlIEFnZW50WCAiZW5kLW9mLXJhbmdlIiBpbmRpY2F0aW9uLgogICAJKFRoaXMgaXMgbm90IHRoZSBjbGVhbmVzdCB3YXkgb2YgZG9pbmcgdGhpbmdzLAogICAJIGJ1dCB3b3JrcyBmb3Igbm93LiAgV2UgY2FuIHRpZHkgdXAgbGF0ZXIpLgogICAKMjAwMC0wNS0wOSAwNzoxNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFVzZSBNSUIgcmVnaXN0cnkgJ3N0YXJ0JyB2YWx1ZXMKICAgCShyYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgbmFtZSByZWdpc3RlcmVkKQogICAJVGhpcyBoYW5kbGVzIHN1YnNlcXVlbnQgcGFydCBvZiAnc3BsaXQnIHJhbmdlcyBwcm9wZXJseS4KICAgCjIwMDAtMDUtMDggMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBJIGNhbid0IGJlbGlldmUgdGhlIGxhc3QgY2hlY2tpbiBldmVuIGNvbXBpbGVkIChsdWNrKS4KICAgCjIwMDAtMDUtMDggMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggbGlicmFyeSBsaXN0LgogICAKMjAwMC0wNS0wNSAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIGRpc2sgaW8gc3VwcG9ydCBmb3IgQlNEL09TLgogICAKMjAwMC0wNS0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgYXQuYzoKCiAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBmaXggYSB6ZXJvIGJ5dGUgbWFsbG9jIGJ1ZyAobW9zdGx5IG5vdGljZWQgd2l0aCAtbGVmZW5jZSkuCiAgIAoyMDAwLTA1LTA1IDA5OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgKFY0LTEtMS1wYXRjaGVzLjUpLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKICAgICAtIC0td2l0aC1saWJ3cmFwIGltcHJvdmVtZW50cy4KICAgCjIwMDAtMDUtMDUgMDk6MDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHN1YmFnZW50LmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOgogICAgIC0gU2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIHRvIEFnZW50WCBwcm9jZXNzaW5nCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNSAwODo1OCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0gc25tcGxpYi9zbm1wX2NsaWVudC5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSk6CiAgICAgLSBNaW5vciBjaGFuZ2VzIHRvIGFzc2lzdCB3aXRoIEFnZW50WCBkZXZlbG9wbWVudAogICAJKFRoZXNlIG1heSBub3QgYmUgYWJzb2x1dGVseSBuZWNlc3NhcnksIGJ1dCB0aGV5IGdldCB0aGluZ3Mgd29ya2luZyBhZ2FpbiEpCiAgIAoyMDAwLTA1LTA0IDE2OjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWlub3IgdW5pbXBvcnRhbnQgLS13aXRob3V0LW9wZW5zc2wgZml4LgogICAKMjAwMC0wNS0wNCAxNjoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gYWxsb3cgLS13aXRob3V0LW9wZW5zc2wgdG8gd29yay4KICAgCjIwMDAtMDUtMDQgMTY6MTUgIGhhcmRha2VyCgogICAqIG1pYnMvOiBNYWtlZmlsZS5pbiAoVjQtMS0xLXBhdGNoZXMuMiksIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgdGhlIERJU01BTi1TQ1JJUFQtTUlCLnR4dAogICAKMjAwMC0wNS0wNCAxNjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBBbGJlcnQgQ2hpbi1BLVlvdW5nOgogICAgIC0gaW5zdGFsbCBVQ0QtRElTS0lPLU1JQi50eHQuCiAgIAoyMDAwLTA1LTA0IDA4OjI2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuW2NoXSk6IE5ldyByb3V0aW5lICdzbm1wX2Nsb25lX3ZhcmJpbmQoKScKICAgCQkoRnJvbSBhIHN1Z2dlc3Rpb24gYnkgUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDA4OjI0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBWYXJpb3VzIG1pbm9yIGZpeGVzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwMToyOSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSk6IEhhbmRsZSBpbmRleC9zdGF0dXMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIFBEVS4KICAgCUFsc28gbWVhbnMgdGhhdCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBhY2Nlc3MgdG8gdmFyaWFibGUgaW5kZXhlcwogICAJCShCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gZnJvbSBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDE6MDAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gKHVjZC1zbm1wL3Byb2MuYyk6IEluaXRpYWxpemUgbmV3bHkgbWFsbG9jZWQgc3RydWN0dXJlCiAgIAkoVGhhbmtzIHRvIEplZmYgV2lsc29uIC0gc2VlIEJVRyAjMjMxKQogICAKMjAwMC0wNS0wMyAwOTowNiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgLSBDbG9uZSBQRFUgd2l0aGluIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAgICAgTmV3IHJvdXRpbmUgJ2ZyZWVfYWdlbnRfc25tcF9zZXNzaW9uJwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDMgMDg6MTcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFdoZW4gcmV0dXJuaW5nIGFuIGVycm9yIHJlc3BvbnNlLAogICAJdXNlIGEgY2xlYW4gY29weSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBQRFUuCiAgIAoyMDAwLTA1LTAzIDA4OjE0ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5bY2hdKTogUm91dGluZSB0byBoYW5kbGUgdmFyaWFibGVzIGluZGl2aWR1YWxseQogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDMgMDQ6MzcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IENoZWNrIGFjY2Vzc2liaWxpdHkgb2YgZXhhY3QgcmVxdWVzdHMgYmVmb3JlIHByb2Nlc3NpbmcKICAgCShhbmQgcmVtb3ZlIHJlZHVuZGFudCAnZ2VuZXJpYycgU0VUIGhhbmRsaW5nKQogICAKMjAwMC0wNS0wMSAxMTozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggcHJpbnRpbmcgb2YgQklUUyB2YXJpYWJsZXMKICAgCjIwMDAtMDUtMDEgMDY6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICAgYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIFBoZXJhbiBTbm9kZ3Jhc3MgdG8gZml4IGluY29tcGF0aWJpbGl0eSB3aXRoIHBlcmw1LjYgcmVmIHN0cmluZ2lmaWNhdGlvbgogICAKMjAwMC0wNC0yOSAwNzo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwo6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBhZ2VudF9yZWdpc3RyeS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gdXNlIHNpZ2FjdGlvbiB3aGVuIGF2YWlsYWJsZS4KICAgCjIwMDAtMDQtMjggMDc6MzYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggc2lnbmFsIGhhbmRsaW5nLgogICAKMjAwMC0wNC0yNyAxNDo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wZGYuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wZGYuYyk6IGltcGxlbWVudCBhIHJlbW90ZSBkZiBjb21tYW5kIHZpYSBzbm1wCiAgICAgLSAobmVlZHMgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiB3b3JraW5nIG9uIHRoZSByZW1vdGUgc3lzdGVtKS4KICAgCjIwMDAtMDQtMjcgMTA6NTcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBycG0gaXMgbm93CiAgICAgcmVxdWlyaW5nIHlldCBhbm90aGVyIGxpYnJhcnk6IGxpYnBvcHQuCiAgIAoyMDAwLTA0LTI2IDE1OjIwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiBydW4gbGlidG9vbCAtLWZpbmlzaCB3aXRob3V0IC1uIChnbyBhaGVhZCBhbmQgZG8gdGhlIGNtZHMpCiAgIAoyMDAwLTA0LTI2IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluKToKICAgICAtIG1vcmUgbGlidG9vbCBmaXhlcyAoLnNvIHZlcnNpb25pbmcsIHByb3Blcmx5IGluc3RhbGwuLi4pCiAgIAoyMDAwLTA0LTI2IDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIG1pYnMvTWFrZWZpbGUuaW4sIHNubXBsaWIvLmN2c2lnbm9yZSwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKICAgICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KICAgICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCiAgIAoyMDAwLTA0LTI2IDE0OjE1ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLAogICBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbHRjb25maWcsIGx0bWFpbi5zaCwgYWdlbnQvLmN2c2lnbm9yZSwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZQosIGFnZW50L21pYmdyb3VwL2R1bW15Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taWJJSS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9taXNjLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3Zlc3RpbnRlcm5ldHQvLmN2c2lnbm9yZToKCiAgIC0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKICAgICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KICAgICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCiAgIAoyMDAwLTA0LTI2IDA4OjExICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBuZXcgc2Vjb25kYXJ5IHNsb2dhbi4KICAgCjIwMDAtMDQtMjYgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBQRFUgd2hlbiBhIHJlcG9ydCBpcwogICAgIGJlaW5nIHNlbnQgc28gdGhhdCB0aGUgcmVxdWVzdGlkIGNhbiBiZSB1c2VkIGluIHRoZSBvdXRnb2luZyByZXBvcnQuCiAgICAgVGhpcyBzaG91bGQgZml4IGEgcHJvYmxlbSB3aGVyZSBTTk1QIFJlc2VhcmNoJ3MgRW1hbnRlIGFnZW50IGlzCiAgICAgZG9pbmcgZW5naW5lSUQgZGlzY292ZXJ5IHByb2JlcyBiYXNlZCBvbiB0aGUgcmVxdWVzdF9pZCAod2hpY2ggaXMgYQogICAgIGZhaXJseSBwb29yIGNob2ljZSBhcyB0aGUgbWVzc2FnZV9pZCB3b3VsZCBiZSBhIGJldHRlciBvbmUgdG8gbWF0Y2gKICAgICBvbiBpbiBnZW5lcmFsIGFuZCBpcyB0aGUgb25seSBwb3NzaWJsZSB0aGluZyB0byB1c2UgaW4gY2FzZXMgd2hlcmUKICAgICB0aGUgcmVwb3J0IGlzIGVuY3J5cHRlZCkuCiAgIAoyMDAwLTA0LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIHRoYXQgdGhlIHBlcmwgbW9kdWxlIGlzIGluY2x1ZGVkIHdpdGggdGhlIHNvdXJjZS4KICAgCjIwMDAtMDQtMjUgMDg6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBtaXNjIC1EZHVtcCBmaXhlcy4KICAgCjIwMDAtMDQtMjUgMDg6MDIgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdGFibGUuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBjaGVjayBmb3IgZW5kIG9mIG1pYiB2aWV3IGV4Y2VwdGlvbnMgKHYyYywgdjMpLgogICAKMjAwMC0wNC0yNCAxMToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IC1EIHN1cHBvcnQgZm9yIHRob3NlICJvbGRlciIgcHJvdG9jb2xzIHRoYXQgc2hvdWxkbid0CiAgICAgYmUgdXNlZCBhbnltb3JlICh2MSwgdjJjKS4KICAgCjIwMDAtMDQtMjQgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsCiAgIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYwosIHNubXBfZGVidWcuaCwgc25tcHVzbS5jOgoKICAgLSAoYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICAgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgogICAgIC0gdGltZXN0YW1wcyBjYW4gYmUgcHJpbnRlZCBhcyBhIG51bWVyaWMgbnVtYmVyIG9ubHkgKC1PdCkuCiAgICAgLSBtb3JlIGNvbmZpZ3VyYWJsZSBwYWNrZXQgZHVtcGluZyBjb2RlIGZvciBib3RoIHNlbmQgYW5kIHJlY2VpdmUuCiAgICAgICAtIHVzZXMgbmV3IC1EIHRva2VuczogZHVtcGggKGhlYWRlcnMpLCBkdW1weCAoaGV4KSwgZHVtcHYKICAgICAgICAgKHZhbHVlcykuICBkdW1weF8gYW5kIGR1bXB2XyAobm90ZSB0aGUgX3MpIG1ha2UgaXQgZWF0IHNwYWNlCiAgICAgICAgIChhbmQgbmV3bGluZSkgYmVmb3JlIHRoZSBzZWdtZW50IGluIHF1ZXN0aW9uLiAgVHJ5IC1EZHVtcCB0aGVuCiAgICAgICAgIC1EZHVtcGgsZHVtcHZfIHRvIHNlZSBleGFtcGxlcy4KICAgICAgIC0gdG9kbzoKICAgICAgICAgLSBiZXR0ZXIgaG9yaXpvbnRhbGx5IGZvcm1hdGVkIGluZm9ybWF0aW9uIChwcm9iYWJseSB1c2luZyAiJU5VTXMiKS4KICAgICAgICAgLSBVU00gaXMgY2FsbGVkIGFmdGVyIHBkdSBidWlsZGluZyAobWFrZXMgc2Vuc2UgYnV0IGlzIGJhY2t3YXJkcwogICAgICAgICAgIHZpc3VhbGx5IGluIHRoZSBkdW1wZWQgcGFja2V0KS4KICAgICAgICAgLSBvcHRpb24gdG8gc3RyaXAgZGF0YXR5cGUgdG9rZW4gKGllIEludGVnZXI6KS4KICAgCjIwMDAtMDQtMjQgMDk6MzcgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTAgKQogICAKMjAwMC0wNC0yNCAwOToxMyAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbgosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRVhULjQuMi5wcmUwICkKICAgCjIwMDAtMDQtMjEgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wd2Fsay5jIChWNC0xLTEtcGF0Y2hlcy4xKSwgc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBmaXggR0VUIGNhbGwgZm9yIGFuIHNubXB3YWxrLiAod2FzIHVzaW5nIGEgR0VUTkVYVCBQRFUsIGFjaykuCiAgIAoyMDAwLTA0LTIxIDEwOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBtb3JlIHVfbG9uZyAtPiBzaXplX3QgZm9yIGVuZ2luZUlEIGxlbi4KICAgCjIwMDAtMDQtMjEgMDg6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYyAoVjQtMS0xLXBhdGNoZXMuNSksIG1pYi5jOgoKICAgLSAobWliLmMpOiBmaXggZnByaW50X2Rlc2NyaXB0aW9uIHRvIGNoZWNrIGZvciBudWxsIHN1YnRyZWVzLgogICAKMjAwMC0wNC0yMSAwODoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHVzZSBzaXplX3QgZm9yIGVuZ2luZWlkIGxlbmd0aHMuCiAgIAoyMDAwLTA0LTE5IDExOjAyICBtYXJ6CgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgY2hhbmdlZCBtb2RlX3QgdHlwZWRlZiB0byBhZ3JlZSB3aXRoIHdoYXQgQWN0aXZlU3RhdGUgcGVybCB1c2VzIChhbnlvbmUgaGF2ZSBhIHByb2JsZW0gd2l0aCB0aGlzPykKICAgCjIwMDAtMDQtMTkgMTA6NTkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGRlZCBNYXJjIExlaG1hbiBwYXRjaCB0byBlbnN1cmUgYWxsb2MvZGVhbGxvYyB1c2Ugc2FtZSBtZWNoYW5pc20gKHBlcmwgdnMuIHN5c3RlbSBkZWZhdWx0KQogICAKMjAwMC0wNC0xOSAwODoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBhbHdheXMgYmxvY2sgaWYgY2FsbGVyIHJlcXVlc3RlZCBpdC4KICAgCjIwMDAtMDQtMTkgMDQ6MzQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICBtb3ZlIHN0YXRpYyBkZWNsIHRvIC5jO21pbm9yIGNhc3RpbmcgYWJvdXQgdG8gc3VwcG9ydCBhQ0MKICAgCjIwMDAtMDQtMTggMTE6MTEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBTeW5jaCBkZXZlbCBicmFuY2ggd2l0aCBwYXRjaGVzIGJyYW5jaC4KICAgCjIwMDAtMDQtMTggMTE6MDcgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKICAgKFY0LTEtMS1wYXRjaGVzLlszLDMsMywyLDMsMl0pLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBEZWZpbmUgb3B0YXJnIGZvciBhcHBzIHVzZTsgRGVmaW5lIHZhY21faXNfY29uZmlndXJlZCBmb3IgYWdlbnQgdXNlLgogICAKMjAwMC0wNC0xOCAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaXp1a2kgSG9uZGE6CiAgICAgLSBpbXBsZW1lbnQgcmF3IGNwdSB1c2FnZSBudW1iZXJzLgogICAKMjAwMC0wNC0xOCAwMzoxOCAgZGF2ZXMKCiAgICogbWFuL3NubXB0YWJsZS4xLCBhcHBzL3NubXB0YWJsZS5jIChWNC0xLTEtcGF0Y2hlcy5bMSwzXSksCiAgIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKG1hbi9zbm1wdGFibGUuMSBhcHBzL3NubXB0YWJsZS5jKToKICAgICAtIENvbW1hbmQtc3BlY2lmaWMgJy1DJyBvcHRpb25zIGZvciBzbm1wdGFibGUKICAgCjIwMDAtMDQtMTggMDI6MDEgIGRhdmVzCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBIYW5kbGUgcHJldmlvdXMgZm9ybSBvZiAtWiBvcHRpb24gYXMgd2VsbAogICAKMjAwMC0wNC0xNyAxNTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZml4IC1aIGlmIGFyZ3MgYXJlIHdyb25nLgogICAKMjAwMC0wNC0xNyAxNTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBmaXggLVogdG8gdXNlIGEgJywnLgogICAKMjAwMC0wNC0xNyAxNTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgKOgoKICAgLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogUGF0Y2ggZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKICAgICAtIHVwZGF0ZSBvbiB0aGUgc2VuZG1haWwgbW9kdWxlLgogICAKMjAwMC0wNC0xNyAxNTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXQuYyAoVjQtMS0xLXBhdGNoZXMuMSksIHZtc3RhdC5jCjoKCiAgIC0gKHZtc3RhdC5jKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBmaXggc3NDcHVTeXN0ZW0sIHNzQ3B1VXNlciwgc3NDcHVJZGxlLgogICAKMjAwMC0wNC0xNyAxNDoxOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbik6IHByb3Blcmx5IHVzZSBMTl9TIGZvciBsaW5raW5nIHNubXBpbmZvcm0uCiAgIAoyMDAwLTA0LTE3IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6IGVuZ2luZUlEIGNoYW5nZXMgZm9yIGJldHRlciBhQ0Mgc3VwcG9ydC4KICAgCjIwMDAtMDQtMTcgMTM6NDQgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgc25tcGluZm9ybS4KICAgCjIwMDAtMDQtMTcgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGZpeCByb3cgY3JlYXRpb24uCiAgIAoyMDAwLTA0LTE3IDA3OjI1ICBkYXZlcwoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bMiwzLDJdKSwgYXV0b19ubGlzdC5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChhdXRvX25saXN0LmMgc25tcGQuYyBhZ2VudHgvbWFzdGVyLmMpOiBEb24ndCBleGl0IG9uIGZhaWx1cmUgd2l0aCAnLXInCiAgIAoyMDAwLTA0LTE0IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wZ2V0LjEsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wY21kLjEsIHNubXBnZXQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CiAgICAgLSBtb3ZlIC1JZiB0byAtQ2YgYW5kIGludmVydCBiZWhhdmlvdXIuCiAgIAoyMDAwLTA0LTE0IDE1OjA2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgKG9wcHMpLgogICAKMjAwMC0wNC0xNCAwOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2ZXJzaW9uaW5mby5jIChWNC0xLTEtcGF0Y2hlcy4yKSwKICAgdmVyc2lvbmluZm8uYzoKCiAgIC0gKHZlcnNpb2luZm8uYyk6IGFscmlnaHQuICBXaG8gbWFkZSB2ZXJzaW9uQ2xlYXJDYWNoZSBST05MWT8KICAgCjIwMDAtMDQtMTMgMDU6NDkgIG5iYQoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSBzbm1wdHJhbnNsYXRlLjE6IGRlY3VtZW50IHRoZSAtdyB3aWR0aCBvcHRpb24KICAgCjIwMDAtMDQtMTIgMTI6MDUgIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQgKFY0LTEtMS1wYXRjaGVzLjEpLCBidWctcmVwb3J0OgoKICAgaGlkZSB1c2VyJ3MgaG9zdG5hbWU7IHByb21wdCBiZWZvcmUgc2VuZGluZyBlLW1haWw7IHByb21wdCB0byBzYXZlIGFzIGZpbGUuCiAgIAoyMDAwLTA0LTEyIDExOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMgKFY0LTEtMS1wYXRjaGVzLjMpLCBtaWIuYzoKCiAgIGZpeCAlZiglcykKICAgCjIwMDAtMDQtMTIgMDk6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JZi4KICAgCjIwMDAtMDQtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHB1dCArKyBiYWNrIGluIHRoYXQgYWNjaWRlbnRpY2FsbHkgZ290IGNoZWNrZWQgaW4uCiAgIAoyMDAwLTA0LTEyIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKHNubXBzZXQuYyk6IHB1dCBzcGFjZSBiYWNrIGluIHVzYWdlIGxpbmUuCiAgIAoyMDAwLTA0LTEyIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKToKICAgICAtIEFkZCBhIG5ldyBvcHRpb24gLUlmIHRvIHNwZWNpZnkgZml4aW5nIG9mIFBEVXMuCiAgICAgICAtIEFueW9uZSBrbm93IGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIG9wdGlvbj8KICAgICAtIEFwcGxpY2F0aW9ucyBkb24ndCBkbyB0aGlzIGJ5IGRlZmF1bHQgYW55bW9yZSwgYW5kIHlvdSBjYW4ndCBpbiBzbm1wc2V0LgogICAKMjAwMC0wNC0xMiAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gKHZhY21fdmFycy5jLCB2YWNtLmMsIHZhY20uaCk6IGZpeCB0byBhbGxvdyBubyB2MS92MmMgcmVxdWVzdHMgd2hlbgogICAgIGNvbmZpZ3VyZWQgZm9yIGp1c3QgdjMuCiAgIAoyMDAwLTA0LTEyIDA2OjQ5ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKICAgKFY0LTEtMS1wYXRjaGVzLlsxLDFdKSwgd2luMzIuZHN3LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBmaXggTVNWQyBidWlsZCBmb3IgZW5jb2RlX2tleWNoYW5nZSwgYW5kIGFkZCBtb3JlIHN5bWJvbHMgZm9yIHJlbGVhc2UgYnVpbGRzCiAgIAoyMDAwLTA0LTEyIDA1OjMyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBjb3JyZWN0IHBhcnNpbmcgb2Ygc3ViLXR5cGVzIHRleHR1YWwgY29udmVudGlvbnMuIEFsbG93IHBhcnNpbmcKICAgCW9mIE1BQ1JPIGludm9jYXRpb25zIGZvciBzdGFuZGFyZCBzeW1ib2xzCiAgIAoyMDAwLTA0LTEyIDA1OjMxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oOgoKICAgLSBwYXJzZS5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFsbG93IHNwZWNpZmljYXRpb24gb2Ygd2l0aCBmb3IgLVRwCiAgIAoyMDAwLTA0LTEyIDA1OjMwICBuYmEKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dAo6CgogICAtIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dDogYWxpZ24gd2l0aCBwdWJsaXNoZWQKICAgCVJGQyAyNzkwCiAgIAoyMDAwLTA0LTExIDE1OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWFrZSBjb25maWdfYWRkX21pYigpIGFjdHVhbGx5IGxvb2sgZm9yCiAgICAgdGhlIG1pYiBpbiAkc3JjZGlyL21pYnMvYmxhaCBhbmQgaW5zdGFsbCBpdCBpZiBmb3VuZC4KICAgCjIwMDAtMDQtMTEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBtYWtlIG1hY2FkZHIgZW5naW5laWQgc2V0dXAgbm90IGxpbnV4CiAgICAgc3BlY2lmaWMsIGJ1dCAjZGVmaW5lcyBhcmUgY2hlY2tlZCBpbnN0ZWFkLgogICAKMjAwMC0wNC0xMSAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKHNubXBfbG9nZ2luZy5oKTogcmVtb3ZlIG9sZCBjYWxsYmFjayB0eXBlZGVmIG5vIGxvbmdlciBuZWVkZWQuCiAgIAoyMDAwLTA0LTExIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CiAgICAgLSBlbmFibGUgZW5naW5lSUQgdG8gYmUgc2V0IGZyb20gTUFDQWRkci4KICAgCjIwMDAtMDQtMTEgMDk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oCjoKCiAgIC0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IE5ldyBtb2R1bGUgZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKICAgICAtIGltcGxlbWVudHMgdGhlIE1UQS1NSUIgZm9yIG1vbml0b3Jpbmcgc2VuZG1haWwuCiAgIAoyMDAwLTA0LTExIDA5OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTVRBLU1JQi50eHQsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dDoKCiAgIC0gKE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQpOiBuZXcgbWlicyBmb3IgbmV3IG1vZHVsZXMuCiAgIAoyMDAwLTA0LTExIDAzOjI1ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBTYXZlL3Jlc3RvcmUgb3JpZ2luYWwgc3RhdFAgdmFsdWUgZm9yIFNFVCBoYW5kbGluZy4KICAgCjIwMDAtMDQtMTEgMDI6MzUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmVwb3J0IGZhaWx1cmVzIGZyb20gQUNUSU9OIHBoYXNlIG9mIFNFVCBjb3JyZWN0bHkuCiAgIAoyMDAwLTA0LTExIDAxOjU3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jIChWNC0xLTEtcGF0Y2hlcy4zKSwKICAgbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRHluYW1pY2FsbHkgcmVzaXplIHN1YmFnZW50IHJlcXVlc3RzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNC0xMCAwNTowOCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bMCwyXSksIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChzbm1wX2FnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggbXVsdGktc3ViYWdlbnQgcmVxdWVzdHMKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA0LTA3IDEyOjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jIChWNC0xLTEtcGF0Y2hlcy5bMiwyXSksCiAgIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdHJhcC5jLCBzbm1wdXNtLmMpOgogICAgIC0gZml4IHNubXB2MyB0cmFwcyB0byBiZSBhdXRob3JpdGF0aXZlIGZyb20gdGhlIGNsaWVudCBzaWRlLCBub3QgdGhlCiAgICAgICByZWNlaXZlciBzaWRlLiAgc25tcHYzIGluZm9ybXMgc3RheSBhcyBpcy4gIFVuZm9ydHVuYXRlbHksIGZvcgogICAgICAgY29tbWFuZCBsaW5lIGFwcHMgdGhpcyBkb2Vzbid0IG1ha2UgYSB3aG9sZSBsb3Qgb2Ygc2Vuc2UgYnV0IGlzCiAgICAgICByaWdodCBpbiB0ZXJtcyBvZiBob3cgdGhlIHByb3RvY29sIHdvcmtzIGFuZCB0aGlzIGlzIGhlbmNlCiAgICAgICBzb21ld2hhdCBvZiBhIGhhY2suCiAgIAoyMDAwLTA0LTA3IDA3OjUwICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuOSksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEhhbmRsZSB2MiBleGNlcHRpb24gdHlwZXMgaW4gdjEgcXVlcmllcwogICAKMjAwMC0wNC0wNyAwNzoxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jCiAgIChWNC0xLTEtcGF0Y2hlcy5bNCwyLDNdKSwgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXB2My5jKToKICAgICAtIGFsbG93IE5VTEwgaGVscCBsaW5lcyBmb3IgY29uZmlnIGRpcmVjdGl2ZXMgYW5kIHVzZSBpdCB0byBoaWRlCiAgICAgICBpbnRlcm5hbCBkaXJlY3RpdmVzIHVzZWQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgCjIwMDAtMDQtMDYgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSB0dXJuIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG1hY3JvcyBiYWNrIGludG8gZnVuY3Rpb25zIHNvCiAgICAgICBkZWZhdWx0X3N0b3JlLmggZGVwZW5kZW5jaWVzIGdvIGF3YXkgYWdhaW4uCiAgICAgLSBjcmVhdGUgYSBmbGFnIHRvIG5vdCBwcm9iZSBmb3IgZW5naW5lSURzIGR1cm5pbmcgc2Vzc19vcGVuKCkuCiAgIAoyMDAwLTA0LTA2IDA3OjIwICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBGaXggbWlzaGFuZGxlZCBDb3VudGVyNjQgcGFyc2luZwogICAKMjAwMC0wNC0wNiAwMzozNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBGaXggdXNhZ2UgbWVzc2FnZSBhbGlnbm1lbnQuCiAgIAoyMDAwLTA0LTA2IDAzOjMxICBkYXZlcwoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiAoVjQtMS0xLXBhdGNoZXMuMSksIHNubXBkLjEuZGVmOgoKICAgLSAobWFuL3NubXBkLjEuZGVmKTogRG9jdW1lbnQgdGhlIEFnZW50WCBzb2NrZXQgY29tbWFuZC1saW5lIG9wdGlvbgogICAKMjAwMC0wNC0wNSAwODo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICAtIChGQVEySFRNTCk6IGl0J3MgYmVlbiBzaXR0aW5nIGluIG15IHBlcnNvbmFsIHNyYyB0cmVlIGZvciA+IDIgeWVhcnMuCiAgIAoyMDAwLTA0LTA1IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMKOgoKICAgLSAobWliaW5jbC5oLCB1c21Vc2VyLmMsIHNubXB0cmFwZC5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLAogICAgIHNubXB1c20uYywgc25tcHVzbS5oLCBzbm1wdjMuYyk6CiAgICAgLSBtYWtlIHNubXB0cmFwZCBoYW5kbGUgdjMgdXNlcnMgcHJvcGVybHksIChhbmQgc2h1dGRvd24gcHJvcGVybHkgYXMgd2VsbCkuCiAgICAgLSBhIG1vcmUgZ2VuZXJpYyB1c2VyIHN0b3JhZ2Ugcm91dGluZSBhZGRlZCB0byBzbm1wdXNtLmMgYW5kIHVzZWQgaW4KICAgICAgIHVzbVVzZXIuYyB3aXRoIGEgc2lkZSBlZmZlY3Qgb2YgbmVlZGluZyBjYWxsYmFjay5oIGFib3ZlIHNubXB1c20uaC4KICAgCjIwMDAtMDQtMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgLSAocnNubXApOiAtPiAvdXNyL2Jpbi9wZXJsCiAgIAoyMDAwLTA0LTA1IDA4OjI0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IG1pc2MgbWlub3IgYWRkaXRpb25zIHRvIC8KICAgCjIwMDAtMDQtMDQgMTE6MDMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy44KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIHVuaW1wbGVtZW50ZWQgb2JqZWN0cyByZXR1cm4gJ25vU3VjaE9iamVjdCcKICAgCjIwMDAtMDQtMDMgMTQ6NTcgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluaXRpYWxpemUgc3RhdFAuCiAgIAoyMDAwLTA0LTAzIDA5OjEyICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNyksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBhIHYxIFNFVCByZXR1cm5zIGEgdjEgZXJyb3Igc3RhdHVzLgogICAKMjAwMC0wNC0wMyAwODozMiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogWWVhciB3YXMgIjEwMCIgZm9yIDIwMDAgKG5vdGljZWQgYnkgSmF5IFJpZGRlbGwpOgogICAKMjAwMC0wNC0wMyAwNzo1MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjYpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgU0VUcyBmYWlsIGlmIG9uZSB2YXJiaW5kIGRvZXMuCiAgIAoyMDAwLTAzLTMxIDA3OjI1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCB0byByZXBvcnQgJ25vU3VjaE9iamVjdCcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCiAgIAoyMDAwLTAzLTMxIDA3OjEzICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEb24ndCByZXBlYXQgdGhlIGZpcnN0IGZvdXIgYnl0ZXMgaW4gYSBQRFUgZHVtcAogICAKMjAwMC0wMy0zMSAwNzowNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9sb2dnaW5nLmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyk6IEhhbmRsZSBsb2dnaW5nIGVtcHR5IHN0cmluZ3MgKGUuZy4gYSBudWxsIGluZGVudCkKICAgCjIwMDAtMDMtMzAgMDA6MTUgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy41KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSW5pdGlhbGlzZSB0aW1lb3V0IHN0cnVjdHVyZSBwcm9wZXJseQogICAJKFRoYW5rcyB0byBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAzLTI3IDEwOjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjQtMS0xLXBhdGNoZXMuMiksIGhyX3N3cnVuLmMKOgoKICAgcmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBoclNXUnVuTmFtZSB2YWx1ZXMuCiAgIAoyMDAwLTAzLTI0IDA5OjA5ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcGluZm9ybS4xOgoKICAgdG8gc3luYyB3aXRoIHBhdGNoZXMgYnJhbmNoLgogICAKMjAwMC0wMy0yNCAwNTowNyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0bHkgZnJlZSB0aGUgcmVwb25zZSBpZiBzZW5kaW5nIGl0IGZhaWxzCiAgIAoyMDAwLTAzLTI0IDA0OjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICB4eF9zeW5jaF9yZXNwb25zZTogYXZvaWQgZnJlZWluZyBQRFUgdHdpY2UuCiAgIAoyMDAwLTAzLTIzIDIzOjI5ICBuYmEKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcHRyYXAuMQosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gc25tcGNtZC4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcC5jLCBNYWtlZmlsZS5pbjogSW5zdGFsbCBhbmQgZG9jdW1lbnQKICAgCXNubXBpbmZvcm0uCiAgIAoyMDAwLTAzLTIzIDA5OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBFbnF1ZXVlIG9ubHkgY29tcGxldGUgcmVxdWVzdF9saXN0IGVudHJ5OyBSZWR1Y2Ugc2NvcGluZyBvZiBjYWxsYmFjayB2YXJzLgogICAKMjAwMC0wMy0yMyAwMzowMiAgbmJhCgogICAqIG1hbi9zbm1waW5mb3JtLjE6CgogICBmaWxlIHNubXBpbmZvcm0uMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDMtMjIgMDg6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIHByaW50ZiA/CiAgIAoyMDAwLTAzLTIxIDExOjEyICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vZGlmeSBGLiBTdHJhdXNzJyBwYXRjaCBwZXIgTi4gQmFnZ2VzZW4ncyBzdWdnZXN0aW9uOiByZW1vdmUgZXhwb3J0LWR5bmFtaWMuCiAgIAoyMDAwLTAzLTIxIDA5OjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIG1vcmUgc21vb3RoIHNhaWxpbmcgd2l0aCBXaW4zMiAuRExMIC4gRExMRVhQT1JULCBhbnlvbmUgPwogICAKMjAwMC0wMy0yMSAwOTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgd2luMzIgYnVpbGQgY2hlY2s6IG5vIHNpZ2FjdGlvbiwgU0lHQ0xEIGRlZmluZWQuCiAgIAoyMDAwLTAzLTIxIDA4OjQ3ICBkYXZlcwoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChkc19hZ2VudC5oIHNubXBkLmMgbWliZ3JvdXAvYWdlbnR4L3ttYXN0ZXIsc3ViYWdlbnR9LmMpOgogICAgIC0gIENvbW1hbmQtbGluZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgQWdlbnRYIHBvcnQKICAgICAgICAoYmFzZWQgb24gcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzKQogICAKMjAwMC0wMy0yMSAwODozOCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFN1cHBvcnQgJ2hvc3Q6cG9ydCcgcmVwcmVzZW50YXRpb24gb2YgcGVlcm5hbWVzCiAgIAoyMDAwLTAzLTIxIDA0OjA1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNCksIHNubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IE1pc3NpbmcgbmV3LWxpbmUgb24gZGVidWcgb3V0cHV0CiAgIAoyMDAwLTAzLTIxIDAyOjUyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcC5jLCB0Y3AuaCwgdGNwVGFibGUuYwosIHRjcFRhYmxlLmgsIHVkcC5jLCBpY21wLmMsIHVkcC5oLAogICB1ZHBUYWJsZS5jLCB1ZHBUYWJsZS5oLCBpY21wLmgsIGlwLmMsCiAgIHN5c3RlbV9taWIuYzoKCiAgIC0gKG1pYklJL3t0Y3AsdWRwLGlwLGljbXB9KikgQ29udGludWluZyBtaWJJSSBjb2RlIGNsZWFudXAKICAgCjIwMDAtMDMtMjAgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDb21tZW50IC1DIC0tIGRvIG5vdCB1c2UgdGhpcyBmbGFnLgogICAKMjAwMC0wMy0xNyAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzaXplb2YoeCkqKGxlbisxKSBub3Qgc2l6ZW9mKHgpKmxlbisxCiAgIAoyMDAwLTAzLTE2IDAwOjEwICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICAtIGNvbmZpZ3VyZSwgaHJfcHJpbnQuYzogZGV0ZWN0IHN5c3RlbSBwcmludGVycyAoU3lzVi9scHN0YXQsICpCU0QvY2dldG5leHQsCiAgIAlMaW51eC9wcmludGNhcCkKICAgCjIwMDAtMDMtMTUgMTg6MzAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBTZWNvbmQgcGFydDogYWxsIG1lbWJlcnMgb2Ygc3RydWN0IHNubXBfaW5kZXggYXJlIHBvaW50ZXJzLgogICAKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB3aXRoIHVucmVnaXN0ZXJfaW5kZXguCiAgIAoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB3aGVuIGNsZWFuaW5nIHVwIHRyYXAgdmFyaWFibGVzLgogICAKMjAwMC0wMy0xNSAwODo0OCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpOiBJbml0aWFsaXNlIHZhcmJpbmQgZGF0YSBob29rIGVsc2V3aGVyZSBhcyB3ZWxsLgogICAKMjAwMC0wMy0xNSAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMSksCiAgIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBpbmZpbml0ZSBsb29wIHByb2JsZW0gd2hlbiB3YWxraW5nIHN1YmFnZW50LgogICAKMjAwMC0wMy0xNSAwNjowOSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQXZvaWQgY2FsbGluZyByZWFkIHJvdXRpbmUgZm9yIGVhY2ggU0VUIGhhbmRsaW5nIHBhc3MuCiAgIAlOLkI6ICBUaGlzIGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgeWV0CiAgIAoyMDAwLTAzLTE1IDA2OjA3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFByb3ZpZGUgaG9vayBmb3IgaW50ZXJuYWwgdmFyYmluZC1yZWxhdGVkIGRhdGEKICAgCjIwMDAtMDMtMTUgMDU6MjIgIGRhdmVzCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50L3Zhcl9zdHJ1Y3QuaCk6IFVzZSBhIHNpbmdsZSBtYWdpYyBudW1iZXIgZm9yIE1JQiByZWdpc3RyeSBuYW1lIGxlbmd0aHMuCiAgIAoyMDAwLTAzLTE1IDAxOjUxICBkYXZlcwoKICAgKiBzbm1wbGliLzogc3lzdGVtLmggKFY0LTEtMS1wYXRjaGVzLjEpLCBzeXN0ZW0uaDoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmgpOiBEb24ndCBkZWNsYXJlIGdldHRpbWVvZmRheSgpIGlmIHRoZSBzeXN0ZW0gcHJvdmlkZXMgaXQuCiAgIAkoRml4IHByb3ZpZGVkIGJ5IFJvbiBNZXZpc3NlbikKICAgCjIwMDAtMDMtMTQgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4zKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIHN0YXR1cyB3aGVuIGNoZWNraW5nIGFjY2Vzcy4KICAgCjIwMDAtMDMtMTQgMDc6NTIgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmV0dXJuIGEgcmVzcG9uc2UsIGV2ZW4gaWYgdGhlIHJlcXVlc3QgZmFpbGVkLgogICAKMjAwMC0wMy0xMyAxNTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oOgoKICAgLSBpcGZ3YWNjLmg6IGZpeCB0aGUgTUlCIG5hbWUKICAgCjIwMDAtMDMtMTAgMTI6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHJ1bgogICAKMjAwMC0wMy0xMCAxMTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvTWFrZWZpbGUuZGxtb2Q6CgogICAtIChNYWtlZmlsZS5kbG1vZCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGRsbW9kIGJ1aWxkIE1ha2VmaWxlIGV4YW1wbGUuICBOZWVkcyBpbmNvcnBlcmF0aW9uIHdpdGggbWFpbiBjb25maWd1cmUuCiAgIAoyMDAwLTAzLTEwIDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IGJldHRlciBzaWduYWwgY2hlY2sgZnJvbSBNaWNoYWVsIFNsaWZjYWsKICAgCjIwMDAtMDMtMTAgMTA6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IHR5cG8gZm91bmQgYnkgTWljaGFlbCBTbGlmY2FrLgogICAKMjAwMC0wMy0xMCAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChkbG1vZC5jLCBkbG1vZC5oLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20KICAgICBGcmFuayBTdHJhdXNzOgogICAgIC0gUmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGxtb2QgbWliIG1vZHVsZToKICAgICAgIG8gbWliZ3JvdXAvbWlzYy9kbG1vZCArIGRsbW9kcy9kbG1vZF9taWIgLT4gbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QKICAgICAgIG8gZml4ZWQgcmVnaXN0cmF0aW9uICh1Y2RhdmlzLnVjZEV4cGVyaW1lbnRhbC4xNCBpbnN0ZWFkIG9mIHVjZGF2aXMuMTQpCiAgICAgICBvIGFkZGVkIGNvbmZpZ3VyZSBzdHVmZiBmb3IgSEFWRV9TTlBSSU5URiwgd2hpY2ggd2FzIHVzZWQgYnkgZGxtb2QuYwogICAgICAgbyByZW1vdmVkIGBfZHluYW1pY18nIHByZWZpeGVzIGZyb20gaW5pdC9kZWluaXQgZnVuY3Rpb25zCiAgICAgICBvIG1hZGUgZGxtb2RJbmRleCBub3QtYWNjZXNzaWJsZSAob25seSBpbXBsZW1lbnRhdGlvbiwgbm90IGRlZmluaXRpb24pCiAgICAgICBvIHJlbW92ZWQgdGhlIGFzbl9wYXJzZV9YWFggc3R1ZmYKICAgICAgIG8gbWFkZSBlbnRyaWVzIHdpdGggc3RhdGUgYGVycm9yJyBhYmxlIHRvIGFjY2VwdCBzdGF0ZSBgbG9hZCcKICAgICAgIG8gbWFkZSB0aGUgd29tYmF0IGV4YW1wbGUgdXNhYmxlIGFzIHN0YXRpYyBhbmQgZHluYW1pYyBtb2R1bGUKICAgICAgIG8gYWRkZWQgc2ltcGxlIGNvbmZpZ19wYXJzZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSB3b21iYXQgZXhhbXBsZQogICAKMjAwMC0wMy0xMCAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBzaWduYWwgcmVnaXN0cnkgc3lzdGVtIGltcGxlbWVudGVkIChuZWVkcyB0byBiZSByZWRvbmUgYWxsb3dpbmcKICAgICAgIG11bHRpcGxlIGNhbGxiYWNrcyBhbmQgaGFuZGxlcnMgZm9yIGFsbCBzaWduYWxzKS4KICAgICAtIGFyYml0cmFyeSBmaWxlIGRlc2NyaXB0b3Ivc29ja2V0IHJlZ2lzdHJhdGlvbi4KICAgICAgIC0gdGhpcyBpcyBub3QgdGhlIHdheSBpdCBzaG91bGQgYmUgZG9uZSAodXNlIHNlc3Npb25zIGluc3RlYWQpLgogICAKMjAwMC0wMy0xMCAxMDo0NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICAgIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gY2xlYW4gdXAgc2hhcmVkIGxpYnJhcnkgdXNhZ2UuCiAgIAoyMDAwLTAzLTEwIDEwOjE2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciByZS1hcnJhbmdlZCBzb21lIHN0dWZmLgogICAKMjAwMC0wMy0wNyAxMTo1OCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1vcmUgdG91Y2h1cHMgdG8gYWxsb3cgVW5peFdhcmUgYnVpbGQgdG8gY29tcGxldGUuCiAgIAoyMDAwLTAzLTA3IDExOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6IG1ha2UgTUFYX1NVQklEUyBsYXJnZXIgYW5kIGEgbXVsdGlwbGUgb2YgOC4KICAgCjIwMDAtMDMtMDcgMTA6MTMgIG1zbGlmY2FrCgogICAqIEZBUSwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBJbnRyb2R1Y2UgLS1lbmFibGUtbWluaS1hZ2VudCB0byBjb25maWd1cmUgYWdlbnQgKHNubXB2Mywgbm8gbWliSUkgaW50ZXJmYWNlcykuCiAgIAoyMDAwLTAzLTA3IDA5OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgYXNzdW1lICJzbm1wYXBwIiBpZiBubyBhcmcgcGFzc2VkIHRvIGluaXRfc25tcHYzLgogICAKMjAwMC0wMy0wNyAwODo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICByZW1vdmUgaW5pdF9taWIoKSBjYWxsIC0gbm90IGFwcHJvcHJpYXRlIGhlcmUuCiAgIAoyMDAwLTAzLTA3IDA4OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBMZXQgdGhlIGFpeDQgcGF0Y2ggd29yay4KICAgCjIwMDAtMDMtMDcgMDc6MDggIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIHRyaW0gZmF0IGZyb20gcmVjZW50IGNoZWNrLWlucy4KICAgCjIwMDAtMDMtMDYgMjA6MDEgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluOgoKICAgY2xlYW5lZCB1cCBTQ08gVW5peFdhcmUgYnVpbGQuCiAgIAoyMDAwLTAzLTA2IDE2OjQwICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwKICAgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzdGFydCBzdXBwb3J0IGZvciBTQ08gVW5peFdhcmUgNSBhcyBzdnI1LgogICAKMjAwMC0wMy0wNiAxMDo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gZG9uJ3QgY2hlY2sgcmFuZ2VzIGlmIG5vdCByZXF1ZXN0ZWQuCiAgIAoyMDAwLTAzLTA2IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jCjoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBmaXggZXhpdCgpaW5nIGJlaGF2aW91ciBpbiB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KICAgCjIwMDAtMDMtMDYgMTA6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gLW4gcHJpbnRzIG51bWVyaWMgSVAgYWRkcnMuCiAgIAoyMDAwLTAzLTA2IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oCjoKCiAgIC0gKGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IElkZWEgZnJvbSBhc2hpcG1hbkBlcmdncm91cC5jb206CiAgICAgLSBjYWxsYmFjayBmdW5jdGlvbiAodXNpbmcgY2FsbGJhY2suaCkgYWRkZWQgZm9yIGV4dGVybmFsIGxvZ2dpbmcuCiAgIAoyMDAwLTAzLTA1IDA1OjI1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZml4IHRvIHByZXNlcnZlIHRyYWlsaW5nIG11bHRpIGNvbXBvbmVudCBpbnN0YW5jZSBpZCdzIGF0IHRoZSBlbmQgb2YKICAgc3ltYm9saWMgbWliIG5hbWVzKGUuZy4sIGZvby42LjcpIHdoZW4gZG9pbmcgdHJhbnNsYXRlT2JqLgogICAKMjAwMC0wMy0wNCAxMTozNCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZTogc3VwcG9ydCAtLXdpdGhvdXQtb3BlbnNzbCwgZXZlbiBpZiBPcGVuU1NMCiAgIAlpcyBhdmFpbGFibGUKICAgCjIwMDAtMDMtMDQgMTE6MzAgIG5iYQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBrZXJuZWwuaCwgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCjoKCiAgIC0gYWdlbnQvKHZhcmlvdXMpOiBnbG9iYWxpemUgdGhlIGt2bV90ICprZCB2YXJpYWJsZQogICAKMjAwMC0wMy0wNCAxMToyNiAgbmJhCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYywgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIG1pYl9tb2R1bGVzLmMsIGhyX3N0b3JhZ2UuYzogcHJlLXByb2Nlc3NvciAjIHNob3VsZCBiZSBpbiBjb2x1bW4gMQogICAKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpbmV0LmMsIGluZXQ2LmM6CgogICAtIGluZXQuYywgaW5ldDYuYzogc3Vydml2ZSAtdiAyYyBleGNlcHRpb24gcmVwbGllcwogICAKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogcmVtb3ZlIGEgc3VwZXJmbHVvdXMgJiBpbiBmcm9udCBvZiBhbiBhcnJheQogICAKMjAwMC0wMy0wNCAxMToxNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYwosIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsIHVjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMKLCB1Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oOgoKICAgLSB1Y2Rfc25tcC5oLCB7bWVtb3J5LHZtc3RhdH1fbmV0YnNkMS5bY2hdOiBzdXBwb3J0IGZvciBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBmaXhlcyBmb3IgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIC0gdmVyc2lvbmluZm8uYzogZG9uJ3QgcmV0dXJuIHRoZSB0cmFpbGluZyBuZXdsaW5lCiAgIAoyMDAwLTAzLTA0IDExOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSBocl9zd3J1bi5jOiBmaXggcHJvY2VzcyBzaXplIGZvciBGcmVlQlNEIDMgYW5kIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMTowNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIC0gYWdlbnRfdHJhcC5oOiBmaXggYSB3cm9uZyBwcm90b3R5cGUKICAgCjIwMDAtMDMtMDQgMTE6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogZml4IHByb2JsZW1zIHByaW50aW5nIHRhYmxlIG5hbWUgYW5kIGhlYWRlcnMgd2hlbiB1c2luZwogICAJLU9TIGZvcm1hdAogICAKMjAwMC0wMy0wMiAxMTo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogZml4IGFkZHJlc3MgbGVuZ3RoIGluZm8gZm9yIHRjcCBjb25uZWN0CiAgIAoyMDAwLTAzLTAyIDExOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSBsb2FkYXZlLmM6IGZpeCBmb3IgQUlYIDQKICAgCjIwMDAtMDMtMDIgMDg6MzAgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYywgaXBBZGRyLmMsIGlwQWRkci5oCiwgaXAuaDoKCiAgIC0gKG1pYjIvaXAuW2NoXSBtaWIyL2lwQWRkci5bY2hdKTogRmlyc3Qgc3RhYiBhdCB0aWR5aW5nIHVwIG1pYjIgc3VwcG9ydC4KICAgCjIwMDAtMDMtMDEgMDg6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgZml4IGJ1ZyAxODAgZm9yIGN5Z3dpbiBidWlsZCB3aXRoIF9SRUVOVFJBTlQ7IHBlciBhc2hpcG1hbkBlcmdncm91cC5jb20KICAgCjIwMDAtMDItMjkgMTQ6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEludm9rZSBzbm1wX3Nlc3Nfc2VuZCBmcm9tIHdpdGhpbiBzbm1wX3JlYWQgdG8gYXZvaWQgbXV0ZXggZGVhZGxvY2tzLgogICAKMjAwMC0wMi0yOCAxNDoyNSAgbmJhCgogICAqIGFnZW50Lzogc25tcGQuaCwgbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNubXBkLmgsIHNtdXguYzogZG9uJ3QgaW5pdGlhbGl6ZSBzbXV4IG1hc3RlciBpbiBzdWIgYWdlbnQKICAgCjIwMDAtMDItMjggMTQ6MTYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IHVzZSBTVUJfQUdFTlQgc3ltYm9sCiAgIAoyMDAwLTAyLTI4IDE0OjEyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IHNwcmludF9ieV90eXBlIHNob3VsZCBoYW5kbGUgQVNOX0JJVF9TVFIKICAgCjIwMDAtMDItMjggMTQ6MTAgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogY29ycmVjdGx5IGNhbGwgdGhlIC1JIG9wdGlvbnMgaW5wdXQgb3B0aW9ucwogICAKMjAwMC0wMi0yOCAxMDo0NyAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmM6CgogICBmaXggYnVnICMxNzYgKEFJWCA0IC0gdXNlIGtubGlzdCBpbiBsaWV1IG9mIG5saXN0KQogICAKMjAwMC0wMi0yNCAxNzoxNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhcHBseSBwYXRjaCB0byBmaXggYnVnIG5vLiAxNzcuCiAgIAoyMDAwLTAyLTI0IDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogbmV3IHNubXAuY29uZiBrZXl3b3JkCiAgICAgdG8gZm9yY2UgdGhlIHBhcnNlciB0byBpZ25vcmUgdW5rbm93biB0b2tlbnMuCiAgIAoyMDAwLTAyLTI0IDAzOjU5ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHNldC4xOgoKICAgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyICgndScgYW5kICdjJykgaW4gc25tcHNldCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKICAgCjIwMDAtMDItMjQgMDM6NTYgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wdHJhcC4xLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgc3VwcG9ydCBmb3IgQ09VTlRFUjMyIHRvIHNubXBfYWRkX3ZhcjsgZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyCiAgICgndScgYW5kICdjJykgaW4gc25tcHRyYXAgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAyLTIzIDIzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBmaXggc2V0dGluZyBvZiBvY3RldCBzdHJpbmdzLgogICAKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLSBtdF9zdXBwb3J0Lmg6IGEgYmFkIDsgaW4gdGhlIEMrKyBicmFja2V0aW5nCiAgIAoyMDAwLTAyLTIzIDAyOjA5ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gc3lzdGVtLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIGluZGlyZWN0aW9ucyBpbiBzdHJjYXNlY21wCiAgIAoyMDAwLTAyLTIzIDAyOjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAtIHZtc3RhdF9zb2xhcmlzLmM6IG1ha2Ugc3VyZSB3ZSBhZ3JlZSB3aXRoIHRoZSBwcm90b3R5cGUgb2YgZ2V0cGFnZXNpemUhCiAgIAoyMDAwLTAyLTIyIDE1OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0Lmg6CgogICAtIHBhc3NfcGVyc2lzdC5oOiBkZWNsYXJlIGluaXRfcGFzc19wZXJzaXN0CiAgIAoyMDAwLTAyLTIxIDE2OjE3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaDoKCiAgIEFwcGx5IFIuIFN0b3J5J3MgcGF0Y2ggZm9yIG1rZGlyaGllciBhbmQgc3RybmNhc2VjbXAgb24gd2luMzIKICAgCjIwMDAtMDItMjEgMDc6MzkgIG1zbGlmY2FrCgogICAqIG1hbi86IHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FsYXJtLjMsCiAgIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xCjoKCiAgIGZpeCBidWcgMTcxICh0aGFua3MgdG8gTGFycnkgUGFybWVsZWUpLgogICAKMjAwMC0wMi0yMSAwNTo1NiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICByZW1vdmUgZnJlZSBhZnRlciBzbm1wX2Nsb3NlIChkb24ndCBmcmVlIHR3aWNlISkKICAgCjIwMDAtMDItMjEgMDQ6NTggIG1zbGlmY2FrCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXBfYWxhcm0uMwosIHNubXBfc2Vzc19hcGkuMzoKCiAgIEFkZGVkIGRlc2NyaXB0aW9uIGluIFNIX05BTUUgZm9yIHNldmVyYWwgbWFuLXBhZ2VzIChjL28gcmFnbmFyaykKICAgCjIwMDAtMDItMTggMTI6MTQgIG1zbGlmY2FrCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMwosIHNubXBfb3Blbi4zLCBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zCiwgc25tcF9zZW5kLjMsIHNubXBfc2Vzc19hc3luY19zZW5kLjMsCiAgIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywgc25tcF9zZXNzX2luaXQuMwosIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLAogICBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsIHNubXBfc2Vzc19zZXNzaW9uLjMsCiAgIHNubXBfc2Vzc190aW1lb3V0LjMsIHNubXBfdGltZW91dC4zOgoKICAgcmVmZXIgdGhlIC5zbyBtYWNybyB0byBtYW4zOyBhZGp1c3QgTWFrZWZpbGUuaW4gdG8gdXNlIHRoZSByZW5hbWVkIGZpbGUuCiAgIAoyMDAwLTAyLTE3IDA1OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgaW5jbHVkZSBwYXNzX3BlcnNpc3QgaW4gdGhlIHJlcXVpcmVkIGxpc3QuCiAgIAoyMDAwLTAyLTE3IDAyOjAwICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSAoY29uZmlndXJlKiB1Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyk6CiAgICAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAogICAgICAgKFRoYW5rcyB0byBSYWduYXIgS2rgpYbgpIbgpJByc3RhZCkKICAgCjIwMDAtMDItMTYgMjA6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvc25tcF9taWIuYwosIG1pYklJL3N5c09SVGFibGUuYywgbWliSUkvc3lzdGVtX21pYi5jOgoKICAgaW5jbHVkZSBtaWJpbmNsLmggaW4gaHJfc3lzdGVtLmMgdG8gZml4IGJ1ZyAjMTU5LgogICAKMjAwMC0wMi0xNiAxNjozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICByZW1vdmUgYXV0b19ubGlzdCBvZiB1bnVzZWQgInN3YXBsaXN0IiBzeW1ib2wuCiAgIAoyMDAwLTAyLTE2IDE1OjE3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIHBhdGNoIHN1Z2dlc3RlZCBieSBSaWNrIEJlYW1hbiA8YmVhbWFuQG1lZGlhb25lLm5ldD4KICAgCjIwMDAtMDItMTYgMTQ6NTggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZW1vdmUgdW51c2VkIHZhcnMKICAgCjIwMDAtMDItMTYgMTQ6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiB2YWNtLmMsIHZhY20uaDoKCiAgIHRlc3QgbGVuZ3RocyBiZWZvcmUgYWxsb2NhdGluZyBtZW1vcnk7IHVzZSBuZXcgVkFDTVNUUklOR0xFTiBjb25zdGFudC4KICAgCjIwMDAtMDItMTYgMDg6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGluY2x1ZGUgdGltZS5oIG9uY2UKICAgCjIwMDAtMDItMTYgMDg6MDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgcmVzdG9yZSAjaWYgSEFWRS4uLklOX1BDQl9ICiAgIAoyMDAwLTAyLTE1IDIzOjQ3ICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oCjoKCiAgIC0gY29uZmlndXJlLmluLCBpcGNoLltjaF06IGluaXRpYWwgc3RhYnMgYXQgTGludXggaXB2NiBzdXBwb3J0LiBBIGxvdCBpcwogICAJbGFja2luZyBpbiB0aGUga2VybmVsIHN0YXRpc3RpY3MgdGhvdWdoLgogICAKMjAwMC0wMi0xNSAyMzo0MCAgbmJhCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwo6CgogICAtIChtYW55KTogY29uZmlndXJlIGNoZWNrIGZvciBuZXRpbmV0L2lwNi5oCiAgIAoyMDAwLTAyLTE1IDIzOjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIGhyX2ZpbGVzeXMuYzogTU5UVFlQRSBkZWZpbmVzIGZvciBGcmVlQlNELTMgYW5kIEJTREktNCwgYW5kIG1vdmluZyB0aGUKICAgCXJldHVybiB2YWx1ZSBmb3IgRXh0MkZTIHRvIHRoZSBuZXdseSBkZWZpbmVkIE9JRC4KICAgCjIwMDAtMDItMTUgMjM6MjMgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogZ2l2ZSBhIHNlbnNpYmxlIG91dHB1dCBmb3IgYW4gZW1wdHkgdGFibGUuCiAgIAoyMDAwLTAyLTE1IDIzOjIyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIC0gdmFjbSo6IGJ1ZmZlciBsZW5ndGggY2hlY2tpbmchCiAgIAoyMDAwLTAyLTE1IDIzOjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzogcmV0dXJuIG1lbW9yeSBzaXplIGluIHBhZ2VzLgogICAKMjAwMC0wMi0xNSAyMzoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKOgoKICAgLSB1Y2Rfc25tcC5oLCBtZW1vcnlfZnJlZWJzZDIuaDogbWFrZSBpdCB3b3JrIGZvciBGcmVlQlNELTMgdG9vCiAgIAoyMDAwLTAyLTE1IDIzOjE2ICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBzbm1wX2FnZW50LmM6IG9uZSBtb3JlIHBsYWNlIHRvIHNlbmQgYSBBVVRIRkFJTCB0cmFwCiAgIAoyMDAwLTAyLTE1IDIzOjE1ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYWdlbnRfcmVnaXN0cnkuYzogZml4IGEgcmV0dXJuIGZvciBTTk1QdjEvQ291bnRlcjY0IGNhc2UKICAgCjIwMDAtMDItMTUgMDI6MTIgIGRhdmVzCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogT21pdCBkZXByZWNhdGVkIG9wdGlvbnMgZnJvbSBvcHRhcmcgaGFuZGxpbmcuCiAgIAoyMDAwLTAyLTExIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAogICAKMjAwMC0wMi0xMSAxNTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcnNubXA6CgogICAtIChyc25tcCk6IHBlcmw1IC0+IHBlcmwKICAgCjIwMDAtMDItMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF90cmFwX2FwaS4zCiAgIAoyMDAwLTAyLTExIDE0OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogbGFzdCBtaW51dGUgbWFrZWZpbGUgdG91Y2h1cAogICAKMjAwMC0wMi0xMSAxNDowMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDQuMS4xCiAgIAoyMDAwLTAyLTExIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDQuMS4xCiAgIAoyMDAwLTAyLTExIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCiAgIAoyMDAwLTAyLTExIDEyOjUzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsCjoKCiAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgogICAKMjAwMC0wMi0xMSAxMjo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGRvbid0IGNwIGZvciBzbm1wY2hlY2sKICAgCjIwMDAtMDItMTEgMTI6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKICAgCjIwMDAtMDItMTEgMTI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KICAgCjIwMDAtMDItMTEgMTI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IHBhdGNoIGZyb20gTmllbHM6CiAgICAgLSBkb24ndCBzZW5kIGF1dGhlcnJvciByZXNwb25zZXMgZm9yIHYyYy4KICAgICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KICAgCjIwMDAtMDItMTEgMTI6MjIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgogICAKMjAwMC0wMi0xMSAwNjo1OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KICAgCjIwMDAtMDItMTAgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgogICAKMjAwMC0wMi0xMCAxMDozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBleHRlbnNpYmxlLmMsIHBhc3NfcGVyc2lzdC5jCjoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDItMTAgMTA6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCiAgIAoyMDAwLTAyLTEwIDEwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KICAgCjIwMDAtMDItMTAgMDg6MzkgIG5iYQoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wLCBtaWJfYXBpLjMsCiAgIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfYWdlbnRfYXBpLjMKLCBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmCiwgc25tcF9zZXNzX2FwaS4zLCBzbm1wX3RyYXBfYXBpLjMsIHNubXBidWxrZ2V0LjEKLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLCBzbm1wZC4xLmRlZiwKICAgc25tcGQuY29uZi41LmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgc25tcGdldG5leHQuMSwgc25tcG5ldHN0YXQuMSwgc25tcHNldC4xLAogICBzbm1wc3RhdHVzLjEsIHNubXB0YWJsZS4xLCBzbm1wdGVzdC4xLAogICBzbm1wdHJhbnNsYXRlLjEsIHNubXB0cmFwLjEsIHNubXB0cmFwZC44LAogICBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xLCBzbm1wd2Fsay4xLAogICB2YXJpYWJsZXMuNToKCiAgIC0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKICAgCjIwMDAtMDItMTAgMDg6MTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtZDUuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oCjoKCiAgIGZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwogICAKMjAwMC0wMi0xMCAwNzo1NCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCiAgIAoyMDAwLTAyLTEwIDA3OjE0ICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKICAgCjIwMDAtMDItMTAgMDQ6NDEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICAtIChzbm1wbGliL3tzbm1wX2FwaSxzbm1wX2NsaWVudH0uYyBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMpOgogICAgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgogICAKMjAwMC0wMi0wOSAxMzo1MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExLCB0ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KICAgCjIwMDAtMDItMDkgMTM6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgogICAKMjAwMC0wMi0wOSAxMzozOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsCiAgIFQwMjVzbm1wdjNnZXRTSEFERVM6CgogICAtIChTdjNTSEFERVNjb25maWcsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKICAgICAtIG1ha2UgU0hBIHRlc3RzIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAwLTAyLTA5IDEzOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZ3NoYToKCiAgIC0gKFN2M2NvbmZpZ3NoYSk6IHNoYSBjb25maWcgc3VwcG9ydAogICAKMjAwMC0wMi0wOSAxMzozMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwKLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLCBUMDE4c25tcHYxdG92MmNnZXRmYWlsOgoKICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICBUMDE4c25tcHYxdG92MmNnZXRmYWlsKTogZml4IGZvciBwcm9wZXIgQUNNIGVycm9yIG91dHB1dHMuCiAgIAoyMDAwLTAyLTA5IDEzOjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmg6CgogICBEZWZpbmUgU05NUF9NQVhQQVRILCBhbmQgdXNlIGl0LgogICAKMjAwMC0wMi0wOSAxMzozMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTCjoKCiAgIC0gKFQwMjRzbm1wdjNnZXRTSEExIFQwMjVzbm1wdjNnZXRTSEFERVMpOiBuZXcgdGVzdHMKICAgCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCiAgIAoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgICAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CiAgICAgLSBmaXggcG9zaWJsZSBhY20gRG9TIHByb2JsZW1zIGJ5IGNoZWNraW5nIGFjY2VzcyB0YWJsZXMgZWFybHkgb24uCiAgIAoyMDAwLTAyLTA5IDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgogICAKMjAwMC0wMi0wOSAxMDo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCiAgIAoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IHJzbm1wIGJ1aWxkLiAgUmVhbGx5LiAgSSBtZWFuIGl0LgogICAKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jOgoKICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAtIFNvbGFyaXMgcGF0Y2hlcy4KICAgCjIwMDAtMDItMDkgMTA6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOgogICAgIC0gZml4IHJzbm1wLm1hZGUuCiAgICAgLSB1c2UgJChNQUtFKS4KICAgCjIwMDAtMDItMDkgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCiAgIAoyMDAwLTAyLTA3IDExOjQ5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb29wcyBtaXNzaW5nIGltcG9ydGFudCBmaXggZm9yIHdpbjMyIGJ1aWxkIC0gZmRfc2V0IG11c3QgYmUgc2FtZSBzaXplIGFzIGluIHdpbnNvY2sKICAgCjIwMDAtMDItMDcgMTE6MTggIG1zbGlmY2FrCgogICAqIGJ1Zy1yZXBvcnQ6CgogICBVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwogICB0aGUgcHJvcGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHJlbW92ZSB0aGUgc2Vjb25kIHRva2VuIChob3N0bmFtZSkuCiAgIAoyMDAwLTAyLTA3IDEwOjQzICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0OgoKICAgS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCiAgIAoyMDAwLTAyLTA3IDA3OjIwICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HOgoKICAgLSAoUE9SVElORyk6IE1pY2hhZWwgbGlrZXMgZGlmZiAtdS4KICAgCjIwMDAtMDItMDYgMDY6MTEgIG5iYQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIHJlYWRfY29uZmlnLmM6IEZpeCBvbmUgZmluYWwgJzonIHRvIEVOVl9TRVBBUkFUT1JfQ0hBUgogICAKMjAwMC0wMi0wNSAxNzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogY29ycmVjdCBzb21lIGF3ZnVsIHRleHQgLT4gZW5naW5lSUQgY3JlYXRpb24gbWlzdGFrZXMuCiAgIAoyMDAwLTAyLTA1IDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgogICAKMjAwMC0wMi0wNSAwNjo1NiAgbWFyegoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgZml4IHZlcnNpb24gIG51bWJlcgogICAKMjAwMC0wMi0wNCAxODo1NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC86IHNlc3Npb24udCwgc2V0LnQsIHN0YXJ0YWdlbnQucGw6CgogICB3ZWlyZCBkZWxheSBpbiBjcmVhdGlvbiBvZiBwaWQgZmlsZXMKICAgCjIwMDAtMDItMDQgMTg6MjEgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvOiBub3RpZnkudCwgc3RhcnRhZ2VudC5wbDoKCiAgIGJyYWluLW8KICAgCjIwMDAtMDItMDQgMTc6NTIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMSApCiAgIAoyMDAwLTAyLTA0IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5zbm1wdjMsIFRPRE86CgogICAtIChQT1JUSU5HLCBSRUFETUUsIFJFQURNRS5zbm1wdjMsIFRPRE8pOiBsYXN0IG1pbnV0ZSBkb2MgdXBkYXRlcy4KICAgCjIwMDAtMDItMDQgMTc6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGxvY2FsIGZpeGVzIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3QgaGF2ZQogICAgIGNvbXBsaWFudCBtYWtlZmlsZSB2YXJpYWJsZXMgbGlrZSAkPC4KICAgCjIwMDAtMDItMDQgMTY6NDcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgNC4xCiAgIAoyMDAwLTAyLTA0IDE1OjQ0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IEJVRywgaGludHMvc29sYXJpcy5wbDoKCiAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAogICAKMjAwMC0wMi0wNCAxNToyMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBoaW50cy9zb2xhcmlzLnBsLCB0L2dldC50LCB0L2dldG5leHQudAosIHQvc2Vzc2lvbi50LCB0L3NldC50LCB0L3NubXB0ZXN0LmNvbmY6CgogICBidWlsZCBmaXhlcyBhbmQgdGVzdCBlbmhhbmNlbWVudHMKICAgCjIwMDAtMDItMDQgMTU6MDkgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIE1ha2VmaWxlLlBMLCBTTk1QLnhzLAogICB0L2FzeW5jLnQsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50LCB0L21pYmxvYWQudAosIHQvc2Vzc2lvbi50LCB0L3NldC50LCB0L3NubXBkLmNvbmYsCiAgIHQvc25tcHRlc3QuY29uZjoKCiAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwogICAKMjAwMC0wMi0wNCAxNDowMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAoc25tcHRyYXBkLjgpOiBkb2N1bWVudCAtYyBhbmQgLUMuCiAgIAoyMDAwLTAyLTA0IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gaW1wbGVtZW50IC1jIGFuZCAtQyBmbGFncyBmb3IgSm9lLgogICAgIC0gcmVkaWQgdGhlIGluaXQgc3RydWN0dXJlIHRvIG1ha2UgaXQgbG9vayBtb3JlIGxpa2UgdGhlIGN1cnJlbnQgYWdlbnQuCiAgIAoyMDAwLTAyLTA0IDEzOjUyICBtYXJ6CgogICAqIElOU1RBTEw6CgogICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKICAgCjIwMDAtMDItMDQgMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogZG9uJ3QgcmVhZCB0aGUgb3B0IGNvbmZpZyBmaWxlIG9yIGNhbGwKICAgICBwb3N0X2NvbmZpZyBjYWxsYmFja3MsIHNpbmNlIHRoZSBsaWJyYXJ5IHRha2VzIGNhcmUgb2YgdGhhdCBub3cuCiAgIAoyMDAwLTAyLTA0IDEzOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtYWtlIGRlcGVuZC4KICAgCjIwMDAtMDItMDQgMTM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBkb24ndCBwcmludCBmYWlsZWQgYWNjZXNzIGVycm9ycyAoRUFDQ0VTKS4KICAgCjIwMDAtMDItMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdjMuYzoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jKTogcHJvdmlkZSB2MyBkZWZhdWx0cy4KICAgCjIwMDAtMDItMDQgMTI6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBmaW5kLCBsb2NhdGUsIGFuZCB1c2UgcGVybCBpZiBmb3VuZC4KICAgCjIwMDAtMDItMDQgMDg6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhZGQgZGVmYXVsdHMgZm9yIHYyIHRyYXAgcGFyYW1zCiAgIAoyMDAwLTAyLTA0IDA2OjQ0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgIGhhdmUgbWliIGxvYWRpbmcgYXBpIHJldHVybiByZXN1bHQgY29kZXMKICAgCjIwMDAtMDItMDQgMDQ6MDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiByZWFsbHkgZG8gdGhhdCBGcmVCU0Qgc2NzaSB0aGluZwogICAKMjAwMC0wMi0wNCAwMToyMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSB2YWNtX3ZhcnMuYzogc2xpZ2h0IHJld29yZGluZyBvZiB3YXJuaW5nIG1lc3NhZ2UKICAgCjIwMDAtMDItMDQgMDA6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBBIGxpdHRsZSBjbGVhbnVwIG9mIHRoZSBkaXNrIGRldmljZSBkZWZpbml0aW9ucywgYWxzbyBhZGRpbmcKICAgCVNDU0kgdG8gRnJlZUJTRCAzCiAgIAoyMDAwLTAyLTA0IDAwOjE2ICBuYmEKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jLCBtaWIuYzogZml4IHNvbWUgUEFUSCBzZXBhcmF0b3JzIGZyb20gY29uc3RhbnQ6IHRvCiAgIAlFTlZfU0VQQVJBVE9Se19DSEFSfQogICAKMjAwMC0wMi0wMyAyMzo1OSAgbmJhCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgLSBtdF9zdXBwb3J0Lmg6IGFub3RoZXIgd2F5IG9mIGRvaW5nIG5vdGhpbmcsIG5vdCBnaXZpbmcgYSAibnVsbCBlZmZlY3QiCiAgIAl3YXJuaW5nIGZyb20gZ2NjLgogICAKMjAwMC0wMi0wMyAyMzo1NyAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIGFnZW50L3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywgY2xpZW50LmM6IGNoYW5nZSBzb21lIHR5cGUgY2FzdHMgZnJvbQogICAJKGNoYXIgKikgdG8gKHVfY2hhciAqKSB0b3Agc2lsZW5jZSBzb21lIHdhcm5pbmdzLgogICAKMjAwMC0wMi0wMyAxNDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogcmVtb3ZlIGR1bW15IHJlZmVyZW5jZS4KICAgCjIwMDAtMDItMDMgMTQ6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IHByb3RlY3Qgc3lzT1JUYWJsZSBjYWxsYmFja3Mgd2l0aCAjaWZkZWZzLgogICAKMjAwMC0wMi0wMyAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oLgogICAKMjAwMC0wMi0wMyAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvOiBBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCwKICAgRFVNTVktTUlCLnR4dCwgZHVtbXkuYywgZHVtbXkuaDoKCiAgIC0gKGR1bW15LyopOiByZW1vdmVkLCB1c2UgZXhhbXBsZSBpbnN0ZWFkLgogICAKMjAwMC0wMi0wMyAxMzoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZvbGxvdyBjb25kaXRpb24gSEFWRV9HRVRQSUQgZm9yIHBpZF9maWxlIG9iamVjdC4KICAgCjIwMDAtMDItMDMgMTI6NTggIG1zbGlmY2FrCgogICAqIFJFQURNRSwgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgTm90ZSB0aGUgd29tYmF0IGlzIHJlcGxhY2VkIGJ5IGV4YW1wbGUgaW4gbW9yZSBwbGFjZXMuCiAgIAoyMDAwLTAyLTAzIDEyOjU3ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AKOgoKICAgUmVtb3ZlIERPUy1zdHlsZSBsaW5lIHRlcm1pbmF0aW9uIChDUi1MRiAtLT4gTEYpLgogICBsaWJzbm1wLmRlZiAtIHJlbW92ZSB1bm5lZWRlZCBjb21tZW50IGFib3V0IG9ic29sZXRlIHYycGFydHkuCiAgIAoyMDAwLTAyLTAzIDEwOjQ4ICBtYXJ6CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBhZGQgLXUgUElERklMRSB0byBzbm1wdHJhcGQsIG5vdyB3ZSBuZWVkIC1jIC1DOiksIGJ0dyBpcyB0aGUgdmFsdWUgb2Ygb3B0YXJnIHJlbGlhYmxlIGFmdGVyIGdldG9wdCBoYXMgYmVlbiBjYWxsZWQgYWdhaW4uLi5pdCBzZWVtcyB0byB3b3JrCiAgIAoyMDAwLTAyLTAzIDA5OjU2ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCB3aW4zMi9jb25maWcuaAo6CgogICBJbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggZnJvbSBtaWJpbmNsLmgsIG5vdCB0b3AgbGV2ZWwgY29uZmlnLmguCiAgIAoyMDAwLTAyLTAzIDA5OjQ0ICBtYXJ6CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbAogICAKMjAwMC0wMi0wMyAwNjo0MyAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggdG8gbWFrZSB0aGUgVVNJTkdfIGNvbnN0YW50cyB2aXNpYmxlLgogICAKMjAwMC0wMi0wMyAwNDoxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBVbmRvIHVuaW5mb3JtZWQgY2hhbmdlOiBsb2FkIGF2ZXJhZ2UgIT0gYXZlcmFnZSB0aW1lIHRoYXQgQ1BVIGlzIGlkbGUuCiAgIAoyMDAwLTAyLTAzIDAxOjM1ICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEb2N1bWVudCBjaGFuZ2VzIHRvIGFjY2VzcyBjb250cm9sIHN0dWZmLgogICAKMjAwMC0wMi0wMiAxNjozNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIFRvdWNodXAgdG8gYnVpbGQgbW9yZSBNSUIgbW9kdWxlcyBvbiBXaW4zMi4KICAgCjIwMDAtMDItMDIgMTY6MjMgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfZG90X2NvbmYuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgVG91Y2h1cCBmb3IgYnVpbGRpbmcgbW9yZSBNSUIgbW9kdWxlcyBpbiBXaW4zMiAoTVNWQykuCiAgIAoyMDAwLTAyLTAyIDE0OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIExldCBoclByb2Nlc3NvckxvYWQgb3V0IG9mIHRoZSBnZW5pZSdzIGJvdHRsZS4KICAgCjIwMDAtMDItMDIgMTQ6MTcgIG1hcnoKCiAgICogcGVybC9TTk1QL1JFQURNRSwgUkVBRE1FLndpbjMyOgoKICAgYWRkIGluc3RydWN0aW9ucyBmb3IgYnVpbGRpbmcgdy8gT3BlblNTTCBvbiBWQysrCiAgIAoyMDAwLTAyLTAyIDEzOjQyICBtYXJ6CgogICAqIFJFQURNRS53aW4zMjoKCiAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwogICAKMjAwMC0wMi0wMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIFJvYmVydCBNaWxlczoKICAgICAtIHZhcmlvdXMgZml4ZXM6CiAgICAgICAxKSBUaGUgZmlyc3QgcmVnaXN0cmF0aW9uIHJlcXVlc3QgY291bGQgYmUgbG9zdC4KICAgICAgIDIpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgbmV2ZXIgcmVjZWl2ZWQgYSByZXNwb25zZS4KICAgICAgIDMpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgd2VyZSBub3QgZmluZGluZyB0aGUgcmVnaXN0cmF0aW9uIHdoZW4gdGhlCiAgICAgICAgICBkZWxldGUncyBwcmlvcml0eSB3YXMgc2V0IHRvIC0xLgogICAgICAgNCkgTm9uLXplcm8gdmFsdWVzIHdlcmUgbm90IGJlaW5nIGVuY29kZWQgcHJvcGVybHkgaW4gcmVnaXN0cmF0aW9uCiAgICAgICAgICByZXNwb25zZXMuCiAgIAoyMDAwLTAyLTAyIDA4OjUyICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGZpeCB0aGUgZmF0LWZpbmdlcmluZyBwYXRjaCBJIGp1c3QgbWFkZS4gZmVoLgogICAKMjAwMC0wMi0wMiAwODo0MiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBBbGxvdyAtQ28gdG8gYWZmZWN0IHRoZSBvdXRjb21lLgogICAKMjAwMC0wMi0wMiAwODowMiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IENvcnJlY3RseSBoYW5kbGUgaW5kaXZpZHVhbGx5IGV4Y2x1ZGVkIGluc3RhbmNlcwogICAKMjAwMC0wMi0wMiAwNzoxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwCiAgIAoyMDAwLTAyLTAyIDA2OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogYWRkIE5ldEJTRCBzdXBwb3J0CiAgIAoyMDAwLTAyLTAyIDA0OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBkZXBlbmRlbmNpZXMgb24gKG1vdmVkKSB2ZXN0aW50ZXJuZXR0L2Rpc2tpbwogICAKMjAwMC0wMi0wMiAwMToxMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIChob3N0L2hyX2Rpc2suYyk6IEZpeCBzb2xhcmlzIGluaXRpYWxpc2F0aW9uLCBwbHVzIGV4dHJhIGRlYnVnZ2luZyBpbmZvLgogICAKMjAwMC0wMi0wMSAxMToyNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXB1c20uYywgc25tcHYzLmM6CgogICBGaXh1cCBtb3JlIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDAtMDItMDEgMDg6NDYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBjaGFuZ2VkIGNvbnRleHQgc3RyaW5nIGluIGV4YW1wbGVzIHRvICIiLgogICAKMjAwMC0wMi0wMSAwODo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IC5QUCAtPiAuSVAgZm9yIC1PYi4KICAgCjIwMDAtMDItMDEgMDg6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIChhZ2FpbikuCiAgIAoyMDAwLTAyLTAxIDA4OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIC0gKGRpc2tpby5jKTogbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuMTUuCiAgIAoyMDAwLTAyLTAxIDA4OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaDoKCiAgIC0gKGRpc2tpby5oKTogbG9hZCB0aGUgbWliLgogICAKMjAwMC0wMi0wMSAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2ZXN0aW50ZXJuZXR0L2Rpc2tpby5jLAogICB2ZXN0aW50ZXJuZXR0L2Rpc2tpby5oLCB1Y2Qtc25tcC9kaXNraW8uYywKICAgdWNkLXNubXAvZGlza2lvLmg6CgogICAtIChkaXNraW8uKik6IG1vdmVkIHRvIHRoZSB1Y2Qtc25tcCBkaXJlY3RvcnkKICAgCjIwMDAtMDItMDEgMDU6MjcgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEV4cGFuZCB0aGUgZGVzY3JpcHRpb24gb2YgZ2VuZXJhdGluZyB0cmFwcyBmcm9tIHRoZSBhZ2VudCBzbGlnaHRseS4KICAgCjIwMDAtMDItMDEgMDQ6MTkgIGRhdmVzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENhdGNoIGNvbW1vbiBpbnZhbGlkIGNvbmZpZ3VyZSBvcHRpb25zLgogICAKMjAwMC0wMi0wMSAwMzozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBzZXNzaW9uIElEIGhhbmRsaW5nIHdoZW4gZGVsZWdhdGluZyByZXF1ZXN0cy4KICAgCjIwMDAtMDItMDEgMDE6NDkgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZSwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgLSBGaXggYnJva2VuIHNldHRpbmcgb2Ygc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIGNob2ljZS4KICAgCjIwMDAtMDEtMzEgMTA6NDEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzZXQgRFNfTElCX0RPTlRfQlJFQUtET1dOX09JRFMgdG8gZ2V0IHByZXZpb3Vsc3kgcmVsZWFzZWQgYmVoYXZpb3VyIG9mIGdldF9zeW1ib2wgd3J0IG9jdGV0IGJhc2VkIGluc3RhbmNlIGlkcyAoaS5lLiwgbm8gZG91YmxlLXF1b3RpbmcpCiAgIAoyMDAwLTAxLTMxIDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oOgoKICAgLSAobWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5bY2hdKToKICAgICAtIFByb3ZpZGUgYW4gZXhhbXBsZSBmb3IgaG93IHRvIHRyaWdnZXIgYSB0cmFwLgogICAKMjAwMC0wMS0zMSAwNzo1NiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgLSAoYXBwcy9zbm1wdGVzdC5jKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgIAoyMDAwLTAxLTMxIDA3OjU1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcGxpYi9zbm1wdjMuW2NoXSk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAgIC0gTi5COiBUaGlzIGNoYW5nZXMgdGhlIGludGVyZmFjZSBvZiBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSBzbGlnaHRseS4KICAgCjIwMDAtMDEtMzEgMDc6NTMgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXAuYywgc25tcF9hcGkuYywKICAgc25tcHVzbS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMgc25tcGxpYi9zbm1wLmMgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHVzbS5jKToKICAgICAtIERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAKMjAwMC0wMS0zMSAwNzo1MSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQXR0ZW1wdCB0byBtaW1pYyBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjIwMDAtMDEtMzEgMDc6NDkgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBJbXByb3ZlZCBjaGVja2luZyBmb3IgSXJpeC1zdHlsZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUuCiAgIAoyMDAwLTAxLTMxIDAzOjQxICBkYXZlcwoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBSZXZpc2VkIGFuZCB1cGRhdGVkIHZlcnNpb24uCiAgIAoyMDAwLTAxLTMxIDAzOjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBJbml0aWFsaXplIGFkZHJsZW4gaW4gX3Nlc3NfcmVhZCgpLiAgKEZyYW5rIFN0cmF1c3MpCiAgIAoyMDAwLTAxLTMxIDAzOjAzICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgIC0gQXR0ZW1wdCB0byBkZXRlY3Qgbm9uLXRyYWRpdGlvbmFsIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSAob24gSXJpeCA2LngpLgogICAKMjAwMC0wMS0zMSAwMzowMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQWx0ZXJuYXRpdmUgYXBwcm9hY2ggdG8gSXJpeCBzb2NrZXQgaGFuZGxpbmcuCiAgIAoyMDAwLTAxLTMxIDAyOjQwICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFJlc3RvcmUgdHJhZGl0aW9uYWwgc29ja2V0IGZpZWxkIG5hbWVzLgogICAKMjAwMC0wMS0zMSAwMTo0NSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogSW5jbHVkZSBpbnN0YW5jZSBzdWJpZGVudGlmaWVyIGluIHNubXBUcmFwT0lEIGFuZAogICAJc25tcFRyYXBFbnRlcnByaXNlIE9JRCBkZWZpbml0aW9ucy4gIChUaGFua3MgdG8gR2VyYXJkIFRhbG1hbikKICAgCjIwMDAtMDEtMzEgMDE6MDUgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogTG9nIGZhaWxlZCBNSUIgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDAtMDEtMzAgMTA6NTYgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBSRUFETUU6CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzIGV0Yy4KICAgCjIwMDAtMDEtMzAgMTA6NDYgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzIGV0Yy4KICAgCjIwMDAtMDEtMzAgMTA6NDQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgIAogICBOb3RlOiBLTk9XTiBCVUdTCiAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKICAgCiAgIG5vdCBzdXJlIHRoYXQgdGhpcyBldmVyIHdvcmtlZCAtIHdpbGwgaGF2ZSB0byBsb29rIGF0IG9sZCBPQ1RFVFNUUgogICBiZWhhdmlvdXIgYW5kIHNlZSBob3cgdG8gcmVjcmVhdGUgaXQKICAgCjIwMDAtMDEtMzAgMTA6NDIgIG1hcnoKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgCiAgIE5vdGU6IEtOT1dOIEJVR1MKICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAKMjAwMC0wMS0zMCAwODoxOSAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9zbm1wZC5jb25mOgoKICAgY3JlYXRlIFYzIHVzZXIgZW50cnksIGNsZWFudXAKICAgCjIwMDAtMDEtMzAgMDM6MTEgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIGlmLmM6IGRlZmVuc2l2ZSB0ZXN0IGZvciBtaXNzaW5nIG9iamVjdHMgKGl0IG1pZ2h0IGZhaWwgdG8gc2hvdwogICAJZG93biBzdGF0dXMgcHJvcGVybHkpCiAgIAoyMDAwLTAxLTMwIDAzOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICAtIGhyX3N0b3JhZ2UuYzogY29udmVydCBmcm9tIHBhZ2VzIHRvIDFrIGJsb2NrcwogICAKMjAwMC0wMS0zMCAwMzowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IGNvbnZlcnQgdG8gMWsgYmxvY2tzCiAgIAoyMDAwLTAxLTMwIDAzOjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oOgoKICAgLSBob3N0Lmg6IGNvbmZpZ19yZXF1aXJlX21pYihIT1NULVJFU09VUkNFUy1UWVBFUykKICAgCjIwMDAtMDEtMjggMTI6NTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgVGhpcyB3aXRoIHByZXZpb3VzIHR3byBjaGFuZ2VzIGNvbXBsZXRlcyBhIHBhdGNoIGZvciBpdGVtcyAyLDMsNAogICBmb3IgYnVnICMxNDkuCiAgIAoyMDAwLTAxLTI4IDEyOjM4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENoYW5nZSBhZ2VudHhfe2J1aWxkLHBhcnNlfV9zaG9ydCAuIFRoYW5rcyB0byBHZXJhcmQgVGFsbWFuQGhpdHQubmwuCiAgIAoyMDAwLTAxLTI4IDEyOjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIEZpeCBzcGVsbCBMSVRUTEVfRU5ESUFOLiBUaGFua3MgdG8gdGFsbWFuQGhpdHQubmwuCiAgIAoyMDAwLTAxLTI4IDA3OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFNvbWUgdmFyaWFibGUgcmVuYW1pbmcgZm9yIGNvbnNpc3RlbmN5LCBlcnJvciBjaGVja2luZwogICBpbXByb3ZlZCwgbWlzc2luZyBzdHJpbmcuaCBpbmNsdWRlZC4gIFBhdGNoIHN1cHBsaWVkIGJ5IGF1dGhvci4KICAgCjIwMDAtMDEtMjcgMTY6MTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlbW92ZSBoYWNrIGFyb3VuZCAiU01JIiB0b2tlbjsga2VlcCB0aGUgZ29vZCBwYXJ0IG9mIHRoZSBwcmV2aW91cyBwYXRjaC4KICAgCjIwMDAtMDEtMjcgMTQ6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAxLiBGaXggbWVtb3J5IGxlYWsgd2hlbiBhbm9ueW1vdXNseSBuYW1lZCBub2RlcyBhcmUgdXNlZC4KICAgIDIuIEhhY2sgYXJvdW5kIHNtaWNuZydzICJTTUkgIiBzdGF0ZW1lbnRzIHRvIHByZXZlbnQgb3RoZXIgbWVtb3J5IGxlYWtzLgogICAKMjAwMC0wMS0yNyAxMToxNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBuby1vcCBzbm1wX3N5bmNoX3NldHVwCiAgIAoyMDAwLTAxLTI3IDA4OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYyk6IG1ha2UgY29uZmlnIHBhcnNlciBoYW5kbGUgIiIgKG51bGwpIHBhcnNlZCBzdHJpbmdzLgogICAKMjAwMC0wMS0yNiAxOToyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYS1jaGFtZWxlb24uCiAgIAoyMDAwLTAxLTI2IDE3OjMyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWxsb3cgJywnIHNlcGVyYXRlZCAtLXdpdGgtKi1tb2R1bGVzIGZsYWcgdmFsdWVzLgogICAKMjAwMC0wMS0yNiAxNzoxOCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTIgKQogICAKMjAwMC0wMS0yNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xCjoKCiAgIC0gKHNubXBjbWQuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMSk6CiAgICAtIGJhZGx5IGRvbmUgdXBkYXRlcy4KICAgCjIwMDAtMDEtMjYgMTY6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNERVNjb25maWcsIFQwMjNzbm1wdjNnZXRNRDVERVM6CgogICAtIChTdjNERVNjb25maWcsIFQwMjNzbm1wdjNnZXRNRDVERVMpOiBmaXggREVTIHRlc3Qgc28gaXQgd29ya3MuCiAgIAoyMDAwLTAxLTI2IDE2OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBmaXggcHJpdiBrZXkgbGVuZ3RoIGV4dHJhcG9sYXRpb24uICBTaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseT8uCiAgIAoyMDAwLTAxLTI2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgLSBtYWtlIGRlcGVuZC4KICAgCjIwMDAtMDEtMjYgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gYWRkIGFiaWxpdHkgdG8gYWxsb3cgc2VuZGluZyB0cmFwcyB0byBwb3J0cyBvdGhlciB0aGFuIDE2Mi4KICAgCjIwMDAtMDEtMjYgMTU6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsCiAgIFVDRC1ETE1PRC1NSUIudHh0LCBVQ0QtSVBGSUxURVItTUlCLnR4dCwKICAgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY29ycmVjdCB1Y2Qtc25tcC1jb2RlcnMgZW1haWwgYWRkcmVzcyB0byByZXBsYWNlICJlY2UiIHdpdGggInVjZC1zbm1wIi4KICAgCjIwMDAtMDEtMjYgMTU6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIGNsZWFuIHVwIGFuZCByZWZvcm1hdCBzdWItcmVnaXN0cmF0aW9uIGNvbW1lbnRzLgogICAKMjAwMC0wMS0yNiAxNTozMSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtSVBGSUxURVItTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBwcmVmaXggb2lkcyB3aXRoICJ1Y2QiLgogICAKMjAwMC0wMS0yNiAxNTozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtRExNT0QtTUlCLnR4dDoKCiAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBwcmVmaXggb2lkIHdpdGggInVjZCIuCiAgIAoyMDAwLTAxLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURJU0tJTy1NSUIuaW5jLCBVQ0QtRElTS0lPLU1JQi50eHQsCiAgIFZFU1QtSU5URVJORVRULU1JQi50eHQ6CgogICAtIChVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6CiAgICAgUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBmaXggdGhlIGRpc2tpbyBtaWIsIGNvbnZlcnQgdG8gU01JdjIsIGFuZCBtb3ZlIHRvIHVjZEV4cGVyaW1lbnRhbC4KICAgCjIwMDAtMDEtMjYgMDc6MjYgIG1zbGlmY2FrCgogICAqIFJFQURNRToKCiAgIEFja25vd2xlZGdlIG1vcmUgY29udHJpYnV0b3JzLgogICAKMjAwMC0wMS0yNiAwNzoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBjb21waWxlIGVycm9yIHdoZW4gLS13aXRob3V0LXJvb3QtYWNjZXNzIGlzIHVzZWQgKHN0cmF1c3NAaWJyLmNzLnR1LWJzLmRlKQogICAKMjAwMC0wMS0yNSAyMTo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgbWliLmM6cHJpbnRfdHJlZV9ub2RlIC0gc2hvdyBtb2R1bGUgbmFtZSBvbmNlIGluIC0tIEZST007CiAgIHBhcnNlLmM6IHNob3cgIkNhbm5vdCBmaW5kIG1vZHVsZSIgb25jZSBwZXIgbWlzc2luZyBtb2R1bGUuCiAgIAoyMDAwLTAxLTI1IDE5OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBMYXJnZXIgYnVmZmVyIGZvciBwcmludF9tb2R1bGVfbmFtZTsgRml4IHBvc3NpYmxlIG51bGwgZGVyZWYgaW4gZ2V0X3RjLgogICAKMjAwMC0wMS0yNSAxNDo1MCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWxhcm0uMywgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLjMsIHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGZpeCByZWdpc3RyYXRpb24gZnVuY3Rpb24gdG8gZG8gd2hhdCBpdCBzYXlzIGl0IHNob3VsZCBkby4KICAgCjIwMDAtMDEtMjUgMTQ6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKTogaGVscCB1cGRhdGUKICAgCjIwMDAtMDEtMjUgMTQ6MTIgIG5iYQoKICAgKiBtaWJzLzogSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0CiwgTWFrZWZpbGUuaW46CgogICAtIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwgTWFrZWZpbGUuaW46CiAgIAlVcGRhdGUgdG8gdGhlIGN1cnJlbnQgZHJhZnQgSE9TVC1SRVNPVVJDRVMgKGRyYWZ0LW9wcy1ob3N0bWliLTAxKQogICAKMjAwMC0wMS0yNSAxMzo1NiAgaGFyZGFrZXIKCiAgICogbWlicy9WRVNULUlOVEVSTkVUVC1NSUIudHh0OgoKICAgLSAoVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KICAgCjIwMDAtMDEtMjUgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zlc3RpbnRlcm5ldHQvOiBkaXNraW8uYywgZGlza2lvLmg6CgogICAtICh2ZXN0aW50ZXJuZXR0L2Rpc2tpby5bY2hdKTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgogICAKMjAwMC0wMS0yNSAxMzo1MiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiB0Y19pbmRleAogICAKMjAwMC0wMS0yNSAxMjowNSAgbWFyegoKICAgKiBSRUFETUUud2luMzI6CgogICBhZGRpdGlvbmFsIHdpbjMyIGluc3RhbGwgbm90ZXMKICAgCjIwMDAtMDEtMjUgMTE6NDcgIG1hcnoKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBhZGQgbWlzc2luZyBzeW5ib2xzIGZvciBwZXJsL1NOTVAgbW9kdWxlCiAgIAoyMDAwLTAxLTI1IDA2OjQ5ICBtYXJ6CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHN5bnRheCBmb3Igd2luMzIgYnVpbGQKICAgCjIwMDAtMDEtMjQgMTA6MzYgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTI0IDEwOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHByaW50aW5nIElNUExJRUQgaW5kZXggKGZyb20gYXNzb2NpYXRlIG9mIEouIEttaWV0c2NoKSBtb2RpZmllZCBhbmQgYXBwbGllZC4KICAgCjIwMDAtMDEtMjQgMTA6MDUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSXRvanVuJ3MgbmV0YnNkIEVMRiBwYXRjaCArIHJlbW92ZSB3b21iYXQgW0RhdmUncyBleGFtcGxlIGZpeF0KICAgCjIwMDAtMDEtMjQgMDk6NTUgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jCjoKCiAgIEZpeCBCdWcgIzE0NCBpdGVtcyAxLDMsNDogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgImFsbCIga2V5d29yZC4KICAgCjIwMDAtMDEtMjQgMDk6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgTWFrZSBzdXJlIGtzdGF0X2ZkIGlzIGluaXRpYWxpemVkIGJlZm9yZSBiZWluZyB1c2VkLgogICAKMjAwMC0wMS0yNCAwODo1OSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDEtMjQgMDc6MjEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogZXhhbXBsZS5jLCBleGFtcGxlLmgsCiAgIHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gKGV4YW1wbGVzL3tleGFtcGxlLHdvbWJhdH0uW2NoXSk6CiAgICAgLSBDb25zb2xpZGF0ZWQgZXhhbXBsZSBtb2R1bGVzIGludG8gb25lLCBpbmNsdWRpbmcgY29uZmlnIGFuZCBTRVQgc3VwcG9ydC4KICAgCjIwMDAtMDEtMjMgMTY6NDEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBoYW5kbGUgYWRkaW5nIE9QQVFVRSB2YXJzIGZvciBzZXR0aW5nIGFuZCB0cmFwcyBldGMuCiAgIAoyMDAwLTAxLTIzIDEyOjQzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBlcnJlbm91cyA9PiBlcnJvbmVvdXMKICAgCjIwMDAtMDEtMjMgMTI6NDIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBtZXJnaW5nIG9mIGFub255bW91cyBub2RlcyB3aGVuIHRoZXkgYXJlIG5hbWVkCiAgIAoyMDAwLTAxLTIzIDA4OjUxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBhZGQgc29tZSBtb3JlIGVycm9yIGNoZWNraW5nIHRvIGdldG9pZAogICAKMjAwMC0wMS0yMSAxMToxOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGNvbmZpZ19hcmNoX3JlcXVpcmUgc29sYXJpczIgdmVyc2lvbiBvZiB2bXN0YXQuCiAgIAoyMDAwLTAxLTIxIDEwOjQ3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTIxIDEwOjIzICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTIxIDA4OjEzICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5mb3JtCiAgIAoyMDAwLTAxLTIxIDA4OjAwICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5mb3JtLgogICAKMjAwMC0wMS0yMSAwNzoyNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgYWRkZWQgdjMgaW5mb3JtCiAgIAoyMDAwLTAxLTIxIDAxOjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNaW5pbWl6ZSBkYXRhIGhhbmRsaW5nIGFuZCB1c2UgcmVnaXN0ZXIgdmFyaWFiaWVzIGluCiAgIHNubXBfb2lkX2NvbXBhcmUgYW5kIGNvbXBhcmVfdHJlZS4KICAgCjIwMDAtMDEtMjEgMDE6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oCjoKCiAgIEFkZCBjb25zdCB0byBjbGVhbnVwIGEgZmV3IHNpZ25hdHVyZXMuCiAgIAoyMDAwLTAxLTIxIDAxOjQ2ICBtc2xpZmNhawoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgUmVtb3ZlIHBhcnR5IGNydWQ7IHNwZWxsIGNoZWNrLgogICAKMjAwMC0wMS0yMCAwNDoyNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU3VwcG9ydCBzZWxlY3RpdmUgYmluZGluZyBvZiBzZXJ2ZXIgYWRkcmVzc2VzLgogICAKMjAwMC0wMS0xOCAyMTozNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBDb25zaXN0ZW50IGdldHBhZ2VzaXplIChmaXJzdCBkaXZpZGUgYnkgMTAyNCkuCiAgIAoyMDAwLTAxLTE4IDIxOjI4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3A6CgogICAxLk1ha2Ugc25tcF9nZXRfZG9fbG9nZ2luZyB2aXNpYmxlIGZyb20gRExMCiAgIDIuQXBwbHkgV2luMzIgcGF0Y2ggZnJvbSBSLlN0b3J5IHRvIGFjdGl2YXRlIG1pYiBzdGF0cyBtb2R1bGUgKHNubXBfbWliKS4KICAgCjIwMDAtMDEtMTggMjE6MjUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgb2JqZWN0cyB0aGF0IGFyZSBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlLgogICAKMjAwMC0wMS0xOCAyMToyMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDbGVhbnVwIGFyb3VuZCBpcDZfdmFycy5oIGluY2x1ZGUgKG5vICNpZiAwKQogICAKMjAwMC0wMS0xOCAxNDoyMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiB2bXN0YXRfc29sYXJpczIuYywKICAgdm1zdGF0X3NvbGFyaXMyLmg6CgogICBMYXRlc3Qgdm1zdGF0X3NvbGFyaXMyIGZyb20gdGhlIGF1dGhvciBKb2NoZW4gS21pZXRzY2guCiAgIAoyMDAwLTAxLTE4IDA4OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBQcmV2ZW50IGFycmF5IGJvdW5kcyBlcnJvciB3aGVuIGNyZWF0aW5nIHNwZWNpZmljIHRyYXAgb2lkLgogICAKMjAwMC0wMS0xOCAwNzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIHZhbHMgZm9yIHRyYXAgZnVuY3MsIGNsZWFuIHVwIHBkdQogICAKMjAwMC0wMS0xOCAwNzowMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgbW9kaWZpZWQgZm9yIHYyLXRyYXAuCiAgIAoyMDAwLTAxLTE3IDEyOjQ3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBhZGRlZCB2MiB0cmFwCiAgIAoyMDAwLTAxLTE3IDA5OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRGlzY2FyZCAidG9vLWxhdGUiIHJlc3BvbnNlcyBmcm9tIG92ZXJsYXBwZWQgcmVnaW9ucy4KICAgCjIwMDAtMDEtMTcgMDY6MTMgIGRhdmVzCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKG1hbi9zbm1wdHJhcGQuOCk6IERlc2NyaWJlIGRlZmF1bHQgbG9nZ2luZyBiZWhhdmlvdXIuCiAgIAoyMDAwLTAxLTE0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHJlbW92ZSBleHBvcnQgY29udHJvbCBub3RlIGFib3V0IERFUy4KICAgCjIwMDAtMDEtMTQgMTY6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBpbXBsZW1lbnQgREVTIGVuY3J5cHRpb24uCiAgIAoyMDAwLTAxLTE0IDExOjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IGdyZXAgZm9yIGNvbmZpZ3VyZSBmbGFncwogICAKMjAwMC0wMS0xNCAwOTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy91Y2REZW1vUHVibGljLmMsIHNtdXgvc25tcF9iZ3AuYwosIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9yaXAyLmM6CgogICBTbWFsbCBjb21waWxlIGZpeCBhbmQgZGVidWcgbWVzc2FnZSByZXN0b3JhdGlvbi4KICAgCjIwMDAtMDEtMTMgMDY6MzMgIGRhdmVzCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6IE1vcmUgY29tcGxldGUgaGFuZGxpbmcgb2YgdW5sb2FkaW5nIE1JQiBtb2R1bGVzLgogICAKMjAwMC0wMS0xMyAwNjozMSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChzbm1wbGliL3BhcnNlLltjaF0pOiBVbmxvYWQgTUlCIG1vZHVsZQogICAJKE4uQjogU29tZXdoYXQgc2ltcGxpc3RpYyB3aXRoIHJlZ2FyZCB0byBtdWx0aXBseS1sb2FkZWQgbm9kZXMpCiAgIAoyMDAwLTAxLTEzIDA1OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgTm8gZ2V0X2Jvb3R0aW1lIHN1cHBvcnQgZm9yIGN5Z3dpbiAoeWV0KS4gSG9wZWZ1bGx5IGEgdGVtcG9yYXJ5IGNvbmRpdGlvbi4KICAgCjIwMDAtMDEtMTMgMDI6NDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBSZW1vdmUgZXh0cmFuZW91cyBicmFja2V0LgogICAKMjAwMC0wMS0xMiAyMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFwcHMvc25tcHVzbS5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaAo6CgogICBVc2UgREVCVUdNU0dPSUQgbGliZXJhbGx5LCByZXBsYWNpbmcgc3ByaW50X29iamlkOyBzbWFsbCBzcGVlZHVwLgogICAKMjAwMC0wMS0xMiAxMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogY2FzdCBtYWxsb2MgcmV0dXJucy4KICAgCjIwMDAtMDEtMTEgMTU6MDUgIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgVXNlIENGTEFHUyB3aGVuIGxpbmtpbmcgKGNvdWxkIGhhdmUgcHJvZmlsZSBzd2l0Y2gsIGV0YykuCiAgIAoyMDAwLTAxLTExIDEwOjM3ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L2dldC50OgoKICAgcmVtb3ZlIGJhZCBzZXNzaW9uIHRlc3QgLSBzZXNzaW9uLnQgaGFzIGl0IGFscmVhZHkgLSBub3RlIHRoZSBjYWxsIHRvIGdldGhvc3RieW5hbWUgY2FuIGhhbmcgZm9yIHNvbWUgdGltZSBpZiBETlMgaXMgbm90IHNldHVwIGNvcnJlY3RseSAtIGFueW9uZSBrbm93IGEgd2F5IGFycm91bmQgdGhpcz8KICAgCjIwMDAtMDEtMTEgMDk6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIFJlc3RvcmUgbWVtZHVwIHVzYWdlIHRvIGl0cyBmb3JtZXIgbHVzdGVyLgogICAKMjAwMC0wMS0xMSAwODoxMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEluaXQgZmlsZSBjb3VudCBhdCB6ZXJvLCBub3QgYnkgaW5jcmVtZW50aW5nIHJhbmRvbSB2YWx1ZS4KICAgCjIwMDAtMDEtMTEgMDc6NTkgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgS2VlcCB3aW4zMiByZWxlYXNlIGJ1aWxkIGZyb20gYnJlYWtpbmcuCiAgIAoyMDAwLTAxLTExIDA3OjQ0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIEFkZCBJTl9VQ0RfU05NUF9TT1VSQ0UgdG8gbm90IGJyZWFrIFdpbjMyIGJ1aWxkcy4KICAgCjIwMDAtMDEtMTEgMDE6NTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgR2xlYW4gcmVmcyB0byBtaWJJSS5vIGZyb20gdGhpcyBtYWtlZmlsZS4KICAgCjIwMDAtMDEtMTEgMDE6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHNubXBsaWIvdmFjbS5jCjoKCiAgIFRyb2xsaW5nIGZvciBtYWxsb2MgZXJyb3JzOyBtb3JlIGdyYWNlZnVsIGRlZ3JhZGF0aW9uLgogICAKMjAwMC0wMS0xMCAxNjozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMKOgoKICAgc25tcF9hcGkuYyAgICAtIGJldHRlciBjb21tZW50IGZvciBzbm1wX29pZF9jb21wYXJlLgogICByZWFkX2NvbmZpZy5jIC0gcmVtb3ZlIHNpemVvZih1X2NoYXIpIGZyb20gbWFsbG9jIHNpemUgY2FsYy4KICAgc2NhcGkuaCAgICAgICAtIHNwZWxsIGNoZWNrLgogICAKMjAwMC0wMS0xMCAxNjozMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBzbm1wdHJhbnNsYXRlLmMgIC0gc2ltcGxlIGRlZmF1bHQgY2FzZS4KICAgCjIwMDAtMDEtMTAgMTY6MzEgIG1zbGlmY2FrCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICBzbm1wdHJhbnNsYXRlLjEgICAtIHJlbW92ZSBqdW5rIGxpbmUuCiAgIAoyMDAwLTAxLTEwIDE2OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICB1Y2REZW1vUHVibGljLmMgLSByZW1vdmUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgZnJvbSB3cml0ZSBtZXRob2QuCiAgIHNubXBfdmFycy5jICAgICAtIHByb3BlciBvaWQgY29tcGFyZTsgbm8gY29weSBmcm9tIHNhdmUgaWYgb2lkcyBleGFjdCBtYXRjaAogICBzbm1wZC5jICAgICAgICAgLSB0ZXJtaW5hdGUgc3RhdGVtZW50LgogICAKMjAwMC0wMS0xMCAxNTozOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG1ha2UgLS13aXRob3V0LWVmZW5jZSB3b3JrLgogICAgIC0gY2hlY2sgZm9yIC1sbnNsIG1vcmUgZXhwbGljaXRseS4KICAgCjIwMDAtMDEtMTAgMTU6MzYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgLSAoU3YzY29uZmlnKTogcmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFjZS4KICAgCjIwMDAtMDEtMTAgMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3RkbGliLmggYW5kIG1hbGxvYy5oLgogICAKMjAwMC0wMS0xMCAxNDo0MCAgbWFyegoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICBhZGQgbWlibG9hZAogICAKMjAwMC0wMS0xMCAxNDozNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTEwIDE0OjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IEJVRywgTUFOSUZFU1QsIE1BTklGRVNULlNLSVAsCiAgIE1ha2VmaWxlLlBMLCBSRUFETUUsIFNOTVAucG0sIFNOTVAueHMsIFRPRE8KLCBwZXJsc25tcC5oLCB0eXBlbWFwLCBleGFtcGxlcy9hc3luYzEucGwsCiAgIGV4YW1wbGVzL2FzeW5jMi5wbCwgZXhhbXBsZXMvaXBmb3J3YXJkLnBsLAogICBleGFtcGxlcy9taWJ0cmVlLnBsLCBleGFtcGxlcy9taWJ3YWxrLnBsLAogICBleGFtcGxlcy9waW5nbWliLnBsLCBleGFtcGxlcy90YWJsZXdhbGsucGwsCiAgIGV4YW1wbGVzL3Rlc3RsZWFrLnBsLCBoaW50cy9pcml4LnBsLCBoaW50cy9zb2xhcmlzLnBsCiwgdC9SRUFETUUsIHQvYXN5bmMudCwgdC9nZXQudCwgdC9nZXRuZXh0LnQKLCB0L21pYi50LCB0L21pYi50eHQsIHQvc2Vzc2lvbi50LCB0L3NldC50CiwgdC9zbm1wZC5jb25mOgoKICAgQ2hlY2tpbmcgaW4gU05NUC0zLjEuMGIxCiAgIAoyMDAwLTAxLTEwIDEzOjIxICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFF1YWxpZnkgdXNlIG9mIHdpdGh2YWwgdG8gZGVmaW5lIGxpYnJhcnkgYW5kIGluY2x1ZGUgc2VhcmNoIHBhdGhzLgogICAKMjAwMC0wMS0xMCAxMzoxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgQWxsb3cgTVNWQysrIDUueCB1c2VycyB0byBidWlsZCB1c2luZyB0aGlzIHdvcmtzcGFjZS4KICAgCjIwMDAtMDEtMTAgMDY6MTIgIGRhdmVzCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogUmUtc3RydWN0dXJlIGdldF91cHRpbWUoKSB0byBjYWNoZSBib290IHRpbWUuCiAgIAoyMDAwLTAxLTEwIDAzOjA2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBDb3VudCBudW1iZXJzIG9mIHZhcmlhYmxlcyByZXF1ZXN0ZWQvc2V0CiAgIAoyMDAwLTAxLTEwIDAyOjMxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEaWZmZXJlbnRpYXRlIG1heC1yZXBldGl0aW9uIGFuZCBub24tcmVwZWF0ZXIgZXJyb3JzLgogICAKMjAwMC0wMS0xMCAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJLmgpOiBSZS1yZW1vdmUgcmVkdW5kYW50IHByb3RvdHlwZS4KICAgCjIwMDAtMDEtMDggMTI6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIFVzZSBrbmxpc3QgaWZmIGFpeDQgYW5kIEhBVkVfS05MSVNUIFtub3QgY29tcGxldGUgdy9vIGNvbmZpZ3VyZSBtb2RzXQogICAKMjAwMC0wMS0wOCAxMTo0NCAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggYnVpbGQgZm9yIExpbnV4IFJlZEhhdCA2LjEgKGNhbnQgbGluayBsaWJ3cmFwIHdpdGhvdXQgbGlibnNsKS4KICAgCjIwMDAtMDEtMDggMDA6NTYgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluOiBidWdmaXggZm9yIGEgYnVnZml4IGJ1ZwogICAKMjAwMC0wMS0wNyAyMzo0MyAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSBjb25maWd1cmUuaW46IHNvbWUgbWlzc2luZyAieCIgaW4gdGVzdHMgZm9yIC0td2l0aC1vcGVuc3NsIGFuZAogICAJLS1kaXNhYmxlLWRldmVsb3BlcgogICAKMjAwMC0wMS0wNyAxNjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IHByb3Blcmx5IGdyb3VwIHJ3L3JvdXNlcnMgaW50byB1c20gbm90IHYxL3YyYy4KICAgCjIwMDAtMDEtMDcgMTE6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBoYW5kbGUgbXVsdGlwbGUgdHJhbnNsYXRlZCBPSURzLgogICAKMjAwMC0wMS0wNyAxMDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiB1cGRhdGUgdG8gdjQgQVBJIHNldCBjb2RlLgogICAKMjAwMC0wMS0wNyAwOToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogYmV0dGVyIGhhbmRsaW5nIG9mIHdyaXRlIGZhaWx1cmVzLgogICAKMjAwMC0wMS0wNiAxNTowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiB1bnF1b3RlZCBxdW90ZXMgcXVvdGVkLgogICAKMjAwMC0wMS0wNiAxNTowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHJlbW92ZWQgYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgogICAKMjAwMC0wMS0wNiAxNTowOCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiB5MmsgYnVnLgogICAKMjAwMC0wMS0wNiAxMzoxNCAgbWFyegoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQ6CgogICB1cGRhdGUgY29uZmlnIGFjY2VzcyBzeW50YXggKGV4YWN0KQogICAKMjAwMC0wMS0wNiAxMzowNyAgbWFyegoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgd2Ugc2hvdWxkIG5vdCBwcmludCB0byBzdGRlcnIgaWYgc3RkZXJyIGxvZ2dpbmcgaXMgZGlhYmxlZCAtIHRoaXMgdGhvd3Mgb2ZmIHRoZSBhbGlnbm1lbnQgb2YgdGVzdCBvdXRwdXQgZm9yICdtYWtlIHRlc3QnIGluIGJvdGggdWNkLXNubXAgYW5kIFBlcmwvU05NUAogICAKMjAwMC0wMS0wNiAxMjo1NiAgbWFyegoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnOgoKICAgdXBkYXRlIHN5bnRheCAoZXhhY3QpCiAgIAoyMDAwLTAxLTA2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmgpOiBwcm9wZXJseSB3cmFwIHN0cnVjdC5oIGluY2x1ZGUgZGlyZWN0aXZlIGZvcgogICAgIG5vbi1zb3VyY2UtZGlyZWN0b3J5IGluY2x1ZGUuCiAgIAoyMDAwLTAxLTA2IDAxOjU4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5jOgoKICAgLSAobWliZ3JvdXAvbWliSUkuYyk6IFJlbW92ZSByZWR1bmRhbnQgZmlsZQogICAKMjAwMC0wMS0wNCAyMzo1MSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBpbXBsZW1lbnQgdHJhbmQgaGFuZGxlcnMgZm9yIHdpbjMyCiAgIAoyMDAwLTAxLTA0IDIzOjUwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiAjaWZkZWYgc29tZSB2YXJpYWJsZXMgbm90IHVzZWQgdW5kZXIgd2luMzIKICAgCjIwMDAtMDEtMDQgMjI6MTIgIG5iYQoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNubXBkLmNvbmYuNS5kZWY6IHJlbW92ZSBhbGwgdHJhY2VzIG9mIHNlY3VyaXR5CiAgIAltb2RlbCAiYW55IiBpbiAiZ3JvdXAiIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcwogICAKMjAwMC0wMS0wNCAxNjoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTYW5kZXIgU3RlZmZhbm46CiAgICAgLSBBZGQgLUkvdXNyL2luY2x1ZGUvcnBtIGJlY2F1c2Ugb2YgYmFkbHkgd3JpdHRlbiBycG0gaGVhZGVyIGZpbGVzLgogICAKMjAwMC0wMS0wNCAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogZGVhbCB3aXRoIGJsb2NraW5nIGJldHRlciBpbiBzbm1wX2FnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCiAgIAoyMDAwLTAxLTA0IDEwOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzdHJ1Y3QuaAogICAKMjAwMC0wMS0wNCAwODo1OCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChSRUFETUUsIEZBUSk6IEphcGFuIG1pcnJvciBsb2NhdGlvbiBjaGFuZ2UuCiAgIAoyMDAwLTAxLTAzIDE1OjM5ICBuYmEKCiAgICogbWFuLzogc25tcGNtZC4xLCBzbm1wdHJhbnNsYXRlLjEsCiAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSBzbm1wY21kLjE6IGFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcGxpY2F0aW9ucwogICAtIHNubXB0cmFuc2xhdGUuMTogZXhwbGFpbiAtVCBvdXRwdXRzCiAgIC0gc25tcHRyYXBkLmNvbmYuNS5kZWY6IGRlZmFsdCB0cmFwaGFuZGxlciBpcyBpbXBsZW1lbnRlZAogICAKMjAwMC0wMS0wMyAxNTozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBhbHNvIG5vdGUgVEVYVFVBTCBDT05WRU5USU9OIGluIC1UZCBvdXRwdXQKICAgCjIwMDAtMDEtMDMgMTU6MzIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBGaWxlIHZhcmlhYmxlIGJlaW5nIGxlZnQgcG9pbnRpbmcgaW50byB0aGUgc3RhY2suCiAgIAlJZ25vcmUgLmluZGV4IGZpbGUgb24gV0lOMzIgcGxhdGZvcm0KICAgCjIwMDAtMDEtMDMgMTU6MzAgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSBzeXN0ZW0uaDogYWRkIHByb3RvdHlwZSBmb3Igc3RyY2FzZWNtcAogICAKMjAwMC0wMS0wMyAxNToyOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLzogd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSB3b21iYXQuW2NoXTogY29ycmVjdCBwcm90b3R5cGUgZm9yIHdvbWJhdF9wYXJzZV9jb25maWcKICAgCjIwMDAtMDEtMDMgMTU6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSBtaWJJSS5oOiBhZGQgcHJvdG90eXBlIGZvciBpbml0X21pYklJCiAgIAoyMDAwLTAxLTAzIDE1OjI2ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogYWRkIGEgbWlzc2luZyBjb25zdCBzcGVjaWZpZXIKICAgCjIwMDAtMDEtMDMgMTU6MjYgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IGluY2x1ZGUgYWdlbnRfcmVnaXN0cnkuaCBvbmx5IG9uY2UKICAgCjIwMDAtMDEtMDMgMTU6MjMgIG5iYQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSBFWEFNUExFLmNvbmYuZGVmOiBhZGFwdCB0byBjaGFuZ2VzIGluIHZhbGlkIHZhY20gc3ludGF4CiAgIAoxOTk5LTEyLTMxIDEzOjI3ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIEFwcGx5IHNvbWUgTmV0QlNEIDEuMy54LCAxLjQgcGF0Y2hlcyBjL28gR3JlYSBBLiBXb29kcyA8d29vZHNAcGxhbml4LmNvbT4KICAgCjE5OTktMTItMzEgMTI6NDMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEZpeCBidWcgIzQ4OiBubyBzdHJjYXNlY21wL3N0cm5jYXNlY21wIGZvciBTaW5peAogICAKMTk5OS0xMi0zMSAxMDozNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCB3YXJuaW5ncyBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcy4KICAgCjE5OTktMTItMzEgMTA6MzMgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgQXV0b2NvbmYgcGF0Y2ggYy9vIEFsYmVydCBDaGluLUEtWW91bmcgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT4KICAgCjE5OTktMTItMzEgMTA6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgRml4IGJ1ZyAjMTI1IC0gaW5zZXJ0IHVuZGVyc2NvcmUgaW50byBzdHJ1Y3Qgc25tcF9pcGFkZHIgbWVtYmVyIG5hbWVzLgogICAKMTk5OS0xMi0zMSAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgQXBwbHkgcGF0Y2ggcHJvdmlkZWQgYnkgU2VyZyBUcnVzaG5pa292IDxzYXRAem1haWwucnU+IGZvciBBSVggNC4yLjEga25saXN0CiAgIAoxOTk5LTEyLTMxIDA5OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmM6CgogICBGaXggYnVnICMgMTIyCiAgIAoxOTk5LTEyLTMwIDEyOjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEZpeCBjb21waWxlIGVycm9ycy4KICAgCjE5OTktMTItMzAgMDc6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogdXNhZ2UgbGluZSBvcmRlciBtZXNzZWQgdXAsIGFzIHBvaW50ZWQgb3V0IGJ5IFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTItMjggMTU6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlbW92ZSB0aGUgISBpbiBmcm9udCBvZiBpbl9hX3ZpZXcsIHdoaWNoIGNoYW5nZWQuCiAgIAoxOTk5LTEyLTIzIDA4OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgLSBub24gODAtY29sdW1uIHdyYXBwZWQgdmVyc2lvbi4KICAgCjE5OTktMTItMjIgMTY6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgLSBmaXJzdCBwYXNzIGF0IHZtc3RhdCBzdXBwb3J0IGZvciBzb2xhcmlzLgogICAKMTk5OS0xMi0yMiAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogaW5jcmVhc2UgbWF4IHZhcnMgdG8gNjQgKHdhcyAxNikuICBJIGhhdmUgYQogICAgIHRhYmxlIHdpdGggbW9yZSB0aGFuIHRoYXQgbnVtYmVyIGluIGNvbHVtbnMsIHdoaWNoIGJyZWFrcyBzbm1wdGFibGUuCiAgIAoxOTk5LTEyLTIyIDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIChtYXN0ZXIuYyk6IHVzZSBzbm1wX3Nlc3Nfb3BlbiBmb3IgdGhlIHNlY29uZCB0cnkgYXQgb3BlbmluZyB0aGUKICAgICBtYXN0ZXIgcG9ydC4KICAgCjE5OTktMTItMjIgMDU6NTggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtIHZhY20gcm91dGluZXM6IGFsaWdubWVudCB3aXRoIFJGQyBtaWJzLCBwcmVwYXJpbmcgZm9yIHRyYXAgZ2VuZXJhdGlvbgogICAJYW5kIGEgYmV0dGVyIGludGVncmF0aW9uIHdpdGggdmFyaWFibGUgdHJlZSB3YWxraW5nCiAgIAoxOTk5LTEyLTIyIDA1OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSBzeXN0ZW1fbWliLmM6IHVzZSBzb21lICNkZWZpbmVzIGkgcGxhY2Ugb2YgbnVtYmVycwogICAKMTk5OS0xMi0yMiAwNTo0NiAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiBuYXVnaHR5LCBuYXVnaHR5IE5pZWxzLCBqdXN0IHJlaW5kZW50aW5nIC4uLgogICAKMTk5OS0xMi0yMiAwMjo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBocl9zdG9yYWdlLmM6IGtpbGwgYSBkdW1teSB2YWx1ZQogICAKMTk5OS0xMi0yMiAwMjo0MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgLSBtZW1vcnlfZnJlZWJzZDIuYzogbWFrZSBpdCB3b3JrIChhZ2FpbikgZm9yIEZyZWVCU0QtMjotKQogICAKMTk5OS0xMi0yMSAwMjozNyAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBkLmMsIHNtdXguYywgc25tcF9hcGkuYzogdGFrZSBhd2F5IHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjE5OTktMTItMjAgMTc6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUxICkKICAgCjE5OTktMTItMjAgMTc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGFkZCBhZ2VudF90cmFwLmgKICAgCjE5OTktMTItMjAgMTc6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiBTTUl2MiB1cGRhdGVzLgogICAKMTk5OS0xMi0yMCAxNzozMSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBub3RlLgogICAKMTk5OS0xMi0yMCAxNzoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IERpZ2l0YWwgVW5peCBoYWNrIGZvciBiYWQgcmVjdmZyb20gaW1wbGVtZW50YXRpb24uCiAgIAoxOTk5LTEyLTIwIDE3OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogbWFrZSBhIHRoaW5ncyBzaXplX3QgaW5zdGVhZCBvZiB1X2ludCAoZm9yIDY0Yml0IGNvZGUpLgogICAKMTk5OS0xMi0yMCAxNzoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogbWFrZSB1cHRpbWUgYSBsb25nIGZvciA2NGJpdCBhcmNoaXRlY3R1cmVzLgogICAKMTk5OS0xMi0yMCAxNTozOCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogSVBGV0FDQy1NSUIudHh0IC0+IFVDRC1JUEZXQUNDLU1JQi50eHQKICAgCjE5OTktMTItMjAgMTM6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jOgoKICAgLSAoaXBmd2FjYy5jKTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KICAgCjE5OTktMTItMjAgMTM6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELUlQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgogICAKMTk5OS0xMi0yMCAxMzoyNiAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1JUEZXQUNDLU1JQi5pbmMsIFVDRC1JUEZXQUNDLU1JQi50eHQ6CgogICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgYW5kIHVwZGF0ZWQgZnJvbSBJUEZXQUNDLU1JQi50eHQKICAgCjE5OTktMTItMjAgMTM6MjUgIGhhcmRha2VyCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdG8gVUNELUlQRldBQ0MtTUlCLnR4dAogICAKMTk5OS0xMi0yMCAxMzoyMyAgaGFyZGFrZXIKCiAgICogbWlicy9JUFNFQy1NSUIudHh0OgoKICAgLSAoSVBTRUMtTUlCLnR4dCk6IHJlbW92ZWQKICAgCjE5OTktMTItMjAgMDY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlZCBrZXJuZWwubyBpbnRvIHRoZSBsaWJ1Y2RhZ2VudCBsaWJyYXJ5LgogICAKMTk5OS0xMi0yMCAwNjo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogRm9yY2Ugc2V0IHRvIDEgZm9yIC1EIHNvIG11bHRpcGxlIHN3aXRjaGVzIGNhbgogICAgIGJlIGdpdmVuIChpZSwgZG9uJ3QgdG9nZ2xlIHRoZSB2YWx1ZSkuCiAgIAoxOTk5LTEyLTIwIDA0OjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL21pYklJLmgsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9pcHY2LmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICAtIChhZ2VudF90cmFwLmMgc25tcF92YXJzLmMgbWliSUkuW2NoXSBtaWJJSS8qLmMgbWliSUkvc3lzT1JUYWJsZS5oKToKICAgICAtIFVzZSBTTk1QX09JRCBwcmVmaXggZGVmaW5pdGlvbnMgaW4gT0lEIHNwZWNpZmljYXRpb25zLgogICAgIC0gUmVnaXN0ZXIgdGhlIHZhcmlvdXMgTUlCLTIgbW9kdWxlcyBzZXBhcmF0ZWx5IGluIHN5c09SVGFibGUuCiAgIAoxOTk5LTEyLTIwIDAzOjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50eC9SRUFETUUuYWdlbnR4KTogVXBkYXRlZCB0byBkZXNjcmliZSBjdXJyZW50IHN0YXR1cy4KICAgCjE5OTktMTItMTcgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBjb21wbGV0ZWx5IHJlc3RydWN0dXJlZC4KICAgICAtIGRyYXN0aWNseSByZWR1Y2VzIG1lbW9yeSB1c2FnZSBmb3IgbGFyZ2UgZGF0YSBzZXRzICgxLzMpLgogICAKMTk5OS0xMi0xNyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jKToKICAgICAtIGluY2x1ZGUgInNubXBfYWxhcm0uaCIgZm9yIG1pYiBtb2R1bGVzIHRoYXQgbmVlZCB0aGUgY2FsbGJhY2sgZGVmLgogICAKMTk5OS0xMi0xNyAxNTo1NSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIC1JLgogICAKMTk5OS0xMi0xNyAxNTo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBtaXNzaW5nICEgb3BlcmF0ZXIgb24gc2lnbmFsIHRlc3QuCiAgIAoxOTk5LTEyLTE3IDE1OjQxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXQuYwosIHZtc3RhdF9mcmVlYnNkMi5jOgoKICAgTm8gZHVtbXkgdmFsdWVzIGZvciBGcmVlQlNELCBwbGVhc2UuCiAgIAoxOTk5LTEyLTE3IDE1OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCiwgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBBZGQgQmlsbCBGdW1lcm9sYSdzIHBhdGNoIGZvciBGcmVlQlNEIDQueCB0byB1c2Ugc3dhcGluZm8uCiAgIEluY2x1ZGUgRnJlZUJTRCA0Lnggc3BlY2lmaWMgbWVtb3J5IGFuZCB2bXN0YXQgd2hlbiBidWlsZGluZyB0aGF0IGFnZW50LgogICAKMTk5OS0xMi0xNyAxNDoyMyAgbXNsaWZjYWsKCiAgICogbWFuLzogUkVBRE1FLCBtaWJfYXBpLjMsIHNubXAuY29uZi41LmRlZiwKICAgc25tcGNtZC4xLCBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgc25tcG5ldHN0YXQuMSwgc25tcHRlc3QuMSwgc25tcHVzbS4xLCBzbm1wd2Fsay4xCjoKCiAgIEZpeGVkIGEgZmV3IHNwZWxpbG5nIGVycm9ycy4KICAgCjE5OTktMTItMTcgMTA6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IHJlLXN0cnVjdHVyZSBiYXNlZCBvbiByZWNlbnQgY2hhbmdlcy4KICAgCjE5OTktMTItMTcgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogc2Vjb25kIHBhc3MuCiAgIAoxOTk5LTEyLTE3IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmVkIC1SIGZyb20gdGhlIC1oIG91dHB1dC4KICAgCjE5OTktMTItMTcgMTA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtICh1c21Vc2VyLmMpOiBjaGFuZ2VkIGhlbHAgbGluZSBvZiBjcmVhdGVVc2VyIHRvIHNlcGVyYXRlIERFUyB0b2tlbgogICAgIGZyb20gdGhlIHBhc3NwaHJhc2UuCiAgIAoxOTk5LTEyLTE3IDEwOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcHV0IHNubXBkLm8gaW50byB0aGUgb2JqZWN0IGxpc3QsIGFuZCByZW1vdmUgaXQgZnJvbQogICAgIGRpcmVjdCBjb21waWxhdGlvbiBpbiB0aGUgQ0MgbGluayBsaW5lLgogICAKMTk5OS0xMi0xNyAxMDoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiByZW9yZGVyIGluaXQoKSByb3V0aW5lcyBmb3IgLUggdG8gcHJldmVudCBzZWdmYXVsdGluZy4KICAgCjE5OTktMTItMTcgMTA6MTEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IFBFUlNJU1RFTlRfRElSRUNUT1JZIHRva2VuIGFkZGVkLgogICAKMTk5OS0xMi0xNyAxMDoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBmaXJzdCBwYXNzIGF0IGNoYW5nZXMuCiAgIAoxOTk5LTEyLTE3IDA3OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBjcmVhdGVVc2VyLgogICAKMTk5OS0xMi0xNyAwNzoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgdGhlIGZpbGUgZGlyZWN0aXZlLgogICAKMTk5OS0xMi0xNyAwNzoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgcm9jb21tdW5pdHksIHJ3Y29tbXVuaXR5LCByb3VzZXIsIHJ3dXNlci4KICAgCjE5OTktMTItMTcgMDc6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBhIGJ1bmNoIG9mIG5ldyBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoxOTk5LTEyLTE3IDA3OjA1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogbWVudGlvbiB0aGF0IC1JUiBhbmQgLUliIGFyZSBhY3R1YWxseSB1c2VkIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTEyLTE3IDA3OjAzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUkgYW5kIC1PIGZsYWdzLgogICAKMTk5OS0xMi0xNyAwMzoyMiAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgLSBsaWJzbm1wLmRlZjogYWRkIHNvbWUgZnVuY3Rpb24gbmFtZXMKICAgCjE5OTktMTItMTcgMDI6MTggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogbWFrZSB0aGUgb2lkcyBnaXZlbiB0byB0cmFwZCBoYW5kbGVycyBwcm9wZXJseSAuMCB0ZXJtaW5hdGVkLgogICAJQWRkIGEgU05NUC1DT01NVU5JVFktTUlCOjpzbm1wVHJhcEFkZHJlc3MuMAogICAJQWRkIHN5c2xvZyBvZiB2MiB0cmFwcyBhbmQgaW5mb3JtcwogICAKMTk5OS0xMi0xNyAwMjoxNCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBjbGVhbnVwIG9mIHRoZSAibmV3IiBtaWIgd2FsayB0byBkZXRlcm1pbmUgZmllbGRzLiBNYWtlIGl0CiAgIAlkZWZhdWx0IChkb24ndCBldmVuIGRvY3VtZW50IHRoZSAtQyBjb21wYXRpYmlsaXR5IG9wdGlvbikuIElnbm9yZQogICAJbm90LWFjY2Vzc2libGUgZmllbGRzIGluIHRoZSB3YWxrLgogICAKMTk5OS0xMi0xNyAwMjowOSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyB1c2FnZSgpIGNhbGxzLgogICAKMTk5OS0xMi0xNyAwMjowOCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBraWxsIHRoYXQgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24sIGl0IGp1c3QgYWRkcyB0b28gbWFueQogICAJY29uZGl0aW9uYWxzLiBQcm9wZXJseSBvdXRwdXQgYW4gZW1wdHkgc3RyaW5nIGluZGV4LgogICAKMTk5OS0xMi0xNiAyMzoxMCAgbmJhCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIHNubXB2My5jOiBhIG1vcmUgc3BldmlmaWMgaGVscCBtZXNzYWdlIGZvciBkZWZWZXJzaW9uCiAgIAoxOTk5LTEyLTE2IDIzOjA5ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGZpeCBhIHRhaWwgcmVjdXJzaW9uIGVsaW1pbmF0aW9uIHByb2JsZW0gcHJpbnRpbmcgb2lkcwogICAKMTk5OS0xMi0xNiAyMzowOCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IGJlIGV4cGxpY2l0IGluIHRoZSAtdCB3YXJuaW5nCiAgIAoxOTk5LTEyLTE2IDIzOjA4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSBzbXV4LltjaF06IGZpeCBzb21lIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzLgogICAKMTk5OS0xMi0xNiAyMzowNiAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IFxuIHRlcm1pbmF0ZSBzb21lIGxvZyBtZXNzYWdlcwogICAKMTk5OS0xMi0xNiAyMzowNSAgbmJhCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgLSBrZXJuZWwuYzogb3V0cHV0IGVycm9yIHN0cmluZywgbm90IG51bWJlcgogICAKMTk5OS0xMi0xNSAxMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgUmVwbGFjZSBrYyBmcm9tIG1lbW9yeV9zb2xhcmlzMi5jIHdpdGgga3N0YXRfZmQsIGRlZmluZWQgaW4ga2VybmVsX3N1bm9zNS5jLgogICAKMTk5OS0xMi0xNSAwOTo1NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICBBZGQgdGltZSBtYXJrZXIgY3JlYXRlLCBzZXQsIGFuZCBkZWx0YSB0aW1lIGNoZWNrIG1ldGhvZHMuCiAgIAoxOTk5LTEyLTE1IDA5OjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgUmVtb3ZlIHNubXBfbG9nX3N5c2xvZywgc25tcF9sb2dfZmlsZWxvZywgc25tcF9sb2dfc3RkZXJybG9nOwogICBTaW1wbGlmeSBzbm1wX2xvZ19zdHJpbmcuCiAgIAoxOTk5LTEyLTE1IDA5OjE5ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4sIFNOTVB2Mi1NMk0tTUlCLnR4dCwKICAgU05NUHYyLVBBUlRZLU1JQi50eHQ6CgogICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCBTTk1QdjItTTJNLU1JQi50eHQgKTogcmVtb3ZlZC4KICAgCjE5OTktMTItMTUgMDk6MTcgIGhhcmRha2VyCgogICAqIG1pYnMvOiBFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLmluYywgVUNELUlQRklMVEVSLU1JQi50eHQ6CgogICAtIChFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LCBVQ0QtSVBGSUxURVItTUlCLmluYywKICAgICBVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gRXZlbiBtb3JlIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTE1IDA1OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTaGFyZSBrc3RhdCBmZCBpZmYgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyIGlzIGFsc28gY29uZmlndXJlZC4KICAgCjE5OTktMTItMTUgMDQ6MjEgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jOgoKICAgSXNvbGF0ZSBhbmQgcmV0b3VjaCBkZXByZWNhdGVkIGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAKMTk5OS0xMi0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBnZXQgbmV4dCBpbiBsaW5rIGxpc3QgYmVmb3JlIGRlbGV0aW5nIHJvb3QuCiAgIAoxOTk5LTEyLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbW92ZSAtbGVmZW5jZSBjaGVjayB1cCB0byBmcm9udCAobGFzdCBpbiBsaW5rKS4KICAgCjE5OTktMTItMTQgMTU6MTkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IERMTU9EIC0+IFVDRC1ETE1PRAogICAKMTk5OS0xMi0xNCAxNDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IHJldmVyc2UgZ2VuZXJhdGVfS3Ugb3B0aW1pemF0aW9ucywgYXMgdGhleSBkb24ndCB3b3JrLgogICAKMTk5OS0xMi0xNCAwODo0MSAgaGFyZGFrZXIKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gdXBkYXRlcy4KICAgCjE5OTktMTItMTQgMDg6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaDoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBkZWZhdWx0X3N0b3JlLmgsCiAgICAgbWliLmMsIG1pYi5oKToKICAgICAtIGFyZ3VtZW50IHNodWZmbGluZy4uLgogICAgICAgLUkgZm9yIGlucHV0IGFyZ3MgY3JlYXRlZCwgYW5kIC1PUiBtb3ZlZCB0aGVyZS4KICAgICAgIC1JYiBjcmVhdGVkLgogICAgICAgLVRCIGNyZWF0ZWQgZm9yIHNubXB0cmFuc2xhdGUgKHdhcyAtQikuCiAgIAoxOTk5LTEyLTEzIDE2OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQWxsb3cgc3ByaW50X3ZhcmlhYmxlIHRvIHdvcmsgZXZlbiBpZiBubyBNSUIgZmlsZXMgd2VyZSByZWFkLgogICAKMTk5OS0xMi0xMyAxNToxMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpbmlzaCBzeW1ib2wgY29udmVyc2lvbiB3aXRoIG51bWVyaWMgd2hlbiBzdWJ0cmVlIGlzIGxlYWYgbm9kZS4KICAgCjE5OTktMTItMTMgMTQ6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggcHJvYmxlbSBwcmludGluZyBJTVBMSUVEIGluZGljZXMgb2YgT0JKRUNUSUQgdHlwZS4KICAgCjE5OTktMTItMTMgMTQ6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IC0td2l0aC1lZmVuY2UgaW1wbGVtZW50ZWQuCiAgICAgLSAoZm9yY2VkIGNoZWNraW5nIGZvciAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIENWUyBjaGVja291dHMpCiAgIAoxOTk5LTEyLTEzIDEzOjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU2FuaXR5IGNoZWNrcyBhZGRlZCB0byBfZ2V0X3N5bWJvbC4KICAgCjE5OTktMTItMTMgMTI6MDQgIG1zbGlmY2FrCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIGFsc28gcmVtb3ZlcyBnZW5lcmF0ZWQgZGVmYXVsdF9zdG9yZS4zLmggLgogICAKMTk5OS0xMi0xMyAwOTo1NyAgaGFyZGFrZXIKCiAgICogbWlicy86IERMTU9ELU1JQi50eHQsIFVDRC1ETE1PRC1NSUIuaW5jLAogICBVQ0QtRExNT0QtTUlCLnR4dDoKCiAgIC0gKERMTU9ELU1JQi50eHQsIFVDRC1ETE1PRC1NSUIuaW5jLCBVQ0QtRExNT0QtTUlCLnR4dCk6CiAgICAgLSBKdWVyZ2VucyBwYXRjaCB0byBtb3ZlIERMTU9ELU1JQiAtPiBVQ0QtRExNT0QtTUlCIGFuZCAtPiBTTUl2Mi4KICAgICAtIG1vdmVkIHRvIHRoZSBleHBlcmltZW50YWwgdHJlZS4KICAgCjE5OTktMTItMTMgMDk6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIEFkZGVkIHBhdGNoIGZyb20gTS5NaWNoYXVkIHRvIHVzZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzLgogICAKMTk5OS0xMi0xMyAwNDo0MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9zbXV4L3NtdXguYywKICAgbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICAtIChhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5bY2hdKToKICAgICAtIFBhdGNoIHRvIGdldCBTTVVYIHN1cHBvcnQgd29ya2luZyB3aXRoIHRoZSBuZXcgYWdlbnQgYXJjaGl0ZWN0dXJlLgogICAgICAgVGhpcyBpcyBwcm9iYWJseSBub3QgVGhlIFJpZ2h0IFdheSBUbyBEbyBUaGluZ3MgTm93LCBidXQgaXQgd29ya3MuCiAgICAgICBUaGFua3MgdG8gTmljayBBbWF0byBhbmQgTWlrZSBNaWNoYXVkLgogICAKMTk5OS0xMi0xMyAwMzoxOCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSAoYWdlbnRfdHJhcC5jKTogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBlbnRlcnByaXNlIE9JRCB3aGVuIHNlbmRpbmcgdHJhcHMKICAgCjE5OTktMTItMTMgMDM6MTcgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogSGFuZGxlIGRlbGVnYXRlZCBNSUIgcmVnaW9ucyBwcm9wZXJseSB3aGVuIHNwbGl0LgogICAKMTk5OS0xMi0xMCAxMzowMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIEZpeCBIUC1VWCBwcm9ibGVtIHdpdGggaXBEZWZhdWx0VFRMLgogICAKMTk5OS0xMi0xMCAxMDo0NCAgbWFyegoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgKHNubWxpYi9zbm1wX2FwaS5jKTogZml4IGJ1ZyBpbiBfc2Vzc19jb3B5IHdoZXJlIHBvaW50ZXJzIHRoYXQgd2VyZSBub3Qgb3duZWQgYnkgbmV3bHkgY3JlYXRlZCBzZXNzaW9uIGNvdWxkIGdldCBtaXN0YWtlbmx5IGZyZWVkIGlmIGVycm9ycyB3ZXJlIGVuY291bnRlcmVkIGR1cmluZyBzZXNzaW9uIGNvcHkgLSBhbHNvIGVsaW1pbmF0ZSBzb21lIHJlZHVuZGFudCBjb3B5aW5nIG9mIHNlY3VyaXR5e0F1dGh8UHJpdn1LZXkgZGF0YQogICAKMTk5OS0xMi0xMCAxMDoyMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQXBwbHkgRGF2ZSdzIHBhdGNoIHRvIGZpeCBtYXggdmFyYmluZHMgdGVzdGluZyBvbiBHRVRCVUxLLgogICAKMTk5OS0xMi0xMCAwNzoyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXggdG8gYnVpbGQgZXhlY3V0YWJsZSBhZ2VudCBvbiBIUC1VWC4KICAgCjE5OTktMTItMTAgMDM6MTkgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZGVmLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgLSAodmFyaW91cyk6IGNoYW5nZXMgdG8gY29tcGlsZSBzbm1wZCB3aXRoIFZDKysgNS4wIChSZWxlYXNlIG1vZGUpCiAgIAoxOTk5LTEyLTEwIDAzOjEwICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBhZGQgc29tZSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcnMKICAgCjE5OTktMTItMTAgMDM6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgogICAKMTk5OS0xMi0xMCAwMzowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gcGFzcy5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KICAgCjE5OTktMTItMTAgMDM6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIG1hc3Rlci5jOiBhZGQgYSBtaXNzaW5nICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IChhdCBsZWFzdCBmb3IgU29sYXJpcykuCiAgIAoxOTk5LTEyLTA5IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkIG9uIGhwdXgKICAgCjE5OTktMTItMDkgMTY6NTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkCiAgIAoxOTk5LTEyLTA5IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCBhbGwgaW5zdGFuY2VzIG9mIGtiIHRvIGtCLgogICAKMTk5OS0xMi0wOSAxNToyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gTGVvbmFyZCBHb21lbHNreToKICAgICAtIGdlbmVyYXRlX0t1KCkgc3BlZWQgaW1wcm92ZW1lbnRzLgogICAKMTk5OS0xMi0wOSAxMDowOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluCjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKToKICAgICAtIGZpeGVkIC0tZW5hYmxlLXNoYXJlZCAoYXQgbGVhc3Qgb24gbGludXgpLgogICAKMTk5OS0xMi0wOSAwODoxNCAgbXNsaWZjYWsKCiAgICogbWlicy86IERJU01BTi1TQ1JJUFQtTUlCLnR4dCwgVUNELURFTU8tTUlCLmluYywKICAgVUNELURFTU8tTUlCLnR4dCwgVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dAo6CgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEp1ZXJnZW4gU2Nob2Vud2FlbGRlci4KICAgCjE5OTktMTItMDkgMDc6NDkgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBzbm1wY21kLjE6IHN1cHBvcnQgTUlCOjpsYWJlbAogICAKMTk5OS0xMi0wOSAwNzozNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBpbXBsZW1lbnQgTUlCOjpsYWJlbAogICAKMTk5OS0xMi0wOSAwNzozNCAgZGF2ZXMKCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIC0gKG1hbi9zbm1wX3RyYXBfYXBpLjMpOiBJbml0aWFsIGRvY3VtZW50YXRpb24gZm9yIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KICAgCjE5OTktMTItMDggMTc6MTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWFzdGVyLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgLSBpbXBsZW1lbnQgbWtkaXJoaWVyKCkgYW5kIHVzZSBpdCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlIGFuZCBhZ2VudHgKICAgICAgIHNvY2tldCBmaWxlIGNyZWF0aW9uLgogICAKMTk5OS0xMi0wOCAxNTo0OSAgaGFyZGFrZXIKCiAgICogbWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLCByZW1vdmUtZmlsZXMKOgoKICAgLSAobWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLCByZW1vdmUtZmlsZXMpOgogICAgIC0gbW92ZSB0aGUgbWFrZSBkZXBlbmQgcGVybCBzY3JpcHRzIHRvIHRoZSB0b3AgbGV2ZWwgd2hlcmUgdGhleSBvbmx5CiAgICAgICBuZWVkIHRvIGJlIGVkaXRlZCBvbmNlLgogICAKMTk5OS0xMi0wOCAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2RsbW9kcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqLi5NYWtlZmlsZS5pbik6IEEgcmVhbCBtYWtlIGRlcGVuZCB3aXRoIG5vIHNzbCBkZXBlbmRhbmNpZXMsIGV0Yy4KICAgCjE5OTktMTItMDggMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbW92ZSBzeXMvcGFyYW0gb3V0IG9mIGlmZGVmIEZEX1NFVC4KICAgCjE5OTktMTItMDggMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCouLk1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTEyLTA4IDE1OjI2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGQgSnVlcmdlbi4KICAgCjE5OTktMTItMDggMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAtIHJlbWVtYmVyZWQgSU1QTElFRCBpbmRleGVzLgogICAgIC0gcHJvcGVybHkgcHJpbnQgT0lEcyB3aXRoIGxlbmd0aCBwcmVmaXhlcyBvbiBwYXJzZWQgT0lEcyBzbwogICAgICAgY3V0dGluZy9wYXN0aW5nIG9mIHRoZW0gd29ya3MuCiAgICAgLSBwcm9wZXJseSBwcmludCBzdHJpbmdzIGFuZCBvaWRzIHRoYXQgYXJlIElNUExJRUQuCiAgICAgLSBwcmludCBzdHJpbmdzIGluIGVpdGhlciAnIG9yICIgcXVvdGVzIGRlcGVuZGluZyBvbiBpZiB0aGVpciBJTVBMSUVELgogICAKMTk5OS0xMi0wOCAxNTowNCAgbXNsaWZjYWsKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkIG1pc3NpbmcgZHNrUGVyY2VudE5vZGUgdG8gRHNrRW50cnkgKHRoYW5rcyB0bwogICAgICAgICAgICBNaWNoYWVsIEtpcmtoYW0gPHN1cHBvcnRAaXdsLmNvbT4pLgogICAKMTk5OS0xMi0wOCAxNTowMSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgSW5jbHVkZSBnZXRvcHQuaCB0byBkZWZpbmUgb3B0YXJnLgogICAKMTk5OS0xMi0wOCAxNDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZml4IC1PcyBhbmQgaW5kZXggYmFzZWQgb2lkIHByaW50aW5nIHRvIHdvcmsgYWdhaW4uCiAgIAoxOTk5LTEyLTA4IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWFrZSBtckluZGV4IElNUExJRUQgc2luY2UgaXQgaXMgaW4gdGhlIGNvZGUuCiAgIAoxOTk5LTEyLTA4IDA5OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiByZWdpc3RlciBhIGNvbmZpZyB0b2tlbiBmb3Igc3VmZml4IHByaW50aW5nLgogICAKMTk5OS0xMi0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgRWxpbWluYXRlIG11bHRpcGx5aW5nIGJ5IHNpemVvZihjaGFyKSBvciBzaXplb2YodW5zaWduZWQgY2hhcik7CiAgIGFnZW50eC9jbGllbnQuYyAtIHNubXBfZnJlZV92YXJiaW5kIHJlcGxhY2VzIGZyZWUgaW4gZm91ciBwbGFjZXM7CiAgIHNubXB2My91c21Vc2VyLmMgLSB1c21fZnJlZV91c2VyIHJlcGxhY2VzIGZyZWUgaW4gb25lIHBsYWNlLgogICAKMTk5OS0xMi0wNyAxMzo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB3YWxrLjE6CgogICAtIChzbm1wd2Fsay4xKTogZG9jdW1lbnQgLUNpIGFuZCAtQ3AgKGJhZGx5KS4KICAgCjE5OTktMTItMDcgMTM6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOgogICAgIC0gTmV3IGFiaWxpdHkgdG8gcGVmb3JtIGEgZ2V0IG9uIHRoZSByZXF1ZXN0ZWQgT0lEIHdoZW4gZWl0aGVyIG5vCiAgICAgICByZXN1bHRzIGFyZSByZXR1cm5lZCBvciB3aGVuIHRoZSB1c2VyIHJlcXVlc3RzIGFuIGluY2x1c2l2ZSBvcHRpb24uCiAgICAgLSBOZXcgYWJpbGl0eSB0byBwcmludCBudW1iZXIgb2YgdmFyaWFibGVzIGZvdW5kIGF0IHRoZSBlbmQuCiAgIAoxOTk5LTEyLTA3IDA5OjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBjb252ZXJ0IHRvIFNNSXYyIGFuZCBjbGVhbnVwLgogICAKMTk5OS0xMi0wNyAwOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoc3lzT1JUYWJsZS5jKTogbWFrZSBzeXNPckluZGV4IG5vdC1hY2Nlc3NpYmxlLCBhcyBpdCBzaG91bGQgYmUuCiAgIAoxOTk5LTEyLTA3IDA5OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmM6CgogICAtIChocl9vdGhlci5jKTogc2hvcnRlbiBjcHUgZGVzY3JpcHRpb24gbGVuZ3RoLgogICAKMTk5OS0xMi0wNyAwODoyOSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdIGFnZW50L3NubXBkLltjaF0KICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5bY2hdIHNubXBsaWIvc25tcF9hcGkuYyk6CiAgICAgIC0gIFVzZSB0aGUgc2F2ZWQgYXBwbGljYXRpb24gbmFtZSBmb3IgcmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXJzCiAgIAkoTi5COiBUaGlzIGNoYW5nZSB3aWxsIG5lZWQgdG8gYmUgYXBwbGllZCB0byBNSUIgbW9kdWxlcyBhcyB3ZWxsKQogICAKMTk5OS0xMi0wNyAwODowMyAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdXNtLmM6CgogICBVc2UgYXJndlswXSBzaW5jZSB0aGUgYXBwIHdvbnQgYmUgc25tcGdldG5leHQsIHByb2JhYmx5LgogICAKMTk5OS0xMi0wNiAxNjozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdXNtLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgTW9yZSBmdW4gdXBkYXRpbmcgTVMgVkMgYnVpbGQgb2YgYXBwcyBhbmQgbGlicmFyeS4KICAgCjE5OTktMTItMDYgMTU6MTEgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaCwgd2luMzIvd2luMzIuZHN3Ciwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwCiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwCiwgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcAo6CgogICAtIHN5c3RlbS5jLCBjb25maWcuaCwgd2luMzIuZHN3LCAqLmRzcCwgbGlic25tcC5kZWY6IGNsZWFuaW5nIHVwIGZvciBWQyBidWlsZHMKICAgCjE5OTktMTItMDYgMTU6MDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsIHNubXB1c20uaDoKCiAgIENvbnZlcnQgVVNNX0VSUiogdG8gU05NUEVSUl9VU00qLgogICAKMTk5OS0xMi0wNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBmaXggdXNhZ2UgZm9yIG5ldyBhcmdzLgogICAKMTk5OS0xMi0wNiAxNDo1NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6IG1ha2UgdjMgdGVzdGluZyB3b3JrIGFnYWluLgogICAKMTk5OS0xMi0wNiAxNDo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOgogICAgIC0gbWFrZSBzbm1wdXNtIHVzYWJsZSBhZ2FpbiwgY2hhbmdpbmcgYXJndW1lbnRzIHNsaWdodGx5LgogICAgIC0gbWFrZSBpdCBhbHNvIHVzZSBkZWZhdWx0cyBmb3IgcGFzc3BocmFzZXMsIHVzZXIsIGV0Yy4KICAgCjE5OTktMTItMDYgMTQ6MzIgIG5iYQoKICAgKiB3aW4zMi86IGJpbi8uY3ZzaWdub3JlLCBsaWIvLmN2c2lnbm9yZToKCiAgIC0gLmN2c2lnbm9yZTogTWFrZSBDVlMgc2lsZW50IGFib3V0IGluc3RhbGxhdGlvbiBmaWxlcwogICAKMTk5OS0xMi0wNiAxMzo1MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcHJpbnQgZXJyb3Igc3RyaW5ncyByZXR1cm5lZCBieSBnZW5lcmF0ZV9LdSgpLgogICAKMTk5OS0xMi0wNiAxMzo0NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZGVmYXVsdCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aC9wcml2IHR5cGVzLgogICAKMTk5OS0xMi0wNiAwOToxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFNob3cgYWxsIG5vbi1wcmludGFibGUgc3ViaWRzIGluIGR1bXBfb2lkX3RvX3N0cmluZy4KICAgUmVjdXJzZSBjbGVhcl90cmVlX2ZsYWdzIG9ubHkgaWYgbmVjZXNzYXJ5LgogICAKMTk5OS0xMi0wNSAyMTo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZW5zdXJlIHByb3BlciBieXRlIG9yZGVyaW5nIHdoZW4gcGFzcydpbmcKICAgCWlwYWRkcmVzcy4KICAgCjE5OTktMTItMDMgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgLSAodm1zdGF0LmMpOiByZW1vdmUgZHVwbGljYXRlIGxpbWl0cy5oIGluY2x1ZGUuCiAgIAoxOTk5LTEyLTAzIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogdXNlICQoTUFLRSkgaW5zdGVhZCBvZiBtYWtlLgogICAKMTk5OS0xMi0wMyAxNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHN3aXRjaCB0byBQSUMgZnJvbSBwaWMuCiAgIAoxOTk5LTEyLTAzIDE1OjA1ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiByZW1lbWJlciB0byBOVUxMIGEgZnJlZWQgcG9pbnRlcgogICAKMTk5OS0xMi0wMyAxNTowNCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIHNubXB0cmFwZF9oYW5kbGVycy5jOiBhIGxpdHRsZSBuaWNlciBlcnJvciBtZXNzYWdlCiAgIAoxOTk5LTEyLTAzIDE1OjAzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGNvcnJlY3QgaGFuZGxpbmcgb2YgU0lHSFVQIHRwIHJlY29uZmlndXJlLgogICAKMTk5OS0xMi0wMiAxNjo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHR1cm4gb24gUkVHRVhfRVhURU5ERUQuCiAgIAoxOTk5LTEyLTAyIDA5OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBidWcgIzgxIC0gY29udGludWUgaW5zdGFsbCBhZnRlciBlcnJvciBjcmVhdGluZyBwZXJzaXN0ZW50IGRpcmVjdG9yeS4KICAgCjE5OTktMTItMDIgMDU6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3NubXB2My5oOgoKICAgLSB1c21Vc2VyLmMgc25tcHYzLltjaF06IG1vdmUgdXNtX3BhcnNlX2NyZWF0ZV91c21Vc2VyIGZyb20gdGhlIGFnZW50CiAgICAJdG8gdGhlIGxpYnJhcnksIHNvIHRoYXQgc25tcHRyYXBkIGNhbiB1c2UgaXQuCiAgIAoxOTk5LTEyLTAyIDA0OjQyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IGZpeCBzbm1wX2Nsb25lX3BkdTIgYnkgdXNpbmcgdGhlIHNubXBsaWIgdmVyc2lvbgogICAKMTk5OS0xMi0wMiAwNDo0MSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBhY2Nlc3NpbmcgYW5kIGZyZWVlaW5nIGVudl92YXIgbWlzcGxhY2VzIGFyb3VuZCBOVUxMIHRlc3QKICAgCjE5OTktMTItMDEgMTY6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFVzZSBTTk1QX01BWEJVRiB3aGVuIGRlZmluaW5nIGxhcmdlIHN0YXRpYyBidWZmZXIgc3RvcmFnZS4KICAgCjE5OTktMTItMDEgMTU6NTUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCBidWcgIzExMiBhbmQgZmluaXNoIHBhdGNoIHN1cHBsaWVkIGJ5IEFudGhvbnkgU2hpcG1hbi4KICAgCjE5OTktMTItMDEgMTA6MzggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIFByZXZlbnQgb3ZlcmZsb3cgb2Ygb2JqZWN0IElEIGluIGdldF9tb2R1bGVfbm9kZS4KICAgSW4gZmluZF9iZXN0X3RyZWVfbm9kZSwgdHJlYXQgcmVzdWx0IGZyb20gcmVjdXJzZWQgY2FsbCBzYW1lIGZvciBtYXRjaCA9IDAuCiAgIAoxOTk5LTEyLTAxIDA2OjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBFcnJvciBjaGVjayBhbmQgZnJlZSByZXNvdXJjZXMgZHVyaW5nIHJlZ2V4IHByb2Nlc3NpbmcuCiAgIAoxOTk5LTExLTMwIDE2OjUwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFkZCBtdWx0aXBsZSBtYXRjaCBjYXBhYmlsaXR5IHRvIGZpbmRfYmVzdF90cmVlX25vZGUsIGFuZCB1c2UgaXQgaW4KICAgc25tcHRyYW5zbGF0ZSAobmV3IC1CIG9wdGlvbikuCiAgIAoxOTk5LTExLTMwIDE0OjQ3ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFVzZSBXZXMnIGNvb2wgbmV3IGdldF93aWxkX25vZGUgbWF0Y2ggbWV0aG9kLgogICAKMTk5OS0xMS0zMCAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYyk6IGltcGxlbWVudCByZWdleCBtYXRjaGluZwogICAgIGV2ZXJ5d2hlcmUuCiAgIAoxOTk5LTExLTMwIDEzOjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgSW5jbHVkZSBjdHlwZS5oCiAgIAoxOTk5LTExLTMwIDEzOjEwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEZpeCAtVGQgdXNhZ2UgZGVzY3JpcHRpb247IHVzZSBzd2l0Y2ggd2hlbiBjdXJyZW50X25hbWUgaXMgTlVMTC4KICAgCjE5OTktMTEtMzAgMDc6MDggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaGFuZGxpbmcgb2YgbXVsdGktdmFyaWFibGUgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgogICAKMTk5OS0xMS0zMCAwNzowNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYWdlbnR4L21hc3Rlci5jKTogUmVtb3ZlIHJlZHVuZGVudCByb3V0aW5lLgogICAKMTk5OS0xMS0zMCAwMzowMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6CgogICAtIHNubXBfYXBpLmgsIHNubXBfbWliLltjaF06IEEgY291cGxlIGFkZGl0aW9uYWwgU05NUCBzdGF0aXN0aWNzIHBvaW50cwogICAKMTk5OS0xMS0yOSAxNDowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYW5vdGhlciBuYW1lLgogICAKMTk5OS0xMS0yOSAxNDowMyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIGZvciByZWdleC5oLCByZWdjb21wLCBzdHJjYXNlc3RyLgogICAKMTk5OS0xMS0yOSAxNDowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IG1ha2UgYmVzdCBtYXRjaGluZyAoLWIpIHVzZSByZWdleCB3aGVuIGF2YWlsYWJsZS4KICAgCjE5OTktMTEtMjkgMTQ6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzeXN0ZW0uYywgc3lzdGVtLmg6CgogICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBpbXBsZW1lbnQgc3RyY2FzZXN0ciAoZnJvbSBNaWNoYWVsIFNsaWZjYWspLgogICAKMTk5OS0xMS0yOSAxMjo0MyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wYnVsa2dldC5jOgoKICAgVXNlIHNpemVfdCBmb3IgbmFtZV9sZW4gbWVtYmVyLgogICAKMTk5OS0xMS0yOSAxMTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRnJlZSBTVFJFQU0gcGFja2V0IGJ1ZmZlciB3aGVuIHNlc3Npb24gaXMgY2xvc2VkOwogICBUZXN0IGZvciBjbG9zZSBpbiBwcm9ncmVzcyBmb3IgcmVhZCwgd3JpdGUsIHNlbGVjdCwgYW5kIHRpbWVvdXQgZnVuY3Rpb25zLgogICAKMTk5OS0xMS0yOSAxMDozNiAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXB0cmFwLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L21haW4uYwo6CgogICBSZW1vdmUgbGFzdCB2ZXN0aWdlcyBvZiBERUJVR19NQUxMT0NfSU5DIGZyYWdtZW50cy4KICAgCjE5OTktMTEtMjkgMTA6MzMgIG1zbGlmY2FrCgogICAqIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcDoKCiAgIEZpeCByZWZlcmVuY2UgdG8gc25tcGxpYi4KICAgCjE5OTktMTEtMjkgMTA6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVzZSBudG9ocyBtYWNybyB0byBjYXJlZnVsbHkgb2J0YWluIHRoZSBkZWZhdWx0IHNlcnZpY2UgcG9ydC4KICAgCjE5OTktMTEtMjkgMDU6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNb3JlIEhQLVVYIGFDQyBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuLgogICAKMTk5OS0xMS0yNyAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IHJlZG8gcnd1c2VyL3JvdXNlciB0byBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGF1dGggdHlwZS4KICAgCjE5OTktMTEtMjcgMDY6MzEgIG1hcnoKCiAgICogYWdlbnQva2VybmVsLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgICAoYWdlbnQva2VybmVsLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaCk6IGZpeCAtciBzd2l0Y2ggdG8gc3VwcmVzcyBlcnJvciBtZXNzYWdlcyBhYm91dCBmYWlsZWQga2VybmVsIGFuZCBhZGQgLXIgdG8gZGVmYXVsdCB0ZXN0aW5nIGNvZGUgc28gJ21ha2UgdGVzdCBjYW4gYmUgcnVuIGJ5IHVzZXIKICAgCjE5OTktMTEtMjYgMTE6MTggIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIC0gZGVmYXVsdF9zdG9yZS5jOiBhbHRob3VnaCByZWFkX2NvbmZpZyBpcyBjYXNlIGluc2Vuc2l0aXZlLCBkc19oYW5kbGVfY29uZmlnCiAgIAl3YXMgbm90LiBBdCB0aGUgc2FtZSB0aW1lIGl0IGZhaWxlZCB0byByZXBvcnQgdGhlIHByb2JsZW0gdGhhdAogICAJaXQgd2FzIGNhbGxlZCBidXQgZGlkbid0IGtub3cgd2hhdCB0byBkby4KICAgCjE5OTktMTEtMjUgMTQ6NTcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzoga2lsbCB5ZXQgYW5vdGhlciBzaWxseSB3YXJuaW5nIGZyb20gZ2NjCiAgIAoxOTk5LTExLTI1IDE0OjU2ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBkZWZhdWx0c19zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX3BhcnNlX2FyZ3MuYzogYWRkIGRlZkNvbW11bml0eQogICAJZGlyZWN0aXZlCiAgIC0gc25tcF9hcGkuaCwgc25tcF9hcGkuYzogYWRkIGVycm9yY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKICAgCjE5OTktMTEtMjUgMTQ6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSB1c21Vc2VyLmM6IG5ldyB1c2VyIGlzIG5vdCBhZGRlZCB1bmxlc3MgYm90aCBhdXRoIGFuZCBwcml2IGlzIHNwZWNpZmllZAogICAJb24gY3JlYXRlVXNlciBkaXJlY3RpdmUKICAgCjE5OTktMTEtMjUgMTQ6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOgoKICAgLSBzbm1wX21pYi5oOiBmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKICAgCjE5OTktMTEtMjUgMTQ6MzIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmgsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgLSBzbm1wX2FwaS5jLCBhZ2VudF90cmFwLmMsIHNubXBfYWdlbnQuYywgc25tcF9taWIuaCwgc25tcF9taWIuYzoKICAgCWZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwogICAKMTk5OS0xMS0yNCAxMTowNyAgbXNsaWZjYWsKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICBGaXggQlVHIzU3IHVzaW5nIDIvMyBvZiBwYXRjaCBzdXBwbGllZCBieSB6YW55QHRyaXEubmV0LgogICAKMTk5OS0xMS0yNCAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGFsbG93IHNlcGVyYXRpb24gb2YgbWFzayB3aXRoIGJvdGggLiBhbmQ6LgogICAKMTk5OS0xMS0yNCAwOToxNiAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBjaGFuZ2UgZWRpdGluZyBvZiBjb25maWcuaCBub3RlLgogICAKMTk5OS0xMS0yNCAwOTowOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaCwKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvdG9vbHMuYwosIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXNtVXNlci5jLAogICAgIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIGxjZF90aW1lLmMsIHNjYXBpLmgsIHRvb2xzLmMsCiAgICAga2V5bWFuYWdldGVzdC5jLCBzY2FwaXRlc3QuYywgY29uZmlnLmgpOgogICAgIC0gZm9yY2UgLS1lbmFibGUtZGV2ZWxvcGVyIGZvciBDVlMgY2hlY2tvdXRzLgogICAgIC0gcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIEtNVC4KICAgCjE5OTktMTEtMjQgMDk6MDMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFJlbGVhc2UgYWxsb2NhdGVkIGluZGV4ZXMgb24gc3ViYWdlbnQgc2h1dGRvd24uCiAgIAoxOTk5LTExLTIzIDA1OjQwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKToKICAgICAtIE1ha2UgaW5kZXggcmVnaXN0cmF0aW9uIEFQSSBtb3JlIGltbWVkaWF0ZWx5IGNvbnZlbmllbnQKICAgICAtIEFzc29jaWF0ZSBzdWNoIHJlZ2lzdHJhdGlvbnMgd2l0aCB0aGUgbWFpbiBzZXNzaW9uCiAgICAgLSBuZXcgcm91dGluZSB0byB1bnJlZ2lzdGVyIGFsbCBpbmRleGVzIGZvciBhIGdpdmVuIHNlc3Npb24KICAgICAtIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBBTlkgaW5kZXggYW5kIE5FVyBpbmRleAogICAgIC0gY2xlYW4gdXAgYXNzb3J0ZWQgY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMTEtMjMgMDU6MjEgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgIE1ha2UgbWFpbiBzZXNzaW9uIHN0cnVjdHVyZSB2aXNpYmxlIHRocm91Z2hvdXQgdGhlIGFnZW50LAogICAgICBhbmQgdXNlIHRoaXMgZm9yIEFnZW50WCBzdWJhZ2VudCBhcyB3ZWxsLgogICAKMTk5OS0xMS0yMyAwMjoyMCAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gc25tcF9hZ2VudC5jOiAjaW5jbHVkZSA8dW5pc3RkLmg+IGZvciBzZWxlY3QgcHJvdG90eXBlCiAgIAoxOTk5LTExLTIzIDAyOjExICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jOgoKICAgLSAoaG9zdC9ocl9zdG9yYWdlLmMgaG9zdC9ocl9zd3J1bi5jKTogR3VhcmQgYWdhaW5zdCBjYWxjdWxhdGlvbiBvdmVyZmxvdwogICAKMTk5OS0xMS0yMyAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLSAoaG9zdC9ocl9zd3J1bi5jKTogRml4IGxpbnV4IHByb2Nlc3MgbWVtb3J5IHVzYWdlIGZpZ3VyZXMuCiAgIAkoUmVwb3J0ZWQgYnkgTWl0Y2ggU2hpZWxkcykKICAgCjE5OTktMTEtMjMgMDE6MjYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGFyZ3VtZW50cyAoaW50ID0+IHNpemVfdCkuIFRoYW5rcyB0bwogICAJQW50aG9ueSBTaGlwbWFuIDxhc2hpcG1hbkBlcmdncm91cC5jb20+CiAgIAoxOTk5LTExLTIzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JUFNFQy1NSUIudHh0OgoKICAgLSBJUFNFQy1NSUIudHh0OiBjaGFuZ2Ugc29tZSB1bmRlcmxpbmVzIGludG8gZGFzaGVzLCBhbmQgcmVwYWlyIHRoZQogICAJOjo9IChtYXliZSBJIHNob3VsZCBoYXZlIGxvb2tlZCBhdCB0aGlzIGZpbGUgYmVmb3JlIGFkZGluZyBpdDotKSkKICAgCjE5OTktMTEtMjMgMDE6MjMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICAtIGlwdjYuaDogcmVtb3ZlIGFuIF9fUCB0aGF0IGhhZCBzbmVha2VkIGluCiAgIAoxOTk5LTExLTIyIDE3OjUyICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IHVwZGF0ZSB0byByZWZsZWN0IG5ldyBhbmQgZWFzaWVyIC5jb25mIG1lY2hhbmlzbXMuCiAgIAoxOTk5LTExLTIyIDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogZml4IGxlbmd0aCBjaGVjayBvZiBrZXkgc3BhY2UuCiAgIAoxOTk5LTExLTIyIDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3ZhY21fdmFycy5jLCBzbm1wdjMvdXNtVXNlci5jCjoKCiAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMpOiBuZXcgY29uZmlnIHRva2VucyBhbGxvd2luZyBlYXN5IHVzZXIgYW5kCiAgICAgdmFjbS91c2VyIGNvbmZpZ3VyYXRpb24gYW5kIHNldHVwLgogICAKMTk5OS0xMS0yMiAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZSBjcmVhdGlvbiBvZiBpbml0aWFsIGFuZCB0ZW1wbGF0ZSogdXNlcnMuCiAgIAoxOTk5LTExLTIyIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB0Y3AuYyk6IFBhdGNoCiAgICAgZnJvbSBHYXJyZXR0IFdvbGxtYW46CiAgICAgLSBGcmVlQlNEIDQueCBmaXhlcy4KICAgCjE5OTktMTEtMjIgMTI6NTMgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oCiwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9hZ2VudF90cmFwLmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NubXB2My5oCjoKCiAgIC0gKjogY2hhbmdlIHRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgY29uZmlnIHBhcnNlciBmdW5jdGlvbnMgdG8gYQogICAJY29uc3Qgc3RyaW5nCiAgIAoxOTk5LTExLTIyIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJL3ZhY21fdmFycy5jLCB1Y2Qtc25tcC9wYXNzLmMKOgoKICAgLSAodmFjbV92YXJzLmMsIHBhc3MuYyk6IGZpeCBvaWQgLT4gY2hhciBjb252ZXJzaW9ucy4KICAgCjE5OTktMTEtMjIgMTI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jCjoKCiAgIC0gKHZtc3RhdC5jLCB2bXN0YXRfZnJlZWJzZDIuYyk6IHVzZSBoZWFkZXJfZ2VuZXJpYyBub3QgaGVhZGVyX3NpbXBsZV90YWJsZQogICAKMTk5OS0xMS0yMiAwOToyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbAo6CgogICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgdGVzdHMgZm9yIG5ldwogICAgIGVycm9yIG1lc3NhZ2VzLgogICAKMTk5OS0xMS0yMiAwOToxNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBob3N0X3Jlcy5oLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIGJzZGkgc3VwcG9ydCBmb3IgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYi4KICAgCjE5OTktMTEtMjIgMDk6MDcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZGVkIG1vcmUgcGVvcGxlIHRvIHRoZSB0aGFua3MgbGlzdC4KICAgCjE5OTktMTEtMjIgMDk6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtICh1c21Vc2VyLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbCBTbGlmY2FrLgogICAKMTk5OS0xMS0yMiAwODoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgLSBBZGRlZCBhYmlsaXR5IHRvIHVzZSBNSUIgdG8gcXVlcnkgdGFibGVzIHdpdGggbm9uLXNlcXVlbnRpYWwgY29sdW1uIE9JRHMuCiAgICAgLSBBZGRlZCBjb2RlIHRvIGhhbmRsZSBzcGFyc2UgdGFibGVzLgogICAKMTk5OS0xMS0yMiAwODoyMSAgbXNsaWZjYWsKCiAgICogd2luMzIvbGliYWdlbnQvLmN2c2lnbm9yZToKCiAgIEFkZCBDVlMgaWdub3JlIGxpc3QgZm9yIHdpbjMyL2xpYmFnZW50LgogICAKMTk5OS0xMS0yMiAwODoyMCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwOgoKICAgUmV0cnkgYWRkIE1TVkMrKyBwcm9qZWN0IGZpbGUuCiAgIAoxOTk5LTExLTIyIDA3OjMwICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIEluZGV4IGRlLWFsbG9jYXRpb24sIGFuZCBBZ2VudFggaW5kZXggc3VwcG9ydC4KICAgCjE5OTktMTEtMjIgMDc6MTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAtIGlwdjYuYzogc29tZSBtb3JlIEFOU0kgcHJvdG90eXBlcwogICAKMTk5OS0xMS0yMiAwNjo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gaXB2Ni5jOiB1cGdyYWRlIHRvIHRoZSBjdXJyZW50IEthbWUgcGF0Y2gKICAgCjE5OTktMTEtMjIgMDU6MzIgIG5iYQoKICAgKiBtaWJzL0lQVjYtVENQLU1JQi50eHQsIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwo6CgogICAtIElQVjYtVENQLU1JQiwgSVBWNi1VRFAtTUlCLCBpcHY2LmMsIHRjcC5jOiBtb3ZlIHRoZSBJUHY2IHRjcCBhbmQgdWRwCiAgIAl0YWJsZXMgdG8gdGhlaXIgcHJvcGVyIHBvc2l0aW9uIGluIHRoZSB0cmVlLCBhY2NvcmRpbmcgdG8gdGhlIFJGQy4KICAgCjE5OTktMTEtMjIgMDU6MjkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIHBhc3MuYzogcmVtb3ZlIGEgY29uc3QgY2FzdGluZyB3YXJuaW5nCiAgIAoxOTk5LTExLTIyIDA1OjI4ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogcmVpbnN0YXRlIHNubXBkIC1hIGZ1bmN0aW9uYWxpdHkKICAgCjE5OTktMTEtMjIgMDU6MjggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgIHNubXBfbG9nZ2luZy5jOiBvbmx5IHRpbWVzdGFtcCBlZnRlciBhIG5ld2xpbmUKICAgCjE5OTktMTEtMjIgMDU6MjcgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbjogY29uZmlndXJlIHRlc3QgZm9yIG5ldGluZXQvaXAuaAogICAKMTk5OS0xMS0xOSAxNToyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBkaXNrLmMsIGRpc2suaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgIC0gbW9uaXRvciBkaXNrIGlub2RlIHBlcmNlbnRhZ2VzLgogICAKMTk5OS0xMS0xOSAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAtIG1ha2Ugc25tcF9zZWxlY3RfaW5mbyBwb3NzaWJseSBoYW5kbGUgYWxhcm0gdGltZXJzLgogICAgIC0gbWFrZSBzbm1wZCB1c2UgdGhlbSBhbmQgY2FsbCBzbm1wX3J1bl9hbGFybXMoKS4KICAgCjE5OTktMTEtMTkgMTM6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGZpeCBtaWIyYy5zdG9yYWdlLmNvbmYuCiAgIAoxOTk5LTExLTE5IDExOjA2ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCk6IFByb3ZpZGUgbWlzc2luZyBpbmRleCBhbGxvY2F0aW9uIGRlZmluZXMuCiAgIAoxOTk5LTExLTE4IDE4OjIwICBtc2xpZmNhawoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfY29uZmlnLmgsIG1pYl9tb2R1bGVfZG90X2NvbmYuaCwKICAgbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgIG1pYl9tb2R1bGVfc2h1dGRvd24uaCwgbGlidWNkbWlicy8uY3ZzaWdub3JlLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLCBzbm1wZC8uY3ZzaWdub3JlLAogICBzbm1wZC9zbm1wZC5kc3A6CgogICBNb3JlIE1TVkMrKyBXaW4zMiBhZ2VudCBmaWxlcywgZ3JhdGlzIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTEtMTggMTg6MTQgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdzoKCiAgIE1vcmUgdG91Y2h1cCBwZXIgTVNWQysrIFdpbjMyIGFnZW50IHdvcmsuCiAgIAoxOTk5LTExLTE4IDE3OjU3ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhcHBzL3NubXBidWxrZ2V0LmMKOgoKICAgQ2hlY2staW4gYWdlbnQgY2hhbmdlcyB0byBzdXBwb3J0IFdpbjMyIGFnZW50IGJ1aWx0IHdpdGggTVNWQysrLgogICBUaGFua3MgdG8gUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xNyAyMTo1MSAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgLSBkZWZhdWx0X3N0b3JlLmM6IGRzX3RvZ2dsZV9ib29sZWFuIG1pc3NlZCBhIG1hc2sKICAgCjE5OTktMTEtMTcgMTM6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IHVwZGF0ZS4gIERlYWxzIHdpdGggUm93U3RhdHVzIG9iamVjdHMgYmV0dGVyLgogICAKMTk5OS0xMS0xNyAxMzowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogdXBkYXRlLgogICAKMTk5OS0xMS0xNyAxMzowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogdXBkYXRlIHRoZSBzbyBMRCBmb3IgbGludXggdG8gJChDQykuCiAgIAoxOTk5LTExLTE3IDExOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYwosIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKGRzX2FnZW50LmgsIGtlcm5lbC5jLCBzbm1wZC5jLCBzbm1wZC4xLmRlZik6CiAgICAgLSBydW4gdGltZSByb290bGVzcyBydW5uaW5nIHN1cHBvcnQgZm9yIHNubXBkLCBieSByZXFlc3Qgb2YgSm9lLiAoLXIpCiAgIAoxOTk5LTExLTE3IDA3OjM2ICBtc2xpZmNhawoKICAgKiB3aW4zMi93aW4zMi5kc3c6CgogICBBZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBzIHRvIGJ1aWxkLgogICAKMTk5OS0xMS0xNyAwNzozNSAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcGJ1bGtnZXQvOiAuY3ZzaWdub3JlLCBzbm1wYnVsa2dldC5kc3A6CgogICBQcm9qZWN0IGZpbGUgZm9yIGJ1aWxkaW5nIHNubXBidWxrZ2V0IHVzaW5nIE1TVkMrKyBncmF0aXMgUm9iZXJ0IFN0b3J5LgogICAKMTk5OS0xMS0xNyAwNTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgUmVwbGFjZSB1X2ludDE2X3Qgd2l0aCBtb3JlIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCB1X3Nob3J0LgogICAKMTk5OS0xMS0xNiAxNDo1NiAgbXNsaWZjYWsKCiAgICogd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBCdWlsZCB3aXRoIGdldG9wdC4KICAgCjE5OTktMTEtMTYgMTQ6NDAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCB3aW4zMi93aW4zMi5kc3csCiAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AKLCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AKLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIE1TVkMgdG91Y2h1cHM6CiAgIEFkZGVkIHNubXB0cmFwZCBwcm9qZWN0IC5EU1AgZmlsZTsgQWxsIC5EU1tQV10gZmlsZXMgQ1ItTEYgbGluZSB0ZXJtaW5hdGVkOwogICBGaXggd2FybmluZ3MgaW4gYXNuMS5jIGFuZCBzbm1wX2FwaS5jOyBSZW1vdmUgdW51c2VkIHZhciBpbiBzbm1wdHJhbnNsYXRlLmMuCiAgIAoxOTk5LTExLTE2IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgdGhlIFQ6IGZsYWcgZm9yIC1UIHRvIGdldG9wdAogICAKMTk5OS0xMS0xNiAxMDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChwcm90b2NvbC5jKTogYWRkIHRoZSBoZWFkZXIgbGVuZ3RoIHRvIHRoZSBwYWNrZXQgbGVuZ3RoIGVzdGltYXRlLgogICAKMTk5OS0xMS0xNiAwOToxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChzbm1wbGliL2FzbjEuYyk6IEZpeCBlbmNvZGluZyBvZiByb290IE9JRHMuCiAgIAoxOTk5LTExLTE2IDA4OjQ4ICBtc2xpZmNhawoKICAgKiBjb25maWcuZ3Vlc3M6CgogICBFbWJyYWNlIGFsbCBIUC05MDAwLzZ4eCw3eHgsIDh4eCBzZXJpZXMgcGxhdGZvcm1zLCB3aXRob3V0IHJlZ3JldHMuCiAgIAoxOTk5LTExLTE2IDA2OjIxICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jOiByZWRvIHRoZSBzbm1wdHJhbnNsYXRlIG9wdGlvbnMKICAgCXRvIGZvbGxvdyB0aGUgY29tbW9uIG9wdGlvbiBzZXQuIElzc3VlIHdhcm5pbmdzIHdoZW4gc29tZW9uZQogICAJdXNlcyB0aGUgb2xkIGZvcm0sIGFkdmlzaW5nIGFib3V0IHRoZSBuZXcuCiAgIAoxOTk5LTExLTE2IDAzOjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIEZpeCBzcGVsbGluZyBtaXN0ZWFrLgogICAKMTk5OS0xMS0xNSAyMTo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmg6CgogICBGaXggYnVnIzc1OiBidWlsZCAtLXdpdGhvdXQtb3BhcXVlLXR5cGVzCiAgIAoxOTk5LTExLTE1IDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBtYXN0ZXIuYywgcHJvdG9jb2wuYywgcHJvdG9jb2wuaCwgc3ViYWdlbnQuYywKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1ha2UgVENQIHN1cHBvcnQgYmV0dGVyIGZvciBhZ2VudHguICBTdGlsbCBoYXMgYSBwcm9ibGVtIChJIGJyb2tlIGFnZW50eCkuCiAgIAoxOTk5LTExLTE1IDE2OjQzICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEb24ndCBhZGQgTlVMTCB2YXJiaW5kIHdoZW4gRU5ET0ZNSUJWSUVXIGlzIHJlYWNoZWQuCiAgIAoxOTk5LTExLTE1IDE1OjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCiAgICAgLSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgVENQIGJyb2tlbiBTTk1QIHBhY2tldHMgYnkgc3RvcmluZyBidWZmZXJzCiAgICAgICBhbmQgZGVhbGluZyB3aXRoIHBpZWNlcyBvZiBpbmNvbWluZyBkYXRhIHRpbGwgd2UgaGF2ZSBhIGZ1bGwgcGFja2V0LgogICAKMTk5OS0xMS0xNSAxNTozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCiAgIAoxOTk5LTExLTE1IDE1OjM1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jLCBzbm1wbmV0c3RhdC9tYWluLmMKOgoKICAgLSAoc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jKToKICAgICAtIGFkZCBkZWZhdWx0X3N0b3JlLmgKICAgCjE5OTktMTEtMTUgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oKTogbmV3IGZ1bmN0aW9uOiBhc25fY2hlY2tfcGFja2V0KCkuCiAgIAoxOTk5LTExLTE1IDE1OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBpbnNlcnRlZC4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IGRvbid0IGNhbGwgc3ViYWdlbnRfcHJlX2luaXQoKS4KICAgCjE5OTktMTEtMTUgMTU6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIHRrbWliOgoKICAgLSAobWliMmMsIHRrbWliKTogcmVtb3ZlIC13LgogICAKMTk5OS0xMS0xNSAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzZXQgdG8gJ1wwJyBpbnN0ZWFkIG9mIE5VTEwgZm9yIC1XYWxsLgogICAKMTk5OS0xMS0xNSAxNToxOSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBtZW1vcnkgaW50IC0+IHVpbnQuCiAgIAoxOTk5LTExLTE1IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jOgoKICAgLSAobWliX21vZHVsZXMuYywgc25tcF92YXJzLmMpOiBtb3ZlIHN1YmFnZW50X3ByZV9pbml0KCkgdG8gaW5pdF9hZ2VudCgpLgogICAKMTk5OS0xMS0xNSAxNToxOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IG5ldyBtaXJyb3IgaW4gQXVzdHJhbGlhLgogICAKMTk5OS0xMS0xNSAxNDowOSAgbmJhCgogICAqIC5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gLmN2c2lnbm9yZTogdXBkYXRlcyB0byBrZWVwIGN2cyBzaWxlbnQgYWJvdXQgZ2VuZXJhdGVkIGZpbGVzLgogICAKMTk5OS0xMS0xNSAxNDowNSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IGEgc3BlbGxpbmcgZXJyb3IgaW4gdGhlIE1JQiByZXBsYWNlbWVudCB0YWJsZS4KICAgCjE5OTktMTEtMTUgMTQ6MDMgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4sIFJGQzEyNzEtTUlCLnR4dCwgUk1PTi1NSUIudHh0CjoKCiAgIC0gbWlicy86IHJlcGxhY2UgUkZDMTI3MS1NSU4udHh0IHdpdGggUk1PTi1NSUIudHh0IChSRkMgMTc1NyB2ZXJzaW9uKQogICAKMTk5OS0xMS0xNSAxNDowMCAgbmJhCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGJ1bGtnZXQuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZ1cnRoZXIgZXJyb3IgY2hlY2tpbmcsIGNvdXJ0ZXN5IG1zbGlmY2FrCiAgICAgc25tcGJ1bGtnZXQuYzogbmVlZHMgI2luY2x1ZGUgPGdldG9wdC5oPiAoVGhhbmtzIHRvIFJvYmVydCBTdG9yeSkKICAgCjE5OTktMTEtMTUgMDg6MjkgIG1zbGlmY2FrCgogICAqIG1hbi9taWJfYXBpLjM6CgogICBGaXggZGVzY3JpcHRpb24gb2YgcmVhZF9vYmppZCByZXR1cm4gdmFsdWUuCiAgIAoxOTk5LTExLTE1IDA3OjU2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGhhbmRsaW5nIG9mIGZhaWxlZCBHRVQvU0VUIHJlcXVlc3RzCiAgIAoxOTk5LTExLTE0IDA2OjMyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBtYWtldGFyZ2V0LAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtaWJzL0lQU0VDLU1JQi50eHQsCiAgIG1pYnMvSVBWNi1JQ01QLU1JQi50eHQsIG1pYnMvSVBWNi1NSUIudHh0LAogICBtaWJzL0lQVjYtVEMudHh0LCBtaWJzL0lQVjYtVENQLU1JQi50eHQsCiAgIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gaXBjNjogQWRkIHRoZSBJUHY2IGNvZGUgZnJvbSB0aGUgS2FtZSBwcm9qZWN0LiBJIGhhdmUgb25seSBtYXNzYWdlZAogICAJaXQgc28gbXVjaCBhcyB0byBzdGlsbCBjb21waWxlIG9uIG5vbi1JUHY2IHN5c3RlbXMsIGFuZCBkZXRlY3QKICAgCUxpbnV4LCBJTlJJQSwgU29sYXJpcyBJUHY2LiBObyBjb2RlIGZvciB0aGVtIHlldC4gT3JpZ2luYWwKICAgCWF1dGhvcjogaXRvanVuQGlpamxhYi5uZXQKICAgCjE5OTktMTEtMTQgMDY6MTUgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIHNubXB0cmFwZC44OiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAogICAKMTk5OS0xMS0xNCAwNjoxMiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAogICAKMTk5OS0xMS0xNCAwMjo0MiAgbmJhCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSBTTk1QdjItQ09ORi50eHQ6IGNvbW1lbnQgb3V0IHRoZSBJTVBPUlQgY2xhdXNlCiAgIAoxOTk5LTExLTE0IDAyOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jLCBzbm1wdHJhbnNsYXRlLmM6IG1vdmUgdGhlIE1JQjppZCBoYW5kbGluZyBpbnNpZGUgcmVhZF9vYmppZCBmb3IKICAgCWNvbnNpc3RlbmN5LiBBbHNvIGZpeGVzIGEgYnVmZmVyIG92ZXJydW4gaW4gbWliLmMKICAgCjE5OTktMTEtMTQgMDI6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIC0gcGFzcy5jLCBzbm1wZC5jb25mLjUuZGVmOiBhZGQgYW4gVU5TSUdORUQgcmV0dXJuIHR5cGUKICAgCjE5OTktMTEtMTQgMDI6MDAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gdmFjbV92YXJzLmM6IGtpbGwgYSB3YXJuaW5nCiAgIAoxOTk5LTExLTE0IDAxOjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIG1pYnMvTWFrZWZpbGUuaW4sCiAgIG1pYnMvU05NUC1DT01NVU5JVFktTUlCLnR4dCwgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0CiwgbWlicy9TTk1QLU1QRC1NSUIudHh0LCBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQKLCBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dCwgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0CiwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIG1pYnMvU05NUHYyLUNPTkYudHh0LAogICBtaWJzL1NOTVB2Mi1TTUkudHh0LCBtaWJzL1NOTVB2Mi1UQy50eHQ6CgogICAtIG1pYnMvKiwgdmFjbV92YXJzLmg6IHVwZGF0ZSB0aGUgbWliIGZpbGVzIHRvIHJmYyAyNTcxLTI1NzUuIEFsc28gYWRkCiAgIAlTTk1QX0NPTU1VTklUWV9NSUIgZnJvbSB0aGUgY29leCBkcmFmdC4KICAgCjE5OTktMTEtMTQgMDE6NTQgIG5iYQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3M6IGNoYW5nZXMgdG8gc3VwcG9ydCBtdWx0aS12YWx1ZWQgb3B0aW9ucwogICAKMTk5OS0xMS0xNCAwMTo1MyAgbmJhCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgbWFuL3NubXBidWxrZ2V0LjEsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gc25tcGJ1bGtnZXQ6IG5ldyB0b29sIHRvIGlzc3VlIGEgc2luZ2xlIEdFVEJVTEsgcmVxdWVzdAogICAKMTk5OS0xMS0xNCAwMTo1MSAgbmJhCgogICAqIG1hbi9zbm1wdGFibGUuMToKCiAgIC0gc25tcHRhYmxlOiBhZGQgaW4gdGhlIGFwcGxpY2F0aW9uIHNwZWNpZmljIHNubXB0YWJsZSBvcHRpb25zIGJldHdlZW4KICAgCXRoZSBub3JtYWwgb3B0aW9ucy4KICAgCjE5OTktMTEtMTQgMDE6NDggIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUsIHNubXBfcGFyc2VfYXJnczogYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHNwZWNpZmljIG9wdGlvbnMgdG8KICAgCjE5OTktMTEtMTIgMTM6MDEgIG1hcnoKCiAgICogc25tcGxpYi86IGxjZF90aW1lLmMsIGxjZF90aW1lLmgsIHNubXB1c20uYzoKCiAgICAobGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogZml4IGVuZ2luZXRpbWUgdXBkYXRlIGFsZ29yaXRobSB0byBjb25mb3JtIHRvIHNwZWMgcmZjMjU3NCAzLjIuNy5iLjEKICAgCjE5OTktMTEtMTIgMDg6NDYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFByb3ZpZGUgYSB1bmlxdWUgSUQgZm9yIGFsbCBpbmNvbWluZyBQRFVzCiAgIAoxOTk5LTExLTExIDIyOjQ5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jOiBhbGlnbm1lbnQgb2Ygb3B0aW9uIGNvZGUuCiAgIAlTb21lIGVuaGFuY2VtZW50cyB0byB0aGUgc25tcHRyYW5zbGF0ZSAtZCBvdXRwdXQuCiAgIAoxOTk5LTExLTExIDIyOjE0ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gc25tcGNtZC4xOiB1cGRhdGUgbWFuIHBhZ2UgdG8gY29ycmVzcG9uZCB0byB0aGUgbmV3IGdldG9wdCBzaXR1YXRpb24KICAgCU5vdGU6IGV2ZW4gdGhvdWdoIHNvbWUgb3B0aW9ucyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoaXMKICAgCXBhZ2UsIHRoZXkgc3RpbGwgd29yayEKICAgCjE5OTktMTEtMTEgMDM6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gKGFnZW50eC9jbGllbnQuYyk6IFNpbGx5IHR5cG8gaW4gc3RhcnQgdGltZSBzeW5jaHJvbmlzYXRpb24KICAgCjE5OTktMTEtMTAgMjI6MTAgIG5iYQoKICAgKiB3aW4zMi86IC5jdnNpZ25vcmUsIGVuY29kZV9rZXljaGFuZ2UvLmN2c2lnbm9yZSwKICAgbGlic25tcC8uY3ZzaWdub3JlLCBsaWJzbm1wL2xpYnNubXAucGxnLAogICBsaWJzbm1wX2RsbC8uY3ZzaWdub3JlLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsCiAgIHNubXBidWxrd2Fsay8uY3ZzaWdub3JlLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywKICAgc25tcGRlbHRhLy5jdnNpZ25vcmUsIHNubXBkZWx0YS9zbm1wZGVsdGEucGxnLAogICBzbm1wZ2V0Ly5jdnNpZ25vcmUsIHNubXBnZXQvc25tcGdldC5wbGcsCiAgIHNubXBnZXRuZXh0Ly5jdnNpZ25vcmUsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywKICAgc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwgc25tcHNldC8uY3ZzaWdub3JlLAogICBzbm1wc2V0L3NubXBzZXQucGxnLCBzbm1wc3RhdHVzLy5jdnNpZ25vcmUsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0YWJsZS8uY3ZzaWdub3JlLAogICBzbm1wdGVzdC8uY3ZzaWdub3JlLCBzbm1wdGVzdC9zbm1wdGVzdC5wbGcsCiAgIHNubXB0cmFuc2xhdGUvLmN2c2lnbm9yZSwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZwosIHNubXB0cmFwLy5jdnNpZ25vcmUsIHNubXB0cmFwL3NubXB0cmFwLnBsZywKICAgc25tcHRyYXBkLy5jdnNpZ25vcmUsIHNubXB1c20vLmN2c2lnbm9yZSwKICAgc25tcHdhbGsvLmN2c2lnbm9yZSwgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSB3aW4zMi8qOiBjbGVhbiB1cCByZXBvc2l0b3J5IGZpbGVzLCBhbmQgYWRkIHByb3BlciAuY3ZzaWdub3JlIGZpbGVzCiAgIAoxOTk5LTExLTEwIDE1OjI5ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wd2Fsay5jLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnLAogICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwOgoKICAgLSBhcHBzLyo6IGNoYW5nZXMgZm9yIGdldG9wdCB1c2FnZSwgYW5kIHJld29ya2luZyBvZiBzbm1wX3BhcnNlX2FyZ3MKICAgCjE5OTktMTEtMTAgMTI6MjAgIG5iYQoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgLSB3aW4zMi8qLmRzcDogeWV0IGFub3RoZXIgcm91bmQgb2YgbWFraW5nIHRoaXMgY3JhcCB3b3JrCiAgIAoxOTk5LTExLTEwIDA4OjU5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IEFnZW50WCBub3RpZnkgc3VwcG9ydAogICAKMTk5OS0xMS0xMCAwODo1OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50L2FnZW50X3RyYXAuW2NoXSk6IG1pbm9yIHJlLXN0cnVjdHVyZSB0byBhbGxvdyBzdWJhZ2VudCB0cmFwICJzaW5rcyIKICAgCjE5OTktMTEtMTAgMDg6NTcgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jKTogT25seSBzZXQgdXAgdHJhcCBzaW5rcyBvbiB0aGUgbWFzdGVyIGFnZW50CiAgIAoxOTk5LTExLTEwIDA4OjMxICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIC0gd2luMzIvKjogVkMrKyBwcm9qZWN0IHVwZGF0ZXMKICAgCjE5OTktMTEtMTAgMDg6MzAgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgc25tcGdldC9zbm1wZ2V0LnBsZywgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5wbGc6CgogICAtIHdpbjMyLyo6IGZpeGVzIHRvIHRoZSBWQysrIGJ1aWxkIHByb2plY3RzCiAgIAoxOTk5LTExLTA5IDIzOjMwICBuYmEKCiAgICogc25tcGxpYi9nZXRvcHQuaDoKCiAgIC0gZ2V0b3B0Lmg6IGFyZ3VtZW50cyB0byBnZXRvcHQgZGlkIG5vdCBtYXRjaCB0aG9zZSBpbiBnZXRvcHQuYwogICAKMTk5OS0xMS0wOSAyMjoyMCAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAuIHNubXBfcGFyc2VfYXJncy5jOiBhIGdsaXRjaCBpbiB0aGUgY29udmVyc2lvbiB0byBnZXRvcHQgKHRoYW5rcyB0bwogICAJZHJpZWh1aXNAcGxheWJlaW5nLm9yZykKICAgCjE5OTktMTEtMDkgMTU6MTUgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9nZXRvcHQuYywKICAgc25tcGxpYi9nZXRvcHQuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIub3B0LAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAucGxnLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywKICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5wbGcKOgoKICAgLSB2YXJpb3VzOiBhZGFwdCB0b29scyB0byB1c2UgZ2V0b3B0IChhbmQgcHV0IG9uZSBpbiBmb3IgV2luMzIpCiAgIAoxOTk5LTExLTA5IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBERU1PLU1JQi4KICAgCjE5OTktMTEtMDkgMTM6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMsIHZhY21fdmFycy5oOgoKICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oKTogc2ltcGxlIG5ldyAuY29uZiB0b2tlbnM6IHJvY29tbXVuaXR5LCByd2NvbW1pdHkuCiAgIAoxOTk5LTExLTA5IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IHJlcXVpcmUgdGhlIERFTU8tTUlCIChqdXN0IGZvciB0dXRvcmlhbCBwdXJwb3NlcykuCiAgIAoxOTk5LTExLTA5IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCAtSC4KICAgCjE5OTktMTEtMDkgMTI6NTkgIG5iYQoKICAgKiB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gc25tcHRyYXBkLmMsc25tcHRyYXBkX2hhbmRsZXJzLmM6IG1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysgNS4wCiAgIAkoYnV0IG5vIGhhbmRsZXJzICh5ZXQpKQogICAKMTk5OS0xMS0wOSAwMTo1MCAgbmJhCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jLAogICBwYXJzZS5oOgoKICAgLSBtaWIuYyxwYXJzZS5jOiBtYWtlIGVycm9yIHJlcG9ydGluZyBpbiBwYXJzZXIgd29yayBhY2NvcmRpbmcgdG8gc3BlYyAoLVBlKQogICAJc2hvdyBkZWZpbmluZyBtb2R1bGVzIGluIHNubXB0cmFuc2xhdGUgLWQKICAgCXVzZSBkc190b2dnbGVfYm9vbGVhbgogICAKMTk5OS0xMS0wNSAwNjoyMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICBTYXkgZ29vZGJ5ZSB0byBTTk1QX01BTExPQywgbWFsbG9jX3plcm8sIHhjYWxsb2MsIHhtYWxsb2MsIGFuZCB4c3RyZHVwLgogICBSZXNwZWN0aXZlbHkgcmVwbGFjZWQgd2l0aCBjYWxsb2MsIGNhbGxvYywgY2FsbG9jLCBtYWxsb2MsIGFuZCBzdHJkdXAuCiAgIAoxOTk5LTExLTA0IDEzOjQzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgU3BlZWQgdXAgc3ByaW50X3ZhcmlhYmxlOiBoYWx2ZSB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGdldF9zeW1ib2wuCiAgIAoxOTk5LTExLTA0IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IG1vdmUgLXEgZmxhZ3MgdG8gLU8uCiAgIAoxOTk5LTExLTA0IDEwOjE5ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgd2luMzIvY29uZmlnLmg6CgogICBSZWRvIEZyZWVCU0QgNC4wOiBkZWZpbmUgZnJlZWJzZDMgaW4gcy9mcmVlYnNkNC5oOyByZWR1Y2UgImRlZmluZSIgdGhyYXNoaW5nLgogICAKMTk5OS0xMS0wNCAxMDowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiBpbmNsdWRlIGhlYWRlcnMgZm9yIGNvbXBpbGF0aW9uIGZvciBib3RoIGludGVybmFsIGFuZAogICAgIGV4dGVybmFsIHRvIHRoZSB1Y2Qtc25tcCBzb3VyY2UuCiAgIAoxOTk5LTExLTA0IDEwOjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMpOgogICAgIC0gZGVmaW5lIElOX1VDRF9TTk1QX1NPVVJDRSBpbiBjb25maWcuaCBidXQgbm90IGluIHVjZC1zbm1wLWNvbmZpZy5oLgogICAgIC0gbW92ZSB1Y2Qtc25tcC1jb25maWcuaCB1cCBpbiB0aGUgYnVpbGQgb3JkZXIgYmVmb3JlIHN1YmRpcnMuCiAgICAgLSBNYWtlIGRlZmF1bHQgTUlCRElSUyBzZWFyY2ggcGF0aCBpbmNsdWRlICRIT01FLy5zbm1wL21pYnMuCiAgICAgLSBNYWtlIE1JQkRJUlMgcGFyc2luZyBoYW5kbGUgJEhPTUUgdmFyaWFibGVzIGluIGl0LgogICAKMTk5OS0xMS0wNCAwNToxMiAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBwYXNzIHN1cHBvcnQgZm9yIEZyZWVCU0QgNC4wIFtwcm9ibGVtcyB3aXRoIHByb2MgdGFibGUgbG9va3Vwc10uCiAgIAoxOTk5LTExLTA0IDA0OjMzICBtc2xpZmNhawoKICAgKiBBR0VOVC50eHQ6CgogICBDaGFuZ2UgZXhhbXBsZSBhd2F5IGZyb20gU1REQ19IRUFERVJTLgogICAKMTk5OS0xMS0wNCAwNDoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgbWliZ3JvdXAvbWliSUkvYXQuYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIG1pYmdyb3VwL21pYklJL3RjcC5jLAogICBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMKLCBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIE1vcmUgU1REQ19IRUFERVJTIGNsZWFudXA6IHVzZSBIQVZFX1NUUklOR19ILCBIQVZFX1NURExJQl9IIGluc3RlYWQuCiAgIAoxOTk5LTExLTA0IDAyOjQyICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBQYXRjaCB0byBidWlsZCBCU0QvT1MgNC4wLjE7IGZyb20gQmVydCBEcmllaHVpcyAtLSBkcmllaHVpc0BwbGF5YmVpbmcub3JnCiAgIAoxOTk5LTExLTAzIDEzOjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgRml4IGJ1aWxkIHByb2JsZW0gb24gTGludXggUmVkSGF0IDYuMDoga2V5IG9mZiBHTlVfTElCUkFSWSB2YWx1ZS4KICAgCjE5OTktMTEtMDMgMTM6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMKLCB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMKLCB1Y2Qtc25tcC9wYXNzLmMsIHVjZC1zbm1wL3Byb2MuYywKICAgdWNkLXNubXAvcHJvYy5oOgoKICAgRm9sbG93aW5nIGNhbGwgdG8gZmRvcGVuIChuZWFyIGdldF9leGVjX291dHB1dCksIGRvIG5vdCBjbG9zZShmZCkuCiAgIAoxOTk5LTExLTAzIDA2OjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBOZWFyIGxpbmUgNjYzOiBjbG9zZShmZCkgYmVmb3JlIGludm9raW5nIHdhaXRfb25fZXhlYwogICAKMTk5OS0xMS0wMyAwNjoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgZGVjbGFyZSBmaW5kX2Jlc3RfdHJlZV9ub2RlIGZvciBNU1ZDIGJ1aWxkLgogICAKMTk5OS0xMS0wMiAxNTo0NiAgbXNsaWZjYWsKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBzbm1wX2FnZW50X2FwaS4zCiAgIAoxOTk5LTExLTAyIDE1OjM2ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHdpbjMyL2NvbmZpZy5oOgoKICAgVXNlIEhBVkVfU1REQVJHX0ggd2hlbiBkZWNpZGluZyB0byB1c2UgdmFyYXJncyB2cyBBTlNJLUMgcHJvdG90eXBlcy4KICAgCjE5OTktMTEtMDIgMDk6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgb3RoZXIgaGVhZGVyIGZpbGVzIG5lZWRlZCBieSBTTk1QLnBtLgogICAKMTk5OS0xMS0wMSAxMzoxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXBfYWxhcm0uYyk6CiAgICAgLSBkb24ndCBicmVhayBvaWRzIGludG8gcGllY2VzIGlmIHF1aWNrX3ByaW50IGlzIHR1cm5lZCBvbi4KICAgICAtIGRpdHRvIGlmIHRoZSBuZXcgZGVmYXVsdF9zdG9yZSBvcHRpb24gaXMgdHVybmVkIG9uLgogICAgIC0gbWFkZSBhIGRlZmF1bHRfc3RvcmUgb3B0aW9uIHRvIG5vdCB1c2Ugc2lnYWxybSBmb3Igc25tcF9hbGFybXMuCiAgIAoxOTk5LTEwLTI5IDE5OjU0ICBtYXJ6CgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMpOiBtYWtlIGVuZ2luZUlEIHNldHVwIGNvbmRpdGlvbmFsIG9uIGFwcCB0eXBlIHRvIHByZXZlbnQgYXBwcyBmcm9tIGVhc2lseSBlbmRpbmcgdXAgd2l0aCB0aGUgc2FtZSBlbmdpbmVJRCBhcyBhZ2VudCBvbiBzYW1lIGhvc3QKICAgCjE5OTktMTAtMjkgMTY6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBtYWtlIGl0IGRvIHNubXB2My4gIEFkZGVkIG1hbnkgdGhpbmdzIHRvIHRoZSBvcHRpb25zIG1lbnUuCiAgIAoxOTk5LTEwLTI5IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgZGVmYXVsdF9zdG9yZS4zeywuaH0KICAgCjE5OTktMTAtMjkgMTA6MTUgIGhhcmRha2VyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmg6CgogICAtKGRlZmF1bHRfc3RvcmUuM3ssLmh9KTogcmVtb3ZlZCBmcm9tIENWUyBzaW5jZSB0aGV5IGFyZSBidWlsdAogICAKMTk5OS0xMC0yOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1UIGFuZCAtcVtvZV0KICAgCjE5OTktMTAtMjkgMTA6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAtIHNubXAgb3ZlciBUQ1Agb3B0aW9uczogLVQgVENQLgogICAgIC0gbmV3IHF1aWNrIHByaW50IG9wdGlvbnM6IC1xbyAtcWUgZm9yIG51bWVyaWMgb2lkcyBhbmQgZW51bXMuCiAgIAoxOTk5LTEwLTI5IDA5OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiB0d28gbmV3IHByaW50aW5nIG9wdGlvbnM6CiAgICAgLSBwcmludE51bWVyaWNPaWRzCiAgICAgLSBwcmludE51bWVyaWNFbnVtcwogICAKMTk5OS0xMC0yOSAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCB2YXJfc3RydWN0LmggYW5kIGFnZW50X3JlYWRfY29uZmlnLmgKICAgCjE5OTktMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IGFkZGVkIHJlZmVyZW5jZSB0byBhbiBhYm92ZSBxdWVzdGlvbiBmb3IgcGVybCBpbnN0YWxsYXRpb24uCiAgIAoxOTk5LTEwLTI5IDA4OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogUGF0Y2ggZnJvbSBLZWl0aCBUdXNvbjoKICAgICAtIG1pc2MgZml4ZXMuCiAgIAoxOTk5LTEwLTI4IDA2OjQ5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVwaHJhc2Ugc3VidHJlZSBub3QgZm91bmQgY29kZSBpbiBfZ2V0X3N5bWJvbC4KICAgCjE5OTktMTAtMjggMDU6MjUgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmg6CgogICBPb3BzISByZXN0b3JlIHZlcnNpb24gcjEuMTMxLgogICAKMTk5OS0xMC0yOCAwNToyMyAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgd2luMzIvY29uZmlnLmg6CgogICB1X2ludDgvMTYvMzJfdCB0eXBlcyBubyBsb25nZXIgbmVlZGVkIGZvciBXSU4zMiBidWlsZHMuCiAgIAoxOTk5LTEwLTI4IDA0OjU1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBEYXZlJ3MgY29tbWVudCBhYm91dCBwcmVfcGFyc2UgZXRjLiB3YXMgdG9vIGdvb2QgdG8gbG9zZSBpbiBlLW1haWwuCiAgIAoxOTk5LTEwLTI3IDE3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogd2F0Y2ggZm9yIG51bGwgY29tbXVuaXRpZXMgd2hlbiBwcmludGluZyBkZWJ1ZyBzdGF0ZW1lbnRzLgogICAKMTk5OS0xMC0yNyAxNzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogYmFpbCBpZiB3ZSBjYW4ndCBmaW5kIGFuIGluZGV4IGluIHRoZSBtaWIgdHJlZSB0byB1c2UgZm9yCiAgICAgYnJlYWtpbmcgYW4gb2lkIGFwYXJ0LgogICAKMTk5OS0xMC0yNyAxNzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZGVkIG1vcmUgaW5jbHVkZSBmaWxlcy4KICAgCjE5OTktMTAtMjcgMTQ6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGQgZGVmYXVsdF9zdG9yZS5oIGFuZCBzbm1wX2xvZ2dpbmcuaAogICAKMTk5OS0xMC0yNyAxNDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5oOgoKICAgLSAobGNkX3RpbWUuaCk6IGRlZmluZSBhbmQgY29tbWVudCBMQ0RfVElNRV9TWU5DX09QVCBiZXR0ZXIuCiAgIAoxOTk5LTEwLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgLSBtYXJrIHJlZ2lvbnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHRfc3RvcmUuMyBtYW51YWwgcGFnZS4KICAgCjE5OTktMTAtMjcgMTQ6MzYgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMsCiAgIGRlZmF1bHRfc3RvcmUuMy5ib3QsIGRlZmF1bHRfc3RvcmUuMy5oLAogICBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zOgoKICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgICBkZWZhdWx0X3N0b3JlLjMuaCwgZGVmYXVsdF9zdG9yZS4zLnRvcCwgc25tcF9hZ2VudF9hcGkuMyk6CiAgICAgLSBuZXcgbWFudWFsIHBhZ2VzOiBkZWZhdWx0X3N0b3JlLjMsIHNubXBfYWdlbnRfYXBpLjMuCiAgIAoxOTk5LTEwLTI3IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChtYXN0ZXJfYWRtaW4uYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc28geW91IGNhbiB3YXRjaCBzdHVmZiByZWdpc3Rlci4KICAgCjE5OTktMTAtMjcgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIChNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIGEgaGVhZGVyIGZpbGUgdG8KICAgICB3cmFwIGFyb3VuZCB0aGUgdmFyaW91cyBhZ2VudCBpbmNsdWRlIGZpbGVzLgogICAKMTk5OS0xMC0yNyAxNDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5oKTogcHJvdG90eXBlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCiAgIAoxOTk5LTEwLTI3IDE0OjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IHVwIHVjZC1zbm1wLWNvbmZpZy5oIGJ1aWxkaW5nLgogICAKMTk5OS0xMC0yNiAxMDozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQWxsb3cgdW5zaWduZWQgcmFuZ2UgZm9yIGNvdW50ZXIvZ2F1Z2UvdGltZXRpY2tzIChmaXggQlVHIzg0IHBlciBTYW5kZXIgU3RlZmZhbm4pLgogICAKMTk5OS0xMC0yNSAxNjowNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYywgcGFyc2UuYyk6IGhhY2sgdG8gZG8gd2lsZCBjYXJkIHNlYXJjaGVzIGZvciBhIG1pYiBub2RlLgogICAKMTk5OS0xMC0yNSAxNDozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBlbmFibGUgLXAgcHJpbnRpbmcgb2Ygb25seSBhIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlLgogICAKMTk5OS0xMC0yNSAxNDoxMiAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAuYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jCiwgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKjogY29uZmlndXJlIHN1cHBvcnQgZm9yIGRtYWxsb2MgbWFsbG9jIGRlYnVnZ2VyICh3d3cuZG1hbGxvYy5jb20pCiAgIAoxOTk5LTEwLTI1IDE0OjA4ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIHNubXBkLmNvbmYuNS5kZWY6IG1pbm9yIHF1aXJrCiAgIAoxOTk5LTEwLTI1IDE0OjA3ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gc25tcGRlbHRhLmM6IENPVU5URVI2NCB3aWxsIGRlcmVmZXJlbmNlIGZyZWVkIHBvaW50ZXIKICAgCjE5OTktMTAtMjUgMTM6NTYgIG5iYQoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaAosIGV2YWxfdG9vbHMuc2g6CgogICAtIFJVTlRFU1RTLCBURVNUQ09ORi5zaCBldmFsX29uZXNjcmlwdC5zaCBldmFsX3Rvb2xzLnNoOiBzdXBwb3J0IG5vbi1iYXNoCiAgIAlzaGVsbHMgKGVjaG8gLW4gdnMgZWNobyBcXGMpLiBEb24ndCByZXF1aXJlIC4gaW4gUEFUSAogICAKMTk5OS0xMC0yNSAxMzo0MCAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtIGNvbmZpZ3VyZS5pbiwgcHJvYy5jOiBzdXBwb3J0IGZvciBGcmVlQlNEIDIuMSB3aGVyZSBwcyBkb2Vzbid0IGhhdmUgYyBmbGFnCiAgIAoxOTk5LTEwLTI1IDEzOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBMaW51eCBwYXJ0CiAgIAoxOTk5LTEwLTI1IDA4OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWliLmMsIHNjYXBpLmM6CgogICBtaW5vciByZXdvcmsgdG8gY2xhcmlmeSBzaWduZWQgY29tcGFyZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMTk5OS0xMC0yNCAwODoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBwcmVtaWIgZGlyZWN0aXZlcyB3ZXJlbid0IGdldHRpbmcgcmVhZCBkdWUgdG8gYSBtaXNzaW5nIG5lZ2F0aW9uICghKS4KICAgICAtIG1vcmUgcGFyc2luZyBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KICAgCjE5OTktMTAtMjQgMDg6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGZpeCAibWlicyIgYW5kICJtaWJkaXJzIiAuY29uZiBkaXJlY3RpdmVzIHRvIHByb3Blcmx5CiAgICAgaGFuZGxlIG11bHRpcGxlIGNhbGxzIChhZGRpdGl2ZSkgYW5kICcrJ3MgYW5kIHRoaW5ncy4KICAgCjE5OTktMTAtMjQgMDg6MjQgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICAtIChSRUFETUUuc25tcHYzKTogdHlwby4KICAgCjE5OTktMTAtMjQgMDg6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBTTk1QQ09ORlBBVEggdXNlcyBzeXNjb25mZGlyIG5vdCBkYXRhZGlyLgogICAKMTk5OS0xMC0yMiAxNToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogcHJpbnQgc3RyaW5nIGJhc2VkIE9JRHMgYmV0dGVyLgogICAKMTk5OS0xMC0yMiAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaAosIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwga2V5dG9vbHMuYywKICAgICBrZXl0b29scy5oLCBzY2FwaS5jKToKICAgICAtIHVzZSBvcGVuc3NsIGZvciBtZDUvc2hhIHN1cHBvcnQgKGZyb20gT2xhZnVyIEd1ZG11bmRzc29uKS4KICAgCjE5OTktMTAtMjIgMTA6MTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEaXNwbGF5IF9zb21lXyBvY3RldCBzdHJpbmcgaW5kaWNlcyBvZiBvYmplY3QgaWRlbnRpZmllcnMgYXMgcXVvdGVkIHByaW50YWJsZS4KICAgU2hvdWxkIGJlIGV4cGFuZGVkIHRvIGhhbmRsZSBvdGhlciBJTkRFWCB0eXBlcy4KICAgCjE5OTktMTAtMjIgMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGVuYWJsZSBoZXggc3RyaW5ncyBpbnNpZGUgb2lkcy4KICAgCjE5OTktMTAtMjIgMDc6MzkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmVkIGR1cGxpY2F0ZWQgdmFyaWFibGUgaW4gYSBuZXN0ZWQgYmxvY2suIEFSZyEKICAgCjE5OTktMTAtMjIgMDY6MjkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEZpeCBCVUcgIzgzLgogICAKMTk5OS0xMC0yMSAxMjo1NCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSBtZW1vcnlfc29sYXJpczIuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCiAgIAoxOTk5LTEwLTIxIDEyOjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbWFsbCBwYXRjaCBmcm9tIE0uIExhdWtrYW5lbiB0byBmaXggSFAgYUNDIGJ1aWxkLgogICAKMTk5OS0xMC0yMSAxMjowOSAgbXNsaWZjYWsKCiAgICogbWFuLzogc25tcF9hcGkuMywgc25tcF9zZXNzX2FwaS4zLCBzbm1wZC4xLmRlZgosIHNubXBuZXRzdGF0LjEsIHNubXB0ZXN0LjE6CgogICBGaXggQlVHIzc4CiAgIAoxOTk5LTEwLTIxIDEwOjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgdXNlIHNubXBfb3Blbl9leC4KICAgCjE5OTktMTAtMjEgMTA6NDEgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYwosIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jCiwgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgIHNubXB1c20uYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgcmVtaW5kZXJzIGZvciBzbm1wX3Nlc3NfcGVycm9yIHVzYWdlIGFmdGVyIG9wZW4uCiAgIHNubXB0YWJsZS5jIC0gb3Blbi9jbG9zZSBzZXNzaW9uIGZyb20gbWFpbigpLgogICBuZXRzdGF0L21haW4uYyAtIHVzZSBzbm1wX3Nlc3NfcGVycm9yLgogICAKMTk5OS0xMC0yMSAxMDozOSAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBjb25maWcuaCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgRml4dXBzIGZvciBidWlsZGluZyB3aXRoIE1TVkMrKy4gKG5vIGhwdXguYywgc3VwcGx5IE1BWF9QRVJTSVNURU5UX0JBQ0tVUFMpLgogICAKMTk5OS0xMC0yMSAxMDozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jCiwgc25tcF9hcGkuaDoKCiAgIG1pYi5jIC0gcmVzdG9yZSBsaW5lIHN0b21wZWQgaW4gbXkgbGFzdCB1cGRhdGUuCiAgIHJlYWRfY29uZmlnLmMgLSBkcm9wIHVudXNlZCB2YXJpYWJsZS4KICAgc25tcF9hcGkuYyAtIG5ldyBtZXRob2Qgc25tcF9vcGVuX2V4IHJlcGxhY2VzIHNldCBpbnRlcm5hbCBob29rIGZ1bmN0aW9ucy4KICAgCjE5OTktMTAtMjEgMTA6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3IgZnJvbSB3aXRoaW4gdGhlIGxpYnJhcnkuCiAgIAoxOTk5LTEwLTIxIDEwOjIwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTm90ZSAgU05NUEVSUl9VTktOT1dOX09CSklEIGVycm9yIHdpdGhvdXQgc3BlY2lmeWluZyBzbm1wX2Vycm5vIF9vdXRzaWRlXyB0aGUgbGlicmFyeS4KICAgCjE5OTktMTAtMjEgMTA6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGVuYWJsZSBvaWRuYW1lLiJoaSIuJ3RoZXJlJyBpbiBnZXRfbW9kdWxlX25vZGUoKSBhcyB3ZWxsLgogICAKMTk5OS0xMC0yMCAxODowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZCBwYXJzZXIgdG8gaGFuZGxlIHNpbXBsZSBlbWJlZGRlZCBzdHJpbmdzIGluIG9pZHMKICAgICBhbmQgdG8gdHJhbnNsYXRlIHRoZW0gaW50byBvaWQgc2VnbWVudHMuCiAgICAgRUc6IC4xLjMuXCJoZWxsb1wiLlwnaGlcJyAtPiAuMS4zLjUuMTA0LjEwMS4xMDguMTA4LjExMS4xMDQuMTA1CiAgIAoxOTk5LTEwLTIwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHBhcnNlZCBzdHJpbmdzIGZyb20gb2lkJ3MgaW5jbHVkZSBudWxsIHRlcm1pbmF0b3JzLgogICAKMTk5OS0xMC0xNSAwNzowOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGRlZmF1bHRfc3RvcmUuYzoKCiAgIC0oZGVmYXVsdF9zdG9yZS5jLCBjYWxsYmFjay5jKSBmaXgKICAgYnVnIGluIGFycmF5LWJvdW5kYXJ5IGNoZWNrIGluIHNubXBsaWIvY2FsbGJhY2suYwogICByZXBvcnRlZCBieSBCZXJ0IEhvbHN0ZWluIDE1IE9jdCAxOTk5LgogICAKMTk5OS0xMC0xMyAwNzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBtaWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgLSBtYXN0ZXJfYWRtaW4uYywgc3lzdGVtX21pYi5oOiBpbmNsdWRlcyBmb3IgcHJvdG90eXBlcwogICAKMTk5OS0xMC0xMyAwMzo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG8gZm9yIHNhdmVfcGVyc2lzdGVudC4KICAgCjE5OTktMTAtMTIgMDY6MDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlZmluZSBhZGRyZXNzIGxlbmd0aCBmb3IgRnJlZUJTRCBwbGF0Zm9ybS4KICAgCjE5OTktMTAtMTIgMDU6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBtaWIuYzoKCiAgIG1pYi5jOiBxdWlja19wcmludCBpcyBleHBvc2VkIGZvciBDTVVfQ09NUEFUSUJMRSBidWlsZHMuCiAgIGxjZF90aW1lLmM6IGNvbW1lbnRlZCB1bnVzZWQgZHVtcF9ldGltZWxpc3RfZW50cnkgdW5kZXIgU05NUF9URVNUSU5HX0NPREUuCiAgIAoxOTk5LTEwLTA3IDA5OjAxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYywgc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IE5vdGlmaWNhdGlvbiBzdXBwb3J0CiAgIAoxOTk5LTEwLTA3IDA4OjQyICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oOgoKICAgLSAoYWdlbnRfdHJhcC5bY2hdKTogSW1wcm92ZSBhY2Nlc3NpYmlsaXR5IGZvciBzdWJhZ2VudHMKICAgCjE5OTktMTAtMDcgMDc6MjYgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmgsIHNubXBkLmg6CgogICAtIChhZ2VudF90cmFwLmMgYWdlbnRfdHJhcC5oIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcGQuaCk6CiAgICAgLSAgUmUtd3JpdGUgb2YgYWdlbnQgdHJhcCBoYW5kbGluZzoKICAgCVByb3Zpc2lvbiBmb3IgdjEgdHJhcHMgd2l0aCB2YXJiaW5kcwogICAJQ29uc29saWRhdGUgdjEgYW5kIHYyIHRyYXAgc2luayBsaXN0cwogICAJUHJlbGltaW5hcnkgSU5GT1JNIHN1cHBvcnQKICAgCjE5OTktMTAtMDYgMTY6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAtIFNhdmUgYW5kIHBhcnNlIG9sZGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcyB0byBtYWtlIHN1cmUgZGF0YSBpcwogICAgICAgbm90IGxvc3QgZHVyaW5nIHN0b3JhZ2UgY3Jhc2hlcy4KICAgICAtIEZpeCBTTk1QdjMgZW5naW5lSUQgcHJvYmVzOiBQRFUncyBhcmUgYWxsb3dlZCB0byBoYXZlIGEgTlVMTCB2YXJiaW5kbGlzdC4KICAgCjE5OTktMTAtMDYgMDg6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICAtIChmaXhwcm9jKTogbmV3IGNvbW1lbnRlZCB2ZXJzaW9uLgogICAKMTk5OS0xMC0wNSAyMjoyMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBzdWJhZ2VudC5jOiBpbmNsdWRlIHN5c3RlbS5oIGZvciBwcm90b3R5cGUgZm9yIGNhbGN1bGF0ZV90aW1lX2RpZmYKICAgCjE5OTktMTAtMDUgMjI6MTggIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZml4ZXMgdG8gcmVwb3J0IGludmFsaWQgZW5naW5lSWQKICAgCjE5OTktMTAtMDUgMjE6NDkgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIC0gc25tcF9kZWJ1Zy5oOiBtYWtlIHRoZSBERUJVRyogbWFjcm9zIHNhZmUgZm9yIHVzZSBpbiBjb21wb3VuZCBzdGF0ZW1lbnRzCiAgIAoxOTk5LTEwLTA1IDA3OjIzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfcmVxdWVzdC5jLCBzdWJhZ2VudC5jCjoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKTogV29ya2luZyBTRVQgc3VwcG9ydAogICAKMTk5OS0xMC0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGFkZGVkIGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnkoKS4KICAgCjE5OTktMTAtMDQgMTM6NTIgIG5iYQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIC0gc3ViYWdlbnQuaCwgc3ViYWdlbnQuYywgbWliX21vZHVsZXMuYzogcHJlX2luaXRfc3ViYWdlbnQgY29uZnVzZXMKICAgCWNvbmZpZ3VyZSBpbnRvIGJlbGlldmluZyB0aGVyZSBpcyBhIGluaXRfc3ViYWdlbnQgZnVuY3Rpb24uCiAgIAlSZW5hbWUgdG8gc3ViYWdlbnRfcHJlX2luaXQKICAgCjE5OTktMTAtMDQgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzU2VydmljZXMgY29uZmlndXJhYmxlLgogICAKMTk5OS0xMC0wNCAxMzozOCAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oCjoKCiAgIC0gdmFyaW91czogaW5jbHVkZSBhZGRpdGlvbnMgYW5kIGZpeGVzIHRvIGtpbGwgd2FybmluZ3MKICAgCjE5OTktMTAtMDQgMTE6NTIgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY29uZmlndXJlLmluOglyZW1vdmUgLXBlZGFudGljIGZyb20gLS13aXRoLWRldmVsb3BlciwgYW5kIHRoZSBzeXN0ZW0gaGVhZGVycwogICAJYXJlIG5vdCBwcmVwYXJlZCBmb3IgaXQgKGF0IGxlYXN0IG9uIExpbnV4IGFuZCBOZXRCU0QpCiAgIAoxOTk5LTEwLTA0IDExOjUwICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICAtIE1ha2VmaWxlLmluOglhbHdheXMgdXNlICQoTUFLRSkgZm9yIG1ha2UgaW4gTWFrZWZpbGVzCiAgIAoxOTk5LTEwLTA0IDExOjQ4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oLCBhcHBzL3NubXB0cmFwLmMKOgoKICAgLSAoc25tcF9hcGk/LCBpbnQ2NC4/IHNubXB0cmFwLmMpOiBhZGQgc29tZSBlcnJvciBjaGVja2luZyBmb3IgdmFyaWFibGVzCiAgIAoxOTk5LTEwLTA0IDEwOjIyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFRyaXZpYWwgJ3BpbmcnIGltcGxlbWVudGF0aW9uCiAgIAoxOTk5LTEwLTA0IDEwOjE3ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgKOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmggIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuW2NoXQogICAgICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIENvbXBsZXRlIHN1YmFnZW50IGhhbmRsaW5nIG9mIEFnZW50IENhcGFiaWxpdGllcyAvIHN5c09SVGFibGUKICAgCjE5OTktMTAtMDQgMTA6MTUgIGRhdmVzCgogICAqIHNubXBsaWIvY2FsbGJhY2suaDoKCiAgIC0gKHNubXBsaWIvY2FsbGJhY2suaCk6IEluY3JlYXNlIG51bWJlciBvZiBhcHBsaWNhdGlvbiBjYWxsYmFja3Mgc3VwcG9ydGVkCiAgIAoxOTk5LTEwLTA0IDA5OjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIC0gKG1pYl9tb2R1bGVzLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LltjaF0pOgogICAgIC0gRW5zdXJlIHN1YmFnZW50IGlzIGluaXRpYWxpc2VkIGVhcmx5IChwcmlvciB0byBNSUIgcmVnaXN0cmF0aW9uLCBldGMpCiAgIAoxOTk5LTEwLTA0IDA5OjUzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIHNubXBfdmFycy5oLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gc25tcF92YXJzLmggbWliSUkvc3lzT1JUYWJsZS5jCiAgICAgIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgICAtIEhhbmRsZSBNSUIgcmFuZ2UgcmVnaXN0cmF0aW9uLCBhbmQgY2xlYW4gdXAgd3JhcHBlciBpbnRlcmZhY2VzCiAgIAoxOTk5LTEwLTA0IDAzOjU4ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oKToKICAgICAtIGNvbnNvbGlkYXRlIGRlZmluaXRpb25zIG9mIGRlZmF1bHQgTUlCIHJlZ2lzdHJhdGlvbiBwcmlvcml0eQogICAKMTk5OS0xMC0wMiAxNDoyOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIHN1YmFnZW50LmM6CgogICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgIC0gRml4IGEgcHJvYmxlbSB3aXRoIHJlLXVzZWQgUERVIHN0cnVjdHVyZXMgYmVpbmcgZnJlZWQgdHdpY2UuCiAgIAoxOTk5LTEwLTAxIDA5OjQ4ICBkYXZlcwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogRml4IGluY29tcGF0YWJpbGl0eSBpbiBhZ2VudCBsaWJyYXJ5IG5hbWVzCiAgIAoxOTk5LTA5LTMwIDAxOjA5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAobWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYyk6CiAgICAgLSBwcm90ZWN0IGFnYWluc3QgTlVMTCB1dG1wIGZpbGUgKGZyb20gRmFicmljZSBEdXByZSkKICAgCjE5OTktMDktMjkgMjM6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvaHB1eC5jOgoKICAgUmVtb3ZlIHVudXNlZCBmaWxlLi4gc25tcGxpYi9ocHV4LmMKICAgCjE5OTktMDktMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICAtIChtaWJfbW9kdWxlcy5jKTogaW5jbHVkZSBuZXRpbmV0L2luLmgKICAgCjE5OTktMDktMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgpOiBmaXggYnVncy4KICAgCjE5OTktMDktMjkgMTY6NDAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy52YXJ0eXBlcy5jb25mKTogcmVtb3ZlZCBleHRyYSBcbi4KICAgCjE5OTktMDktMjkgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IHJ1biBudG9obCBvbiBpcCBhZGRyZXNzZXMgc3RvcmVkIGluIGEgbG9uZy4KICAgCjE5OTktMDktMjkgMTY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogLVdhbGwgZml4ZXMgYW5kIGZvdW5kIGEgbWlzc2luZyB9LgogICAKMTk5OS0wOS0yOSAxNjozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oOgoKICAgLSAoY2xpZW50LmgpOiBkZWZpbmUgREVGQVVMVF9NSUJfUFJJT1JJVFkgdG8gMjU1LgogICAKMTk5OS0wOS0yOSAxNjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSAoY2xpZW50LmMpOiB0aGF0cyAidGltZXZhbCIgbm90ICJ0aW1ldmFsZSIgRGF2ZSAoaGVoZSkuCiAgIAoxOTk5LTA5LTI5IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIG5ldyBleHRyYWN0aW9uIGFuZCBmcmVlaW5nIGZ1bmN0aW9ucy4KICAgICAtIGJ1ZyBmaXgsIG1pc3NpbmcgYSBtYWxsb2Mgc2l6ZSBieSBvbmUgKGVsZWN0cmljIGZlbmNlIGlzIHZlcnkgY29vbCkuCiAgIAoxOTk5LTA5LTI5IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBNaWtlIE1pY2hhdWQgdG8gdGhlIHRoYW5rIHlvdSBsaXN0LgogICAKMTk5OS0wOS0yOSAxNjozNSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGZpeCBSQU5MSUIgdGVzdGluZyBmb3IgLS1lbmFibGUtc2hhcmVkLgogICAKMTk5OS0wOS0yOSAxNDozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUm9idXN0IGNvcHkgb2YgaW5mb3JtYXRpb24gdG8gdHJlZSwgaW1wb3J0X2xpc3QsIGRpc3BsYXkgaGludHMuCiAgIAoxOTk5LTA5LTI5IDEyOjE5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgY2xpZW50LmgsCiAgIG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLAogICBwcm90b2NvbC5oLCBzdWJhZ2VudC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOiAgQXNzb3J0ZWQgaW1wcm92ZW1lbnRzIQogICAKMTk5OS0wOS0yOSAxMTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKTogQ2hhbmdlIGluIE1JQiByZWdpc3RyYXRpb24gaW50ZXJmYWNlCiAgIAoxOTk5LTA5LTI5IDExOjQ2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKToKICAgICAtIE1vdmUgc2V0dGluZyBhZ2VudCBzdGFydCB0aW1lIHRvIGVhcmxpZXIgaW4gdGhlIGluaXRpYWxpc2F0aW9uIHNlcXVlbmNlCiAgICAgICAoc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzdWJhZ2VudHMgd2l0aCB0aGUgbWFzdGVyJ3MgdmFsdWUpCiAgIAoxOTk5LTA5LTI5IDExOjQzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlzaW9uIHRvIHVucmVnaXN0ZXIgTUlCcyBieSBzZXNzaW9uCiAgIAoxOTk5LTA5LTI5IDExOjM4ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgLSAnQ2hpbGRyZW4nIG5vZGVzIG5vdyBoYXZlIGEgZGlmZmVyZW50IHN0YXR1cywgYW5kIHNob3VsZG4ndCBiZSBmcmVlZC4gT29wcyEKICAgCjE5OTktMDktMjkgMTE6MzYgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgIC0gSW1wcm92ZSByZWdpc3RyeSBlcnJvciBoYW5kbGluZwogICAgIC0gQ29ycmVjdGx5IGhhbmRsZSB1bnJlZ2lzdGVyaW5nIE1JQiByZWdpb25zCiAgIAoxOTk5LTA5LTI5IDExOjIzICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IENvcnJlY3QgdmFsdWUgb2YgZGVmYXVsdCByZWdpc3RyYXRpb24gcHJpb3JpdHkKICAgCjE5OTktMDktMjkgMTE6MTcgIGRhdmVzCgogICAqIHNubXBsaWIvOiBtdF9zdXBwb3J0LmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKOgoKICAgLSAobXRfc3VwcG9ydC5oIHNubXBfYXBpLltjaF0pOiBTdXBwb3J0IGZvciBzZXNzaW9uIGFuZCBpbmNvbWluZyB0cmFuc2FjdGlvbiBJRHMKICAgCjE5OTktMDktMjkgMTE6MTQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHByb3RlY3Qgc25tcF9jbG9zZSgpIGFnYWluc3QgYSBudWxsIFNlc3Npb25zIGxpc3QKICAgCjE5OTktMDktMjggMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgKLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6CiAgICAgLSBtYWtlIGxpYnVjZGFnZW50IGFuZCBsaWJ1Y2RtaWJzIGFzIHNlcGVyYXRlIGxpYnJhcmllcy4gIEluIHRoZW9yeSwKICAgICAgIHlvdSBzaG91bGRuJ3QgbmVlZCBsaWJ1Y2RtaWJzIHRvIHVzZSBsaWJ1Y2RhZ2VudC4KICAgCjE5OTktMDktMjcgMTY6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBPcHBzOiBEU19MSUJfRE9OVF9SRUFEX0NPTkZJR1MgbmVlZGVkIGFuICEuCiAgIAoxOTk5LTA5LTIyIDEyOjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC0gSW1wcm92ZWQgZXJyb3Igc3RhdHVzIGFnZ3JlZ2F0aW9uLgogICAKMTk5OS0wOS0yMiAxMDowMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEltcHJvdmVkIEFnZW50WCByZXNwb25zZSBoYW5kbGluZwogICAKMTk5OS0wOS0yMiAxMDowMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBFbnN1cmUgcmVnaXN0cnkgaXMgaW5pdGlhbGlzZWQgY29ycmVjdGx5IG9uIHN1YmFnZW50cwogICAKMTk5OS0wOS0yMiAwOTo1OCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiByZW1vdmUgcmVkdW5kYW50IHJvdXRpbmVzCiAgIAoxOTk5LTA5LTIyIDA5OjU0ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jLAogICB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHZhcl9zdHJ1Y3QuaCk6CiAgICAgQ2hhbmdlIHRoZSB3YXkgdGhlIE1JQiByZWdpc3RyeSBoYW5kbGVzIHJlZ2lzdGVyZWQgcmFuZ2VzLgogICAgIFRoaXMgc2hvdWxkIHdvcmsgbW9yZSByZWxpYWJseSAoYXMgd2VsbCBhcyBiZWluZyByYXRoZXIgc2ltcGxlciwgSU1ITykKICAgCjE5OTktMDktMjIgMDk6MzUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgLSBFbnN1cmUgbG9jYWwgc3lzT1JUYWJsZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgc3ViYWdlbnQgdmVyc2lvbnMKICAgCjE5OTktMDktMjIgMDk6MzMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aWRlIG1ldGhvZCBmb3IgcHJpb3JpdGlzZWQgcmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA5LTIyIDA5OjMxICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyk6IHN0dXBpZCB0eXBvCiAgIAoxOTk5LTA5LTIyIDA5OjI3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IHN0dXBpZCB0eXBvCiAgIAoxOTk5LTA5LTIxIDEwOjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLShtaWIuYykgdW5kbyBlcnJvbmVvdXMgY2hhbmdlIHRvIGluaXRfbWliICh0aGFua3MgTkIhKQogICAKMTk5OS0wOS0yMSAwOTozMiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wZC5jKTogU2ltcGxlIHJ1bi10aW1lIGR1bXAgb2YgcmVnaXN0ZXJlZCBNSUJzCiAgIAoxOTk5LTA5LTIxIDA5OjI1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jKTogSGFuZGxlIHBhcnNpbmcgbnVsbC1sZW5ndGggdmFyaWFibGVzCiAgIAoxOTk5LTA5LTIxIDA5OjIxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBoYW5kbGUgYWRkaW5nICdlcnJvcicgdHlwZSB2YXJpYWJsZXMgdG8gYSBQRFUKICAgCjE5OTktMDktMTcgMTU6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZSB0byAyLjEzLgogICAKMTk5OS0wOS0xNyAxMTo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgbWFrZSBtb2R1bGVfbWFwKiBhbmQgdG9rZW5zIHN0cnVjdHVyZXMgc3RhdGljIChvbmx5IHVzZWQgaW4gcGFyc2UuYyA/KQogICAKMTk5OS0wOS0xNyAxMToyNCAgbXNsaWZjYWsKCiAgICogRkFRLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaDoKCiAgIC1yZW1vdmUgb2xkLXN0eWxlIGluaXQgZm9yIHJlcGxhY2UgbWliIGZlYXR1cmUuCiAgIAoxOTk5LTA5LTE3IDExOjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIC0gcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBzdGF0aWMgdmFyICJsYXN0IgogICAKMTk5OS0wOS0xNyAwNzoxNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYXBpLjM6CgogICAtIChzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgLSBmaXggY29tbWVudHMuCiAgIAoxOTk5LTA5LTE2IDE0OjE2ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC1wZXIgYWdyZWVtZW50IHdpdGggTWFya2t1LCBubyBzdXBwb3J0IG5lZWRlZCBmb3IgU29sYXJpcy1zcGVjaWZpYyB0aHJlYWRzLgogICAKMTk5OS0wOS0xNSAxMTozMCAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL210X3N1cHBvcnQuYywKICAgc25tcGxpYi9tdF9zdXBwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpbmUgdHVuaW5nIG10IHN1cHBvcnQKICAgCjE5OTktMDktMTUgMDk6NDUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMwosIHNubXBfb3Blbi4zLCBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zCiwgc25tcF9zZW5kLjMsIHNubXBfc2Vzc19hc3luY19zZW5kLjMsCiAgIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywgc25tcF9zZXNzX2luaXQuMwosIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLAogICBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsIHNubXBfc2Vzc19zZXNzaW9uLjMsCiAgIHNubXBfdGltZW91dC4zOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zLCBzbm1wX29wZW4uMywKICAgICBzbm1wX3JlYWQuMywgc25tcF9zZWxlY3RfaW5mby4zLCBzbm1wX3NlbmQuMywKICAgICBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsCiAgICAgc25tcF9zZXNzX2luaXQuMywgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLAogICAgIHNubXBfc2Vzc19zZXNzaW9uLjMsIHNubXBfdGltZW91dC4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgLSBjcmVhdGUgc29tZSBmYWtlIHNvdXJjaW5nIG1hbiBwYWdlcyBmb3IgZnVuY3Rpb25zLgogICAKMTk5OS0wOS0xNSAwNjowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIGluY2x1ZGUgbWliZ3JvdXAvbWliX21vZHVsZV9pbmNsdWRlcy5oIGZvciBiZW5lZml0IG9mIG1pYl9tb2R1bGVfZG90X2NvbmYuaAogICAKMTk5OS0wOS0xNCAxMzoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcGFyc2UuYyAtIGFub3RoZXIgZml4IGZvciBub2RlOiBjb25zaWRlciBOVUxMIG5hbWUgb3IgTlVMTCBwYXJlbnQKICAgCjE5OTktMDktMTQgMTM6MDAgIG1hcnoKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIChhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfYXBpLltjaF0pOiBmaXggc3B1cmlvdXMgZXJyb3IgbWVzc2FnZSB3aGVuIHNubXBfcGFyc2Vfb2lkIGZhaWxzCiAgIAoxOTk5LTA5LTE0IDA5OjUzICBtc2xpZmNhawoKICAgKiBGQVEsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaAo6CgogICAtKEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9wYXJzZS4qKSBhZGQgcmVwbGFjZSBNSUIgY2FwYWJpbGl0eShleHBlcmltZW50YWwpCiAgIAoxOTk5LTA5LTEzIDIwOjIwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIHJlLWFzc2VydCBOaWVscycgcGF0Y2ggdG8gc25tcF9zZW5kIHRvIGZyZWUgdjIvdjEgVHJhcC1QRFVzCiAgIAoxOTk5LTA5LTEzIDE1OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMKLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmg6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzdWJhZ2VudC5jLAogICAgIHN1YmFnZW50LmgsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIGZ1cnRoZXIgc2VwYXJhdGlvbiBvZiBhZ2VudCBjaHVyY2ggYW5kIHN0YXRlOgogICAgICAgLSB1c2UgY2FsbGJhY2tzIGV2ZXJ5d2hlcmUgbmVlZGVkIHRvIG5vdCBjYWxsIG1pYiBtb2R1bGUgY29kZSBkaXJlY3RseS4KICAgICAgIC0gZ2V0IHJpZCBvZiBhbGwgaW5zdGFuY2VzIG9mIFVTSU5HXyBpbiBsaWJhZ2VudCBjb2RlLgogICAKMTk5OS0wOS0xMiAyMjowMCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIHNubXBfaW1wbC5oOiByZW1vdmVkIHNvbWUgdW51c2VkL3VubmVlZGVkIGRlZmluZXMvc3RydWN0cwogICAKMTk5OS0wOS0xMiAyMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSBwcm90b2NvbC5jOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUgZmlsZS4KICAgCjE5OTktMDktMTIgMjE6NTggIG5iYQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSBURVNUQ09ORi5zaDogZml4IHNvbWUgZXhwb3J0cyB0byBleHBvcnQgdGhlIHJpZ2h0IHZhcmlhYmxlLgogICAKMTk5OS0wOS0xMiAyMTo1NyAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gYWdlbnQvKiwgc25tcGxpYi8qOiBtYWxsb2MgZml4ZXMsIHNvbWUgcHJvdm9rZWQgYnkgdGhlIGNvcnJlY3RlZAogICAJc25tcF9zZW5kIHNlbWFudGljcy4KICAgCjE5OTktMDktMTIgMjE6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gdmFyX3JvdXRlLmM6IExpbnV4IGNsZWFudXAuIFJlcXVpcmVkIGZvciBMaW51eC9TUEFSQwogICAKMTk5OS0wOS0wOSAxMzo1OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLShtaWIuYywgcGFyc2UuYykgbWliLmMgcHJpbnRfdHJlZV9ub2RlIHRlc3QgZGlzcGxheSBudWxsIHR5cGUgd2l0aCByYW5nZQogICAgICAgICAgICAgICAgICAgICBwYXJzZS5jIHdvcmsgYXJvdW5kIGNvcmUgZHVtcCBmcmVlaW5nIFRDcyB0aGF0IHNwZWNpZnkgcmFuZ2VzLgogICAKMTk5OS0wOS0wOSAwMjozMSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCB3aW4zMi9jb25maWcuaDoKCiAgIC0oKmNvbmZpZyopIHR1cm4gb24gcmVzb3VyY2UgbG9ja2luZyB3aXRoIC0tZW5hYmxlLXJlZW50cmFudC4KICAgCjE5OTktMDktMDkgMDI6MjEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgLSh3aW5zdHViLmMpIEhhY2sgdG8gYWxsb3cgc25tcG5ldHN0YXQgLWEgdG8gd29yayBvbiBBSVg0IChzaWMpLgogICAKMTk5OS0wOS0wOCAyMjozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLShtaWJpbmNsLmgpIGNvbW1lbnQgb3V0IGR1cGxpY2F0ZSAjaW5jbHVkZSBoZWFkZXIgbGluZXMuCiAgIAoxOTk5LTA5LTA4IDIyOjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0oc211eC5jKSB2YXJfc211eF93cml0ZSBmaXhlZCBwZXIgTWlrZSBNaWNoYXVkIGFuZCBOaWNrIEFtYXRvCiAgIAoxOTk5LTA5LTA4IDE3OjUyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbXRfc3VwcG9ydC5jLCBtdF9zdXBwb3J0Lmg6CgogICAtKG10X3N1cHBvcnQuKikgT3JpZ2luYWwgYnkgTWFya2t1IExhdWtrYW5lbiwgY2hhbmdlcyBieSBNLiBTbGlmY2FrCiAgIAoxOTk5LTA5LTA4IDE3OjQ4ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLShjb25maWcqLHdpbjMyLyosc25tcGxpYi8qKSByZXNvdXJjZSBsb2NraW5nIG9yaWdpbmFsbHkgZnJvbSBNYXJra3UgTGF1a2thbmVuCiAgIAoxOTk5LTA5LTA4IDE3OjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgbWliSUkvaWNtcC5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsIG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYzoKCiAgIG1pYmluY2wuaCwgbWliZ3JvdXAvbWliSUkvKiAtIGZpeHVwIGZvciBDeWdXaW4zMiBidWlsZAogICAKMTk5OS0wOS0wOCAxMzowNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50Lmg6CgogICAtKHNubXBsaWIvc25tcF9jbGllbnQuKikgYWRkIHNubXBfc3BsaXRfcGR1LCBzbm1wX3ZhcmJpbmRfbGVuIG1ldGhvZHMuCiAgIAoxOTk5LTA5LTA4IDEzOjAwICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBwcmVmaXggUEFUSCB3aXRoIC4gYW5kIC4uICwgYXMgdGhlIHNjcmlwdCBjaGFuZ2VzIGRpci4KICAgCjE5OTktMDktMDggMDc6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBhcHBzL3NubXB0cmFwZC5jOiBmaXggYXJndW1lbnQgcHJvY2Vzc2luZyAoLWxkIGFuZCBzaW1pbGFyKQogICAKMTk5OS0wOS0wOCAwNzo1MSAgbmJhCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gc25tcGQuMS5kZWY6IGZpeCBhIGZvcm1hdHRpbmcgcHJvYmxlbQogICAKMTk5OS0wOS0wOCAwNzo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBhZ2VudHgvc3ViYWdlbnQuYywKICAgbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLSAodmFyaW91cyk6IGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0wOS0wOCAwNzo0OCAgbmJhCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gdmFyX3N0cnVjdC5oOiB0aGUgQWdlbnR4IGNvZGUgdXNlcyB1bnNpZ25lZCB2YWx1ZXMgZm9yIHRoZSB2YXJpYWJsZSB0eXBlLgogICAKMTk5OS0wOS0wOCAwNzo0NiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gc25tcF9hcGkuaDogbW92ZSBpbmNsdXNpb24gcHJvdGVjdGlvbiB0byB0aGUgcmVhbCBiZWdpbm5pbmcvZW5kIG9mIHRoZSBmaWxlCiAgIAoxOTk5LTA5LTA4IDA3OjQ1ICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIChjb25maWd1cmUuaW4sIGxvYWRhdmUuYyk6IFNvbGFyaXMgMi43IGhhcyBnZXRsb2FkYXZnIHByb3RvdHlwZQogICAKMTk5OS0wOS0wOCAwNToxNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgaW5jbHVkZSByZWFkX2NvbmZpZy5oCiAgIAoxOTk5LTA5LTA3IDIwOjE5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICBzbm1wdHJhcC5jIC0gcmV3b3JrIGZpeCBidWcgIzU0IChtaXNzZWQgZWxzZSkuCiAgIAoxOTk5LTA5LTA3IDIwOjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBtYW4vc25tcF9hcGkuMywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShhZ2VudF90cmFwLmMsc25tcHRyYXAuYyxzbm1wX2FwaS5bM2NdKSAtIHNubXBfZnJlZV9wZHUgZml4IEJ1ZyAjNTQgcGVyIE5pZWxzIEIuCiAgIC0oc25tcG5ldHN0YXQvaWYuYykgLSBmaXggZm9yIEdFVE5FWFQgcGVyIE5pZWxzIEIuCiAgIAoxOTk5LTA5LTA3IDE1OjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtKHBhcnNlLmMpIGZpeCBVbmxpbmtlZCBPSUQgcHJpbnQgd2hlbiBvYmplY3QgaWRlbnRpZmllciBoYXMgbm8gcGFyZW50LgogICAKMTk5OS0wOS0wNyAxNTozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLShwYXJzZS5jKSByZW1vdmUgdW5uZWVkZWQgc3RyZHVwIHRvIEZpbGUgdmFyaWFibGUgZnJvbSBpbml0X21pYl9pbnRlcm5hbHMuCiAgIAoxOTk5LTA5LTA3IDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtKHNubXBfYXBpLmgpIHN0cnVjdCBwZHUgYW5kIHNubXBfc2Vzc2lvbiBhZ3JlZTogbG9uZyB0eXBlIGZvciB2ZXJzaW9uIG1lbWJlci4KICAgCjE5OTktMDktMDcgMTU6MjMgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogY29uZmlnLmgsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgKHdpbjMyL2NvbmZpZy5oKSAtIHNldCBTTk1QQ09ORlBBVEggdG8gc3VjY2VlZCBjb21waWxlOwogICAod2luMzIqbGlic25tcC5kZWYpIC0gYWRkIG5ldyBzbm1wX2dldF90b2tlbiB0byBsaXN0LgogICAKMTk5OS0wOS0wNyAxNToyMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oOgoKICAgKGRlZmF1bHRfc3RvcmUuKikgLSBtYWtlIDNyZCBwYXJhbSB0byBkc19zZXRfc3RyaW5nIHR5cGUgb2YgY29uc3QgY2hhciAqLgogICAKMTk5OS0wOS0wNyAxNToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2My5jIC0gc2lsZW5jZSB0eXBlIHdhcm5pbmcgZnJvbSBNU1ZDKysuCiAgIAoxOTk5LTA5LTA3IDE0OjQ3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0ocGFyc2UuKikgZml4IHNtYWxsIG1lbW9yeSBsZWFrczsgYWxsb3cgSU5ERVh7SU5URUdFUi4uLn0gY2xhdXNlczsKICAgICAgICAgICAgICBhbGxvdyBsYXJnZXIgREVTQ1JJUFRJT04gY2xhdXNlcyBbbWF4IDgxOTJdLgogICAKMTk5OS0wOS0wMyAxNTowMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbW9yZSBCU0RJIHN5c3RlbSB2ZXJzaW9ucyBsaXN0ZWQuCiAgIAoxOTk5LTA5LTAzIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZG9uJ3QgZmFsbCBvZmYgdGhlIGVuZCBvZiB0aGUgc2VhcmNoIHRyZWUuCiAgIAoxOTk5LTA5LTAzIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoc25tcGxpYi9NYWtlZmlsZS5pbik6IGluc3RhbGwgbW9yZSBsaWJyYXJ5IGhlYWRlcnMuCiAgIAoxOTk5LTA5LTAzIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGluc3RhbGwgbGliYWdlbnQuYS4KICAgICAtIG1rZGlyaGVpciBvbiBuZWVkZWQgbmV3IGluc3RhbGxhdGlvbiBkaXJlY3Rvcmllcy4KICAgCjE5OTktMDktMDMgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGFnZW50IGhlYWRlciBmaWxlcy4KICAgCjE5OTktMDktMDMgMTM6MTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oCjoKCiAgIC0gKGhpc3RvcnkuYywgaGlzdG9yeS5oLCBzbm1wX3ZhcnMubGludXguaCk6IHJlbW92ZWQuIE5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk5LTA5LTAyIDA4OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBvcHBzLiAgRm9yZ290IGEgc2h1dGRvd24gbmFtZSBjaGFuZ2UgaW5zdGFuY2UuCiAgIAoxOTk5LTA5LTAyIDA3OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBzaHV0ZG93bl9zdWJhZ2VudCAtPiBzdWJhZ2VudF9zaHV0ZG93biBzbyBjb25maWd1cmUKICAgICBkb2Vzbid0IGZpbmQgaXQuCiAgIAoxOTk5LTA5LTAyIDA2OjM4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQogICAKMTk5OS0wOC0zMSAwOToyNiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLShhZ2VudF90cmFwLmMpIGFsd2F5cyBmcmVlIFBEVSBhZnRlciBzbm1wX3NlbmQuCiAgIAoxOTk5LTA4LTMxIDA4OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtKGFnZW50X3RyYXAuYykgZml4IHJlY2VudCBtZW1vcnkgbGVhaywgYW5kIHNpemVvZihvYmppZF9zbm1wdHJhcCkgYnVnLgogICAKMTk5OS0wOC0zMCAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYyk6IHlldCBtb3JlIGRlYnVnZ2luZy4KICAgCjE5OTktMDgtMzAgMDk6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXIuYywKICAgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywgc3ViYWdlbnQuYzoKCiAgIC0gKGNsaWVudC5jLCBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywgc3ViYWdlbnQuYyk6CiAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgICAtIHVzZSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncyBpbnN0ZWFkIG9mIGV4dGVybmFsIHZhcmlhYmxlcy4KICAgCjE5OTktMDgtMzAgMDk6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L2FnZW50X3RyYXAuaCwgYWdlbnQvZHNfYWdlbnQuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsCiAgICAgYWdlbnRfdHJhcC5oLCBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmMsCiAgICAgc25tcGQuYywgdXRpbF9mdW5jcy5jLCBzeXNPUlRhYmxlLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAtIHJlc3RydWN0dXJlIHRoZSBhZ2VudCBpbnRvIHR3byBwaWVjZXM6IGEgbGlicmFyeSBhbmQgYSBhcHBsaWNhdGlvbi4KICAgICAgIC0gbmVlZHMgbXVjaCBtb3JlIHdvcmsuCiAgICAgICAtIG1hbnkgcGFyYW1ldGVycyBhcmUgbm93IGNvbnRyb2xsZWQgYnkgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MKICAgICAgICAgdG8gaGVscCByZWxpZXZlIGNvbXBpbGUgdGltZSBiaW5kaW5ncy4KICAgICAtIG1lcmdlIGluaXRfc25tcCBhbmQgdGhlIGN1c3RvbSB2ZXJzaW9uIGNhbGxlZCBpbnNpZGUgdGhlIGFnZW50LgogICAgIC0gYWRkIGEgbmV3IHBsYWNlIGZvciB0cmFwIHNwZWNpZmljIGFnZW50IGNvZGUgKGFnZW50X3RyYXAuW2NoXSkuCiAgICAgLSBwcm9iYWJseSBvdGhlciB0aGluZ3MgSSd2ZSBmb3Jnb3R0ZW4gdGhhdCBJIGRpZC4KICAgCjE5OTktMDgtMjggMDc6MjkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAtIGFkZCAvZXRjL3NubXAgdG8gZGVmYXVsdCBjb25mIGZpbGUgcGF0aCB0byBtYWtlIFJlZEhhdCBoYXBweS4KICAgCjE5OTktMDgtMjggMDc6MTkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX2FsYXJtLjMuCiAgIAoxOTk5LTA4LTI3IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jCiwgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYzoKCiAgIC0gKGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKToKICAgICAtIFN1c2FubmUgT3N0ZWQgcG9pbnRlZCBvdXQgYSBsYWNrIG9mICNpZiBIQVZFX1NZU19QQVJBTV9ILgogICAKMTk5OS0wOC0yNyAwODowMyAgbXNsaWZjYWsKCiAgICogVE9ETzoKCiAgIEhvd2FyZCBTcGluZGVsIHN1Z2dlc3RzIGFuIEFQSSBmb3IgdHJhcHMgd2l0aCBwYXNzX3BlcnNpc3QuCiAgIAoxOTk5LTA4LTI3IDA3OjM1ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLShjb25maWd1cmUqLCBzZWRzY3JpcHQqKSBjaGFuZ2UgLi4uRVhURU5JUy4uLiAgdG8gLi4uRVhURU5TSS4uLgogICAKMTk5OS0wOC0yNiAxMzo0MCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgZG9uJ3QgYnVpbHQgdGFyZ2V0cyB0aGF0IGFyZSBubyBsb25nZXIgdXNlZAogICAKMTk5OS0wOC0yNiAxMzoxOCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0odGVzdGluZy9SVU5URVNUUykgaW1wcm92ZWQgUEFUSCBzZXQKICAgCjE5OTktMDgtMjQgMTc6NDMgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIG5vIG5lZWQgdG8gYnVpbGQgdGFyZ2V0cyBpbiB0ZXN0IHJ1bGUuCiAgIAoxOTk5LTA4LTI0IDE3OjM5ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgLShSVU5URVNUUykgZXhwb3J0IFBBVEggYmVmb3JlIHVzZQogICAKMTk5OS0wOC0yNCAxNzoxNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLjEgKQogICAKMTk5OS0wOC0yNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjAuMQogICAKMTk5OS0wOC0yNCAxNjo0OSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluLCBSVU5URVNUUywgVDIuc2gsCiAgIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3Rfa3VsLnNoOgoKICAgLSh0ZXN0aW5nLyopIHJ1biB0ZXN0cyB3aGVuIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZCwgYW5kIHdoZW4KICAgdGhlIGJ1aWxkIHRyZWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgdHJlZS4KICAgCjE5OTktMDgtMjQgMTY6MDUgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCiAgIAoxOTk5LTA4LTI0IDE2OjAxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IDQuMC4xIHVwZGF0ZQogICAKMTk5OS0wOC0yNCAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCiAgIAoxOTk5LTA4LTI0IDE1OjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KICAgCjE5OTktMDgtMjQgMTQ6MTcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zd3J1bi5jLCBtaWJJSS9pY21wLmMsCiAgIG1pYklJL2lwLmMsIHVjZC1zbm1wL2Rpc2suYywgdWNkLXNubXAvcHJvYy5jOgoKICAgLShob3N0L2hyX3N3cnVuO21pYklJL2ljbXAsaXA7dWNkLXNubXAvZGlzayxwcm9jKSBsb2dfcGVycm9yIC0tPiBzbm1wX2xvZ19wZXJyb3IKICAgCjE5OTktMDgtMjQgMTQ6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYWxsX3N5c3RlbS5oOgoKICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCiAgIAoxOTk5LTA4LTI0IDE0OjA1ICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0odG9wL01ha2VmaWxlLmluKSAtIHJlbW92ZSBtb3JlIGdlbmVyYXRlZCBmaWxlcyB3aXRoIGRpc3RjbGVhbiBydWxlLgogICAKMTk5OS0wOC0yNCAxMzo0MSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiByZW1vdmUgc25tcHYzIHN1cHBvcnQ6LSkKICAgCjE5OTktMDgtMjQgMTM6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgLSBwcm92aWRlIGRlZlZlcnNpb24gdG9rZW4gc3VwcG9ydCBpbiBzbm1wLmNvbmYgKHNvcnQgb2YgaGFja2lzaCkuCiAgIAoxOTk5LTA4LTI0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGNoZWNrIGZvciBudWxsIHJlc3BvbnNlIHBvaW50ZXIuCiAgIAoxOTk5LTA4LTI0IDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgogICAKMTk5OS0wOC0yNCAxMDoyNSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSh0ZXN0aW5nL2V2YWxfdG9vbHMpIC0gbGV0IHNvbWUgKEFJWCkgYWdlbnRzIHNldHRsZSBiZWZvcmUgZmlyaW5nIHJlcXVlc3RzLgogICAKMTk5OS0wOC0yNCAwNjoxOSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBULmMsIGV0aW1ldGVzdC5jLAogICBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jOgoKICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwogICAKMTk5OS0wOC0yNCAwNToxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KICAgCjE5OTktMDgtMjQgMDQ6NDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLAogICBzbm1wX2xvZ2dpbmcuYzoKCiAgIENsZWFuIENScyBmcm9tIHJlYWRfY29uZmlnLHNubXBfbG9nZ2luZzsgY29tbWVudCBkZWZpbmUgVVNFX0FTTl9TSE9SVF9MRU4uCiAgIAoxOTk5LTA4LTIzIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIHNubXB1c20uMSBtYW51YWwgcGFnZS4KICAgCjE5OTktMDgtMjMgMTY6MTkgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMCApCiAgIAoxOTk5LTA4LTIzIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IHJlbW92ZSB2ZXJzaW9uIHNwZWNpZmljIGluZm9ybWF0aW9uCiAgIAoxOTk5LTA4LTIzIDE2OjEyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMjhzbm1wdjNnZXRmYWlsOgoKICAgLSAoVDAyOHNubXB2M2dldGZhaWwpOiBzbm1wdjMgZ2V0IGZhaWx1cmUgdGVzdC4KICAgCjE5OTktMDgtMjMgMTY6MDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHZlcnNpb24gdXBkYXRlCiAgIAoxOTk5LTA4LTIzIDE1OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBIQUNLISBmaXh1cCBzaG9ydCBsZW5ndGggKGZpcnN0IHB1dCBjb3JyZWN0IGNvbW11bml0eSBzdHJpbmcgaW4gcGR1LT4gKS4KICAgCjE5OTktMDgtMjMgMTQ6MDIgIG1zbGlmY2FrCgogICAqIEZBUSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRGVzY3JpYmUgVVNFX0FTTl9TSE9SVF9MRU4gaW4gRkFRLCBhbmQgaW1wbGVtZW50IGluIF9zbm1wX2J1aWxkLgogICAKMTk5OS0wOC0yMyAxMzo1NCAgbmJhCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wX3ZhcnMuYzogbW92ZSBzb21lIC12IGxvZ2dpbmcgdG8gYSBtb3JlIHJhdGlvbmFsCiAgIAlwbGFjZS4KICAgCjE5OTktMDgtMjMgMTI6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAocHJvdG9jb2wuYyk6IGFsbG93IE5VTEwgc3RyaW5ncyBpbiBhZ2VudFggcGFja2V0cy4KICAgCjE5OTktMDgtMjMgMDk6MDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgVGVzdCBwb2ludGVyIGJlZm9yZSBkZXJlZmVyZW5jZSBpbiB1c21fZnJlZV91c2VyCiAgIAoxOTk5LTA4LTIzIDA5OjAyICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBTcGVsbCBjaGVjazogc2ltaWxhcgogICAKMTk5OS0wOC0yMyAwOTowMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFdpbjMyIGJ1aWxkIGZpeGVzCiAgIAoxOTk5LTA4LTIzIDA3OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGFuc2kgbWVudGlvbmVkLgogICAKMTk5OS0wOC0yMyAwNjoxNCAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgY29uZmlnX2xvYWRfbWliCiAgIAoxOTk5LTA4LTIyIDIzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSBhZ2VudHgvbWFzdGVyX2FkbWluLmM6IGZhaWx1cmUgd2hlbiBjbG9zaW5nIGZpcnN0IGFnZW50cyBzZXNzaW9uCiAgIAkodW5pbml0aWFsaXplZCB2YXJpYWJsZSkuCiAgIAoxOTk5LTA4LTIyIDE3OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogdmVyc2lvbiAtPiB1X2xvbmcuCiAgIAoxOTk5LTA4LTIyIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wOC0yMiAxNzo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSAtLXdpdGhvdXQtZHVtbXktdmFsdWVzIGlzIGRlZmF1bHQgYWdhaW4uCiAgICAgLSBjbGVhbnVwIG9mIC0taGVscCBzdHVmZi4KICAgICAtIGZpeCBvZiBwZXJpc3RlbnQgZGlyZWN0b3J5IGNyZWF0aW9uLgogICAKMTk5OS0wOC0yMiAxNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy86IElQRldDSEFJTlMtTUlCLnR4dCwgUkVBRE1FCiwgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLAogICBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsIGxpYmlwZndjLmg6CgogICAtIChpcGZjaGFpbnMpOiByZW1vdmVkIGZyb20gZGlzdHJpYnV0aW9uLiAgTmV3ZXIgb25lIGluIGZ0cCdzIGNvbnRyaWIgZGlyLgogICAKMTk5OS0wOC0yMCAxNzoxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTcgKQogICAKMTk5OS0wOC0yMCAxNzowOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBsYXN0IG1pbnV0ZSBjaGFuZ2VzCiAgIAoxOTk5LTA4LTIwIDE2OjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgsIGFzbjEuYyk6IDY0Yml0IGNsZWFudXAuCiAgIAoxOTk5LTA4LTIwIDEzOjU2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gKHNubXAuY29uZi41LmRlZiwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2xvZ2dpbmcuYyk6CiAgICAgLSB0dXJuIG9mZiB0aW1lIHN0YW1wIGxvZ2dpbmcgYnkgZGVmYXVsdC4gIEl0IG11c3QgYmUgZXhwbGljaXRseQogICAgICAgcmVxdWVzdGVkIGluIHRoZSBzbm1wLmNvbmYgZmlsZSB0byB0dXJuIGl0IG9uLgogICAgICAgKHRoZSByZWFzb24gaXMgdGhhdCBhIGxvdCBvZiBsb2dnaW5nIGlzIGluY3JlbWVudGFsIGluIG5hdHVyZSBhbmQKICAgICAgIGlzIG5vdCBsaW5lIGJ1ZmZlcmVkIGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBsb2dnaW5nIHJvdXRpbmVzLgogICAgICAgVGhlIG90aGVyIHNvbHV0aW9uIGlzIHRvIGhhdmUgdGhlIGxvZ2dpbmcgcm91dGluZXMgZGV0ZWN0IHdoZW4gdG8KICAgICAgIHByaW50IHRpbWVzdGFtcHMgYnkgd2F0Y2hpbmcgb3V0IGZvciBcbidzLiAgQnV0LCBub3QgdGhpcyByb3VuZC4KICAgCjE5OTktMDgtMjAgMTM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAtIG1ha2UgbG9nZ2luZyBvZiB0aW1lc3RhbXBzIG9wdGlvbmFsIGJ5IGEgc25tcC5jb25mIGRpcmVjdGl2ZS4KICAgCjE5OTktMDgtMjAgMDM6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtIGFnZW50eC8qOiB2YXJpb3VzIHByb3RvdHlwZSBmaXhlcywgdG8ga2VlcCBudW1iZXIgb2Ygd2FybmluZ3MgZG93bgogICAKMTk5OS0wOC0xOSAxNjowOSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jOgoKICAgLSAoc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMpOiBQYXRjaCBmcm9tIGRsZW5nZWxAaG9tZS5jb206CiAgICAgLSBjaGVjayBhcmd1bWVudCBjb3VudCBmb3IgbWluaW11bSBudW1iZXIuCiAgIAoxOTk5LTA4LTE5IDE0OjA5ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIHNubXBfYXBpLj8sIHNubXBkLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jOiByZWluc3RhdGUgYWdlbnRfYWRkciBpbgogICAJdGhlIHBkdSBzdHJ1Y3R1cmUgKHVzZWQgZm9yIHYxIHRyYXBzKS4KICAgCjE5OTktMDgtMTkgMTA6NDAgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91czogZnJvbSBzbm1wX2xvZ19wZXJyb3IuCiAgIAlMb2cgd2hlbiBzbm1wZCByZWNvbmZpZ3VyZXMgZm9sbG93aW5nIGEgU0lHSFVQCiAgIAoxOTk5LTA4LTE5IDEwOjM4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBcbiBmcm9tIHNubXBfbG9nX3BlcnJvciBjYWxscy4KICAgCjE5OTktMDgtMTkgMTA6MzggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6CWNvcnJlY2x5IGNhbGwgcHJlLXBhcnNlIGhvb2ssIGFsc28gd2hlbiBub3QgZGVidWdnaW5nCiAgIAkodGhpcyBraWxsZWQgdGhlIGxpYndyYXAgY2hlY2sgaW4gc25tcGQpCiAgIAoxOTk5LTA4LTE5IDAyOjM1ICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBzbm1wX2xvZ2dpbmcuYywgYWdlbnQvdmFyaW91czogcmVpbnN0YXRlIC1hIGFuZCAtViBsb2dnaW5nIChhbG1vc3QpLgogICAJdGltZXN0YW1wIGZpbGUgYW5kIHN0ZGVyciBsb2dnaW5nLgogICAKMTk5OS0wOC0xOSAwMjozMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiByZW1vdmUgc29tZSBsZWZ0IG92ZXIgZGVidWcgb3V0cHV0CiAgIAoxOTk5LTA4LTE4IDA5OjMwICBuYmEKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKG1hbnkpOgljaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBsb2dnaW5nIGZ1bmN0aW9ucyB0byBiZSBzbm1wXyoKICAgCWRlZmF1bHQgZG9fc3RkZXJyX2xvZ2dpbmcgdG8gMS4KICAgCjE5OTktMDgtMTggMDk6MjYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgLSBpbnRlcmZhY2VzLj86IHVwZGF0ZXMgZm9yIExpbnV4IHRvIGhhbmRsZSBsYXJnZSBjb3VudGVycyBhbmQgdmlydHVhbAogICAJaW50ZXJmYWNlcy4KICAgCjE5OTktMDgtMTggMDI6NTEgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsCiAgIHNubXBkLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIHNubXBkLmMsIGFnZW50X3JlYWRfY29uZmlnLj8sIHZlcnNpb25pbmZvLmM6IG1vdmUgdGhlIHJlY29uZmlndXJhdGlvbgogICAJb3V0c2lkZSB0aGUgc2lnbmFsIGhhbmRsZXIuCiAgIAoxOTk5LTA4LTE4IDAyOjQwICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFnZW50L3NubXBkLmM6CW1vdmUgdGhlIHRlcm1pbmF0aW9uIHByb2Nlc3NpbmcgZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKICAgCXRvIGFmdGVyIHRoZSBtYWluIGxvb3AgaGFzIHRlcm1pbmF0ZWQuCiAgIAoxOTk5LTA4LTE2IDE1OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIC0gKFQxMDBhZ2VudGh1cCk6IGFkZGVkIG5ldyBhZ2VudCBjYXBhYmlsaXR5IHRlc3QgdG8gdGVzdCBraWxsIC1IVVAuCiAgIAoxOTk5LTA4LTE2IDE0OjU5ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBzbm1wbmV0c3RhdC9tYWluLmM6IGVuYWJsZV9zdGRlcnJsb2coKSBzbyB0aGF0IHdlIGdldCBhbiBlcnJvciBtZXNzYWdlCiAgIAlmb3IgYmFkIGhvc3QgbmFtZXMuCiAgIAoxOTk5LTA4LTE2IDE0OjU4ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgc25tcG5ldHN0YXQvaWYuYzogYWxsb3cgLWkgYW5kIC1vIG91dHB1dHMgZXZlbiB3aXRoIGluY29tcGxldGUgcmVzcG9uc2VzCiAgIAlmcm9tIHNubXBkIChzdWNoIGFzIExpbnV4IHRoYXQgZG9lcyBub3QgcmV0dXJuIGlmSW5OVUNhc3RQa3RzCiAgIAl3aXRoIHRoZSBuZXcgRFVNTVkgc2V0dXApCiAgIAoxOTk5LTA4LTEzIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU2ICkKICAgCjE5OTktMDgtMTMgMTY6MDUgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IHJlbW92ZSB0aGUgSVNTVUVTIGZpbGUgZm9yIHJlbGVhc2VzLgogICAKMTk5OS0wOC0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gKFRFU1RDT05GLnNoKTogc3RvcmUgdGhlIHBlcmlzdGVudCBkYXRhIGluIGEgdGVtcG9yYXJ5IGZpbGUuICByZWFsbHkuCiAgIAoxOTk5LTA4LTEzIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbAosIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOgogICAgIC0gZml4ZWQgdG8gY2hlY2sgZm9yICJub3N1Y2giIGVycm9ycyBhY3R1YWxseSByZXR1cm5lZC4KICAgICAtIHNob3J0ZW5lZCB0aGUgc25tcHVzbSB0ZXN0IGRlc2NyaXB0aW9uLgogICAKMTk5OS0wOC0xMyAxNTozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGRvbid0IHJlbW92ZSBtaWJfbW9kdWxlX2xvYWRzLmguCiAgIAoxOTk5LTA4LTEzIDE1OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGNvbmZpZ19sb2FkX21pYiBwYXJzaW5nLgogICAKMTk5OS0wOC0xMyAxMjo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHByb3Blcmx5IGRvIHdoYXQgLS13aXRob3V0LWR1bW15LXZhbHVlcwogICAgIHNob3VsZCBkby4KICAgCjE5OTktMDgtMTMgMTI6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgdmFyX3JvdXRlLmMgLSAjaWZkZWYgTk9fRFVNTVkgLS0+ICNpZiBOT19EVU1NWSAobGlrZSB0aGUgb3RoZXIgdXNlcykuCiAgIAoxOTk5LTA4LTEzIDExOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jKTogZG9uJ3QgZG8gY2FjaGluZyBmb3IgTk9fRFVNTVlfVkFMVUVTLgogICAKMTk5OS0wOC0xMyAxMToxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2RldmljZS5jLCBob3N0L2hyX3ByaW50LmMsCiAgIGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYwosIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvYXQuYwosIG1pYklJL2ludGVyZmFjZXMuYywgbWliSUkvaXAuYywKICAgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMsCiAgIG1pYklJL3Zhcl9yb3V0ZS5jOgoKICAgKGhvc3QvaHJfZGV2aWNlLmMsaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYyxob3N0L2hyX3N0b3JhZ2UuYywKICAgaG9zdC9ocl9zd2luc3QuYyxob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsbWliSUkvYXQuYywKICAgbWliSUkvaW50ZXJmYWNlcy5jLG1pYklJL2lwLmMsIG1pYklJL3N5c3RlbV9taWIuYyxtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmMsbWliSUkvdmFyX3JvdXRlLmMpIC0gI2lmIE5PX0RVTU1ZX1ZBTFVFUyAoaGVscCBvdXQgY29uZmlndXJlKQogICAKMTk5OS0wOC0xMyAwOTozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IHVzZSBOT19EVU1NWV9WQUxVRVMgYnkgZGVmYXVsdC4KICAgCjE5OTktMDgtMTMgMDc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA4LTEzIDA3OjEyICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgo6CgogICAtIChORVdTLCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTktMDgtMTMgMDc6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiAibWFrZSB0ZXN0IiBpbiB0b3AgbGV2ZWwgTWFrZWZpbGUuCiAgIAoxOTk5LTA4LTEzIDAyOjQ2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLCBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmgsIG1pc2MvaXBmd2FjYy5jLCBtaXNjL2lwZndhY2MuaAosIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc211eC9zbm1wX2JncC5jCiwgc211eC9zbm1wX2JncC5oLCBzbXV4L3NubXBfb3NwZi5jLAogICBzbXV4L3NubXBfb3NwZi5oLCBzbXV4L3NubXBfcmlwMi5jLCBzbXV4L3NubXBfcmlwMi5oCjoKCiAgIC0gKGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuW2NoXQogICAgICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuW2NoXSBtaXNjL2lwZndhY2MuW2NoXQogICAgICB0YXJnZXQvc25tcFRhcmdldHtBZGRyLFBhcmFtc31FbnRyeS5bY2hdCiAgICAgIHNtdXgvc25tcF8qLltjaF0pOgogICAgICAtIFJlZ2lzdGVyIG1vZHVsZXMgZHluYW1pY2FsbHkgYXQgcnVuLXRpbWUKICAgCjE5OTktMDgtMTMgMDI6NDQgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRHJvcCBzdXBwb3J0IGZvciAnc3RhdGljJyBtb2R1bGUgcmVnaXN0cmF0aW9uIHZpYSBjb25maWd1cmUKICAgCjE5OTktMDgtMTIgMTY6NDYgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIC0gKE5FV1MsIFJFQURNRSk6IG1pbm9yIHVwZGF0ZXMuCiAgIAoxOTk5LTA4LTEyIDE2OjQxICBoYXJkYWtlcgoKICAgKiBGQVEsIG1hbi9zbm1wY21kLjEsIG1hbi9zbm1wdHJhcC4xOgoKICAgLSAoRkFRLCBzbm1wY21kLjEsIHNubXB0cmFwLjEpOiBtaW5vciBkb2MgdXBkYXRlcy4KICAgCjE5OTktMDgtMTIgMTY6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMjBzbm1wdjNnZXQsCiAgIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoU3YzY29uZmlnLCBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogdGVzdCB1cGRhdGVzLCBpbmNsdWRpbmcgYSBuZXcgc25tcHVzbSB0ZXN0LgogICAKMTk5OS0wOC0xMiAxNjoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IG5vLWZpbGwgdGhlIC5jb25mIGZpbGUgZW50cmllcy4KICAgCjE5OTktMDgtMTIgMTY6MTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYpOiB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIHRva2VuIGxpc3QuCiAgIAoxOTk5LTA4LTEyIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogYWRkZWQgdG8gZGVzY3JpYmUgdGhlIHNubXB1c20gY29tbWFuZC4KICAgCjE5OTktMDgtMTIgMDk6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLShzbm1wdXNtLmMpIC0gZml4IHBvdGVudGlhbCByZXBlYXRlZCAiZnJlZSIgb24gbWFsbG9jIGZhaWx1cmUuCiAgIAoxOTk5LTA4LTExIDIxOjUzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgc25tcG5ldHN0YXQvaWYuYzoJaGFuZGxlIG5vbi1jb250aWd1b3VzIGlmVGFibGUuIEFsc28gbWFrZSB0aGUKICAgCWNvdW50ZXJzIHVuc2lnbmVkLgogICAKMTk5OS0wOC0xMSAyMTo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgaHJfc3RvcmFnZS5jOglyZW1vdmUgdG8gZm9yZ290dGVuIGRlYnVnIGxpbmVzLgogICAKMTk5OS0wOC0xMSAxMzowNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYwo6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBNYWtlIHBlcnNpc3RlbnQgY2FjaGUgY29uZm9ybSB0byBhIG1vcmUgc2VjdXJlIHVtYXNrLgogICAKMTk5OS0wOC0xMSAxMDo1MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MywgYXBwcy9zbm1wdXNtLmM6CgogICAtIChSRUFETUUuc25tcHYzLCBzbm1wdXNtLmMpOiB1c2Ugc3Mgc2Vzc2lvbiB0byBnZXQgcHJvYmVkIGVuZ2luZUlELgogICAKMTk5OS0wOC0xMCAxNzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5jOgoKICAgLSAobGNkX3RpbWUuYyk6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMTk5OS0wOC0xMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBwcmludCAtSCB1c2FnZSB0byBzdGRlcnIuCiAgIAoxOTk5LTA4LTEwIDE3OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IHVwZGF0ZS4KICAgCjE5OTktMDgtMTAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZvcmNlIHYzIGVuZ2luZUlEIHNldHRpbmcgdG8gc29tZXRoaW5nIGJvZ3VzIHRvCiAgICAgZ2V0IGFyb3VuZCBsb2NhbCBjb25maWd1cmF0aW9uIGRhdGEgc3RvcmUgdGltZSBzeW5jaHJvbml6YXRpb24gY29uZmxpY3RzLgogICAKMTk5OS0wOC0xMCAxNDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gKHVzbVVzZXIuYyk6IFVtLCBjb3VnaCwgYWN0dWFsbHkgcmVnaXN0ZXIgdXMgaW4gdGhlICppbml0KiBmdW5jdGlvbi4uLgogICAKMTk5OS0wOC0xMCAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHByb3RlY3QgYWdhaW5zdCBldmlsIG1pYiBtb2R1bGVzIGZyb20gbW9kaWZ5aW5nCiAgICAgbWVtb3J5IHRoZXkgc2hvdWxkbid0IGJlIG1vZGlmeWluZyB5ZXQuCiAgICAgLSAoaWZkZWYnZWQgZm9yIHNwZWVkIHByb2ZpbGluZyBsYXRlcikuCiAgIAoxOTk5LTA4LTEwIDExOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGxvZyB2ZXJzaW9uIG51bWJlciBhZnRlciBzdGRlcnIgaXMgb3B0aW9uYWxseSBjbG9zZWQuCiAgIAoxOTk5LTA4LTEwIDEwOjA0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEZpeCBmb3IgYnVpbGQgKG5vIHBhZ2VzaXplIHZhciBkZWZpbmVkIGZvciBsaW51eCkuCiAgIAoxOTk5LTA4LTEwIDA5OjE5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcF9hcGkuYzoKCiAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMgLSBjb252ZXJ0IGZwcmludGYoc3RkZXJyIHRvIHNubXBfbG9nKExPR19FUlIsV0FSTklORykKICAgCjE5OTktMDgtMTAgMDQ6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jCjoKCiAgIGludGVyZmFjZXMuYyB2YXJfcm91dGUuYyBzbm1wX2xvZ2dpbmcuYzogZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTA4LTEwIDA0OjQ4ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgc25tcG5ldHN0YXQvaWYuYzoJZml4ZXMgZm9yIHNubXBuZXRzdGF0IC1pIG9uIHZpcnR1YWwgaW50ZXJmYWNlcwogICAKMTk5OS0wOC0xMCAwNDo0NyAgbmJhCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgYWdlbnQva2VybmVsLmM6CWFib3J0IG9uIGt2bV9vcGVuIGZhaWx1cmVzCiAgIAoxOTk5LTA4LTEwIDA0OjQ2ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHNubXBsaWIvbWliLmM6CWZpeCBoYW5kbGluZyBvZiBudW1lcmljIG9pZHMgYW5kIHJlcG9ydGluZyBlcnJvcnMKICAgCjE5OTktMDgtMTAgMDQ6NDUgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY29uZmlndXJlLmluIGNvbmZpZy5oLmluIGNvbmZpZ3VyZSBzL25ldGJzZCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKICAgCXN1cHBvcnQgZm9yIE5ldEJTRC9zcGFyYyBhbmQgTmV0QlNEIDEuNAogICAKMTk5OS0wOC0wOSAxNTowNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXB1c20uYzoKCiAgIHNubXB1c20uYyAtIGFsd2F5cyBjbGVhciBmaWVsZF9sZW4gaWYgcmVmIGlzIHZhbGlkIHB0cjsKICAgc25tcF9hcGkuYyAtIGRvbid0IG92ZXJ3cml0ZSBjb21tdW5pdHkgcG9pbnRlciB3aXRoIHNlY3VyaXR5QXV0aFByb3RvIHBvaW50ZXIKICAgCjE5OTktMDgtMDkgMTQ6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZXJyb3IgY2hlY2svbnVsbCBzZXQgKmFmdGVyKiBmcmVlaW5nIHRoZSBvbGQgbWVtb3J5LgogICAKMTk5OS0wOC0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBtb3JlIGVycm9yIGNoZWNraW5nIGluIHRoZSBNQUtFX0VOVFJZIG1hY3JvLgogICAKMTk5OS0wOC0wOSAxMzoxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIC9kZXYvcmFuZG9tIHRlc3QuCiAgIAoxOTk5LTA4LTA5IDExOjQwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWQ1LmMsIHNubXBfYXBpLmM6CgogICAtKG1kNS5jKSBmaXggcmVhZCBwYXN0IGVuZCBwcm9ibGVtCiAgIC0oc25tcF9hcGkuYykgZml4IGxvc2luZyBjb21tdW5pdHkgc3RyaW5nIHByb2JsZW0KICAgCjE5OTktMDgtMDkgMTA6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIChtYW55KToJbnVrZSB2YXJpb3VzIHByb3RvdHlwZSB3YXJuaW5ncwogICAKMTk5OS0wOC0wOSAwOTo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtKHNubXAuYykgZml4IGJ1ZmZlciBvdmVyZmxvdyBpbiB4ZHVtcCwgb2YgYWxsIHBsYWNlcyAoNzcgcy9iIDc4OyB1c2luZyA4MCkKICAgCjE5OTktMDgtMDkgMDY6NTQgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgbGlic25tcC5kZWYgLSByZW1vdmUgcHJpbnRfb2lkX3JlcG9ydCBkaXNhYmxlIG9wdGlvbnMKICAgCjE5OTktMDgtMDkgMDY6NTIgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICBzbm1wZC5jIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZQogICAKMTk5OS0wOC0wOSAwNjo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwZC5jCjoKCiAgICBzbm1wZGVsdGEsIHRyYW5zbGF0ZSwgdHJhcGQpIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZTsgcmVtb3ZlIGRpc2FibGVzIGZvciBwcmludF9vaWRfcmVwb3J0IGluIHRyYW5zbGF0ZS4KICAgCjE5OTktMDgtMDkgMDY6NDggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgKOgoKICAgbWliLiosIHBhcnNlLiogLSBtb3ZlIHByaW50X29pZF9yZXBvcnQgYW5kIG1pbmlvbnMgd2hvbGx5IGludG8gbWliLmMKICAgCjE5OTktMDgtMDkgMDE6MDIgIGRhdmVzCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IE5pbmUgbmV3IHF1ZXN0aW9ucywgcGx1cyBhc3NvcnRlZCB0d2Vha3MgZm9yIHRoZSBuZXcgcmVsZWFzZS4KICAgCjE5OTktMDgtMDkgMDA6MjQgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZS5jOglwYXJzZSBhZ2VudCBjYXBhYmlsaXRpZXMKICAgCjE5OTktMDgtMDYgMDc6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtKHNubXBfbG9nZ2luZy4qKSAtYWRkZWQgUmFnbmFyJ3MgcGF0Y2ggIzMgd2l0aCBzbWFsbCB0b3VjaGVzLgogICAKMTk5OS0wOC0wNiAwNjowMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS9hdC5jLCBtaWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYklJL2lwLmMsIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jLCBtaWJJSS92YXJfcm91dGUuYywgaG9zdC9ocl9kZXZpY2UuYwosIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMsCiAgIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3aW5zdC5jLCBob3N0L2hyX3N3cnVuLmMKLCBob3N0L2hyX3N5c3RlbS5jOgoKICAgLSAobWliSUkvKi5jIGhvc3QvKi5jKTogRG9uJ3QgcHJvdmlkZSAiZHVtbXkiIHZhbHVlcyAodW5sZXNzIGV4cGxpY2l0bHkgY29uZmlndXJlZCkKICAgCjE5OTktMDgtMDYgMDU6NTkgIGRhdmVzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgLSBjb25maWd1cmUtdGltZSBmbGFnIHRvIGNvbnRyb2wgcHJvdmlzaW9uIG9mICJkdW1teSIgdmFsdWVzCiAgIAoxOTk5LTA4LTA1IDExOjExICBtc2xpZmNhawoKICAgKiBtYW4vc25tcF9hcGkuMzoKCiAgIHNubXBfYXBpLjMgLSBkZXNjcmliZSBzbm1wX2Vycm9yKCksIHJlcGxhY2VzIHNubXBfZXJybm8gYW5kIHNubXBfZ2V0X2Vycm5vKCkKICAgCjE5OTktMDgtMDUgMTA6NDQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIGFnZW50eC9jbGllbnQuYyAtIHJlbW92ZSByZWZzIHRvIHNubXBfc3luY2h7c2V0dXAscmVzZXR9IG9yaWdpbmFsIHZlcnNpb24KICAgCjE5OTktMDgtMDUgMDM6MjUgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5zdWI6CgogICBjb25maWcuc3ViIC0gcGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuIHRvIHN1cHBvcnQgSFBVWCAxMQogICAKMTk5OS0wOC0wNCAxMjozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcF9hcGkuYyAtIGR1bW15IGZ1bmN0aW9ucyBzbm1wX3N5bmNoX3tzZXR1cCxyZXNldH0gYW5kIHNubXBfZ2V0X2Vycm5vLgogICAKMTk5OS0wOC0wNCAwOToxNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtKGNvbmZpZ3VyZSopIC0gS2VuIEhvcm5zdGVpbjogZml4IHRlc3QgeHhnZXRob3N0YnluYW1lLCB4eGdldHNlcnZieW5hbWUuCiAgIAoxOTk5LTA4LTA0IDA1OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1bmRvIHBhdGNoIGFyb3VuZCBTb2xhcmlzJyBjb25maWd1cmUgZmFpbHVyZSB0byByZWdpc3RlciBIQVZFX0dFVEhPU1RCWU5BTUUuCiAgIAoxOTk5LTA4LTA0IDAzOjQ4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0oc211eC5jKSAtIHBhdGNoIHN1cHBsaWVkIGJ5IE5pY2sgQW1hdG8gdG8gZml4IEFTTl9JUEFERFJFU1MgcGFyc2UuCiAgIAoxOTk5LTA4LTA0IDAxOjQ2ICBkYXZlcwoKICAgKiBtaWJzL1VDRC1ERU1PLU1JQi50eHQ6CgogICAtIChtaWJzL1VDRC1ERU1PLU1JQi50eHQpOiBSZS1yZXNvbHZlIGZpbGUgJiB1Y2REZW1vIE9JRCBjb25mbGljdAogICAKMTk5OS0wOC0wMyAxNDowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBzbm1wX2RlYnVnLmMgLSBzaWduZWQgY29tcGFyaXNvbiBmb3IgbGVuIGluIGRlYnVnbXNnX2hleHRsaS4KICAgCjE5OTktMDgtMDMgMTI6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgc25tcF9kZWJ1Zy5oIC0gZml4ICJ3YXJuaW5nOiBBTlNJIEMgZm9yYmlkcyBjb25kaXRpb25hbCBleHByIHdpdGggb25seSBvbmUgdm9pZCBzaWRlIi4KICAgCjE5OTktMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRS53aW4zMiAtIHJ1bnRpbWUgbGliIGFuZCBkZWJ1ZyBpbmZvIGNvdXJ0ZXN5IG9mIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMDgtMDMgMDc6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgdmFjbV92YXJzLmMgLSBjb3B5IGNvbW11bml0eSBzdHJpbmcsIG51bGwgdGVybWluYXRlLCB0aGVuIGRlYnVnIHByaW50CiAgIAoxOTk5LTA4LTAzIDA3OjAzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIHNubXBfZGVidWcuaCAtIG1vdmUgREVCVUdUUkFDRSBmcm9tIGRlYnVnbXNnX2hleHRsaSB0byBERUJVR0RVTVBTRVRVUAogICAKMTk5OS0wOC0wMyAwNzowMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBzbm1wX2RlYnVnLmMgLSByZW1vdmUgdHJhY2UgbWVzc2FnZXMgZnJvbSBkZWJ1Z21zZ19oZXh0bGkuCiAgIAoxOTk5LTA4LTAzIDA2OjU5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGFzbjEuYyAtIGZpeCBvdXQtb2YtYm91bmQgYXJyYXkgd3JpdGUgYW5kIG1lbW9yeSBsZWFrIGluIHBhcnNpbmcgc3RyaW5ncy4KICAgCjE5OTktMDgtMDMgMDQ6NDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmMgLSByZW1vdmUgIkJZIiBmcm9tIEhBVkVfR0VUSE9TVEJZTkFNRSAoU29sYXJpcyAyLjUuMSB3cm9uZyEpCiAgIAoxOTk5LTA4LTAyIDIyOjI5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIHNubXBfZGVidWcgLSBERUJVR01TRyBtYWNyb3MgY2FsbCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcgYmVmb3JlIGludm9raW5nIGRlYnVnbXNnKiBmdW5jdGlvbnMuCiAgIAoxOTk5LTA4LTAyIDA0OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBwYXJzZSAtIHNoYW1lIG9uIG1lIGZvciBub3QgY29tcGlsZSB0ZXN0aW5nIGZpcnN0IQogICAKMTk5OS0wOC0wMiAwNDoyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFzbjEuYywgcGFyc2UuYzoKCiAgIGFzbjEsIHBhcnNlKSBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuIChNSlMtdXNlIHhjYWxsb2MgaW4gcGFyc2UpCiAgIAoxOTk5LTA3LTMwIDE0OjE5ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgUkVBRE1FCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNSApCiAgIAoxOTk5LTA3LTMwIDE0OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMzAgMTQ6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIC92YXIvdWNkLXNubXAgZXhpc3QuICBXZSBzaG91bGQgZG8gYSBwZXJtaXNzaW9uCiAgICAgc2V0IGFzIHdlbGwuCiAgIAoxOTk5LTA3LTMwIDE0OjEwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciBydW4uCiAgIAoxOTk5LTA3LTMwIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IGdlbmVyaWMgdjMgaW5zdHJ1Y3Rpb25zLCBidXQgaGFzIGVycm9ycy4KICAgCjE5OTktMDctMzAgMDg6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIG5vIHN0cnVjdCBzb2NrYWRkcl9kbCBpbiBBSVggMy4KICAgCjE5OTktMDctMzAgMDg6MDEgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCB2c25wcmludGYgY2hlY2sgYW5kIEhBVkVfVlNOUFJJTlRGIGNvbnN0YW50CiAgIAoxOTk5LTA3LTMwIDA3OjMxICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQogICAKMTk5OS0wNy0zMCAwNzowMSAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5CiAgIAoxOTk5LTA3LTMwIDA2OjU4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIG5vbi1leGlzdGVudCBzbm1wX3ZhcnNfbTJtLmgKICAgCjE5OTktMDctMzAgMDY6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc3lzdGVtLmg6CgogICB1c2UgdHJhZGl0aW9uYWwgSyZSIGNvbW1lbnRpbmc7IG5vdCBhbGwgIkMiIGNvbXBpbGVycyBhY2NlcHQgIi8vIiBjb21tZW50cy4KICAgCjE5OTktMDctMzAgMDY6MzAgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgd2luMzIvY29uZmlnLmggLSBkZWZpbmUgSEFWRV9HRVRIT1NUTkFNRQogICAKMTk5OS0wNy0zMCAwNjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHN5c3RlbSAtIHVzZSBzaXplb2YKICAgCjE5OTktMDctMzAgMDY6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzbm1wdjMgLSBrZXkgb2ZmIEhBVkVfR0VUSE9TVE5BTUU7IHVzZSBzaXplb2YgYnVmCiAgIAoxOTk5LTA3LTMwIDA2OjIzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgIHNubXBfdmFycy5jLCBzbm1wX3ZhcnNfbTJtLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jIGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgc25tcF92YXJzX20ybS5oKToKICAgICAtIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2Ygb2Jzb2xldGUgdjJwYXJ0eSBNYW5hZ2VyLXRvLU1hbmFnZXIgc3VwcG9ydAogICAKMTk5OS0wNy0zMCAwNjoxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNubXB2MyAtIHdyYXAgcG9zc2libHkgdW51c2VkIHZhcnMgaW4gI2lmZGVmIEhBVkVfR0VUSE9TVE5BTUUKICAgCjE5OTktMDctMzAgMDY6MDAgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMKICAgICAgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oKToKICAgICAgLSAgUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiB2MnAgc3VwcG9ydAogICAKMTk5OS0wNy0zMCAwNTo0MiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGhyX3N0b3JhZ2UuYyAtIGF1dG9fbmxpc3QgZm9yIEhSX1NUT1JFX1NJWkUKICAgaHJfc3dydW4uYyAtIGZpeCBnbG9iYWwgc2hhZG93IGRlY2wKICAgc25tcF9sb2dnaW5nLmMgLSBjaGFuZ2UgZmlsdGVyIGZvciBvcGVubG9nIHBlciBBLiBTeW1vbnMgcGF0Y2gKICAgCjE5OTktMDctMzAgMDQ6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIHJlbmFtZSBzZCB0byBpZnNkIC0gYXZvaWQgZ2xvYmFsIHNoYWRvdyBkZWNsCiAgIAoxOTk5LTA3LTMwIDA0OjM5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZGVjbCBsb2dfcGVycm9yCiAgIAoxOTk5LTA3LTMwIDA0OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICByZW5hbWUgbG9jYWwgdmFyICdsYXN0JyB0byAnbGFzdF9pcGNoJyAtIGF2b2lkIHNoYWRvdyBnbG9iYWwgZGVjbAogICAKMTk5OS0wNy0zMCAwNDowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvaGlzdG9yeS5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgLShhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLGFnZW50L2hpc3RvcnkuYyxhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYyxzbm1wbGliL3NubXBfbG9nZ2luZy5jLHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmMpIC0gcHNvcyBkaWZmcyBvZmZlcmVkIGJ5IEFudGhvbnkgU3ltb25zCiAgIAoxOTk5LTA3LTMwIDAzOjU3ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIFJlbW92ZWQgaGludCBvZiB2MnBhcnR5IGZyb20gY29tbWVudC4KICAgCjE5OTktMDctMzAgMDM6NTEgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGUgSEFWRV9HRVQ/Pz9CWU5BTUU7IFJlbW92ZWQgdW51c2VkIF9DUlRJTVAKICAgCjE5OTktMDctMzAgMDM6NDggIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRS53aW4zMiAtIGNsZWFuZWQgdXAsIGFkZGVkIG1vcmUgYWNrbm93bGVkZ2VtZW50cwogICAKMTk5OS0wNy0yOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4eC5oOgoKICAgLSAoYWdlbnR4eC5oKTogcmVtb3ZlZAogICAKMTk5OS0wNy0yOSAxNzowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS86IGFjbF92YXJzLmMsIGFjbF92YXJzLmgsCiAgIGFsYXJtLmMsIGFsYXJtLmgsIGNvbnRleHRfdmFycy5jLAogICBjb250ZXh0X3ZhcnMuaCwgZXZlbnQuYywgZXZlbnQuaCwgcGFydHlfdmFycy5jCiwgcGFydHlfdmFycy5oLCB2aWV3X3ZhcnMuYywgdmlld192YXJzLmg6CgogICAtIChtaWJncm91cC92MnBhcnR5KTogcmVtb3ZlZCBmaWxlcy4KICAgCjE5OTktMDctMjkgMTc6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogcmVtb3ZlIHRyYXBfc3BlY2lhbCBzdHVmZi4KICAgCjE5OTktMDctMjkgMTY6MDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB1c2UgZnB1dHMsIGFzIHZzcHJpbnRmIGhhcyBhbHJlYWR5IGRvbmUgdGhlIGhhcmQgd29yay4KICAgCjE5OTktMDctMjkgMTU6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBmbHVzaCBmaWxlIGFuZCBzdGRlcnIgYWZ0ZXIgd3JpdGUuCiAgIAoxOTk5LTA3LTI5IDE1OjUwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLShzbm1wX2xvZ2dpbmcpIGluY29ycG9yYXRlIFJhZ25hcidzIGltcHJvdmVtZW50cyB3aXRoIGludGVyZXN0CiAgIAoxOTk5LTA3LTI5IDE1OjA0ICBtc2xpZmNhawoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywga2VybmVsLmM6CgogICBhdXRvX25saXN0LCBrZXJuZWw6IHBsYWNlIGxvZ19wZXJyb3IgdG8gY2F0Y2ggZXJybm8gdmFsdWUgaW4gcmVwb3J0LgogICAKMTk5OS0wNy0yOSAxMzo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0oYWdlbnQvc25tcGQuYykgLSBsb2cgc3RhbmRhcmQgZXJyb3IgdW50aWwgaW5pdCBpcyBjb21wbGV0ZWQuCiAgIAoxOTk5LTA3LTI5IDEzOjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLShhcHBzL01ha2VmaWxlLmluKSAtIGNvbW1lbnQgdW5uZWVkZWQgVFJBUFNQRUNJQUwgbGluZQogICAKMTk5OS0wNy0yOSAxMjo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0oc25tcF9sb2dnaW5nKSAtIGZpeCBsb2dfcGVycm9yCiAgIAoxOTk5LTA3LTI5IDA4OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBtZW1vcnlfc29sYXJpczI6IGhhbmRsZSBtYWxsb2MgZXJyb3JzCiAgIGtlcm5lbF9zdW5vczU6IHNoYXJlIGtzdGF0IGZpbGRlcyBbU0hBUkVfS1NUQVRfRkRdCiAgIAoxOTk5LTA3LTI5IDAzOjI5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKG1pYklJL3ZhY21fdmFycy5jKTogQ2F0Y2ggdXNlIG9mIHVuY29uZmlndXJlZCBFWEFNUExFLmNvbmYgZmlsZXMKICAgCjE5OTktMDctMjggMTM6MzMgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC1SRUFETUUud2luMzIgLSBidWlsZCBndWlkZSBmb3IgV2luMzIuIEN5Z3dpbiBmcmllbmRseSBzY3JpcHQgaW5jbHVkZWQuCiAgIAoxOTk5LTA3LTI4IDA5OjQxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgc25tcF9sb2dnaW5nLmM6IGFkanVzdCBoZWFkZXJzIGZvciB0aGF0IFdpbjMyIHBsYXRmb3JtLgogICAKMTk5OS0wNy0yOCAwOTowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0oc25tcF9sb2dnaW5nKSBTdXBwb3J0IGhwdXg5IGFuZCBzb2xhcmlzMi41LjEgd2l0aCB2c3ByaW50ZiBpbnN0ZWFkLgogICAKMTk5OS0wNy0yOCAwNjo0NSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBjaGFuZ2UgbWFpbCBhZGRyIHRvIHVjZC1zbm1wLWJ1Z3MKICAgCjE5OTktMDctMjggMDI6NDIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwo6CgogICBocl9zd3J1biAtIHJlc2V0IHBvaW50ZXIgaW4gbW9kdWxlIGluaXQgKGhlbHAgSFAvVVggOSkKICAgc25tcF9sb2dnaW5nIC0gdXNlIHZzcHJpbnRmIGZvciBIUC9VWC05CiAgIAoxOTk5LTA3LTI3IDIzOjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgbWQ1LmMsIG1kNS5oLCBzY2FwaS5jCiwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYzoKCiAgIC0oa2V5dG9vbHMuYyxtZDUuYyxtZDUuaCxzY2FwaS5jLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jKSBjYXRjaCBNRDUgZXJyb3JzCiAgIAoxOTk5LTA3LTI3IDIzOjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLShzbm1wZC5jKSBpbnZva2UgbG9nIGZ1bmN0aW9ucyBmcm9tIGNoaWxkIChjb3JyZWN0IHByb2Nlc3MgSUQgaW4gc3lzbG9nKQogICAKMTk5OS0wNy0yNyAyMTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0oc25tcF9sb2dnaW5nLmMpIGZpeCBzeXNsb2cgYnkgdnNucHJpbnRmIHRvIGJ1ZmZlci4KICAgCjE5OTktMDctMjcgMTk6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtKG1pYi5jKSBmaXggd2Fsa2luZyBPSUQgbGVuZ3RoIHBvaW50ZXIsIG51bWVyaWMgc3ViLWlkIG5vdCBmb3VuZAogICBpbiByZWFkX29iamlkIGFuZCBwYXJzZV9zdWJ0cmVlLgogICAKMTk5OS0wNy0yNyAxOTowMiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0oc25tcF9wYXJzZV9hcmdzKSBpbiBzbm1wX3BhcnNlX29pZCwgdHJ5IGdldF9ub2RlIGlmIHJlYWRfb2JqaWQgZmFpbHMuCiAgIAoxOTk5LTA3LTI3IDE3OjE1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGluY2x1ZGluZyBtaWIuaCByZXF1aXJlcyBzdGRpby5oIHRvIGRlZmluZSBGSUxFICouCiAgIAoxOTk5LTA3LTI3IDE2OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IGZpeCBoZWFkZXIgZHVtcC4KICAgCjE5OTktMDctMjcgMTY6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYwosIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmM6CgogICAtIChhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CiAgICAgLSBjbGVhbmVkIHVwIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KICAgICAtIGFkZGVkIG1vcmUgZHVtcCBwYXJzZSBoZWFkZXJzIGZvciB2MyBkdW1wcy4KICAgCjE5OTktMDctMjcgMTY6MDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0oaW50ZXJmYWNlcy5jKSAtIGZpeCBlcnJvciBzZXR0aW5nIGlmX2lieXRlcyBmb3IgTGludXggMi4wCiAgIAoxOTk5LTA3LTI3IDEyOjIzICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdXNtLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKGFwcHM6ZW5jb2RlX2tleWNoYW5nZS5jLHNubXBkZWx0YS5jLHNubXB0YWJsZS5jLCBzbm1wdXNtLmM7CiAgIHNubXBsaWI6cmVhZF9jb25maWcuYyxzbm1wdjMuYzsgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpIC0KICAgIGFkanVzdCBoZWFkZXJzLCBidWlsZCBXaW4zMiBzbm1wdXNtK2VuY29kZV9rZXljaGFuZ2UKICAgCjE5OTktMDctMjcgMTI6MDAgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwCiwgc25tcHVzbS9zbm1wdXNtLmRzcDoKCiAgIC0oZW5jb2RlX2tleWNoYW5nZS5kc3Asc25tcHVzbS5kc3ApIC1idWlsZCB1c2luZyBjb21tb24gV2luMzIgY29tcGlsZXIKICAgCjE5OTktMDctMjcgMDk6NDAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBzdWJhZ2VudC5jOgoKICAgLShtYXN0ZXIuYywgc3ViYWdlbnQuYykgdW4tY29tbWVudCBpbml0X21hc3RlciBhbmQgaW5pdF9zdWJhZ2VudC4KICAgCjE5OTktMDctMjcgMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9zbm1wZC5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyxhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsYXBwcy9zbm1wZGVsdGEuYyxhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLGFwcHMvc25tcHNldC5jLGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLGFwcHMvc25tcHRlc3QuYyxhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsYXBwcy9zbm1wdXNtLmMsYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyxhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLHNubXBsaWIvcGFyc2UuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcHYzLmMpIGZpeCBzbm1wX3Nlc3NfcGVycm9yIHVzZTsgdXNlIGxvZ19wZXJyb3IgZm9yIHBlcnJvcgogICAKMTk5OS0wNy0yNyAwNzo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQva2VybmVsLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLGFnZW50L2RsbW9kcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyxhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyxhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgc25tcGxpYi9hc24xLmMsc25tcGxpYi9zY2FwaS5jLHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oKSAgRVJST1JfTVNHLCBwcmludGYgLS0+IERFQlVHTVNHVEwKICAgCjE5OTktMDctMjcgMDY6MzggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBlcnJvcm1pYi5jLAogICBleHRlbnNpYmxlLmMsIGZpbGUuYywgaHB1eC5jLCBsb2FkYXZlLmMsCiAgIG1lbW9yeS5jLCBtZW1vcnlfZnJlZWJzZDIuYywgbWVtb3J5X3NvbGFyaXMyLmMsCiAgIHJlZ2lzdHJ5LmM6CgogICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC8qLmMpOiB0d2VhayByZWdpc3RyeSBsYWJlbHMKICAgCjE5OTktMDctMjcgMDQ6MjQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGFkZCBpbmNsdWRlIG5ldC9pZl9kbC5oIHN1Z2dlc3RlZCBieSBUb20gSXZhciBIZWxiZWtrbW8KICAgCjE5OTktMDctMjYgMTc6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIC0gKHNjYXBpLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBzaXplX3QgZml4LgogICAKMTk5OS0wNy0yNiAxNzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIHBhcnNlLmMsCiAgIHNjYXBpLmM6CgogICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLCBzY2FwaS5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gc2l6ZV90IGNoYW5nZXMuCiAgIAoxOTk5LTA3LTI2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSB2YXJpYWJsZSBuYW1pbmcgY2hhbmdlLgogICAKMTk5OS0wNy0yNiAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDctMjYgMTU6MTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jCiwgc25tcF9hdXRoLmMsIHNubXB1c20uYzoKCiAgIC0oYXNuMS5jLGFzbjEuaCxzbm1wLmMsc25tcF9hcGkuYyxzbm1wX2F1dGguYyxzbm1wdXNtLmMpIG1vcmUgZGV0YWlsZWQgcGFyc2UgZXJyb3IgbWVzc2FnZXMuCiAgIAoxOTk5LTA3LTI2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBCSVRfc3RyaW5nOiAtPiBCSVRTOgogICAKMTk5OS0wNy0yNiAxMTo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgdmVyc2lvbi5oLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNCApCiAgIAoxOTk5LTA3LTI2IDA5OjE0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZWQgYSBiaXQKICAgCjE5OTktMDctMjYgMDk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgo6CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMjYgMDc6MzcgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSAoU05NUHYyLUNPTkYudHh0KTogcmVtb3ZlZCBib2d1cyBJTVBPUlRTIGNsYXVzZQogICAKMTk5OS0wNy0yNCAwODoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0obWQ1LmMpIC0gd3JhcCB1bnVzZWQgTUQ1cHJpbnQgd2l0aCBTTk1QX1RFU1RJTkdfQ09ERSBpZmRlZgogICAKMTk5OS0wNy0yNCAwODowNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmgsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hbGFybS5oCiwgc25tcF9sb2dnaW5nLmg6CgogICAtKGNhbGxiYWNrLmgsZGVmYXVsdF9zdG9yZS5oLHNubXBfYWxhcm0uaCxzbm1wX2xvZ2dpbmcuaCkgZXh0ZXJuICJDIiB3cmFwcGVkCiAgIAoxOTk5LTA3LTI0IDA3OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtKHNubXBfY2xpZW50LmMpIC0gdXNlIFNFVF9TTk1QX0VSUk9SIGZvciByZXN0b3JlZCBzbm1wX2Vycm5vIHNldHMuCiAgIAoxOTk5LTA3LTI0IDA3OjE4ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0obGlic25tcC5kZWYpIC0gYWRkIGRlY2xzIGZvciBuZXcgZXJyb3IgbG9nZ2luZyBmdW5jdGlvbnMuCiAgIAoxOTk5LTA3LTI0IDA3OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0oYXNuMS5jKSAtIGZpeCBjb21wYXJlIGVycm9yIGF0IGxpbmUgMzg2OyByZW1vdmUgdW51c2VkIHZhcnMgZWxzZXdoZXJlCiAgIAoxOTk5LTA3LTIzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkLmMsIHNubXB1c20uYywgc25tcHdhbGsuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgICBzbm1wX2NsaWVudC5jKToKICAgICAtIG1ha2UgYW5kIHVzZSBzbm1wX3Nlc3NfcGVycm9yKHN0ciwgc2VzcykgZm9yIGVycm9yIHByaW50aW5nLgogICAKMTk5OS0wNy0yMyAxNDozMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFQuc2gsIFQyLnNoLCBkZW1vLnJlbW90ZSwgZGVtbzIKLCBkZW1vMi5mdW5jdGlvbnMsIGRlbW8yLnNldHVwZmlsZToKCiAgIC0gKFQuc2gsIFQyLnNoLCBkZW1vLnJlbW90ZSwgZGVtbzIsIGRlbW8yLmZ1bmN0aW9ucywgZGVtbzIuc2V0dXBmaWxlKToKICAgICAtIHJlbW92ZWQgc29tZSB1bi1uZWVkZWQgb2xkZXIgZGVtbyBmaWxlcy4KICAgCjE5OTktMDctMjMgMTQ6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwKICAgdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsCiAgIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLCB0ZXN0cy9UMDE0c25tcHYyY2dldCwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsCiAgIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LCB0ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLCBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgICBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dCwKICAgICBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsIFQwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgICAgVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsCiAgICAgVDAyM3NubXB2M2dldE1ENURFUyk6IHN1cHBvcnQgYSBTTk1QX0ZMQUdTIGVudiB2YXJpYWJsZS4KICAgCjE5OTktMDctMjMgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogaW5pdCBkZWJ1Z2dpbmcuCiAgIAoxOTk5LTA3LTIzIDE0OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYwosIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgLSByZXZlcnQgdG8gbm9uLWRwYXJzZSB2ZXJzaW9ucyBvZiBhc24gZGVjb2RpbmcuCiAgIAoxOTk5LTA3LTIzIDEzOjIxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIChldmFsX3Rvb2xzLnNoKTogYSBsaXR0bGUgbW9yZSB2ZXJib3NlIGFib3V0IHdoYXQgaXMgcnVubmluZy4KICAgCjE5OTktMDctMjMgMTM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jCiwgc25tcF9hcGkuYzoKCiAgIC0gKGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBzbm1wX2xvZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDctMjMgMTM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgLSAoc25tcC5jKTogeGR1bXAgZml4ZXMuCiAgIAoxOTk5LTA3LTIzIDEzOjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IG51bGwgdGVybWluYXRlIHBhcnNlZCBzdHJpbmdzLCBqdXN0IGluIGNhc2UuCiAgIAoxOTk5LTA3LTIzIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBjaGFuZ2UgbWFsbG9jIHNpemUoKS4KICAgCjE5OTktMDctMjMgMTM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogbW9yZSBzbm1wX2xvZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDctMjMgMTM6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5oKTogYWRkZWQgZm9yIGEgcHJvdG90eXBlIGRlZmluaXRpb24uCiAgIAoxOTk5LTA3LTIzIDEwOjQyICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvSUYtTUlCLnR4dCwKICAgbWlicy9JUC1NSUIudHh0LCBtaWJzL1RDUC1NSUIudHh0LCBtaWJzL1VEUC1NSUIudHh0Ciwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBrZXJuZWxfc3Vub3M1LmMsIHV0aWxfZnVuY3MuYywgaW50ZXJmYWNlcy5jLAogICAgIGludGVyZmFjZXMuaCwgc3lzdGVtX21pYi5jLCB2YXJfcm91dGUuYywgc25tcEVuZ2luZS5jLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wdHJhcGQuYywgSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgICBJQU5BaWZUeXBlLU1JQi50eHQsIElGLU1JQi50eHQsIElQLU1JQi50eHQsIFRDUC1NSUIudHh0LAogICAgIFVEUC1NSUIudHh0LCBwYXJzZS5jLCBzbm1wX2FsYXJtLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6CiAgICAgLSBtZXJnZSBmcm9tIFYzLWxpbmUgcG9zdCAzLjYuMiB0byBjdXJyZW50LgogICAgIC0gbWlzYyBidWcgZml4ZXMuCiAgICAgLSBtYWtlIGFwcHMgdHVybiBvbiBzdGRlcnIgbG9nZ2luZyBieSBkZWZhdWx0LgogICAKMTk5OS0wNy0yMyAxMDozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbG9nIHRvIHN0ZGVyci4KICAgCjE5OTktMDctMjEgMTY6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLnN0b3JhZ2UuY29uZiwgdGttaWI6CgogICAtICh0a21pYiwgbWliMmMpOiB1ZHBhdGUgdG8gdXNlIGluZGV4ZXMgKHJlcXVpcmVzIGEgcGVybCBwYXRjaC4KICAgCjE5OTktMDctMjAgMTk6MzMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRlc3QuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBubyBwcmludGYgaW4gYXNjaWlfdG9fYmluYXJ5CiAgIAoxOTk5LTA3LTIwIDE4OjExICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLW1pbm9yIGNoYW5nZXMgdG8gYnVpbGQgV2luMzIgcGxhdGZvcm1zIHVzaW5nIEN5Z1dpbi1lZ2NzIGFuZCBNU1ZDIGNvbXBpbGVycy4KICAgCjE5OTktMDctMjAgMTc6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtIChzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiAtV2FsbCBmaXhlcyAoQU5TSSkuCiAgIAoxOTk5LTA3LTIwIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jCiwgZGxtb2RzL2RsbW9kX21pYi5jLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBtaWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jOgoKICAgLSAoYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsCiAgICAgaXBmd2NoYWlucy5jLCBpbnRlcmZhY2VzLmMsIGRsbW9kLmMsIHNtdXguYywgdmVyc2lvbmluZm8uYywKICAgICBhbGFybS5jKToKICAgICAtIGNvbnZlcnQgc25tcF9sb2coTE9HX0RFQlVHKSB0byBERUJVR01TR1RMKCkuCiAgIAoxOTk5LTA3LTIwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2hpc3RvcnkuYywgYWdlbnQva2VybmVsLmMKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfZGVidWcuYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChhdXRvX25saXN0LmMsIGhpc3RvcnkuYywga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmgsIHV0aWxfZnVuY3MuYywgaXBmd2NoYWlucy5jLAogICAgIGF0LmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFjbV92YXJzLmMsIHZhcl9yb3V0ZS5jLCBkbG1vZC5jLCBzbXV4LmMsIGRpc2suYywgZXh0ZW5zaWJsZS5jLAogICAgIGxvYWRhdmUuYywgbWVtb3J5X3NvbGFyaXMyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywKICAgICB2ZXJzaW9uaW5mby5jLCBhbGFybS5jLCBldmVudC5jLCBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jLAogICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKICAgICBLauClhuCkhuCkkHJzdGFkOgogICAgIC0gZG8gZmlsZSwgc3RkZXJyLCBhbmQgc3lzbG9nIHN1cHBvcnQuCiAgIAoxOTk5LTA3LTE1IDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmg6CgogICAtIChhc24xLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAtIG5lZWRzIGEgbG90IG1vcmUgd29yayBhbmQgY2xlYW4gdXAuCiAgICAgLSBJIG5lZWQgY29tbWVudHMuLi4gIFRlbGwgbWUgd2hhdCB5b3UgdGhpbmsuLi4KICAgCjE5OTktMDctMTUgMDg6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiBpbmNsdWRlIGFycGEvaW5ldC5oLgogICAKMTk5OS0wNy0xNCAxMzo0NiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCiAgIAoxOTk5LTA3LTE0IDA3OjE5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogV2FybmluZyAtIGhlcmUgYmUgZHJhZ29ucy4uLi4KICAgCjE5OTktMDctMTIgMDg6MzIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsCiAgIGhyX2Rpc2suYywgaHJfZGlzay5oLCBocl9maWxlc3lzLmMsCiAgIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsCiAgIGhyX3BhcnRpdGlvbi5jLCBocl9wYXJ0aXRpb24uaCwgaHJfcHJpbnQuYywKICAgaHJfcHJpbnQuaCwgaHJfcHJvYy5jLCBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYwosIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywKICAgaHJfc3lzdGVtLmg6CgogICAtIChtaWJncm91cC9ob3N0LyopOiBEeW5hbWljYWxseSByZWdpc3RlciBhbGwgSG9zdCBSZXNvdXJjZSBtb2R1bGVzCiAgIAoxOTk5LTA3LTEyIDA3OjE0ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogcmVtb3ZlIGRlcGVuZGVuY3kgb24gc25tcGxpYi9hZ2VudHguaAogICAKMTk5OS0wNy0xMSAxODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgogICAKMTk5OS0wNy0wOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAtIChzbm1wX2FsYXJtLmMpOiBmaXggY2xpZW50cmVnIGVycm9yLgogICAKMTk5OS0wNy0wOSAxNDoxOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zeXN0ZW0uaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0od2luMzIsc25tcGxpYixhcHBzLGFnZW50KSBhZGQgc25tcF9zb2NrZXRfbGVuZ3RoIHRvIGhpZGUgc29ja2FkZHJfdW47IFdpbjMyIHRvdWNodXBzCiAgIAoxOTk5LTA3LTA5IDEyOjEyICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wX3Nlc3NfYXBpLjMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKHNubXBfY2xpZW50LiopIHJlbW92ZSBzbm1wX3N5bmNoX3NldHVwLCBzbm1wX3N5bmNoX3Jlc2V0CiAgIAoxOTk5LTA3LTA5IDA4OjM1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmM6CgogICAtIChzbm1wbGliL2FnZW50eCopOiBNb3ZlZCBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQogICAKMTk5OS0wNy0wOSAwODozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHguaCwgYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudHgvY2xpZW50LmgsIGFnZW50eC9tYXN0ZXIuYywgYWdlbnR4L21hc3Rlci5oCiwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50eC9wcm90b2NvbC5oLCBhZ2VudHgvc3ViYWdlbnQuYwosIGFnZW50eC9zdWJhZ2VudC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmggYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOgogICAgIC0gTW92ZSBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcgdG8gYSAobW9zdGx5KSBzZWxmLWNvbnRhaW5lZCBtb2R1bGUKICAgCjE5OTktMDctMDkgMDg6MjcgIGRhdmVzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9hcGkuYywKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCjoKCiAgIC0gKCovTWFrZWZpbGUuaW4gc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgIGFnZW50L3NubXBkLltjaF0gYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBNb3ZlIEFnZW50WCBoYW5kbGluZyBvdXQgb2YgdGhlIG1haW4gU05NUCBsaWJyYXJ5CiAgIAoxOTk5LTA3LTA5IDAxOjQ5ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKICAgCjE5OTktMDctMDggMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rgpYbgpIbgpJByc3RhZDoKICAgICAtIEFkZCBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdG8gYSBnaXZlbiB1aWQgYW5kIGdpZC4KICAgCjE5OTktMDctMDggMTU6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oCjoKCiAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KICAgCjE5OTktMDctMDggMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAogICAKMTk5OS0wNy0wOCAxNDozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLCBzbm1wbGliL2FjbC5oCiwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHZpZXdfcGFyc2UuYywgdmFjbV92YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgYWNsLmgsIGFjbF9wYXJzZS5jLCBjb250ZXh0LmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgIGxpYnNubXAuaCwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgLSB2MnBhcnR5IHN1cHBvcnQgaXMgZmluYWxseSBnb25lIQogICAKMTk5OS0wNy0wOCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhZ2VudHguYywgYWdlbnR4Lmg6CgogICAtIChhZ2VudHguYywgYWdlbnR4LmgpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTktMDctMDggMTQ6MjkgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgogICAKMTk5OS0wNy0wOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgLSAodG9vbHMuYyk6IHR5cG8gaW4gI2lmZGVmLgogICAKMTk5OS0wNy0wOCAwNjoyNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzbm1wX21pYi5jLCBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS9zeXN0ZW1fbWliLmMgbWliSUkvc25tcF9taWIuYyk6CiAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgYW5kIHVzaW5nIHRoZSBmdWxsIFNFVCBtdWx0aS1wYXNzIGFsZ29yaXRobQogICAKMTk5OS0wNy0wOCAwMjoxNiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFJldGFpbiBjb21tdW5pdHkgc3RyaW5nIGluIHJlc3BvbnNlcwogICAKMTk5OS0wNy0wNyAwNjo1NCAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBhZ2VudHguYywgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMgYXNuMS5oIHNubXAuYyBzbm1wLmggc25tcF9hcGkuYyBzbm1wX2FwaS5oCiAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgLSBGaXJzdCBhdHRlbXB0IGF0IGZvcm1hdHRlZCBkaXNwbGF5IG9mIHBhY2tldCBkYXRhCiAgIAoxOTk5LTA3LTA2IDAyOjIwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBGaXggaGFuZGxpbmcgb2YgU05NUHYxIG5vU3VjaE5hbWUKICAgCjE5OTktMDctMDIgMDg6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcmVnaXN0ZXIgZGVidWdnaW5nIHRva2VucyB3aXRoIC1ECiAgIAoxOTk5LTA3LTAyIDA1OjE4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eHguaCwgYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudHgvbWFzdGVyLmgsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnR4L21hc3Rlcl9hZG1pbi5oLCBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0Lmg6CgogICAtIChtaWJncm91cC9hZ2VudHh4LmggbWliZ3JvdXAuYWdlbnR4Lyk6IEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgQWdlbnRYIG1hc3RlcgogICAKMTk5OS0wNy0wMiAwNToxNiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHN1cHBvcnQgbGlzdHMgb2Ygc2Vzc2lvbnMgKGFuZCBzdWJzZXNzaW9ucykKICAgCjE5OTktMDctMDIgMDU6MTUgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgdmFyX3N0cnVjdC5oOgoKICAgLSAodmFyX3N0cnVjdC5oIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgogICAKMTk5OS0wNy0wMiAwNToxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9hc24xLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmg6CgogICAtIChzbm1wbGliL2FzbjEuaCBhZ2VudC9zbm1wX3ZhcnMuaCBhZ2VudC9zbm1wX2FnZW50LmMpOgogICAgIC0gaW1wbGVtZW50IGFuIGludGVyZmFjZSBmb3IgZGVsZWdhdGluZyByZXF1ZXN0cyB0byBzdWJhZ2VudHMKICAgCjE5OTktMDctMDIgMDI6MzkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXggdGhhdCBsYXN0ICdzZW5kdG8nIGNhc2UgKmNvcnJlY3RseSogdGhpcyB0aW1lCiAgIAoxOTk5LTA3LTAyIDAyOjA0ICBkYXZlcwoKICAgKiBzbm1wbGliL2FnZW50eC5jOgoKICAgLSAoYWdlbnR4LmMpOiBCZXR0ZXIgaGFuZGxpbmcgb2YgYnVpbGRpbmcgbnVsbCBzdHJpbmdzCiAgIAoxOTk5LTA2LTMwIDE5OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jCiwgbWliLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaAo6CgogICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSBjb252ZXJ0IG1vcmUgc3R1ZmYgdG8gdGhlIGRlZmF1bHRfc3RvcmUgc3BhY2UuCiAgIAoxOTk5LTA2LTMwIDE5OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgdG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMsIHRvb2xzLmMpOiAtV2FsbCBmaXhlcyB3aGVuIFRFU1RJTkdfQ09ERSBpcyBlbmFibGVkLgogICAKMTk5OS0wNi0zMCAwNTo0OCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAogICAKMTk5OS0wNi0zMCAwNTowNiAgZGF2ZXMKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBzeXMvdW4uaAogICAKMTk5OS0wNi0zMCAwNTowNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCiAgIAoxOTk5LTA2LTMwIDAzOjIwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IG9taXQgcmVkdW5kYW50IGRlY2xhcmF0aW9ucwogICAKMTk5OS0wNi0zMCAwMjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IENvcnJlY3QgdGhlIHNldHVwIG9mIHN0cmVhbS1iYXNlZCBhY2NlcHRlZCBpbnRlcm5hbCBzZXNzaW9ucwogICAKMTk5OS0wNi0zMCAwMTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOiAnYWdlbnRfc25tcF9zZXNzaW9uJyBpbml0aWFsaXNhdGlvbiByb3V0aW5lCiAgIAoxOTk5LTA2LTMwIDAxOjQ1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA2LTMwIDAxOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCiAgIAoxOTk5LTA2LTI4IDE1OjAxICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKICAgCjE5OTktMDYtMjggMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGNvbnZlcnQgdG8gc2l6ZV90CiAgIAoxOTk5LTA2LTI4IDE0OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGluaXRfc25tcF9hbGFybSgpLgogICAKMTk5OS0wNi0yOCAwOTo1MiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFycy5oIHZhcl9zdHJ1Y3QuaCk6CiAgICAgLSBOb24tcmVjdXJzaXZlIE1JQiByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0wNi0yOCAwODozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzLzogc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgsCiAgIHNubXBNUERTdGF0cy5jLCBzbm1wTVBEU3RhdHMuaCwgdXNtU3RhdHMuYywKICAgdXNtU3RhdHMuaCwgdXNtVXNlci5jLCB1c21Vc2VyLmg6CgogICAtIChzbm1wRW5naW5lLmMgc25tcEVuZ2luZS5oIHNubXBNUERTdGF0cy5jIHNubXBNUERTdGF0cy5oCiAgICAgIHVzbVN0YXRzLmMgdXNtU3RhdHMuaCB1c21Vc2VyLmMgdXNtVXNlci5oKToKICAgICAgLSBSdW4tdGltZSByZWdpc3RyYXRpb24gKHJhdGhlciB0aGFuIHZpYSAnY29uZmlndXJlJykKICAgCjE5OTktMDYtMjggMDc6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMjFzbm1wdjNnZXRuZXh0LAogICBUMDIyc25tcHYzZ2V0TUQ1LCBUMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoU3YzY29uZmlnLCBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUyk6CiAgICAgLSAzIG5ldyB2MyB0ZXN0cy4KICAgCjE5OTktMDYtMjggMDc6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgZXZhbF90b29scy5zaDoKCiAgIC0gKFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoKTogYWNjZXB0IGFnZW50IGNvbW1hbmQgbGluZSBvcHRpb25zLgogICAKMTk5OS0wNi0yOCAwNDowNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmM6CgogICAtIHtNYWtlZmlsZS5pbiBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBfdmFycy5jIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKICAgCjE5OTktMDYtMjggMDM6MDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCiAgIAoxOTk5LTA2LTIzIDEwOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwKICAgZXZhbF90b29scy5zaCwgdGVzdHMvU3YzY29uZmlnOgoKICAgLSAoTWFrZWZpbGUuaW4sIFJVTlRFU1RTLCBURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwgU3YzY29uZmlnKToKICAgICAtIGdpdmUgUlVOVEVTVFMgbG90cyBvZiBhcmd1bWVudHMuCiAgICAgLSAibWFrZSB0ZXN0IiBub3cgY2FsbHMgIlJVTlRFU1RTIC1hIgogICAKMTk5OS0wNi0yMiAwNToyNSAgbmJhCgogICAqIFRPRE86CgogICBUT0RPOgluZWVkIGZvciBDb3VudGVyNjQgc3VwcG9ydCBpbiBzbm1wZGVsdGEKICAgCjE5OTktMDYtMjIgMDU6MjEgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgaW52b2tlIHNubXBfc2Vzc19pbml0IGJlZm9yZSBhbnkgTUlCIHByb2Nlc3NpbmcgKGZpeGVzIG1hc3RlciBhZ2VudCkuCiAgIAoxOTk5LTA2LTE4IDEyOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eF9jbGllbnQuYzoKCiAgIC0oYWdlbnR4Ki5jKSBmaXggaGVhZGVycyB0byBjb21waWxlIG9uIEN5Z1dpbiwgV2luMzIgTVNWQysrCiAgIAoxOTk5LTA2LTE4IDEwOjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0CiAgIAoxOTk5LTA2LTE4IDA5OjE0ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMKLCBzbm1wZC5oLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHNubXBkLmMgc25tcGQuaCBzbm1wX3ZhcnMuYyBzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oCiAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgIC0gaW5pdGlhbCBBZ2VudFggc3ViLWFnZW50IGltcGxlbWVudGF0aW9uCiAgIAoxOTk5LTA2LTE4IDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWVhbnMgb2YgYnlwYXNzaW5nIFZBQ00gY2hlY2tzCiAgIAoxOTk5LTA2LTE4IDA4OjU1ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oLCBhZ2VudHhfY2xpZW50LmMsCiAgIHNubXBfYXBpLmgsIE1ha2VmaWxlLmluOgoKICAgLSAoc25tcF9hcGkuaCBNYWtlZmlsZS5pbiBhZ2VudHguYyBhZ2VudHguaCBhZ2VudHhfY2xpZW50LmMpOgogICAgIC0gYmFzaWMgQWdlbnRYIHByb3RvY29sIGhhbmRsaW5nCiAgIAoxOTk5LTA2LTE4IDA4OjQ5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKToKICAgICAtIGFjY29tb2RhdGUgc2VydmVycyB0aGF0IHJlcXVpcmUgYW4gYWNjZXNzaWJsZSBjbGllbnQtZW5kIHVuaXggc3RyZWFtIHNvY2tldAogICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCiAgIAoxOTk5LTA2LTE4IDA4OjQ3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKICAgCjE5OTktMDYtMTggMDg6NDQgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBOZXcgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlCiAgIAoxOTk5LTA2LTE4IDA4OjA0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogYXNuMS5oLCBzbm1wX2FwaS5jOgoKICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwogICAKMTk5OS0wNi0xOCAwODowMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgCShhbHNvIG1ha2UgJ3NubXBfY2xvbmVfbWVtJyBhY2Nlc3NpYmxlIHRvIG90aGVyIGZpbGVzKQogICAKMTk5OS0wNi0xOCAwNzo1NiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTk1QIHByb3RvY29sICYgUERVIGhhbmRsaW5nIGZsYWdzCiAgIAoxOTk5LTA2LTE4IDA2OjU4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKICAgCjE5OTktMDYtMTggMDU6MDEgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB1c20uYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBhcHBsaWVkIGZpeGVzIGZyb20gTS4gTGF1a2thbmVuCiAgIAoxOTk5LTA2LTE3IDEzOjE4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgZml4dXBzIHRvIGJ1aWxkIG1vc3QgYXBwcyB1bmRlciBXaW4zMiAoTVNWQysrIDUuMCBvciBsYXRlcikKICAgCjE5OTktMDYtMTcgMDc6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggLS1oZWxwLgogICAKMTk5OS0wNi0xNiAxNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAtIDIgbmV3IHNubXAuY29uZiB0b2tlbnM6IGRvRGVidWdnaW5nLCBkZWJ1Z1Rva2Vucy4KICAgCjE5OTktMDYtMTYgMTY6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMKLCBwYXJzZS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jKToKICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgIHBhcnNlciB2YXJpYWJsZXMgdG8gaXQsIGFuZCBhZGQgc25tcC5jb25mIHRva2VucyBmb3IgdGhlbS4KICAgICAgIC0gcHJlbWliIGF1dG8tcmVnaXN0cmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUgbmVlZHMgY2xlYW5pbmcgdXAuLi4gIHNpZ2guLi4KICAgCjE5OTktMDYtMTYgMDY6NTYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwogICAKMTk5OS0wNi0xNiAwNTo0OSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGhhbmRsZSByZXNwb25zZXMgaW4gYSBtb3JlIHByb3RvY29sLWluZGVwZW5kZW50IG1hbm5lcgogICAKMTk5OS0wNi0xNiAwNToxMSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXAuaCwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogbW92ZSBQRFUgdmFsaWRhdGlvbiwgZXRjIGZyb20gJ3NlbmQnIHRvICdidWlsZCcgcm91dGluZXMKICAgCjE5OTktMDYtMTUgMTY6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldDoKCiAgIC0gKFQwMjBzbm1wdjNnZXQpOiBuZXcgdGVzdDogIHNubXBnZXQgdXNpbmcgdjMgYW5kIHVzZXIgImluaXRpYWwiLgogICAKMTk5OS0wNi0xNSAxNjoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LAogICBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0OgoKICAgLSAoVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQpOgogICAgIC0gQ2hlY2sgZm9yIFRpbWV0aWNrczogaW4gb3V0cHV0LCBzaW5jZSBvdXRwdXQgaGFzIGNoYW5nZWQgaW4gNC4wLgogICAKMTk5OS0wNi0xNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IGRpc3BsYXkgbW9yZSBvdXRwdXQgc3R1ZmYgd2hlbiBpbiB2ZXJib3NlIG1vZGUuCiAgIAoxOTk5LTA2LTE1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgLSAoVEVTVENPTkYuc2gpOiBzYXZlIHBhY2tldCBkdW1wLgogICAKMTk5OS0wNi0xNSAxNjoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBhbGxvd2VkIHplcm9sZW5ndGggcGR1LT5zZWN1cml0eU5hbWUgcHJvYmxlbSBmb3IKICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgogICAKMTk5OS0wNi0xNSAwODoyNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOgogICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwogICAKMTk5OS0wNi0xNSAwMzo1OSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBkdXBsaWNhdGUgY29kZQogICAKMTk5OS0wNi0xMSAxNzo0NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2MWNvbmZpZywgU3YyY2NvbmZpZywgU3Zhbnljb25maWcKLCBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQKLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWw6CgogICAtIChTdjFjb25maWcsIFN2MmNjb25maWcsIFN2YW55Y29uZmlnLCBUMDAxc25tcHYxZ2V0LAogICAgIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNHNubXB2MmNnZXQsCiAgICAgVDAxNXNubXB2MmNnZXRuZXh0LCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6CiAgICAgLSBpbml0aWFsIHBhc3Mgb2YgdGVzdGluZyBzdWl0ZSB0ZXN0cy4uLiAgQWdhaW4sIHN0aWxsIG5lZWRzIHdvcmsuCiAgIAoxOTk5LTA2LTExIDE3OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIFQyLnNoLCBURVNUQ09ORi5zaCwKICAgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2g6CgogICAtIChSVU5URVNUUywgVDIuc2gsIFRFU1RDT05GLnNoLCBldmFsX29uZXNjcmlwdC5zaCwgZXZhbF90b29scy5zaCk6CiAgICAgLSB0ZXN0aW5nIHN1aXRlIHNjcmlwdHMuLi4gIHN0aWxsIG5lZWQgaGVhdnkgd29yay4KICAgCjE5OTktMDYtMDkgMTg6MjkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgRkFRCiwgSU5TVEFMTCwgTkVXUywgUkVBRE1FLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtYWtldGFyZ2V0LAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9rZXJuZWwuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCiAgIAoxOTk5LTA2LTA5IDA2OjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogcmVvcmRlciBQRFUgYW5kIHNlc3Npb24gZmllbGRzIG1vcmUgY2xlYXJseQogICAKMTk5OS0wNi0wOCAwOTozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywKICAgdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtKHh4X19mcmVlYnNkMi5jKSAtIGZpeCBzaXplX3QgdG8gYnVpbGQgb24gRnJlZUJTRCAyLjIueAogICAKMTk5OS0wNi0wOCAwODo0MyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaAogICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAtICByZW1vdmVkIGFsbCB1c2VzIG9mICdzdHJ1Y3QgcGFja2V0X2luZm8nIChzdWJzdW1lZCBpbnRvICdzdHJ1Y3Qgc25tcF9wZHUnKQogICAKMTk5OS0wNi0wOCAwNzo0MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjMtbGluZS40KSwgaHJfZmlsZXN5cy5jCjoKCiAgIC0oaHJfZmlsZXN5cy5jKSBmaXggbWVtb3J5IGxlYWsgd2hlbiBIQVZFX0dFVEZTU1RBVCBpcyBkZWZpbmVkLgogICAKMTk5OS0wNi0wNyAxMzowNCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCiAgIAoxOTk5LTA2LTA3IDA3OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMKLCB1ZHAuYzoKCiAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCiAgIAoxOTk5LTA2LTA0IDA5OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKICAgCjE5OTktMDYtMDIgMTI6MTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FsYXJtLjM6CgogICAtIChzbm1wX2FsYXJtLjMpOiBkb2N1bWVudCB0aGUgbmV3IHNubXBfYWxhcm0oKSBjYWxscy4KICAgCjE5OTktMDYtMDEgMTc6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgKLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KICAgCjE5OTktMDYtMDEgMDc6MzAgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCiAgIAoxOTk5LTA2LTAxIDAyOjMyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCiAgIAoxOTk5LTA2LTAxIDAyOjE3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKICAgCjE5OTktMDUtMjggMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLAogICBkZWZhdWx0X3N0b3JlLmg6CgogICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgbGlicmFyeS4KICAgCjE5OTktMDUtMjggMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCiAgIAoxOTk5LTA1LTI4IDA5OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CiAgIAoxOTk5LTA1LTI4IDA5OjEyICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCiAgIAoxOTk5LTA1LTI4IDA4OjU3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CiAgIAoxOTk5LTA1LTI4IDA4OjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCiAgIAoxOTk5LTA1LTI4IDA3OjAxICBkYXZlcwoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCiAgIAoxOTk5LTA1LTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KICAgCjE5OTktMDUtMjcgMTQ6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KICAgCjE5OTktMDUtMjcgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KICAgCjE5OTktMDUtMjcgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCiAgIAoxOTk5LTA1LTI3IDA1OjE2ICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCiAgIAoxOTk5LTA1LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogSVBGV0FDQy1NSUIudHh0IChWMy1saW5lLjIpLCBJUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KICAgCjE5OTktMDUtMjYgMTU6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCiAgIAoxOTk5LTA1LTI2IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogaXBmd2FjYy5oIChWMy1iMy4yKSwgaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgogICAKMTk5OS0wNS0yNiAxNToxOCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQRldBQ0MtTUlCLnR4dCAoVjMtYjMuMSksIElQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KICAgCjE5OTktMDUtMjYgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjMtYjMuMSksIGhyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KICAgCjE5OTktMDUtMjYgMTE6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvOiBpcGZ3YWNjLmggKFYzLWIzLjEpLCBpcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KICAgCjE5OTktMDUtMjYgMDg6MTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYykgLSBpbmNsIHN5cy90eXBlcyB0byBmaXggSFAtVVggOS54IGJ1aWxkCiAgIAoxOTk5LTA1LTI0IDA1OjM2ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmU6CgogICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCiAgIAoxOTk5LTA1LTIzIDA4OjA0ICBtYXJ6CgogICAqIHRlc3RpbmcvcGFja2V0MS50eHQ6CgogICBmaWxlIHBhY2tldDEudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0yMSAxNToyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZpZXcuYwosIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KICAgCjE5OTktMDUtMjEgMTE6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KICAgCjE5OTktMDUtMjEgMTE6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgogICAgIC0gaGVhZGVyX2NvbXBsZXhfcGFyc2Vfb2lkKCkgY3JlYXRlZC4KICAgICAtIGNvbnZlcnQgZXZlcnl0aGluZyB0byBzaXplX3QuCiAgIAoxOTk5LTA1LTIxIDA1OjU0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCiAgIAoxOTk5LTA1LTIxIDA1OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCiAgIAoxOTk5LTA1LTIxIDAxOjI1ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IEZpeCBpbmNvcnJlY3QgcG9pbnRlciBjYXN0CiAgIAoxOTk5LTA1LTIwIDAzOjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwogICAKMTk5OS0wNS0xOSAxODo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0X3Jlcy5oIChWMy1saW5lLjEpLCBob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQogICAKMTk5OS0wNS0xOSAxODowMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjMtbGluZS4yKSwgdmFyX3JvdXRlLmMKOgoKICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1CiAgIAoxOTk5LTA1LTE5IDA4OjAyICBtYXJ6CgogICAqIHRlc3RpbmcvcGt0Z2VuLnR4dDoKCiAgIGZpbGUgcGt0Z2VuLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDc6MTYgIG1hcnoKCiAgICogdGVzdGluZy9wYWNrZXQudHh0OgoKICAgZmlsZSBwYWNrZXQudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNzoxNCAgbWFyegoKICAgKiB0ZXN0aW5nL3BrdGdlbi5wbDoKCiAgIGZpbGUgcGt0Z2VuLnBsIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIzLgogICAKMTk5OS0wNS0xOSAwNToxMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwogICAKMTk5OS0wNS0xOSAwMjozMyAgZGF2ZXMKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKICAgCjE5OTktMDUtMTggMDk6MjMgIGRhdmVzCgogICAqIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCiAgIAoxOTk5LTA1LTE4IDA5OjAxICBtc2xpZmNhawoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCiAgIAoxOTk5LTA1LTE4IDA2OjI2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKICAgCjE5OTktMDUtMTcgMDc6MTcgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQogICAKMTk5OS0wNS0xNyAwNDozNiAgZGF2ZXMKCiAgICogYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgYXBwcy9zbm1wdHJhcGQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCiAgIAoxOTk5LTA1LTE3IDA0OjM0ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYwo6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgCiAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwogICAKMTk5OS0wNS0xNyAwMzoyMCAgZGF2ZXMKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jIChWMy1saW5lLjEpLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQogICAKMTk5OS0wNS0xNyAwMzoxNyAgZGF2ZXMKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQogICAKMTk5OS0wNS0xNCAxMzo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzbm1wbGliL3NubXB1c20uYwo6CgogICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKICAgCjE5OTktMDUtMTQgMDk6NDYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwogICAKMTk5OS0wNS0xNCAwNjo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCiAgIAoxOTk5LTA1LTEzIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWMy1saW5lLjMpLCB2YWNtX3ZhcnMuYwo6CgogICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KICAgCjE5OTktMDUtMTMgMDM6NTIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXAuYyAoVjMtbGluZS4yKSwgaXAuYzoKCiAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCiAgIAoxOTk5LTA1LTEyIDExOjIyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYwo6CgogICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKICAgCjE5OTktMDUtMTIgMTA6NTMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKICAgCjE5OTktMDUtMTEgMTQ6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogaHB1eC5jLCBocHV4Lmg6CgogICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA1LTExIDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KICAgCjE5OTktMDUtMTEgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCiAgIAoxOTk5LTA1LTEwIDE0OjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgCWluc2lkZSBWMSBzZXNzaW9uLgogICAKMTk5OS0wNS0xMCAxNDo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCiAgIAoxOTk5LTA1LTA2IDA5OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KICAgCjE5OTktMDUtMDQgMTE6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KICAgCjE5OTktMDUtMDQgMTE6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOgogICAgIC0gZml4ZXMgZm9yIGttdC4KICAgICAtIHBvcnRhYmlsaXR5IGVuaGFuY2VtZW50cy4KICAgCjE5OTktMDUtMDQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBkb24ndCB1c2UgSVNERigpLgogICAKMTk5OS0wNS0wNCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGRvbid0IGR1bXAga2V5bGlzdC4KICAgCjE5OTktMDUtMDQgMDA6NTAgIG5iYQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgc25tcGQuYywgc25tcGQuaCwgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvYXQuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmMsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiwgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKLCBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYwosIG1pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBtaWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLCBtaWJncm91cC92MnBhcnR5L2V2ZW50LmMKLCBtaWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYzoKCiAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwogICAKMTk5OS0wNS0wNCAwMDo0NyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgogICAKMTk5OS0wNS0wMyAxNTozOCAgbmJhCgogICAqIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKLCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2FsbF9zeXN0ZW0uaCwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5oCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbm1wdjMuaCwgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsIHNubXBsaWIvdmFjbS5jCiwgc25tcGxpYi92YWNtLmgsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKICAgCjE5OTktMDUtMDMgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCB0ZXN0aW5nL01ha2VmaWxlLmluCiwgdGVzdGluZy9ULmMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMsCiAgIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLCB0ZXN0aW5nL21pc2N0ZXN0LmMsCiAgIHRlc3Rpbmcvc2NhcGl0ZXN0LmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KICAgCjE5OTktMDUtMDMgMDc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCiAgIAoxOTk5LTA1LTAzIDA3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KICAgCjE5OTktMDUtMDMgMDc6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiAtV2FsbCBmaXggaW5pdGlhbGl6aW5nIGEgdmFyaWFibGUuCiAgIAoxOTk5LTA1LTAxIDA3OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIC0gKGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiByZW5hbWVkIHNubXBfY2FsbGJhY2sgdG8gc25tcF9nZW5fY2FsbGJhY2suCiAgIAoxOTk5LTA0LTI5IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBOb3RlIGNoYW5nZSBmcm9tIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMDQtMjkgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgogICAKMTk5OS0wNC0yOSAwNzozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCiAgIAoxOTk5LTA0LTI4IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBlbnVtICNkZWZpbmVzIGNyZWF0ZWQKICAgCjE5OTktMDQtMjcgMDk6NTEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KICAgCjE5OTktMDQtMjYgMTI6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQogICAKMTk5OS0wNC0yNiAxMjoxMSAgbmJhCgogICAqIHZlcnNpb24uaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3ZpZXdfcGFyc2UuYwosIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vc25tcC5jb25mLjUuZGVmLAogICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaCwgdGVzdGluZy9NYWtlZmlsZS5pbgo6CgogICAKICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgIAlmdW5jdGlvbnMuCiAgIAoxOTk5LTA0LTI2IDEyOjA5ICBuYmEKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLAogICBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgc25tcHRhYmxlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgCiAgIAogICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KICAgCjE5OTktMDQtMjYgMTI6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAKICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAJc3RyaW5ncwogICAKMTk5OS0wNC0yNiAxMTo0OCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgCiAgIAogICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKICAgCjE5OTktMDQtMjYgMTE6MjEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAKICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKICAgCjE5OTktMDQtMjYgMDk6MjEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KICAgCjE5OTktMDQtMjMgMTM6MDUgIG1zbGlmY2FrCgogICAqIFJFQURNRS50aHJlYWQ6CgogICAtIFJFQURNRS50aHJlYWQgLSBsb25nIG5lZWRlZCBkb2N1bWVudCBkZXNjcmliaW5nIGhvdyB0byB1c2UgU2luZ2xlIEFQSQogICAKMTk5OS0wNC0yMiAxMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKLCBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KICAgCjE5OTktMDQtMjIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IENyZWF0ZWQgYSBuZXcgc3VwZXItZHVwZXIgbWliMmMgY29uZmlndXJhdGlvbgogICAgIGZpbGUgdGhhdCB0YWtlcyBjYXJlIG9mIGp1c3QgYWJvdXQgZXZlcnl0aGluZyBpZiB5b3UgaGF2ZSBhIG1pYiB0aGF0CiAgICAgZG9lcyBpdHMgb3duIHN0b3JhZ2UgKHJhdGhlciB0aGFuIGhhdmluZyB0byBwb2tlIHNvbWV0aGluZyBlbHNlIGZvcgogICAgIGluZm9ybWF0aW9uKS4KICAgCjE5OTktMDQtMjIgMDc6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KICAgCjE5OTktMDQtMjIgMDc6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKICAgCjE5OTktMDQtMjIgMDc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogbWFrZSBoZWFkZXJfY29tcGxleCgpIGFjY2VwdCBOVUxMcy4KICAgCjE5OTktMDQtMjAgMjE6MzkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIChtaWIyYy52YXJ0eXBlcy5jb25mKTogcmVtb3ZlIHVuLXVzZWQgdnR5cGUsIHBhcnNlciBmaWVsZHMuCiAgIAoxOTk5LTA0LTIwIDIxOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgogICAKMTk5OS0wNC0yMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KICAgCjE5OTktMDQtMjAgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgIC0gY25hbWUgLT4gTkFNRQogICAKMTk5OS0wNC0yMCAxNTozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCiAgIAoxOTk5LTA0LTIwIDExOjI4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgogICAKMTk5OS0wNC0xOSAyMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5oOgoKICAgLSAodG9vbHMuaCk6IG5ldyBjb252ZW5pZW5jZSBtYWNybzogU05NUF9NQUxMT0NfU1RSVUNUKHN0cnVjdE5hbWUpLgogICAKMTk5OS0wNC0xOSAyMToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBkb24ndCBmcmVlIHRoaW5ncyB0aGF0IGFyZSBOVUxMLgogICAKMTk5OS0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCiAgIAoxOTk5LTA0LTE5IDIxOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KICAgCjE5OTktMDQtMTkgMjE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogTlVMTCBjaGVja2luZy4KICAgCjE5OTktMDQtMTkgMjE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgogICAKMTk5OS0wNC0xOSAyMTowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCiAgIAoxOTk5LTA0LTE4IDA2OjU0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQ6IDkgLT4gMTAKICAgCjE5OTktMDQtMTYgMjE6MzQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQogICAKMTk5OS0wNC0xNiAyMToyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwogICAKMTk5OS0wNC0xNiAyMToyNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGVkCiAgIAoxOTk5LTA0LTE2IDIxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgogICAKMTk5OS0wNC0xNiAyMToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KICAgCjE5OTktMDQtMTYgMjE6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0OgoKICAgLSAoRElTTUFOLVNDUklQVC1NSUIudHh0KTogYWRkZWQgdG8gbWlicyBkaXIuCiAgIAoxOTk5LTA0LTE2IDIxOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguaCk6IHByb3RvdHlwZXMuCiAgIAoxOTk5LTA0LTE2IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAogICAKMTk5OS0wNC0xNiAyMToxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgogICAKMTk5OS0wNC0xNiAwODozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlM6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgogICAKMTk5OS0wNC0xNiAwNzo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9JUEZXQ0hBSU5TLU1JQi50eHQ6CgogICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAogICAKMTk5OS0wNC0xNiAwNzozMCAgbXNsaWZjYWsKCiAgICogbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgogICAKMTk5OS0wNC0xNCAxNjo1NiAgbXNsaWZjYWsKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYzoKCiAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKICAgCjE5OTktMDQtMTQgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKICAgCjE5OTktMDQtMTQgMTU6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCiAgIAoxOTk5LTA0LTE0IDE1OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KICAgCjE5OTktMDQtMTQgMTU6MjkgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCiAgIAoxOTk5LTA0LTEzIDE2OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgogICAKMTk5OS0wNC0xMyAxNjowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKICAgCjE5OTktMDQtMTMgMTU6NTggIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCiAgIAoxOTk5LTA0LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzdXBwb3J0IC1QLgogICAKMTk5OS0wNC0xMyAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgogICAKMTk5OS0wNC0xMyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgogICAKMTk5OS0wNC0xMyAxNTozNiAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0OgoKICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCiAgIAoxOTk5LTA0LTEzIDE1OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgogICAKMTk5OS0wNC0xMyAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCiAgIAoxOTk5LTA0LTEzIDE1OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KICAgCjE5OTktMDQtMTMgMDg6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gYWRkIGEgVVJMIHJlZmVyZW5jZSB0byBjeWd3aW4uCiAgIAoxOTk5LTA0LTEyIDIyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgogICAKMTk5OS0wNC0xMiAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KICAgCjE5OTktMDQtMTIgMjI6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaDoKCiAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCiAgIAoxOTk5LTA0LTEyIDIyOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCiAgIAoxOTk5LTA0LTEyIDIyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogZGVhbCB3aXRoIG1vcmUgY29tcGxleCBkYXRhCiAgICAgc3RydWN0dXJlcyB3aXRoIG11bHRpcGxlIGFuZCB2YXJpYWJsZSBsZW5ndGggaW5kZXhlcy4KICAgCjE5OTktMDQtMTIgMjI6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIC0gKFJFQURNRS53aW4zMik6IG5ldyBSRUFETUUgZnJvbSBKb2UgTWFyem90LgogICAKMTk5OS0wNC0wNyAxNTowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgogICAKMTk5OS0wNC0wNyAxMjoyMyAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0oYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMgc25tcGxpYi90b29scy5jKSBtb3ZlIGtleXN0cm9rZSBmdW5jdGlvbnMgdG8gYXBwbGljYXRpb24uCiAgIAoxOTk5LTA0LTA3IDEyOjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYzoKCiAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECiAgIAoxOTk5LTA0LTA3IDExOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvdmFjbS5oLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgogICAKMTk5OS0wNC0wNyAxMTozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOiByZW1vdmFsIG9mIGR1cGxpY2F0ZSBmdW5jdGlvbnMuCiAgIAoxOTk5LTA0LTA3IDExOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmM6CgogICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB1c20uYyk6IGRlYnVnZ2luZyBjb252ZXJzaW9ucy4KICAgCjE5OTktMDQtMDcgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3ZhY21fdmFycy5jLCBzbXV4L3NtdXguYwosIHNubXB2My9zbm1wRW5naW5lLmMsIHNubXB2My91c21Vc2VyLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwo6CgogICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KICAgCjE5OTktMDQtMDcgMTE6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzY2FwaS5jLCBzbm1wdjMuYzoKCiAgIC0gKHNjYXBpLmMsIHNubXB2My5jKTogZGVidWcgdHlwb3MgYW5kIGluY2x1ZGUgZmlsZSBhZGRpdGlvbnMuCiAgIAoxOTk5LTA0LTA3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCiAgIAoxOTk5LTA0LTA3IDEwOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlYnVnLmg6CgogICAtIChkZWJ1Zy5oKTogcmVtb3ZlZC4KICAgCjE5OTktMDQtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oCjoKCiAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgIG5ld2VyIG1vZGVsLgogICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA0LTA3IDA2OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvYWxsX3N5c3RlbS5oLAogICBzbm1wbGliL2RlYnVnLmgsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uaAosIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCiAgIAoxOTk5LTA0LTA2IDIyOjE0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAogICAKMTk5OS0wNC0wNiAyMjoxMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgogICAKMTk5OS0wNC0wNiAyMToyMyAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwo6CgogICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKICAgCjE5OTktMDQtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgogICAKMTk5OS0wNC0wNiAxNToxMiAgaGFyZGFrZXIKCiAgICogSVNTVUVTLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oCiwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9tMm0uaCwgYWdlbnQvc25tcDJwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsIGFwcHMvLmN2c2lnbm9yZQosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvc25tcC11Y2Quc2gKLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0CiwgbWlicy9TTk1QdjItVEMudHh0LCBtaWJzL1VDRC1ERU1PLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvZGVidWcuaCwgc25tcGxpYi9rZXl0b29scy5jCiwgc25tcGxpYi9rZXl0b29scy5oLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuaCwgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcC10Yy5oLCBzbm1wbGliL3NubXAuYwosIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAosIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLAogICBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmgsIHNubXBsaWIvdmFjbS5oLAogICBzbm1wbGliL3ZpZXcuYywgdGVzdGluZy8uY3ZzaWdub3JlLAogICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9ULmMsCiAgIHRlc3RpbmcvVC5zaCwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDUsCiAgIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMSwgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlcwosIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsCiAgIHRlc3RpbmcvZGVtby5yZW1vdGUsIHRlc3RpbmcvZGVtbzIsCiAgIHRlc3RpbmcvZGVtbzIuZnVuY3Rpb25zLCB0ZXN0aW5nL2RlbW8yLnNldHVwZmlsZSwKICAgdGVzdGluZy9ldGltZXRlc3QuYywgdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2gsCiAgIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCwgdGVzdGluZy9ldmFsX3Rlc3RsaXN0LAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAogICB0ZXN0aW5nL21pc2N0ZXN0LmMsIHRlc3Rpbmcvc2NhcGl0ZXN0LmMsCiAgIHRlc3RpbmcvdGVzdF9rZXljaGFuZ2Uuc2gsIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgogICAKMTk5OS0wNC0wNiAxMTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9wcm9jLmMsCiAgIGlwZndjaGFpbnMvbGliaXBmd2MuYywgbWliSUkvaWNtcC5jLCBtaWJJSS9pcC5jCiwgbWliSUkvcm91dGVfd3JpdGUuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jCiwgc211eC9zbXV4LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgLSBhbm90aGVyIHJvdW5kIG9mIEFOU0ktZnlpbmcgdGhlIGFnZW50IGNvbXBsZXRlZC4KICAgCjE5OTktMDQtMDYgMTA6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYykgcXVlbGwgd2FybmluZyBhYm91dCBjb21wYXJpbmcgcG9pbnRlciB3aXRoIG5vbi1wb2ludGVyLgogICAKMTk5OS0wNC0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViKTogbmV3IHZlcnNpb25zIGZyb20gYXV0b2NvbmYgMi4xMy4KICAgCjE5OTktMDQtMDUgMTU6NTkgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gQnVpbGQgdXNpbmcgQ3lnV2luMzIgKGluY2x1ZGVzIE5pZWxzIEIuJ3Mgc25tcF92YXJzLmMgcGF0Y2gpLgogICAKMTk5OS0wNC0wNSAxNDoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gQnVpbGQgd2l0aCBDeWdXaW4zMgogICAKMTk5OS0wNC0wNSAxNDoxMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IE1ha2VmaWxlLmluLCBpZi5jLCB3aW5zdHViLmMKLCB3aW5zdHViLmg6CgogICAtIGJ1aWxkIHNubXBuZXRzdGF0IHdpdGggQ3lnV2luMzIKICAgCjE5OTktMDQtMDUgMTE6MDYgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jLCBtYWluLmMsIHNubXBfcGFyc2VfYXJncy5jKSBKb2UgTWFyem90J3MgZml4IHRvIGNvcHkgZXZlbiBhbiBlbXB0eSBjb21tdW5pdHkgbmFtZS4KICAgCjE5OTktMDQtMDEgMTM6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbGlic25tcC5oOgoKICAgLSAobGlic25tcC5oKSBBc3ltcHRvdGljYWxseSBjbG9zZXIgdG8gc3VwcG9ydGluZyBDTVUgY29uc3RhbnRzLgogICAKMTk5OS0wMy0yOCAxNjoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgIC0gd2hlbiB1c2luZyBjb3B5X3dvcmQoKSBkb24ndCBza2lwIHNwYWNlcywgc2luY2UgaXQgZG9lcyB0aGF0LgogICAKMTk5OS0wMy0yOCAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOiByZWxvY2F0ZSB0bwogICAgIHNubXBNb2R1bGVzLjEyLCB3aGVyZSB0aGV5IHNob3VsZCBiZS4KICAgCjE5OTktMDMtMjMgMTA6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogcmVnZXhwIGZpeC4KICAgCjE5OTktMDMtMjMgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKG1pYmRlZnMuaCwgc3RydWN0LmgsIGV4dGVuc2libGUuYywgZXh0ZW5zaWJsZS5oLCBwcm9jLmMsIHByb2MuaCwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHBlci1wcm9jZXNzL2V4ZWMgZml4IHNjcmlwdHMgY3JlYXRlZC4KICAgCjE5OTktMDMtMjMgMTA6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBtYWtlIGNvcHlfd29yZCgpIHJldHVybiB0aGUgbmV4dCB0b2tlbiwgbm90IHRoZQogICAgIG5leHQgc3BhY2UuCiAgIAoxOTk5LTAzLTIzIDEwOjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBtb3JlIHRhcmdldHMuCiAgIAoxOTk5LTAzLTE5IDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGdldC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGdldC5jLCBzbm1wd2Fsay5jKTogZml4ZWQgaW5pdGlhbGl6YXRpb24gYW5kIHVzYWdlIG9mICJmYWlsdXJlcyIuCiAgIAoxOTk5LTAzLTE4IDA4OjM3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgLSAobWliSUkvaXAuYykgZml4IE1JQl9JUENPVU5URVJfU1lNQk9MIHVzYWdlCiAgIAoxOTk5LTAzLTE3IDEzOjUzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtKGhyX3N3cnVuLmMpIC0gcHJldmVudCBTdW5PUyA0LjEgY29yZSAoc3Vub3M0IHN0aWxsIHByaW1pdGl2ZSkKICAgCjE5OTktMDMtMTYgMTE6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIG1pYmdyb3VwL21pYmluY2wuaCwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBtaWJncm91cC9kdW1teS9kdW1teS5jLAogICBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYywgbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYwosIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS90Y3AuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCjoKCiAgIC0gbW92ZSBNQVRDSF9GQUlMRUQvTUFUQ0hfU1VDQ0VFREVEIGZyb20gdXRpbF9mdW5jcy5oIHRvIG1pYmluY2wuaAogICAKMTk5OS0wMy0xNiAxMToyMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSBjb25zaXN0ZW50IGVycm9yIHJldHVybi4KICAgCjE5OTktMDMtMTYgMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBmaXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gZnJlZWJzZC4KICAgCjE5OTktMDMtMTYgMDg6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgIC0gKGRsbW9kLmMpOiByZW1vdmVkIGEgYm9ndXMgbmV3LWxpbmUuCiAgIAoxOTk5LTAzLTE1IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogZG9uJ3QgZG8gYSBtYWtlIGluc3RhbGwgb2YgZGxtb2RzCiAgIAoxOTk5LTAzLTE1IDE2OjAyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FLCBGQVEsIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjEgKQogICAKMTk5OS0wMy0xNSAxNjowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWFyayB3aXRoIHZlcnNpb24gbnVtLgogICAKMTk5OS0wMy0xNSAxNjowMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjYuMS4KICAgCjE5OTktMDMtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUzoKCiAgIC0gKEZBUSwgTkVXUyk6IHVwZGF0ZXMgdG8gdGFsayBhYm91dCB0aGUgQUdFTlQudHh0IGZpbGUuCiAgIAoxOTk5LTAzLTE1IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KICAgCjE5OTktMDMtMTUgMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IGZpeGVzIGZvciBsaW51eCAyLjIgaW50ZXJmYWNlIHNjYW5uaW5nLgogICAKMTk5OS0wMy0xNSAxNTozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbnRlcmZhY2VzLmMsIGxpbnV4LmgpOiBkZXRlY3QKICAgICAvcHJvYy9uZXQvZGV2IHZlcnNpb24gYXQgcnVuIHRpbWUsIG5vdCBjb21waWxlIHRpbWUuCiAgIAoxOTk5LTAzLTE1IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfcHJvYy5jLCBob3N0L2hyX3Byb2MuaCwKICAgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmg6CgogICAtIChocl9wcm9jLmMsIGhyX3Byb2MuaCwgbG9hZGF2ZS5jLCBsb2FkYXZlLmgpOiBmaXggdHJ5X2xvYWRhdmUgZm9yIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTE1IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IGFkZGVkIENNVV9DT01QQVRJQkxFCiAgIAoxOTk5LTAzLTE1IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIC0gKHNubXAuaCk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50ZWQgb3V0IGRlZmluZS4KICAgCjE5OTktMDMtMTUgMDk6NDIgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgLSBzZWNvbmQgcGFzcyBhdCBDTVVfQ09NUEFUOiBEaXNhYmxlIGJ5IGRlZmF1bHQsIGxlYXZlIHNubXBfcGFyc2UgYWxvbmUuCiAgIAoxOTk5LTAzLTE1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYyk6CiAgICAgLSByZXZlcnQgdG8gc25tcF9wYXJzZS4KICAgICAtIGRvbid0IGluc3RhbGwgbGlic25tcC5oLgogICAKMTk5OS0wMy0xNSAwNTo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBsaWJzbm1wLmgsIG1pYi5jLAogICBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiBsaWJzbm1wLmggbWliLmMgc25tcC5oIHNubXBfYXBpLmMpIHVwZGF0ZSBDTVVfQ09NUEFUSUJMRQogICAKMTk5OS0wMy0xMiAxNTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy86IElQRldDSEFJTlMtTUlCLnR4dCwKICAgaXBmd2NoYWlucy5oOgoKICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0LCBpcGZ3Y2hhaW5zLmgpOiBtb3ZlIHRvIGEgc3ViLW9pZCBpbiB0aGUKICAgICBleHBlcmltZW50YWwgdHJlZS4KICAgCjE5OTktMDMtMTIgMTU6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL0lQRldDSEFJTlMtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5oLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2xpYmlwZndjLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvbGliaXBmd2MuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRSwKICAgICBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywKICAgICBsaWJpcGZ3Yy5oKTogUGF0Y2ggZnJvbSBEaWRpZXIgRGhhZW5lbnM6CiAgICAgLSBuZXcgbW9kdWxlczogaXBmd2NoYWlucy4KICAgCjE5OTktMDMtMTIgMTU6MjMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogZG9uJ3QgcHJpbnQgbW9kdWxlIGxpc3QgaGVyZS4uLiAgdGVsbCB0aGVtIHRvIGxvb2sgYXQKICAgICBjb25maWd1cmUgLS1oZWxwLgogICAKMTk5OS0wMy0xMiAxNDo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgaG9zdC9ocl9zeXN0ZW0uaCwKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaAosIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSByZXN0b3JlIGNvbmZpZ19yZXF1aXJlIGxvZ2ljOyBmaXggc3ByaW50ZiBjYWxscyB0byBjb21waWxlIHVuZGVyIFN1bk9TIDQuMS54LgogICAKMTk5OS0wMy0xMiAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5oKTogTUFUQ0hfRkFJTEVEIC0+IC0xLCBzaW5jZSBzb21lIHVzZSBpdC4KICAgCjE5OTktMDMtMTIgMTQ6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtICh0YXJnZXQuaCwgdGFyZ2V0LyouaCkgcmVxdWlyZSB1dGlsX2Z1bmNzIG9uY2UuCiAgIAoxOTk5LTAzLTEyIDE0OjM0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYywgaHJfc3lzdGVtLmg6CgogICAtIChocl9zeXN0ZW0uaCkgLSBkb24ndCByZXF1aXJlIGhyX3V0aWw7IGRvbmUgaW4gbWliZ3JvdXAvaG9zdC5oCiAgIC0gKGhyX3N3cnVuLmMpIC0gc29sYXJpczI6IG1ha2Ugc3VyZSBrdm1fb3BlbiBpcyBjYWxsZWQgYmVmb3JlIGtkIGlzIHVzZWQuCiAgIC0gKGhyX3N3cnVuLmMpIC0gYWRkIGxhbWUgc3Vub3M0IGVxdWl2YWxlbnQgaW4gSFJTV1JVTlBFUkZfQ1BVLgogICAKMTk5OS0wMy0xMiAxNDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBwcm90ZWN0IHN0cmNweSgpIGFnYWluc3QgYSBudWxsIHBhc3N3b3JkIHNwZWNpZmllZCBvbiB0aGUKICAgICBjb25maWcgbGluZS4KICAgCjE5OTktMDMtMTIgMTQ6MTcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMTk5OS0wMy0xMiAxMjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGZpeCBhc25fcGFyc2UgZnVuY3Rpb25zIHRvIHBhc3MgYSBwb2ludGVyIHRvIHRoZSBzaXplIHZhcmlhYmxlLgogICAKMTk5OS0wMy0xMiAxMTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBleHBsaWNpdCB0ZXN0IGZvciBNQVRDSF9GQUlMRUQKICAgCjE5OTktMDMtMTIgMDk6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliaW5jbC5oLCBkdW1teS9kdW1teS5jLAogICBleGFtcGxlcy93b21iYXQuYywgaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9kaXNrLmMKLCBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMKLCBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYywKICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9pY21wLmMKLCBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsCiAgIG1pYklJL3NubXBfbWliLmMsIG1pYklJL3N5c09SVGFibGUuYywKICAgbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS90Y3AuYywgbWliSUkvdWRwLmMsCiAgIG1pc2MvZGxtb2QuYywgdWNkLXNubXAvcmVnaXN0cnkuYzoKCiAgIC0gKG1pYmluY2wuaCwgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHNubXBfbWliLmMsIHN5c09SVGFibGUuYywgc3lzdGVtX21pYi5jLCB0Y3AuYywgdWRwLmMsIGRsbW9kLmMsCiAgICAgcmVnaXN0cnkuYyk6IGZpeGVkIE1BVENIX0ZBSUxFRC9TVUNDRUVERUQgZGVmaW5lcyAtPiB1dGlsX2Z1bmNzLmguCiAgIAoxOTk5LTAzLTEyIDA3OjA4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IFVzZSBNQVRDSF9GQUlML1NVQ0NFRURFRCBpbiB1dGlsX2Z1bmNzLmgKICAgCjE5OTktMDMtMTEgMTY6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmg6CgogICAtIChzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmgpOiBQYXRjaCBmcm9tIEVyaWsgSmFjb2JzZW46CiAgICAgLSBmaXhlZCBwcm90b3R5cGVzIGZvciBERUJVR1AoKSBhbmQgREVCVUdQT0lEKCkuCiAgIAoxOTk5LTAzLTExIDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOiBtb3ZlIE1BVENIX1NVQ0NFRURFRCBkZWZzIHRvIC5oLgogICAKMTk5OS0wMy0xMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGZpeGVkIGEgY291cGxlIG9mIGJ1Z3MgYW5kIGFuc2knaWZpZWQgdGhpbmdzLgogICAKMTk5OS0wMy0xMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCk6IHJlbW92ZWQgQUdFTlQKICAgCjE5OTktMDMtMTEgMTU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBjaGFuZ2VkIHNvbWUgY29tbWVudHMgdG8gLyogKi8gaW5zdGVhZCBvZiAvLy4KICAgCjE5OTktMDMtMTEgMTU6NDggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIE1pa2UgQmFlci4KICAgCjE5OTktMDMtMTAgMTU6MTQgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IE5BTUUgLT4gT0lELgogICAKMTk5OS0wMy0xMCAxNTowNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBncm91cCBsaW5lcyB3ZXJlIGJhY2t3YXJkcy4KICAgCjE5OTktMDMtMTAgMTU6MDcgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IG1vdmVkIGZyb20gQUdFTlQgdG8gYXZvaWQgbm9uLWNhc2Utc2Vuc2l0aXZlIHczMiBjb25mbGljdHMuCiAgIAoxOTk5LTAzLTA4IDE0OjI4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgcm91dGUuYzoKCiAgIC0gKHNubXBuZXRzdGF0OmlmLmMsIHJvdXRlLmMpIGxpbWl0IGludGVyZmFjZSBuYW1lIHNpemVzIHRvIGZpdCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCjE5OTktMDMtMDggMDk6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYykgQ29tcGxldGUgRGF2ZSBTaGllbGRzJyBwYXRjaCBmb3IgY29udGludWUgYWZ0ZXIgZXJyb3IuCiAgIAoxOTk5LTAzLTA4IDA1OjA3ICBtc2xpZmNhawoKICAgKiBBR0VOVDoKCiAgIC0gKEFHRU5UKSBNQVhfTkFNRV9MRU4gLS0+IE1BWF9PSURfTEVOIGluIGV4YW1wbGUKICAgCjE5OTktMDMtMDggMDU6MDEgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSh3aW4zMi9jb25maWcuaCkgcmVtb3ZlIHVudXNlZCBTWVNfVElNRV9OQU1FLEdMT0JBTFNFQ1VSSVRZLiBhZGQgbmV3IGNvbnN0YW50cy4KICAgCjE5OTktMDMtMDggMDQ6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpIHVzZSByZXF1ZXN0IGRhdGEgd2l0aCByZXF1ZXN0IGNhbGxiYWNrCiAgIAoxOTk5LTAzLTA4IDA0OjAyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAocGFyc2UuYykgLSBmaXggc3ViaWQgaW5pdDsgcmVtb3ZlIHVzZWxlc3MgJy1QbCcgb3B0aW9uLgogICAKMTk5OS0wMy0wNSAxNzozNiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjM1ICBoYXJkYWtlcgoKICAgKiBGQVEsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42ICkKICAgCjE5OTktMDMtMDUgMTc6MzQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IGZpbmFsIHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTAzLTA1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBhdXRvY29uZiB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1M6CgogICAtIChGQVEsIE5FV1MpOiBmaW5hbCB1cGRhdGVzLgogICAKMTk5OS0wMy0wNSAxNzoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCk6IERhdmUgU2hpZWxkJ3MgbmV3IGRvY3VtZW50LgogICAKMTk5OS0wMy0wNSAxNzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmg6CgogICAtIChtaWJJSS9zeXN0ZW0uaCk6IHJlbW92ZWQKICAgCjE5OTktMDMtMDUgMTc6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHJlZmVyZW5jZSBBR0VOVCBkb2N1bWVudC4KICAgCjE5OTktMDMtMDUgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBkbyBlcnJvciByZXBvcnRpbmcgZm9yIHNvbGFyaXMgbWVtb3J5IHN1cHBvcnQuCiAgIAoxOTk5LTAzLTA1IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIC0gKHZtc3RhdC5oKTogZGVjbGFpciBpbml0X3Ztc3RhdCgpLgogICAKMTk5OS0wMy0wNSAxNjowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwJ3MgbW9kdWxlIGxpc3QuCiAgIAoxOTk5LTAzLTA1IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywgZXhhbXBsZXMvd29tYmF0LmMKLCBob3N0L2hyX25ldHdvcmsuYywgbWliSUkvc25tcF9taWIuaCwKICAgbWliSUkvc3lzdGVtX21pYi5oLCB1Y2Qtc25tcC9kaXNrLmgsCiAgIHVjZC1zbm1wL2Vycm9ybWliLmgsIHVjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgdWNkLXNubXAvZmlsZS5oLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwKICAgdWNkLXNubXAvcGFzcy5oLCB1Y2Qtc25tcC9wcm9jLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmgKLCB1Y2Qtc25tcC92ZXJzaW9uaW5mby5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jLCB3b21iYXQuYywgaHJfbmV0d29yay5jLCBzbm1wX21pYi5oLCBzeXN0ZW1fbWliLmgsCiAgICAgZGlzay5oLCBlcnJvcm1pYi5oLCBleHRlbnNpYmxlLmgsIGZpbGUuaCwgbWVtb3J5X3NvbGFyaXMyLmgsIHBhc3MuaCwKICAgICBwcm9jLmgsIHJlZ2lzdHJ5LmgsIHZlcnNpb25pbmZvLmgpOgogICAgIC0gLVdhbGwgZml4ZXMsIG1vc3RseSBpbml0XygpIHJvdXRpbmVzIGRlY2xhaXJlZCBpbiB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgIAoxOTk5LTAzLTA1IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogY3JlYXRlIFVORE8KICAgCjE5OTktMDMtMDUgMTU6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmUgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8sIHNpbmNlIGl0cyBub3QgdXNlZCB0aGlzIHJlbGVhc2UuCiAgIAoxOTk5LTAzLTA1IDExOjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIAogICAodGNwLmMpIC0gYnJlYWsgb3V0IG9mIGluZmluaXRlIGxvb3Agd2hlbiBrbG9va3VwIGZhaWxzLgogICAKMTk5OS0wMy0wNSAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN3aXRjaCBDT01NSVQgYW5kIEFDVElPTiBwaGFzZXMuCiAgIAoxOTk5LTAzLTA1IDEwOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlOiByZWFycmFuZ2luZyBhbmQgY2xlYW5pbmcuCiAgIAoxOTk5LTAzLTA1IDEwOjExICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gdGhlIHVzZSBvZiAnaGVhZGVyX3NpbXBsZV90YWJsZScgcmF0aGVyIHRoYW4gJ2NoZWNrbWliJwogICAgIC0gZXhwbGljaXQgY29tcGFyaXNvbiB3aXRoIE1BVENIX0ZBSUxFRAogICAgIC0gZG9uJ3Qgc2V0IGRlZmF1bHRzIGZvciAnd3JpdGVfbWV0aG9kJyBhbmQgJ3Zhcl9sZW4nCiAgIAkJKHNpbmNlIGJvdGggJ2hlYWRlcl9nZW5lcmljJyBhbmQgJ2NoZWNrbWliJyBkbyB0aGlzIGFueXdheSkKICAgICAtIFVzZSBkZWZpbmVkIGNvbnN0YW50cyBmb3IgdmFyaWFibGUgaW5pdGlhbGlzYXRpb24gaW4gdGhlCiAgIAkJd3JpdGUgcm91dGluZSAoc2ltaWxhcmx5IGluIHRoZSBtaWIyYy5jb25mIHBhdGNoKQogICAgICAgICBbVGhpcyBpcyBvbmUgb2YgbXkgaG9iYnktaG9yc2VzIHdpdGggb3VyIHN0dWRlbnRzLCBzbyBJIGRvbid0CiAgIAkJIHNlZSB3aHkgInByb2Zlc3Npb25hbCIgcHJvZ3JhbW1lcnMgc2hvdWxkIGJlIGV4ZW1wdCFdCiAgIAogICAgIC0gTWFrZSBwcm9wZXIgdXNlIG9mIHRoZSB0aHJlZS1waGFzZSBuYXR1cmUgb2YgU0VUcwogICAKMTk5OS0wMy0wNSAwOTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIAogICBGaXggV2luMzIgdmVyc2lvbiBvZiBnZXR0aW1lb2ZkYXk6IHR2X3VzZWMgd2FzIG1pbGxpc2VjcyAsIHJldHVybiBub3cgPSAwCiAgIAoxOTk5LTAzLTA0IDE4OjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIAogICAoc25tcF9hcGkuYykgLSBleHBvc2Ugc25tcF9mcmVlOyBzbm1wX3BkdV9hZGRfdmFyaWFibGUgcmV0dXJucyBwdHIgdG8gdmFyIGZvcgogICBmdXR1cmUgaW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkuCiAgIAoxOTk5LTAzLTA0IDE3OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCB3aW4zMi9jb25maWcuaAo6CgogICAKICAgUmVwbGFjZSB1c2VzIG9mIGJ6ZXJvIHdpdGggbWVtc2V0LCBiY29weSB3aXRoIG1lbWNweS4KICAgRml4IHByb3RvdHlwZXMuCiAgIAoxOTk5LTAzLTA0IDE3OjAwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAKICAgKHN5c09SVGFibGUuYykgLSByZW1vdmUgc3RhdGljIHVfbG9uZyBsb25nX3JldHVybiwgZm9yIGNvbnNpc3RlbmN5LgogICAKMTk5OS0wMy0wNCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jCiwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYywgZHVtbXkuYywgZXhhbXBsZS5jLCB3b21iYXQuYywgdGNwLmMsIGhwdXguYywKICAgICBtZW1vcnkuYywgYWxhcm0uYywgc25tcF9hcGkuYyk6CiAgICAgLSBtaXNjIGZpeGVzLCAtV2FsbCBtb3N0bHkuCiAgIAoxOTk5LTAzLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk5LTAzLTA0IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIC0gKHZtc3RhdF9mcmVlYnNkMi5jKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gdHlwbyBmaXhlZC4KICAgCjE5OTktMDMtMDQgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgLSAoUkVBRE1FLnNtdXgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSB1cGRhdGUuCiAgIAoxOTk5LTAzLTA0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLAogICBleGFtcGxlcy9leGFtcGxlLmMsIG1pYklJL3N5c09SVGFibGUuYywgbWlzYy9pcGZ3YWNjLmMKLCB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvZmlsZS5jLCB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL21lbW9yeS5jCiwgdWNkLXNubXAvcHJvYy5jLCB1Y2Qtc25tcC92bXN0YXQuYywKICAgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgZXhhbXBsZS5jLCBzeXNPUlRhYmxlLmMsIGlwZndhY2MuYywKICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHZtc3RhdC5jLAogICAgIHZtc3RhdF9mcmVlYnNkMi5jKToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIGhlYWRlcl9zaW1wbGVfdGFibGUgdG8gcmVwbGFjZSBjaGVja21pYigpLgogICAKMTk5OS0wMy0wNCAxNToyOSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAKICAgKGhyX2Rpc2suYykgLSBjb25kaXRpb25hbGx5IHVzZSBkZWZpbmVkIERLQyBkaXNrIHR5cGVzCiAgIAoxOTk5LTAzLTA0IDE1OjI1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAKICAgKGRpc2suYykgLSBleHBsaWNpdCBicmFjZXMgdG8gYXZvaWQgYW1iaWd1b3VzIGBlbHNlJwogICAKMTk5OS0wMy0wNCAxNToxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgdWNkLXNubXAvbG9hZGF2ZS5jCjoKCiAgIAogICAKICAgKGhyX3Byb2MuYywgbG9hZGF2ZS5jKSAtIGZpeGVkIGNvcmUgb24gZ2V0bG9hZGF2ZyBpbiBhIGRpZmZlcmVudCB3YXkKICAgCjE5OTktMDMtMDQgMTM6MTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdm9pZCBjaGVjay4KICAgCjE5OTktMDMtMDQgMDk6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIFdoZW4gdGhlIGFnZW50IGlzIGNvbXBpbGVkIHdpdGggSEFWRV9MSUJSUE0gc2V0LCB5ZXQgbm8gZGF0YWJhc2UKICAgICAgIGlzIGZvdW5kLCBhZ2VudCB3aWxsIGNvcmUuLi4KICAgCjE5OTktMDMtMDQgMDk6MzggIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlcywgbG9jYWwvZWNlLXNubXBkLmNvbmYsCiAgIGxvY2FsL2ZpeHByb2MuY29uZjoKCiAgIC0gKHJlbW92ZS1maWxlcywgZWNlLXNubXBkLmNvbmYsIGZpeHByb2MuY29uZik6CiAgICAgLSByZW1vdmVkIGVjZSBzcGVjaWZpYyBjb25maWcgZmlsZXMgZnJvbSB0aGUgcmVwb3NpdG9yeS4KICAgICAtIGRvbid0IHJlbW92ZSBsb2NhbC8qLmNvbmYgaW4gdGhlIGZpcnN0IHBsYWNlIGFueW1vcmUuCiAgIAoxOTk5LTAzLTA0IDA5OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIChsb2FkYXZlLmMpOiBQYXRjaCBmcm9tIENocmlzIEh1Z2hlczoKICAgICAtIGZpeCBsb2FkIGF2ZXJhZ2Ugb24gc29sYXJpcy4KICAgCjE5OTktMDMtMDQgMDk6MjQgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgCiAgIAogICAoTWFrZWZpbGUuaW4pIC0gZmluZCBtaWJkZWZzLmggd2hlbiBub3QgYnVpbGRpbmcgaW4gdGhlIHNvdXJjZSB0cmVlCiAgIAoxOTk5LTAzLTA0IDA5OjIwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jCiwgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgCiAgIAogICAoYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlcwogICAKICAgKGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBjaGFuZ2UgIip3b3JkIiB0byAiKnRva2VuIiB0byBoZWxwIHNvbWUgY29tcGlsZXIKICAgCjE5OTktMDMtMDQgMDk6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXggdm9pZCB0ZXN0IGZvciBhbnNpIGNvbXBpbGVycy4KICAgCjE5OTktMDMtMDQgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgLSAoUkVBRE1FLnNtdXgpOiBhZGQgTmljay4KICAgCjE5OTktMDMtMDQgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogcmVwb3NpdG9yeSBtb3ZlLgogICAKMTk5OS0wMy0wNCAwNDowOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgCiAgIChzbm1wbmV0c3RhdC9pZi5jKSAtIGFkZCB2b2lkIHRvIGVtcHR5IGZvcm1hbCBwYXJhbWV0ZXIgbGlzdAogICAKMTk5OS0wMy0wMyAxODowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxMCApCiAgIAoxOTk5LTAzLTAzIDE4OjAyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gU01VWC4KICAgCjE5OTktMDMtMDMgMTg6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiBuYW1lIGNoYW5nZS4KICAgCjE5OTktMDMtMDMgMTc6NTEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUKLCBUT0RPLCBidWctcmVwb3J0LCBhZ2VudC9zbm1wZC5jLAogICBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FLCBUT0RPLCBidWctcmVwb3J0LCBzbm1wZC5jLAogICAgIFJFQURNRS5taWIyYyk6IGVjZS51Y2RhdmlzLmVkdSAtPiB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KICAgCjE5OTktMDMtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIC0gKHByb2MuYywgc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgLSBVc2UgL3Byb2Mgb24gc29sYXJpcy4KICAgCjE5OTktMDMtMDMgMTA6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBhbnNpJ2lmeSB0aGUgY29uZmlnIGZ1bmN0aW9uLgogICAKMTk5OS0wMy0wMyAwODoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogcmFuIGF1dG9jb25mLi4uCiAgIAoxOTk5LTAzLTAzIDA4OjI1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBOaWNrLgogICAKMTk5OS0wMy0wMiAxNToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIExpbnV4IGNvbXBpbGVzIGRpZSBhdCBTT19SQ1ZUSU1FTy4KICAgICAtIC1XYWxsIHR5cGUgZml4ZXMuCiAgIAoxOTk5LTAzLTAyIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB0eXBvLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAtIChtZW1vcnlfc29sYXJpczIuYyk6IHR5cGVjYXN0IGZ1bmN0aW9uIHdpdGggKHZvaWQpLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5oOgoKICAgLSAoc211eC5oKTogdG9wIGxldmVsIHNtdXggZmFrZSBtb2R1bGUgaGVhZGVyLgogICAKMTk5OS0wMy0wMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfZGVidWcuYywKICAgICBzbm1wX2RlYnVnLmgpOgogICAgIC0gbmV3IGZsYWc6ICAtLWRpc2FibGUtZGVidWdnaW5nIHRvIGNvbXBsZXRlbHkgdHVybiBvZmYgaXRzIHN1cHBvcnQuCiAgICAgLSByZW5hbWluZyBvZiBET0RFQlVHIHRvIFNOTVBfQUxXQVlTX0RFQlVHLgogICAgIC0gY2xlYW4gdXAgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgb3B0aW9ucyBsaXN0ZWQsIGluY2x1ZGluZyBwdXR0aW5nCiAgICAgICBhIGxpc3Qgb2YgYXZhaWxhYmxlIG1vZHVsZXMgZm9yIGNvbXBpbGF0aW9uIGludG8gdGhlIGFnZW50LgogICAKMTk5OS0wMy0wMiAxMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGRvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLgogICAKMTk5OS0wMy0wMiAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3ZhY21fdmFycy5jCiwgbWlzYy9pcGZ3YWNjLmM6CgogICAtIChzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBpcGZ3YWNjLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFN1Z2dlc3RlZCBmaXhlcyB0byBlbGltaW5hdGUgbW9yZSBzaGFkb3dlZCBnbG9iYWwgcmVmZXJlbmNlcy4KICAgICAtIGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nICgpXS4KICAgCjE5OTktMDMtMDIgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIERvbid0IGRlZmluZSBNQVhfTkFNRV9MRU4gaWYgZGVmaW5lZCBzb21ld2hlcmUgZWxzZS4KICAgCjE5OTktMDMtMDEgMTc6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKToKICAgICAtIGFsbG93IG51bGwgbGVuZ3RoIHBhc3N3b3Jkcy4KICAgICAtIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoxOTk5LTAzLTAxIDE2OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IHB1dCBiYWNrIGluIE1BWF9OQU1FX0xFTiB0ZW1wb3JhcmlseS4KICAgCjE5OTktMDMtMDEgMTY6MjAgIGhhcmRha2VyCgogICAqIG1hbi86IGRlcy4xLCBkZXMuMzoKCiAgIC0gKGRlcy4xLCBkZXMuMyk6IHJlbW92ZWQgdW51c2VkIG1hbnVhbCBwYWdlcy4KICAgCjE5OTktMDMtMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byBFQ0UgZGVwdC4KICAgCjE5OTktMDMtMDEgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0YXJnZXRzLgogICAKMTk5OS0wMy0wMSAxNjoxNyAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmLAogICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZgosIHZhcmlhYmxlcy41OgoKICAgLSAobWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgICAgdmFyaWFibGVzLjUpOiBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzcGVsbCBjaGVjay4KICAgCjE5OTktMDMtMDEgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgIC0gcmVtb3ZlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCB0aGF0IHdhc24ndCBuZWVkZWQuCiAgIAoxOTk5LTAzLTAxIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmM6CgogICAtIChhbGFybS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBDYXN0IHRvIHBvaW50ZXIgdG8gaW50IG1heSBvdmVyZmxvdyB0aGUgcmV0dXJuIGJ1ZmZlci4KICAgCjE5OTktMDMtMDEgMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogMy42aWZpZWQuCiAgIAoxOTk5LTAzLTAxIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIGNvbXBsZXRlbHkgcmUtd3JpdHRlbiBzbXV4IG1vZHVsZXMuCiAgIAoxOTk5LTAzLTAxIDEzOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgY29tcGFyZV90cmVlKCkgZ2xvYmFsLgogICAKMTk5OS0wMy0wMSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNvbnRleHRfcGFyc2UuYywgbWliLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlY2FzdGluZyBmb3IgY2VydGFpbiBmdW5jdGlvbnMgdG8gKGNoYXIgKikuCiAgIAoxOTk5LTAzLTAxIDEyOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gYWRkZWQgTUlOX09JRF9MRU4gZm9yIGluc3RydWN0aW9uYWwgdXNlIG1vc3RseSAoaXRzIHVudXNlZCkuCiAgIAoxOTk5LTAzLTAxIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgCjE5OTktMDMtMDEgMTI6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwdXQgYSBwcm9wZXIgKHZvaWQpIGludG8gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KICAgCjE5OTktMDMtMDEgMTI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBzcHJpbnRmIGFyZyBtaXNtYXRjaC4KICAgCjE5OTktMDMtMDEgMTI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgY2FzZSBlbnRyaWVzLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gZnJlZSB0aGUgaW50ZXJmYWNlIHRhYmxlLgogICAKMTk5OS0wMy0wMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYzoKCiAgIC0gKGVycm9ybWliLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIHJlbW92ZSBlcnJubyB2YXJpYWJsZS4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW5hbWluZyBvZiB2YXJpYWJsZXMgYXdheSBmcm9tIHN5c3RlbSBmdW5jdGlvbiBuYW1lcyAoaW5kZXggLT4gbGluZGV4KS4KICAgCjE5OTktMDMtMDEgMTI6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSBpbml0aWFsaXplIHZhcmlhYmxlIHRvIDAuCiAgIAoxOTk5LTAzLTAxIDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogdHlwbzogZmlsZU1heCAtPiBmaWxlRXJyb3JGbGFnIG5hbWUgY2hhbmdlLgogICAKMTk5OS0wMi0yNiAxNjozMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU5ICkKICAgCjE5OTktMDItMjYgMTY6MTEgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwKICAgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuY29uZi41LmRlZgosIHNubXB0cmFwZC44LCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gKE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgIC0gbmV3IGRvY3VtZW50YXRpb24gb24gY29uZmlndXJhdGlvbiBjYXBhYmlsaXRpZXMuCiAgIAoxOTk5LTAyLTI2IDE2OjEwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiB1c2FnZSB1cGRhdGUsIGFuZCAtSCBzdXBwb3J0LgogICAKMTk5OS0wMi0yNiAxNjoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNiByZWxlYXNlLgogICAKMTk5OS0wMi0yNiAxNjowNiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgYW5kIG1hZGUgYmV0dGVyIGV4YW1wbGVzLgogICAKMTk5OS0wMi0yNiAxNTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFVubGlua2VkIE9JRCAuLi4gY2NpdHQgMCBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgLSBDb250aW51ZSBhZnRlciByZXNlcnZlZCB3b3JkIGVycm9yIGZpeCBjb3VydGVzeSBvZiBEYXZlIFNoaWVsZC4KICAgICAtIE1vZGlmaWNhdGlvbiB0byAjMiBjb3VydGVzeSBvZiBOaWVscyBCYWdnZXNlbi4KICAgICAtIE1vZGlmaWNhdGlvbiB0byBwcmludCBzdWItaWRlbnRpZmllciA9PSAwCiAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgICAtIEluc3RlYWQgb2YgcmUtb3JkZXJpbmcgYWxsIHNpbmdseS1saW5rZWQgbGlzdHMsIHVzZSBhIG5ldyBtZW1iZXIKICAgICAgIHRoYXQgZmxhZ3Mgd2hlbiBhIHJlcG9ydCBoYXMgYmVndW4uCiAgIAoxOTk5LTAyLTI2IDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGxvYWRhdmUuYywgbG9hZGF2ZS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGltcGxlbWVudCBsb2FkIGF2ZXJhZ2UgcmVwb3J0aW5nIGFzIGEgaW50ZWdlciBhbmQgYXMgYSBmbG9hdC4KICAgCjE5OTktMDItMjUgMTA6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oOgoKICAgLSAoUkVBRE1FLCB1Y2Rfc25tcC5oLCBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgpOiBQYXRjaAogICAgIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgIC0gbWVtb3J5IHN1cHBvcnQgZm9yIHNvbGFyaXMyLgogICAKMTk5OS0wMi0yNCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsaW51eC5oKToKICAgICAtIENoZWNrIGZvciBhbmQgaGFuZGxlIDIuMiAvcHJvYy9uZXQvZGV2IGNoYW5nZXMuCiAgIAoxOTk5LTAyLTI0IDE0OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IHVwZGF0ZS4KICAgCjE5OTktMDItMjIgMDk6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIERvbid0IHByaW50ICJjYW4ndCBmaW5kIG1vZHVsZSBYWFgiIG1lc3NhZ2VzIHdpdGhvdXQgd2FybmluZ3MgdHVybmVkIG9uLgogICAKMTk5OS0wMi0yMiAwOToxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNlbGVjdCAiYWxsb3cgdW5kZXJzY29yZSBpbiBNSUIKICAgICAgIHN5bWJvbHMiIGlzIG1pc3NpbmcuCiAgIAoxOTk5LTAyLTE3IDE2OjIzICBkcmVlZGVyCgogICAqIGxvY2FsL3NubXAtdWNkLnNoOgoKICAgZmlsZSBzbm1wLXVjZC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDItMTcgMTY6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiB3aW5zdHViLmMsIHdpbnN0dWIuaDoKCiAgIC0gKHdpbnN0dWIuYywgd2luc3R1Yi5oKTogcGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBnZW5lcmljIHdpbmRvd3MgQVBJIHJlcGxhY2VtZW50cy4KICAgCjE5OTktMDItMTcgMTY6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChzbm1wZC5jLCBkdW1teS5jLCB3b21iYXQuYywgc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgZGxtb2QuYywKICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICAgIG1lbW9yeV9mcmVlYnNkMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIG1pYi5jLAogICAgIHJlYWRfY29uZmlnLmMpOiB3b3JkIC0+IHRva2VuICgid29yZCIgaXMgcmVzZXJ2ZWQgaW4gc29tZSBjb21waWxlcnMuCiAgIAoxOTk5LTAyLTE3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAvbGlic25tcC5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcAo6CgogICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICBzbm1wbmV0c3RhdC5kc3AsIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHdpbjMyIHVwZGF0ZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMKOgoKICAgLSAocGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIG5hbWUgY29uZmxpY3QgZml4ZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZGVidWdfYXJncyB3YXMgZGVjbGFyZWQgdHdpY2UuCiAgICAgLSBoZWFkZXIgZml4ZXMgZm9yIHdpbjMyLgogICAKMTk5OS0wMi0xNyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZnByaW50X3ZhcmlhYmxlIHRvIG5vdCByZWN1cnNlLgogICAKMTk5OS0wMi0xNyAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jb250ZXh0X3BhcnNlLmM6CgogICAtIChjb250ZXh0X3BhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGRvbid0IHVzZSBhIHZhcmlhYmxlIGNhbGxlZCAndGltZScuICBUc2sgdHNrLgogICAKMTk5OS0wMi0xNyAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGNvbW1lbnQgcmVmb3JtYXR0aW5nLgogICAKMTk5OS0wMi0xNyAxNToxOCAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzZSBhICctJyBpbnN0ZWFkIG9mIGEgJy4nIGZvciBJRUVFODAyLTExLgogICAKMTk5OS0wMi0xNyAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBzZXBhcmF0ZSB0YXJnZXQgZm9yIGdlbmVyYXRlZCBtYW51YWwgcGFnZXMuCiAgIAoxOTk5LTAyLTE3IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB1cGRhdGUgYWdhaW4gZm9yIGJldHRlciBzdGlsbCBvdXRwdXQuCiAgIAoxOTk5LTAyLTE3IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgaW5ldC5jLCBtYWluLmMsCiAgIG5ldHN0YXQuaCwgcm91dGUuYzoKCiAgIC0gKGlmLmMsIGluZXQuYywgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2Ugc25tcG5ldHN0YXQgd2luMzIgY29tcGF0aWJsZS4KICAgCjE5OTktMDItMTcgMTU6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2FnZSBmaXguCiAgIAoxOTk5LTAyLTE3IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5oOgoKICAgLSAoc25tcGQuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSBwcm90b3R5cGUuCiAgIAoxOTk5LTAyLTE3IDE1OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgTC4gSGl0Y2g6CiAgICAgLSBmaXggaWZfbmFtZSB2YXJpYWJsZSBieSBtYWtpbmcgaXQgc3RhdGljLgogICAKMTk5OS0wMi0xNiAxNzowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlZCBtaWIyYyBwcm9ncmFtLi4uICBzdGlsbCBpbiBwcm9ncmVzcy4uLgogICAKMTk5OS0wMi0xMSAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB1cGRhdGUuCiAgIAoxOTk5LTAyLTExIDE2OjQ4ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTggKQogICAKMTk5OS0wMi0xMSAxNjo0NiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEV4dC0zLTYtcHJlOCApCiAgIAoxOTk5LTAyLTExIDE2OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIC0gKHRjcC5jKTogdmFyX3RjcEVudHJ5IHdhcyBjaGVja2luZyBhZ2FpbnN0IHRoZSBpbmNvbWluZyBvaWQgd2l0aCB0aGUKICAgICB3cm9uZyBsZW5ndGggYW5kIGNvdWxkIHN1Y2NlZWQgYXQgdGltZXMgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZS4KICAgCjE5OTktMDItMTEgMTY6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLAogICBwYXJ0eV9wYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jOgoKICAgLSAoYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgLSBNb3JlIGJ1ZiBzaXplIHN0YW5kYXJkaXphdGlvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgICAtIEEgZmV3IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTiBjb252ZXJzaW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAKMTk5OS0wMi0xMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBpbmNsdWRlIHNubXBfdmFycy5oIGFoZWFkIG9mIHZhcl9zdHJ1Y3QuaC4KICAgCjE5OTktMDItMTEgMTY6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gY29udmVydCBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4uCiAgICAgLSBjb252ZXJ0IHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSBidWZmZXJzIHRvIFNQUklOVF9NQVhfTEVOLgogICAgIC0gbWFrZSB0aGUgbGlicmFyaWVzIHByaW50XyBmdW5jdGlvbnMgdXNlIHRoZSBmcHJpbnRfIGZ1bmN0aW9uCiAgICAgICBhbHJlYWR5IGRlZmluZWQgYW5kIHBhc3MgaXQgc3Rkb3V0LgogICAKMTk5OS0wMi0wOSAxNDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogaW5jcmVhc2UgYnVmZmVyIHNpemUgZm9yIG9pZCBwcmludGluZy4KICAgCjE5OTktMDItMDkgMTQ6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogZGVmaW5lIGEgc3ltYm9sIGZvciBPSUQgcHJpbnRpbmcncyBzdG9yYWdlIGJ1ZmZlciBzaXplLgogICAKMTk5OS0wMi0wOSAxNDoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHR5cG8uCiAgIAoxOTk5LTAyLTA5IDE0OjEwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBGQVEuaHRtbC4KICAgCjE5OTktMDItMDggMjM6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy86IGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jCiwgZXhhbXBsZS5oOgoKICAgLSAoYWdlbnQvZGxtb2RzKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIGZpeGVzLgogICAKMTk5OS0wMi0wOCAyMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oKSBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluY2x1ZGUgdXBkYXRlcy4KICAgCjE5OTktMDItMDggMjM6MjAgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmgKLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywKICAgc25tcF92YXJzLmgsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKGFnZW50LyopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgogICAKMTk5OS0wMi0wOCAyMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkdW1teS9kdW1teS5jLCBleGFtcGxlcy9leGFtcGxlLmMsCiAgIGV4YW1wbGVzL2V4YW1wbGUuaCwgZXhhbXBsZXMvd29tYmF0LmMsIGhvc3QvaHJfZGV2aWNlLmMKLCBob3N0L2hyX2RldmljZS5oLCBob3N0L2hyX2Rpc2suYywgaG9zdC9ocl9kaXNrLmgKLCBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9maWxlc3lzLmgsCiAgIGhvc3QvaHJfbmV0d29yay5jLCBob3N0L2hyX25ldHdvcmsuaCwKICAgaG9zdC9ocl9wYXJ0aXRpb24uYywgaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3ByaW50LmgsIGhvc3QvaHJfcHJvYy5jLAogICBob3N0L2hyX3Byb2MuaCwgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3RvcmFnZS5oCiwgaG9zdC9ocl9zd2luc3QuYywgaG9zdC9ocl9zd2luc3QuaCwKICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N3cnVuLmgsIGhvc3QvaHJfc3lzdGVtLmMKLCBob3N0L2hyX3N5c3RlbS5oLCBtaWJJSS9hdC5jLCBtaWJJSS9hdC5oLAogICBtaWJJSS9pY21wLmMsIG1pYklJL2ljbXAuaCwgbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJJSS9pbnRlcmZhY2VzLmgsIG1pYklJL2lwLmMsIG1pYklJL2lwLmgsCiAgIG1pYklJL3JvdXRlX3dyaXRlLmgsIG1pYklJL3NubXBfbWliLmMsIG1pYklJL3NubXBfbWliLmgKLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3N5c09SVGFibGUuaCwKICAgbWliSUkvc3lzdGVtLmgsIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvc3lzdGVtX21pYi5oCiwgbWliSUkvdGNwLmMsIG1pYklJL3RjcC5oLCBtaWJJSS91ZHAuYywKICAgbWliSUkvdWRwLmgsIG1pYklJL3ZhY21fdmFycy5jLCBtaWJJSS92YWNtX3ZhcnMuaAosIG1pYklJL3Zhcl9yb3V0ZS5jLCBtaWJJSS92YXJfcm91dGUuaCwKICAgbWlzYy9pcGZ3YWNjLmMsIG1pc2MvaXBmd2FjYy5oLCBzbXV4L3NubXBfYmdwLmMsCiAgIHNtdXgvc25tcF9iZ3AuaCwgc211eC9zbm1wX29zcGYuYywgc211eC9zbm1wX29zcGYuaAosIHNtdXgvc25tcF9yaXAyLmMsIHNtdXgvc25tcF9yaXAyLmgsCiAgIHVjZC1zbm1wL2Rpc2suYywgdWNkLXNubXAvZGlzay5oLCB1Y2Qtc25tcC9lcnJvcm1pYi5jCiwgdWNkLXNubXAvZXJyb3JtaWIuaCwgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsIHVjZC1zbm1wL2ZpbGUuYywgdWNkLXNubXAvZmlsZS5oCiwgdWNkLXNubXAvaHB1eC5jLCB1Y2Qtc25tcC9ocHV4LmgsCiAgIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbG9hZGF2ZS5oLAogICB1Y2Qtc25tcC9tZW1vcnkuYywgdWNkLXNubXAvbWVtb3J5LmgsCiAgIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wYXNzLmgsCiAgIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgdWNkLXNubXAvcHJvYy5jLCB1Y2Qtc25tcC9wcm9jLmgsIHVjZC1zbm1wL3JlZ2lzdHJ5LmMKLCB1Y2Qtc25tcC9yZWdpc3RyeS5oLCB1Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICB1Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCB1Y2Qtc25tcC92bXN0YXQuYywKICAgdWNkLXNubXAvdm1zdGF0LmgsIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgdjJwYXJ0eS9hY2xfdmFycy5jLAogICB2MnBhcnR5L2FjbF92YXJzLmgsIHYycGFydHkvYWxhcm0uYywgdjJwYXJ0eS9hbGFybS5oCiwgdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgdjJwYXJ0eS9ldmVudC5jLCB2MnBhcnR5L2V2ZW50LmgsIHYycGFydHkvcGFydHlfdmFycy5jCiwgdjJwYXJ0eS9wYXJ0eV92YXJzLmgsIHYycGFydHkvdmlld192YXJzLmMsCiAgIHYycGFydHkvdmlld192YXJzLmg6CgogICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KICAgCjE5OTktMDItMDggMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoc25tcF9kZWJ1Zy5jKTogc3lzL3R5cGVzLmgKICAgCjE5OTktMDItMDggMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSBzbm1wX29pZF9jb21wYXJlIHVzZSBjb25zdCdzLgogICAKMTk5OS0wMi0wOCAxNToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNlIHNpemVfdCBpbnN0ZWFkIG9mICJ1bnNpZ25lZCIgZm9yIHhtYWxsb2MsIGV0Yy4KICAgCjE5OTktMDItMDggMTU6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgLSAoaW5ldC5jKTogcHJvcGVyIGJyYWNrZXQgaW5kZW50YXRpb24uCiAgIAoxOTk5LTAyLTA4IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChyb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSByZW5hbWluZyBpbmRleCAtPiBJZkluZGV4LgogICAKMTk5OS0wMi0wOCAxNToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogbm90aGluZy4gIHJlYWxseS4KICAgCjE5OTktMDItMDggMTU6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIChzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgdGltZSAtPiBtX3RpbWUuCiAgIAoxOTk5LTAyLTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gaWluZGV4LgogICAKMTk5OS0wMi0wOCAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWFrZSB0cmVlX2NvbXBhcmUoKSBiZSBhIHJlYWwgdHlwZWRlZidlZCBmdW5jdGlvbiBhZ2FpbiBub3cgdGhhdAogICAgICAgcXNvcnRpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KICAgCjE5OTktMDItMDggMTU6MDggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVGsucG0gbWVudGlvbi4KICAgCjE5OTktMDItMDggMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2huIFBvbHN0cmE6CiAgICAgLSBjYWxsIGFjY2VwdCgpIHRvIGdldCB0aGUgc29ja2V0IGZpbGUgZGVzY3JpcHRvci4KICAgCjE5OTktMDItMDIgMjI6MDIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbWVudGlvbiB0aGF0IHRoZSBtZW1vcnkgc2VjdGlvbiBpc24ndCBzdXBwb3J0ZWQgb24gYWxsCiAgICAgICBhcmNoaXRlY3R1cmVzLgogICAKMTk5OS0wMi0wMiAyMjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIChocl9wcm9jLmMpOiB1c2UgWzBdIGluZGV4IG9mIGxvYWQgYXZlcmFnZSB0YWJsZS4KICAgCjE5OTktMDItMDIgMjI6MDEgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogUmVtb3ZlIHVuc3VwcG9yZWQgbWliIG5vZGVzIGZyb20gb3V0cHV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIDAncy4KICAgCjE5OTktMDItMDIgMjI6MDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gbGFjayBvZiBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgogICAKMTk5OS0wMi0wMiAxNDo0OCAgYmFlcm0KCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0YXJnZXQuaCwgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwosIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAodGFyZ2V0LmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6CiAgIC0gQ29kZSBhZGRlZCB0byBzdXBwb3J0IHRoZSB0YXJnZXQgTUlCLCBzcGVjaWZpY2FsbHkgdGhlIGFkZHJlc3MgYW5kCiAgICAgcGFyYW1zIHRhYmxlLgogICAKMTk5OS0wMi0wMiAxNDozNCAgYmFlcm0KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBVcGRhdGVkIGNvcHlfd29yZCB0byBhY2NlcHQgcXVvdGVkIHN0cmluZ3MsIHdpdGggaW5jbHVkZWQgd2hpdGUKICAgICAgIHNwYWNlcy4gJ1wnIGVzY2FwZXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIuCiAgIAoxOTk5LTAyLTAyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHR5cG86IC1MIC0+IC1BIGluIGhlbHAgc3RyaW5ncyBkb2NzLgogICAKMTk5OS0wMi0wMiAxMzozMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgMjAzNiAtPiAyMDM4CiAgIAoxOTk5LTAxLTI2IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSByZWZlcmVuY2UgSVAgbmV0IGFkZHJlc3NlcyB0byAxMC4xMC4xMC4wLgogICAKMTk5OS0wMS0yNSAxNjoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBsb2NhbC9SRUFETUUubWliMmM6CgogICAtIChSRUFETUUsIFJFQURNRS5taWIyYyk6IG1pYjJjIHJlYWRtZSBmaWxlLgogICAKMTk5OS0wMS0yNSAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgaG9zdF9yZXMuaCwgbWliaW5jbC5oLAogICAgIGZpbGUuYywgaW5ldC5jLCBwYXJzZS5jLCBzbm1wX2RlYnVnLmMpOgogICAgIC0gLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTAxLTI1IDExOjExICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gdGVzdCBpZiBfX0ZVTkNUSU9OX18gaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb21waWxlci4KICAgCjE5OTktMDEtMjUgMTA6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSAoc25tcF9kZWJ1Zy5oKTogc3BlY2lhbCB0ZXN0IGZvciBfX0ZVTkNUSU9OX18gYmVmb3JlIHVzaW5nIGl0LgogICAKMTk5OS0wMS0yNSAxMDozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZml4IHN0cmluZ3MuaCBpbmNsdWRlLgogICAKMTk5OS0wMS0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsCiAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsCiAgIHN5c3RlbS5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2NsaWVudC5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2kgZml4ZXMuCiAgIAoxOTk5LTAxLTI1IDEwOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHR5cG8uCiAgIAoxOTk5LTAxLTI1IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYwosIHNubXB0cmFwLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wbmV0c3RhdC9pbmV0LmMsIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGluZXQuYywgbWFpbi5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gbW9yZSBhbnNpIGZpeGVzLgogICAKMTk5OS0wMS0yMiAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gQ2hlY2sgZm9yIE5VTEwgb24gc2Vzc2lvbiBjbG9zZXMuCiAgIAoxOTk5LTAxLTIxIDA4OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtb2R1bGUgZGVwZW5kcy4KICAgCjE5OTktMDEtMjEgMDg6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBfYXBpLmMKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX2FwaS5jLCBjb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbAogICAgIEouIFNsaWZjYWs6CiAgICAgLSBOT19OVUxMX0NPTVVOSVRZIC0+IE5PX1pFUk9MRU5HVEhfQ09NTVVOSVRZLgogICAKMTk5OS0wMS0yMSAwODozOSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgLSB0eXBvIG9uIEpvZSdzIG5hbWUgZml4ZWQuCiAgIAoxOTk5LTAxLTIwIDE3OjExICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQogICAKMTk5OS0wMS0yMCAxNzowNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKICAgCjE5OTktMDEtMjAgMTc6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiByYW4gYXV0b2hlYWRlcgogICAKMTk5OS0wMS0yMCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfcGFyc2VfYXJncy5jLCBtYWluLmMsIHNubXBfYXBpLmMpOgogICAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gYWxsb3cgemVybyBsZW5ndGggKGxlZ2FsKSBjb21tdW5pdHkgc3RyaW5ncy4KICAgCjE5OTktMDEtMjAgMTU6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogZGVidWdnaW5nIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGV4cG9ydCBzZGxpc3QgYW5kIHNkbGVuIHZhcmlhYmxlcy4KICAgCjE5OTktMDEtMjAgMTU6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgdWNkIHNwZWNpZmljIG1pYiBtb2R1bGUgbWFrZSByZXF1aXJlbWVudHMuCiAgIAoxOTk5LTAxLTIwIDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0KTogI2lmZGVmIFJQTSBwcm90ZWN0IGEgZnJlZSByb3V0aW5lLgogICAKMTk5OS0wMS0yMCAxNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiB0eXBvCiAgIAoxOTk5LTAxLTIwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBoZWxwaW5nIG91dCBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxNTozMCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkKICAgCjE5OTktMDEtMjAgMTU6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBhZGRlZCB2ZXJzaW9uIHN0YW1wLgogICAKMTk5OS0wMS0yMCAxNToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDEtMjAgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdWNkLXNubXAtaW5jbHVkZXMuaC4KICAgCjE5OTktMDEtMjAgMTU6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBtaW5pbWFsaXNoIGluY2x1ZGUgc2V0IGZvciBsaWJyYXJ5IGNsaWVudHMuCiAgIAoxOTk5LTAxLTIwIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jOgoKICAgLSAoZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOgogICAgIC0gbGludXggMi4xIGtlcm5lbCBuZWVkcyBhc20vcGFnZS5oIChhbGwgaW5jbHVkZXMgbmVlZCB0byBiZSByZS13cml0dGVuKS4KICAgCjE5OTktMDEtMjAgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jCiwgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYwo6CgogICAtIChhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYyk6CiAgICAgLSBzeXMvc3RyZWFtLmggbmVlZGVkIGJ5IFNDTy4KICAgICAtIGludGVyZmFjZXMgc2NhbiBmaXhlcyBmb3IgbGludXggMi4wIHZzIDIuMSBjYW4gYmUgY29uZmlndXJlZCBlbHNld2hlcmUgbm93LgogICAgIC0gcHJvdGVjdCBnZXRfYWRkcmVzcyBjYWxscyBhZ2FpbnN0IE5VTEwgcG9pbnRlciByZXR1cm5zLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB2ZXJzaW9uIHRhZ2dpbmcgYWJpbGl0eSB0byBkbyBtYW55IHRoaW5ncy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3N0cmVhbS5oIGZvciBTQ08uCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hlY2sgZm9yIGFzbS9wYWdlLmggKGxpbnV4KS4KICAgICAtIGNoZWNrIGZvciBzeXMvc3RyZWFtLmggKFNDTykuCiAgICAgLSBGaXggcnRlbnRyeSB0ZXN0LgogICAKMTk5OS0wMS0yMCAxNToxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHZlcnNpb24gdGFnIGNyZWF0aW9uLgogICAKMTk5OS0wMS0yMCAxMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYXBwcy8uY3ZzaWdub3JlLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZGVidWcuaCwKICAgc25tcGxpYi92YWNtLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsIC5jdnNpZ25vcmUsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaWYuYywgTWFrZWZpbGUuaW4sIG1pYi5jLCBwYXJzZS5jLAogICAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLAogICAgIHZhY20uYyk6IGRlYnVnZ2luZyBzdXBwb3J0IGNvZGUgbW92ZWQgdG8gc25tcF9kZWJ1Zy5bY2hdLgogICAKMTk5OS0wMS0yMCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogdHlwbyBpbiBhbnNpIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTIwIDEyOjIxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6IHVubmVlZGVkIGNvbW1lbnQgcmVtb3ZlZC4KICAgCjE5OTktMDEtMjAgMTI6MjAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHBlcmwtU05NUCBhbmQgeTJrIHF1ZXN0aW9ucyBhZGRlZC4KICAgCjE5OTktMDEtMjAgMTI6MTkgIGhhcmRha2VyCgogICAqIGFnZW50Ly5wdXJlLCBzbm1wbGliLy5wdXJlOgoKICAgLSAoLnB1cmUsIC5wdXJlLCAucHVyZSk6IHJlbW92ZWQuCiAgIAoxOTk5LTAxLTE5IDIwOjAxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICAtIChzbm1wdGFibGUuYywgbWliLmMsIHBhcnNlLmMsIHNubXBfYXV0aC5jLCBsaWJzbm1wLmRlZik6IFBhdGNoIGZyb20KICAgICBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgLSBhcHBzL3NubXB0YWJsZS5jIC0gc29tZSBjb21waWxlcnMgd2FybiBjb21wYXJpbmcgcG9pbnRlciB3aXRoIGludGVnZXIKICAgICAtIHNubXBsaWIvbWliLmMgLSBhbHJlYWR5IG1lbnRpb25lZCBiZWZvcmU7IGhlcmUgZm9yIGNvbXBsZXRlLW5lc3MKICAgICAtIHNubXBsaWIvcGFyc2UuYyAtIG1pbm9yIHRvdWNodXAgb2YgaW5jbHVkZXM7IHN5c3RlbS5oIGR1cCByZW1vdmVkCiAgICAgLSBzbm1wbGliL3NubXBfYXBpLmggLSBNU1Zpc3VhbCBDKysgZG9lc24ndCBoYXZlIF9fRlVOQ1RJT05fXwogICAgIC0gc25tcGxpYi9zbm1wX2F1dGguYyAtIG1pbm9yIGZpeCBvZiBjb21tZW50CiAgICAgLSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAtIHNubXBfcGFyc2VfYXJncyBuZWVkcyBhIG5ldyBmdW5jdGlvbgogICAKMTk5OS0wMS0xOSAxOTo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIF9fUCBjaGVja2luZy4KICAgCjE5OTktMDEtMTggMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgogICAKMTk5OS0wMS0xOCAxMDo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvX25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaAosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oCiwgYWdlbnQvdmFyX3N0cnVjdC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5oLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS5jLCBhZ2VudC9taWJncm91cC9taWJJSS5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL3YycGFydHkuYywgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oCiwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoUkVBRE1FLCBhcHBzLCBhZ2VudCwgYWNjb25maWcuaCk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFuc2knaWZ5IGV2ZXJ5dGhpbmcuCiAgIAoxOTk5LTAxLTE2IDIzOjEzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTYgKQogICAKMTk5OS0wMS0xNiAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYwosIGFzbjEuaCwgY29udGV4dC5jLCBjb250ZXh0LmgsCiAgIGNvbnRleHRfcGFyc2UuYywgaW50NjQuYywgaW50NjQuaCwgbWQ1LmMsCiAgIG1kNS5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgKLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wLmMsIHNubXAuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwKICAgc3lzdGVtLmMsIHN5c3RlbS5oLCB2YWNtLmMsIHZhY20uaCwKICAgdmlldy5jLCB2aWV3Lmg6CgogICAtIChzbm1wbGliLyouW2NoXSk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIGFzbmknaWZ5IGFsbCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTE2IDIzOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSAoc25tcGNtZC4xKTogdXBkYXRlZCAtRCBkZXNjcmlwdGlvbi4KICAgCjE5OTktMDEtMTUgMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gc211eCBwYXRjaGVzLgogICAKMTk5OS0wMS0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICAtICh2YWNtLmMpOiBERUJVR01TRyB0eXBvLgogICAKMTk5OS0wMS0xNSAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCiAgIAoxOTk5LTAxLTE1IDE1OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIG1pYmdyb3VwL01ha2VmaWxlLmluCiwgbWliZ3JvdXAvbWliSUkuaCwgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jCiwgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2F0LmgsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5oLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgbWliZ3JvdXAvbWliSUkvaXAuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuaCwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaCwgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsIG1pYmdyb3VwL21pYklJL3N5c3RlbS5jLAogICBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaAosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3AuaCwKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5oLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmMKLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2Ugc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAtIG1hZGUgYWxsIChvaywgc29tZS4gIWhvc3QpIG1pYiBtb2R1bGVzIHVzZSByZWdpc3Rlcl9taWIoKS4KICAgCjE5OTktMDEtMTUgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSB1c2FnZS4KICAgCjE5OTktMDEtMTUgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXAycC5jOgoKICAgLSAoc25tcDJwLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCiAgIAoxOTk5LTAxLTE0IDA5OjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKG1pYjJjKTogdXBkYXRlIGZvciBTTk1QLnBtIDEuOC4KICAgCjE5OTktMDEtMDkgMjE6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbS5jLAogICBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIChhZ2VudC8qLmMpOgogICAgIC0gdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgICAtIGltcGxlbWVudCBuZWVkZWQgLUQgZmxhZyBjaGFuZ2VzLgogICAKMTk5OS0wMS0wOSAyMDo1MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRpc2N1c3MgLUQgdXNhZ2UgY2hhbmdlLgogICAKMTk5OS0wMS0wOSAyMDo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogREVCVUdQT0lEIHJlcGxhY2VtZW50OiBERUJVR01TR09JRC4KICAgCjE5OTktMDEtMDkgMjA6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiByZW1vdmUgb2xkIHRva2VuIHNwZWNpZmllciBpbiBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQKICAgICBmb3JtYXQgbGluZS4KICAgCjE5OTktMDEtMDkgMjA6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBtYWluLmM6CgogICAtIChpZi5jLCBtYWluLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0wOSAyMDo1MCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgIAoxOTk5LTAxLTA5IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogVVJMIGNoYW5nZXMuCiAgIAoxOTk5LTAxLTA5IDIwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtYWtlIC1EIHJlZ2lzdGVyIHRoZSBkZWJ1Z2dpbmcgdG9rZW5zIHNwZWNpZmllZC4KICAgCjE5OTktMDEtMDkgMjA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IGNoYW5nZSBpbnRlcm5hbCBkZWJ1ZyB2YXJpYWJsZSB0byBsb2NhbGRlYnVnLgogICAKMTk5OS0wMS0wOSAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCB2YWNtLmM6CgogICAtIChtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jKToKICAgICAtIEltcGxlbWVudCB0aGUgbmV3IHRva2VuIGJhc2VkIGRlYnVnZ2luZyBtZXNzYWdlIHN1cHBvcnQuCiAgIAoxOTk5LTAxLTA1IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgIHNubXB0YWJsZS5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgIC0gbWFrZSBtYWluKCkgcmV0dXJuIGFuIGludCBpbnN0ZWFkIG9mIHZvaWQuCiAgIAoxOTk5LTAxLTA1IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBNYWtlIGZpZWxkIHNlcGFyYXRvciB0YWtlIGFyZ3VtZW50cyBkaXJlY3RseSBhZnRlciB0aGUgLWYuCiAgIAoxOTk5LTAxLTAyIDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAtIG5ldyBjb21wbGV0ZSBsaXN0IG9mIGlmVHlwZXMuCiAgIAoxOTk4LTEyLTMxIDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBvaWRMZW4ncyB3ZXJlIHdyb25nIGZvciBtMm0gb2lkcy4KICAgCjE5OTgtMTItMzEgMTc6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAtIG5lZWQgdG8gcmVhZF9vYmppZCgpIHRoZSBjb250ZXh0IG9pZCBiYXNlLCBub3QgdGhlIHBhcnR5IG9pZCBiYXNlCiAgICAgICBpbiBvbmUgbG9jYXRpb24uCiAgIAoxOTk4LTEyLTMxIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmM6CgogICAtIChldmVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBtZW1jbXAncyBzaXplcyB3ZXJlIHdyb25nLgogICAKMTk5OC0xMi0yOSAxNzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHZhY20uYyAoVjMtYjMuMiksIHZhY20uYzoKCiAgIC0gKHZhY20uYyk6IEVuYWJsZSBtdWx0aXBsZSBzaWRlIGJ5IHNpZGUgdmlld3MgaW4gdGhlIHZpZXcgZmFtaWx5CiAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgLSBOb3QgZG9uZSBpbiBhIGNsZWFuIGZhc2hpb24uICBNdWNoIG9mIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMKICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgc3BlZWQuCiAgIAoxOTk4LTEyLTI5IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSBuZXdsaW5lcyBmcm9tIHNwcmludF92YWx1ZSgpIHdoZXJlIGFwcGxpY2FibGUuCiAgIAoxOTk4LTEyLTI2IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZGxtb2QgY29tcGlsYXRpb24gaW4gc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKSBjYWxsLgogICAKMTk5OC0xMi0yMiAxNDo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgLSAobWliLmMsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBteSBicm9rZW4gc2V0X2xvY2FsZSBzdHVmZi4KICAgCjE5OTgtMTItMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBjb21waWxlIGRsbW9kcwogICAKMTk5OC0xMi0yMSAxODoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBXaW4zMiBtZW1vcnkgbGVhayBmaXhlcyBmb3Igb3BlbmRpcigpLCBldGMuCiAgIAoxOTk4LTEyLTIxIDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChmaWxlLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlIHRoZSBmaWxlIG1pYiB0byAuMTUgc28gaXQgZG9lc24ndAogICAgIGNvbmZsaWN0IHdpdGggdGhlIGRlbW8gbWliLgogICAKMTk5OC0xMi0yMSAxODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhIC5nZGIgZmlsZSBvZiBtaW5lLgogICAKMTk5OC0xMi0yMSAwOTo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvaXBmLW1vZC5wbCwgbWlicy9JUEZJTFRFUi50eHQ6CgogICAtIChpcGYtbW9kLnBsLCBJUEZJTFRFUi50eHQpOiBQYXRjaCBmcm9tIFlhcm9zbGF2IFRlcmxldHNreToKICAgICAtIGlwZmlsdGVyIHBhc3Mgc2NyaXB0IGFuZCBtaWIgZmlsZS4KICAgCjE5OTgtMTItMTggMTg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaAo6CgogICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogbWliIG9iamVjdCB0byBkaXNwbGF5IGNvbmZpZ3VyZSBvcHRpb25zLgogICAKMTk5OC0xMi0xOCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHN0b3JlIGNvbmZpZ3VyZSBmbGFncyB0byBhIGRlZmluZS4KICAgCjE5OTgtMTItMTggMTg6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGluY2x1ZGUgcmVhZF9jb25maWcuaC4KICAgCjE5OTgtMTItMTggMTg6MTEgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiB1cGRhdGUgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgIAoxOTk4LTEyLTE4IDE4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAo6CgogICAtIChwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGZpeGVzIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAgIC0gbWlzYyByZWFkX2NvbmZpZyBmdW5jdGlvbnMgcHVsbGVkIGluIGZyb20gdGhlIHYzIHdvcmsuCiAgIAoxOTk4LTEyLTE4IDExOjM2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBvLgogICAKMTk5OC0xMi0xNyAwODowNSAgZHJlZWRlcgoKICAgKiBsb2NhbC9zbm1wZC11Y2Quc2g6CgogICBmaWxlIHNubXBkLXVjZC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTgtMTItMTYgMDc6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHBvaW50ZXIgY2hlY2tzIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgCjE5OTgtMTItMTMgMDg6NTkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNSApCiAgIAoxOTk4LTEyLTEzIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBKZWZmIEpvaG5zb24gdG8gdGhlIGNvbnRyaWJ1dG9ycyBsaXN0LgogICAKMTk5OC0xMi0xMyAwODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBKZWZmIEpvaG5zb246CiAgICAgLSBwcm90ZWN0IGFnYWluc3QgbWVtb3J5IGxlYWtzIHdpdGggdGhlIFJQTSBwYWNrYWdlIGluZm8gY2FsbHMuCiAgIAoxOTk4LTEyLTEzIDA4OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IGluaXQgcG9pbnRlciB0byBOVUxMLgogICAKMTk5OC0xMi0xMyAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiB3YXRjaCBvdXQgZm9yIE5VTEwgZmlsZSBwb2ludGVycy4KICAgCjE5OTgtMTItMTMgMDg6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHJlbW92ZSBhIGZldyBkZWZpbmVzIHRoYXQgd2VyZSBtZXNzaW5nIHVwIHNvbGFyaXMgNy4KICAgCjE5OTgtMTItMTMgMDg6MTQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSAtdy8tVyBmbGFnIGluIHVzYWdlLgogICAKMTk5OC0xMi0xMyAwODoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHNwYWNpbmcgaW4gbWliIG9wdGlvbiB1c2FnZSBmaXhlcy4KICAgCjE5OTgtMTItMTMgMDg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGZpeCBkaXNrIHNpemUgZXJyb3IgZmxhZyByZXBvcnRpbmcgb24gU29sYXJpcy4KICAgCjE5OTgtMTItMTMgMDg6MDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYmVnaW5uaW5nIG5vdGVzIGZvciAzLjYuCiAgIAoxOTk4LTEyLTEzIDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiAtUCBmbGFnIGZvciB0b2dnbGluZyBuZXcgbWliIHBhcnNpbmcgb3B0aW9ucy4KICAgCjE5OTgtMTItMTMgMDc6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IG5ldyBmdW5jdGlvbnM6IHNubXBfbWliX3RvZ2dsZV9vcHRpb25zKCkgYW5kIHVzYWdlLgogICAKMTk5OC0xMi0xMyAwNzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAtIHVzZSBzZXRsb2NhbGUoKSBpZiBhdmFpbGFibGUgdG8gY29ycmVjdCBpc3ByaW50IHByb2JsZW1zLgogICAKMTk5OC0xMi0wNSAxNjo1MiAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8ucmVtb3RlOgoKICAgZmlsZSBkZW1vLnJlbW90ZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmNtZHMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaDoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo0NSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtREVNTy1NSUIudHh0OgoKICAgZmlsZSBVQ0QtREVNTy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxMTowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBmaWxlIHNubXB1c20uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMi5mdW5jdGlvbnM6CgogICBmaWxlIGRlbW8yLmZ1bmN0aW9ucyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDMgMTg6NDQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vMjoKCiAgIGZpbGUgZGVtbzIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzIuc2V0dXBmaWxlOgoKICAgZmlsZSBkZW1vMi5zZXR1cGZpbGUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAyIDE1OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZmlsZSBzbm1wLmNvbmYuNS5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI3IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBwYXNzLmM6CgogICBmaWxlIHNubXBwYXNzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI0IDE2OjQzICBkcmVlZGVyCgogICAqIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaDoKCiAgIGZpbGUgdHJhbnNmb3JtX29pZHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjQgMTY6NDMgIGRyZWVkZXIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmM6CgogICBmaWxlIGVuY29kZV9rZXljaGFuZ2UuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBwYXJzaW5nIGJ1ZyBmaXhlcy4KICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgLSBydW50aW1lIG9wdGlvbnMgdG8gY29udHJvbCB1bmRlcnNjb3JlIGFuZCBjb21tZW50IHBhcnNpbmcgaW4gbWlicy4KICAgCjE5OTgtMTEtMjMgMTY6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCiAgIAoxOTk4LTExLTIzIDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMsIGlyaXguaCk6IGZpeCBsb2NhdGlvbiBvZiBfS0VSTkVMIGRlZmluZSBmb3IgaXJpeC4KICAgCjE5OTgtMTEtMjIgMDc6MjggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvLmN2c2lnbm9yZToKCiAgIGZpbGUgLmN2c2lnbm9yZSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMjIgMDc6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZGVtbzoKCiAgIGZpbGUgZGVtbyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTEtMTYgMjI6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiB0b28gbWFueSBpbXByb3ZlbWVudHMgdG8gY291bnQuCiAgIAoxOTk4LTExLTA2IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHYyIHRyYXAgc2VuZCBkZWJ1Z2dpbmcuCiAgIAoxOTk4LTExLTA2IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuaCk6IHVzZSB0cmFwMnNpbmsgZm9yIHYyIGhhbmRsZXJzCiAgIAoxOTk4LTExLTA2IDE3OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCB2MiB0cmFwIGdlbmVyYXRpb24uCiAgIAoxOTk4LTEwLTI0IDIzOjA3ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvbWlzY3Rlc3QuYzoKCiAgIGZpbGUgbWlzY3Rlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMTU6MzkgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldGltZXRlc3QuYzoKCiAgIGZpbGUgZXRpbWV0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDEzOjU4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wZC5jLCB3b21iYXQuaCwKICAgICBzeXN0ZW0uaCwgdmFjbV92YXJzLmgsIGRsbW9kLmMsIGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsCiAgICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmgsIHBhc3MuaCwgcGFzc19wZXJzaXN0LmgsCiAgICAgcHJvYy5oLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1pYi5jLCByZWFkX2NvbmZpZy5jLAogICAgIHJlYWRfY29uZmlnLmgpOgogICAgIC0gbmV3IG9wdGlvbiAtSCBvbiBjb21tYW5kIGxpbmUgdG8gcHJpbnQgb3V0IC5jb25mIGZpbGUgZGlyZWN0aXZlcwogICAgICAgdGhhdCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMuCiAgICAgLSBjcmVhdGVkIGEgbmV3IG9wdGlvbiB0byB0aGUgcmVhZCBjb25maWcgcmVnaXN0cmF0aW9uIHRvIGFsbG93CiAgICAgICBzcGVjaWZ5aW5nIG9mIGEgaGVscCBsaW5lLgogICAKMTk5OC0xMC0yMyAxMzo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGVkaXRhYmxlIG9pZCBmaWVsZC4KICAgCjE5OTgtMTAtMjMgMTM6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMpOiBidWcgZml4ZXMsIG1pc3NpbmcgI2VuZGlmLgogICAKMTk5OC0xMC0yMyAxMzo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc2VydCBAIHNpZ24uCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvVC5zaDoKCiAgIGZpbGUgVC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3Rlc3RsaXN0OgoKICAgZmlsZSBldmFsX3Rlc3RsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBmaWxlIGV2YWxfdG9vbHMuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIGZpbGUgZXZhbF9zdWl0ZS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX29uZXByb2dyYW0uc2g6CgogICBmaWxlIGV2YWxfb25lcHJvZ3JhbS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ULmM6CgogICBmaWxlIFQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9SRUFETUU6CgogICBmaWxlIFJFQURNRSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIE5VTEwgY2hlY2tpbmcgb24gdGhlIGZpbGVzeXN0ZW0gbW91bnQgcG9pbnQuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF9rdWwuc2g6CgogICBmaWxlIHRlc3Rfa3VsLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoOgoKICAgZmlsZSB0ZXN0X2tleWNoYW5nZS5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X3Rvb2xzLnNoOgoKICAgZmlsZSB0ZXN0X3Rvb2xzLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua3VsLW1kNToKCiAgIGZpbGUgZGF0YS5rdWwtbWQ1IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzOgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1zaGExLWRlcyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExOgoKICAgZmlsZSBkYXRhLmtleWNoYW5nZS1zaGExIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLW1kNToKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2UtbWQ1IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RhdGEua3VsLXNoYTE6CgogICBmaWxlIGRhdGEua3VsLXNoYTEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE3OjAxICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYKOgoKICAgLSAoLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmKToKICAgICAtIG5ldyB1bnByb29mcmVhZCBtYW51YWwgb24gdGhlIHJlYWRfY29uZmlnIGFwaSAobW9zdCBvZiBpdCkuCiAgIAoxOTk4LTEwLTIxIDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB3YXRjaCBvdXQgZm9yIGVtcHR5IGZpbGUgbmFtZXMgcGFzc2VkIGluLgogICAKMTk5OC0xMC0yMSAxMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBGaXggcGFyc2VyIHRvIGRlYWwgd2l0aCBhbm9ueW1vdXMgY2hpbGRyZW4gcHJvcGVybHkuCiAgIAoxOTk4LTEwLTIwIDExOjM4ICBkcmVlZGVyCgogICAqIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jOgoKICAgZmlsZSBrZXltYW5hZ2V0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE4IDIxOjE0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xOCAyMToxNCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgZmlsZSBzY2FwaXRlc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTYgMDg6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGFpeC5oKTogYWl4IGhlYWRlciBmaWxlIGZpeGVzLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBmaWxlIHRvb2xzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGZpbGUgdG9vbHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5oOgoKICAgZmlsZSBsY2RfdGltZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBmaWxlIHNjYXBpLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIGZpbGUgc2NhcGkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9sY2RfdGltZS5jOgoKICAgZmlsZSBsY2RfdGltZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmg6CgogICBmaWxlIGtleXRvb2xzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGZpbGUga2V5dG9vbHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oOgoKICAgZmlsZSBhbGxfZ2VuZXJhbF9sb2NhbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2FsbF9zeXN0ZW0uaDoKCiAgIGZpbGUgYWxsX3N5c3RlbS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2RlYnVnLmg6CgogICBmaWxlIGRlYnVnLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE0IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogZml4IGZvciBocHV4OS4KICAgCjE5OTgtMTAtMTQgMTY6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGZvciBicm9rZW4gY29tcGlsZXIgd2FybmluZ3Mgb24gTlQuCiAgIAoxOTk4LTEwLTE0IDE2OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1BLgogICAKMTk5OC0xMC0xNCAxNjo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBkb2N1bWVudCAtQS4KICAgCjE5OTgtMTAtMTQgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogLUE6IGFwcGVuZCB0byBsb2cgZmlsZS4KICAgCjE5OTgtMTAtMTQgMDk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSAoaHJfc3RvcmFnZS5jKTogbWFjaGluZS90eXBlcy5oIGFuZCBzeXMvdm1tZXRlci5oIGZvciBmcmVlYnNkMy4KICAgCjE5OTgtMTAtMTQgMDk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogbmV0L2luX3Zhci5oIGZvciBmcmVlYnNkMy4KICAgCjE5OTgtMTAtMTQgMDk6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBtYWNoaW5lL3R5cGVzLmguCiAgIAoxOTk4LTEwLTE0IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSBwdWJsaWMgY29tbXVuaXR5IGV4YW1wbGVzIC0+IHByaXZhdGUuCiAgIAoxOTk4LTEwLTA5IDIzOjIwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIFNoaWVsZCBleHBsYWlucyBpbiB3b25kZXJvdXMgZGV0YWlsIGFsbCBhYm91dCB0aGUgVkFDTSBtb2R1bGUuCiAgIAoxOTk4LTEwLTA5IDIzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHN1cHBvcnQgZm9yIHN0cmljdCAoY2FzZSBzZW5zaXRpdmUpIG9wdGlvbiB0byB0aGUgbWliIGNvbXBpbGVyLgogICAKMTk5OC0xMC0wOSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBDaGVjayBmb3IgZnVsbHkgcXVhbGlmaWVkIG9pZCBzdGF0ZW1lbnRzLgogICAKMTk5OC0xMC0wOSAwODowOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXNlIHpsaWIgd2hlbiB1c2luZyBycG0gbGlicmFyaWVzLgogICAKMTk5OC0xMC0wNyAxNzowMCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKOgoKICAgLSAobGlic25tcC5kc3AsIGxpYnNubXBfZGxsLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gd2luTlQgcHJvamVjdCBmaWxlIHVwZGF0ZXMuCiAgIAoxOTk4LTEwLTA3IDE2OjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBleGl0aW5nIHByb2JsZW1zIG9uIE5ULgogICAKMTk5OC0xMC0wNyAxNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBkZWZhdWx0IHBvcnQgcHJvYmxlbXMgKGFnYWluKS4KICAgCjE5OTgtMTAtMDcgMTY6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSB1bi1uZWVkZWQgaGVhZGVycy4KICAgCjE5OTgtMTAtMDcgMTY6NDkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggbWFrZSBodG1sLgogICAKMTk5OC0xMC0wNyAxNjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcHJvcGVybHkgbG9jYXRlIHZlcnNpb24uaCBpbiAkKHNyY2RpcikuCiAgIAoxOTk4LTEwLTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTMgKQogICAKMTk5OC0xMC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgogICAKMTk5OC0xMC0wNiAxNTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiBmaXggZm9yIGN2cyAxLjEwLgogICAKMTk5OC0xMC0wNiAxNTozNCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgLSAocmVtb3ZlLWZpbGVzKTogdXBkYXRlLgogICAKMTk5OC0xMC0wNiAxNTozMCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUItT0xELnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi1PTEQudHh0KTogYWRkZWQKICAgCjE5OTgtMTAtMDYgMTU6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBzZXR1cCBkZWZpbmUgZm9yIEhBVkVfVVNMRUVQLgogICAKMTk5OC0xMC0wNiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KICAgCjE5OTgtMTAtMDUgMTc6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSAoaHJfcHJvYy5jKTogcG9zc2libGUgZml4IGZvciBzb2xhcmlzJ3MgcHJvY2VzcyBwZXJjZW50YWdlLgogICAKMTk5OC0xMC0wNSAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvOiBkdW1teS5jLCBkdW1teS5oOgoKICAgLSAoZHVtbXkuYywgZHVtbXkuaCk6IHVwZGF0ZSB0byByZW1vdmUgY29tbW9uX2hlYWRlci5oCiAgIAoxOTk4LTA5LTMwIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbnRlcmZhY2VzLmMsIG1lbW9yeS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBwYXJzZS5jKToKICAgICAtIG1lcmdlIDMuNS4zIGNoYW5nZXMgaW50byBtYWluIHRydW5rLgogICAKMTk5OC0wOS0yNSAxODoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1dGlsX2Z1bmNzLmMpOiB1c2UgVVNMRUVQIGlmIGF2YWlsYWJsZSBmb3IKICAgICBzbWFsbCBzbGVlcCB0aW1lcyB3aGlsZSB3YWl0aW5nIGZvciBwcm9jZXNzZXMgdG8gZmluaXNoLgogICAKMTk5OC0wOS0yNSAxODowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50LW91dC4KICAgCjE5OTgtMDktMjUgMTg6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHZlcnNpb24uaCwgYW5kIHN0cmlwIGluY2x1ZGVzIG91dCBvZiBjb25maWcuaAogICAKMTk5OC0wOS0yNSAxNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgaW5zdGFsbCBsaWJzbm1wLmguICBJdCdzIGdvaW5nIHRvIGNoYW5nZSB0b28KICAgICBtdWNoIGluIHRoZSBmdXR1cmUuCiAgIAoxOTk4LTA5LTI1IDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluc3RhbGwgbW9yZSBoZWFkZXJzLgogICAKMTk5OC0wOS0yNSAxNzozMiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgIHNubXB0YWJsZS5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHN0dXBpZCBPUyB1cGRhdGUuCiAgIAoxOTk4LTA5LTI1IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zOgoKICAgLSAoc25tcF9zZXNzX2FwaS4zKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzZXNzaW9uIGRvY3VtZW50YXRpb24gdXBkYXRlLgogICAKMTk5OC0wOS0yNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogcHJvY2VzcyBhcmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiBnZXRfb3B0KCkuCiAgIAoxOTk4LTA5LTI1IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLAogICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbQogICAgIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBjb21waWxlciB3YXJuaW5ncywgZXJyb3JzLgogICAKMTk5OC0wOS0yNSAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgLSBUaGUgQ01VIGxpYnJhcnkgaGFzIGFuIG9wdGltaXphdGlvbiBpbiBzbm1wX2Nsb25lX3BkdSgpIHRoYXQgZG9lcwogICAgICBub3QgY29weSB6ZXJvIGxlbmd0aCBzdHJpbmdzLiAgSSBoYWQgbWVyZ2VkIHRoaXMgaW4gd2l0aCBjaGFuZ2VzCiAgICAgIG1hZGUgZm9yIG11bHRpLXRocmVhZCBzdXBwb3J0LiAgVW5mb3J0dW5hdGVseSwgSSBkaWQgbm90IG1ha2Ugc3VyZQogICAgICB0aGUgY2xvbmVkIFBEVSBoYWQgbm8gcG9pbnRlciBmb3IgdGhpcyBjYXNlLiAgT29wcyEKICAgIC0gQW5vdGhlciBwcm9ibGVtIGluIHNubXBfY2xvbmVfcGR1KCkgd2FzIHRoZSB0ZXN0IGZvciB6ZXJvIGxlbmd0aAogICAgICBzdHJpbmcgd2FzIG5vdCBiZWluZyBwZXJmb3JtZWQgb24gdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNoYWluLgogICAKMTk5OC0wOS0yNSAxNzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKEV4dC0zLTUtcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBkb24ndCByZWx5IG9uIHRoZSBnZXRzZXJ2YnluYW1lIHBvaW50ZXIgdG8gc3RheSBhcm91bmQuCiAgIAoxOTk4LTA5LTIzIDEzOjA2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGFyc2UuYyk6IE5ldyBmbGFnOgogICAgIC0gLS1lbmFibGUtZW9sLXRlcm1pbmF0ZWQtY29tbWVudHMuCiAgIAoxOTk4LTA5LTIzIDEyOjE1ICBoYXJkYWtlcgoKICAgKiBJU1NVRVM6CgogICBmaWxlIElTU1VFUyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMjEgMTE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMgKEV4dC0zLTUtcGF0Y2hlcy41KSwgc25tcF92YXJzLmMKICAgKFYzLWIxLls1LDJdKSwgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgogICAKMTk5OC0wOS0yMSAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gKGZpbGUuYywgZmlsZS5oKTogYWxsb3cgLTEgc2l6ZSB0byBpbmRpY2F0ZSBzaW1wbGUgc2l6ZSBtb25pdG9yaW5nLgogICAKMTk5OC0wOS0xOCAxNDowNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENoYW5nZSBmaWxlIHJldHVybiBjb2RlIGZyb20gVHJ1dGhWYWx1ZSB0bwogICAgIGludGVnZXIgc2luY2UgMS8yIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCAwLzEgcmV0dXJuIGNvZGUgc2NoZW1lLgogICAKMTk5OC0wOS0xOCAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oOgoKICAgLSAoZmlsZS5oKTogcmVtYXAgdG8gdGhlIDEwMC8xMDEgY29udmVudGlvbnMgb2YgdGhlIHVjZC1zbm1wIHRhYmxlcy4KICAgCjE5OTgtMDktMTggMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtICh1Y2Rfc25tcC5oKTogYWRkIHRoZSBmaWxlIG1pYiBtb2R1bGUuCiAgIAoxOTk4LTA5LTE4IDEzOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGZpbGUuYywgZmlsZS5oOgoKICAgLSAoZmlsZS5jLCBmaWxlLmgpOiBQYXRjaCBmcm9tIEpvbmFzIE9sc3NvbjoKICAgICAtIEltcGxlbWVudCBhIGZpbGUgc2l6ZSB3YXRjaGluZyBtaWIgbW9kdWxlICh1Y2Qtc25tcC9maWxlKS4KICAgCjE5OTgtMDktMTggMTM6MjAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBhZGRlZCB0aGUgRmlsZVRhYmxlIHN1Ym1pdHRlZCBieSBKb25hcyBPbHNzb24uCiAgIAoxOTk4LTA5LTE4IDEyOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAtdGMuaDoKCiAgIGZpbGUgc25tcC10Yy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBmaWxlIHNubXB1c20uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgZmlsZSBzbm1wdXNtLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgZmlsZSB1c21Vc2VyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgZmlsZSB1c21Vc2VyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE2IDA3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaDoKCiAgIGZpbGUgdXNtU3RhdHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTYgMDc6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jOgoKICAgZmlsZSB1c21TdGF0cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNSAxMzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGluaXRfc25tcCBjYWxscyBmcm9tIHNlc3Npb24gcm91dGluZXMuCiAgIAoxOTk4LTA5LTE1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiAvLyBjb21tZW50IC0+IC8qICovIGNvbW1lbnQuCiAgIAoxOTk4LTA5LTE1IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWVtb3J5IHJlbGF0ZWQgZml4ZXMuCiAgIAoxOTk4LTA5LTE0IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmM6CgogICBmaWxlIHNubXBNUERTdGF0cy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oOgoKICAgZmlsZSBzbm1wTVBEU3RhdHMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMTc6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpbGUgc25tcHYzbWlicy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAxMjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWw6CiAgICAgLSBkbyBkbG1vZHMgY29tcGlsYXRpb24gYmV0dGVyIGF0IGxlYXN0IG9uIHNvbGFyaXMgYW5kIGxpbnV4LgogICAKMTk5OC0wOS0xNCAxMjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBkbG1vZF9taWIuYywgdXRpbF9mdW5jcy5jLAogICAgIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgICBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgc25tcF9iZ3AuYywKICAgICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIGhwdXguYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywKICAgICByZWdpc3RyeS5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywKICAgICBwYXJ0eV92YXJzLmMsIHZpZXdfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gcmVuYW1lIGNvbXBhcmUgLT4gc25tcF9vaWRfY29tcGFyZSgpLgogICAKMTk5OC0wOS0xNCAxMjozNSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGluc3RhbGwgc25tcF9zZXNzX2FwaS4zLgogICAKMTk5OC0wOS0xNCAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYzoKCiAgIGZpbGUgc25tcEVuZ2luZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaDoKCiAgIGZpbGUgc25tcEVuZ2luZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGZpbGUgc25tcHYzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDA5OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5oOgoKICAgZmlsZSBzbm1wdjMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTMgMjE6MDkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB1cGRhdGU6IDMuNi5wcmUyCiAgIAoxOTk4LTA5LTEzIDIxOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmM6CgogICAtIChtaWIuYywgcmVhZF9jb25maWcuYyk6IHJlZml4IHRoZSBub24tbWFsbG9jZWQgY29uZmlndXJhdGlvbiB2YXJzLgogICAKMTk5OC0wOS0xMyAyMTowNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogTmFtZSBhZGRpdGlvbi4KICAgCjE5OTgtMDktMTMgMjA6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcmV2ZW50IGRvdWJsZSBpbml0X3NubXAoKXMuCiAgIAoxOTk4LTA5LTEzIDIwOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbm90IGZpbmRpbmcgYSBjb25maWcgZmlsZSBpcyBwcmludGVkIHdpdGggREVCVUdQKCkgaW5zdGVhZC4KICAgCjE5OTgtMDktMTMgMjA6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBkZWZpbmUgdXNhZ2UgbWlzcGVsbGluZyBTTk1QX0JBRF9QQVJTRSAtPiBTTk1QRVJSX0JBRF9QQVJTRS4KICAgCjE5OTgtMDktMTMgMjA6MTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgLSBtZXJnZSBpbnRvIG1haW4gbGluZSBmcm9tIHRoZSAzLTYtcHJlMS10cmFucyBicmFuY2guCiAgIAoxOTk4LTA5LTEzIDE4OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBleGl0IC0+IHJldHVybi4KICAgCjE5OTgtMDktMTIgMDk6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBNb3ZlIENBTl9VU0VfTkxJU1QgdGVzdHMgYmVsb3cgYXJjaCAuaCBmaWxlcy4KICAgCjE5OTgtMDktMTIgMDk6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGJ1ZyBmaXggdG8gY2hlY2sgZm9yIE5VTEwgc2Vzc2lvbiBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KICAgCjE5OTgtMDktMTIgMDg6NTYgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluOgoKICAgLSAob3YvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgc2VjdGlvbnMgYWxyZWFkeSBkZWZpbmVkIGluIE1ha2VmaWxlLnRvcC4KICAgCjE5OTgtMDktMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkIG1pYl9tb2R1bGVfc2h1dGRvd24uaAogICAKMTk5OC0wOS0xMiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERvbid0IGZvcmNlIGNjIGFueW1vcmUsIGFsbG93IGdjYyB0byBnbyBmaXJzdC4KICAgCjE5OTgtMDktMTIgMDg6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtb3ZlIHVuLWNvbmZpZ3VyZWQgZGVmaW5lcyBhYm92ZSBAVE9QQC4KICAgCjE5OTgtMDktMTIgMDg6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcm90b3R5cGUgbW92ZSBpbml0X3NubXAoKSBhYm92ZSBpbml0X3NubXBfc2Vzc2lvbi4KICAgCjE5OTgtMDktMTEgMDk6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgbWFuL3NubXBfc2Vzc19hcGkuMywKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9pbnQ2NC5oCiwgc25tcGxpYi9saWJzbm1wLmgsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmgsIHdpbjMyL2NvbmZpZy5oCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICgqKTogTWVyZ2VkIHRoZSBNVCBjaGFuZ2VzIGludG8gdGhlIG1haW4gYnJhbmNoLgogICAKMTk5OC0wOS0wOSAyMTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9saWJzbm1wLmg6CgogICBmaWxlIGxpYnNubXAuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LTEtTVQuCiAgIAoxOTk4LTA5LTA5IDIxOjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zOgoKICAgZmlsZSBzbm1wX3Nlc3NfYXBpLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS0xLU1ULgogICAKMTk5OC0wOS0wOSAxNjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggdHJhcCBzdHVmZiBicm9rZW4gYnkgdGhlIGNvZGUgbWVyZ2UuCiAgIAoxOTk4LTA5LTA5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcKLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5wbGcKLCBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0L3NubXBnZXQucGxnLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZwosIHNubXBzZXQvc25tcHNldC5kc3AsIHNubXBzZXQvc25tcHNldC5wbGcsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRlc3Qvc25tcHRlc3QucGxnLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgYWNsLmgsIGFzbjEuYywgYXNuMS5oCiwgbWQ1LmgsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLAogICBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsCiAgIHN5c3RlbS5jLCB2YWNtLmgsIHZpZXcuaDoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBtYW4vbWliX2FwaS4zLAogICBtYW4vc25tcF9hcGkuMywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuOCwKICAgbWFuL3ZhcmlhYmxlcy41OgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjMwICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDT1BZSU5HLCBDaGFuZ2VMb2csIE1ha2VmaWxlLmluCiwgTkVXUywgUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvc25tcDJwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcDoKCiAgIGZpbGUgc25tcGRlbHRhLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEucGxnOgoKICAgZmlsZSBzbm1wZGVsdGEucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRlc3Qvc25tcHRlc3QucGxnOgoKICAgZmlsZSBzbm1wdGVzdC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3A6CgogICBmaWxlIHNubXB0cmFwLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcDoKCiAgIGZpbGUgc25tcHRlc3QuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRyYXAvc25tcHRyYXAucGxnOgoKICAgZmlsZSBzbm1wdHJhcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmg6CgogICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oOgoKICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTAzIDE0OjI5ICBuYmEKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgogICAKMTk5OC0wOS0wMiAxODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLAogICBzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgIHNubXBkLmgpOgogICAgIC0gc3VwcG9ydCBtaWItbW9kdWxlIHNodXRkb3duIGZ1bmN0aW9ucy4KICAgICAtIGRvIGEgbWluaW1hbCBwZXJzaXN0ZW50IGNhY2hlIGltcGxlbWVudGF0aW9uIGFuZCByZWFkIGl0IGF0IHN0YXJ0IHVwLgogICAgIC0gdGVzdCB3aXRoIGJlZ2lubmluZ3MgKHdyb25nIHBsYWNlKSBvZiBhZ2VudEJvb3RzIHZhcmlhYmxlLgogICAKMTk5OC0wOS0wMiAxODo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdXNlIGluaXRfc25tcCBpbnN0ZWFkIG9mIGluaXRfbWliKCkuCiAgIAoxOTk4LTA5LTAyIDE4OjQ4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBpbml0X3NubXAoKS4KICAgCjE5OTgtMDktMDIgMTg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsCiAgIHJlYWRfY29uZmlnLmg6CgogICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgIC0gcHJlL3Bvc3QgbWliIGxvYWRpbmcgY29uZmlnIGZpbGVzLgogICAgIC0gY3JlYXRlIGluaXRfc25tcCgpIHRvIHdyYXAgb3RoZXIgZnVjdGlvbnMuCiAgICAgLSBuZXcgc25tcC5jb25mIGRpcmVjdGl2ZXM6IG1pYnMsIG1pYmRpcnMsIG1pYmZpbGUuCiAgIAoxOTk4LTA5LTAyIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogdHlwby4KICAgCjE5OTgtMDktMDIgMTg6NDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlIHF1ZXN0aW9uLgogICAKMTk5OC0wOS0wMiAxODo0MyAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCiAgIAoxOTk4LTA4LTMxIDEzOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KICAgCjE5OTgtMDgtMzEgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChFeHQtMy01LXBhdGNoZXMuMiksCiAgIGludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KICAgCjE5OTgtMDgtMTQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA4LTE0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wNy0yMiAxNjoyMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgogICAKMTk5OC0wNy0yMiAxNTozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgogICAKMTk5OC0wNy0yMCAxNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgogICAKMTk5OC0wNy0xNyAxMzoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9SRkMtMTIxNS50eHQ6CgogICAtIChSRkMtMTIxNS50eHQpOiBjcmVhdGVkIGFuIGVtcHR5IG1pYiBtb2R1bGUgZm9yIGltcG9ydGluZyBvZiBUUkFQLVRZUEUuCiAgIAoxOTk4LTA3LTE3IDEzOjExICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCiAgIAoxOTk4LTA3LTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCiAgIAoxOTk4LTA3LTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KICAgCjE5OTgtMDctMTAgMDk6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogd3JvbmcgcGR1IHBvaW50ZXIgZm9yIHNubXB2MmMgdHJhcHMuCiAgIAoxOTk4LTA3LTA4IDE1OjUxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy42LnByZTEgKQogICAKMTk5OC0wNy0wOCAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IC1XYWxsIGNvcnJlY3Rpb25zLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogYnVnIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAo6CgogICAtIChwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgpOiBjbGVhbmVkIHVwIGFuZCAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IHJlbW92ZWQgdWNkLXNubXAvcGFzc19wZXJzaXN0IGZyb20gZGVmYXVsdCBpbmNsdWRlIGxpc3QuCiAgIAoxOTk4LTA3LTA4IDE0OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oCiwgcGFzcy1wZXJzaXN0LmMsIHBhc3MtcGVyc2lzdC5oOgoKICAgLSAocGFzcy1wZXJzaXN0LmMgcGFzcy1wZXJzaXN0LmgpOiBtb3ZlZCB0byBwYXNzX3BlcnNpc3QuW2NoXS4KICAgCjE5OTgtMDctMDggMTQ6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZSB1bnJlZ2lzdGVyX3JlYWQuLigpIGZ1bmN0aW9uLgogICAKMTk5OC0wNy0wOCAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgIC0gKGRsbW9kLmMpOiB1c2Ugc25tcGRfIHJlZ2lzdGVyX3JlYWRfY29uZmlnKCkgd3JhcHBlcnMuCiAgIAoxOTk4LTA3LTA4IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oKTogd3JhcHBlcnMgZm9yIHJlYWwgcmVhZF9jb25maWcoKXMuCiAgIAoxOTk4LTA3LTA4IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2RsbW9kcy8uY3ZzaWdub3JlLCBhZ2VudC9kbG1vZHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYywgYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5oLAogICBhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLCBhZ2VudC9kbG1vZHMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaAosIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBtaWJzL0RMTU9ELU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jLAogICAgIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIERMTU9ELU1JQi50eHQsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRXVnZW5lCiAgICAgUG9sb3ZuaWtvdjoKICAgICAtIG5ldyBkbG1vZCBzZXQuCiAgICAgLSBmaXggY29uZmlndXJlIHNjcmlwdC4KICAgCjE5OTgtMDctMDggMTM6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KICAgCjE5OTgtMDctMDggMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGRvbid0IGZyZWUgZW52IHBvaW50ZXJzIHRoYXQgYXJlIGNyZWF0ZWQuCiAgIAoxOTk4LTA3LTA4IDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtYWtlIGhwX2ludGVyZmFjZXMgc3RydWN0dXJlIHN0YXRpYy4KICAgCjE5OTgtMDctMDggMTI6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCiAgIAoxOTk4LTA3LTA4IDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IGFkZGVkIHBhc3MtcGVyc2lzdCBtb2R1bGUuCiAgIAoxOTk4LTA3LTA4IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogcmVtb3ZlZCBmcm9tIGFnZW50IGRpci4KICAgCjE5OTgtMDctMDggMTI6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc3RydWN0LmgsIHV0aWxfZnVuY3MuYywKICAgdXRpbF9mdW5jcy5oLCB1Y2Qtc25tcC9wYXNzLXBlcnNpc3QuYywKICAgdWNkLXNubXAvcGFzcy1wZXJzaXN0Lmg6CgogICAtIChzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHBhc3MtcGVyc2lzdC5jLAogICAgIHBhc3MtcGVyc2lzdC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgIC0gY3JlYXRlIGEgcGFzcy1wZXJzaXN0IG1vZHVsZSB0byBoYW5kbGUgY29udGludW91c2x5IHJ1bm5pbmcgcGFzcyB0aHJvdWdocy4KICAgCjE5OTgtMDctMDggMTI6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQuZHNwCiwgc25tcGdldC9zbm1wZ2V0LnBsZywgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LnBsZywgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcAosIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gKHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwucGxnLAogICAgIHNubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQuZHNwLCBzbm1wZ2V0LnBsZywKICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgIHNubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrLmRzcCwgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UKICAgICBNYXJ6b3Q6CiAgICAgLSB3aW4zMiB1cGRhdGUuCiAgIAoxOTk4LTA3LTAxIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKToKICAgICAtIGZpeCBleHRlbnNpYmxpdHkgY2hlY2tpbmcgb2Ygb2lkcy4KICAgICAtIHNlcGVyYXRlIHJ1bm5pbmcgb2YgZXh0ZXJuYWwgY29tbWFuZCBpbnRvIG5ldyBmdW5jdGlvbi4KICAgCjE5OTgtMDctMDEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IG1pbm9yIHNwYWNpbmcgY2hhbmdlcy4KICAgCjE5OTgtMDctMDEgMTU6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oKToKICAgICAtIGFkZGVkIERFQlVHUE9JRChuYW1lLCBuYW1lbGVuKTsKICAgICAtIG1vdmVkIERFQlVHUCBkZWZpbml0aW9uIGludG8gc25tcF9hcGkuaCB3aGVyZSBpdCBiZWxvbmdzLgogICAKMTk5OC0wNy0wMSAxMToyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgogICAKMTk5OC0wNy0wMSAxMToyMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgTWFrZWZpbGUuaW4sCiAgICAgc3RydWN0LmgsIHBhc3MuaCwgTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZyBzdXBwb3J0IGludG8gdGhlIGxpYnJhcnkgYW5kIHVzZSBpdC4KICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCiAgIAoxOTk4LTA2LTI4IDA5OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZml4IHNubXBfYWRkX3ZhcigpLgogICAKMTk5OC0wNi0yNiAxMDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMKLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmg6CgogICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggZm9yIG5ldyBkZWZpbmVzIGFuZCBwcm9wZXIgaGVhZGVyIGluY2x1ZGVzLgogICAKMTk5OC0wNi0yNiAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgcHJvdGVjdCBhZ2FpbnN0IDMyIGJpdCBvdmVyZmxvd3MuCiAgIAoxOTk4LTA2LTI0IDExOjQwICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZGVkIC5pbmRleC4KICAgCjE5OTgtMDYtMjQgMTE6NDAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXBkLmMsIHNubXBkLmgpOgogICAgIC0gY3JlYXRlZCAocG9vcmx5KSBzZW5kX3RyYXBfcGR1KCkgZm9yIHNlbmRpbmcgdjIgdHJhcHMgZnJvbSBtaWIgbW9kdWxlcy4KICAgCjE5OTgtMDYtMjQgMTE6MDggIGhhcmRha2VyCgogICAqIG1pYnMvOiAuY3ZzaWdub3JlLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgIC0gbWlzYyBtaWIgZml4ZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8uY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlLCAuY3ZzaWdub3JlKTogYSBmZXcgdXBkYXRlcy4KICAgCjE5OTgtMDYtMjQgMTA6NTcgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAobWFuLy5jdnNpZ25vcmUpOiBpZ25vcmUgLmh0bWwgZmlsZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtb3ZlZCBoZXhfdG9fYmluYXJ5LCBhc2NpaV90b19iaW5hcnksIGFuZCBzbm1wX2FkZF92YXIgdG8gc25tcGxpYi4KICAgCjE5OTgtMDYtMjQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaAo6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGNyZWF0ZSBzbm1wX3BkdV9hZGRfdmFyaWFibGUoKS4KICAgCjE5OTgtMDYtMjQgMTA6MzAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KICAgCjE5OTgtMDYtMjIgMDk6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgogICAKMTk5OC0wNi0xOSAxMzoxNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuCiAgIAoxOTk4LTA2LTE5IDEzOjEzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy41ICkKICAgCjE5OTgtMDYtMTkgMTM6MTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogTGFzdCB1cGRhdGUgZm9yIDMuNS4KICAgCjE5OTgtMDYtMTkgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDYtMTkgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBtZW1zZXQgdG8gMCB0aGUgZW50aXJlIHN1YnRyZWUgc3RydWN0LgogICAKMTk5OC0wNi0xOSAxMjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogZml4IGNoZWNrbWliKCkgaW4gY2FzZSB3ZSBnZXQgY2FsbGVkIG9uIGEgZ2V0IHdoZW4KICAgICB3ZSByZWFsbHkgc2hvdWxkbid0IChiYWQgYXJ0aWZhY3Qgb2YgbmV3IHRyZWUgc3RydWN0dXJlKS4KICAgCjE5OTgtMDYtMTkgMTI6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmM6CgogICAtIChkdW1teS5jKTogbWVudGlvbiBhdXRvX25saXN0KCkuCiAgIAoxOTk4LTA2LTE5IDEyOjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9BZGRNb2R1bGVGb3JEdW1taWVzLnR4dDoKCiAgIC0gKEFkZE1vZHVsZUZvckR1bW1pZXMudHh0KTogdXBkYXRlIHRvIGZpeCBwYXRocyBhbmQgbWlzYyBzdHVmZi4KICAgCjE5OTgtMDYtMTkgMTI6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBmaXggcmVnaXN0ZXJfbWliKCkgdG8gaW5pdCBwb2ludGVycyB0byBudWxsLgogICAKMTk5OC0wNi0xOSAwODo1OSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGluc3RhbGwgSVBGV0FDQyBtaWIuCiAgIAoxOTk4LTA2LTE5IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCk6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSB0dXJuIGludG8gYSBjb3JyZWN0IHRhYmxlLgogICAKMTk5OC0wNi0xOSAwODo1OCAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gZXhhbXBsZSBvdXRwdXQgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTA2LTE5IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBCU0RJIHVzZXJzIGFnYWluc3QgL3Vzci91Y2IvY2MuCiAgIAoxOTk4LTA2LTE5IDA4OjQxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZDogbm90IGZvdW5kIG1vZHVsZXMgd2l0aCBjb25maWd1cmU/LgogICAKMTk5OC0wNi0xNyAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaDoKCiAgIC0gKGR1bW15LmgpOiBhZGQgRFVNTVktTUlCIGJ5IGRlZmF1bHQuCiAgIAoxOTk4LTA2LTE3IDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChSRUFETUUpOiBtZW50aW9uIGR1bW15IGdyb3VwLgogICAKMTk5OC0wNi0xNyAwODoyMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhZ2VudC9taWJncm91cC9kdW1teS9BZGRNb2R1bGVGb3JEdW1taWVzLnR4dAosIGFnZW50L21pYmdyb3VwL2R1bW15L0RVTU1ZLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgKOgoKICAgLSAoUkVBRE1FLCBBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCwgRFVNTVktTUlCLnR4dCwgZHVtbXkuYywgZHVtbXkuaCk6CiAgICAgUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgIC0gbWliIG1vZHVsZSBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGZvciBkdW1taWVzLgogICAKMTk5OC0wNi0xNyAwODoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIC0gKG1pYi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHJlbW92ZSAybmQgaW5pdF9taWIoKSBwcm90b3R5cGUuCiAgIAoxOTk4LTA2LTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBiY29weSAtPiBtZW1jcHkuCiAgIAoxOTk4LTA2LTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwKICAgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwgc25tcGdldG5leHQuMSwgc25tcHNldC4xCiwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgc25tcHdhbGsuMToKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICAgIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgICBzbm1wd2Fsay4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvY3VtZW50YXRpb24gY2xlYW51cCBhbmQgY2VudHJhbGl6YXRpb24gb2YgY29tbW9uIG9wdGlvbnMuCiAgIAoxOTk4LTA2LTE3IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiB1c2FnZSgpIHVwZGF0ZS4KICAgCjE5OTgtMDYtMTcgMDg6MDggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtaXNjIHR5cGUgZml4ZXMuCiAgIAoxOTk4LTA2LTEyIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZSBhbmQgdXNlIGEgdWNkRXhwZXJpbWVudGFsIHNlY3Rpb24gZm9yIHRoZSBpcGZ3YWNjIG1pYiB0aWxsCiAgICAgICBpdCBzdGFiaWxpemVzLgogICAKMTk5OC0wNi0xMiAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmM6CgogICAtIChrZXJuZWwuYyk6IGRvbid0IHByaW50IGtscmVhZCBlcnJvcnMgdW5sZXNzIGluIGRlYnVnZ2luZyBtb2RlLgogICAKMTk5OC0wNi0xMiAxMzo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiA2NGJpdCBmaXggbWVudGlvbmVkLgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IGFkZCBzZXRlbnYgdG8gdGhlIGxpc3QuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKHdpbjMyL2NvbmZpZy5oKTogZG9uJ3QgaGF2ZSBzZXRlbnYuCiAgIAoxOTk4LTA2LTEyIDEzOjEzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogZnVuY3Rpb24gbmFtZSB0eXBvLgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHRyYXAgdHlwZXMgd2VyZSBpbnQncyBub3QgbG9uZ3MgKGZhaWxlZCB1bmRlciA2NGJpdCBhcmNoKS4KICAgCjE5OTgtMDYtMTIgMTM6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IHBlcmNlbnRhZ2UgY2hlY2sgd2FzIGJhY2t3YXJkcy4KICAgCjE5OTgtMDYtMTIgMTA6MTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWlub3IgdXBkYXRlLgogICAKMTk5OC0wNi0xMiAxMDoxMiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBzaG93IHZhY20gZXhhbXBsZSBmb3IgcHVibGljL3ByaXZhdGUgZnJvbSBhbnl3aGVyZS4KICAgCjE5OTgtMDYtMTIgMDg6NTIgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUToKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSB1cGRhdGUgZm9yIFZBQ00gc3R1ZmYuCiAgIAoxOTk4LTA2LTEwIDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiAtV2FsbCBjbGVhbnVwcy4KICAgCjE5OTgtMDYtMTAgMTU6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlLgogICAKMTk5OC0wNi0xMCAxNTozMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBhZGRlZCBEYXZlJ3MgbGlzdC4KICAgCjE5OTgtMDYtMTAgMTQ6MTUgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMiApCiAgIAoxOTk4LTA2LTEwIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSAgc3RhcnRzIHRvIHNlcGFyYXRlIG91dCB0aGUgaGlzdG9yaWMgU05NUHYyIHN0dWZmLgogICAgIC0gIGRvZXMgYSBiaXQgb2YgJ2NvZGUgdGlkeWluZycuCiAgICAgLSAgc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBwb3J0LXNwZWNpZmljIGhhbmRsZXJzLgogICAKMTk5OC0wNi0xMCAwNzoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGhhdmVfc2V0ZW52LgogICAKMTk5OC0wNi0wOCAxNDo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHVuZGlkIHJlZG8gb2YgY29tbWVudCBvZiBnZXR0aW1lb2ZkYXkoKS4KICAgCjE5OTgtMDYtMDggMTQ6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoCiAgICBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBhc3luYyBzdHVmZiBhZGRlZC4KICAgICAtIGdldF90YyBhZGRlZC4KICAgICAtIGJldHRlciBjb21tZW50cyBpbiBzb21lIHBsYWNlcy4KICAgCjE5OTgtMDYtMDggMTQ6MTYgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IHczMiB1cGRhdGUuCiAgIAoxOTk4LTA2LTA4IDE0OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gcmVtb3ZlIG1vcmUgY29uZmlnIGNyZWF0ZWQgaGVhZGVycyBvbiBtYWtlIGNvbmZpZ2NsZWFuLgogICAKMTk5OC0wNi0wOCAxMzo1OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdXBkYXRlIHJmYyAjIGZvciB2YWNtIHJlZmVyZW5jZS4KICAgCjE5OTgtMDYtMDggMTM6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIEV1Z2VuZSdzIG5hbWUuCiAgIAoxOTk4LTA2LTA4IDEyOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogY3JlYXRlIGEgLmMgLT4gLm8gcnVsZSB0byBtYWtlIHN1cmUgYW5kIHBsYWNlIHRoZQogICAgIG9iamVjdCBmaWxlcyBpbiB0aGUgYXBwcm9wcmlhdGUgc3ViZGlyZWN0b3JpZXMuCiAgIAoxOTk4LTA2LTA4IDEwOjUwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cmwgdHlwZSBzcGxpdHRpbmcuCiAgIAoxOTk4LTA2LTA1IDExOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKToKICAgICAtIGNoYW5nZSB7ZGUsfWluaXQgZnVuY3Rpb25zIHRvIF9keW5hbWljX3tkZSx9aW5pdF9NT0RVTEUuCiAgICAgLSB1c2UgU05NUExJQlBBVEggaW5zdGVhZCBvZiBoYXJkIGNvZGVkIC91c3IvbG9jYWwvbGliLgogICAKMTk5OC0wNi0wNSAxMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmMsIHBhcnNlLmgsIHN5c3RlbS5jCiwgc3lzdGVtLmg6CgogICAtIChhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gTUlCX0FDQ0VTUyBkZWZpbmUgY2hhbmdlcy4KICAgICAtIHNldGVudiBpbXBsZW1lbnRhdGlvbi4KICAgICAtIGlmZGVmIHdyYXBwZXJzIGZvciBPUEFRVUVfU1BFQ0lBTF9UWVBFUy4KICAgCjE5OTgtMDYtMDUgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBmb3IgbnVsbCBwb2ludGVyLgogICAKMTk5OC0wNi0wNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogbWFrZXRhcmdldDoKCiAgIC0gKG1ha2V0YXJnZXQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc3VwcG9ydCBmb3IgbGFyZ2VyIHRyZWUgZGVwdGhzLgogICAKMTk5OC0wNi0wNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IGZvciBzZXRlbnYuCiAgIAoxOTk4LTA2LTAzIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy41LnByZTEgKQogICAKMTk5OC0wNi0wMyAxNDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlYWRfY29uZmlnLm8gaXMgbWlibW9kdWxlIGhlYWRlciBkZXBlbmRhbnQgdG9vLgogICAKMTk5OC0wNi0wMyAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4ncyk6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNi0wMyAxNDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYXBwcy9zbm1wc2V0LmMsCiAgIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoaHJfZGlzay5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIHNubXBzZXQuYywgYXNuMS5oLAogICAgIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAtIC1XYWxsIGZpeGVzLgogICAKMTk5OC0wNi0wMyAxNDowMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCBuZXcgLS13aXRoLWNjIGFuZCAtLXdpdGgtY2ZsYWdzIGFyZ3VtZW50cy4KICAgCjE5OTgtMDYtMDMgMTM6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZnJlZWJzZDIuaCk6CiAgICAgLSBtb3ZlIGNvbmZpZ3VyYWJsZSBkZWZpbmVzIHRvIGNvbmZpZ3VyZSByYXRoZXIgdGhhbiBpbiBmcmVlYnNkMi5oLgogICAKMTk5OC0wNi0wMyAxMzo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wdHJhcGQuYyk6CiAgICAgLSBjaGVjayBmb3IgZ2V0ZHRhYmxlc2l6ZSBhbmQgdXNlIGEgZ2VuZXJpYyBpZiBub3QgYXZhaWxhYmxlLgogICAKMTk5OC0wNi0wMyAxMzozOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IE5ldyBmbGFnczoKICAgICAtIC0td2l0aC1jYz1DQwogICAgIC0gLS13aXRoLWNmbGFncz1DRkxBR1MKICAgCjE5OTgtMDYtMDMgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgIC0gZml4IHBkdS0+dmVyc2lvbnMgdG8gYmUgYWxsIGludHMuCiAgIAoxOTk4LTA2LTAzIDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBtaXNzZWQgYSBuZWVkZWQgT1BBUVVFX1NQRUNJQUxfVFlQRVMgaWZkZWYuCiAgIAoxOTk4LTA2LTAzIDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGluY2x1ZGUgbWliSUkvc25tcF9taWIuaC4KICAgCjE5OTgtMDYtMDMgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwKICAgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlcy9leGFtcGxlLmMsCiAgIGV4YW1wbGVzL2V4YW1wbGUuaCwgZXhhbXBsZXMvd29tYmF0LmMsCiAgIGV4YW1wbGVzL3dvbWJhdC5oOgoKICAgLSAoUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlLmMsCiAgICAgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOgogICAgIC0gbW92ZWQgd29tYmF0IGFuZCBleGFtcGxlIHRvIGV4YW1wbGVzLyBkaXJlY3RvcnkuCiAgIAoxOTk4LTA2LTAzIDExOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oLCBtaXNjL2RsbW9kLmMKLCBtaXNjL2RsbW9kLmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCk6IFBhdGNoIGZyb20gRXVnZW5lIFBvbG92bmlrb3Y6CiAgICAgLSBpbXBsZW1lbnQgYSBkeW5hbWljIGxvYWRpbmcgbW9kdWxlIGZvciBsb2FkaW5nIHNoYXJlZCBvYmplY3QgbWliIG1vZHVsZXMuCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtZW50aW9uIENyaXN0aWFuIEVzdGFuIGluIHRoZSBjb2RlcnMgbGlzdC4KICAgCjE5OTgtMDYtMDMgMTA6NTggIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogbWVudGlvbiBpcGZ3YWNjCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1vdmVkIGlwZndhY2MgdG8gdWNkYXZpcy4xMyBhbmQgcmVtb3ZlZCBeTXMgYW5kIHNvbWUgYmxhbmsgbGluZXMuCiAgIAoxOTk4LTA2LTAzIDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IGNvbmZpZ19hZGRfbWliKElQRldBQ0MtTUlCKS4KICAgCjE5OTgtMDYtMDMgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgbWlicy9JUEZXQUNDLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmMsIGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0KTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGlwIGZpcmV3YWxsIGFjY291bnRpbmcgaW5mb3JtYXRpb24gbWliIGltcGxlbWVudGF0aW9uLgogICAKMTk5OC0wNi0wMyAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaCwgc211eF9nYXRlZC5oLAogICBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgKLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXgvc211eC5jLAogICBzbXV4L3NtdXguaCwgc211eC9zbm1wX2JncC5jLCBzbXV4L3NubXBfYmdwLmgsCiAgIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9vc3BmLmgsIHNtdXgvc25tcF9yaXAyLmMKLCBzbXV4L3NubXBfcmlwMi5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsCiAgICAgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsCiAgICAgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOgogICAgIC0gbW92ZWQgc211eCBzdHVmZiBpbnRvIGEgc211eCBzdWItZGlyZWN0b3J5LgogICAKMTk5OC0wNi0wMiAxNDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCwga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBocl91dGlscy5jLCBhdC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgdmFyX3JvdXRlLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZnJlZWJzZDIuaCwgaHB1eC5oLCBsaW51eC5oLCBuZXRic2QuaCwKICAgICBzb2xhcmlzLmgsIHN5c3YuaCwgYXNuMS5jLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hdXRoLmMsCiAgICAgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAtIG1ha2UgaG9zdCByZXNvdXJjZXMgd29yayB1bmRlciBOZXRCU0QsIEZyZWVCU0QsIFNvbGFyaXMgYW5kIExpbnV4LgogICAgICAgLSBTdW5PUzQgYWxtb3N0IHdvcmtzLgogICAgIC0gQWRkIC1zLy1TIHRvIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciBwcmludGluZyBvZiBzaG9ydGVyIG9pZHMuCiAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCiAgIAoxOTk4LTA1LTMxIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbWFrZSBpdCBwb3NzaWJsZSBub3QgdG8gdXNlIG9wYXF1ZSBzcGVjaWFsIHR5cGVzIHdpdGggbmV3IGNtZCBsaW5lIGZsYWcuCiAgIAoxOTk4LTA1LTMxIDE3OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIC0gKHNubXBzZXQuYyk6IGVuYWJsZSBzZXR0aW5nIG9mIG9wYXF1ZSBmbG9hdHMsIGRvdWJsZXMsIGludDY0cywgdWludDY0cy4KICAgCjE5OTgtMDUtMzEgMTc6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaAosIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKLCBzbm1wX2ltcGwuaDoKCiAgIC0gKGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXBpLmgsIHNubXBfaW1wbC5oKToKICAgICAtIGltcGxlbWVudCBzcGVjaWFsIGRhdGEgdHlwZXMgdmlhIG9wYXF1ZXM6IGZsb2F0LCBkb3VibGUsIGludDY0LCB1aW50NjRzLgogICAKMTk5OC0wNS0yOSAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogY2hhbmdlIHBkdSB2ZXJzaW9uIGZyb20gbG9uZyB0byBpbnQuCiAgIAoxOTk4LTA1LTI5IDE2OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC9ocHV4LmgsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmMsIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgKLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwosIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLCBhZ2VudC9taWJncm91cC9taWJJSS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMKLCBhZ2VudC9taWJncm91cC9wYXNzLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5jLCBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmgKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jCiwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92bXN0YXQuYywgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1vdmVkIG1vc3QgbWliZ3JvdXAgcGllY2VzIGludG8gcmVsZXZlbnQgc3ViLWRpcmVjdG9yaWVzLgogICAgICAgLSBjaGFuZ2VkIGFsbCBoZWFkZXIgZmlsZSBhbmQgI2lmZGVmIFVTSU5HXyogbGluZXMgdG8gcmVmbGVjdCB0aGlzLgogICAKMTk5OC0wNS0yOSAxNToyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIGFiaWxpdHkgdG8gc3BlY2lmeSBtaWIgaW5mb3JtYXRpb24gb24gdGhlIGNtZCBsaW5lLgogICAKMTk5OC0wNS0yOSAxNToyMCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiB3aW5TTk1QIG1lbnRpb24uCiAgIAoxOTk4LTA1LTI5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAtIEFkZCBhIGRlcGVuZGFuY3kgbGluZSBmb3Igc25tcF92YXJzLm8gZm9yIGFsbCB0aGUgbW9kdWxlIGluY2x1ZGVzLgogICAKMTk5OC0wNS0yOSAxMToyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogbWFrZSBvZiBjb25maWd1cmUuCiAgIAoxOTk4LTA1LTI5IDExOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBwYXRjaCBmcm9tIE5pZWxzOiBpbmNsdWRlIHN5cy9zb2NrZXQgaW4gaWZfbXR1IHRlc3QuCiAgIAoxOTk4LTA1LTI5IDEwOjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIGZpeCBjb21tdW5pdHkgbmFtZSBsZW5ndGggcHJvYmxlbXMgYW5kIGluY3JlYXNlIHNpemUuCiAgIAoxOTk4LTA1LTI5IDEwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jOgoKICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6IGZpeCBmb3IgaXJpeC4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBmb3IgbmV0YnNkIDwgMS4zLgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBjaGFuZ2UgdmFjbSBuZXdzIHdvcmRpbmcuCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgdG8gY2hhbmdlIGEgZmV3IHRoaW5ncy4KICAgCjE5OTgtMDUtMjAgMDg6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQgKQogICAKMTk5OC0wNS0yMCAwODozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlLgogICAKMTk5OC0wNS0yMCAwODoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OC0wNS0yMCAwODoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBjb25maWdfcGVycm9yKCkgLT4gY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgdG9rZW5zLgogICAKMTk5OC0wNS0yMCAwNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfaW1wbC5oKTogdmVyc2lvbiBzaG91bGQgYmUgYSBsb25nLgogICAKMTk5OC0wNS0yMCAwNzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogbWFrZSBjaGVjbWliKCkgdXNlIG9pZCBub3QgaW50IGZvciBuZXduYW1lLgogICAKMTk5OC0wNS0yMCAwNzozNCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk4LTA1LTIwIDA3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBleHRlbmQgcmFuZG9tIGxvb2t1cHMgZnVydGhlci4KICAgCjE5OTgtMDUtMTkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBmaXggc3dhcGluZm8gb24gaHB1eDEwIHN5c3RlbXMuICgvZXRjL3N3YXBpbmZvIC1yKS4KICAgCjE5OTgtMDUtMTkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmM6CgogICAtIChhdC5jKTogc2V0IHRvIGRvIG5vdGhpbmcgd2hlbiBDQU5fVVNFX1NZU0NUTC4KICAgCjE5OTgtMDUtMTggMTg6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gKGludDY0LmMpOgogICAgIC0gaW5jbHVkZSBoZWFkZXIgY2hhbmdlcyBmb3Igd2luMzIuCiAgIAoxOTk4LTA1LTE4IDE1OjM5ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTkgKQogICAKMTk5OC0wNS0xOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IHByb3RlY3QgdXNpbmcgdGhlIGRhdGUgcG9pbnRlciBhZ2FpbnN0IE5VTEwgc2V0dGluZ3MuCiAgIAoxOTk4LTA1LTE4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBtaWJzLy5pbmRleDoKCiAgIC0gKG1pYnMvLmluZGV4KTogcmVtb3ZlZC4KICAgCjE5OTgtMDUtMTggMTE6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgdGVzdCBvbiByZS1jb25maWd1cmVzLgogICAKMTk5OC0wNS0xNSAxMToxOCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5wbGcKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5wbGcKLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtIChjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsLmRzcCwgbGlic25tcF9kbGwucGxnLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LnBsZywKICAgICBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQucGxnLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5wbGcsCiAgICAgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gd2luMzIgZmlsZSB1cGRhdGVzLgogICAKMTk5OC0wNS0xNSAxMToxNyAgaGFyZGFrZXIKCiAgICogRkFRLCBzbm1wbGliL21pYi5jOgoKICAgLSAoRkFRLCBtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBoYW5kbGUgcmFuZG9tIGxvb2t1cHMgd2l0aCBtdWx0aXBsZSBvaWQgc2VnbWVudHMuCiAgIAoxOTk4LTA1LTE1IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gcHJvdmlkZSBhYmlsaXR5IHRvIGRvIHJhbmRvbSBzZWFyY2hlcyBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgdG8gbG9vayBpbi4KICAgCjE5OTgtMDUtMTUgMTA6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjEsCiAgIHNubXBsaWIvaW50NjQuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgaHJfc3lzdGVtLmgsIGhyX3V0aWxzLmMsIHV0aWxfZnVuY3MuYywgdmFyX3JvdXRlLmMsCiAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFuc2xhdGUuMSwKICAgICBic2QuaCwgc29sYXJpcy5oLCBzdW5vcy5oLCBpbnQ2NC5oLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdHJhbnNsYXRlIHN1cHBvcnRzIC1SIGFuZCAtci4KICAgICAtIG1pc2NlbGxhbmVvdXMgd2FybmluZyBmaXhlcy4KICAgICAtIG9pZCBzZWFyY2hlciBhbHdheXMgaWdub3JlcyBjYXNlLgogICAgIC0gZml4ZWQgaHJfc3lzdGVtIHRvIGNvbXBpbGUgb24gU3VuT1M0LgogICAKMTk5OC0wNS0xNSAxMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHNpbmdsZSBxdW90ZSBtaXNzaW5nIG1vZHVsZSBuYW1lcy4KICAgCjE5OTgtMDUtMTQgMDg6MjUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiB0eXBvcy4KICAgCjE5OTgtMDUtMTQgMDg6MjIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWliMmMgbWVudGlvbmVkLgogICAKMTk5OC0wNS0xNCAwODoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbmV3IEZBUSBmcm9tIERhdmUgU2hpZWxkcy4KICAgCjE5OTgtMDUtMTQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBtb3ZlIHN5cy9wYXJhbS5oIHVwIGFib3ZlIGZzLmggaGVhZGVycy4KICAgCjE5OTgtMDUtMTMgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHNwcmludF9ieV90eXBlKCkgZGlkbid0IGhhbmRsZSBjb3VudGVyNjQncy4KICAgCjE5OTgtMDUtMTMgMjE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIGZvciBic2RpCiAgIAoxOTk4LTA1LTEzIDIxOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IGluY2x1ZGUgbmV0L3JvdXRlLmggYW5kIHN5c2xvZy5oIGZvciBic2RpLgogICAKMTk5OC0wNS0xMyAyMToyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IHJldHVybiBhIGNvdW50ZXI2NCB0byBhIHNubXB2MSByZXF1ZXN0LgogICAKMTk5OC0wNS0xMyAyMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGludDY0LmMsIGludDY0LmgsIG1pYi5jOgoKICAgLSAoaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBtYWtlIGludDY0LmMgdXNlIGNvdW50ZXI2NCdzIHN0cnVjdHVyZS4KICAgCjE5OTgtMDUtMTIgMTU6MTUgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlOCApCiAgIAoxOTk4LTA1LTEyIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXhhbXBsZS5jLCBpbnRlcmZhY2VzLmMKLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYwosIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmM6CgogICAtIChkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwYXNzLmMsCiAgICAgcHJvYy5jLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jKToKICAgICAtIGluY2x1ZGUgdGltZS5oIHByb3Blcmx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB1dGlsX2Z1bmNzLmggdG8gZG8gaXQuCiAgIAoxOTk4LTA1LTEyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc3lzdGVtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzeXN0ZW0uYyk6CiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBjb2RlIGZyb20gc3lzdGVtLmMgdG8gc25tcF9hcGkuYywgd2hlcmUgaXQgc2hvdWxkIGJlLgogICAKMTk5OC0wNS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmM6CgogICAtICh2bXN0YXQuYyk6IGNvcnJlY3Qgc3RyaW5ncyBpbmNsdXNpb24uCiAgIAoxOTk4LTA1LTEyIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBOVUxMIC0+IDAuCiAgIAoxOTk4LTA1LTEyIDExOjExICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbXVuZ2UgcnBtIGxpYiBjaGVjayB0byBsaW5rIHdpdGggLWxkYiBhcyB3ZWxsLgogICAKMTk5OC0wNS0xMiAxMToxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtb3JlIHVwZGF0ZXMuCiAgIAoxOTk4LTA1LTEyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gaW5jbHVkZSBhIGdldGR0YWJsZXNpemUoKSBmdW5jdGlvbiBmb3IgaHB1eDkuCiAgIAoxOTk4LTA1LTEyIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIG1vcmUgc3dpbnN0IGZpeGVzIGZvciBycG0gbW9kdWxlcy4KICAgCjE5OTgtMDUtMTEgMTA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwKICAgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmgpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgIC0gZml4IHRoZSBwYXJzZXIgdG8gcmVwb3J0IHVubGlua2VkIE9JRHMuIFRoaXMgZGlkIHJldmVhbCBhbiBlcnJvciBpbiBhCiAgICAgICBDaXNjbyBNSUIgKENJU0NPLUlQTUNBU1QtTUlCKSB0aGF0IEkgaGFkIGJlZW4gdXNpbmcgKGl0IG5lZWRzIGFuCiAgICAgICBJTVBPUlRTIGNpc2NvRXhwZXJpbWVudCBGUk9NIENJU0NPLVNNSSkKICAgICAgIEFjdHVhbGx5IHRoZSBwYXJzZXIgd29ya2VkIG9rLCBleGNlcHQgZm9yIHRoZSBtaXNzaW5nIGVycm9yIG1lc3NhZ2VzLgogICAgIC0gcmV3cml0ZSBvZiB0aGUgcGFyc2VycyBsZXhpY2FsIGFuYWx5c2VyLCB0byBjb3JyZWN0IHRoZSBlcnJvcnMgdGhhdAogICAgICAgRGF2ZSBQZXJraW5zIGFuZCBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCByZWNlbnRseSAobmFtZTo6PSAsIERFU0NSSVBUSU9OIgogICAgICAgYW5kIHByb3BlciBoYW5kbGluZyBvZiAtLSBwYXJ0aWFsIGxpbmUgY29tbWVudHMgLS0pLiBXYXRjaCBvdXQhIHRoaXMgbGFzdAogICAgICAgbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQKICAgICAgIHdlIHNoaXApLiBNeSBGb3JlIFN5c3RlbXMgTUlCcyBoYWQgZXJyb3JzIHdpdGggdGhpcy4KICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQogICAKMTk5OC0wNS0xMSAxMDozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBDb3JyZWN0aW9ucyBvZiBkaXNrIGVudHJ5IGNhcGl0aWxhemF0aW9uIHByb2JsZW1zLgogICAKMTk5OC0wNS0xMSAxMDozMSAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0aGlzIGxhc3QgW3BhcnNlcl0gbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlCiAgICAgICB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0IHdlIHNoaXApLgogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUuCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgIGhyX3BhcnRpdGlvbi5jLCB2YWNtX3ZhcnMuYzoKCiAgIC0gKGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzb21lIHByb3RvdHlwZXMgZm9yIHRoZSBocl8qLmMgZmlsZXMgKG5lZWRzIERhdmUncyByZWNlbnQgcGF0Y2gpCiAgICAgICBXYXJuaW5nOiB0aGUgcHJvYyBwYXJ0IHN0aWxsIGRvZXMgbm90IHdvcmsgd2l0aCBTb2xhcmlzIQogICAKMTk5OC0wNS0xMSAxMDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywKICAgc25tcGQuaCwgdmFyX3N0cnVjdC5oOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoCiAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB0aGUgdHJhcHNpbmsgZGlyZWN0aXZlcyBpbiBzbm1wZAogICAKMTk5OC0wNS0xMSAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgLSAoaW50NjQuYyk6IGFkZCBpbmNyQnlVMzIoKS4KICAgCjE5OTgtMDUtMTEgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBvcGFxdWUncyBjYW4gaGF2ZSBhIHNpemUgc3BlY2lmaWVyLgogICAKMTk5OC0wNS0xMSAwODowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6CiAgICAgLSBjb3VudGVyNjRzLgogICAgIC0gY29uc29sb2RhdGlvbiBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuCiAgICAgLSBtb3JlIGVycm9yIHN0aW5ncyBpbiBhbGwgZmlsZXMgZm9yIHVua25vd24gdmFyaWFibGUgdHlwZXMuCiAgIAoxOTk4LTA1LTExIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogb3B0aW9uYWwgcG9ydCBudW1iZXIuCiAgIAoxOTk4LTA1LTExIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiBibGFuayBsaW5lIHJlbW92YWwuCiAgIAoxOTk4LTA1LTA4IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiB3b3JkaW5nIGNoYW5nZS4KICAgCjE5OTgtMDUtMDggMTE6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaHJfZGlzay5jLCBocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jLCBocl9kaXNrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcy4KICAgCjE5OTgtMDUtMDggMTA6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgcGtnbG9jcy5oLgogICAKMTk5OC0wNS0wNyAwOTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBkZWJ1ZyBpbmZvIGZvciBjb25maWcgZmlsZXMgcmVhZC4KICAgCjE5OTgtMDUtMDcgMDk6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzeXMvc3RhdCBpbmNsdXNpb24gaW4gZnMgY2hlY2tzLgogICAKMTk5OC0wNS0wNyAwOTowNSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBjb3JyZWN0aW9uIGZvciBkYXRlcy4KICAgCjE5OTgtMDUtMDYgMjI6MjggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAod2luMzIvY29uZmlnLmgpOiB1cGRhdGUgZnJvbSBKb2UgTWFyem90LgogICAKMTk5OC0wNS0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGNyZWF0ZWQgYSBtaWIyYyB0ZW1wbGF0ZSBjcmVhdG9yLgogICAKMTk5OC0wNS0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgYm9ndXMgaW5kZXgncyBiZSAwLgogICAKMTk5OC0wNS0wNiAyMTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAtIG5ldyBmdW5jdGlvbjogY2FsY3VsYXRlX3RpbWVfZGlmZih0MSwgdDIpLgogICAKMTk5OC0wNS0wNiAyMTowNiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjE5OTgtMDUtMDYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBleGFtcGxlLmMKLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jCiwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMKLCB2bXN0YXQuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgIG1lbW9yeS5jLCBwcm9jLmMsIHN5c09SVGFibGUuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgICB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMsIHZtc3RhdC5jKToKICAgICAtIHJlbW92ZSB0aGUgbmV3bmFtZSByZXF1aXJlbWVudCBmcm9tIGNoZWNrbWliKCkuCiAgICAgLSBjcmVhdGUgaGVhZGVyX2dlbmVyaWMoKSBmb3Igc2ltcGxlIHNjYWxhciB0ZXN0cy4KICAgICAtIHVzZSBoZWFkZXJfZ2VuZXJpYygpIGluIGFsbCB1Y2Qgc3BlY2lmaWMgc2NhbGFyIG1pYnMsIGFuZCBleGFtcGxlLltjaF0uCiAgIAoxOTk4LTA1LTA2IDE0OjA2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGFkZGVkIGludGVybmFsIHRhYmxlIHNlY3Rpb24uCiAgICAgLSBtaWIgbnVtYmVyIGNvcnJlY3Rpb25zIHRvIG1hdGNoIHRoZSBzb3VyY2UuCiAgIAoxOTk4LTA1LTA2IDExOjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0a21pYi4KICAgCjE5OTgtMDQtMjkgMTE6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOgogICAgIC0gZGlzcGxheSB1bmxvYWRlZCBtb2R1bGUgZXJyb3IuCiAgICAgLSBkb24ndCB0cnkgdG8gbG9hZCBhIGZpbGUgb24gYSBjYW5jZWwuCiAgIAoxOTk4LTA0LTI5IDExOjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogcHV0IHZtc3RhdCBiYWNrIGluIGFuZCByZW5hbWVkIHRvIHN5c3RlbVN0YXRzLgogICAKMTk5OC0wNC0yOSAxMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2bXN0YXQuYywgdm1zdGF0Lmg6CgogICAtICh2bXN0YXQuYywgdm1zdGF0LmgpOiBtb3ZlcywgY2hhbmdlcywgcmVtb3ZhbHMsIGFuZCBmaXhlcy4KICAgCjE5OTgtMDQtMjkgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jCiwgd29tYmF0Lmg6CgogICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKTogbW9yZSBjbGVhbiB1cHMuCiAgIAoxOTk4LTA0LTI5IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYwosIHdvbWJhdC5jOgoKICAgLSAoZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgLSBubGlzdCBjbGVhbnVwcy4KICAgCjE5OTgtMDQtMjkgMTA6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBkb24ndCB1c2UgVENQU1RBVF9TWU1CT0wgdW5sZXNzIGRlZmluZWQuCiAgIAoxOTk4LTA0LTI5IDA4OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IC1IIGhlYWRlciBwcmludGluZy4KICAgCjE5OTgtMDQtMjcgMTY6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBidWcgZml4ZXMuCiAgIAoxOTk4LTA0LTI3IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogTmV3IG1pYiBtZW51IGNvbW1hbmQ6IGxvYWQgYSBtaWIgbW9kdWxlIGJ5IElEIG5hbWUuCiAgIAoxOTk4LTA0LTI3IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogYnVnIGZpeGVzIGFuZCBuZXcgbWliIG1lbnUgdG8gbG9hZCBuZXcgbWlicy4KICAgCjE5OTgtMDQtMjcgMTM6MzEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNyApCiAgIAoxOTk4LTA0LTI3IDExOjAwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jOgoKICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wd2Fsay5jKToKICAgICAtIFB1dCB0aGUgd29yZCAiVGltZW91dDogIiBpbiBmcm9udCBvZiB0aGUgIk5vIFJlc3BvbnNlIiBlcnJvcnMuCiAgIAoxOTk4LTA0LTI3IDExOjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZGVmaW5lIFNITElCX0xEQ09ORklHX0NNRCBhcyAiOiIgZm9yCiAgICAgc3RhdGljIGxpYnJhcnkgY2FzZXMuCiAgIAoxOTk4LTA0LTI3IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmVkIHVubmVlZGVkIHZhcmlhYmxlLgogICAKMTk5OC0wNC0yNCAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IHdhdGNoIG91dCBmb3Igc2luZ2xlIHJvdXRlIGxvb3BzLgogICAKMTk5OC0wNC0yNCAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oKTogbl92YWx1ZSBpcyBhIGxvbmc6CiAgICAgLSByZXR1cm4gdGhlIHZhbHVlIGZyb20gYXV0b19ubGlzdF92YWx1ZSBhcyBhbiB1bnNpZ25lZCBsb25nLgogICAKMTk5OC0wNC0yNCAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGluY2x1ZGUgbmV0aW5ldC90Y3BpcC5oIGZvciBEVTQuMC4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGNhbGN1bGF0ZSB2ZnMgYmxvY2sgc2l6ZSBpZiBwb3NzaWJsZSBhbmQgc2l6ZSA+IDI1NSBieXRlcy4KICAgCjE5OTgtMDQtMjQgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jOgoKICAgLSAoaHJfcGFydGl0aW9uLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3IganVzdCBvcGVuZWQuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGRlZmluZSBNQVhQQVRITEVOLgogICAKMTk5OC0wNC0yNCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIHN0YXR2ZnMuaCBmb3IgZl9iYXZhaWwuCiAgIAoxOTk4LTA0LTI0IDE0OjAzICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW9yZSBjbGVhbmluZyBhbmQgcmVuYW1pbmcuCiAgIAoxOTk4LTA0LTI0IDEwOjIyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogdGhlIHRleHR1YWwgZGVzY3JpcHRpb25zIHdlcmUgdXBkYXRlZCBzb21lLgogICAKMTk5OC0wNC0yNCAxMDowMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZW5hbWVkIGxhYmVscyB0byBiZSB1bmlxdWUgZnJvbSB0aGUgb2xkIGRlZmluaXRpb25zLgogICAgIC0gcmVudW1iZXJlZCBhZ2Fpbi4KICAgICAtIGNvbW1lbnRlZCBvbiB0aGUgZGVzZ2luIG9mIHRoZSBtaWIgYXQgdGhlIHRvcC4KICAgICAtIENoYW5nZWQgYmFjayB0byBTTUl2MS4KICAgICAtIHJlbW92ZWQgbG9ja2Qgc2VjdGlvbi4KICAgICAtIHJlbW92ZWQgdm1zdGF0IHNlY3Rpb24gdGlsbCBpdCBnZXRzIGltcGxlbWVudGVkLgogICAgIC0gcmVtb3ZlZCBzZXF1ZW5jZXMgb2Ygc2NhbGVycy4KICAgCjE5OTgtMDQtMjQgMTA6MDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtaWIgb2lkIGxvY2F0aW9uIHVwZGF0ZXMgZm9yIHVjZC1zbm1wIG1pYi4KICAgCjE5OTgtMDQtMjIgMDg6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcGFyc2UgQklUUyBrZXl3b3Jkcy4KICAgCjE5OTgtMDQtMjIgMDc6NDkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIHdvcmRpbmcsIGNsZWFuZWQgdXAgYSBiaXQuCiAgIAoxOTk4LTA0LTIwIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG5lZWRlZCBwb2ludGVyIGNvcGllcy4KICAgCjE5OTgtMDQtMjAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYzoKCiAgIC0gKHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gI2lmZGVmIGNoZWNrcyBvbiBzeW1ib2xzIGFuZCBoZWFkZXIgbW92ZW1lbnQuCiAgIAoxOTk4LTA0LTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYzoKCiAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHR5cGVjYXN0IGEgcG9pbnRlci4KICAgCjE5OTgtMDQtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBnZXRob3N0YnlhZGRyIG1vdmVzIHVwLgogICAgIC0gaW5jbHVkZSBzeXMvd2FpdC5oLgogICAgIC0gc3lzbG9nICVkIC0+ICVsZCBmb3IgbG9uZyBzcGVjaWZpY190eXBlLgogICAKMTk5OC0wNC0yMCAxNjowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHByb3RvdHlwaW5nIGFuZCBvdGhlciBjbGVhbnVwcy4KICAgCjE5OTgtMDQtMjAgMTY6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3Qgc3ltYm9sIGRlZmluZXMgYW5kIGNsZWFudXAuCiAgIAoxOTk4LTA0LTIwIDE2OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIG1vdmVzLgogICAKMTk5OC0wNC0yMCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYXBwcm9wcmlhdGUgdXNlIG9mIHN0cmR1cCBkdXJpbmcgc3RhcnR1cCBhbmQgYmV0dGVyIGZsYWcgY2hlY2tpbmcuCiAgIAoxOTk4LTA0LTIwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggc29tZSBob3N0IHJlc291cmNlcyBmb3Igc29sYXJpcy4KICAgCjE5OTgtMDQtMjAgMTU6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBzeXMvZGtpby5oCiAgIAoxOTk4LTA0LTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jOgoKICAgLSAoaG9zdF9yZXMuaCwgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgIC0gY29uc29saWRhdGUgdGhlIHN5c3RlbS1zcGVjaWZpYyBzdHVmZiBhIGJpdCAoc2hvdWxkIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgIHRvIGZvbGxvdykKICAgICAgIC0gUmUtc3RydWN0dXJlcyB0aGUgRGlzayBzZWFyY2hpbmcsIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gc2V0IHVwCiAgICAgICAgIHZpYSB0aGUgY29uZmlnIGZpbGUuICh3aGljaCBJIHN0aWxsIG5lZWQgdG8gZG8pCiAgICAgICAtIFNwZWVkIHVwIGRpc2sgc2VhcmNoaW5nIChieSBjYWNoaW5nIGludmFsaWQgcmVzdWx0cyAtIGEgKm1ham9yKiB3aW4hKQogICAgICAgLSBIYW5kbGUgcGFydGl0aW9ucyBzZW5zaWJseSAoYXJ0aGVyIHRoYW4gb25lIHBlciBkaXNrKQogICAgICAgLSBJbXByb3ZlIFNvbGFyaXMgc3VwcG9ydCBmb3IgdGhlIERldmljZSBncm91cAogICAKMTk5OC0wNC0yMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBjaGFuZ2Ugb2lkIGZyb20gdGV4dHVhbCB0byBudW1lcmljIHRvIGFsbG93IG5vdyBtaWJzIHRvCiAgICAgYmUgbG9hZGVkLgogICAKMTk5OC0wNC0wMSAxNjozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogYWx3YXlzIHNlbmQgZW50ZXJwcmlzZSBhbmQgdHJhcG9pZCB0byBzY3JpcHRzLgogICAKMTk5OC0wNC0wMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU2ICkKICAgCjE5OTgtMDQtMDEgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSB1bnJlZ2VzdGVyaW5nIG9mIG1pYnMgd29yay4KICAgICAtIChpbiBtb3N0IGNhc2VzOi0/KQogICAKMTk5OC0wNC0wMSAxNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDQtMDEgMTQ6MTAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogcmVtb3ZlZCBhIGZldyB0aGluZ3MhCiAgIAoxOTk4LTA0LTAxIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBtb3ZlZCB0aGUgdmlldyBleGFtcGxlIHNlY3Rpb24gYWJvdmUgdGhlIGFjY2VzcyBzZWN0aW9uLgogICAKMTk5OC0wNC0wMSAxMzo1MyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCB2YWNtIGV4YW1wbGUgY29uZmlndXJhdGlvbi4KICAgCjE5OTgtMDQtMDEgMTM6NDcgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBtb3JlIDMuNCB1cGRhdGVzLgogICAKMTk5OC0wNC0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogTkVXUywgUE9SVElORzoKCiAgIC0gKE5FV1MsIFBPUlRJTkcpOiB1cGRhdGVzIGZvciAzLjQuCiAgIAoxOTk4LTA0LTAxIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOgogICAgIC0gcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudHMgb2YgdHJlZSB0cmF2ZXJzYWwuCiAgIAoxOTk4LTA0LTAxIDA5OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogZW50ZXJwcmlzZV9sZW5ndGggaXMgc2l6ZW9mKG9pZCkgZGVwZW5kZW50LgogICAKMTk5OC0wMy0yNyAxNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaXAuYywKICAgbWliZ3JvdXAvcmVnaXN0cnkuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgaW50ZXJmYWNlcy5jLCBpcC5jLCByZWdpc3RyeS5jKToKICAgICAtIHByb3RvdHlwaW5nIGFuZCAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDMtMjcgMTY6NDIgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogZG9jdW1lbnQgbGlid3JhcC4KICAgCjE5OTgtMDMtMjcgMTY6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6CiAgICAgLSBjb3JyZWN0bHkgI2lmZGVmIG91dCB0aGUgdGNwd3JhcHBlcnMgcGF0Y2guCiAgIAoxOTk4LTAzLTI3IDE2OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBJbnRlcmZhY2VzX1NjYW5fTmV4dCBuZWVkZWQgYSA0dGggKE5VTEwpIGFyZ3VtZW50LgogICAKMTk5OC0wMy0yNyAxNjoxMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICAtIChSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6IFBhdGNoIGZyb20KICAgICBBcnRodXIgSHl1bjoKICAgICAtIHRjcHdyYXBwZXJzIHN1cHBvcnQuCiAgIAoxOTk4LTAzLTI3IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYzoKCiAgIC0gKGhyX2RldmljZS5jKTogY2hlY2sgZGV2aWNlIGluZGV4IGFnYWluc3QgbWF4aW11bSAoc2VnZmF1bHQgb24gSFBVWCkuCiAgIAoxOTk4LTAzLTI3IDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiB1c2UgY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgZGlza3MuCiAgIAoxOTk4LTAzLTI3IDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGNyZWF0ZSBjb25maWdfcHdhcm4oKSB0aGF0IGRvZXNuJ3QgaW5jcmVhc2UgdGhlIGVycm9yIGNvdW50IHRvCiAgICAgICBwcmV2ZW50IGV4aXRpbmcuICBVc2VkIGZvciBkaXNrcywgc2luY2Ugc29tZSBtaWdodCBieSBwcm9jZXNzIG9yCiAgICAgICBuZnMgbW91bnRlZC4KICAgCjE5OTgtMDMtMjcgMDk6MjAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6CiAgICAgLSBCZXRhIHZlcnNpb24gb2YgYW4gZXh0ZW5zaWJsZSB0cmFwIGRlbW9uLgogICAgICAgLSAtQyAnY29tbWFuZCcgb24gdGhlIGNvbW1hbmQgbGluZSBydW5zIHRoZSBjb21tYW5kIGFuZCBmZWVkcyBpdAogICAgICAgICBzdGRpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhcC4KICAgICAgIC0gdjEgdHJhcHMgYXJlIGNvbnZlcnRlZCB0byB2MiB0cmFwcyBmb3IgY29uc2lzdGFuY3kgb2YKICAgICAgICAgaW5mb3JtYXRpb24gc2VudCB0byB0aGUgc2NyaXB0cy4KICAgCjE5OTgtMDMtMjYgMDc6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvX25saXN0LmgsCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCiwgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMKLCBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfcmlwMi5jLCBhZ2VudC9taWJncm91cC9zeXNPUlRhYmxlLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywgc25tcGxpYi9hc24xLmMKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmlldy5jCjoKCiAgIC0gKCouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtaXNjIHBvcnRpbmcgaW1wcm92ZW1lbnRzICh0aGUgYnNkIGdyb3Vwcywgc3Vub3MsIC4uLikuCiAgICAgLSBzd2l0Y2ggYXV0b19ubGlzdHMgY2FsbGluZyBvcmRlciBvZiBfIHZzIG5vbiBfIGxvb2t1cHMuCiAgICAgLSByZXZlcnNlIGFsbCBzdHJpbmcuaC9zdHJpbmdzLmggaW5jbHVkZSBwb3NzaWJpbGl0aWVzLgogICAKMTk5OC0wMy0yNSAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogZml4IHdyaXRlX21ldGhvZCBkZWNsYXJhdGlvbi4KICAgCjE5OTgtMDMtMjUgMTM6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuYywgdjJwYXJ0eS5jLCB2YWNtX3ZhcnMuYwo6CgogICAtICh2MnBhcnR5LmMsIG1pYklJLmMsIHZhY21fdmFycy5jKTogZGVjbGFpciByZWdpc3RyYXRpb24gdmFyaWFibGVzIHN0YXRpY2x5LgogICAKMTk5OC0wMy0yNSAxMjo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYwo6CgogICAtIChNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBDb2RlIGZyb20gRGF2aWQgVC4gUGVya2luczoKICAgICAtIGludGVncmF0ZWQgRGF2aWQncyBjb2RlIHRvIHByaW50IGNvdW50ZXI2NHMgYXMgaW50ZWdlcnMgcmF0aGVyIHRoYW4gaGV4LgogICAKMTk5OC0wMy0yNSAxMDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEFkZCBhbiAmIHRvIGFycGNvbS5hY19lbmFkZHIgaW4gbWVtc2V0LgogICAKMTk5OC0wMy0yNSAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbGludXguaCk6IG5ldyBkZWZpbmU6IERPTlRfVVNFX05MSVNULgogICAKMTk5OC0wMy0yNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGQuYywgc25tcF9hcGkuYyk6IFNwZWxsaW5nIGVycm9ycyBmcm9tIHRoZSBDTVUgY29kZSBmaXhlZC4KICAgCjE5OTgtMDMtMjUgMTA6MzkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzaW1wbHkgZG9uJ3QgZGVmaW5lIENBTl9VU0VfTkxJU1Qgb24gbGludXguCiAgIAoxOTk4LTAzLTI1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jCiwgbWliZ3JvdXAvcmVnaXN0cnkuYywgbWliZ3JvdXAvcmVnaXN0cnkuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oKToKICAgICAtIGZpeCB0aGUgcmVnaXN0cnkgbWliIHRvIHVzZSB0aGUgbmV3IG1vZHVsZSBzdHJ1Y3R1cmUuCiAgICAgLSBjcmVhdGUgYSB3b3JraW5nIGZpbmRfc3VidHJlZSgpIGFuZCBmaW5kX3N1YnRyZWVfbmV4dCgpLgogICAKMTk5OC0wMy0yNSAwOToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLmM6CgogICAtICh0Y3AuYyk6IGluY2x1ZGUgdGNwaXAuaCBmb3IgZGlnaXRhbCB1bml4LgogICAKMTk5OC0wMy0yMiAxODoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmM6CgogICAtIChwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gbW92ZSBzeXMvdHlwZXMuaCB1cCBmb3IgdWx0cml4LgogICAKMTk5OC0wMy0xOCAxNDowOSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU1ICkKICAgCjE5OTgtMDMtMTggMTM6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvc25tcGQuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBtYW4vbWliX2FwaS4zLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywKICAgICBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1haW4uYywgbWliX2FwaS4zLAogICAgIGNvbmZpZy5oKToKICAgICAtIFNOTVBMSUJQQVRIIC0+IFNOTVBTSEFSRVBBVEgKICAgICAtIGEgcmVhbCBTTk1QTElCUEFUSAogICAgIC0gbWFrZSB0aGUgYWdlbnQgcmVhZCAuY29uZiBmaWxlcyBmcm9tIFNOTVBTSEFSRVBBVEg6U05NUExJQlBBVEguCiAgIAoxOTk4LTAzLTE4IDEzOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4dGVuc2libGUuYywgbWVtb3J5LmMsIHBhc3MuYwosIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtIChleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgIC0gd2FpdCBmb3IgcGlkIGFmdGVyIGdldF9leGVjX291dHB1dCgpIHdpdGggbmV3IHdhaXRfb25fZXhlYygpIGZ1bmN0aW9uLgogICAKMTk5OC0wMy0xOCAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZS1udW1iZXJpbmcgb2YgdGhlIG5ldyB0YWJsZSBtb2R1bGVzLgogICAKMTk5OC0wMy0xOCAwOToxNyAgaGFyZGFrZXIKCiAgICogb3YvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY2hhbmdlZCBPViBwYXRoJ3MgdG8gbmV3ZXIgcmVsZWFzZSBwYXRocy4KICAgCjE5OTgtMDMtMTEgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBkb24ndCBjaG9tcCBuZXcgbGluZSBvbiByZWFkX2NvbmZpZyB1dGlscy4KICAgCjE5OTgtMDMtMTEgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBkZXBlbmQgdXBkYXRlLgogICAKMTk5OC0wMy0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbmFtZSB1cGRhdGUuCiAgIAoxOTk4LTAzLTExIDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBiZXR0ZXIgZGVidWdnaW5nIHByaW50ZnMKICAgCjE5OTgtMDMtMTEgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jCiwgc25tcF92YXJzLmMsIHNubXBkLmMsIG1pYmdyb3VwL2hvc3RfcmVzLmgKLCBtaWJncm91cC9ocl9kZXZpY2UuYywgbWliZ3JvdXAvaHJfZGV2aWNlLmgsCiAgIG1pYmdyb3VwL2hyX2Rpc2suYywgbWliZ3JvdXAvaHJfZGlzay5oLAogICBtaWJncm91cC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hyX2ZpbGVzeXMuaCwKICAgbWliZ3JvdXAvaHJfbmV0d29yay5jLCBtaWJncm91cC9ocl9uZXR3b3JrLmgsCiAgIG1pYmdyb3VwL2hyX290aGVyLmMsIG1pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLAogICBtaWJncm91cC9ocl9wYXJ0aXRpb24uaCwgbWliZ3JvdXAvaHJfcHJpbnQuYywKICAgbWliZ3JvdXAvaHJfcHJpbnQuaCwgbWliZ3JvdXAvaHJfcHJvYy5jLAogICBtaWJncm91cC9ocl9wcm9jLmgsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBtaWJncm91cC9ocl9zd2luc3QuYywKICAgbWliZ3JvdXAvaHJfc3dpbnN0LmgsIG1pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmgsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9ocl9zeXN0ZW0uaCwgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9pcC5jLCBtaWJncm91cC9taWJJSS5jLCBtaWJncm91cC9taWJJSS5oCiwgbWliZ3JvdXAvc3lzT1JUYWJsZS5jLCBtaWJncm91cC92MnBhcnR5LmMsCiAgIG1pYmdyb3VwL3YycGFydHkuaCwgbWliZ3JvdXAvdmFjbV92YXJzLmMsCiAgIG1pYmdyb3VwL3ZhY21fdmFycy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICBob3N0X3Jlcy5oLCBocl9kZXZpY2UuYywgaHJfZGV2aWNlLmgsIGhyX2Rpc2suYywgaHJfZGlzay5oLAogICAgIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oLCBocl9uZXR3b3JrLmMsIGhyX25ldHdvcmsuaCwgaHJfb3RoZXIuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsIGhyX3ByaW50LmgsIGhyX3Byb2MuYywKICAgICBocl9wcm9jLmgsIGhyX3N0b3JhZ2UuYywgaHJfc3RvcmFnZS5oLCBocl9zd2luc3QuYywgaHJfc3dpbnN0LmgsCiAgICAgaHJfc3dydW4uYywgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmMsIGhyX3N5c3RlbS5oLCBpbnRlcmZhY2VzLmMsCiAgICAgaXAuYywgbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCB2MnBhcnR5LmMsIHYycGFydHkuaCwKICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgIC0gbWFzc2l2ZSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGZpeGVzLgogICAgIC0gZml4ZWQgdGhpbmdzIGJyb2tlbiBieSB0aGUgZnJlZWJzZCBwYXRjaCAob25seSBzb21lIEknbSBzdXJlKS4KICAgCjE5OTgtMDMtMTEgMTI6NTYgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGljbXAuYywKICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIEdhcnJldHQKICAgICBXb2xsbWFuOgogICAgIC0gZnJlZWJzZCAzIHN5c2N0bCBpbXBsZW1lbnRhdGlvbnMuCiAgIAoxOTk4LTAzLTExIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYywgdmFyX3JvdXRlLmg6CgogICAtIChpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oKTogUGF0Y2ggZnJvbQogICAgIENyYWlnIEJldmluczoKICAgICAtIHBvcnQgdG8gT3BlbkJTRC4KICAgCjE5OTgtMDMtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jCiwgc3lzdGVtLmg6CgogICAtIChzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAtIGZpeCB0aW1lIHZhbHVlcyBhbmQgbW92ZSBzeXNPUkxhc3RDaGFuZ2VkIHRvIHRoZSBzeXN0ZW0gZ3JvdXAuCiAgIAoxOTk4LTAzLTExIDA5OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaAosIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuaCwKICAgc3lzT1JUYWJsZS5oLCB2bXN0YXQuaDoKCiAgIC0gKGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaCwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsCiAgICAgc25tcF9yaXAyLmgsIHN5c09SVGFibGUuaCwgdm1zdGF0LmgpOgogICAgIC0gZmluaXNoIGNvbnZlcnRpbmcgYSBmZXcgb2YgdGhlIGZpbGVzIHRoYXQgTmllbHMgbWlzc2VkLgogICAKMTk5OC0wMy0xMSAwODowNiAgaGFyZGFrZXIKCiAgICogbWlicy8uaW5kZXg6CgogICAtIChtaWJzLy5pbmRleCk6IHVwZGF0ZS4uLgogICAKMTk5OC0wMy0xMSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoKi8qLyovKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggYXV0b19ubGlzdCBvbiBwcmVjZWVkaW5nIF8gYXJjaGl0ZWN0dXJlcy4KICAgICAtIENoYW5nZSAqYWxsKiBkZWZpbmUgdXNhZ2UgdG8gbmV3IFNOTVBfIGFuZCBBU05fIHByZWZpeGVzLgogICAgIC0gbGVhdmUgbWliIGFjY2VzcyBvcGVuIGlmIG5vIGNvbTJzZWMgc3RhdGVtZW50cyB3ZXJlIGZvdW5kIGluIHNubXBkLmNvbmYuCiAgIAoxOTk4LTAzLTA5IDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYwosIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHYycGFydHkuYywKICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oOgoKICAgLSAobWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIGltcGxlbWVudCBzeXNPUlRhYmxlLgogICAgIC0gcmVnaXN0ZXIgbWlicyB1bmRlciBpdC4KICAgCjE5OTgtMDMtMDYgMTU6NDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSByZW1vdmUgc2VjdXJpdHkgdHlwZSBwcm9tcHRzLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpOiBtb3ZlIHNubXBfYXBpLmggdXAgYWJvdmUgc25tcF9pbXBsLmguCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS5oOgoKICAgLSAobWliSUkuaCk6IGFkZCB2YWNtX3ZhcnMuCiAgIAoxOTk4LTAzLTA2IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOgogICAgIC0gcmVtb3ZlIEdMT0JBTC1TRUNVUklUWSBjaGVja3MuCiAgIAoxOTk4LTAzLTA2IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQva2VybmVsLmMsIGFnZW50L3JlYWRfY29uZmlnLmMKLCBhZ2VudC9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYwosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcHRhYmxlLjEsIG1pYnMvLmluZGV4CiwgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBtaWJzL1NOTVAtTVBELU1JQi50eHQsIG1pYnMvU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgbWlicy9TTk1QLVBST1hZLU1JQi50eHQsIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwKICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYwosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAosIHNubXBsaWIvdmlldy5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX2FnZW50LmMsCiAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsCiAgICAgZXZlbnQuYywgZXh0ZW5zaWJsZS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgbWliaW5jbC5oLAogICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIHJvdXRlX3dyaXRlLmMsCiAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLAogICAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgICAgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgICAgaWYuYywgaW5ldC5jLCByb3V0ZS5jLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGFibGUuMSwgLmluZGV4LAogICAgIE1ha2VmaWxlLmluLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LAogICAgIE1ha2VmaWxlLmluLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgbWliLmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHZhY20uYywgdmFjbS5oLAogICAgIHZpZXcuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBJbXBsZW1lbnQgdGhlIFNOTVB2MyBWaWV3IEJhc2VkIEFjY2VzcyBDb250cm9sIE1vZGVsIChSRkMgMjI3NSkuCiAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgLSBiZXR0ZXIgaGVhZGVyLWZpbGUgI2RlZmluZSBuYW1lcyB0byBpbmNsdWRlIFNOTVBfLCBBU05fLCBldGMuIHByZWZpeGVzLgogICAKMTk5OC0wMy0wNCAxNTo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiBkb2N1bWVudGF0aW9uIHJlcXVpcmVtZW50IGNoYW5nZS4KICAgCjE5OTgtMDItMjUgMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IHJlYWRfY29uZmlnIHBhcnNlcidzIGVuZCBvZiBsaW5lIHByb2JsZW1zLgogICAKMTk5OC0wMi0yMCAxMToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQgdG8gbG9vayBmb3IgYW5kIHN0cmlwIC91c3IvbGliLyouCiAgIAoxOTk4LTAyLTIwIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgogICAKMTk5OC0wMi0yMCAwOToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBmaXggaW5jbHVkZSBmaWxlIGRlcGVuZGFuY2llcyBvbiBpcml4IHdpdGggX0tFUk5FTCBkZWZpbmVkLgogICAKMTk5OC0wMi0xOCAxNjo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU0ICkKICAgCjE5OTgtMDItMTggMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDItMTggMTY6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBvcGVuYnNkIGRlZmluZXMuCiAgIAoxOTk4LTAyLTE4IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jCiwgdmFyX3JvdXRlLmM6CgogICAtIChhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwKICAgICBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgpOgogICAgIC0gdHJpZWQgdG8gbWVyZ2Ugc29tZSB0aGluZ3MgaW50byBzLyouaCBkZWZpbmVzIGluc3RlYWQuICBUaGVyZSBpcyBhCiAgICAgICBsb3QgdG8gZ28gc3RpbGwuCiAgIAoxOTk4LTAyLTE4IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHJlbW92ZWQgdW5uZWVkZWQgc3R1ZmYuCiAgICAgLSBhZGRlZCBvcGVuYnNkLgogICAKMTk5OC0wMi0xOCAxNDozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogcHJvdG90eXBpbmcgY2hlY2tzLgogICAKMTk5OC0wMi0xOCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAtIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgY2hlY2tzLgogICAKMTk5OC0wMi0xOCAxNDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhY2xfdmFycy5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYwosIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCiwgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywKICAgbWliaW5jbC5oLCBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLAogICByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jCiwgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywKICAgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHZtc3RhdC5jOgoKICAgLSAoYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfZGlzay5jLAogICAgIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYywKICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywgbWliaW5jbC5oLAogICAgIHBhcnR5X3ZhcnMuYywgcGFzcy5jLCBwcm9jLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywKICAgICBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsCiAgICAgdm1zdGF0LmMpOgogICAgIC0gbWFzc2l2ZSAtV2FsbCBhbmQgLS1zdHJpY3QtcHJvdG90eXBlcyBjaGVja2luZy4KICAgICAtIGJ6ZXJvIC0+IG1lbXNldC4KICAgCjE5OTgtMDItMTggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsCiAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywKICAgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMKLCBpcC5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYwosIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMKLCB2YXJfcm91dGUuYywgd29tYmF0LmM6CgogICAtIChhdC5jLCBleGFtcGxlLmMsIGhwdXguYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAtIGFsbCBiY29weXMgLT4gbWVtY3B5LgogICAgIC0gaW5jbHVkZSBhIGZldyBleHRyYSBoZWFkZXJzIGZvciBERUJVR1Agc3RhdGVtZW50cy4KICAgCjE5OTgtMDItMTggMTM6MzQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KICAgCjE5OTgtMDItMTggMTM6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoZGlzay5oLCBleHRlbnNpYmxlLmgsIGxvYWRhdmUuaCwgcHJvYy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIHR1cm4gdGhlc2UgbWlicyBpbnRvIHJlYWwgdGFibGVzLiAgUmVxdWlyZWQgY2hhbmdpbmcgdGhlIG1pYiB0aG91Z2guCiAgIAoxOTk4LTAyLTE4IDExOjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmKTogY2hhbmdlIHRvIERBVEFESVIgZnJvbSBMSUJESVIuCiAgIAoxOTk4LTAyLTE4IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiBkZWZpbmUgTElCRElSIGFuZCBEQVRBRElSLgogICAKMTk5OC0wMi0xOCAwODoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgaXAuYywgdGNwLmMsIHVkcC5jOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgaXJpeC5oKToKICAgICBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIHBvcnQgdG8gaXJpeC4KICAgCjE5OTgtMDItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIC0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gZml4IGEgZGVidWdnaW5nIHN0YXRlbWVudCAobWlzc2luZyBhIHZhcmlhYmxlKS4KICAgCjE5OTgtMDItMTggMDg6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gY2hlY2sgZm9yIHN5cy9zeXNtcC5oLgogICAKMTk5OC0wMi0xOCAwODowNSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdm1zdGF0Lmg6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCB2bXN0YXQuYywgdm1zdGF0LmgsIHVjZF9zbm1wLmgsCiAgICAgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgIC0gaW1wbG1lbnQgYSB2bXN0YXQgbWliIGdyb3VwIG9uIGxpbnV4LgogICAKMTk5OC0wMi0xNyAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AuYywgdWRwLmM6CgogICAtICh0Y3AuYywgdWRwLmMpOgogICAgIC0gbmxpc3Qgc3ltYm9sIG5hbWUgZXJyb3JzLgogICAKMTk5OC0wMi0xNyAwOTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYwo6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9ubGlzdC5oLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSB1c2UgYXBwcm9wcmlhdGUgbWFsbG9jcywgYW5kIE5VTEwgaW5pdGlhbGl6YXRpb24gb2YgcG9pbnRlcnMuCiAgICAgLSBtYWxsb2MgdGhlIHN5bWJvbCByYXRoZXIgdGhhbiB1c2luZyBhIGZpeGVkIGxlbmd0aC4KICAgICAtIGluc2VydCBkZWJ1Z2dpbmcgY29kZS4KICAgICAtIGVuYWJsZSBwcmludGluZyBvZiB0aGUgbmxpc3QgdHJlZSBpZiBURVNUSU5HIGlzIGRlZmluZWQuCiAgIAoxOTk4LTAyLTE3IDA5OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gdXNlIHNubXBfaXBhZGRyIGluc3RlYWQgb2YgaXBhZGRyIHRvIGF2b2lkIGhwdXggY29uZmxpY3RzLgogICAKMTk5OC0wMi0xMyAwOTowNyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdHlwbzogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgogICAKMTk5OC0wMi0xMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHNlZCBkb2Vzbid0IGxpa2UgW2Etel0rIHR5cGUgZXhwcmVzc2lvbnMuCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmM6CgogICAtIChocl9uZXR3b3JrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gc29sYXJpcyBmaXhlcy4KICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRvbid0IGluY2x1ZGUgY29uZmlnLmgKICAgCjE5OTgtMDItMTEgMDk6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcHMgYXV4IHNob3VsZCBkZWZpbmUgYXV4IG5vdCAtYXV4LgogICAKMTk5OC0wMi0xMSAwOToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9ocl9wcm9jLmMsCiAgIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC91ZHAuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhdXRvX25saXN0LmM6CgogICAtIChnZW5lcmljLmgsIGF1dG9fbmxpc3QuYywgYXQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIG1lbW9yeS5jLAogICAgIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IGFsbCBteSB0eXBvcyA7LSkuCiAgICAgLSBjcmVhdGUgYXV0b19ubGlzdF92YWx1ZSB0byByZXR1cm4gdGhlIGxvb2tlZC11cCB2YWx1ZS4KICAgCjE5OTgtMDItMDkgMTE6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGlvY3Rscy5oLgogICAKMTk5OC0wMi0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogIGluY2x1ZGUgaW9jdGxzLmggaWYgYXZhaWxhYmxlLgogICAKMTk5OC0wMi0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlvY3Rscy5oCiAgIAoxOTk4LTAyLTA5IDExOjE3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTMgKQogICAKMTk5OC0wMi0wOSAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBmaXggcHJvdG90eXBlcyBvbiBteSBicm9rZW4gdGFibGUgd2Fsa2luZyByb3V0aW5lcy4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gY2hhbmdlZCAtLXdpdGgtc2hhcmVkLWxpYnJhcmllcyB0byAtLWVuYWJsZS1zaGFyZWQgdG8gbWF0Y2ggb3RoZXIgcGtncy4KICAgICAtIGRpc3BsYXkgYXJndW1lbnRzIGZvdW5kIGZvciAtLWVuYWJsZS1zaGFyZWQuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0Lmg6CgogICAtIChhdXRvX25saXN0LmgpOiBwcm90b3R5cGUgd3JhcHBlci4KICAgCjE5OTgtMDItMDkgMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgZGlzay5jLCBlcnJvcm1pYi5jLAogICBleHRlbnNpYmxlLmMsIGhwdXguYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMKLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLAogICBpbnRlcmZhY2VzLmMsIGlwLmMsIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jCiwgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICB2YXJfcm91dGUuYzoKCiAgIC0gKGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywKICAgICBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jKToKICAgICAtIHVzZSBhdXRvX25saXN0LgogICAKMTk5OC0wMi0wNiAxNzoxMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGF1dG9ubGlzdC5oLCBrZXJuZWwuYywgc25tcF92YXJzLmMsIGlwLmMpOgogICAgIC0gY3JlYXRlZCBhIG5ldyBhdXRvX25saXN0IGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gaXAuYy4KICAgCjE5OTgtMDItMDYgMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYzoKCiAgIC0gKGhyX2Rpc2suYyk6IGNsb3NlKCkgZ290IGNhdWdodCBpbnNpZGUgYW4gZWxzZSBpdCBzaG91bGRuJ3QgaGF2ZSBkdWUKICAgICB0byBhbiBpZmRlZiBlcnJvci4KICAgCjE5OTgtMDItMDYgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOiBwcm90ZWN0IGFnYWluc3Qgbmxpc3QuaAogICAKMTk5OC0wMi0wMiAwODo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9obiBIYXdraW5zb246CiAgICAgLSBmaXggdHlwbyBpbiBjb25maWd1cmUgZm9yIHNoYXJlZCBsaWJyYXJ5IGV4dGVuc2lvbiB3L28gc2hhcmVkIGxpYnJhcmllcy4KICAgCjE5OTgtMDEtMzAgMTU6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jKTogZml4IGRlZmF1bHQgcG9ydCBmb3Igc25tcHRyYXAuCiAgIAoxOTk4LTAxLTMwIDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBmaW5pc2ggbGludXggcHJvYmxlbXMgYW5kIHVzZSBpZl9zcGVlZC4KICAgCjE5OTgtMDEtMzAgMTQ6MzEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpZl9zcGVlZC4KICAgCjE5OTgtMDEtMzAgMTM6NTAgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSk6IGRlZmluZSBpZm5ldCBmb3IgbGludXguCiAgIAoxOTk4LTAxLTMwIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBJIGNhbid0IHJlYWxseSBoYXZlIGZvcmdvdHRlbiBTaW1vbidzIG5hbWUgaW4gdGhlIGxpc3QKICAgICBjb3VsZCBJPwogICAKMTk5OC0wMS0zMCAxMDo1NSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUyICkKICAgCjE5OTgtMDEtMzAgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoZGlzay5jLCBob3N0X3Jlcy5oLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLAogICAgIHZlcnNpb25pbmZvLmMsIHNubXBfYXBpLmgpOgogICAgIC0gaW5jbHVkZSBuZXRpbmV0L2luLmggZm9yIGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMTk5OC0wMS0zMCAxMDo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZSBtb2R1bGUgaW5kZXhpbmcgdG8gdXNlIG9pZCBpbnN0ZWFkIG9mIGEgbnVtZXJpYy4KICAgCjE5OTgtMDEtMzAgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcmVnaXN0cnkuYywgcmVnaXN0cnkuaDoKCiAgIC0gKHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOiBiZWdpbiBtdW5naW5nIGZvciBuZXcgaGllcmFyY2h5LgogICAKMTk5OC0wMS0zMCAxMDo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgKLCB2YXJfc3RydWN0Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCk6CiAgICAgLSBtZXJnZSBEYXZlJ3MgY29kZSB3aXRoIG1pbmUuICBTdGlsbCBhIGZldyBidWdzIHRvIHdvcmsgdGhyb3VnaC4KICAgCjE5OTgtMDEtMzAgMTA6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IHB1dCBwYXNzX2NvbWFwcmUgaGVyZS4KICAgCjE5OTgtMDEtMzAgMDk6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCwgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgLSByZXBvcnQgY2FjaGVkLCBidWZmZXIsIGFuZCBzaGFyZWQgc3RhdGlzdGljcyBmb3IgbGludXguCiAgIAoxOTk4LTAxLTMwIDA4OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdGVzdCBmb3IgJ3BzIGF1eCcgKHJlZGhhdCA1LjApLgogICAKMTk5OC0wMS0yMyAxNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0LCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC92YXJfc3RydWN0LmgsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHZhcl9zdHJ1Y3QuaCwKICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtYWtlIHRoZSBtaWIgcmVnaXN0cnkgcmVjb3JkIGFuZCBkaXNwbGF5IGEgbWliIG1vZHVsZSBuYW1lIGFzIHdlbGwuCiAgIAoxOTk4LTAxLTIzIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwKICAgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwKICAgdWRwLmMsIHZlcnNpb25pbmZvLmM6CgogICAtIChhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwgdWRwLmMsIHZlcnNpb25pbmZvLmMpOgogICAgIC0gI2luY2x1ZGUgInNubXBfYXBpLmgiCiAgIAoxOTk4LTAxLTIzIDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5Lmg6CgogICAtIChyZWdpc3RyeS5bY2hdLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZSBhIG5ldyB0YWJsZSBhdCB1Y2RhdmlzLjEwMyB0byBkaXNwbGF5IHJlZ2lzdGVyZWQgbWlicy4KICAgCjE5OTgtMDEtMjMgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jLAogICByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgIG1pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYyk6CiAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uczoKICAgICAgIC0gcmVnaXN0ZXJfc3VidHJlZSgpCiAgICAgICAtIHJlZ2lzdGVyX21pYigpCiAgICAgICAtIHVucmVnaXN0ZXJfbWliKCkuCiAgICAgLSBnZXQgcmlkIG9mIHJlYWRfY29uZmlnIHNwZWNpYWwgc3R1ZmYgZm9yIGV4dGVuc2liaWxpdHkgYW5kIHB1dCBpdAogICAgICAgaW4gdGhlaXIgb3duIHN1Ym1vZHVsZXMgd2hpY2ggbm93IGNhbGwgcmVnaXN0ZXJfbWliKCkuCiAgIAoxOTk4LTAxLTIzIDA4OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvbid0IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBpbiBsaW51eCdzIEZJTEVfVE9fQlVGIG1hY3JvLgogICAKMTk5OC0wMS0yMSAyMjowNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNyZWF0ZSBtLyBhbmQgcy8gZGlyZWN0b3JpZXMgYW5kIHVzZSB0aGVtIGZvciBzdXBwbGVtZW50YWwgY29uZmlnCiAgICAgICBpbmNsdWRlIGZpbGVzIGJhc2VkIG9uIHRoZSBjb25maWcuZ3Vlc3Mgb3V0cHV0LgogICAKMTk5OC0wMS0yMSAxNzozMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAtIERvIGEgYmV0dGVyIHZlcnNpb24gb2Ygc2hsaWIgc3VwcG9ydC4gIFNob3VsZCBiZSB1c2VhYmxlIG5vdyBhdCBsZWFzdC4KICAgCjE5OTgtMDEtMjEgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzay5jLCBlcnJvcm1pYi5jLCBleHRlbnNpYmxlLmMKLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLAogICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywKICAgICBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgIHZlcnNpb25pbmZvLmMpOgogICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgogICAKMTk5OC0wMS0yMSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jCiwgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgogICAKMTk5OC0wMS0yMSAxMToxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluKToKICAgICAtIGJlZ2luIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGFuZCB1c2luZyBzaGFyZWQgbGlicmFyaWVzLgogICAgIC0gYWxsIE1ha2VmaWxlcyBub3cgaW5jbHVkZSBhIE1ha2VmaWxlLnRvcCBmb3IgZWFzaWVyIGZ1dHVyZSBnbG9iYWwgY2hhbmdlcy4KICAgCjE5OTgtMDEtMjEgMTE6MDggIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogdXBkYXRlLgogICAKMTk5OC0wMS0xNiAwOTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFNoZXNoYWRyaSBZYWdhdGk6CiAgICAgLSBzaWduYWwgYSB0cmFwICgyKSB3aGVuIHRoZSBhZ2VudCBpcyBzaHV0IGRvd24uCiAgIAoxOTk4LTAxLTEyIDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW5jcmVhc2UgYnVmZmVyIHNpemUgdG8gaW5jcmVhc2UgbWF4IGludGVyZmFjZXMgcmVwb3J0ZWQgb24gU29sYXJpcy4KICAgCjE5OTgtMDEtMTIgMDk6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBVbmRpZCBhbm9uLWNoaWxkcmVuIGNoYW5nZS4KICAgCjE5OTgtMDEtMTIgMDk6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLAogICBzbm1wX2ltcGwuaCwgc3lzdGVtLmg6CgogICAtIChhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzCiAgICAgQmFnZ2VzZW46CiAgICAgLSBoZWFkZXIgY2hhbmdlcyBhbmQgYm9vbGVhbiBjaGVjayBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDEtMTIgMDk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMKOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIGZpeGVzLgogICAgIC0gc25tcF9wZXJyb3IgdXNhZ2UuCiAgIAoxOTk4LTAxLTEyIDA5OjQwICBoYXJkYWtlcgoKICAgKiBGQVEsIElOU1RBTEwsIE1ha2VmaWxlLmluOgoKICAgLSAoRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBEb2N1bWVudGF0aW9uIHVwZGF0ZSB0byBmaXggcGF0aHMgZnJvbSByZWNlbnQgY2hhbmdlcy4KICAgCjE5OTgtMDEtMTIgMDk6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMKLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChhbGFybS5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaWNtcC5jLAogICAgIGludGVyZmFjZXMuYywgaXAuYywgcHJvYy5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCBoZWFkZXJzIGZvciBGcmVlQlNEIGFuZCBOZXRCU0QuCiAgIAoxOTk4LTAxLTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLAogICBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgc25tcHdhbGsuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsCiAgICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcmVtb3ZlIHVudXNlZCBoZWFkZXJzLgogICAgIC0gc25tcF9wZXJyb3IgY2hhbmdlcy4KICAgCjE5OTgtMDEtMTIgMDk6MTkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46IGxpbmsgZGlyZWN0bHkgdG8gbGliLgogICAKMTk5OC0wMS0xMiAwOToxOCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliX2FwaS4zLCBzbm1wX2FwaS4zOgoKICAgLSAobWliX2FwaS4zLCBzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvYyB1cGRhdGUgdG8gcmVmbGVjdCBtb3ZlZCBoZWFkZXJzLgogICAKMTk5OC0wMS0xMiAwOToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBmaXggYW5vbl9jaGlsZHJlbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCiAgIAoxOTk4LTAxLTA1IDE3OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogc3dhcCBhcmdzIHRvIG1lcmdlX2Fub25fY2hpbGRyZW4oKS4KICAgCjE5OTgtMDEtMDUgMTY6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBhc24xX2J1aWxkX29iamlkLgogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBzbm1wdjMKICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcHV0IGluaXRfbWliIGJhY2sgaW4gcGxhY2UgKG9wcHMpLgogICAKMTk5OC0wMS0wNSAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBhZGQgYSBmaW5kX21vZHVsZSgpIHJvdXRpbmUuCiAgIAoxOTk4LTAxLTA1IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogY2hhbmdlICJhbGwiIHRvICJBTEwiLgogICAKMTk5Ny0xMi0zMCAxNzowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IENyZWF0ZSBhIGdyYXBoaW5nIHdpZGdldC4KICAgCjE5OTctMTItMzAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOgogICAgIC0gbmV3IGNvbW1hbmQ6IHRhYmxlIHRvIGRpc3BsYXkgc25tcHRhYmxlcyBhcyBhIHRhYmxlLgogICAgIC0gbWlzYy4uLgogICAKMTk5Ny0xMi0yOSAwOTozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IEZpcnN0IGltcGxlbWVudGF0aW9uLgogICAKMTk5Ny0xMi0yMyAxNjozMCAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUxICkKICAgCjE5OTctMTItMjMgMTU6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydCBpZiBkZWJ1Z2dpbmcKICAgICBpcyBvbiBvciBvZmYuCiAgIAoxOTk3LTEyLTIzIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmg6CgogICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQKICAgICBpZiBkZWJ1Z2dpbmcgaXMgb24gb3Igb2ZmLgogICAKMTk5Ny0xMi0yMyAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9hdC5jLCBtaWJncm91cC9hdC5oLAogICBtaWJncm91cC9ob3N0X3Jlcy5oLCBtaWJncm91cC9pY21wLmgsCiAgIG1pYmdyb3VwL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvaW50ZXJmYWNlcy5oLAogICBtaWJncm91cC9pcC5oLCBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdGNwLmgsCiAgIG1pYmdyb3VwL3VkcC5jLCBtaWJncm91cC91ZHAuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF92YXJzLmM6CgogICAtIChhdC5jLCBhdC5oLCBob3N0X3Jlcy5oLCBpY21wLmgsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5oLAogICAgIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBjbGVhbiB1cCByZXF1aXJlZCBoZWFkZXJzIGZvciBsaW51eC4KICAgCjE5OTctMTItMjMgMTQ6NDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvaWNtcC5jLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL3NubXBfbWliLmMsIG1pYmdyb3VwL3N5c3RlbS5jLCBtaWJncm91cC90Y3AuYwosIG1pYmdyb3VwL3VkcC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYwo6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGJyZWFrIHVwIGNvbW1vbl9oZWFkZXIuaC4KICAgCjE5OTctMTItMjMgMTQ6NDQgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuODoKCiAgIC0gKHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuOCk6IGRlYnVnZ2luZyBmbGFnIGFkZGl0aW9ucy4KICAgCjE5OTctMTItMjMgMTQ6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hwdXguYywgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfb3NwZi5jLCBhZ2VudC9taWJncm91cC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAtICgqKTogVHVybiBhbGwgZGVidWdnaW5nIHJvdXRpbmVzIGludG8gbGlicmFyeSBjYWxscyB0aGF0IGNhbiBiZQogICAgIHR1cm5lZCBvbiBhbmQgb2ZmIGF0IHJ1biB0aW1lLgogICAgIC0gREVCVUdQKCkgaXMgbm93IGEgdHlwaWNhbCBwcmludGYgc3R5bGUgZnVuY3Rpb24gYW5kIGlzIHVzZWQgZXZlcnl3aGVyZS4KICAgICAtIHZvaWQgc25tcF9zZXRfZG9fZGVidWdnaW5nKGludCkuCiAgICAgLSBpbnQgc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCiAgIAoxOTk3LTEyLTIzIDE0OjQwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGQgVGVkIFJ1bGUgdG8gY29kZXJzIGxpc3QuCiAgIAoxOTk3LTEyLTIzIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gQ2hhbmdlIC1mIGZsYWcgdG8gLWwgYW5kIG1ha2UgLWYgbm8tZm9yay4KICAgICAtIGZpeCBwYXRjaCB3aGljaCBtdW5nZWQgYWJpbGl0eSB0byBnZW5lcmF0ZSBib3RoIC1QIGFuZCAtcyBzaW11bHRhbmVvdXNseS4KICAgCjE5OTctMTItMjMgMTI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBVc2Ugc3lzbG9nIG9wdGlvbiBMT0dfUElEIG9uIHN0YXJ0dXAuCiAgICAgLSBmb3JrIGlmIHN5c2xvZyBlbmFibGVkLgogICAgIC0gRW5hYmxlIGxvZ2dpbmcgdG8gb3RoZXIgc3lzbG9nIGZhY2lsaXRpZXMuCiAgICAgLSBwcmludCBhbGwgdHJhcCBkYXRhIHRvIGEgc2luZ2xlIHN5c2xvZyBsaW5lLgogICAKMTk5Ny0xMi0yMyAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogI2lmZGVmJ2VkIG91dCB1bnVzZWQgd3JpdGVIUCBmdW5jdGlvbi4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKHNubXB0cmFwLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuYywgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBtaWJncm91cC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3dydW4uYywgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGNvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKG1pYmdyb3VwLyouYywgY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjM1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbik6IEJTREkgZGVmaW5pdGlvbiBmaXhlcy4KICAgCjE5OTctMTItMjMgMTE6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFNvbGFyaXMgc3BlY2lmaWMgZml4ZXMuCiAgIAoxOTk3LTEyLTIzIDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IENvcnJlY3QgYSBub24tY2FzdGVkIG1hbGxvYy4KICAgCjE5OTctMTItMTUgMTU6MDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIGFjY29uZmlnLmgpOgogICAgIC0gUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCiAgIAoxOTk3LTEyLTE1IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBvdi86IFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluOgoKICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4pOiBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KICAgCjE5OTctMTItMTUgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvZXhhbXBsZS5jLAogICBtaWJncm91cC9ocl9wcm9jLmMsIG1pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaHJfc3dydW4uYywgbWliZ3JvdXAvaHJfc3lzdGVtLmMsCiAgIG1pYmdyb3VwL2ljbXAuYywgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmgsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuYywgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIG1pYmdyb3VwL3RjcC5jLCBtaWJncm91cC91ZHAuYwosIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBtaWJncm91cC93b21iYXQuYywKICAgY29tbW9uX2hlYWRlci5oOgoKICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYywgY29tbW9uX2hlYWRlci5oKToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuIHRvIGltcHJvdmUgaXJpeCA2LjIgc3VwcG9ydC4KICAgCjE5OTctMTItMTUgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5Lmg6CgogICAtIChob3N0LmgsIHVjZF9zbm1wLmgsIHYycGFydHkuaCk6CiAgICAgLSB1c2UgY29uZmlnX2FkZF9taWIoKS4KICAgCjE5OTctMTItMTUgMTE6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBuZXcgbWFjcm8gdG8gY2hhbmdlIGRlZmF1bHQgTUlCUyB3aGVuIG1vZHVsZXMgYXJlIGNvbXBpbGVkOgogICAgICAgY29uZmlnX2FkZF9taWIoKS4KICAgCjE5OTctMTItMDUgMTQ6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIGluc3RlYWQgb2YgZXJyb3IgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvJ3MuCiAgIAoxOTk3LTEyLTA1IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wdGFibGUuYywKICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogc3VwcG9ydCByYW5kb20gYWNjZXNzIHJlcXVlc3RzIG9uIGFsbCBhcHBzIHZpYSAtUiBzd2l0Y2guCiAgIAoxOTk3LTEyLTA1IDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG1ha2UgdHJhcCB2YXJpYWJsZXMgbG9uZydzIG5vdCBpbnRzIGZvciA2NGJpdCBtYWNoaW5lcyB0byBtYXRjaAogICAgICAgYXNuX2J1aWxkX2ludCBmdW5jdGlvbnMuCiAgIAoxOTk3LTEyLTAxIDEyOjQ0ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTEyLTAxIDEyOjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcF9hcGkuMwosIG1pYnMvUkZDMTI3MS1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTEyLTAxIDEyOjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIElOU1RBTEwsIE5FV1MsIFJFQURNRSwKICAgYWNjb25maWcuaCwgYnVnLXJlcG9ydCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuYwosIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCiAgIAoxOTk3LTExLTE3IDA4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHBhcnR5X3ZhcnMuYyAoRXh0LTMtMy1wYXRjaGVzLjEpLCBwYXJ0eV92YXJzLmMKOgoKICAgLSAocGFydHlfdmFycy5jKTogdXNlIHN0cmluZ3MuaCBkZWZpbmUgbm90IHN0cmluZy5oLgogICAKMTk5Ny0xMS0xNCAxMjozNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMyApCiAgIAoxOTk3LTExLTE0IDEyOjM2ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB2ZXJzaW9uIHVwZGF0ZS4KICAgCjE5OTctMTEtMTQgMTI6MzUgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FOgoKICAgLSAoRkFRLCBORVdTLCBSRUFETUUpOiBsYXN0IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTctMTEtMTQgMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jOgoKICAgLSAod29tYmF0LmMpOiBxdWljayBkb2MgY2hhbmdlLgogICAKMTk5Ny0xMS0xNCAwODozMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogY29kZXIgbGlzdCB1cGRhdGUuCiAgIAoxOTk3LTExLTE0IDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuYzoKCiAgIC0gKHdvbWJhdC5jKTogY29kZSBjb21tZW50cyBmcm9tIEFsYW4gQmF0aWUuCiAgIAoxOTk3LTExLTEyIDIwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBTVERDIHR5cG9zLgogICAKMTk5Ny0xMS0xMiAyMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCBtaWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogZml4IHFzb3J0IHBhcmFtcyBmb3IgU1REQy4KICAgCjE5OTctMTEtMTIgMjA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgLSBGaXhlcyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAyMDozNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKCk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgIC0gRml4ZXMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMjA6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAod2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IGZ1bmN0aW9uIGNoYW5nZXMuCiAgIAoxOTk3LTExLTEyIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTExICkKICAgCjE5OTctMTEtMTIgMTU6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTctMTEtMTIgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgogICAKMTk5Ny0xMS0xMiAxNToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jOgoKICAgLSAocGFydHlfdmFycy5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMTU6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChzeXN0ZW0uaCk6IERvbid0IGluY2x1ZGUgY29uZmlnLmghCiAgIAoxOTk3LTExLTEyIDExOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtIChhcHBzLy5jdnNpZ25vcmUpOiBhZGRlZCBzbm1wdGFibGUuCiAgIAoxOTk3LTExLTEyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGRvYyB1cGRhdGUuCiAgIAoxOTk3LTExLTEyIDEwOjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYzoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcGFyc2VyIGltcHJvdmVtZW50cy4KICAgICAtIHBhcnNlciBkaXJlY3RvcnkgY2FjaGluZy4KICAgICAtIHNhdmVfZGVzY3JpcHRpb25zL21pYl93YXJuaW5ncyBzZXQgZnVuY3Rpb25zLgogICAKMTk5Ny0xMS0xMiAxMDozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGRlbHRhLjEsIHNubXB0YWJsZS4xLCBzbm1wdHJhcGQuODoKCiAgIC0gKG1hbi9zbm1wZGVsdGEuMSxzbm1wdGFibGUuMSxzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIGFkZGl0aW9ucy4KICAgCjE5OTctMTEtMTIgMTA6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB2MmMgc3VwcG9ydCBhbmQgYXJndW1lbnQgcGFyc2luZyBjaGFuZ2VzLgogICAKMTk5Ny0xMS0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldG5leHQuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMKLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHZhcmlvdXMgKHJlbW92ZSB1bm5lZWRlZCB2YXJzLCBldGMpLgogICAgIC0gYWRkIHNubXB0YWJsZS4KICAgICAtIG1ha2Ugc25tcHRyYXBkIG11bHRpLWxpbmd1YWwuCiAgIAoxOTk3LTExLTEyIDEwOjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgogICAKMTk5Ny0xMS0xMiAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jOgoKICAgLSAocGFydHlfdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGlmIGF2YWlsYWJsZS4KICAgCjE5OTctMTEtMTIgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzb2xhcmlzIHBhdGNoZXMuCiAgIAoxOTk3LTExLTEyIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KICAgCjE5OTctMTEtMTIgMTA6MjUgIGhhcmRha2VyCgogICAqIE5FV1MsIFRPRE86CgogICAtIChORVdTLCBUT0RPKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRvYyB1cGRhdGUuCiAgIAoxOTk3LTExLTEyIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jOgoKICAgLSAoaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgZm9yIGxpbnV4L2hwdXgxMCBwcm9ibGVtcy4KICAgCjE5OTctMTEtMTIgMDk6MTcgIGhhcmRha2VyCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTExLTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTExLTEyIDA4OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gRnJlZSBhIHBkdSBpbiBhIHNwb3QgdGhhdCBzaG91bGQgdGVjaG5pY2FsbHkgbmV2ZXIgYmUgbmVlZGVkLCBidXQKICAgICAgIGlzIG5pY2UgZm9yIHBlb3BsZSByZWFkaW5nIHRoZSBjb2RlLgogICAKMTk5Ny0xMS0xMiAwNzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IFczMiBzcGVjaWZpYyBmaXhlcy4KICAgCjE5OTctMTEtMDcgMTY6MzggIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTAgKQogICAKMTk5Ny0xMS0wNyAxNjozNyAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FLCBUT0RPOgoKICAgLSAoTkVXUywgUkVBRE1FLCBUT0RPKTogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgogICAKMTk5Ny0xMS0wNyAxNjoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogd2F0Y2ggb3V0IGZvciAvdXNyL3VjYi9jYyBvbiBzb2xhcmlzIGFuZCBkb24ndCB1c2UgaXQuCiAgIAoxOTk3LTExLTA3IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCB3aW4zMi9jb25maWcuaCwgd2luMzIvd2luMzIub3B0Ciwgd2luMzIvbGlic25tcC9saWJzbm1wLnBsZywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsCiAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5wbGcsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwCiwgd2luMzIvc25tcHNldC9zbm1wc2V0LnBsZywKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywKICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5wbGcKOgoKICAgLSAoKik6IG1lcmdlIHRvIG1haW4gYnJhbmNoOiAgcGF0Y2hlcyBmcm9tIEpvZSBNYXJ6b3QuCiAgIAoxOTk3LTExLTA3IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogc3RvcCBvbiBubyByZXNwb25zZSBmcm9tIGhvc3QuCiAgIAoxOTk3LTExLTA3IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmM6CgogICAtIChocl9uZXR3b3JrLmMpOiBkb24ndCBwYXNzIGNoYXIgKiogdG8gaW50ZXJmYWNlc19zY2FuX25leHQoKS4KICAgCjE5OTctMTEtMDcgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogVVNJTkcuKl9NSUJfTU9EVUxFIC0+IFVTSU5HLipfTU9EVUxFLgogICAKMTk5Ny0xMS0wNyAxMjoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcGF0Y2ggZnJvbSBOaWVscyBmb3Igc29sYXJpcyA+Mi42LgogICAKMTk5Ny0xMS0wNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBkb24ndCBwcmludCBhIHZhcmlhYmxlIHRoYXQgZG9lc24ndCBleGlzdCB1bmRlciBsaW51eC4KICAgCjE5OTctMTEtMDcgMTI6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBsaW51eC9oZHJlZy5oCiAgIAoxOTk3LTExLTA1IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTkgKQogICAKMTk5Ny0xMS0wNSAxNDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHByb3RlY3Qgdm1tZXRlci5oIGZyb20gbXVsdGlwbGUgaW5jbHVzaW9ucyBvbiBuZXRic2QuCiAgIAoxOTk3LTExLTA1IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWxfc3Vub3M1LmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIG9jdGV0IGNvdW50ZXJzIGZvciBzb2xhcmlzLgogICAgIC0gTWFrZWZpbGUuaW4gcGF0Y2hlcy4KICAgCjE5OTctMTEtMDUgMTM6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOgogICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiCiAgIAoxOTk3LTExLTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvcHJvYy5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBkaXNrLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jKToKICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIi4KICAgCjE5OTctMTEtMDUgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogY29tbW9uX2hlYWRlci5oLCBtaWJncm91cC9ocl9kaXNrLmMsCiAgIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywgbWliZ3JvdXAvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaHJfdXRpbHMuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICgqKTogbWVyZ2UgZnJvbSBEYXZlJ3MgcHJlNiBwYXRjaGVzLgogICAKMTk5Ny0xMS0wNSAxMzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBwdXQgc25tcHRyYXBkIGluIEBzYmluZGlyQAogICAKMTk5Ny0xMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOgogICAgIC0gQ2hlY2sgZm9yICRwcmVmaXggYmVpbmcgZGVmaW5lZCBhcyBOT05FIGZvciBvdGhlciB2YXJzLgogICAKMTk5Ny0xMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gI2luY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaAogICAgIC0gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFIC0+IFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRQogICAKMTk5Ny0xMC0yOSAxNDowMCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU4ICkKICAgCjE5OTctMTAtMjkgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogZG9uJ3QgaW5jbHVkZSBjb25maWcuaCB0d2ljZS4KICAgCjE5OTctMTAtMjkgMTI6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBhbmQgaW5jbHVkZSBzeXMvY2RlZnMuaCBpbiBjb25maWcuaC4KICAgCjE5OTctMTAtMjkgMTI6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLAogICBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9yZWFkX2NvbmZpZy5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLAogICBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaCwgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgKLCBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuaAosIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuaAosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoKi4qLiopOiBfX1VDRF9QIC0+IF9fUCwgYW5kIGEgY29uZmlndXJlIGNoZWNrIHRvIGxvb2sgZm9yIGl0LgogICAKMTk5Ny0xMC0yOSAxMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgLSAocGFyc2UuaCk6IFNUQVRVU19LV19PUFRJT05BTCAtPiBTVEFUVVNfT1BUSU9OQUwKICAgCjE5OTctMTAtMjkgMTE6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYwosIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkZWx0YS4xCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChhY2NvbmZpZy5oLCBhc24xLmMsIG1pYi5bY2hdLCBwYXJzZS5oLGFwcHMvKixlcnJvcm1pYi5jLGxvYWRhdmUuYywKICAgICAgZXh0ZW5zaWJsZS5jLCBkaXNrLmMsIHNubXBkZWx0YSopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGhlIG5vdyB3ZWxsa25vd24gTmV0QlNEIGZpeCwKICAgICAtIFN1bk9TNCBjYyBkb2Vzbid0IGxpa2UgdW5zaWduZWQgbGl0ZXJhbHMgb3Igc3RydG91bCwKICAgICAtIGFkZGVkIGEgY2hhciB2ZXJzaW9uIG9mICI7IiwKICAgICAtIGFkZGVkIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGV0YwogICAgIC0gY2hhbmdlZCB0aGUgYXBwcyB0byBwcmludCBhbGwgZXJyb3IgbWVzc2FnZXMgdG8gc3RkZXJyLAogICAgIC0gY29tcGxldGVkIHRoZSBhY2Nlc3MgYW5kIHN0YXR1cyB2YWx1ZXMgaW4gc25tcGxpYi9wYXJzZS5oCiAgICAgLSBhZGRlZCBhIHJvdWdobHkgcGF0Y2hlZCB2ZXJzaW9uIG9mIHNubXBkZWx0YS4KICAgCjE5OTctMTAtMjkgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBvcHBzLCBmb3Jnb3QgdG8gcHV0IGluIEBleGVjX3BhdGhALgogICAKMTk5Ny0xMC0yOSAxMDo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4KLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZyosICovTWFrZWZpbGUuaW4pOgogICAgIC0gTW92ZSBzbm1wbGlicGF0aCB0byBAZGF0YWRpckAgd2hpY2ggZGVmYXVsdHMgdG8gL3Vzci9sb2NhbC9zaGFyZS9zbm1wLgogICAKMTk5Ny0xMC0yOSAxMDoyNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgbWFuL21pYl9hcGkuMywgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZgosIG1pYnMvTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbiwgbWFuLyopOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIHBhdGhzLgogICAgICAgLSAobW9kaWZpZWQgdG8gcG9pbnQgYWdlbnQgdG8gc2JpbmRpciBpbnN0ZWFkIG9mIGV0Y2RpcikuCiAgIAoxOTk3LTEwLTI5IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiByZW1vdmUgc3BhY2UgYmVmb3JlICUgc2lnbi4KICAgCjE5OTctMTAtMjkgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IGZpeCBwb2ludGVyIHByb2JsZW1zIGZyb20gb2xkIHJlYWRfY29uZmlnIGZvcm0gdG8gbmV3LgogICAKMTk5Ny0xMC0yOSAwOTo1NyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChkaXNrLltjaF0sIHN0cnVjdC5oLCBzZWRzY3JpcHQuaW4sIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZSB0byBhbGxvdyBhIG1pbmltdW0gcGVyY2VudGFnZSBvbiBkaXNrIHNwYWNlLgogICAgICAgLSAod2FzIG9yaWdpbmFsbHkgYSBtYXhpbXVtLCBidXQgSSBjaGFuZ2VkIGl0IHRvIG1pbmltdW0gaW5zdGVhZCkuCiAgIAoxOTk3LTEwLTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgc3lzL3NlbGVjdC5oIGZvciBhaXguCiAgIAoxOTk3LTEwLTI5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogcmVtb3ZlIHVudXNlZCBubGlzdCBzdHJ1Y3QuCiAgIAoxOTk3LTEwLTI4IDE3OjEyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTcgKQogICAKMTk5Ny0xMC0yOCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogUGF0Y2ggZnJvbSBOb2J1b19Pa2FiZUB5b2tvZ2F3YS5jby5qcDoKICAgICAtIGZpeCB1bndyYXBwZWQgZm9wZW4oKSBieSBhZGRpbmcgcmV0dXJuIE5VTEwgY2hlY2suCiAgIAoxOTk3LTEwLTI4IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBkZWZpbmUgYnNkaSBhZ2VudCB0eXBlLgogICAKMTk5Ny0xMC0yOCAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosIHJvdXRlX3dyaXRlLmMsIHZhcl9yb3V0ZS5jKToKICAgICAtIGZpeCBydGVudHJ5IHByb2JsZW1zIG9uY2UgYW5kIGZvciBwcm9iYWJseSBuZXZlci4KICAgCjE5OTctMTAtMjggMTQ6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQva2VybmVsLmMKLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvcmVhZF9jb25maWcuYywKICAgYWdlbnQvcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYwosIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuaCwgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oCiwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBzbm1wbGliL3ZpZXcuaAosIHdpbjMyL2NvbmZpZy5oOgoKICAgLSAoKi4qLiouKik6IHJlbmFtZSBtYWNybyBfX1AgLT4gX19VQ0RfUCB0byByZWR1Y2Ugc3R1cGlkIGNvbmZsaWN0cy4KICAgCjE5OTctMTAtMjggMTQ6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGZpeCBydGVudHJ5IHN0cnVjdHVyZSBjaGVja3MgZm9yIHRoZSAqYnNkIGdyb3Vwcy4KICAgCjE5OTctMTAtMjggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoYWNjb25maWcuaCwgbWliLmMpOiB1c2UgJzsncyBmb3IgRE9TIGVudiBwYXRocy4KICAgCjE5OTctMTAtMjggMDk6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3N5c3RlbS5jCiwgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gKGFjY29uZmlnLmgsIHN5c3RlbS5bY2hdLCBzbm1wLmMpOiBtb3ZlIHN0cmR1cCBkZWYgdG8gc3lzdGVtLltjaF0uCiAgIAoxOTk3LTEwLTI3IDE4OjMxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTYgKQogICAKMTk5Ny0xMC0yNyAxODoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBmaXggY29uZmlnX2FyY2hfcmVxdWlyZSBtYWNybyB0byBhY3R1YWxseSB3b3JrLgogICAKMTk5Ny0xMC0yNyAxODoxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi8qLmMpOiB1c2Ugc25tcF9zZXRfZGV0YWlsIHRvIGhhbmRsZSBtYWxsb2MvZnJlZSBvZiBzbm1wX2RldGFpbC4KICAgCjE5OTctMTAtMjcgMTg6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiByZW1vdmUgZ290cm9vdCB2YXIuCiAgIAoxOTk3LTEwLTI3IDE4OjA1ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXAvbGlic25tcC5wbGcsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LmRzcAosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LmRzcAosIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICh3aW4zMik6ICBhZGQgZmlsZXMgb24gbWFpbiBicmFuY2guCiAgIAoxOTk3LTEwLTI3IDE4OjAyICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3csIHdpbjMyLm9wdDoKCiAgIHdpbjMyIGZpbGVzCiAgIAoxOTk3LTEwLTI3IDE3OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogbWVyZ2UgYnVnczogZWxzZSBjaGVjayBhZ2FpbnN0IHBkdSBjb21tYW5kIHR5cGUuCiAgIAoxOTk3LTEwLTI3IDE3OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiBtZXJnZSBidWdzLiAgTWlzc2luZyBicmFja2V0cy4KICAgCjE5OTctMTAtMjcgMTc6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IG1pc3NpbmcgYSBlbHNlIHN0YXRlbWVudCAoc2lnaCkuCiAgIAoxOTk3LTEwLTI3IDE3OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2RldmljZS5oLCBocl9kaXNrLmgsIGhyX2ZpbGVzeXMuaAosIGhyX25ldHdvcmsuaCwgaHJfcHJpbnQuaCwgaHJfcHJvYy5oLAogICBocl9zd2luc3QuaCwgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmg6CgogICAtIChhZ2VudC9taWJncm91cC9ocl8qLmgpOiBwcm9wZXIgaW5pdF8gcHJvdG90eXBlcy4KICAgCjE5OTctMTAtMjcgMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiB0d28gbW9kdWxlcyBmb3IgZXh0ZW5zaWJsZSBjb3VudC4KICAgCjE5OTctMTAtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYWlyYXRpb24uCiAgIAoxOTk3LTEwLTI3IDE3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYwosIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsCiAgIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYwosIGhyX3N5c3RlbS5jOgoKICAgLSAoaHJfKi5jKTogRVJST1IgLT4gRVJST1JfTVNHLgogICAKMTk5Ny0xMC0yNyAxNjozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5bY2hdKTogZml4IHBlcnJvciBsb3NzZXMgZnJvbSBtZXJnZS4KICAgCjE5OTctMTAtMjcgMTY6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMKLCBhZ2VudC9taWJncm91cC9ldmVudC5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmM6CgogICAtICgqKTogbWVyZ2Ugb2YgVzMyIHBvcnQgYW5kIG1haW4gdmVyc2lvbiBicmFuY2guCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICBmaWxlIHNubXB3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBmaWxlIHNubXB3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwOgoKICAgZmlsZSBzbm1wdHJhbnNsYXRlLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnOgoKICAgZmlsZSBzbm1wdHJhbnNsYXRlLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwOgoKICAgZmlsZSBzbm1wc3RhdHVzLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnOgoKICAgZmlsZSBzbm1wc3RhdHVzLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc2V0L3NubXBzZXQucGxnOgoKICAgZmlsZSBzbm1wc2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwOgoKICAgZmlsZSBzbm1wc2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3A6CgogICBmaWxlIHNubXBnZXRuZXh0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGc6CgogICBmaWxlIHNubXBnZXRuZXh0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwOgoKICAgZmlsZSBzbm1wZ2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnOgoKICAgZmlsZSBzbm1wZ2V0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZzoKCiAgIGZpbGUgc25tcGJ1bGt3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcDoKCiAgIGZpbGUgc25tcGJ1bGt3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGZpbGUgbGlic25tcC5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgZmlsZSBsaWJzbm1wX2RsbC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnOgoKICAgZmlsZSBsaWJzbm1wX2RsbC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIGZpbGUgbGlic25tcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnBsZzoKCiAgIGZpbGUgbGlic25tcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgZmlsZSB3aW4zMi5kc3cgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBmaWxlIGNvbmZpZy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLm9wdDoKCiAgIGZpbGUgd2luMzIub3B0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMDk6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmg6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC8qLmgpOgogICAgIC0gbmV3IGNvbmZpZyBtYWNybzogIGNvbmZpZ19hcmNoX3JlcXVpcmUoYXJjaCwgbW9kdWxlKS4KICAgICAtIG1vdmVkIGFyY2ggZGVwZW5kYW50IG1vZHVsZXMgKG1lbW9yeSwgaHB1eCwga2VybmVsX3N1bm9zNSkgbG9hZHMKICAgICAgIGZyb20gdGhlIGNvbmZpZ3VyZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgLSAoaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSB0eXBlY2FzdCBrbG9va3VwIGNhbGxzIGZvciBmcmVlYnNkMi4KICAgCjE5OTctMTAtMjIgMTE6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoY29tbW9uX2hlYWRlci5oLCByZWFkX2NvbmZpZy5jLCBkaXNrLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAtIFR5cG8ncyBmaXhlZCBieSBOaWVscy4KICAgCjE5OTctMTAtMjEgMTI6MzYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNSApCiAgIAoxOTk3LTEwLTIxIDEyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZGlkIGEgbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTEwLTIxIDEyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZC4uCiAgIAoxOTk3LTEwLTIxIDEyOjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZCBzZXR1cC4KICAgCjE5OTctMTAtMjEgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9kaXNrLmgsIG1pYmdyb3VwL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC9sb2FkYXZlLmgsCiAgIG1pYmdyb3VwL3Bhc3MuaCwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgKLCBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmg6CgogICAtIChhZ2VudC9yZWFkX2NvbmZpZy5bY2hdLCBzbm1wZC5jLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZy5bY2hdIHVwIGEgbGV2ZWwgdG8gYWx3YXlzIGJlIGNvbXBpbGVkIGluLgogICAKMTk5Ny0xMC0yMSAxMTowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU0ICkKICAgCjE5OTctMTAtMjEgMTE6MDEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogYmVnaW5uaW5ncyBvZiBORVdTIHVwZGF0ZXMuCiAgIAoxOTk3LTEwLTIxIDExOjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMKOgoKICAgLSAoaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBtZW1vcnkuYyk6IGNsb3NlIG9wZW4gZmlsZXMgb24gbGludXguCiAgIAoxOTk3LTEwLTIxIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhbGxvdyAtdiAyaCBhbmQgMnAgZm9yIHBhcnR5IGNvZGUuCiAgIAoxOTk3LTEwLTIxIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgogICAKMTk5Ny0xMC0yMCAxOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRlZmluZSBhdCBsZWFzdCBibGFuayBmdW5jIG5saXN0X2luaXQoKSBvbiBsaW51eC4KICAgCjE5OTctMTAtMjAgMTk6NDIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgbGludXgncyBPUyB0eXBlLgogICAKMTk5Ny0xMC0yMCAxODowMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgdWNkX3NubXAuaCwgc211eF9nYXRlZC5oKToKICAgICAtIGNyZWF0ZWQgbmV3IHdyYXBwZXJzIGZvciB0aGUgdmFyaW91cyBtb2R1bGVzIHRvIG1ha2UgdGhlbSBlYXN5IHRvCiAgICAgICBhZGQgYW5kIHJlbW92ZSBhcyBuZWVkZWQuCiAgIAoxOTk3LTEwLTIwIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QuYywgaG9zdC5oLCBocl9kZXZpY2UuYywKICAgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYwosIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsCiAgIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsCiAgIGhyX3N5c3RlbS5jOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCiAgIAoxOTk3LTEwLTIwIDE3OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRSwgd29tYmF0LmMsIHdvbWJhdC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FLCB3b21iYXQuW2NoXSk6CiAgICAgLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHVzYWdlLgogICAKMTk5Ny0xMC0yMCAxNzowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KICAgCjE5OTctMTAtMjAgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHBhdGNoIGFsbCBvdGhlciBlbnYtdmFycyB0byB0YWtlICcrJyBpbiBmcm9udC4KICAgCjE5OTctMTAtMjAgMTY6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IEZyb20gRGF2ZTogIHBhdGNoIERFRkFVTFRfTUlCUyB0byB0YWtlICcrJyBpbiBmcm9udC4KICAgCjE5OTctMTAtMjAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIGRvbid0IHJlcG9ydCBhbiBlcnJvciBpZiB5b3UgY2FuJ3QgZmluZCBhIHNubXBkLmNvbmYgZmlsZS4KICAgICAtIGRvbid0IHJlcG9ydCBhbGwgbGluZXMgYXMgYW4gZXJyb3IgKG9wcHMpLgogICAKMTk5Ny0xMC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKSBkb24ndCBudWxsIGxhc3QgY2hhciBpbiBjb21tYW5kIGxpbmUuCiAgIAoxOTk3LTEwLTIwIDExOjUxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaCwKICAgYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLCBhZ2VudC9taWJncm91cC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuaCwgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaAo6CgogICAtIChjb25maWcqLCBhZ2VudC9zbm1wKiwgYWdlbnQvbWliZ3JvdXAvKi5bY2hdKToKICAgICAtIENyZWF0ZWQgYSBuZXcgbWlibW9kdWxlLmggY29uZmlndXJhdGlvbiBtYWNybyBjYWxsZWQKICAgICAgIGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHdoaWNoIGNhbiBiZSBjYWxsZWQgdG8gcmVxdWVzdCBwYXJzaW5nIG9mCiAgICAgICB0aGUgc25tcGQuY29uZiBmaWxlKHMpIG9uIGEgcGVyIG1vZHVsZSBiYXNpcy4KICAgICAtIEFsbCByZWxhdGVkIHBhcnNpbmcgaGFzIGJlZW4gc3RyaXBlZCBmcm9tIHJlYWRfY29uZmlnLmMgYW5kIG1vdmUKICAgICAgIHRvIHRoZWlyIGNvcnJlY3QgbW9kdWxlIGluc3RlYWQuCiAgICAgLSBOZXcgZnVuY3Rpb246IGNvbmZpZ19wZXJyb3IoY2hhciAqKTogcHJpbnQgZXJyb3Igd2l0aCBmaWxlICYgbGluZSAjLgogICAgIC0gYmFzaWMgLVdhbGwgY2xlYW51cHMgaW4gaHIqIGFzIHdlbGwgKG5vdCBuZWFybHkgZG9uZSB5ZXQpLgogICAKMTk5Ny0xMC0yMCAxMTo0NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTEwLTE1IDE4OjQwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmMsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaAosIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmgsIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmgsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5oLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHIqKTogSG9zdCByZXNvdXJjZXMgbWliIGZyb20gRGF2ZSBTaGllbGQuCiAgICAgLSBtaW5vciBwYXRjaGVzIGJ5IG1lLCBtb3N0bHkgcG9pbnRlciBlcnJvcnMuCiAgIC0gKG1lbW9yeS5jKTogZml4ZWQgYSBudWxsIHBvaW50ZXIgcHJvYmxlbSB1bmRlciBsaW51eC4KICAgCjE5OTctMTAtMTUgMTI6MTIgIGhhcmRha2VyCgogICAqIG1pYnMvLmN2c2lnbm9yZToKCiAgIC0gKG1pYnMvLmN2c2lnbm9yZSk6ICBhZGRlZCBNYWtlZmlsZS4KICAgCjE5OTctMTAtMTUgMTI6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCjoKCiAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBuZXcgZnVuY3Rpb246ICBzbm1wX3BlcnJvcihjaGFyICopCiAgICAgLSBmcmVlIGFsbG9jYXRlZCBzcGFjZSBvZiBzbm1wX2RldGFpbCB1cG9uIHVzYWdlIGJ5IHNubXBfYXBpX2VycnN0cmluZygpLgogICAKMTk5Ny0xMC0xNSAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi92aWV3LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmM6CgogICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzOgogICAgIC0gd2FybmluZyBmaXhlcy4KICAgICAtIHJlbW92ZSB0aGUgcHJpbnRmJ3MgZnJvbSB0aGUgbGlicmFyeSBhbmQgc2V0IGEgc25tcCAnZXJybm8nIGVxdWl2YWxlbnQuCiAgIAoxOTk3LTEwLTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHZpZXdfcGFyc2UuYywgc25tcF92YXJzLmM6CgogICAtICh2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jKTogRnJvbSBOaWVsczogd2FybmluZyByZW1vdmFscyBhbmQgc3RhbmRhcmRpemF0aW9uLgogICAKMTk5Ny0xMC0xNCAxNTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYwosIGV2ZW50LmMsIGV2ZW50LmgsIGludGVyZmFjZXMuYywKICAga2VybmVsX3N1bm9zNS5jLCBtZW1vcnkuYywgbWVtb3J5LmgsIHBhcnR5X3ZhcnMuYwosIHJlYWRfY29uZmlnLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jCiwgdmlld192YXJzLmM6CgogICAtIChhZ2VudC9taWJncm91cC8qLmMpOiBZTVdSQU1GU0ZOOgogICAgIC0gKHlldCBtb3JlIHdhcm5pbmcgcmVtb3ZhbHMgYW5kIG1lbW9yeSBmdW5jdGlvbiBzdGFuZGFyZGl6YXRpb25zIGZyb20gTmllbHMpLgogICAgIC0gbWlub3IgbGludXgvbmV0YnNkL2JzZGkgY2xlYW4gdXBzLgogICAKMTk5Ny0xMC0xNCAxNToyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRnJvbSBEYXZlIFNoaWVsZHM6IHJlZmVyIHJlYWRlciB0byBhbm90aGVyIGFuc3dlciBhcyB3ZWxsLgogICAKMTk5Ny0xMC0xNCAxNToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgpOiBkeW5peCBkb2Vzbid0IGhhdmUgbmV0L3JvdXRlLmguCiAgIAoxOTk3LTEwLTE0IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogRnJvbSBEYXZlIFNoaWVsZHM6CiAgICAgLSBzZWxmIGNvbnRhaW5lZCBtaWIgLnR4dCBmaWxlcyB3aXRoIG11bHRpcGxlIG1vZHVsZXMuCiAgIAoxOTk3LTEwLTE0IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogZG9jIGFkZGl0aW9uOiAgYWRkX21pYmRpcigpIHJldHVybiB2YWx1ZS4KICAgCjE5OTctMDgtMjUgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBuZXRic2QuCiAgIAoxOTk3LTA4LTI1IDAwOjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IGNoZWNraW4gdmVyc2lvbi5oLgogICAKMTk5Ny0wOC0yNSAwMDoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IHR5cG8gaW4gaWZkZWYuCiAgIAoxOTk3LTA4LTE1IDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTMgKQogICAKMTk5Ny0wOC0xNSAwMjozMCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zeXN0ZW0uYywgYWdlbnQvc25tcGQuYwosIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChjb25maWcqLCBzbm1wZC5jLCBzbm1wX2NsaWVudC5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgLSBmaXggbW9yZSBsb25nL2ludCBwcm9ibGVtcyBvbiA2NCBiaXQgbWFjaGluZXMgdV9sb25nIC0+IGluX2FkZHJfdC4KICAgICAtIENoZWNrIGZvciBTSU9DR0lGQUREUiBpbiBzeXMvaW9jdGwuaCBhbmQgdXNlIGl0IGluIGdldF9teWFkZHIoKSBpZgogICAgICAgZGVmaW5lZC4KICAgCjE5OTctMDgtMTQgMDg6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRGF2aWQgQy4gTGF3cmVuY2UgZm9yIG5ldGJzZCAqIGJzZC9vcyAyLjAuCiAgIAoxOTk3LTA4LTE0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9wcm9jLmM6CgogICAtIChwcm9jLmMpOiBkb24ndCB1c2Ugc2V0ZXJyb3JzdGF0dXMoKSBpZiBub3QgdXNpbmcgdGhlIGVycm9ybWliLgogICAKMTk5Ny0wOC0xNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogUG9pbnQgb3V0IHRoYXQgbWliIGxpc3QgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIG9yZGVyLgogICAKMTk5Ny0wOC0xNCAwODoxNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKToKICAgICAtIFR5cG8ncyB3aGVuIGNvcHlpbmcgaW4gYSBhdXRvY29uZiB0ZXN0LgogICAgIC0gQWRkIGVycm9ybWliIHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgKHNpbmNlIGl0cyBubyBsb25nZXIgcmVxdWlyZWQpLgogICAgIC0gYmFja3F1b3RlIGEgLiBpbiBhIHNlZCByZWdleHAgdG8gd2F0Y2ggb3V0IGZvciBtb2R1bGUgbmFtZXMKICAgICAgIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgby4KICAgCjE5OTctMDgtMTQgMDc6MzcgIHdoYXJkYWtlCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosIEZBUSwgUkVBRE1FLCBhZ2VudC9taWJncm91cC8qLmMsIGFwcHMvKi5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2aWQgUGF1bCBaaW1tZXJtYW46CiAgICAgICAtIHBvcnQgdG8gQUlYIDQuMS41LgogICAgICAgLSBmaXggbW9yZSB0eXBlIGNhc3RpbmcgcHJvYmxlbXMuCiAgIAoxOTk3LTA4LTE0IDAwOjQ2ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jCiwgc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBtYWluLmMpOgogICAgIC0gYWRkIC1WIHZlcnNpb24gZmxhZ2UuCiAgIAoxOTk3LTA4LTEzIDA4OjEwICB3aGFyZGFrZQoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaAosIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcKLCBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9wYXJ0eS5oOgoKICAgLSAodmVyc2lvbi5oLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIG1vdmUgdmVyc2lvbiBzdHJpbmcgdG8gYSBnbG9iYWwgaGVhZGVyLgogICAgIC0gaW5zZXJ0IFVTSU5HXypfTU9EVUxFIG1hY3JvJ3MgaW4gbWFueSBwbGFjZXMgdG8gbWFrZSBtb2R1bGUKICAgICAgIHJlbW92YWwgbW9yZSBwb3NzaWJsZS4gIFlvdSBjYW4gbm93IGNvbXBpbGUgd2l0aCBhbG1vc3Qgbm8gbW9kdWxlcwogICAgICAgaW5zdGFsbGVkLgogICAKMTk5Ny0wOC0xMyAwNDo0NyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiBvcHRhcmcvb3B0aW5kIG5lZWQgdG8gYmUgZGVjbGFpcmVkIHVuZGVyIHVsdHJpeDQuCiAgIAoxOTk3LTA4LTA3IDAyOjM0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOgogICAgLSBmaXggc3dhcCBvbiBIUFVYIDEwLjIwCiAgIAoxOTk3LTA4LTA3IDAxOjMzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBtaWJncm91cC9wcm9jLmM6CgogICAtIChrZXJuZWwuYywgcHJvYy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIEltcGxlbWVudCByZWFsIHByb2Nlc3MgdGFibGUgd2Fsa3Mgb24gVWx0cml4LgogICAKMTk5Ny0wOC0wNyAwMToxMCAgd2hhcmRha2UKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlCiwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYzoKCiAgIC0gKGNvbmZpZyosIGxvYWQuYywgZGlzay5jLCBwYXJzZS5jLCBzbm1wLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgIC0gVWx0cml4IGZpeGVzIGZvciBzdGF0ZnMsIGxvYWRhdmUuCiAgICAgLSBpbXBsZW1lbnQgc3RyZHVwIGlmIG5vdCBmb3VuZCBpbiBzeXN0ZW0uCiAgICAgLSB0ZXN0IGZvciB0ZXN0IGZsYWdzIGZvciBrZXJuZWwgY2hlY2tpbmcuCiAgICAgLSB3YXRjaCBvdXQgZm9yIHBzJ2VzIHRoYXQgcmV0dXJuIGVncmVwIHdpdGggdGhlIHBzIGFyZyBvbiB0aGUgbGluZS4KICAgICAtIHVwIG1heGltdW0gZGlza3MgdG8gNTAuCiAgIAoxOTk3LTA4LTA3IDAwOjI5ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IGJldHRlciBlcnJvciBtZXNzYWdlcyBieSBhcHBzLgogICAKMTk5Ny0wNy0yNCAyMzo1MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gRWRkeSBKLiBHdXJuZXk6ICB1bmNvbW1lbnQgZ2V0dGltZW9mZGF5KCkgY2FsbC4KICAgCjE5OTctMDctMDMgMjM6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTIgKQogICAKMTk5Ny0wNy0wMyAyMzozMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYywgbWliLltjaF0sIHBhcnNlLltjaF0pOgogICAgIC0gTmV3IG9wdGlvbiB0byBzbm1wdHJhbnNsYXRlICgtYSkgdG8gb3V0cHV0IGEgYXNjaWkgZHVtcCBvZiB0aGUgbWliCiAgICAgICBkYXRhYmFzZSBjYXBhYmxlIG9mIGJlaW5nIHVzZWQgYnkgdGhlIHBhcnNlciBmb3IgcXVpY2sgT0lEIHRyYW5zbGF0aW9ucy4KICAgCjE5OTctMDctMDEgMDg6MzcgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTEgKQogICAKMTk5Ny0wNy0wMSAwNzoyMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCiAgIAoxOTk3LTA3LTAxIDA2OjQxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCiAgIAoxOTk3LTA3LTAxIDA2OjAyICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogQmV0dGVyIHVzYWdlIGluZm9ybWF0aW9uIGFuZCB1c2FnZSgpIHN0YW5kYXJpemF0aW9uLgogICAKMTk5Ny0wNy0wMSAwNTo0MSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgsIGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gZml4IGZyZWVic2QzIHNwZWNpZmljIHByb2JsZW1zIChiYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEJpbGwgRmVubmVyKS4KICAgCjE5OTctMDctMDEgMDE6MTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGZpeCBwcm90b3R5cGluZyBmYWlsdXJlcy4KICAgCjE5OTctMDYtMzAgMDc6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jKTogU3VnZ2VzdGlvbnMgZnJvbSBMYXVra2FuZW4gTWFya2t1IE5SQy9Ia2k6CiAgICAgLSBNYWxsb2MgdHlwZWNhc3RzIGFuZCBvdGhlciBjb3JyZWN0aW9ucyBpbiBjYXN0aW5nLgogICAKMTk5Ny0wNi0zMCAwNjo1OCAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKOgoKICAgLSAobWliX2FwaS4zLCBwYXJzZS5bY2hdKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIEhhbmRsZSBtaWIgbW9kdWxlIHJlcGxhY2VtZW50cyB0aHJvdWdoIG5ldyBmdW5jdGlvbiBhbmQgcmVwbGFjZW1lbnQgdGFibGUuCiAgIAoxOTk3LTA2LTMwIDA2OjQ5ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOiBQYXRjaCBmcm9tIHZsYWRAbWlzZXJ5LnJvc3ByaW50LnJ1OgogICAgIC0gaW1wbGVtZW50IG1lbW9yeSBzZWN0aW9uIG9mIHVjZCBtaWIgb24gbGludXguCiAgIAoxOTk3LTA2LTMwIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKHdvbWJhdC5oKTogYmV0dGVyIGRvY3VtZW50IGNvbmZpZ19sb2FkX21pYigpIGV4YW1wbGUuCiAgIAoxOTk3LTA2LTMwIDA2OjMzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAtIChzbm1wdGVzdC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggZ2V0IC0+IGZnZXQgJ1xuJyBwcm9ibGVtLgogICAgIC0gQWxzbyBtYWtlcyBzdXJlIGl0IGhhbmRsZXMgdXAgYW5kIGxvd2VyIGNhc2VzLgogICAKMTk5Ny0wNi0zMCAwNTo1NCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jKTogRG9uJ3QgcHV0ICYgaW4gZnJvbnQgb2Ygb3NmNCBhY19lbmFkZHIuCiAgIAoxOTk3LTA2LTMwIDA1OjUzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChhZ2VudC9zbm1wX3thZ2VudCx2YXJzfS5jLCBhbGFybS5jLCBldmVudC5jLCBhcHBzLyosCiAgICAgIHNubXBsaWIvc25tcHssX2FwaSxfYXV0aH0uYyk6CiAgICAgIC0gQWRkZWQgYmFzaWMgKG1vc3RseSBjb25mb3JtaW5nPykgdjJjIHN1cHBvcnQuCiAgICAgIC0gTWVyZ2VkIGFyZyBwYXJzaW5nIG9mIGFwcHMvKiBjbGllbnRzIGludG8gb25lIGZpbGUuCiAgIAoxOTk3LTA2LTI2IDIzOjM5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBfX1AgbWFjcm9zIHdlcmUgY2FsbGVkIHdpdGggdG9vIG1hbnkgYXJndW1lbnRzIChuZWVkZWQgKGFyZ3MpKS4KICAgCjE5OTctMDYtMjMgMjM6NDIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IG5lZWQgMiBsZWFkaW5nICctJ3Mgb24gLS13aXRoLW1pYi1tb2R1bGVzIGZsYWcuCiAgIAoxOTk3LTA2LTIzIDIzOjQxICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopOiBic2RpMyBuZWVkcyB0byBkZWZpbmUgYnNkaTIsIG5vdCBpdHNlbGYgKGR1aCkuCiAgIAoxOTk3LTA2LTIzIDIzOjQwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2huIENoYXJsdG9uIHRvIGZpeCBsZWFkaW5nIHNwYWNlcyBpbiBzZWRzY3JpcHQuCiAgIAoxOTk3LTA2LTExIDA1OjQ2ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB3aG9vcHMuCiAgIAoxOTk3LTA2LTExIDA0OjUzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIG1ha2UgTUlCRklMRVMgZW52IHZhciB3b3JrIGNvcnJlY3RseS4KICAgCjE5OTctMDUtMjYgMDI6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG5pZWxzIEJhZ2dlc2VuIHRvOgogICAgIC0gY2xvc2UgbWliZmlsZXMgZm9yIE1JQlM9QUxMLgogICAgIC0gQWxsb3cgU1lOVEFYIERpc3BsYXlTdHJpbmcgKFNJWkUpIGluc2lkZSBPQkpFQ1QtVFlQRS4KICAgCjE5OTctMDUtMjYgMDE6NTggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4yICkKICAgCjE5OTctMDUtMjYgMDE6NTcgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgMy4yLgogICAKMTk5Ny0wNS0yNiAwMTo1NiAgd2hhcmRha2UKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjay5kZWYpOiBuZXcgdmFyaWFibGVzIHRvIHNldCB3YWxrL2dldC9zZXQgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMTk5Ny0wNS0yNiAwMTo1MiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHRyYXAgbG9uZydzIGJhY2sgdG8gaW50cywgYmFkIHNvbHV0aW9uLgogICAKMTk5Ny0wNS0yNiAwMTo1MCAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChJTlNUQUxMLCBjb25maWd1cmUpOiBkZWZhdWx0IG1pYnMgbGlzdGVkIGNvcnJlY3RseS4KICAgCjE5OTctMDUtMjMgMDc6MzQgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBNb2RpZml5IHRvIG5vdGUgZGVmYXVsdCBtaWJzLgogICAKMTk5Ny0wNS0yMyAwNzoyMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU4ICkKICAgCjE5OTctMDUtMjMgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBDaGFuZ2UgdHJhcCB0eXBlcyBmcm9tIGludCB0byBsb25nLgogICAKMTk5Ny0wNS0yMyAwNDo0MCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IFNOTVAgcGVybCBhZ2Fpbi4KICAgCjE5OTctMDUtMjMgMDQ6MzggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBtdWx0aXBsZSBmcmVlcyBpbiB2MiBwZHUncy4KICAgCjE5OTctMDUtMjMgMDQ6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpZW5uZXMgcHJvYmxlbXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzLzogSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgU05NUHYyLVRDLnR4dDoKCiAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQpOiBGcm9tIE5pZWxzOiBjaGFuZ2UgaW1wb3J0IGNsYXVzZXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZXNzZW4gdG8gZml4IGVuZGlhbm5lcyBwcm9ibGVtcy4KICAgCjE5OTctMDUtMjMgMDQ6MzUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBTZXQgZGVmYXVsdCBNSUIgbGlzdC4KICAgCjE5OTctMDUtMjIgMDQ6MTMgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLU0yTS1NSUIudHh0OgoKICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogcmVzdG9yZWQuICBHb3QgdHJ1bmNhdGVkLgogICAKMTk5Ny0wNS0yMSAwNjo0MCAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCiAgIAoxOTk3LTA1LTIxIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0wNS0yMSAwMToxMyAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBVcGRhdGUgZm9yIDMuMi4KICAgCjE5OTctMDUtMjAgMDc6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBjb2RlIGZyb20gRGF2ZSBTaGllbGQ6IGFkZCBiYWNrIGluIGZpbmRfbm9kZSgpIGZvciBwZXJsIHVzYWdlLgogICAKMTk5Ny0wNS0yMCAwNzo1MCAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBzbm1wc2V0IHNob3VsZCBjaGVjayBhZ2FpbnN0IHNpemUgZGVmaW5lZCBpbiBtaWIuCiAgIAoxOTk3LTA1LTIwIDAyOjI0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOiAgRml4IG15IGNwcCBzdHVwaWRpdHkuCiAgIAoxOTk3LTA1LTIwIDAxOjA4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTcgKQogICAKMTk5Ny0wNS0xOSAyMzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2F1dGguYzoKCiAgIC0gKG1pYi5jLCBzbm1wX2F1dGguYyk6IGluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBBSVguCiAgIAoxOTk3LTA1LTE5IDIzOjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgaW1wb3J0IGNhbGxzLgogICAKMTk5Ny0wNS0xOSAyMzoxOCAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IENvbW1lbnQgb3V0IE9iamVjdFN5bnRheCBpbXBvcnQuCiAgIAoxOTk3LTA1LTE5IDIzOjAzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAuYzoKCiAgIC0gKHVkcC5jKTogT25seSBkbyBNYXJ0aW4gSmFjb2Jzc2VuJ3MgZml4ZXMgZm9yIGZyZWVic2QyLgogICAKMTk5Ny0wNS0xNiAwMjoyNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFByb3RlY3QgbWFsbG9jIGFnYWluc3QgMCBleHRlcm5hbCBpbXBvcnRzLgogICAKMTk5Ny0wNS0xNSAwNzo0MyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NlbjoKICAgICAtIEZpeCB1ZHBfaW5wY2Igc3RydWN0dXJlcy4KICAgCjE5OTctMDUtMTUgMDc6MjYgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgLSBXb3JkaW5nIGFuZCBvcmRlciBjaGFuZ2VzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjIyICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgIC0gRGlzcGxheSBkZWZhdWx0cyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgogICAKMTk5Ny0wNS0xNSAwNzowMSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoY29uZmlnKiwgbWliLmMpOgogICAgIC0gQ2hhbmdlZCBlbnYgdmFyaWFibGUgTUlCRklMRSAtPiBNSUJGSUxFUyAoc2luY2UgaXQgaXMgYSBsaXN0IG5vdykuCiAgICAgICAod2lsbCBhY2NlcHQgTUlCRklMRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgogICAgIC0gQnkgZGVmYXVsdCwgKm5vKiBhZGRpdGlvbmFsIG1pYmZpbGVzIGFyZSBsb2FkZWQgKGllLCBtaWIudHh0IGlzIG5vCiAgICAgICBsb25nZXIgbG9hZGVkKSBhbmQgbXVzdCBiZSB0dXJuZWQgb24gdGhyb3VnaCBjb25maWd1cmUgb3IgdGhlIGVudiB2YXIuCiAgICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnMgdG8gc2V0IGRlZmF1bHQgTUlCUywgTUlCRklMRVMsIE1JQkRJUlMuCiAgIAoxOTk3LTA1LTE1IDA2OjIyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDogIEFkZCBuZXcgbm9kZSBzdHJ1Y3R1cmUgZW50cmllcy4KICAgCjE5OTctMDUtMTUgMDU6MzcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBwYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZGVhbCB3aXRoIG11bHRpcGxlIG1vZHVsZSBJRCdzIGJlaW5nIHJlZmVyZW5jZWQgb3Igbm9kZXMgZGVmaW5lZC4KICAgICAtIHN1cHJlc3MgIm5hbWUgY2xhc2giIHdhcm5pbmdzIGZvciBhbm9ueW1vdXMgbm9kZXMuCiAgIAoxOTk3LTA1LTE1IDAyOjMyICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwcm90b3R5cGluZyBhbmQgbnVsbCBjaGVja2luZy4KICAgICAtIGlmIE1JQlMgaXMgc2V0IHRvIEFMTCwgcGFyc2UgZXZlcnl0aGluZyBmb3VuZC4KICAgCjE5OTctMDUtMTUgMDI6MzEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVNNSS50eHQ6CgogICAtIChTTk1QdjItU01JLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBjY2l0dCAtPiAwLgogICAKMTk5Ny0wNS0xNSAwMjozMCAgd2hhcmRha2UKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBpbXBvcnQgaW5kZW50aWZpZXJzLgogICAKMTk5Ny0wNS0xNSAwMjoyOSAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBNSUJTIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gQUxMLgogICAKMTk5Ny0wNS0xNSAwMjoyOCAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHJlZmVyZW5jZSB0aGUgbWFrZXRhcmdldCBzY3JpcHQuCiAgIAoxOTk3LTA1LTE1IDAyOjIzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggcHVyZWx5IG51bWVyaWMgT0lEcy4KICAgCjE5OTctMDUtMTUgMDI6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IHBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiBmb3IgRnJlZUJTRAogICAKMTk5Ny0wNS0xNCAwNjowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU2ICkKICAgCjE5OTctMDUtMTQgMDQ6NDUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogIFR5cGVjYXN0IG1hbGxvYy4KICAgCjE5OTctMDUtMTQgMDQ6MTcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBPZGRiam9ybiBTdGVmZmVuc2VuOgogICAgIC0gUHJvdGVjdCBhZ2FpbnN0IGJhc2ggbmVlZGluZyAnOydzIG9uIG11bHRpcGxlIHN1YmRpciBtYWtlcy4KICAgCjE5OTctMDUtMTQgMDQ6MTMgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB3YXJuIGlmIG1pYi50eHQgaXMgaW5zdGFsbGVkIGZyb20gYSBwcmV2aW91cyByZWxlYXNlLgogICAKMTk5Ny0wNS0xNCAwMjo0MSAgd2hhcmRha2UKCiAgICogbWliLnR4dCwgTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgbWliLnR4dCk6IHJlbW92ZWQgbWliLnR4dCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk3LTA1LTEzIDA3OjIyICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvbWliLmM6CgogICAtIChjb25maWcqLG1pYi5jKTogTmV3IGNvbmZpZ3VyZSBvcHRpb24gLS13aXRoLWRlZmF1bHQtbWlicz0ibGlzdDpsaXN0Ii4KICAgCjE5OTctMDUtMTMgMDY6MzggIHdoYXJkYWtlCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChtaWJzL01ha2VmaWxlLmluKTogdWNkLXNubXAudHh0IC0+IFVDRC1TTk1QLU1JQi50eHQuCiAgIAoxOTk3LTA1LTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIFVDRC1TTk1QLU1JQi50eHQKICAgCjE5OTctMDUtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlZCBmcm9tIHVjZC1zbm1wLnR4dC4KICAgCjE5OTctMDUtMTMgMDY6MDUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFyY2hpdGVjdHVyZSBsaXN0IHVwZGF0ZS4KICAgCjE5OTctMDUtMTMgMDY6MDUgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgSU5TVEFMTCk6IE5ldyBmbGFncyB0byBzZXQgcHJvbXB0ZWQgdmFsdWVzIGluc3RlYWQgb2YgcHJvbXB0aW5nLgogICAKMTk5Ny0wNS0xMyAwNTo0OCAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBDaGFuZ2VkIElEIHRvIFVDRC1TTk1QCiAgIAoxOTk3LTA1LTEzIDAzOjAzICB3aGFyZGFrZQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHJlbW92ZWQgc25tcHYyLnR4dCwgcmZjMTI3MS50eHQuCiAgIAoxOTk3LTA1LTEzIDAzOjAyICB3aGFyZGFrZQoKICAgKiBtaWJzL3NubXB2Mi50eHQ6CgogICAtIChzbm1wdjIudHh0KTogcmVtb3ZlZC4KICAgCjE5OTctMDUtMTMgMDI6NTcgIHdoYXJkYWtlCgogICAqIG1pYnMvcmZjMTI3MS50eHQ6CgogICAtIChyZmMxMjcxLnR4dCk6IHJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAxOjUyICB3aGFyZGFrZQoKICAgKiBtaWJzLzogdWNkLXNubXAudHh0LCB1Y2QudHh0OgoKICAgLSAodWNkLnR4dCk6IHdob29wcy4gIFJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzEyMTMtTUlCLnR4dDoKCiAgIC0gKFJGQzEyMTMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMTU1LVNNSS50eHQ6CgogICAtIChSRkMxMTU1LVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTI3MS1NSUIudHh0OgoKICAgLSAoUkZDMTI3MS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NMk0tTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItUEFSVFktTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1VEUC1NSUIudHh0OgoKICAgLSAoVURQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvVENQLU1JQi50eHQ6CgogICAtIChUQ1AtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVE0udHh0OgoKICAgLSAoU05NUHYyLVRNLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSAoU05NUHYyLVRDLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItU01JLnR4dDoKCiAgIC0gKFNOTVB2Mi1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NSUIudHh0OgoKICAgLSAoU05NUHYyLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLUNPTkYudHh0OgoKICAgLSAoU05NUHYyLUNPTkYudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lQLU1JQi50eHQ6CgogICAtIChJUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9IT1NULVJFU09VUkNFUy1NSUIudHh0OgoKICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9FdGhlckxpa2UtTUlCLnR4dDoKCiAgIC0gKEV0aGVyTGlrZS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC50eHQ6CgogICAtICh1Y2QudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL0lGLU1JQi50eHQ6CgogICAtIChJRi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTExIDIzOjUyICB3aGFyZGFrZQoKICAgKiBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKG1pYnMvdWNkLXNubXAudHh0KTogUGF0Y2ggZnJvbSBNYXJpbyBEZUZhemlvIHRvIGZpeCB0eXBvcy4KICAgICAtIGNvbXBpbGVzIHVuZGVyIFNOTVBjIDQuMWcuCiAgIAoxOTk3LTA1LTExIDIzOjQ5ICB3aGFyZGFrZQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1pYl9hcGkuMy4KICAgCjE5OTctMDUtMTEgMjM6NDggIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIFJFQURNRSwgVE9ETzoKCiAgIC0gKElOU1RBTEwsIFJFQURNRSwgVE9ETyk6IGRvY3VtZW50YXRpb24gdXBkYXRlLgogICAKMTk5Ny0wNS0xMSAyMzo0NCAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IHJlbW92ZWQgQ0NIQUNLID8/Py4KICAgCjE5OTctMDUtMTEgMjM6NDMgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogIEJTREkzIHNwZWNpZmljIGhlYWRlcnMgYW5kIGRlZmluZXMuCiAgIAoxOTk3LTA1LTEwIDA4OjIzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsCiAgIG1pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZGVmYXVsdCB0cmFwIGNvbW11bml0eS4KICAgICAtIG11bHRpcGxlIHRyYXAgc2lua3MuCiAgIAoxOTk3LTA1LTEwIDA3OjUyICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogTmV3IGZpbGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDUtMTAgMDc6NDUgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgdXBkYXRlLgogICAKMTk5Ny0wNS0xMCAwNzo0MSAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRvbid0IHN1Ym1pdCBibGFuayBidWctcmVwb3J0cy4KICAgCjE5OTctMDUtMDkgMTU6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzIChldmVuIGJldHRlcikuCiAgIAoxOTk3LTA1LTA5IDE1OjQ2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcy4KICAgCjE5OTctMDUtMDkgMTU6MjggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIG5lZ2F0aXZlIG51bWJlcnMgaW4gbWlicy4KICAgCjE5OTctMDUtMDkgMTU6MDMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZyAobW9zdGx5KS4KICAgCjE5OTctMDUtMDkgMTQ6NTIgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LltjaF0pOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nLgogICAKMTk5Ny0wNS0wOSAxMzo0NiAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBVcGRhdGUuCiAgIAoxOTk3LTA1LTA5IDEzOjQ2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmMsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlCiwgY29uZmlnLmguaW46CgogICAtIChzbXV4LmMsIGNvbmZpZyopOgogICAgIC0gY2hlY2sgZm9yIHNndHR5LmggYW5kIHByb3RvdHlwZSBiZXR0ZXIuCiAgIAoxOTk3LTA1LTA5IDEzOjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIG1pYi5jLCBtaWIuaCwgcGFyc2UuYwosIHBhcnNlLmg6CgogICAtIChtaWIuW2NoXSwgcGFyc2UuW2NoXSwgTWFrZWZpbGUuaW4pOiBOZXcgcGFyc2VyIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBSdW4tdGltZSBjb250cm9sIG9mIGluaXRpYWwgbW9kdWxlIGxvYWRpbmcKICAgICAgICAgICAgICh1c2VzIGVudiB2YXJpYWJsZXMgTUlCRElSUywgTUlCUywgYW5kIE1JQkZJTEUpCiAgICAgLSBEZWZpbmVkIGludGVyZmFjZXMgZm9yIGxvYWRpbmcgbW9kdWxlcyBhbmQgcmV0cmVpdmluZyBlbnRyaWVzCiAgICAgLSBNb2R1bGUgc2NvcGluZyBub3cgaW5jbHVkZXMgVGV4dHVhbCBDb252ZW50aW9ucwogICAgIC0gVG9rZW5zIGltcGxlbWVudGVkIGludGVybmFsbHkgbm8gbG9uZ2VyIHJlcXVpcmUgaW1wb3J0aW5nIHRoZQogICAgICAgY29ycmVzcG9uZGluZyBtb2R1bGVzCiAgIAoxOTk3LTA0LTIyIDExOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTUgKQogICAKMTk5Ny0wNC0yMiAwODo0MyAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChjb25maWcqLCBzbXV4LmMpOiBDaGVjayBmb3IgaGVhZGVycyBhbmQgZGVmaW5lIEZEX0NPUFkgaWYgbm90IGRlZmluZWQuCiAgIAoxOTk3LTA0LTIyIDA3OjQxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmM6CgogICAtIChzbm1wX2JncC5jLCBzbm1wX3JpcDIuYywgc25tcF9vc3BmLmMsIHNtdXguW2NoXSk6CiAgICAgLSBzdGFuZGFyZGl6ZSBoZWFkZXJzIGZvciBhdXRvY29uZi4KICAgICAtIHNtdXhfaW5pdCgpIC0+IGluaXRfc211eCgpLgogICAgIC0gU01VWERFQlVHIC0+IERPREVCVUcgKC0tZW5hYmxlLWRlYnVnZ2luZyB0dXJucyB0aGlzIG9uIGF1dG9tYXRpY2FsbHkpLgogICAKMTk5Ny0wNC0yMiAwNjo1MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYwosIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmg6CgogICAtIChzbm1wX2JncC5bY2hdLCBzbm1wX3JpcDIuW2NoXSwgc25tcF9vc3BmLltjaF0pOgogICAgIC0gY29uZm9ybSB0byBuZXcgbW9kdWxlIHN0YW5kYXJkcyBvZiBjb2RpbmcuCiAgIAoxOTk3LTA0LTIyIDA2OjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiByZW1vdmUgZHVwbGljYXRlICh3YXJuaW5nKSBUQ1AgZGVmaW5lcyBvbiBvc2Y0IHN5c3RlbXMuCiAgIAoxOTk3LTA0LTIyIDA2OjIwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwKICAgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jOgoKICAgLSAoUkVBRE1FLnNtdXgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMpOgogICAgIC0gc211eCBzdXBwb3J0IGZvciBnYXRlZCBmcm9tIFJvaGl0IER1YmUuCiAgIAoxOTk3LTA0LTIyIDA2OjAyICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCiAgIAoxOTk3LTA0LTIyIDA1OjU5ICB3aGFyZGFrZQoKICAgKiBtYWtldGFyZ2V0LCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMubGludXguaCwKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IHZhcmlvdXMgdGhpbmdzLCBtb3N0bHkgb24gbGludXguCiAgIAoxOTk3LTA0LTIxIDIzOjQyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2YXJpb3VzIHVwZGF0ZXMuCiAgIAoxOTk3LTAzLTI2IDA4OjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKG1pYmdyb3VwL3N5c3RlbS5jKTogcmVwb3J0IGFnZW50IHVwdGltZSByYXRoZXIgdGhhbiBzeXN0ZW0gdXB0aW1lLgogICAKMTk5Ny0wMy0yNSAwNDozMCAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBtaW5vciBkb2MgdXBkYXRlIGZvciBuZXcgZmxhZ3MuCiAgIAoxOTk3LTAzLTI1IDAwOjM5ICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHN5c2xvY2F0aW9uIGFuZCBzeXNjb250YWN0IGV4YW1wbGVzLgogICAKMTk5Ny0wMy0yNCAwNDo1NiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMjQgMDA6NTEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHJ1bnMgb24gYnNkaSAyLjEuCiAgIAoxOTk3LTAzLTI0IDAwOjUxICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogV2F0Y2ggb3V0IGZvciBtdWx0aXBsZSBzcGFjZXMgaW4gQyBkZWZzLgogICAKMTk5Ny0wMy0yNCAwMDo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKGV4YW1wbGUuYywuaCk6IE5ldyBleGFtcGxlIG1pYiBtb2R1bGUgZHVwbGljYXRpbmcgdGhlIHBhc3N0ZXN0CiAgICAgc2NyaXB0IGluIEMgY29kZS4KICAgCjE5OTctMDMtMjQgMDA6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBwcm90b3R5cGUgd3JpdGUgZnVuY3Rpb24gYmV0dGVyLgogICAKMTk5Ny0wMy0xOCAwNzo1MyAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogc25tcC5jb25mIC0+IHNubXBkLmNvbmYKICAgCjE5OTctMDMtMTggMDc6NTIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xNCAwNzoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAobWliZ3JvdXAvUkVBRE1FKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTE0IDA0OjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTQgKQogICAKMTk5Ny0wMy0xNCAwNDo1NCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAoYWNjb25maWcuaCwgdWNkLXNubXAudHh0KTogcmVjb2duaXplIG5ldyBob3N0cyBmb3Igc3lzT2JqZWN0SWQuCiAgIAoxOTk3LTAzLTE0IDA0OjUzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCBhZ2VudC9zbm1wZC5jCjoKCiAgIC0gKHNubXBkLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc3lzdGVtLltjaF0pOgogICAgIC0gNjRiaXQgZml4OiBnZXRfbXlhZGRyKCkgc2hvdWxkIHJldHVybiBpbnQgbm90IGxvbmcuCiAgIAoxOTk3LTAzLTE0IDA0OjUxICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbik6IGZpeCB0cmFwIGJ5IGluY2x1ZGluZyBvcHRpb25hbCAubyBmaWxlcy4KICAgCjE5OTctMDMtMTQgMDI6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfZ3JvdXB2YXJzLmg6CgogICAtIChzbm1wX2dyb3VwdmFycy5oKTogYXhlLgogICAKMTk5Ny0wMy0xNCAwMjoyMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzX2V2ZW50Lmg6CgogICAtIChzbm1wX3ZhcnNfZXZlbnQuaCk6IGF4ZS4KICAgCjE5OTctMDMtMTQgMDI6MTggIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTctMDMtMTQgMDI6MTcgIHdoYXJkYWtlCgogICAqIG1ha2VkZXBlbmQuaW46CgogICAtIChtYWtlZGVwZW5kLmluKTogcnVuIG9uIHNubXBuZXRzdGF0IGRpciBhbHNvLgogICAKMTk5Ny0wMy0xNCAwMjowNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeCBzZWRzY3JpcHQgdG8gaW5jbHVkZSBzIyBhcyB3ZWxsIGFzIHMvIGNvbW1hbmRzLgogICAKMTk5Ny0wMy0xNCAwMjowMSAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBVcGRhdGVkIHRvIGluY2x1ZGUgLWMvLUMgYW5kIFNOTVBDT05GUEFUSCBlbnYgdmFyLgogICAKMTk5Ny0wMy0xNCAwMTo0OSAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiByZW1vdmUgdGhlIGxhc3Qgb2YgdGhlIHNlZCBzY3JpcHQgZGVmcy4KICAgCjE5OTctMDMtMTQgMDE6NDggIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBjb25maWcqLCBtaWJzL01ha2VmaWxlLmluKTogZW5hYmxlIG1pYnMvIG1ha2UgaW5zdGFsbC4KICAgCjE5OTctMDMtMTQgMDA6NDkgIHdoYXJkYWtlCgogICAqIG1pYnMvOiByZmMxMjcxLnR4dCwgc25tcHYyLnR4dCwgdWNkLXNubXAudHh0OgoKICAgLSAobWlicy97cmZjMTI3MSxzbm1wdjIsdWNkLXNubXB9LnR4dCk6IE5ldyBtaWJzIGRpcmVjdG9yeSBmb3Igc3ViLW1pYnMuCiAgIAoxOTk3LTAzLTE0IDAwOjQ3ICB3aGFyZGFrZQoKICAgKiBtaWIudHh0OgoKICAgLSAobWliLnR4dCk6IHN0cmVhbWVkIGRvd24uCiAgIAoxOTk3LTAzLTE0IDAwOjQ2ICB3aGFyZGFrZQoKICAgKiB1Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBtaWJzLy4KICAgCjE5OTctMDMtMTQgMDA6MzggIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBlY2UtbWliLmRlZiwgbWliLnR4dCwgbWliSUkudHh0CiwgdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0LCBtaWIudHh0LCBNYWtlZmlsZS5pbik6IERvbid0IGJ1aWxkIG1pYiBmaWxlcyBhbnltb3JlLgogICAKMTk5Ny0wMy0xMyAwODo0NSAgd2hhcmRha2UKCiAgICogbWFrZXRhcmdldCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcG5ldHN0YXQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgIC0gQSBsYXJnZSBudW1iZXIgb2YgcHJvYmxlbXMgd2l0aCB0aGUgTGludXggcG9ydAogICAgIC0gU29tZSBwcm9ibGVtcyB3aXRoIE5ldEJTRCAxLjJDLCBidXQgaXQncyBzdGlsbCBub3QgcGVyZmVjdAogICAgIC0gTW9yZSAoc3ltYm9saWMpIGRlYnVnIG91dHB1dCBmcm9tIHNubXBkLCB3aGVuIHVzaW5nIC1WLiAtZCBpbXBsaWVzIC1WCiAgICAgICBTaG93cyB5b3UgdmFyaWFibGUgcmVxdWVzdGVkIGFuZCB2YWx1ZSByZXR1cm5lZAogICAgIC0gUmV0dXJuIGlwUm91dGVNYXNrIHVuZGVyIFNvbGFyaXMKICAgICAtIHNubXBuZXRzdGF0IC1yIHNob3dzIG5vbi1zdGFuZGFyZCBuZXRtYXNrcwogICAgIC0gc25tcG5ldHN0YXQgLW8gKG5ldykgc2hvd3MgaW50ZXJmYWNlIG9jdGV0cywgd2l0aG91dCBlbnF1aXJpbmcgZm9yIG10dQogICAgICAgYW5kIG90aGVyIHZhcmlhYmxlcyBub3QgcHJlc2VudCBmb3IgYSBDaXNjbyBGcmFtZS1SZWxheSB2aXJ0dWFsIGNpcmN1aXQKICAgICAgIGludGVyZmFjZQogICAgIC0gc25tcG5ldHN0YXQgdGNwL3VkcCBwcmludC1vdXQgaGFkIG50b2hzL2h0b25zIGluIHdyb25nIHBsYWNlcyBmb3IgcG9ydAogICAgICAgbnVtYmVycyAoc2hvd3MgdXAgb24gbGl0dGxlLWVuZGlhbiBhcmNoaXRlY3R1cmVzKQogICAgIC0gYWRkcyBhIG1ha2V0YXJnZXQgc2NyaXB0IHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFyYWxsZWwgc3ltbGlua2VkCiAgICAgICBzb3VyY2UgZGlyZWN0b3J5LiBVc2VmdWwgaWYgeW91ciBtYWtlIGRvZXMgbm90IHN1cHBvcnQgVlBBVEgKICAgCjE5OTctMDMtMTMgMDg6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L2NvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGZpeCBwYXRoIHRvIGFsYXJtLmguCiAgIAoxOTk3LTAzLTEzIDA3OjE3ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy8qL01ha2VmaWxlLmluKTogZGVwZW5kIHByb2JsZW1zIGZpeC4KICAgCjE5OTctMDMtMTMgMDc6MTAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IHJlbW92ZSBkdXBsaWNhdGUgZ2V0aG9zdG5hbWUgY2hlY2suCiAgIAoxOTk3LTAzLTEzIDA3OjA3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBydWxlIGZpeGVzIGFzIHdlbGwuCiAgIAoxOTk3LTAzLTEzIDA2OjQ1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogTmV3IG1ha2UgZGVwZW5kIHJ1bGVzIHRvIHNlcGVyYXRlIHN5c3RlbS9ub24gZGVwZW5kZW50IHN0dWZmLgogICAKMTk5Ny0wMy0xMyAwNjo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlcy4KICAgCjE5OTctMDMtMTMgMDY6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogdmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLAogICBhY2xfdmFycy5jOgoKICAgLSAodmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLCBhY2xfdmFycy5jKTogZG9uJ3QgaW5jbHVkZSBzbm1wdjJfdmFycy5oLgogICAKMTk5Ny0wMy0xMyAwNjozNSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIC0gKGhwdXguYywgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IG1pbm9yIHByb2JsZW1zLgogICAKMTk5Ny0wMy0xMyAwNTo0NCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWNsLmNvbmYsIGtlcm5lbF9zdW5vczUuYwosIGtlcm5lbF9zdW5vczUuaCwgcm91dGVfd3JpdGUuYywKICAgc25tcF92YXJfcm91dGUuYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBtaWJncm91cC9rZXJuZWxfc3Vub3M1Lmg6CgogICAtIChrZXJuZWxfc3Vub3M1LltjaF0pOiBtb3ZlZCB0byBtaWJncm91cC8uCiAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfdmFyX3JvdXRlLmMpOiBkZWxldGUgZnJvbSBhZ2VudCBkaXIuCiAgIAoxOTk3LTAzLTEzIDA1OjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBhY2xfdmFycy5jLCBhbGFybS5jLAogICBhbGFybS5oLCBjb21tb25faGVhZGVyLmgsIGNvbnRleHRfdmFycy5jLCBldmVudC5jCiwgZXZlbnQuaCwgcGFydHlfdmFycy5jLCBzbm1wX3ZhcnMuYywKICAgc25tcGQuYywgdmlld192YXJzLmMsIG1pYmdyb3VwL2FjbF92YXJzLmMsCiAgIG1pYmdyb3VwL2FjbF92YXJzLmgsIG1pYmdyb3VwL2FsYXJtLmMsIG1pYmdyb3VwL2FsYXJtLmgKLCBtaWJncm91cC9jb250ZXh0X3ZhcnMuYywgbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBtaWJncm91cC9ldmVudC5jLCBtaWJncm91cC9ldmVudC5oLAogICBtaWJncm91cC9wYXJ0eV92YXJzLmMsIG1pYmdyb3VwL3BhcnR5X3ZhcnMuaCwKICAgbWliZ3JvdXAvc25tcHYyX3N1YnRyZWVzLmgsIG1pYmdyb3VwL3NubXB2Ml92YXJzLmgsCiAgIG1pYmdyb3VwL3ZpZXdfdmFycy5jLCBtaWJncm91cC92aWV3X3ZhcnMuaDoKCiAgIC0gKGFnZW50LyosIG1pYmdyb3VwLyopOiBtb3ZlZCBhbGFybSwgY29udGV4dCwgdmlld3MsIGV2ZW50LCBwYXJ0eSwKICAgICBhbmQgYWNsIHZhcmlhYmxlIGdyb3VwcyB0byBtaWJncm91cC8uCiAgIAoxOTk3LTAzLTEzIDAxOjE0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlX3N1YnRyZWVzLmg6CgogICAtIChleHRlbnNpYmxlX3N1YnRyZWVzLmgpOiBSZW1vdmVkIGZpbGUuCiAgIAoxOTk3LTAzLTEzIDAwOjM3ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBpbl9hZGRyX3QgYW5kIGRlZmluZSBhcyB1X2ludCAoMzIgYml0cykgaWYgbm90IHByZXNlbnQuCiAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgogICAKMTk5Ny0wMy0xMyAwMDozMiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KICAgCjE5OTctMDMtMTIgMDg6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZXR1cm5zIGZyb20gaW5ldF9hZGRyIGFyZSBpbl9hZGRyX3QgKHVfaW50KSBub3QgdV9sb25nLgogICAKMTk5Ny0wMy0xMiAwNjo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAobWliZ3JvdXAvUkVBRE1FKTogZG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xMiAwNjo0OCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgdXBkYXRlLgogICAKMTk5Ny0wMy0xMiAwNjo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmMsIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgKLCBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAoY29uZmlndXJlLmluLCBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHJvdXRlX3dyaXRlLltjaF0sCiAgICAgdmFyX3JvdXRlLltjaF0sIGlwLltjaF0sIHNubXAuW2NoXSAtPiBzbm1wX21pYi5bY2hdKToKICAgICAtIE1vdmVkIHNubXAgbWliIG1vZHVsZSAtPiBzbm1wX21pYiBmb3IgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIHNubXBsaWIuCiAgICAgLSBNb3ZlZCBzbm1wX3Zhcl9yb3V0ZS5jIC0+IG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiAgICAgLSBNb3ZlZCB3cml0ZV9yb3V0ZS5jIC0+IG1pYmdyb3VwL3dyaXRlX3JvdXRlLmMKICAgCjE5OTctMDMtMTIgMDA6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcF9taWIuYywgc25tcF9taWIuaDoKCiAgIC0gKG1pYmdyb3VwL3NubXAuW2hjXSAtPiBtaWJncm91cC9zbm1wX21pYi5baGNdKTogTW92ZWQgZHVlIHRvIG5hbWUgY2xhc2hlcy4KICAgCjE5OTctMDMtMTEgMDg6MzYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYmdyb3VwLyopOgogICAgIC0gcmVtb3ZlIHRyYWlsaW5nIDtzIG9uIGJ1bmNoZXMgb2YgZnVuY3Rpb25zLgogICAgIC0gbWFrZSBldmVyeXRoaW5nIGJ1dCBpbnRlcmZhY2VzLmMgY29tcGlsZSBvbiBpcml4Ni4zLgogICAtIChjb25maWcqLHN5c3RlbS5jKTogdXNlIHVuYW1lIGFuZCBnZXRob3N0bmFtZSBpZiBhdmFpbGFibGUuCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogRG9uJ3QgY2hlY2sgX0tFUk5FTCBpZiBpZm5ldC5pZl9tdHUgYWxyZWFkeSB3b3Jrcy4KICAgCjE5OTctMDMtMTEgMDA6MDQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChpcC5jKTogZnJlZWJzZDIgcGF0Y2guCiAgIAoxOTk3LTAzLTEwIDA4OjI4ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHNwYWNlIHByb3RlY3QgbW9kdWxlcyB3aGVuIGNoZWNraW5nIGZvciB3aXRoIGdyZXAuCiAgIAoxOTk3LTAzLTEwIDA3OjU1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBjb25maWd1cmUgb3B0aW9uOiAgLS13aXRoLW91dC1taWItbW9kdWxlcz0ibGlzdCIuCiAgIAoxOTk3LTAzLTA3IDA3OjExICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiBjb21tZW50IG91dCBlbmQgb2YgI2VuZGlmLgogICAKMTk5Ny0wMy0wNyAwNzowOSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IG1ha2UgbmV3IGNvbmZpZ3VyZSBvcHRpb25zIHJlc3BlY3QgJChzcmNkaXIpLgogICAKMTk5Ny0wMy0wNyAwNjowMiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCiAgIAoxOTk3LTAzLTA3IDA2OjAwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmgsIGRpc2suaCwgZXJyb3JtaWIuaCwKICAgZXh0ZW5zaWJsZS5oLCBpY21wLmgsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgcHJvYy5oLCBzbm1wLmgsCiAgIHN5c3RlbS5oLCB0Y3AuaCwgdWRwLmgsIHZlcnNpb25pbmZvLmgsCiAgIHdvbWJhdC5oOgoKICAgLSAobWliZ3JvdXAvKik6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KICAgCjE5OTctMDMtMDcgMDU6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNlZHNjcmlwdC5pbiwKICAgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMyApCiAgIAoxOTk3LTAzLTA3IDA0OjUxICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0gKHNubXBsaWIvc25tcC5jKTogcmVtb3ZlIHNlY29uZCBjdHlwZS5oIGluY2x1ZGUuCiAgIAoxOTk3LTAzLTA3IDA0OjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9ocHV4LmM6CgogICAtIChocHV4LmMpOiBpZmRlZiBhIGZldyBoZWFkZXJzIGZvciBjb3JyZWN0IG1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMy0wNyAwNDo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChtaWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6IGRlcGVuZC4KICAgCjE5OTctMDMtMDcgMDQ6NDggIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiByZW1vdmUgZXh0cHJvdG8uaCBpbmNsdWRlLgogICAKMTk5Ny0wMy0wNyAwNDo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBleHRlbnNpYmxlLyByZW1vdmVzLgogICAKMTk5Ny0wMy0wNyAwNDo0NiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogRml4IHNlZHNjcmlwdCBnZW5lcmF0aW9uLiAgc2lnaC4KICAgCjE5OTctMDMtMDcgMDQ6NDQgIHdoYXJkYWtlCgogICAqIC5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYWRkIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjE5OTctMDMtMDcgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IGFkZCBtYWtlZGVwZW5kLmluCiAgIAoxOTk3LTAzLTA3IDA0OjM5ICB3aGFyZGFrZQoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IG5ldyBtYWtlIGRlcGVuZCBzY3JpcHQKICAgCjE5OTctMDMtMDcgMDI6NDIgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGdlbmVyYXRlIGEgbWliX21vZHVsZV9jb25maWcuaCB3aXRoIGRlZmluZXMgb2Ygd2hhdHMgYmVpbmcgdXNlZC4KICAgCjE5OTctMDMtMDcgMDE6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oOgoKICAgLSAobWliZ3JvdXAvc3RydWN0LmgpOiBtb3ZlZCB0byBoZXJlLgogICAKMTk5Ny0wMy0wNyAwMTozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmMsIGhwdXguaDoKCiAgIC0gKGhwdXguW2NoXSk6IEFkZGVkIGhwdXggc3BlY2lmaWMgZmlsZXMgZnJvbSBleHRlbnNpYmxlIGRpci4KICAgCjE5OTctMDMtMDcgMDE6MDcgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtIChtaWJtb2R1bGUvdmVyc2lvbnRhZyk6IG1vdmVkIGludG8gcGxhY2UgZnJvbSBleHRlbnNpYmxlLwogICAKMTk5Ny0wMy0wNyAwMDo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9kaXNrLmgKLCBtaWJncm91cC9lcnJvcm1pYi5jLCBtaWJncm91cC9lcnJvcm1pYi5oLAogICBtaWJncm91cC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL2V4dGVuc2libGUuaCwKICAgbWliZ3JvdXAvaXAuYywgbWliZ3JvdXAvaXAuaCwgbWliZ3JvdXAvbG9hZGF2ZS5jLAogICBtaWJncm91cC9sb2FkYXZlLmgsIG1pYmdyb3VwL3Bhc3MuYywgbWliZ3JvdXAvcGFzcy5oCiwgbWliZ3JvdXAvcHJvYy5jLCBtaWJncm91cC9wcm9jLmgsCiAgIG1pYmdyb3VwL3JlYWRfY29uZmlnLmMsIG1pYmdyb3VwL3JlYWRfY29uZmlnLmgsCiAgIG1pYmdyb3VwL3NubXAuYywgbWliZ3JvdXAvc3lzdGVtLmMsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAoc25tcF92YXJzLmgsIG1pYmdyb3VwLyopOiBzdHJpY3QtcHJvdG90eXBpbmcgYW5kIGNvbmZpZ19yZXF1aXJlKClzLgogICAKMTk5Ny0wMy0wNyAwMDowNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbW9yZSBub24tbWliZ3JvdXAgc3BlY2lmaWMgY2FsbHMgYW5kIGhlYWRlcnMuCiAgIAoxOTk3LTAzLTA3IDAwOjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IG1pYmdyb3VwL01ha2VmaWxlLmluLCBtaWJncm91cC9kaXNrLmMsCiAgIG1pYmdyb3VwL2Rpc2suaCwgbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgbWliZ3JvdXAvZXJyb3JtaWIuaCwgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmgsIG1pYmdyb3VwL2xvYWRhdmUuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5oLCBtaWJncm91cC9tZW1vcnkuYywKICAgbWliZ3JvdXAvbWVtb3J5LmgsIG1pYmdyb3VwL21pYmRlZnMuaCwKICAgbWliZ3JvdXAvbWliaW5jbC5oLCBtaWJncm91cC9wYXNzLmMsIG1pYmdyb3VwL3Bhc3MuaAosIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oLAogICBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvc3lzdGVtLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBtaWJncm91cC92ZXJzaW9uaW5mby5jLCBtaWJncm91cC92ZXJzaW9uaW5mby5oLAogICBNYWtlZmlsZS5pbjoKCiAgIC0gKGV4dGVuc2libGUvKiAtPiBtaWJncm91cC8qKTogbW92ZWQgZXh0ZW5zaWJsZSBzdHVmZiB0byBtaWIgbW9kdWxlcy4KICAgCjE5OTctMDMtMDUgMDc6MjkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBZZXAuIEl0IHdhcyB3cm9uZy4gIFRlc3RlZCBhbmQgd29ya3Mgbm93LgogICAKMTk5Ny0wMy0wNSAwNzoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBpbiBzbm1wX3BhcnNlLiAgUG9zc2libHkgd3JvbmcuCiAgIAoxOTk3LTAzLTA1IDA3OjEzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9hY2xfdmFycy5jOgoKICAgLSAoYWNsX3ZhcnMuYyk6IGluY29ycmVjdGx5IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBmb3Igd3JpdGVfYWNsKCkuCiAgIAoxOTk3LTAzLTA1IDA2OjA1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogYWNsLmMsIGFjbC5oLCBhY2xfcGFyc2UuYywgYXNuMS5jCiwgYXNuMS5oLCBjb250ZXh0LmMsIGNvbnRleHQuaCwKICAgY29udGV4dF9wYXJzZS5jLCBtZDUuYywgbWQ1LmgsIG1pYi5jLAogICBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCwgcGFydHkuYywgcGFydHkuaAosIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsIHNubXBfY2xpZW50LmMsCiAgIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLCBzeXN0ZW0uYywgc3lzdGVtLmgKLCB2aWV3LmMsIHZpZXcuaDoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwNjowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2Ml92YXJzLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDA1OjU4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvYWNsX3ZhcnMuYywKICAgYWdlbnQvYWxhcm0uYywgYWdlbnQvYWxhcm0uaCwgYWdlbnQvY29tbW9uX2hlYWRlci5oCiwgYWdlbnQvY29udGV4dF92YXJzLmMsIGFnZW50L2V2ZW50LmMsCiAgIGFnZW50L2V2ZW50LmgsIGFnZW50L2tlcm5lbC5oLCBhZ2VudC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcF92YXJzX2V2ZW50LmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L3ZpZXdfcGFyc2UuYywgYWdlbnQvdmlld192YXJzLmM6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDI6MzcgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IENvbnRyaWJ1dGVyIG5hbWUgYWRkaXRpb24uCiAgIAoxOTk3LTAzLTA1IDAyOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5oOgoKICAgZmlsZSBzbm1wZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgogICAKMTk5Ny0wMy0wNSAwMjoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBmaWxlIGtlcm5lbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTEtNC1wcmUyLW5pZWxzLgogICAKMTk5Ny0wMy0wNSAwMjoxNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRWx3eW4gQiBEYXZpZXM6CiAgICAgLSBGaXggYSBQRFUgY2xvbmluZyBidWcuCiAgIAoxOTk3LTAzLTA1IDAxOjA0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAobWliZ3JvdXAvLmN2c2lnbm9yZSk6IG5ldyB0byBpZ25vcmUgY3JlYXRlZCAuaCBmaWxlcy4KICAgCjE5OTctMDMtMDUgMDE6MDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiByZW1vdmVkIHN5c3RlbSBubGlzdCAodW51c2VkKS4KICAgCjE5OTctMDMtMDUgMDA6NDggIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYXQuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuaCwKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChjb25maWcqLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAtIEFkZGVkIC5vIGZpbGUgbGlzdCB0byBhZ2VudC9NYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLgogICAgIC0gbmV3IGZpbGVzIGdlbmVyYXRlZCBieSBjb25maWd1cmU6CiAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaDogIEEgbGlzdCBvZiBtaWIgLmggZmlsZXMgZm9yIHNubXBfdmFycy5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVyeSBtb2R1bGUgKm11c3QqIGhhdmUgYSAuaCBmaWxlKQogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luaXRzLmg6IEEgbGlzdCBvZiBpbml0X3dvbWJhdCgpIHR5cGUgZnVuY3Rpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbmx5IHByZXNlbnQgaWYgZXhpc3QgaW4gd29tYmF0LmMpLgogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2xvYWRzLmg6IFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgYSBuZXcgbWFjcm8gaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWliLmggZmlsZXMgY2FsbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2xvYWRfbWliKCksIHdoaWNoIHNpbXBsaWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbG9hZGluZyBvZiB0aGUgbWliIHNlY3Rpb25zLgogICAKMTk5Ny0wMy0wNCAwNjo0NCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZyosIG1pYmdyb3VwL01ha2VmaWxlLmluKToKICAgICAtIG1pYmdyb3VwIGNvbXBpbGUgbGlzdCBpcyBidWlsZCBieSBjb25maWd1cmUgYW5kIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgIGJ5IHRoZSAtLXdpdGgtbWliLW1vZHVsZXM9Imxpc3Qgb2YgbW9kdWxlcyIgY29tbWFuZCBsaW5lIHRvIGNvbmZpZ3VyZS4KICAgCjE5OTctMDItMTcgMDc6MTEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMiApCiAgIAoxOTk3LTAyLTE3IDA2OjMyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBSZW1vdmUgTUFYX05BTUVfTEVOR1RIIHJlcXVpcmVtZW50cy4KICAgCjE5OTctMDItMTcgMDY6MzEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ljbXAuYzoKCiAgIC0gKGljbXAuYyk6IGRvbid0IHVzZSByZXQgdmFyaWFibGUsIHNpbmNlIGl0J3Mgbm90IGRlZmluZWQuCiAgIAoxOTk3LTAyLTE3IDA2OjMwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9ldmVudC5jOgoKICAgLSAoZXZlbnQuYyk6IFdhcyBwYXNzaW5nIGFuIGludCB0byBiY29weSBpbnN0ZWFkIG9mICZpbnQuCiAgIAoxOTk3LTAyLTE3IDA2OjMwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9hbGFybS5jOgoKICAgLSAoYWxhcm0uYyk6IHR5cGVkZWYgZm9yIGdldFN0YXRQdHIoKS4KICAgCjE5OTctMDItMTcgMDU6NTMgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIG1pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogIE1ha2UgZGVwZW5kLgogICAKMTk5Ny0wMi0xNyAwNTo0NyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAobWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIHJlbW92ZQogICAgIEFOU0kgc3BlY2lmaWMgcmVxdWlyZW1lbnRzLgogICAKMTk5Ny0wMi0xNyAwNTo0NiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUpOiBBZGRlZC4KICAgCjE5OTctMDItMTcgMDU6MzggIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1JFQURNRQosIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGVfc3VidHJlZXMuaCwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMKLCBhZ2VudC9taWJncm91cC9pcC5oLCBhZ2VudC9taWJncm91cC9zbm1wLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3N1YnRyZWVzLmgKLCBhZ2VudC9taWJncm91cC9zbm1wdjJfdmFycy5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLCBhZ2VudC9taWJncm91cCk6IERhdmUgU2hpZWxkIHNwbGl0IHVwIHRoZQogICAgIHNubXBfdmFycy5jIGFuZCByZWxhdGVkIGZpbGVzIGludG8gcGllY2VzIGZvciBlYXNpZXIgbWFuYWdlbWVudC4KICAgICBUaGUgcmVzdWx0cyBvZiBoaXMgd29yayBhcmUgaW4gdGhlIG5ldyBhZ2VudC9taWJncm91cCBkaXJlY3RvcnkuCiAgIAoxOTk3LTAyLTExIDA4OjAwICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUmVzdCBvZiBQaGlsaXAncyBwYXRjaCB0byBmaXggc3JjZGlyIHByb2JsZW1zIChzaCB2YXJzKS4KICAgCjE5OTctMDItMTEgMDc6NDQgIHdoYXJkYWtlCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTExIDA3OjQyICB3aGFyZGFrZQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGRlc2NlbmQgd2hlbiBtYWtlIGNsZWFuaW5nLgogICAKMTk5Ny0wMi0xMSAwNToxNCAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUxICkKICAgCjE5OTctMDItMTEgMDU6MTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZSBub24tc3RhdGljIG1kNWRpZ2VzdCBwcm90b3R5cGUuCiAgIAoxOTk3LTAyLTExIDA1OjExICB3aGFyZGFrZQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbgo6CgogICAtICh7bG9jYWwsbWFuLG92fS9NYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgaW4gZnJvbnQgb2YgdGFicy4KICAgCjE5OTctMDItMTEgMDU6MTAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBGaXggI2lmZGVmLgogICAKMTk5Ny0wMi0xMSAwNDoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvdmlldy5jLCBzbm1wbGliL3ZpZXcuaAo6CgogICAtIChhbGwgLmMgd2l0aCBtYWluKCksIHNubXBsaWIvKik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgIC0gTWFrZSBiZXR0ZXIgc3VwcG9ydCBmb3Igc2hhcmVkIGxpYiBwb3NzaWJpbGl0aWVzLgogICAKMTk5Ny0wMi0xMSAwNDoxMiAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlIHBlb3BsZSBzdXBwbHlpbmcgcGF0Y2hlcyBsaXN0LgogICAKMTk5Ny0wMi0xMSAwNDoxMCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG92L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKk1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgLSBGaXggYWxsIE1ha2VmaWxlLmluJ3MgdG8gc3VwcG9ydCBhIGRpZmZlcmVudCBzcmMgZGlyLgogICAKMTk5Ny0wMi0xMSAwMzo1NCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBGaXggaHB1eCBzcGVjaWZpYyBwcm9ibGVtcy4KICAgCjE5OTctMDItMTEgMDM6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBSZW1vdmVkIG5vbi1saW51eCBzcGVjaWZpYyBzdHVmZi4KICAgCjE5OTctMDItMTEgMDM6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsCiAgIHNubXBfdmFycy5saW51eC5oOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5saW51eC5oKTogUGF0Y2ggZnJvbSBKZW5uaWZlciBCcmF5OgogICAgIC0gR2V0IGFnZW50IHdvcmtpbmcgb24gbGludXguCiAgIAoxOTk3LTAyLTEwIDAwOjU0ICB3aGFyZGFrZQoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IFdob29wcy4KICAgCjE5OTctMDItMTAgMDA6NTEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMgKQogICAKMTk5Ny0wMi0xMCAwMDo1MCAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciAzLjEuMwogICAKMTk5Ny0wMi0xMCAwMDoyMiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBSZW1vdmUgbWFsbG9jIHByb3RvdHlwZSwgbm93IGluIHN0ZGxpYi5oLgogICAKMTk5Ny0wMi0xMCAwMDoyMiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSBTaGllbGRzJyBhZGRpdGlvbnM6ICBmaW5kaW5nIG1vcmUgaW5mby4KICAgCjE5OTctMDItMDUgMDg6NDEgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlNCApCiAgIAoxOTk3LTAyLTA1IDA4OjI5ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCiAgIAoxOTk3LTAyLTA1IDA4OjI0ICB3aGFyZGFrZQoKICAgKiBORVdTLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoTkVXUyk6IHJlbW92ZWQgdGNsIHN0dWZmLgogICAKMTk5Ny0wMi0wNSAwODoyMCAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBDaGFuZ2Ugc3ViamVjdCBsaW5lIHRvIHNob3J0ZW4gYW5kIGZvcmNlIGJldHRlciBkZXNjcmlwdGlvbi4KICAgCjE5OTctMDItMDUgMDg6MTMgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IG5saXN0IHByb2JsZW1zLgogICAKMTk5Ny0wMi0wNSAwODowOSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2dyb3VwdmFycy5oLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXAgbWliIGdyb3VwIGNsZWFudXBzLgogICAgIC0gdHJhcCBnZW5lcmF0aW9uIGNsZWFudXBzLgogICAgIC0gYWRkZWQgbWFuIGVudHJpZXMgZm9yIHRyYXAgZ2VuZXJhdGlvbi4KICAgICAtIGltcHJvdmVkIGFnZW50IGRlYnVnZ2luZyBvdXRwdXQgd2l0aCBhZ2VudCdzIC1kIGZsYWcuCiAgIAoxOTk3LTAyLTA1IDA4OjA3ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUHV0IC9kZXYva3N5bXMgYWhlYWQgb2YgL2tlcm5lbC91bml4LgogICAKMTk5Ny0wMi0wNSAwNzozMyAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBtaXNjIHJlcXVlc3RlZCBhZGRpdGlvbnMuCiAgIAoxOTk3LTAyLTA1IDA3OjMzICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlIHVwZGF0ZWQgYXJjaGl0ZWN0dXJlIGxpc3RzLgogICAKMTk5Ny0wMi0wNCAwMDo0MSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogQWRkZWQgVE9DIGFuZCBhdXRvciBub3RlcyA7LSkuCiAgIAoxOTk3LTAyLTA0IDAwOjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFNpbW9uOiBjb21tZW50ICNpZmRlZiBlbmRpbmdzIGZvciBBTlNJIGNvbXBsaWVycy4KICAgCjE5OTctMDItMDQgMDA6MzYgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBGaXggaHB1eCBwcm9ibGVtcywgKmFnYWluKi4KICAgCjE5OTctMDItMDQgMDA6MzUgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogQWRkZWQgc3VnZ2VzdGlvbnMgZnJvbSB1Y2Qtc25tcC1jb2RlcnMuCiAgIAoxOTk3LTAyLTA0IDAwOjM1ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBEYXZlJ3MgbGF0ZXN0IHJldmlzaW9uLgogICAKMTk5Ny0wMi0wMyAwNDo1NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMy5wcmUzICkKICAgCjE5OTctMDItMDMgMDQ6NTMgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogbW92ZSBjb25maWcuY2FjaGUgdG8gZW5kIG9mIG1lc3NhZ2UuCiAgIAoxOTk3LTAyLTAzIDA0OjMzICB3aGFyZGFrZQoKICAgKiBORVdTLCBSRUFETUUsIFRPRE86CgogICAtIChSRUFETUUsIE5FV1MsIFRPRE8pOiBVcGRhdGUgZm9yIDMuMS4zLgogICAKMTk5Ny0wMi0wMyAwNDoxNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKToKICAgICAtIGFkZGVkIEZBUSBwb2ludGVyLgogICAgIC0gRGF2ZSdzIEVuZ2xpc2ggcG9pbnRlcnMgKGllLCBoZSBwcm9vZmVkIGl0IGFuZCBJLCB1aCwgZG9uJ3QuLi4pLgogICAgIC0gc3dpdGNoIGZ0cCBtaXJyb3IuCiAgICAgLSBidWctcmVwb3J0IHNjcmlwdCBtZW50aW9uZWQuCiAgICAgLSBJIC0+IFdlLCBtZSAtPiB1cy4uLgogICAKMTk5Ny0wMi0wMyAwMzo1MSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogcmVtb3ZlIHByb2plY3QgaGlzdG9yeS4KICAgCjE5OTctMDItMDMgMDM6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBhZGQgc29tZSBpcml4IGFwcHJvcHJpYXRlIGluY2x1ZGVzLgogICAKMTk5Ny0wMi0wMyAwMzo0NCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiB0eXBvOiAgbmVlZHMgYSBzcGFjZSBiZXR3ZWVuICdzdGF0aWMnIGFuZCAnc3RydWN0Jy4KICAgCjE5OTctMDItMDMgMDI6NTAgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOgogICAgIC0gQ2hlY2sgZm9yIGlyaXggNi4yIGhlYWRlcnMuCiAgICAgLSBDaGVjayBpZiBfS0VSTkVMIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIGlyaXggYW5kIGlmbmV0IHVzYWdlLgogICAgIC0gVXNlIHRoZSBmb3VuZCBVTkFNRSBwcm9ncmFtIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgaGF2ZSBpdC4KICAgCjE5OTctMDItMDMgMDE6NDggIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogIFVzZSBDQU5fVVNFX1NZU0NUTCBpbnN0ZWFkIG9mIGJzZGxpa2UuCiAgIAoxOTk3LTAyLTAzIDAxOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZAogICAgIC0gTWFyayBzdHVmZiBmb3IgbGF0ZXIgY2hhbmdlcy4KICAgCjE5OTctMDItMDMgMDE6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIENoZWNrIGZvciB3aG9hbWksIGxvZ25hbWUuCiAgICAgLSBEb24ndCBwYXNzIG51bGwgYXJncyB0byBrc2guCiAgIAoxOTk3LTAyLTAzIDAxOjAzICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNvbW1lbnQgb3V0IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW0gbGluZXMuCiAgIAoxOTk3LTAyLTAzIDAxOjAyICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkb21haW4gbmFtZSBmaXggYW5kIGVkaXRvciBib21iIG91dC4KICAgCjE5OTctMDEtMzEgMDI6MDMgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnIHVwZGF0ZQogICAKMTk5Ny0wMS0zMSAwMTo1OSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoYW5nZWQgYXJjaCB0byBocHBhIGFuZCBtYWtlIHN1cmUgL2Jpbi9rc2ggZXhpc3RzLgogICAKMTk5Ny0wMS0zMSAwMTo0OSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpcmUgb2ZmIGtzaCBpZiBocHV4ICYmIHNoLgogICAKMTk5Ny0wMS0zMSAwMTowMSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOgogICAgIC0gQ2hhbmdlIHNvbWUgc3lzdGVtIHNwZWNpZmljIGlmZGVmcyB0byBDQU5fVVNFX1NZU0NUTC4KICAgICAtIEZpeCBjb21wbGlhdGlvbiBlcnJvcnMgb24gYnNkaTIuCiAgICAgLSBGaXggcm91dGluZyB0YWJsZXMgZm9yIHNpbWlsYXIuCiAgIAoxOTk3LTAxLTMxIDAwOjU3ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sCiAgIGFjY29uZmlnLmg6CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGtzdGF0LmggYW5kIGlmIHN5c2N0bCBjYW4gcmVhZCB0aGUgYm9vdHRpbWUuCiAgIAoxOTk3LTAxLTI5IDA0OjA4ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgLSBjaGFuZ2UgdG8gYWRkcmVzcyAoYmFjaykgdG8gdWNkLXNubXAtY29kZXJzLgogICAgIC0gQWRkIGEgdHJhcCBvbiBzaWduYWxzIHRvIHJlbW92ZSB0bXAgZmlsZXMuCiAgIAoxOTk3LTAxLTI5IDAzOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIEZpeCB2YXJpb3VzIHdhcm5pbmdzL2Vycm9ycy4KICAgICAtIEltcGxlbWVudCByZWFsIHRyYXBzLgogICAKMTk5Ny0wMS0yOSAwMzoxMSAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiB1cGRhdGUKICAgCjE5OTctMDEtMjkgMDM6MTEgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHJldmlzaW9uIG9uZSEKICAgCjE5OTctMDEtMjkgMDM6MTAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBwcyBvcHRpb25zIHRvIGNoZWNrIGZvci4KICAgCjE5OTctMDEtMjkgMDM6MDkgIHdoYXJkYWtlCgogICAqIGFjbG9jYWwubTQ6CgogICAtIChhY2xvY2FsLm00KTogRml4IGNoZWNrX3N0cnVjdF9mb3IgdG8gZGVmaW5lIHRoaW5ncyBjb3JyZWN0bHkuCiAgIAoxOTk3LTAxLTI5IDAzOjA4ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSAuc29mdHdhcmUuZGIuc2gKICAgCjE5OTctMDEtMjkgMDM6MDcgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oKToKICAgIC0gU05NUEJMT0NLID0gIVNOTVBCTE9DSwogICAKMTk5Ny0wMS0yOSAwMzowNyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgLSBBbHdheXMgdXNlIG11bHRpcGFydDogdmVyc2lvbiBpbmZvIGFuZCBjb25maWcuY2FjaGUgYXJlIG9uZS4KICAgIC0gcmUtYXJyYW5nZWQgYSBiaXQuCiAgICAtIEFkZGVkIGludHJvZHVjdGlvbi4KICAgIC0gR3Vlc3MgYXQgZG9tYWluIG5hbWUgaWYgcG9zc2libGUuCiAgIAoxOTk3LTAxLTI5IDAxOjQ3ICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgYnVnIHJlcG9ydGluZyBzY3JpcHQgYWRkCiAgIAoxOTk3LTAxLTIxIDAwOjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBLYXJsIExlaGVuYmF1ZXIgPGthcmxAaGFtbWVyMS5vcHMuTmVvU29mdC5jb20+CiAgICAgICAtIGhhbmRsZSBtdWx0aXBsZSBpbnRlcmZhY2UgbmFtZXMgPiAxMCBwcm9wZXJseS4KICAgCjE5OTctMDEtMjAgMjM6MzQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBfY2xpZW50LmgpOiByZW1vdmUgc2Vjb25kICh3cm9uZykgZnVuY3Rpb24gcHJvdG90eXBlLgogICAKMTk5Ny0wMS0yMCAyMzozMyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiByZW1vdmUgc2Vjb25kIGNoYXIgZGVmaW5pdGlvbi4KICAgCjE5OTctMDEtMjAgMDc6NTkgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMSApCiAgIAoxOTk3LTAxLTIwIDA3OjQzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaAo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5bY2hdKToKICAgICAtIFBhdGNoIGZyb20gUGF0cmljZSBWQU5BQ0tFUiA8dmFuYWNrZXJAd29ybGRuZXQuZnI+OgogICAgICAgLSBmaXggcmVxdWVzdCBkZWxldGlvbnMgaW4gc25tcF9yZWFkKCkuCiAgICAgICAtIGFkZGVkIHJldHVybiBhcmd1bWVudCB0byBzbm1wX2FkZF9udWxsX3ZhcigpLgogICAKMTk5Ny0wMS0yMCAwNjo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgLSBhZGQgYnNkaSB0byBzb21lICNpZmRlZnMuCiAgIAoxOTk3LTAxLTIwIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgQU5TSSBjcHAgI2VsaWYncy4KICAgCjE5OTctMDEtMjAgMDY6MzYgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBBdXRvaGVhZGVyIGlzIGR1bWI6ICBQdXQgbWFjcm8gZGVmaW5lcyBiZWxvd2UgQEJPVFRPTUAgc3ltYm9sLgogICAKMTk5Ny0wMS0yMCAwNjoyMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gKHNubXBfY2xpZW50LmMpOiBXYWl0IDEyMCBzZWNvbmRzIGJlZm9yZSByZXR1cm5pbmcuCiAgIAoxOTk3LTAxLTIwIDA2OjA4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgbWFuL3NubXB0cmFwZC44LCBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmlldy5oOgoKICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgLSBpcE5ldFRvTWVkaWEuCiAgIAogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCiAgIAoxOTk3LTAxLTIwIDA2OjA0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FsYXJtLmgsIGFnZW50L2V2ZW50LmMsCiAgIGFnZW50L2V2ZW50LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfZ3JvdXB2YXJzLmgsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmFyX3N0cnVjdC5oCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMKOgoKICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICBpcC5pcFJvdXRpbmdEaXNjYXJkcywKICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1ldHJpYzUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAtIHVkcCBjb25uZWN0aW9uIHRhYmxlLgogICAgLSBpcE5ldFRvTWVkaWEuCiAgIAogICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgIC0gc25tcCB2YXJpYWJsZSBncm91cC4KICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAtIE1lbW9yeS9mcmVlIGFsbG9jYXRpb24gZml4ZXMuCiAgIAoxOTk3LTAxLTE3IDAyOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6CiAgICAgLSBVc2FnZSgpIHVwZGF0ZSBhbmQgdmVyc2lvbiBwcmludG91dCB1cGRhdGUuCiAgIAoxOTk3LTAxLTE3IDAyOjUxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYywgZXh0ZW5zaWJsZS5jKToKICAgICAtIE5ldyBhcmcgLWMgRklMRTogIAkgICBSZWFkIEZJTEUgYXMgYSBjb25maWd1cmF0aW9uIGZpbGUgYXMgd2VsbC4KICAgICAtIE5ldyBhcmcgLUM6ICAgICAgIAkgICBEb24ndCByZWFkIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgICAtIE5ldyBlbnYgU05NUENPTkZQQVRIOiAgUmVhZCBzbm1wZHssLmxvY2FsfS5jb25mIGZpbGVzIGluOiBzZXBlcmF0ZWQgcGF0aC4KICAgCjE5OTctMDEtMTQgMDc6NDUgIHdoYXJkYWtlCgogICAqIFBPUlRJTkcsIFJFQURNRSwgVE9ETzoKCiAgIC0gKFBPUlRJTkcsIFJFQURNRSwgVE9ETyk6ICBBZGRlZCB1Y2Qtc25tcC1jb2RlcnMgYXMgZGVmYXVsdCBtYWlsIGFkZHJlc3MuCiAgIAoxOTk3LTAxLTA5IDIzOjQ2ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBSZW1vdmUgYnJva2VuIEZEX1NFVCBjb2RlLgogICAKMTk5Ny0wMS0wOSAyMzo0NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQ2hlY2sgZm9yIC9kZXYva3N5bXMgZm9yIHNvbGFyaXMga2VybmVsLgogICAKMTk5Ny0wMS0wOSAyMzo0MyAgd2hhcmRha2UKCiAgICogQ09QWUlORzoKCiAgIC0gKENPUFlJTkcpOiAgVXBkYXRlIGZvciA5Ny4KICAgCjE5OTYtMTItMDUgMDA6MTkgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIuMSApCiAgIAoxOTk2LTEyLTA1IDAwOjE5ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUuCiAgIAoxOTk2LTEyLTA1IDAwOjE0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiByZW1vdmUgYW5zaSBzcGVjaWZpYyBDIGZlYXR1cmVzICh1bnNpZ25lZCBjb25zdGFudHMpLgogICAKMTk5Ni0xMi0wNSAwMDoxMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6ICNpZm5kZWYgLT4gI2lmZGVmIGZvciBzaWdzZXQuCiAgIAoxOTk2LTEyLTA0IDAxOjAzICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yICkKICAgCjE5OTYtMTItMDQgMDE6MDEgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZywgTkVXUyk6ICBVcGRhdGUgZm9yIHJlbGVhc2UgMy4xLjIuCiAgIAoxOTk2LTEyLTA0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLCBSRUFETUUpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgogICAKMTk5Ni0xMi0wNCAwMDoxNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYzoKCiAgIC0gKGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgICAtIFBhcnNlciBmaXhlcyBmb3IgbXVsdGlwbGUgbm9kZXMuCiAgICAgICAtIG1lbW1vdmUvY29weSBkZWxldGVzLgogICAKMTk5Ni0xMi0wMyAwNTo1MSAgd2hhcmRha2UKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZik6IFVzZWQgLT4gQXZhaWwgaW4gbWVtb3J5IHNlcXVlbmNlLgogICAKMTk5Ni0xMi0wMyAwMjoxNCAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbG9jYWwvcGFzc3Rlc3Q6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBwYXNzdGVzdCk6IE1vdmUgcGFzc3Rlc3QgdG8gdWNkYXZpcyBzdWJ0cmVlLgogICAKMTk5Ni0xMi0wMyAwMjowMyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBGcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gRml4IGFycCB0YWJsZSBmb3IgaHB1eC4KICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBhcnBoZC5hdF9uZXh0IGFuZCB1c2UgaW4gYWJvdmUuCiAgIAoxOTk2LTEyLTAzIDAxOjA1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgLSAobWQ1LmMpOiBQdXQgJ1UnbnNpZ25lZCBtYXJrZXIgYXQgZW5kIG9mIGNvbnN0YW50cyB0byByZW1vdmUgZ2NjIHdhcm5zLgogICAKMTk5Ni0xMi0wMyAwMTowMyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jKToKICAgICAtIFdyb3RlIEFDX0NIRUNLX1NUUlVDVF9GT1IgYW5kIHVzZSBpdC4KICAgICAtIE1ha2UgQUNfQ0hFQ0tfSUZORVRfRk9SIHVzZSBhYm92ZS4KICAgICAtIENoYW5nZXF1b3RlICdbXScgLT4gJycgYXJvdW5kIHNlZCBleHByZXNzaW9uIHdpdGggW11zICgtRG9zdHlwZSkuCiAgIAoxOTk2LTEyLTAxIDIzOjU1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIGlmUGh5c0FkZHIgLSBpbiBJbnRlcmZhY2VfR2V0X0V0aGVyX0J5X0luZGV4LCBIUC1VWCBoYXMgdGhlIHNhbWUKICAgICAgICAgICBFdGhlckFkZHIgc3RydWN1cmUgYXMgTUlQUy4KICAgCiAgICAgLSBpcEFkRW50SWZJbmRleCAtIGluIHZhcl9pcEFkZHJFbnRyeSwgdGhlcmUgaXMgYSBmYWxzZSBtYXRjaCBvbgogICAgICAgICAgIHRoZSBsb29wYmFjayBpbnRlcmZhY2UsIGdpdmluZyB0aGUgd3JvbmcgYW5zd2VyIG9mIHRoZSBmaXJzdAogICAgICAgICAgIGludGVyZmFjZSBpbmRleC4KICAgCiAgICAgLSB1ZHBJbkVycm9ycyAtIGluIHZhcl91ZHAsIHRoZSBjb3VudCBvZiBVRFAgZXJyb3JzIG9taXRzIGRpc2NhcmRlZAogICAgICAgICAgIHBhY2tldHMuICBTb21lIHN5c3RlbXMgKGkuZS4gSFAtVVgpIGhhdmUgZXh0ZW5kZWQgdGhlIHVkcHN0YXQKICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGVzZS4gIEkndiB0d2Vha2VkIHRoaXMgYW5hbG9nb3VzIHRvIGEKICAgICAgICAgICBzaW1pbGFyIGFkZGl0aW9uIGluIHRoZSB0Y3BzdGF0IHN0cnVjdHVyZS4KICAgCiAgICAgLSB0Y3BDb25uU3RhdGUgLSBIUC1VWCBoYXMgYWRkZWQgYW4gZXh0cmEgc3RhdGUgaW50byB0aGUgbGlzdCwgd2hpY2gKICAgICAgICAgICB0aHJvd3MgdGhlIHJlc3Qgb2YgdGhlbSBvdXQuCiAgIAoxOTk2LTExLTI2IDIzOjU2ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogVHJ1bmNhdGUgc3lzdGVtIG5hbWVzIGJleW9uZCBbLV9dLiouCiAgIAoxOTk2LTExLTI2IDIzOjQ1ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogUmVzZXQgc2lnbmFsIG9uIGFsbCB0eXBlcyBvZiBzaWduYWwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5Ni0xMS0yNiAyMzozNCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBXYXRjaCBvdXQgZm9yIGludGVyZmFjZSBuYW1lcyB3aXRoICcgJyBpbiB0aGVtLgogICAgIC0gUmVzZXQgc2lnbmFsIG9uIEJTRCBzaWduYWwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5Ni0xMS0yNiAyMzoyMSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlLgogICAKMTk5Ni0xMS0yNiAyMzoyMSAgd2hhcmRha2UKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiBUeXBvOiAgMy4xLjMgLT4gMy4wLjMuCiAgIAoxOTk2LTExLTI2IDIzOjA1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRGVmYXVsdCBzeXNsb2MgVUNEYXZpcyAtPiBVbmtub3duLgogICAKMTk5Ni0xMS0yNiAyMzowMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBDaGFuZ2UgY29tbWVudHMgdG8gcmVmbGVjdCB3aGF0IGl0cyBhY3R1YWxseSBsb29raW5nIGF0LgogICAgIC0gUmVtb3ZlIGlmZGVmIGFyb3VuZCBpZm5ldCBkZWNsYXJhdGlvbnMuCiAgIAoxOTk2LTExLTI1IDAwOjE1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChjb25maWcqLCBzbm1wX2ltcGwuaCk6IE1vdmVkIHZvaWQgLT4gY2hhciBkZWZpbmUgdG8gYSBjb25maWd1cmUgdGVzdC4KICAgCjE5OTYtMTEtMjQgMjM6NDMgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoe2FnZW50LGFwcHN9L01ha2VmaWxlLmluKTogUHV0IGxpYnNubXAuYSBpbiBmcm9udCBvZiAtbCBsaWJzLgogICAKMTk5Ni0xMS0yNCAwNzo0NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMi5wcmUxICkKICAgCjE5OTYtMTEtMjQgMDc6MjQgIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5jLCBJTlNUQUxMLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChrZXJuZWwuYywgY29uZmlnKiwgSU5TVEFMTCk6ICBOZXcgY29uZmlndXJlIHN3aXRjaDogIC0td2l0aG91dC1yb290LWFjY2Vzcy4KICAgICAtIFRoZSBhZ2VudCBkb2Vzbid0IGV4aXQgaWYgaXQgY2FuJ3Qgb3BlbiAvZGV2L2ttZW0uCiAgIAoxOTk2LTExLTIyIDA1OjM3ICB3aGFyZGFrZQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5oLmluLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnM6CgogICAtIChjb25maWcqLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzKTogVXBncmFkZWQgdG8gYXV0b2NvbmYgMi4xMS4KICAgCjE5OTYtMTEtMjIgMDA6MTQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCiAgIAoxOTk2LTExLTIyIDAwOjA2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogTWVyZ2UgZnJvbSBGcmVlQlNEMi0zLTEtMS4KICAgICAtIEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KICAgCjE5OTYtMTEtMjEgMjM6MTggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBUcmFzaCBpbnRlcmZhY2UgY2FjaGluZy4KICAgCjE5OTYtMTEtMTUgMDc6NDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgQWRkIGJhY2sgaW4gInJlYWRpbmcgbWliLi4uIiBkZWJ1Z2dpbmcgc3RhdG1lbnRzLgogICAKMTk5Ni0xMS0xNSAwNzo0MyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogTWFrZSB1bmFtZSBjYWxscyB3b3JrIGNvcnJlY3RseS4KICAgCjE5OTYtMTEtMTQgMDY6MjQgIHdoYXJkYWtlCgogICAqIGFwcHMvOiBzbm1wdHJhcC5jLCBzbm1wbmV0c3RhdC9pbmV0LmMsCiAgIHNubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChzbm1wdHJhcC5jLCBpbmV0LmMsIHJvdXRlLmMpOiB0eXBlY2FzdGluZyB3YXJuaW5nIGZpeGVzLgogICAKMTk5Ni0xMS0xNCAwNjoxNyAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6CiAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wLgogICAgIC0gQ2hlY2sgZm9yIHN5cy92ZnMuaC4KICAgCjE5OTYtMTEtMTQgMDY6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOgogICAgIC0gI2lmZGVmIHR5cG8uCiAgICAgLSBwcm90b3R5cGUgZm9yIEludGVyZmFjZV9TY2FuX0luaXQoKS4KICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AgYmVmb3JlIHVzaW5nLgogICAKMTk5Ni0xMS0wOCAwODowNiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IEZpeGVkICd0b3VjaGl0Jy4KICAgCjE5OTYtMTEtMDggMDg6MDMgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBDcmVhdGVkIGEgJ3RvdWNoaXQnIHRvIHRvdWNoIGNvbmZpZyBmaWxlcyBwcm9wZXJseS4KICAgCjE5OTYtMTEtMDcgMDU6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHR5cGVjYXN0IGZvciBzcHJpbnRfb2JqaWQoKS4KICAgCjE5OTYtMTEtMDcgMDU6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiB0eXBvcy4KICAgCjE5OTYtMTEtMDcgMDU6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogaWZkZWYncyBhcm91bmQgc3RyaW5ncy5oLgogICAKMTk5Ni0xMS0wNyAwNToxNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IENoYW5nZWQgZGVmYXVsdCBTTk1QVjJBVVRIIHRvIFNOTVBWMS4KICAgCjE5OTYtMTEtMDcgMDA6MzQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIEJTRGkyIDMuMS4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDcgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMKLCBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gTmllbHMgMy4xLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNyAwMDoxNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIC0gTmV0QlNEIDMuMS4wLjEgYnJhbmNoIG1lcmdlLgogICAKMTk5Ni0xMS0wNCAwMTowOCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBubGlzdCBpbiAtbG1sZCAoaXJpeCkuCiAgIAoxOTk2LTExLTA0IDAwOjMwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoY29uZmlnKiwgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6ICBNb3JlIGluY2x1ZGUgY2hlY2tzIGZvciBsaW51eC4KICAgCjE5OTYtMTAtMzEgMjM6NTQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW4gIDxzaW1vbkBzd2l0Y2guY2g+OgogICAgIC0gYXNuX2J1aWxkX3Vuc2lnbmVkX2ludCwgYXNuX2J1aWxkX3Vuc2lnbmVkX2ludDY0OgogICAgICAgLSBEb24ndCB0cnkgdG8gc3RyaXAgRkZzIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgICAgIC0gU2tpcCB0aGUgc3RyaXBwaW5nIGNvZGUgZW50aXJlbHkgaWYgd2UgaGF2ZSB0byBhZGQgYSBudWxsIGJ5dGUuCiAgIAoxOTk2LTEwLTMwIDA0OjQ4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGVjZS1taWIuZGVmOgoKICAgLSAoY29uZmlnKiwgZWNlLW1pYi5kZWYpOgogICAgIC0gQ2hhbmdlIGV4dGVuc2libGUgbWliIGxvY2F0aW9uIHRvIHVjZGF2aXMgZW50ZXJwcmlzZSBtaWI6IDIwMjEuCiAgICAgLSBSZW1vdmUgYXNzb2NpYXRlZCBwcm9tcHRpbmcgZnJvbSBjb25maWd1cmUgc2NyaXB0IGFuZCBldGMuCiAgIAoxOTk2LTEwLTMwIDA0OjQ3ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUU6CgogICAtIChQT1JUSU5HLFJFQURNRSk6IEFkZCBhIG5ldyBQT1JUSU5HIGZpbGUgdG8gcmVmZXJlbmNlIGF1dG9jb25mIHBsZWUuCiAgIAoxOTk2LTEwLTE2IDIzOjAyICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4xLkJTREkgKQogICAKMTk5Ni0xMC0wOSAwNzo0NiAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMSApCiAgIAoxOTk2LTEwLTA5IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiB1cGRhdGUgZm9yIDMuMS4xLgogICAKMTk5Ni0xMC0wOSAwNzoyMiAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgdGhhbmtzIG5hbWUuCiAgIAoxOTk2LTEwLTA5IDA3OjE4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRnJvbTogZ2FoQGJlbGxjb3JlLmNvbSAoR2FyeSBBLiBIYXl3YXJkKQogICAgIC0gRnJlZSBwZHUgY29tbXVuaXR5IHRvIHF1ZWxjaCBwdXJpZnkuCiAgIAoxOTk2LTEwLTA5IDAwOjMwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKToKICAgICAtIHByaW50IGEgbmV3IGxpbmUgaW4gcHJpbnRfZXJyb3IoKSBpZiBkZWJ1Z2dpbmcgaXMgdHVybmVkIG9uLgogICAgIC0gdG9zc09iamVjdElkZW50aWZpZXIoKTogY2F0Y2ggbXVsdGlwbGUgYnJhY2tldCBjbGF1c2VzIChJRSB7IHswIDB9IH0gKS4KICAgCjE5OTYtMTAtMDkgMDA6MDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOgogICAgIC0gUGFyc2UgT0JKRUNULUlERU5UWSBhcyBPQkpFQ1QtR1JPVVAgKHNhdmVzIG9ubHkgZGVzY3JpcHRpb24pLgogICAgIC0gQ2hhbmdlIHByaW50X2Vycm9yKCksIHJlYWRfbWliKCkgdG8gcmVmbGVjdCBmaWxlIGFuZCBjb3JyZWN0IGxpbmUgbnVtYmVyLgogICAKMTk5Ni0xMC0wNyAwNDoyMyAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogQWRkZWQgc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24uCiAgIAoxOTk2LTEwLTA3IDA0OjIzICB3aGFyZGFrZQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IENoYW5nZWQgdG8gcmVmbGVjdCBTTk1QTElCL21pYnMuCiAgIAoxOTk2LTEwLTA3IDAzOjA2ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6ICBBZGRlZCB1Y2Qtc25tcC50eHQKICAgCjE5OTYtMTAtMDcgMDM6MDAgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCiAgIAoxOTk2LTEwLTA3IDAyOjIyICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGFkZGVkIC0tcmVjaGVjayB0byBjb25maWcuc3RhdHVzIGNhbGwgdG8gcmVnZW5lcmF0ZSBzZWxmLgogICAgIC0gQ2hhbmdlZCBlY2UtbWliLnR4dCAtPiB1Y2Qtc25tcC50eHQgYW5kIGluc3RhbGwgKGFuZCBnZW5lcmF0ZSkgcHJvcGVybHkuCiAgIAoxOTk2LTEwLTA3IDAxOjExICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIHNubXAgdmVyc2lvbiBjaGVjayBvbiBlcnJvciByZXR1cm4gZnJvbSBzZXQuCiAgIAoxOTk2LTEwLTA3IDAwOjUyICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgY29ycmVjdGx5IGZvciBnZXQvc2V0bW50ZW50LgogICAKMTk5Ni0xMC0wNyAwMDowMSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IE1pYiBpbnN0YWxsYXRpb24gY2hhbmdlZCB0byByZWZsZWN0IG5ldyBtaWIgZGlyZWN0b3J5LgogICAKMTk5Ni0xMC0wNiAyMzo0OSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBQcm9wZXIgYXV0b2NvbmYgZGlyZW50IGhlYWRlcnMuCiAgIAoxOTk2LTEwLTA2IDIzOjQxICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIE5vdyBsb2FkcyBhbGwgbWlicyAoZmlsZXMpIGluIHRoZSBkaXJlY3RvcnkgU05NUExJQi9taWJzLgogICAKMTk5Ni0xMC0wNCAwMjowMSAgd2hhcmRha2UKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogbGliIC0+IGxpYi9zbm1wIHBhdGggY29ycmVjdGlvbiBpbiBGSUxFUyBzZWN0aW9uLgogICAtIChzbm1wZC4xLmRlZik6CiAgICAgLSBBZGRlZCBhIEZJTEVTIHNlY3Rpb24uCiAgICAgLSBHZW5lcmFsIGNsZWFuIHVwLgogICAKMTk5Ni0xMC0wNCAwMTo0NiAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKToKICAgICAtIENsZWFuZWQgdXAgbWFuIHBhZ2UgZm9ybWF0dGluZy4KICAgICAtIEFkZGVkIG5vdGUgYWJvdXQgU05NUHNldCBjb21tdW5pdHkgc3RyaW5ncy4KICAgICAtIG1pbm9yIHByb29mLXJlYWRpbmcgKG1ham9yIHByb29maW5nIG5lZWRlZCBzdGlsbCkuCiAgICAgLSBSZS1vcmdhbml6ZWQgYSBiaXQuCiAgIAoxOTk2LTEwLTA0IDAxOjQ0ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUmVtb3ZlIHNwYWNlcyBmcm9tIHNlZHNjcmlwdCB3aGVuIHVzaW5nIGJyb2tlbiBjcHAgKGdjYykuCiAgIAoxOTk2LTEwLTA0IDAxOjQzICB3aGFyZGFrZQoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IEFkZGVkIHNubXBnZXQvc2V0IHRvIHBhc3MgZXhhbXBsZS4KICAgCjE5OTYtMTAtMDMgMDg6MTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6ICBUdXJuIG9uIG9sZCBDTVUgZGVidWdnaW5nIHN0YXRtZW50cyB3aXRoIC0tZW5hYmxlLWRlYnVnZ2luZy4KICAgCjE5OTYtMTAtMDMgMDg6MDUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgLSBNYWtlIGFnZW50IHByb3Blcmx5IGNoZWNrIHNubXBzZXQgZXhpdCBjb2RlcyBhbmQgdXNlIHRoZW0gKG9uIENPTU1JVCkuCiAgIAoxOTk2LTEwLTAxIDA4OjI4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqLCByZWFkX2NvbmZpZy5jKToKICAgICAtIENoZWNrIGZvciBtbnRlbnQuaCBhbmQgaW5jbHVkZSBpdC4KICAgICAtIENoZWNrIGZvciAvZXRjL21udHRhYiBvciAvZXRjL210YWIgYW5kIHVzZSBhcHByb3ByaWF0ZWx5LgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtIHBpY2sgZ2V0bW50ZW50IG92ZXIgZ2V0ZnNmaWxlIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KICAgICAtIGRlYnVnIGNsZWFudXAgKG9maWxlIC0+IHN0ZGVyciwgY2hlY2sgZm9yIERPREVCVUcgaW5zdGVhZCBvZiBjb25zdCB2YXIpLgogICAKMTk5Ni0xMC0wMSAwNzozMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogRnJvbSBKb2UgTWFyem90OgogICAgIC0gYWxsb3dzIHRoZSBDTVUgbGliIHRvIHJldGFpbiB0aGUgVEMgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEKICAgICAgIHBhcnRpY3VsYXIgb2JqZWN0LiBJbiBwYXJ0aWN1bGFyIHRoaXMgYWxsb3dzIERpc3BsYXlTdHJpbmdzIHRvIGJlCiAgICAgICBkaWZmZXJlbnRpYXRlZCBmcm9tIE9jdGV0U3RyaW5ncyB3aGVuIHRoZXkgYXJlIGxvb2tlZCB1cCBpbiB0aGUKICAgICAgIE1pYiBUcmVlLgogICAKMTk5Ni0wOS0yNSAwNToxNCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBmcmVlYnNkMiB0eXBlY2FzdC4KICAgCjE5OTYtMDktMjQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogdHlwbyBmaXhpbmcgYSB0eXBvIChzaWdoLi4pLgogICAKMTk5Ni0wOS0yNCAwODowMiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1vdmVkIGEgdmFyaWFibGUgZGVjbGFpcmF0aW9uLgogICAKMTk5Ni0wOS0yNCAwNzo1OSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogdHlwb3MuCiAgIAoxOTk2LTA5LTI0IDA3OjU0ICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoY29uZmlnKiwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6IEFkZGVkIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgogICAKMTk5Ni0wOC0zMCAwMjo1MSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogTW9yZSBtaW5vciBidWdzIGxpc3RlZAogICAKMTk5Ni0wOC0zMCAwMjo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbWFsbG9jIHByb3RvdHlwZSBkdWUgdG8gY29uZmxpY3Rpb25zLgogICAKMTk5Ni0wOC0zMCAwMToxNSAgd2hhcmRha2UKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogVXBkYXRlZCBmb3IgMy4xLjAuMQogICAKMTk5Ni0wOC0zMCAwMDozNCAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMC4xICkKICAgCjE5OTYtMDgtMzAgMDA6MzQgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKE5FV1MsIENoYW5nZUxvZyk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKICAgCjE5OTYtMDgtMzAgMDA6MjQgIHdoYXJkYWtlCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogIEFkZGVkIGtlcm5lbF9zdW5vczUubyB0byBzbm1wdHJhcCBmb3IgZ2V0S3N0YXQuCiAgIAoxOTk2LTA4LTMwIDAwOjIzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogcGF0Y2ggc2NyZXdlZCB1cC4KICAgCjE5OTYtMDgtMzAgMDA6MjIgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlZCAtWHMgZmxhZyBmb3IgZ2NjIG9uIHNvbGFyaXMuCiAgICAgLSBsb2dmaWxlIGNoZWNrcyBmb3IgZXhpc3RhbmNlIG9mIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgCjE5OTYtMDgtMjkgMDc6MjkgIHdoYXJkYWtlCgogICAqIFJFQURNRSwgVE9ETzoKCiAgIC0gQ2hhbmdlZCBteSBlbWFpbCBhZGRyZXNzIHRvIG15IG5ldyBvbmUuCiAgIAoxOTk2LTA4LTI5IDA3OjIwICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYXV0b2NvbmYqLCBzbm1wX3ZhcnMuYyk6IFJlbW92ZWQgc29tZSBzb2xhcmlzIGlmZGVmcy4KICAgCjE5OTYtMDgtMjkgMDc6MDMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIC0gKHNubXB3YWxrLmMpOiBSZW1vdmVkIFNWUjQgaWZkZWZzCiAgIAoxOTk2LTA4LTI5IDA2OjU4ICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IFBhdGNoIGZyb20gVHJldm9yIEJvdXJnZXQgPHRib3VyZ2V0QHF1YWxjb21tLmNvbT4KICAgICAtIG1hbGxvYyBzeXNkZXNjIGluc3RlYWQgb2YgYXNzdW1pbmcgPCAxMjggYnl0ZXMuCiAgIAoxOTk2LTA4LTI5IDA2OjA4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gZ2NjIHdhcm5pbmdzIE5VTEwgLT4gMAogICAKMTk5Ni0wOC0yOSAwNjowNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHNhdmUgbWliIGRlc2NyaXB0aW9ucyBmb3Igc25tcHRyYW5zbGF0ZSBhbmQgb3RoZXIgYXBwcyB0aGF0IG5lZWQgaXQuCiAgIAoxOTk2LTA4LTI5IDA2OjA2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBwcm90b3R5cGVzIGZvciBnY2Mgd2FybmluZ3MKICAgCjE5OTYtMDgtMjkgMDY6MDYgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gdWNoYXIocykgY2FuJ3QgYmUgbGVzcyB0aGFuIDAuCiAgIAoxOTk2LTA4LTI5IDA2OjAzICB3aGFyZGFrZQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcHRyYXAuMToKCiAgIC0gKG1hbi9zbm1wdHJhcC4xKTogIGFkZGVkIGJ5IE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgIAoxOTk2LTA4LTI5IDA1OjU5ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gc2V0IGV4aXQgY29kZXMgb2YgMCBmb3IgYWxsIGFwcHMuCiAgICAgLSBSZW1vdmVkIFNWUjQgI2lmZGVmcy4KICAgICAtIEdyZWF0bHkgaW1wcm92ZWQgc25tcHRyYXAuCiAgIAoxOTk2LTA4LTI3IDAxOjA0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhdXRvY29uZiopOgogICAgIC0gRnJlZUJTRCBhZGRpdGlvbnMuCiAgICAgLSBOZXcga2VybmVsIGxvY2F0aW9uOiAgL2tlcm5lbCAoaWNrKS4KICAgICAtIExvZyBmaWxlIGRlZmF1bHQgaW50ZWxsaWdlbnRseSBjaGVja3MgZm9yIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgICAtIENoZWNrcyBmb3IgZ2V0bG9hZGF2ZygpLgogICAKMTk5Ni0wOC0yNyAwMTowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1vcmUgd2FycGVkIEZyZWVCU0QgY2hhbmdlcwogICAKMTk5Ni0wOC0yNyAwMDozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgIAoxOTk2LTA4LTI3IDAwOjAxICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKToKICAgICAtIEZyZWVCU0Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgICAtIG1vcmUgYXV0b2NvbmYgY29tcGxldGU6IHBhdGhzIHRvIGxpYnJhcmllcyBhbmQga2VybmVsIGxvY2F0aW9uLgogICAKMTk5Ni0wOC0yNiAyMzo0NyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogRml4IGJ5dGUgb3JkZXIgcHJvYmxlbSAoY29udmVydCB0byBuZXR3b3JrIGJlZm9yZSBzZW5kaW5nKS4KICAgCjE5OTYtMDgtMjYgMDc6NTcgIHdoYXJkYWtlCgogICAqIGFnZW50LzogZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmM6CgogICAtIChldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYyk6IEZyZWVCU0QgbW9kaWZpY2F0aW9ucwogICAKMTk5Ni0wOC0yNiAwNzo1NSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZpeGVkIGEgZ2NjL0ZyZWVCU0Qgb3B0aW1pemF0aW9uIGJ1ZyAoc3R1cGlkIGNvbXBpbGVyKQogICAKMTk5Ni0wOC0yNiAwMTozNyAgd2hhcmRha2UKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZik6ICBjb21tYXMgb3V0IG9mIHBsYWNlLgogICAKMTk5Ni0wOC0yNiAwMTozNyAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIEV4dHJhIG1pYiBwYXJzaW5nIGlkZWFzIGFkZGVkLgogICAKMTk5Ni0wOC0yNiAwMTozNiAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpIFR5cG8sIGV4dHJhIHF1b3RhdGlvbiBtYXJrLgogICAKMTk5Ni0wOC0yMSAwNjozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc3Rlc3Q6CgogICBBZGRlZCBwYXNzdGVzdCEKICAgCjE5OTYtMDUtMjQgMTU6NDYgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xICkKICAgCjE5OTYtMDUtMjQgMTU6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjb3B5cmlnaHQgdXBkYXRlCiAgIAoxOTk2LTA1LTI0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAzLjEgcmVsZWFzZSBpbmZvIHVwZGF0ZS4KICAgCjE5OTYtMDUtMjQgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIHNvbWUgaWZkZWYgcmVxdWlyZW1lbnRzLgogICAKMTk5Ni0wNS0yNCAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2Njb25maWcuaCwgY29uZmlnLmguaW4pOiAjaWZkZWYgdHlwb3MKICAgCjE5OTYtMDUtMjQgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgbWVtbW92ZSBiZWZvcmUgeW91IGRlZmluZSBpdC4KICAgCjE5OTYtMDUtMjQgMTM6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCByb3V0ZS5jOgoKICAgLSAoaWYuYywgcm91dGUuYyk6IGNhc3QgcmV0dXJucyBmcm9tIGluZGV4IHRvIGNoYXIgKi4KICAgCjE5OTYtMDUtMjQgMTM6NTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiAgZGVmaW5lIG1lbW1vdmUgaWYgbm90IGRlZmluZWQgYW5kIG1lbWNweSBpcy4KICAgCjE5OTYtMDUtMjQgMTM6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6ICBub3RlIG9uIGNyZWF0aW5nIGNvbW1lbnRzIGFkZGVkLgogICAKMTk5Ni0wNS0yNCAxMzoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGRlY2xhcmF0aW9ucyBjbGVhbnVwCiAgIAoxOTk2LTA1LTI0IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJJSS50eHQ6CgogICAtIChtaWJJSS50eHQpOiByZW1vdmVkIDtzIGF0IHRoZSBlbmQgb2YgdGhlIEJFR0lOIGxpbmVzLgogICAKMTk5Ni0wNS0yNCAxMzowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnKik6ICBDaGVjayBmb3Igc3lzL21udHRhYi5oCiAgIAoxOTk2LTA1LTI0IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGV4YW1wbGUgZmlsZSBjaGFuZ2VzLgogICAKMTk5Ni0wNS0yNCAxMjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgYSB0aGFua3Mgc2VjdGlvbi4KICAgCjE5OTYtMDUtMjQgMTI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBsaWIvcGFyc2UuYyk6ICBwYXJzaW5nIGZpeGVzIGZyb20gTWlrZSBQZXJpayA8bWlrZXBAY3J0LmNvbT4KICAgCjE5OTYtMDUtMjMgMTc6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgZ2V0bW50ZW50LgogICAKMTk5Ni0wNS0yMyAxNzowOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogZml4ZWQgZGlzayBjaGVja3Mgb24gU29sYXJpcyBhbmQgYWxwaGEncwogICAgIC0gdXNlIHN0YXR2ZnMgb3ZlciBmc3RhYiBpZiBib3RoIHByZXNlbnQuCiAgIAoxOTk2LTA1LTIzIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIHBhcnR5LmMsIHZpZXcuYzoKCiAgIC0gKGFjbC5jLCBwYXJ0eS5jKTogaW5jbHVkZSBzdGRpby5oCiAgIAoxOTk2LTA1LTIzIDE0OjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChpZi5jKTogdHlwZSBjYXN0aW5nIGJ1Z3MuCiAgIAoxOTk2LTA1LTIzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsLmMsIHBhcnR5LmMsIHZpZXcuYzoKCiAgIC0gKGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmMpOiByZW1vdmVkIE5VTEwgZGVmaW5lcy4KICAgCjE5OTYtMDUtMjMgMTQ6NDMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb24ndCBkZWZpbmUgcmFuZG9tIGlmIGl0IGFscmVhZHkgZXhpc3RzLgogICAKMTk5Ni0wNS0yMiAxMjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gcmV3b3JrZWQgdGhlIHdheSBzbm1wbmV0c3RhdCAtaSB3b3Jrcy4KICAgCjE5OTYtMDUtMjIgMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMsCiAgICAgIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jLHJlYWRjb25maWcuYyxzbm1wX3ZhcnMuYyk6CiAgICAgLSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgLSBmaW5hbGx5IG5haWxlZCB0aGF0IG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gdGhhdCBnYXZlIHByb2JsZW1zCiAgICAgICAgIHdpdGggdGhlIEFUIHN1YnRyZWUKICAgICAgIC0gSSBhbHNvIGltcGxlbWVudGVkIHRoZSBkaXNrIHBhcnQgb2YgdGhlIGV4dGVuc2liaWxpdHkgaW4gdGhlCiAgICAgICAgIGF0dGFjaGVkIHBhdGNoLgogICAKMTk5Ni0wNS0yMiAwODo1MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsCiAgIG1raW5zdGFsbGRpcnM6CgogICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IEF1dG9jb25mLTIuMTAKICAgCjE5OTYtMDUtMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbikgVXBkYXRlZCB0aGUgd2F5IHNlZHNjcmlwdCBpcyB1c2VkLgogICAKMTk5Ni0wNS0xNSAxMjozNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKSBGaXhlZCBhIGhvcnJpYmxlIHR5cG8uICBQIC0+IFBSRUZJWAogICAKMTk5Ni0wNS0xNSAxMjoyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKSByZW1vdmVkICYgaW4gZnJvbnQgb2YgYXJyYXkgcGFzc2VkIGFzIGFyZy4KICAgCjE5OTYtMDUtMTUgMTI6MDMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgQWRkZWQgYSBub3RlIChwb2ludGVyIHRvIGRvY3MpIG9uIHRoZSBhZ2VudCdzIGV4dGVuc2libGl0eS4KICAgCjE5OTYtMDUtMTUgMTI6MDAgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSBtYWtlIGluc3RhbGwgYXMgcm9vdC4KICAgCjE5OTYtMDUtMTUgMDk6NTEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLkExICkKICAgCjE5OTYtMDUtMTUgMDk6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgcGF0Y2ggbWlzdGFrZS4KICAgCjE5OTYtMDUtMTUgMDk6MjkgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIFJFQURNRSwgVE9ETzoKCiAgIC0gKENPUFlJTkcsIFJFQURNRSwgVE9ETykgUmVsZWFzZSBkb2NzIHVwZGF0ZWQuCiAgIAoxOTk2LTA1LTE1IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnRlZCBwYXNzIHRocnUgbWlicy4KICAgCjE5OTYtMDUtMTUgMDk6MDYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbixzZWRzY3JpcHQuaW4pIEFkZGVkIFBSRUZJWCB0byB0aGUgc2Vkc2NyaXB0LgogICAKMTk5Ni0wNS0xNSAwOTowNSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlLAogICBsb2NhbC8uY3ZzaWdub3JlOgoKICAgLSAoKi8uY3ZzaWdub3JlKSBpZ25vcmUgZmlsZSB1cGRhdGUuCiAgIAoxOTk2LTA1LTE1IDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oOgoKICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBQYXRjaCBmcm9tICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgICAtIEJldHRlciBjYWNoaW5nIGFsZ29yaXRobSBmb3IgaW1wcm92ZWQgc3BlZWQuCiAgIAoxOTk2LTA1LTE1IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAtIChhZ2VudC9leHRlbnNpYmxlL3Bhc3MuYykgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gSW1wbGVtZW50ZWQgbWlzc2luZyBwYXJ0cyBvZiBpbnRlcmZhY2UgYWRkcmVzcyBhbmQgbmV0d29yayBvdXRwdXQgKC1pKQogICAKMTk5Ni0wNS0xMyAxNTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9pbXBsLmgpOiBDaGFuZ2UgUldSSVRFIHRvIGluY2x1ZGUgV3JpdGUgZm9yIFYyIGJpdHMuCiAgIAoxOTk2LTA1LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgLSBCdWcgZml4OiBHTE9CQUxTRUNVUklUWSBidWc6ICBzYXZlIHJpZ2h0bW9zdCB0d28gYml0cyBpbiBhY2wuCiAgIAoxOTk2LTA1LTEwIDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBzdGF0dXMuMSwgc25tcGxpYi9wYXJzZS5jCjoKCiAgIC0gKG1hbnkpOiBNZXJlZ2VkIGJhZ2dlc2VuLTMtMC03LTIgYnJhbmNoIGludG8gbWFpbiB0cnVuay4KICAgCjE5OTYtMDUtMTAgMTc6MDYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wc3RhdHVzLjE6CgogICBmaWxlIHNubXBzdGF0dXMuMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCYWdnZXNlbi0zLTAtNy0yLgogICAKMTk5Ni0wNS0xMCAxNzowNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICBmaWxlIHNubXBzdGF0dXMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCYWdnZXNlbi0zLTAtNy0yLgogICAKMTk5Ni0wNS0xMCAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogQSBwYXRjaCB0byBmaXggYSB2aXJ0dWFsIGludGVyZmFjZSBwcm9ibGVtLgogICAgIC0gcGF0Y2ggc3VwcGxpZWQgYnkgIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAKMTk5Ni0wNS0wOSAxNjoxMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgLSAoY29uZmlndXJlLmluKTogU29sYXJpcyBzcGVjaWZpYyBjcHAgZmxhZ3MgYWRkZWQgZm9yIFNVTnNwcm8ncyBjcHAuCiAgIC0gKGFnZW50L3tzbm1wX3ZhcnMsc25tcGR9LmMsYWdlbnQvZXh0ZW5zaWJsZS97ZXh0ZW5zaWJsZSxtaXNjLHBhc3N9LmMsCiAgICAgIHNubXBsaWIve21pYixzbm1wX2NsaWVudH0uYyk6CiAgICAgLSBDbGVhbmVkIHVwIHByb3RvdHlwZXMgdG8gbWF0Y2ggbW9yZSBjYXJlZnVsbHkgKHdpdGggU29sYXJpcydzIHNwcm8gY2MpLgogICAKMTk5Ni0wNS0wOSAxMzozMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFjY29uZmlnLmgsYWdlbnQve01ha2VmaWxlLHNubXBfdmFycy5jfSxhZ2VudC9leHRlbnNpYmxlL21hbnkpOgogICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgcGFzc3RocnUgbWlicy4gIFRvdGFsIGNvbnRyb2wgaXMgaGFuZGVkIHRvIGV4ZWMncy4KICAgCjE5OTYtMDUtMDkgMTM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgogICAKMTk5Ni0wNS0wOSAxMzoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChhcHBzL3NubXBzZXQuYykgQWRkZWQgJy4nIGFzIGEgZGVsaW1pdGVyIGZvciBkZWNpbWFsIGVuY29kZWQgc3RyaW5ncy4KICAgCjE5OTYtMDUtMDMgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXAuYykgQWRkZWQgI2luY2x1ZGU8c3lzL3NvY2tpby5oPgogICAKMTk5Ni0wNS0wMyAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgU29sYXJpcyBmaXggZm9yIGludGVyZmFjZXMuCiAgICAgLSBGcm9tIERhbiBBLiBEaWNrZXkgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgIAoxOTk2LTA1LTAzIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykKICAgICAtIENoYW5nZWQgdGhlIGludGVyZmFjZSBjb3VudGVyIHRvIGEgc2hvcnQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIChidXMgZXJyKQogICAgIC0gVW5kZWZlZCBhIGZ1bmN0aW9uIHRoYXQgaXMgbmV2ZXIgdXNlZC4KICAgCjE5OTYtMDUtMDMgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KICAgCjE5OTYtMDUtMDEgMTQ6NTkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcuMiApCiAgIAoxOTk2LTA1LTAxIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykgdmVyc2lvbiB1cGRhdGUgMy4wLjcuMgogICAKMTk5Ni0wNS0wMSAxNDo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgsYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgpOiByZW1vdmVkIGNvbWVudHMvc3BhY2VzIGZyb20gZGVmaW5lcy4KICAgCjE5OTYtMDUtMDEgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbikgZm9yZ290IE5FVEJTRDFJRCBkZWYuCiAgIAoxOTk2LTA1LTAxIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKSBUay1iMTAgZml4ZXMuCiAgIAoxOTk2LTA1LTAxIDE0OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yb3V0ZV93cml0ZS5jOgoKICAgLSAoYWdlbnQvcm91dGVfd3JpdGUuYyxhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgLSBuZXRic2QxLjFCIHNwZWNpZmljIGZpeGVzOiBjbGFzaCB3aXRoIHN5c19lcnJsaXN0IGFuZCBydF9kc3QgZGVmaW5lcy4KICAgCjE5OTYtMDUtMDEgMTM6NTUgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAobWFuL3NubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWYpIC5DIC0+IC5CLCB0byBpbmNyZWFzZSBucm9mZiBwb3J0YWJpbGl0eS4KICAgCjE5OTYtMDUtMDEgMTM6NTQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIGFnZW50L2V4dGVuc2libGUve3JlYWRfY29uZmlnLGV4dGVuaXNibGV9LmMpOgogICAgIC0gY29uZmlndXJpZmllZCAobmV3IHdvcmQpIHNvbWUgb2YgTmllbHMnIGNoYW5nZXMgYW5kIHRoZSBiY29weS9tZW1tb3ZlIHN0dWZmLgogICAKMTk5Ni0wNS0wMSAxMjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywga2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmM6CgogICAtIChtYW55KSBGaXhlcyBmb3IgU29sYXJpcyAoMi41KSBzdWJtaXR0ZWQgYnkKICAgICAgICAgICAgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAiU29tZSBhcmUgbXkgb3duLCBvdGhlcnMgYXJlIGZyb20gWXVyaSBSYWJvdmVyIHdobyBvcmlnaW5hbGx5CiAgICAgICAgY3JlYXRlZCB0aGUgcGF0Y2guIFNvbWUgb2YgdGhpcyBpcyB0aGVyZSB0byBlbGltaW5hdGUgdGhlCiAgICAgICAgZGVwZW5kZW5jeSBvbiB0aGUgdWNibGliIGNvbXBhdGliaWxpdHkgc3R1ZmYsIHNvbWUgaXMgImNvc21ldGljIiwKICAgICAgICBidXQgaXQgYWxzbyBmaXhlcyBhIHNlcmlvdXMgcHJvYmxlbSBpbiB0aGUgYWdlbnQsIHdoZXJlIHdhbGtpbmcKICAgICAgICB0aGUgbWliIHRyZWUgY2FuIGxvb3AgZW5kbGVzc2x5IGlmIHlvdSBoYXZlIG11bHRpcGxlIG5ldHdvcmsKICAgICAgICBpbnRlcmZhY2VzLiIKICAgCjE5OTYtMDQtMjUgMTI6MTkgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcuMSApCiAgIAoxOTk2LTA0LTI1IDEyOjE4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbikgRGVmaW5lZCBERUJVR1AgaWYgRE9ERUJVRyBpcyBub3QgZGVmaW5lZC4KICAgCjE5OTYtMDQtMjQgMTQ6NTQgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjcgKQogICAKMTk5Ni0wNC0yNCAxNDo1MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpIHVwZGF0ZSBmb3IgMy4wLjcKICAgCjE5OTYtMDQtMjQgMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spIG5ldyBwcmVmOiAgZG9uJ3QgcG9wIGZvcndhcmQgb24gbmV3IHByb2JsZW1zLgogICAKMTk5Ni0wNC0yNCAxMzoyNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoY29uZmlnKixhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBjb25maWcgY2hlY2tpbmcgZm9yIHJ0ZW50cnkucnRfbmV4dAogICAKMTk5Ni0wNC0yNCAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIEAjJCVpbmcgc29sYXJpcwogICAKMTk5Ni0wNC0yNCAxMTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIENoZWNrZWQgZm9yIHN5cy9tYnVmIGZvciBkZXRlcm1pbmluZyBydGVudHJ5LnJ0X25leHQKICAgCjE5OTYtMDQtMjQgMDk6MDcgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSB1cGRhdGVkCiAgIAoxOTk2LTA0LTI0IDA5OjAwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIHVwZGF0ZWQKICAgCjE5OTYtMDQtMjQgMDg6NTQgIGhhcmRha2VyCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgLSAobWFuLy5jdnNpZ25vcmUpIGFkZGVkIHNubXBkLjEKICAgCjE5OTYtMDQtMjQgMDg6NTMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwKICAgb3YvVUNELWZpZWxkcywgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4KOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLCBvdi8qKSBBZGRlZCBOZXRCU0QgdG8gc3lzLU9JRCByZXR1cm5lZC4KICAgCjE5OTYtMDQtMjQgMDg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKSBtb3JlIGNvbmZpZyBmaWxlcyBmb3IgTmV0QlNELgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgcmVtb3ZlZCBhcnAgdGFibGVzIGZvciBuZXRic2QuCiAgIAoxOTk2LTA0LTI0IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hbGFybS5jOgoKICAgLSAoYWdlbnQvYWxhcm0uYykgRml4ZWQgc29tZSBkZWZpbmUgbmFtaW5nIGNvbmZsaWN0cyBmb3IgTmV0QlNEICh0aW1lcmFkZCgpKS4KICAgCjE5OTYtMDQtMjQgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pIEZvcmdvdCBhIHF1b3RlLiAgKHdoeSBoYXNuJ3QgdGhpcyBhcHBlYXJlZCBiZWZvcmU/KQogICAKMTk5Ni0wNC0yNCAwODozNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKSBNb3JlIGhlYWRlciBmaWxlIGNoZWNrcyAodm0vdm0uaCAoKyBvdGhlcnMpIGFuZCB1ZnMvZmZzL2ZzLmgpCiAgIAoxOTk2LTA0LTE2IDE4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYykgQWRkZWQgZmZsdXNoIGNhbGxzIGFmdGVyIHByaW50aW5nIHBhY2tldCBkdW1wcwogICAKMTk5Ni0wNC0xNiAwOTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWdlbnQve3JvdXRlX3dyaXRlLmMsc25tcF92YXJfcm91dGUuY30pIE9TRjMuMiBzcGVjaWZpYyBjaGFuZ2VzLiAgYXJnLgogICAKMTk5Ni0wNC0xNiAwOTo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIEkgZm9yZ290IERNRU1fTE9DIG5lZWRzIHRvIGJlICN1bmRlZidlZCBpZiBub3QgZm91bmQKICAgCjE5OTYtMDQtMTUgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKSBGaXhlZCAyIGdldHRpbWVvZmRheSBjYWxscyAtLSBhZGRlZCBhIE5VTEwgdGltZXpvbmUgcHRyLgogICAKMTk5Ni0wNC0xNSAxNDoxMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0td2l0aC1kZWZhdWx0cy4gIERvbid0IHByb21wdCB0aGUgdXNlci4KICAgLSAoY29uZmlndXJlKSBidWcgZml4ZXM6ICB3YXNuJ3QgcXVvdGluZyBrZXJuZWwgYW5kIGRtZW0gbG9jYXRpb24uCiAgIC0gKGNvbmZpZ3VyZSkgZ2NjIGNwcCByZXF1aXJlcyAteCBjIHRvIGFjY2VwdCAuaW4gZmlsZSBzdWZmaXguCiAgIAoxOTk2LTA0LTE1IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS1lbmFibGUtZGVidWdnaW5nLiAgVHVybnMgb24gZGVidWdnaW5nLgogICAtIChjb25maWd1cmUpIEZpeGVzIGZvciB0eXBlIGNoZWNraW5nIG9mIDQuNCBydGVudHJ5IHN0cnVjdHVyZXMgb24gYWxwaGFzLgogICAKMTk5Ni0wNC0xMiAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZiwKICAgc2Vkc2NyaXB0LmluLCBhZ2VudC9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBvdi9VQ0QtZmllbGRzLAogICBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbiwKICAgb3YvYml0bWFwcy9VQ0QuZmllbGRzOgoKICAgLSAoc25tcF92YXJfcm91dGUuYykKICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgLSAobWFueSkgQWRkZWQgc3VwcG9ydCBmb3IgaHBwYTEuMS1ocC1ocHV4MTAuMDEKICAgICAtIHRvdGFsbHkhIHJlZGlkIHRoZSByb3V0aW5nIHRhYmxlcyBmb3IgQlNEIDQuNCBkZXJpdmVkIHN5c3RlbXMKICAgICAgIChhbHBoYSwgaHB1eDEwLjAxKywgbmV0YnNkKSBzaW5jZSBocHV4MTAgZG9lc24ndCBoYXZlIDQuMyBjb21wYXQgc3RydWN0cy4KICAgLSAoZWNlLW1pYi5kZWYpIENhcGl0YWxpemF0aW9uIHByb2JsZW0uCiAgIC0gKGNvbmZpZ3VyZS5pbikKICAgICAtIENsZWFuZWQgdXAga2VybmVsIGNoZWNraW5nCiAgICAgLSBTdGFydGVkIHVzaW5nIGEgYXV0b2NvbmYgMi44IGZlYXR1cmUgdG8gY2hlY2sgZm9yIGNhY2hlIHZhbHVlcy4KICAgCjE5OTYtMDQtMTIgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUuYykKICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgCjE5OTYtMDQtMDUgMTY6MTkgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKG1hbi9NYWtlZmlsZS5pbikgQWRkZWQgYSAnY2xlYW4nIGRlZmluaXRpb24gdG8gdGhlIE1ha2VmaWxlLgogICAKMTk5Ni0wNC0wNSAxNjoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChzbm1wbGliL2FzbjEuYykgcmVtb3ZlZCBhIHJlcXVpcmVkICd1bml4JyBkZWZpbmUgc3Vycm91bmRpbmcgYSBoZWFkZXIgZmlsZS4KICAgCjE5OTYtMDQtMDUgMTY6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSkgYXV0b2NvbmYtMi43IC0+IGF1dG9jb25mLTIuOQogICAKMTk5Ni0wNC0wNSAxNjoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjay5kZWYpIFRrLWI4ID0+IFRrLWIxMCBjaGFuZ2VzCiAgIAoxOTk2LTAzLTExIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBzbWFsbCBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk2LTAzLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBmaXhlZCBhIHRpbWVvdXQgYnVnIGNhdXNlZCBieSBhcmNoaXRlY3R1cmVzCiAgICAgd2l0aCBhbiB1bnNpZ25lZCB0aW1ldmFsLnR2X3NlYyB2YWx1ZS4KICAgICAtIFRoYW5rcyBnb2VzIHRvIEdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IGZvcgogICAgICAgdGhlIHBhdGNoIQogICAKMTk5Ni0wMy0xMSAxNTo0MSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjAuNiApCiAgIAoxOTk2LTAzLTExIDE1OjQxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2cvTkVXUyk6IHVwZGF0ZWQgZm9yIDMuMC42CiAgIAoxOTk2LTAzLTExIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBtb3JlIGNsZWFuIHVwIGFuZCBhZGRlZCByZWZlcmVuY2UgdG8gdGhlIHVjZC1zbm1wIG1haWxpbmcgbGlzdC4KICAgCjE5OTYtMDMtMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGNsZWFuZWQgdXAsIHJlLWFycmFuZ2VkLCBzaG9ydGVuZWQgKHNlY3Rpb25zIG1vdmVkIHRvIG1hbi8qIGRvY3MpLgogICAKMTk5Ni0wMy0xMSAxNToxNyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzZWRzY3JpcHQuaW46CgogICAtIChtYW4ve01ha2VmaWxlLmluLHNubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWZ9LHZlcnNpb250YWcsc2Vkc2NyaXB0LmluKToKICAgICAtIGNsZWFuZWQgdXAgZG9jdW1lbnRhdGlvbiBtb3JlIGFuZCBhZGRlZCB0aGUgdmVyc2lvbiBudW1iZXIgdG8gdGhlIHRyYWlsZXJzLgogICAKMTk5Ni0wMy0xMSAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiBjb21tZW50ZWQgb3V0IG5saXN0IHdhcm5pbmdzLgogICAKMTk5Ni0wMy0wOCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKSBmaXhlZCBhIGZpeCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gZml4ZWQuCiAgIAoxOTk2LTAzLTA4IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wbGliL3NubXBfY2xpZW50LmMpIENoZWNrIGlmIHZhcmlhYmxlIGNvbnRlbnQgaXMgTlVMTCBiZWZvcmUgdXNpbmcuCiAgIAoxOTk2LTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAoc25tcGxpYi9taWIuYykgcHJpbnRlZCB2YWx1ZXMgZm9yIHRpbWV0aWNrcyBhcmUgbm8gbG9uZ2VyIG5lZ2F0aXZlLgogICAKMTk5Ni0wMy0wNiAxNjozOCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICAtIChlY2UtbWliLmRlZikKICAgICAtIENoYW5nZWQgY2FwaXRhbGl6YXRpb24gc2NoZW1lcyB0byBiZSBtb3N5IGNvbXBsaWFudC4KICAgICAtIE1hZGUgdGhlIG1lbW9yeSBtaWIgU1lOVEFYIHBvaW50IHRvIHRoZSBNZW1vcnkgc2VxdWVuY2UgbGlrZSBpdCBzaG91bGQuCiAgIAoxOTk2LTAzLTA2IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYykgQWRkZWQgT19UUlVOQyB0byB0aGUgbG9nZmlsZSBvcGVuKCkgY2FsbC4KICAgCjE5OTYtMDItMjEgMTY6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCkKICAgICAtIENoYW5nZWQgdHJhcF90eXBlICYgc3BlY2lmaWNfdHlwZSB0byBsb25nIGZyb20gaW50IGZvciA2NCBiaXQgYXJjaGl0ZWN0dXJlcy4KICAgICAgIC0gc3VnZ2VzdGVkIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgIAoxOTk2LTAyLTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHNubXB0cmFwLmM6CgogICAtIChhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmMpCiAgICAgLSBBZGRlZCBhcHBzL3NubXB0cmFwCiAgICAgICAtIGNvZGUgdGFrZW4gZnJvbSAyLjAuMSBhbmQgc3VibWl0dGVkIHRvIG1lIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgICAgICAtIEkgaGF2ZSB5ZXQgdG8gdGVzdCBpdC4KICAgCjE5OTYtMDItMjEgMTY6MTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi8uY3ZzaWdub3JlLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbiwgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZikKICAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgc25tcGQuY29uZiBtYW51YWwgcGFnZS4KICAgCjE5OTYtMDItMTYgMTY6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChhY2NvbmZpZy5oLGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykKICAgICAtIC5jb25mIGZpbGUgYWRkaXRpb246ICAiY29tbXVuaXR5IE4gU1RSSU5HIiB0byBjaGFuZ2UgY29tbXVuaXR5IG5hbWVzCiAgIAoxOTk2LTAyLTEyIDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oaW4sIGFnZW50L2V4dGVuc2libGUvbWlzYy5jKQogICAgIC0gVGhlIGFnZW50IG5vdyBzZXRzIGFuIGFsYXJtIHRvIHJlc3RhcnQgcmF0aGVyIHRoYW4gZG9pbmcgYXQgdGhlCiAgICAgICBzbm1wc2V0IHRpbWUgdG8gcmV0dXJuIGEgdmFsdWUgdG8gdGhlIHNubXBzZXQgcmVxdWVzdC4KICAgCjE5OTYtMDItMDkgMTc6MDQgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLAogICBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGVjZS1taWIuZGVmLCBzZWRzY3JpcHQuaW4sIGFnZW50L3NubXBfdmFycy5jLAogICBvdi8uY3ZzaWdub3JlLCBvdi9NYWtlZmlsZS5pbiwgb3YvUkVBRE1FLAogICBvdi9VQ0QtQ29tcHV0ZXIsIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sCiAgIG92L29pZF90b190eXBlLmluLCBvdi9iaXRtYXBzL1VDRC4yMC5tLAogICBvdi9iaXRtYXBzL1VDRC4yMC5wLCBvdi9iaXRtYXBzL1VDRC4yNi5tLAogICBvdi9iaXRtYXBzL1VDRC4yNi5wLCBvdi9iaXRtYXBzL1VDRC4zMi5tLAogICBvdi9iaXRtYXBzL1VDRC4zMi5wLCBvdi9iaXRtYXBzL1VDRC4zOC5tLAogICBvdi9iaXRtYXBzL1VDRC4zOC5wLCBvdi9iaXRtYXBzL1VDRC40NC5tLAogICBvdi9iaXRtYXBzL1VDRC40NC5wLCBvdi9iaXRtYXBzL1VDRC41MC5tLAogICBvdi9iaXRtYXBzL1VDRC41MC5wLCBvdi9iaXRtYXBzL1VDRC5maWVsZHM6CgogICAtIEJldHRlciBPcGVuVmlldyBzdXBwb3J0CiAgICAgLSBSZXR1cm5zIGRpZmZlcmVudCBzeXNPYmplY3RJRCdzIGZvciBlYWNoIGFyY2hpdGVjdHVyZQogICAgIC0gQWRkZWQgYSAnb3YnIGRpcmVjdG9yeSBmb3IgT3BlblZpZXcgc3VwcG9ydCBmaWxlcwogICAgICAgLSBjdXJyZW50bHkgY29udGFpbnMgbmVjZXNzYXJ5IGZpbGVzIHRvIHN1cHBvcnQgYSBVQ0QgYml0bWFwIGZpbGUKICAgICAgICAgZm9yIGhvc3RzIHVzaW5nIHRoZSB1Y2Qtc25tcCBhZ2VudC4gIFNlZSB0aGUgb3YvUkVBRE1FIGZpbGUgZm9yIGRldGFpbHMuCiAgIAoxOTk2LTAxLTI2IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gVGhlIFNvbGFyaXMgMi41IGtlcm5lbCBoYXMgbW92ZWQgdG8gL2tlcm5lbC9nZW51bml4CiAgICAgLSBUaGFua3MgZ29lcyB0byBwb21taWVyQHZvbG5heS5zdG9ydGVrLmNvbSAoVmluY2VudCBQb21taWVyIChUb3Vsb3VzZSkpCiAgIAoxOTk2LTAxLTI0IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGVjZS1taWIuZGVmLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZSwgY29uZmlnLmgsIGVjZS1taWIuKiwgc2Vkc2NyaXB0LmluKQogICAgIC0gY2hhbmdlZCB0aGUgd2F5IG1pYi50eHQgaXMgYnVpbHQKICAgICAgIC0gc3BsaXQgdGhlIGNvbW1hbmQgaW50byB0d28gcGFydHMgdG8gYnVpbGQgYSBlY2UtbWliLnR4dCBhcyB3ZWxsCiAgICAgLSBhZGRlZCBhIG5ldyBPYmplY3RJRCBhZGRpdGlvbiB0byBlY2UtbWliLnR4dAogICAgIC0gREVGTUFYTE9BREFWRSAtPiBEUkVNT1ZFTUVFRk1BWExPQURBVkUKICAgCjE5OTYtMDEtMjQgMTY6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az4KICAgICAtIGZpeGVzIC1wIFBPUlQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgdGhlIHJlcXVlc3RlZCBwb3J0LgogICAgIC0gZml4ZXMgdGhlIC1sIExPR0ZJTEUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgaXQuCiAgIAoxOTk2LTAxLTI0IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gUmV0dXJuaW5nIEVYVEVOU0lCTEVET1RNSUIuQUdFTlRJRCBhcyB0aGUgbmV3IG9iamVjdGlkCiAgIAoxOTk2LTAxLTIyIDE3OjMwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csTkVXUykKICAgICAtIFByZXBlZCBmb3IgMy4wLjUgcmVsZWFzZQogICAKMTk5Ni0wMS0yMiAxNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykKICAgICAtIGFkZGVkIGFnZW50IGNvbnRyb2xzOiAgcmVzdGFydCwgdXBkYXRlY29uZmlnLCBjbGVhcmNhY2hlLgogICAgIC0gcmVtb3ZlZCBhbiBvbGQgZGVidWdnaW5nIHByaW50Zi4KICAgICAtIGN0cmwtZiA9PiBmaXhhbGwuCiAgICAgLSBBZGRlZCBrZXlib2FyZCBhY2NlbGVyYXRvcnMgdG8gdGhlIGFzc29jaWF0ZWQgbWVudSBpdGVtcy4KICAgICAtIE1hZGUgaGlnaGxpZ2h0VGhpY2tuZXNzIGEgZ2xvYmFsIHBhcmFtZXRlciB2aWEgJHdpbmRvdy0+b3B0aW9uKCdhZGQnKS4KICAgICAtIEFkZGVkIGEgZW50cnkgYm94IHRvIHRoZSBleGVjdXRhYmxlIGNvbW1hbmRzIHdpdGggdGhlIGNvbW1hbmQgdG8gcnVuLgogICAKMTk5Ni0wMS0yMiAxNzoxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbikgQWRkZWQgYSBjaG1vZCB0byBtYWtlIHRoZSBzbm1wY2hlY2sgc2NyaXB0IGV4ZWN1dGFibGUKICAgCjE5OTYtMDEtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgLSBBZGRlZCBuZXcgZGVmaW5lcyB0byB0dXJuIG9uL29mZiBzZWN0aW9ucyBvZiB0aGUgZXh0ZW5zaWJsZSBtaWIuCiAgICAgLSBUaGlzIGFsc28gZml4ZXMgdGhlIG1pYi50eHQgZmlsZSBkZWZpbml0aW9ucyBpZiBzb21ldGhpbmcgaXMgdHVybmVkIG9mZi4KICAgLSAoTWFrZWZpbGUuaW4pIHJlbW92ZWQgJHtzcmNkaXJ9IGZyb20gdGhlIGZyb250IG9mIHN0YW1wLWguaW4KICAgCjE5OTYtMDEtMTkgMTc6MzEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgcmVtb3ZlLWZpbGVzOgoKICAgLSAoY29uZmlndXJlKikKICAgICAtIHVwZGF0ZWQgdG8gYXV0b2NvbmYgdjIuNwogICAgIC0gSG9wZWZ1bGx5IG5vdyB1c2luZyBjb3JyZWN0ICdtYWtlJyBkZWZpbml0aW9ucwogICAKMTk5NS0xMi0yOCAxNToyNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluKSBNaW5vciBjbGVhbnVwcy4KICAgCjE5OTUtMTItMjggMTI6MTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKENoYW5nZUxvZyxFWEFNUExFLmNvbmYuZGVmKSBzcGVsbCBjaGVjayAoc2lnaCkKICAgCjE5OTUtMTItMjggMTI6MDkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwKICAgTWFrZWZpbGUuaW4sIE5FV1MsIFJFQURNRSwgc2Vkc2NyaXB0LmluOgoKICAgLSBDcmVhdGVkIGEgRVhBTVBMRS5jb25mIGZpbGUgZm9yIGV4YW1wbGUgdXNhZ2UuCiAgIAoxOTk1LTEyLTI4IDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAgVXBkYXRlZCB0aGVzZSBmb3IgMy4wLjQgcmVsZWFzZS4KICAgCjE5OTUtMTItMjggMTA6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiAgTmV2ZXIgZmluaXNoZWQgdGhlIGluc3RhbGwgaXRlbS4KICAgCjE5OTUtMTItMjggMTA6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBUT0RPLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbgosIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZiwKICAgc2Vkc2NyaXB0LmluLCBsb2NhbC8uY3ZzaWdub3JlLCBsb2NhbC9NYWtlZmlsZS5pbgosIGxvY2FsL3NubXBjaGVjay5kZWYsIFRPRE86CgogICAtIEFkZGVkIGEgc2Vkc2NyaXB0IHdoaWNoIGlzIGJ1aWx0IGZyb20gY29uZmlnLmggYW5kIGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oCiAgICAgLSB1c2VkIHRvIGR5bmFtaWNhbGx5IGJ1aWxkIG1pYi50eHQgYW5kIGxvY2FsL3NubXBjaGVjay4KICAgCjE5OTUtMTItMjggMTA6MDEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAtIEFkZGVkIHNlZHNjcmlwdCB0byB0aGUgLmN2c2lnbm9yZSBmaWxlLgogICAKMTk5NS0xMi0yMCAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gRm91bmQgYW5kIGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHJvdXRpbmcgdGFibGUgbWliLgogICAKMTk5NS0xMi0yMCAwOTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX29wZW4gY2FsbHMgZ2V0c2VydmJ5bmFtZSBvbmx5IG9uY2Ugbm93LCBhdCB0aGUgcmVxdWVzdCBvZiBHYXJ5CiAgICAgSGF5d2FyZCA8Z2FoQGRpcmFjLmJlbGxjb3JlLmNvbT4uCiAgIAoxOTk1LTEyLTA1IDE1OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAoc25tcGNoZWNrKQogICAgIC0gTmV3IGZsYWc6ICAtZCwgZG9uJ3Qgc3RhcnQgY2hlY2tpbmcgYW55dGhpbmcuICBKdXN0IGJyaW5nIHVwIGludGVyZmFjZS4KICAgICAtIGNoZWNrIGZvciBibGFuayBvdXRwdXQgb2Ygc25tcGdldCBiZWZvcmUgcGFyc2luZyB3aXRoIHMvLy9nCiAgICAgICBjb25zdHJ1Y3RzLgogICAKMTk5NS0xMi0wNSAxNDo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKikgYWRkZWQgQUNfVFlQRV9QSURfVCB0byB0aGUgY29uZmlndXJlIGNoZWNrcwogICAKMTk5NS0xMi0wMSAxNjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gbG9jYWwvc25tcGNoZWNrOiAgICAgICAqbmV3IGZlYXR1cmVzKgogICAgIC0gaGFuZGxlcyBmYWlsZWQgc25tcHdhbGsvZ2V0L3NldHMgbXVjaCBtb3JlIGdyYWNlZnVsbHkgbm93CiAgICAgLSBuZXcgcHJlZmVyZW5jZTogIFlvdSBjYW4gcGljayB3aGF0IHR5cGVzIG9mIHByb2JsZW1zIHRvIGNoZWNrIGZvcgogICAgICAgLSAtZiBvbiB0aGUgY29tbWFuZCBsaW5lIG9ubHkgY2hlY2tzIGZvciBmaXhhYmxlIHByb2JsZW1zCiAgICAgLSBubyBsb25nZXIgcGluZzo6ZWNob3MgaG9zdHMgYmVmb3JlIGNoZWNraW5nIHRoZW0KICAgICAgIC0gaW5zdGVhZCByZWxpZXMgb24gJ05vIFJlc3BvbnNlJyB0eXBlIHJlcGxpZXMgZnJvbSBzbm1wd2Fsay9nZXQgdG8KICAgICAgICAgZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyB1cC4KICAgICAgIC0gcGluZyB0aGUgaG9zdCBpcyBzdGlsbCBhbiBvcHRpb24gKHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSBhbmQgbWVudXMpCiAgICAgLSBjb252ZXJ0ZWQgZnJvbSBUay1iNCB0byBUay1iOAogICAgIC0gQWRkZWQgYSBsb2dnaW5nIHdpbmRvdyBmb3IgZGVidWdnaW5nIGFuZCB0cmFja2luZyBvZiBhY3Rpb25zLgogICAgICAgLSBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICAtViBOVU0gIGluaXRpYWwgbG9nIHZlcmJvc2l0eSBsZXZlbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtTCAgICAgIHNob3cgdGhlIGxvZyB3aW5kb3cgYXQgc3RhcnR1cAogICAgIC0gTm93IHRyYW5zbGF0ZXMgbWliIG51bWJlcnMgaW50byBtb3JlIHJlYXNvbmFibGUgbmFtZXMKICAgCjE5OTUtMTEtMjAgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIC0gKHRyYXBub3RpZikgTG9ncyBuby1yZXNwb25jZSBlcnJvcnMuCiAgIC0gKHRyYXBub3RpZikgQmV0dGVyIHN0cmluZyBjaGVja2luZyAocXVvdGVzIGFsbCB2YXJpYWJsZXMgbm93KQogICAKMTk5NS0xMS0yMCAxNjowOSAgaGFyZGFrZXIKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsCiAgIG1raW5zdGFsbGRpcnM6CgogICAtIChhbGwgYXV0b2NvbmYgYnVpbHQgZmlsZXMpIFVwZGF0ZWQgZXZlcnl0aGluZyB0byBhdXRvY29uZiAyLjUKICAgCjE5OTUtMTEtMjAgMTY6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgCjE5OTUtMTEtMjAgMTY6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbikgQ2hlY2sgZm9yIC1sZWxmIGZvciBzb2xhcmlzIDIuMyBhbmQgeW91bmdlcgogICAtIChjb25maWd1cmUuaW4pIE1vcmUgc29sYXJpcyBzcGVjaWZpY3M6ICAtRFNWUjQKICAgLSAoY29uZmlndXJlLmluKSBDYWNoZXMgaW5pdGlhbCBwcm9tcHQgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc28geW91CiAgICAgd29uJ3QgYmUgYnVnZ2VkIHR3aWNlIGJ5IHRoZSBpbml0aWFsIHF1ZXN0aW9uLgogICAKMTk5NS0xMS0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIEZpbmQgYW5kIGZpeCBtZW1vcnkgbGVhayBzb21ldGltZQogICAKMTk5NS0xMS0yMCAxNjowNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBBZGRlZCBwb2ludGVyIHRvIHRoaXMgZmlsZSB2aWEgZnRwCiAgIAoxOTk1LTEwLTE3IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk1LTEwLTE3IDE3OjEwICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUtZmlsZXMgbmVlZHMgdG8gJ2NkJyB0byB0aGUgY29ycmVjdCBkaXJlY3RvcnkgZmlyc3QKICAgCjE5OTUtMTAtMTcgMTY6NTcgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIGFkZGVkIHRoZSByZW1vdmUtZmlsZXMgZXhwb3J0IGNvbW1hbmQKICAgCjE5OTUtMTAtMTYgMTc6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgT25lIGxhc3QgZWNobyAtbiB2cyBcYyBmaXgKICAgCjE5OTUtMTAtMTYgMTY6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHdhbGsuYzoKCiAgIC0gKGFwcHMpIGFsbCBhcHBzIHdlcmUgc3RpbGwgbG9va2luZyBpbiAvZXRjLyBmb3IgLmNvbmYgZmlsZXMKICAgCjE5OTUtMTAtMTYgMTY6NDEgIGhhcmRha2VyCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSkgZml4ZWQgXGMgdnMgLW4gZGVwZW5kZW5jeQogICAKMTk5NS0xMC0xNiAxNjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIHdhcyBzdGlsbCBsb29raW5nIGluIC9ldGMgZm9yIHR3byAuY29uZiBmaWxlcy4KICAgCjE5OTUtMTAtMTYgMTU6NTUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIEFkZGVkIGluZm8gcmVxdWVzdCB0byBib3R0b20gb2YgVE9ETwogICAKMTk5NS0xMC0xNiAxNTo1NSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSBDaGFuZ2VMb2cgdXBkYXRlCiAgIAoxOTk1LTEwLTE2IDE1OjA1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETykgbWFya2VkIGluc3RhbGwgYXMgZmluaXNoZWQgYW5kIHNvbGFyaXMgcG9ydCBhcyBjbG9zZQogICAKMTk5NS0xMC0xNiAxNTowMSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgTWFrZWZpbGUuaW4sIFJFQURNRSwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbgosIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZXMpIG1ha2UgaW5zdGFsbCBlY2hvcyB3aGF0IGl0cyBkb2luZyBpbiBhIG1vcmUgY2xlYXIgZmFzaGlvbgogICAtIChJTlNUQUxMKSBhZGRlZCBiZXR0ZXIgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBJTlNUQUxMIGZpbGUuCiAgIC0gKFJFQURNRSkgbWlub3Igd29yZGluZyBjaGFuZ2VzCiAgIAoxOTk1LTEwLTE2IDEzOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgbWFuLy5jdnNpZ25vcmUsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlcykgRmFpcmx5IGRlY2VudCAnbWFrZSBpbnN0YWxsJyBub3cgcG9zc2libGUuICBJbnN0YWxscwogICAgIGludG8gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgLS1wcmVmaXggZm9yIHRoZSAuL2NvbmZpZ3VyZSBzY3JpcHQuCiAgIC0gKGV4dGVuc2libGUuYykgY29uZmlnIGZpbGUgcmUtbG9jYXRpb246IG5vdyB1c2VzIHRoZSBTTk1QTElCUEFUSAogICAgIGRlZmluZWQgbG9vc2VseSBhcyAkKHByZWZpeCkvbGliL3NubXAvLgogICAKMTk5NS0xMC0xMyAxNTo0NCAgaGFyZGFrZXIKCiAgICogVE9ETywgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc3RhbXAtaCwgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIC1wIHBvcnQgdG8gLS1oZWxwIG91dHB1dAogICAtIChjb25maWcpIFNldHVwIHRvIHVzZSAtLXByZWZpeCB0byBsb29rIGZvciBjb25maWcgZmlsZXMuCiAgIAoxOTk1LTEwLTExIDE3OjMzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgbm93IHByb21wdHMgZm9yIGltcG9ydGFudCB2YWx1ZXMgdG8gYmUgcHV0IGluCiAgICAgY29uZmlnLmguICBTb21lIHRoaW5ncyBuZWVkIHRvIHVzZSAkKHByZWZpeCkgaW5zdGVhZCBob3dldmVyLgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pCiAgICAgKyBsaW5raW5nIHRvIC4uL3NubXBsaWIvbGlic25tcC5hIGluc3RlYWQgb2YgLi4vbGliL2xpYnNubXAuYSB0bwogICAgICAgcmVtb3ZlIGluc3RhbGwgcmVxdWlyZW1lbnQuCiAgICAgKyAgcHV0IC4uL2xpYi9saWJzbm1wLmEgaW4gYXBwbGljYXRpb24KICAgCjE5OTUtMTAtMDYgMTY6NDEgIGhhcmRha2VyCgogICAqIE5FV1MsIFRPRE86CgogICAtIChORVdTLy1UT0RPKSAtaC8tLWhlbHAsIC12Ly0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9ucwogICAKMTk5NS0xMC0wNiAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIFVzYWdlIG9mIC0taGVscCBhbmQgLS12ZXJzaW9uIHNob3VsZCB3b3JrIG5vdy4uLiAgR05VIHN0YW5kYXJkLgogICAKMTk5NS0xMC0wNiAxNjozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmM6CgogICAtIChwYXJzZS5jLCBzbm1wLmMpIGFkZGVkIGNvbmZpZy5oIHRvIHRoZSBsaXN0IG9mIGluY2x1ZGVzLgogICAKMTk5NS0xMC0wNiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIHR3byBuZXcgZmxhZ3M6CiAgICAgLWggZm9yIGhlbHAKICAgICAtdiBmb3IgdmVyc2lvbiBpbmZvcm1hdGlvbgogICAKMTk5NS0xMC0wNiAxMTozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSBNb3ZlZCBJTlNUQUxMQVRJT04gaW5zdHJ1Y3Rpb25zIHRvIElOU1RBTEwKICAgICAgICAgICAgICBDaGFuZ2VkIGxpc3Rpbmcgb2Ygc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKICAgICAgICAgICAgICBVcGRhdGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uCiAgIAoxOTk1LTEwLTA2IDExOjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKSBub3cgY2FjaGVzIG1vcmUgdmFsdWVzIChwcyBhcmdzLCBldGMpIGFuZAogICAgIGNoZWNrcyBmb3IgdGhlIGxvY2F0aW9uIG9mIHBzIChubyBsb25nZXIgYXNzdW1pbmcgdG8gYmUgL2Jpbi9wcykKICAgCjE5OTUtMTAtMDYgMTE6MjQgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIG1vdmVkIHRvIGhlcmUKICAgCjE5OTUtMTAtMDUgMTU6MjIgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIFRPRE8sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc3RhbXAtaC5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2tlcm5lbF9zdW5vczUuYywgYWdlbnQva2VybmVsX3N1bm9zNS5oLAogICBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gTW9yZSBTb2xhcmlzIHBvcnRpbmcuCiAgICAgLSBNb3N0IG1pYklJIGVudHJpZXMgbm93IHdvcmsuCiAgICAgICAgLSBIYXZlbid0IGNoZWNrZWQgcmV0dXJuZWQgaW5mb3JtYXRpb24gZm9yIGFjY3VyYWN5CiAgICAgLSBzeXNVcFRpbWUgc3RpbGwgZmFpbHMuCiAgICAgLSBjYyBhbmQgZ2NjIGJvdGggY29tcGlsZSBldmVyeXRoaW5nIG5vdy4KICAgCjE5OTUtMTAtMDMgMDk6NDIgIGhhcmRha2VyCgogICAqIHN0YW1wLWgsIHN0YW1wLWguaW46CgogICAoLmN2c2lnbm9yZSkgcmVtb3ZlZCBmaWxlcyBzdGFtcC1oIHN0YW1wLWguaW4gZmlsZXMgc2luY2UgbWFrZWZpbGUgbmVlZGVkIHRoZW0uCiAgIAoxOTk1LTEwLTAzIDA5OjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIChNYWtlZmlsZS5pbikgUmVtb3ZlZCAuL2NvbmZpZ3VyZSBhbmQgLi9jb25maWcuaC5pbiBmcm9tICJhbGw6IiBkZXBlbmRlbmNpZXMKICAgCjE5OTUtMTAtMDMgMDk6MzEgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICAoLmN2c2lnbm9yZSkgcmVtb3ZlZCBjb25maWcuaC5pbiBmcm9tIGN2cyBpZ25vcmUgbGlzdCAoYmFkIGJhZCkKICAgCjE5OTUtMTAtMDMgMDk6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgKGNvbmZpZy5oLmluKSBBZGRlZCBmaWxlLgogICAKMTk5NS0xMC0wMyAwOToyNCAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIChUT0RPKSBVcGRhdGUgb2YgdGhlIFRPRE8gbGlzdDogIGluY2x1ZGVkIHNubXB2MSBjb25maWcgaWRlYXMKICAgCjE5OTUtMTAtMDMgMDk6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAoYWNjb25maWcuaCkgTWlub3IgYnVnOiAgcmVjdXJzaXZlIGNvbW1lbnRzIG5vdCBjb3JyZWN0IGZvciBjb21waWxlcnMgKEFJWCkKICAgCjE5OTUtMDktMjkgMTM6NDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKSB1cGRhdGVkIHRoZSBuZXdzIGZpbGUuCiAgIAoxOTk1LTA5LTI5IDEzOjQxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgVE9ETywgYWNjb25maWcuaAosIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMsCiAgIGFnZW50Ly5jdnNpZ25vcmUsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hY2xfdmFycy5jCiwgYWdlbnQvYWxhcm0uYywgYWdlbnQvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L2V2ZW50LmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvdmlld19wYXJzZS5jCiwgYWdlbnQvdmlld192YXJzLmMsIGFwcHMvLmN2c2lnbm9yZSwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvLmN2c2lnbm9yZSwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2xfcGFyc2UuYwosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NvbnRleHQuYywKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYwosIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi92aWV3LmM6CgogICAtIHBvcnRlZCB0byBHTlUncyBhdXRvY29uZmlnMi40CiAgICAgLSB0byBpbnN0YWxsLCB5b3UgbXVzdCBub3cgcnVuIC4vY29uZmlndXJlIGZpcnN0IHRvIGdlbmVyYXRlIHRoZQogICAgICAgTWFrZWZpbGVzIGFuZCBjb25maWcuaAogICAgIC0gYWxtb3N0IGFsbCBvZiB0aGUgY29kZSBpcyBub3cgZHluYW1pY2FsbHkgY2hlY2tlZCBmb3IgcHJvYmxlbXMKICAgICAgIHJhdGhlciB0aGFuIGJlaW5nIGRlcGVuZGFudCBvbiBhcmNoaXRlY3R1cmUgbmFtZXMuCiAgIC0gc3lzdGVtIG5hbWUgbm93IGR5bmFtaWNhbGx5IGRldGVybWluZWQgYXQgcnVuIHRpbWUgKGZyb20gdW5hbWUgLW4pCiAgIC0gY3JlYXRlZCBhICdtYWtlIGRlcGVuZCcgY2FsbCAoZmluYWxseSkuCiAgIC0gKGFnZW50L3NubXBfdmFycy5oKSBjaGFuZ2VkIFNZU05BTUUgZGVmaW5lIHRvIFNZU1RFTU5BTUUgZGVmaW5lIHRvCiAgICAgYXZvaWQgYSBjb25mbGljdCB3aXRoIGEgc29sYXJpcyBoZWFkZXIgZmlsZS4KICAgLSBwcm90ZWN0aW5nIGJldHRlciBhZ2FpbnN0IGluY2x1ZGUgaGVhZGVyIGZpbGVzIHR3aWNlLgogICAtIE1vc3Qgb2YgcG9ydCB0byBTb2xhcmlzIDIuNCBmaW5pc2hlZC4gIFRoZSBrZXJuZWwgcmVhZHMgc3RpbGwgbmVlZCB3b3JrLgogICAKMTk5NS0wOS0yMSAwOToyOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgMy4wLjIuMSByZWxlYXNlIChjb21waWxhdGlvbiBidWcgZml4KQogICAKMTk5NS0wOS0yMSAwOToyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIChzbm1wbGliL21kNS5jKSBGb3Jnb3QgdG8gaW5jbHVkZSBzeXMvdHlwZXMuaCBmb3IgdV9sb25nIGRlZmluaXRpb24uCiAgIAoxOTk1LTA5LTE4IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICBOZXdzL0NoYW5nZWxvZyB1cGRhdGVzCiAgIAoxOTk1LTA5LTE4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBCZWdpbm5pbmdzIG9mIGEgbWFudWFsIHBhZ2UgZm9yIHNubXBkCiAgIAoxOTk1LTA5LTE4IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBNaW5vciBtb2RzIHRvIFJFQURNRSBmaWxlLgogICAKMTk5NS0wOS0wMSAxNDo1MiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIEFkZGVkIGEgTkVXUyBmaWxlIHRvIHJlcG9ydC9yZWNvcmQgbWFqb3IgY2hhbmdlcwogICAKMTk5NS0wOS0wMSAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMKOgoKICAgLSBGaXhlZCBhbHBoYSdzIGtlcm5lbCBsb29rdXBzOgogICAgICogQ01VIGNvZGUgd2FzIHBhc3NpbmcgaW50cyBpbnRvIGxzZWVrIChuZWVkcyBsb25nKS4KICAgCjE5OTUtMDctMzEgMTY6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIHNubXBjaGVjayBjaGFuZ2VzOgogICAgIC0gdGVybWluYWwgKGFzY2lpKSBiYXNlZCBzdXBwb3J0ZWQgZml4ZWQuCiAgICAgICAtIERldGVjdHMgcHJlc2VuY2Ugb2YgYSBESVNQTEFZIHZhcmlhYmxlLgogICAgICAgLSBOb3cgcmVxdWlyZXMgdGhlIFRlcm06OlJlYWRrZXkgcGFja2FnZS4KICAgICAgIC0gYXNrcyB1c2VycyB3ZWF0aGVyIHRvIGZpeCBwcm9ibGVtcwogICAgIC0gcmFpc2VzIGFuZCBkZWljb25pZmllcyB3aGVuIG5ldyBwcm9ibGVtcyBhcmUgZm91bmQKICAgICAtIHNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgbmV3IHByb2JsZW1zIHRvIHBpbmtpc2gKICAgICAtIG5ldyBwcmVmZW5jZTogIHBpbmcgaG9zdD8KICAgICAtIGdsb2JhbCBrZXkgYmluZGluZ3M6CiAgICAgICAgIGN0cmwtcSA9IHF1aXQ7IGN0cmwtaCA9IGhpZGU7IGN0cmwtcyA9IHNlZW4gYWxsCiAgIAoxOTk1LTA3LTI4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFlldCBtb3JlIHByb2JsZW1zIGZpeGVkIGluIHRoZSBhbHBoYSBwb3J0LgogICAgIC0tIG1vcmUgaW50IC0+IGxvbmcgY2hlY2tpbmcuCiAgIAoxOTk1LTA3LTI2IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcm91dGVfd3JpdGUuYwosIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9tZDUuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gQWRkZWQgYSBuZXcgI2RlZmluZTogRVhJVF9PTl9CQURfS0xSRUFEIHRvIGNvbmZpZy5oCiAgICAgSWYgZGVmaW5lZCwgYW5kIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nIHRoZSBrZXJuZWwgY29udGVudHMsCiAgICAgdGhlIGFnZW50IHdpbGwgZXhpdC4gIFRoaXMgd2FzIHRoZSBkZWZhdWx0LiAgSSB3YW50ZWQgaXQgdG8KICAgICBjb250aW51ZS4KICAgCiAgIC0gUG9ydCB0byBkZWMtYWxwaGEvT1NGIDMuMQogICAgIC0gYWxwaGEncyBsb25nIGlzIDggYnl0ZXMsIG5vdCA0LgogICAgIC0gc2hvdWxkIGJlIChtb3N0bHkpIDY0IGJpdCBjbGVhbiBub3cuCiAgICAgLSBjbGVhbmVkIHVwIGEgTE9UIG9mIGJ1Z3MgQ01VIGNvZGUgaW4gdGhlIHByb2Nlc3MuCiAgIAoxOTk1LTA3LTE0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2Vsb2cgdXBkYXRlCiAgIAoxOTk1LTA3LTE0IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBzbm1wY2hlY2sgKHRrLXBlcmwtYjQgc2NyaXB0KSBpcyBwcmV0dHkgc3RhYmxlIGF0IHRoaXMgcG9pbnQuICBJCiAgICAgbG9zdCBjdXJzZXMgc3VwcG9ydCwgYW5kIG5lZWQgdG8gcmUtYWRkIGl0IHN0aWxsLCBzbyBpdCBpcyBzdGlsbAogICAgIGJldGEuICBJdCBkb2VzIGV4cGVjdCBhIGxvZyBmaWxlIG9mIHByb2JsZW1zIHRvIGV4aXN0IChwb2ludCBpdCB0bwogICAgIC9kZXYvbnVsbCksIGFuZCBuZWVkcyB0byBrbm93IHRoZSBsb2NhdGlvbnMgb2YgdGhlIG1pYnMgdG8gY2hlY2sKICAgICAod2hpY2ggYXJlbid0IGNvbmZpZ3VyZWQgYnkgJ21ha2UnKSwgc28gaXQgbmVlZHMgc29tZSB3b3JrLgogICAgIEhvd2V2ZXIsIGl0IHdpbGwgcXVlcnkgYW4gYWdlbnQsIGNoZWNrIGl0cyBwcm9ibGVtcyBiYXNlZCBvbiB0aGUKICAgICBzdGF0dXMgb2YgdGhlIGVycm9yIGZsYWcgKG9yIHJldHVybiBjb2RlKSBiZWluZyA+MSBhbmQgcmVwb3J0IHRoZW0KICAgICB3aXRoIG5lYXQgR1VJLWJ1dHRvbnMgYW5kIHN0dWZmIChvaCB3b3cpLiAgTm8gZG9jdW1lbnRhdGlvbiBvbiBpdCB0aG91Z2guCiAgIAoxOTk1LTA3LTE0IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBGaW5pc2hlZCB0aGUgcmVzdGFydCBtaWIuICBUaGlzIGlzIGEgc2V0YWJsZSBzdWItbWliIG9mIHRoZSB2ZXJzaW9uCiAgICAgbWliLCBkZWZhdWx0IHRvIFZFUlNJT04uMTIoLjEpLiAgSWYgc25tcC1zZXQgdG8gJzEnLCBpdCB3aWxsIHJlc3RhcnQKICAgICB0aGUgYWdlbnQuCiAgIAogICAgICogIEEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGl0IHJlc3RhcnRzIDMgdGltZXMgb3Igc28sIHNpbmNlIGl0CiAgICAgICAgbmV2ZXIgcmV0dXJucyBhIHJlc3BvbmNlIHRvIHRoZSBwcm9ncmFtIGdlbmVyYXRpbmcgdGhlIHJlcXVlc3QuCiAgICAgICAgSWYgc2FpZCBwcm9ncmFtIHRyaWVzIHRvIHJlc2VuZCB0aGUgcmVxdWVzdCAod2hpY2ggbW9zdCBkbyksIGl0CiAgICAgICAgd2lsbCBBR0FJTiByZXN0YXJ0IHRoZSBhZ2VudC4uLiAgb2ggd2VsbC4KICAgCjE5OTUtMDctMTAgMTI6MzAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBNaW5vciBjb21tZW50IGNoYW5nZSBpbiBjb25maWcuaAogICAKMTk5NS0wNy0xMCAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFR3byBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6CiAgICAgLWwgTE9HRklMRSAgICAgICBPdXRwdXRzIHN0ZGVyci9vdXQgdG8gTE9HRklMRSAob3ZlcnJpZGVzIGNvbmZpZy5oIGRlZikKICAgICAtTCAgICAgICAgICAgICAgIERvIE5PVCB3cml0ZSB0byBhIGxvZyBmaWxlIChvdmVycmlkZXMgY29uZmlnLmgpCiAgIAoxOTk1LTA2LTIxIDA5OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBzbm1wbGliOgogICAgIEJ1ZyBmaXg6ICBmZHNldCAtPiAoaW50ICopIGZkc2V0IGluIHNlbGVjdCBjYWxsLgogICAKMTk5NS0wNi0yMSAwOToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZWQgZGVmYXVsdCBDQyB0byBjYyBhZ2Fpbi4KICAgCjE5OTUtMDYtMjEgMDk6MTggIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgZWNlLW1pYi5kZWY6CiAgIEJ1ZyBGaXg6CiAgICAgTG9hZGF2ZSBtaWI6ICBJbnRlZ2VyIC0+IERpc3BsYXlTdHJpbmcKICAgICB2ZXJzaW9uQ2xlYXJDYWNoZTogIC0+IHJlYWQtd3JpdGUgKHdhcyByZWFkLW9ubHkpCiAgIAogICBGZWF0dXJlOgogICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgogICAKMTk5NS0wNi0yMSAwOToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ2hhbmdlZCBhbm90aGVyICJlbXB0eSIgZXJyb3IgbWVzc2FnZSBpbiB0aGUgQ01VIGNvZGUgdG8gYSByZWFsIHdhcm5pbmcuCiAgIAoxOTk1LTA2LTE2IDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEhvdXNlIENsZWFuaW5nOgogICAgIE1pc3NlZCBhIFZFUlNJT05fSUQKICAgCjE5OTUtMDYtMTYgMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSG91c2UgQ2xlYW5pbmc6CiAgICAgVG9vayBvdXQgZ2NjL2Fuc2kgcmVxdWlyZW1lbnQgZm9yIHRoZSBhZ2VudC4KICAgICBwZXJyb3IoKSBpcyBjYWxsZWQgbW9yZSBmcmVxdWVudGx5IGZvciBsb2cgYXJjaGl2YWwKICAgCiAgIE5ldyBCdWcvSGF2ZW4ndCBzb2x2ZWQ6CiAgICAgSFAtVVg6ICBpZiBhZ2VudC8qLmMgYW5kIGFnZW50L2V4dGVuc2libGUvKi5jIGFyZSBidWlsdCB3aXRoIGdjYywKICAgCSAgRGlzcGxheVN0cmluZ3MgcmV0dXJuIGdhcmJhZ2UuICBObyBjbHVlIGFzIHRvIHdoeS4KICAgCjE5OTUtMDYtMTYgMTA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgc25tcGQuYzoKCiAgIEhvdXNlIGNsZWFuaW5nCiAgICAgLSBDb21waWxlcyBjbGVhbmx5IG9uIGhwdXgvZ2NjCiAgIAkoZXhjZXB0IG9uZSBpbmNsdWRlIGZpbGUgZXJyb3IgSSBkb24ndCBoYXZlIGNvbnRyb2wgb3Zlci4pCiAgICAgLSBDaGFuZ2UgVkVSU0lPTl9JRCAtPiBWRVJTSU9OSUQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggSFAncyBpbmNsdWRlcy4KICAgCjE5OTUtMDYtMTYgMTA6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgUmVtb3ZlZCAnZ21ha2UnIC0+ICdtYWtlJyBpbiBhZ2VudC9NYWtlZmlsZQogICAKMTk5NS0wNi0xNCAxNDowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgQVZBSUxBQklMSVRZIHNlY3Rpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMTk5NS0wNi0xNCAxMzo1NiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBSRUFETUU6CgogICBVcGRhdGVkIHRoZSBDaGFuZ2VMb2cKICAgQWRkZWQgYSAicmVhbCIgZGlzY2xhaW1lciB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIAoxOTk1LTA2LTE0IDEzOjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgIC0gQ3JlYXRlZCBhIG1haWxpbmcgbGlzdCB0byBoYW5kbGUgYW5ub3VuY2VtZW50cwogICAgICh1Y2Qtc25tcC1hbm5vdW5jZUBlY2UudWNkYXZpcy5lZHUpCiAgIAoxOTk1LTA2LTE0IDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gQ2xlYW5lZCB1cC9BZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gY29uZmlnLmgKICAgLSBHTE9CQUxTRUNVUklUWSBub3cgdXNlcyB0aGUgbGVmdCBtb3N0IGZvdXIgYml0cyBpbiB0aGUgTUlCIGFjbC4KICAgICBUaGlzIGlzIG1vcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBDTVUgY29kZSB0aGFuIHVzaW5nIHRoZSBsZWZ0IG1vc3QKICAgICAyLCB3aGljaCB3YXMgZG9uZSBwcmV2aW91c2x5LgogICAKMTk5NS0wNi0xNCAxMToyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBhZ2VudDoKICAgLSBNaWIgdGFibGUgaXMgbm93IHFzb3J0ZWQgYXQgcnVuIHRpbWUgYW5kIHRoZSBleHRlbnNpYmxlIHZhcmlhYmxlcyBhcmUKICAgICBzb3J0ZWQgaW4gYXQgdGhpcyB0aW1lLiAgVGhpcyBicmluZ3MgdGhlIGFnZW50IHVwIHRvIGNvcnJlY3QKICAgICBTTk1Qd2Fsay9nZXRuZXh0IHByb3RvY29scy4gIFlvdSBjYW4gbm93IHdhbGsgdGhlIGVudGlyZSB0cmVlCiAgICAgaW5jbHVkaW5nIHRoZSBleHRlbnNpYmxlIHNlY3Rpb25zIGFuZCBpdCB3b24ndCBzdG9wLgogICAgICogVGhpcyBoYXMgYW4gYWRkZWQgYm9udXMgb2YgY2hlY2tpbmcgdGhlIG1pYiB0YWJsZQogICAgICAgKGFnZW50L3NubXBfdmFycy5jKSBmb3IgY29ycmVjdCBvcmRlci4gIEkgaGF2ZSBhZGRlZCB0aGluZ3MgdG8gdGhlCiAgICAgICB3cm9uZyBsb2NhdGlvbiB0b28gbWFueSB0aW1lcyBhbmQgY2F1c2VkIHRoZSBhZ2VudCB0byBmdW5jdGlvbgogICAgICAgaW5jb3JyZWN0bHkuICBNYWpvciB3aW4uCiAgIAoxOTk1LTA2LTEyIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBsb2NhbC90cmFwbm90aWY6CiAgICAgLS0gdXNlcyBzbm1wdjIgbm93IChjb3JyZWN0bHkpCiAgIAoxOTk1LTA2LTA5IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ2hhbmdlZCB0ZXN0IC14IHRvIHRlc3QgLWYgaW4gc25tcGxpYi9NYWtlZmlsZS4gIE5vdCBhbGwgT1NlcwogICAgIChpZSB1bHRyaXgpIGhhbmRsZSB0aGlzLgogICAKMTk5NS0wNi0wOSAxMzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIEZpeGVkIEF1dGhlbnRpY2F0aW9uIGVycm9yIChhZ2FpbikgKGNvcnJlY3QgdGhpcyB0aW1lKSBiZXR3ZWVuCiAgICAgICAgIHJldmVyc2VkIGJ5dGUgb3JkZXIgbWFjaGluZXMuCiAgICAgLS0gICNpZmRlZiBocHV4L1NZU1Yvc3VuIGluIG1kNS5jIHJldmVyc2VzIGJ5dGUgb3JkZXIKICAgCjE5OTUtMDYtMDkgMTI6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBGaXhlZCBBdXRoZW50aWNhdGlvbiBlcnJvciBiZXR3ZWVuIHJldmVyc2VkIGJ5dGUgb3JkZXIgbWFjaGluZXMuCiAgICAgLS0gICNpZmRlZiBocHV4L1NZU1YgaW4gbWQ1LmMgcmV2ZXJzZXMgYnl0ZSBvcmRlcgogICAKMTk5NS0wNi0wOSAxMDoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBDb3JyZWN0bHkgb3JkZXJlZCB0aGUgbWliIHRhYmxlIGxpc3QuCiAgICAgLS0gIE5lZWQgdG8gd3JpdGUgYSBkeW5hbWljIGNoZWNrZXIvcmUtb3JkZXJlci4KICAgCjE5OTUtMDYtMDkgMTA6MjAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIEFkZGVkIGEgU05NUEJMT0NLIG9wdGlvbiB0byB0aGUgY29uZmlnLmggZmlsZS4gIFN1cHBvc2VkaWx5IHNldHRpbmcKICAgICB0aGlzIHRvIHplcm8gKG5vdyB0aGUgZGVmYXVsdCkgd2lsbCBhbGxvdyBzbm1wIHJlcXVlc3RzIHRvIHRpbWUgb3V0LgogICAgIEhhdmVuJ3QgdGVzdGVkIGl0IHRocm91Z2hseS4KICAgICAgIC0tIENvbnRyaWJ1dGVkIGJ5IFNhbmphaSBOYXJhaW4gPG5hcmFpbkB0aHVtcGVyLmJlbGxjb3JlLmNvbT4KICAgCjE5OTUtMDYtMDUgMTI6NDQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgUkVBRE1FLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICogYWdlbnQvZXh0ZW5zaWJsZS9NYWtlZmlsZToKICAgICAgIC0tICBubyBsb25nZXIgcmVxdWlyZXMgR05VIG1ha2UKICAgICAgIC0tICBldGFncyBubyBsb25nZXIgcnVuIGJ5IGRlZmF1bHQKICAgCiAgICogU3VuT1MgYWRkaXRpb25zOgogICAgICAgLS0gbG9hZGF2ZXJhZ2UgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgICAgIC0tIGRpc2sgY2hlY2tpbmcgTUlCIGVuYWJsZWQKICAgCjE5OTUtMDYtMDIgMTY6MjEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEZpbmFsIG1vZGlmaWNhdGlvbiBmb3IgaW5pdGFsIHJlbGVhc2UKICAgCjE5OTUtMDYtMDIgMTU6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgI2lmZGVmIGhwdXggYXJvdW5kIGhwdXggc3BlY2lmaWMgbWlicwogICAKMTk5NS0wNi0wMiAxNTozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIEVSUk9SKCkgZGVmaW5lIG5vdyBmbHVzaGVzIHN0ZG91dAogICAKMTk5NS0wNi0wMiAxNTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgTm93IHVzZXMgdjIgcmVxdWVzdCBwcm90b2NvbC4KICAgCjE5OTUtMDYtMDIgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByaW50cyBNSUIgdG8gc3Rkb3V0IGZvciBleGlzdGVudCBtaWJzCiAgIAoxOTk1LTA2LTAyIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIFNOTVBWMi9TTk1QVjJBVVRIIHR5cGUgYXV0aG9yaXphdGlvbi4KICAgCjE5OTUtMDYtMDIgMTU6MjcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBSZW9yZ2FuaXplZCBjb25maWcuaCBpbiBtb3JlIG9yIGxlc3Mgb3JkZXIgb2YgaW1wb3J0YW5jZQogICBBZGRlZCBkZWZpbml0aW9ucyBmb3IgU05NUFYyT05MWSB0eXBlIGF1dGhvcml6YXRpb24uCiAgIAoxOTk1LTA2LTAyIDE1OjI2ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIHJlbW92ZWQgYm9ndXMgdHdvIGxpbmVzCiAgIAoxOTk1LTA1LTMxIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE5ldzoKICAgCiAgICAgQWRkZWQgdHdvIG5ldyBBQ0wgdHlwZXM6ICBQUklWQVVUSFJXIGFuZCBQUklWQVVUSFJPIHdoaWNoIHdpbGwgb25seQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yayBpZiB0aGUgcmVxdWVzdCBpcyBhdXRoZW50aWNhdGVkIChieSBhbnl0aGluZykuCiAgIAoxOTk1LTA1LTMxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBOZXc6CiAgIAogICAgIEFkZGVkIC1mIG9wdGlvbiB0byBSRUFETUUKICAgCjE5OTUtMDUtMzEgMTQ6NDkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgTmV3OgogICAKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgCjE5OTUtMDUtMzEgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jLCBzbm1wZC5jOgoKICAgTmV3OgogICAKICAgICBOZXcgZGVmaW5pdGlvbiBpbmNsdWRlZCBmb3IgYSBkZWZhdWx0IHBsYWNlIHRvIGxvZyBtZXNzYWdlczogTE9HRklMRQogICAgIE5ldyBNSUI6ICBzbm1wRXJyb3JzIHRvIGxvZyBwcm9ibGVtcyB3aXRoIHRoZSBhZ2VudAogICAgIEZvcmtzIGF3YXkgZnJvbSBjYWxsaW5nIHNoZWxsIGJ5IGRlZmF1bHQgbm93IHVubGVzcyAtZiBzcGVjaWZpZWQuCiAgIAogICBNaXNjOgogICAKICAgICBJZmRlZnMgYXJvdW5kIGFsbCBhZGRlZCBzZWN0aW9ucyBvZiBjb2RlIHRvIGRpc2FibGUgZHVybmluZyBjb21waWxhdGlvbgogICAKMTk5NS0wNS0zMSAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIE5ldzoKICAgCiAgICAgTmV3IGRlZmluaXRpb24gaW5jbHVkZWQgZm9yIGEgZGVmYXVsdCBwbGFjZSB0byBsb2cgbWVzc2FnZXM6IExPR0ZJTEUKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgCiAgIEJ1Z3M6CiAgIAogICAgIGhwdXggY29tcGxpZXJzIGRvbid0IGRlZmluZSBTWVNWIGJ5IGRlZmF1bHQuLi4KICAgCjE5OTUtMDUtMTkgMTU6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBtZW51cyBhbmQgbW92ZWQgc29tZSBjb21tYW5kcyB0aGVyZSBhcyB3ZWxsIGFzIHByZWZyZW5jZXMuCiAgIE5vdyByZXNjYW5zIGFmdGVyIDUgbWludXRlcyBhbmQgY2hlY2tzIHRoZSBsb2cuCiAgIAoxOTk1LTA1LTE5IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBlZ3JlcGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggZm9yIGhvc3RzIG5vdy4KICAgCjE5OTUtMDUtMTkgMTU6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTW9yZSBkZWZpbmVzIG1vdmVkIHRvIGNvbmZpZy5oCiAgIAoxOTk1LTA1LTE5IDE1OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGVjZS1taWIuZGVmOgoKICAgV29ya2luZyB0b3dhcmQgYW4gZXhwb3J0YWJsZSB2ZXJzaW9uLgogICAKMTk5NS0wNS0xNyAxMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdvcmtpbmcgdmVyc2lvbi4KICAgICAtLSAgbm93IG9wZXJhdGVzIG9uIGEgc2VsZWN0aW9uCiAgICAgLS0gIHN0aWxsIGhhcyBhIGxvdCBvZiByb29tIGZvciBpbXByb3ZlbWVudC4KICAgCjE5OTUtMDUtMDggMTY6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBGYWlybHkgZnVuY3Rpb25pbmcgdmVyc2lvbi4KICAgTmVlZCB0byBwb3J0IHRvIHBlcmw1LjAwMSAmIHRrNGIzCiAgIAoxOTk1LTA1LTA1IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE9wcHMuICBTZXQgdHAtPm5hbWVsZW4gdG8gYmUgLTEsIHdoZW4gaXQgaXMgYSB1bnNpZ25lZCBjaGFyLiAgVXNpbmcgMCBub3cuCiAgIAoxOTk1LTA1LTA1IDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcF92YXJzLmMKOgoKICAgUmUtYXJyYW5naW5nIGFuZCBSZS1uYW1pbmcgc3R1ZmYgZm9yIGV4dGVybmFsIGRpc3RyaWJ1dGlvbgogICAKMTk5NS0wNS0wMyAxMzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNYWpvciBidWc6CiAgICAgQ2hhbmdpbmcgdHJlZSBzaXplIGNhdXNlZCBwcm9ibGVtcy4KICAgICBleHRlbnNpYmxlIHRyZWUgbm93IGFkZHMgYSBoYWx0IGNvbmRpdGlvbiAobmFtZWxlbiA9IC0xKSB0byBjaGVjayBmb3IKICAgCjE5OTUtMDUtMDMgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgcHJvdG90eXBlIGRlY2xhaXJhdGlvbiBmb3IgZmluZF9leHRlbnNpYmxlKCkKICAgCjE5OTUtMDUtMDMgMDk6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIENoYW5nZWQgdGltZW91dCB0byBiZSAzMCBzZWNvbmRzLgogICAKMTk5NS0wNS0wMyAwOToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvcnNubXA6CgogICBOZXcgc2NyaXB0OgogICAgIHdhbGtzIGFuIGV4dGVuc2libGUgKG9yIGFueSkgbWliIHRyZWUuICBIYXMgYnVpbHQgaW4ga25vd2xlZGdlIG9mCiAgICAgdGhlIG1pYnMgZm9yIGxheS1wZW9wbGVzIHVzZWFnZS4KICAgCjE5OTUtMDUtMDMgMDk6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBGaXhlZCBidWc6ICBVc2luZyBhIHdyb25nIHZhcmlhYmxlCiAgIAoxOTk1LTA1LTAzIDA5OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIGV4dGVuc2libGUgbWliIGVudHJ5LgogICAgIC0tIGZpbmRfZXh0ZW5zaWJsZSBub3cgcmV0dXJucyB0aGUgZGVmYXVsdCBtaWIgdHJlZSBvciBhbgogICAgICAgIGFwcHJvcHJpYXRlIG1pYiB0cmVlIHdpdGggdGhlIGNyZWF0ZWQgZXh0ZW5zaWJsZSBlbnRyeSBpbiBpdC4KICAgCjE5OTUtMDUtMDMgMDk6MTAgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgbG9hZCBhdmVyYWdlIG1pYiBlbnRyeQogICAKMTk5NS0wNC0xNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFN0YXJ0ZWQgd3JpdHRpbmcgYSBUayBpbnRlcmZhY2UuLi4gIENvZGUgaXMgc3RpbGwgdmVyeSB2ZXJ5IHVnbHksIGJ1dCB3b3Jrcy4KICAgCjE5OTUtMDQtMTcgMTI6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIE5vdyBsb2dzIGl0c2VsZiBjb3JyZWN0bHkuCiAgIAoxOTk1LTA0LTEzIDE0OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgZGVwZW5kYW5jeSBmb3Igd2VzL21pYmRlZnMuaCB0byBzbm1wX3ZhcnMuYwogICAKMTk5NS0wNC0wNyAxMjo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0tIFBvcnRlZCB0byBkZWMgNTAwMC8yMDAgVWx0cml4IDQuMiBhcmNoaXRlY3R1cmVzCiAgICAgICAgIFRPRE86ICBtZW1vcnkvc3dhcCBpbiB3ZXMuYwogICAKMTk5NS0wMy0zMSAxNTozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEJ1Z3M6CiAgICAgV2FzIGFjdGluZyBzbG93IHNpbmNlIGl0IHdhcyBjaGVja2luZyBlYWNoIG1pYiBsb2NhdGlvbiB0d2ljZS4KICAgICBSZW1vdmVkIHBlcmwgLXcgd2FybmluZ3MKICAgCjE5OTUtMDMtMTUgMTY6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBzbm1wY2hlY2sgaXMgbm93IHdyaXR0ZW4gdXNpbmcgcGVybDUncyBvYmplY3Qgb3JpZW50ZWQgcm91dGluZXMuCiAgIAoxOTk1LTAzLTE1IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDTVUgQnVnIGZpeGVzOgogICAgIC0tIGJldHRlciBqb2IgdGhhbiBteSBwcmV2aW91cyBoYWNrIGZpeGluZyBnZXRfdG9rZW4uCiAgICAgICAgKyBnZXRfdG9rZW4gbm93IHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQgZGljdGF0aW5nIHRoZSBtYXggc3RyaW5nCiAgICAgICAgICBsZW5ndGggdGhlIHRva2VuIGNhbiBob2xkLgogICAKMTk5NS0wMy0xNSAwOToyNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlZCBSRUFETUUuaHB1eCBmaWxlIGZyb20gSFAtcG9ydC0xLTEtMS4uLgogICAKMTk5NS0wMy0xNSAwOToyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHBlcmwgLT4gcGVybDUKICAgTm8gbG9uZ2VyIGRlcGVuZHMgb24gT1ZzIHNubXBzZXQsIGNhbiBub3cgdXNlIENNVXMgc25tcHNldCAoL3Vzci9sb2NhbC9ldGMpCiAgIAoxOTk1LTAzLTEwIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQWRkZWQgL2V0YyBhcyBhbm90aGVyIHBhdGggdG8gc2VhcmNoIHdoZW4gbG9va2luZyBmb3IgbWliLnR4dAogICAKMTk5NS0wMy0xMCAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgTWFqb3IgaGFja2luZyB0byBwYXJzZSgpIHRvIHdvcmsgYXQgYWxsLgogICAgIC0tIE5vdyBJIGRvbid0IHVuc3RhbmQgd2h5IGl0IGV2ZXIgc3VjY2Vzc2Z1bGx5IHBhcnNlZCB0aGUgbWliLnR4dCBmaWxlLgogICAgIC0tIGdldF90b2tlbiB3YXMgY29uc3RhbnRseSBjYWxsZWQgdG8gcmVhZCBERVNDUklQVElPTiBzdHJpbmdzIGludG8KICAgICAgICBhIGNoYXIgYXJyYXkgb2YgZWl0aGVyIDY0IChNQVhUT0tFTikgb3IgNDA5NiAoTUFYUVVPVEVTVFIpIGluCiAgICAgICAgbGVuZ3RoLiAgTUFOWSBvZiB0aGUgREVTQ1JJUFRJT04gc3RyaW5ncyBhcmUgbG9uZ2VyIHRoYW4gdGhpcy4KICAgICAtLSBIYWNrZWQgcGFyc2VRdW90ZWRTdHJpbmcgdG8gbWFrZSBzdXJlIHJldHVybmVkIGFyZSBzdHJpbmdzIDwgTUFYUVVPVEVTVFIKICAgCjE5OTUtMDMtMTAgMTM6MTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICAjaW5jbHVkZSA8c29ja2V0aW8uaD4gaXMgbm90IG5lZWRlZCBvbiBIUFVYCiAgIAoxOTk1LTAzLTEwIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICBBZGRlZCBzbm1wZ2V0bmV4dCBhbmQgc25tcHNldCB0byAuY3ZzaWdub3JlCiAgIAoxOTk1LTAzLTA5IDEzOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcGQuYywgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ01VIDIuMS4yIC0+IDIuMS4yLjEgTWVyZ2UuCiAgIAoxOTk1LTAzLTA4IDE2OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBtYW4vc25tcGJ1bGt3YWxrLjEsIG1hbi9zbm1wZ2V0LjEsIG1hbi9zbm1wZ2V0bmV4dC4xCiwgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEsCiAgIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuODoKCiAgIEluaXRpYWwgcmV2aXNpb24KICAgCjE5OTUtMDMtMDggMTY6MDYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXBkLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wc2V0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvaWYuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgbWFuL1JFQURNRSwgbWFuL3NubXB0ZXN0LjEsCiAgIG1hbi9zbm1wd2Fsay4xLCBtYW4vc25tcGJ1bGt3YWxrLjEsCiAgIG1hbi9zbm1wZ2V0LjEsIG1hbi9zbm1wZ2V0bmV4dC4xLAogICBtYW4vc25tcG5ldHN0YXQuMSwgbWFuL3NubXBzZXQuMSwKICAgbWFuL3NubXB0cmFuc2xhdGUuMSwgbWFuL3NubXB0cmFwZC44LAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FjbC5jLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmlldy5jLAogICBzbm1wbGliL3ZpZXcuaDoKCiAgIE5ldyByZWxlYXNlIG9mIENNVSdzIGNvZGU6CiAgICAgLS0gU2VlIFJFQURNRSBmb3Igc3BlY2lmaWMgZGV0YWlscwogICAgIC0tIHNubXBzZXQsc25tcGdldG5leHQgYWRkZWQKICAgICAtLSAtcSBmbGFnIGFkZGVkICJxdWljayBwcmludCIKICAgICAtLSBidWcgZml4ZXMKICAgICAtLSBNYW4gcGFnZXMgdXBkYXRlZAogICAKMTk5NS0wMy0wMiAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIE1pbm9yIGJhY2tzcGFjZSBjaGFuZ2VzLi4uCiAgIFJlbW92ZWQgLXcgc3dpdGNoIGZvciBwZXJsCiAgIAoxOTk1LTAzLTAyIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgRml4IGZyb20gVGltOiBjb3JyZWN0bHkgZmluZHMgcGlkIG5vdwogICAKMTk5NS0wMi0wOSAxMjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIHBlcmwgLXcgcHJvZHVjZXMgbm8gd2FybmluZ3Mgbm93IGlmIG5vIGNtZCBsaW5lIGFyZ3MgYXJlIGdpdmVuLgogICBBZGRlZCB0d28gbW9yZSBzdGF0dXMgaW5kaWNhdG9ycyAoc2xlZXBpbmcsIGNoZWNraW5nKSBmb3IgZml4IHJvdXRpbmUuCiAgIE5vdyBzbGVlcHMgZm9yIDIgc2Vjb25kcyBpbnN0ZWFkIG9mIDEgKG5vdCBxdWljayBlbm91Z2ggdG8gY2F0Y2ggWCByZXN0YXJ0cykKICAgCjE5OTUtMDItMDkgMTI6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICBDaGFuZ2VkIHBzIC1lbCB0byBwcyAtZTogIHBzIC1lbCByZXBvcnRlZCBYIGFzIGJlaW5nIGFsaXZlIGluc3RlYWQgb2YgPGRlZnVuY3Q+CiAgIAoxOTk1LTAyLTA4IDE1OjIwICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIGEgbWliIHRvIHByb3ZpZGUgY2FwYWJpbGl0eSBmb3IgaWdub3JpbmcgdGhlIGV4ZWMgY2FjaGUuCiAgICAgLS0gIE5lZWRlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgYSAnZml4JyB0byBjaGVjayB0byBzZWUgaWYgdGhlICdmaXgnIHdvcmtlZC4KICAgCjE5OTUtMDItMDggMTU6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBQb2tlcyB0aGUgcmVzZXQtY2FjaGUgbWliIHRvIGVuc3VyZSBhIG5ldyAncHMnIG91dHB1dCBmb3IgZml4ZWQgcHJvYmxlbXMuCiAgIAoxOTk1LTAyLTA4IDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgTmV3IG9wdGlvbnM6CiAgICAgLXk6ICBhbHdheXMgdHJ5IHRvIGZpeCB0aGUgcHJvYmxlbXMKICAgICAtbjogIG5ldmVyIHRyeSB0byBmaXggdGhlIHByb2JsZW1zCiAgIEN1cnJlbnRseSBkZWZhdWx0cyB0byBuZXZlciAoc2hvdWxkIHByb21wdCkgdGlsbCBJIGNhbiBnZXQgcGVybCdzCiAgICAgZ2V0YyhTVERJTikgdG8gd29yay4uLgogICBVc2VzIHNubXBzZXQgdG8gYWNjb21wbGlzaCB0aGlzLCB3aGljaCBpcyBPVnMgYW5kIG9ubHkgbGljZW5jZWQgZm9yIG9uZSBob3N0LgogICAKMTk5NS0wMi0wOCAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcGQuYzoKCiAgIEFkZGVkICdjbG9zZSBvbiBleGVjJyBmbGFncyB0byBvcGVuIGZpbGVzICgvZGV2LyptZW0qKSBhbmQgc29ja2V0cy4KICAgICAtLSAgUHJldmVudHMgc3Bhd25lZCBwcm9jZXNzZXMgZnJvbSBrZWVwaW5nIHNubXBkIGZyb20gcmVzdGFydGluZy4KICAgICAgICAgKEVycm9ycyB3ZXJlOiAgQ2FuJ3QgYmluZCBzb2NrZXQgKGluIHVzZSkgYW5kIENhbid0IG9wZW4gL2Rldi9kbWVtKQogICBTZXQgT19SRE9OTFkgZmxhZyBvbiAvZGV2LyptZW0qIGZpbGVzLCByZXF1aXJlZCBieSB0aGUgJ21hbiBwYWdlJyAoZWxzZSB1bmRlZikKICAgCjE5OTUtMDItMDMgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgQWRkZWQgd2VzL2V4ZWMubwogICAKMTk5NS0wMi0wMyAxMzo0OSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBtaWIgZGVmcyBmb3IgdGhlIHJlYWQvd3JpdGUgZml4IGZvciBwcm9jcyBhbmQgZXhlYyBmdW5jdGlvbnMKICAgCjE5OTUtMDItMDMgMTM6MzggIGhhcmRha2VyCgogICAqIGxvY2FsLzogZWNlLXNubXBkLmNvbmYsIGZpeHByb2MsIGZpeHByb2MuY29uZjoKCiAgIEFkZGVkIGZpeHByb2MgYW5kIGl0cyBkYXRhYmFzZSAoaW5zdGFsbGVkIGluIC9sb2NhbC9zY3JpcHRzIGFuZCAvbG9jYWwvZXRjKQogICBDb3BpZWQgdGhlIGN1cnJlbnQgL2V0Yy9lY2Utc25tcGQuY29uZiB0byB0aGlzIGRpcmVjdG9yeSwgZm9yCiAgIGFyY2hpdmluZy4KICAgCjE5OTUtMDItMDEgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfYWdlbnQuYzoKCiAgIEFkZGVkIHdyaXRlLW1pYiBhYmlsaXR5IHRvIGZpeCBhIGdpdmVuIHByb2Nlc3MKICAgICAtLSB3aWxsIGV2ZW50dWFsbHkgY2FsbCBUaW0ncyBzY3JpcHQgdG8gZml4IHRoZSBwcm9jZXNzCiAgICAgLS0gRGVmaW5lZCBpbiB3ZXMuaAogICAKMTk5NS0wMi0wMSAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXhlZCBNYWtlZmlsZSBidWc6ICBjYWxsZXMgJChNQUtFKSBub3cgaW5zdGVhZCBvZiBleHBsaWNpdCBtYWtlLgogICAKMTk5NS0wMS0zMCAxMzozMyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBWZXJzaW9uIGluZm9ybWF0aW9uIG5vdyBjb250YWlucyBhIENWUyB0YWcgaW5mbyBtaWIKICAgVkVSQ0RBVEUgbm93IHdvcmtzIHByb3Blcmx5LgogICAKMTk5NS0wMS0zMCAxMToxOSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCB2ZXJzaW9uIG1pYiB0byBkZWZpbml0aW9ucy4KICAgCjE5OTUtMDEtMzAgMTE6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIHNubXBfdmFycy5jOgoKICAgQWRkZWQgdmVyc2lvbiBtaWIgKFZFUklERU5ULFZFUkRBVEUsVkVSQ0RBVEUpCiAgIEFkZGVkIG1pYmluY2wuaCBhbmQgbWliZGVmcy5oIHRvIHN0YXJ0IHNwbGl0dGluZyB1cCBtaWJzIGluIHdlcy5jIGludG8KICAgICBzZXBlcmF0ZSBmaWxlcy4gIEluY2x1ZGUgdGhlc2UgdHdvIGZpbGVzIHRvIGluY2x1ZGUgbmVjZXNzYXJ5IGRlZnMKICAgRVJST1JNU0cgZGVmcyBub3cgQUxMIHJldHVybiBjdXJyZW50IG51bWVyaWNhbCByZXN1bHQgd2l0aCB0aGUgbXNnLgogICAKMTk5NS0wMS0yNyAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBQdXQgaW4gZGVmaW5lcyBmb3IgdGhlIHN1YiBtaWIgbnVtcyB7c25tcF92YXJzLmMsIHdlcy5ofQogICAKMTk5NS0wMS0yNyAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIHBhdGhzICgvdXNyL2xvY2FsL2V0YykgdG8gc25tcHtnZXQsd2Fsa30KICAgCjE5OTUtMDEtMjcgMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTWFkZSBubGlzdCBlbnRyeSBjaGFuZ2VzLiAgbm8gbG9uZ2VyIGRpZXMgZnJvbSBhIEFycFRhYmxlIHF1ZXJ5LgogICAKMTk5NS0wMS0yNyAxMjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBNb3ZlZCBrZXJuZWwvbmxpc3QgcHJpbnRvdXQgb2Ygbm90IGZvdW5kIG5saXN0IGVudHJpZXMgb3V0IG9mICNpZmRlZiBocHV4CiAgIAoxOTk1LTAxLTI3IDExOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNwcCBNaXN0YWtlIGZpeDogI2lmZGVmIEhQVVggLT4gI2lmZGVmIGhwdXgKICAgCjE5OTUtMDEtMjUgMTc6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUG9ydGVkIChiYWNrKSB0byBTdW40OgogICAgIC0tIHN3YXAgYW5kIGRpc2sgbWlicyBub3Qgc3VwcG9ydGVkIHlldAogICAgIC0tIGZvdW5kIG51bWVyb3VzIGJ1Z3MgSSBoYWRuJ3Qgbm90aWNlZCB1bmRlciBIUFVYLCBtb3N0bHkgdHlwZQogICAgICAgIGNhc3RpbmcuCiAgIAoxOTk1LTAxLTI1IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgU3dhcC9NZW1vcnkgbWliIGNoZWNrICguNCksIG5vdyB0aGF0IGl0IGNvbmZvcm1zIHRvIC57MSwyLDEwMCwxMDF9IHNwZWNzLgogICBDaGFuZ2VkIGZvcm1hdGluZyB0byB1c2UgJS1uLm5zIHNwZWNpZmljYXRpb25zIGluc3RlYWQgb2YgdGFiIHNlcGVyYXRpb25zLgogICAKMTk5NS0wMS0yMyAxNjowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQnVnIGZpeDogIFBvbGxlZCB3cm9uZyBtaWIgKDEwMCBpbnN0ZWFkIG9mIDEwMSkgZm9yIGVycm1zZyBzdHJpbmcuCiAgIAoxOTk1LTAxLTIzIDEyOjU3ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIFR5cG8gZml4ZXMgaW4gdGhlIG1pYiBkZWYgZmlsZSBmb3IgT1YuCiAgIAoxOTk1LTAxLTIzIDEyOjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV29uJ3QgY2hlY2sgZG93biBob3N0czotKQogICAKMTk5NS0wMS0yMyAxMDo1NyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBbGwgKHdhdGNoZWQpIG1pYnMgbm93IHVzZToKICAgICAxOiAgTUlCSU5ERVgsIGp1c3QgYW4gaW5kZXggdG8gdGhlIG51bWJlciBvZiB2YXJzCiAgICAgMjogIEVSUk9STkFNRSwgYSBnZW5lcmljIG9uZSB3b3JkIG5hbWUgZm9yIHRoZSBjYXVzZSBvZiBFUlJPUntGTEFHLE1TR30uCiAgIAoxOTk1LTAxLTIzIDEwOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBBZGRlZCAvMS9PVi9iaW4gdG8gdGhlIHBhdGggdG8gZmluZCB0aGUgc25tcCB1dGlscyB3aXRob3V0IHBhdGggZXh0ZW5zaW9ucy4KICAgTW9yZSB2YXJpYWJsZSB1c2FnZTogcmVtb3ZlZCB1c2Ugb2YgY29tbWFuZCBsaW5lIGFyZ3MgZGlyZWN0bHkuCiAgIElmIHRoZSBlcnJvciBmbGFnIGhhcyBjaGFuZ2VkIGJhY2sgdG8gbm9ybWFsLCBvbmx5IGxvZyBpdCBpbiB0aGUKICAgICBlY2UtdG90YWwgbG9nIGZpbGUgaW5zdGVhZC4KICAgCjE5OTUtMDEtMjMgMTA6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXaWxsIHRha2UgaG9zdHMgZnJvbSB0aGUgbG9nIGZpbGUgaWYgbm9uZSBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KICAgICAtLSAgb3IgaWYgdGhlIGZpcnN0IGFyZyBpcyBhICctYScgd2lsbCAoQSlkZCB0byB0aGUgY29tbWFuZCBsaW5lIGxpc3QuCiAgIERpc3BsYXlzIHdoYXQgaG9zdCBpdCBpcyBjaGVja2luZyBhcyBpdCBjaGVja3MgaXQuCiAgIENoYW5nZWQgdGhlIG91dHB1dCBmb3JtYXQgKEkndmUgeWV0IHRvIHNlZSBpZiBpdCBhY3R1YWxseSBsb29rcyBnb29kIHRob3VnaCkuCiAgIAoxOTk1LTAxLTE4IDE1OjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQmVnaW5uaW5nIG9mIGEgc2NyaXB0IHRvIGNoZWNrIGVycm9ycyB3aXRoIGEgbWFjaGluZSBhbmQgcmVwb3J0IHRoZW0KICAgICB2aWEgc25tcAogICBUT0RPOiAgb3B0aW9uIHRvIGZpeCB0aGUgZXJyb3JzIGlmIHJvb3Qgb24gY2xvdmVyIChuZWVkIHRvIHJzaCB0byB0aGUgbWFjaGluZSkKICAgCjE5OTUtMDEtMDUgMTQ6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIENoYW5nZWQgdGhlIHRyYXBub3RpZiBmaWxlIHRvIHJlZmxlY3QgcmVjZW50IHNvdXJjZSBjaGFuZ2VzOgogICAgIC0tIHJlbW92ZWQgbWVtIGVycm9yIHNlY3Rpb24uLi4gIFRoZXkgYXJlIGhhbmRsZWQgdmlhIHRoZSBub3JtYWwgZXJyCiAgICAgICAgcm91dGUgc2luY2UgdGhleSBub3cgaGF2ZSBhbiBlcnJvciBtc2cgbGlrZSB0aGUgcmVzdAogICAgIC0tIEVycm9yIGZsYWcgaXMgbm93IGF0IDEwMCwgYW5kIGVycm9yIG1lc3NhZ2UgaXMgYXQgMTAxLgogICAKMTk5NS0wMS0wNSAxNDo0NSAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBDaGFuZ2VkIHRoZSBtaWIgZmlsZSB0byByZWZsZWN0IHRoZSBjdXJyZW50IHNvdXJjZSBjb2RlLgogICBBbGwgbWlicyBub3cgaGF2ZSBFcnJvckZsYWcgYW5kIEVycm9yTXNnIGFzIDEwMCwxMDEKICAgCjE5OTUtMDEtMDUgMTQ6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogdHJhcG5vdGlmLCB3ZXNyZXN0YXJ0OgoKICAgY29waWVkIHRoZSByZXN0YXJ0IGFuZCB0cmFwbm90aWYgc2NyaXB0cyB0byB0aGUgc3JjIHRyZWUgZm9yIGN2cyBhcmNoaXZpbmcuCiAgIAoxOTk1LTAxLTA0IDE2OjMyICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEluaXRpYWwgcmVsZWFzZS4KICAgTmVlZHMgdG8gYmUgdXBkYXRlZC4KICAgCjE5OTUtMDEtMDQgMTY6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvOiAuY3ZzaWdub3JlLCBzbm1wbmV0c3RhdC8uY3ZzaWdub3JlOgoKICAgSnVzdCBhIC5jdnNpZ25vcmUgZmlsZQogICAKMTk5NS0wMS0wNCAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiAuY3ZzaWdub3JlLCBzbm1wX3ZhcnMuYzoKCiAgIEZlYXR1cmU6CiAgICAgQWRkZWQgdGhlIGRpc2sgd2F0Y2hpbmcgZmFjaWxpdGllcyB0byByZXBvcnQgZGlzayBzcGFjZQogICAgICAgLS0gbmV3IGNvbmZpZyBvcHRpb24gJ2Rpc2sgRElTSyBNSU5BVkFJTCcKICAgICBBZGRlZCBzdXBwb3J0IGZvciBhIHNlY29uZCBjb25maWcgZmlsZSBhcyBDT05GSUdGSUxFVFdPCiAgICAgICAtLSBkZWZhdWx0cyB0byAvZXRjL2VjZS1zbm1wZC5sb2NhbC5jb25mCiAgICAgICAtLSBpbnRlbnQ6ICBvbmUgaXMgcmRpc3RlZCBhbmQgb25lIGlzIG1hY2hpbmUgc3BlY2lmaWMKICAgICAgIC0tIFRPRE86ICBOZWVkcyB0byBlcmFzZSBwcmV2aW91cyBkZWZpbml0aW9ucyByYXRoZXIgdGhhbiBhZGRpbmcKICAgICAgICAgIHR3byB3aXQgdGhlIHNhbWUgbmFtZQogICAKICAgQ2hhbmdlOgogICAgIE1JQiBkZWZpbml0aW9uIGNoYW5nZToKICAgICAgIC0tIEFsbCBtaWJzIHdpdGggZXJyb3IgZmxhZ3Mgbm93IHVzZSBFUlJPUkZMQUcvRVJST1JNU0cgaW5zdGVhZC4KICAgICAgIC0tIFRoZXNlIGRlZmF1bHQgdG8gMTAwIGFuZCAxMDEsIGFuZCBhcmUgc2V0IGJ5IG9ubHkgdHdvIGRlZmluZXMKICAgICBTaG9ydGVuZWQgZXJyb3IgbWVzc2FnZSBmb3IgcHJvY2VzcyBlcnJvcnMgdG8gZml0IG9uIHRoZSBzY3JlZW4uCiAgICAgU3dhcCBtaWIgY29kZSBjbGVhbnVwCiAgIAogICBUT0RPOgogICAgIEFkZGVkIGJlZ2lubmluZ3Mgb2Yga2VybmFsIGxvY2tpbmcgdGVzdHMuICBOZWVkIHRvIGZpbmQgYSBtYWNoaW5lCiAgICAgd2l0aCBhIGJyb2tlbiBycGMubG9ja2QgdG8gdGVzdCB0aGUgY29kZSB0aG91Z2guCiAgIAogICBCdWdzOgogICAgIE15IG5saXN0IGFycmF5IGRpZG4ndCBoYXZlIGEgTlVMTCBlbmRpbmcuCiAgIAoxOTk0LTEyLTE0IDE3OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgUkVBRE1FIGZpbGUKICAgCjE5OTQtMTItMTQgMTc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaHB1eC5jOgoKICAgQWRkZWQgaHB1eC5jCiAgIAoxOTk0LTEyLTE0IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHBhcnR5X3BhcnNlLmMsIHNubXBfY2xpZW50LmMKOgoKICAgSFAtVVggcG9ydCBvZiB0aGUgQ01VIGNvZGUKICAgCjE5OTQtMTItMTQgMTU6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBSRUFETUUuY211LCBtaWJJSS50eHQsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL2FzbjEuaCwKICAgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX2ltcGwuaCwgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgKLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvdmlldy5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oCiwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL21kNS5oLCBzbm1wbGliL3ZpZXcuaCwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wZ2V0LmMsIHNubXBsaWIvLnB1cmUKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXBfYXBpLjMKLCBtYW4vc25tcHRlc3QuMSwgbWFuL3NubXB3YWxrLjEsCiAgIG1hbi92YXJpYWJsZXMuNSwgbWFuL1JFQURNRSwgbWFuL2Rlcy4xCiwgbWFuL2Rlcy4zOgoKICAgSW5pdGlhbCBDTVUgc25tcCBjb2RlLCB2ZXJzaW9uIDIuMS4yCiAgIAoxOTk0LTEyLTE0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgbWliSUkudHh0LAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jCiwgc25tcGxpYi9hc24xLmgsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuaAosIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsIHNubXBsaWIvc25tcF9hcGkuaAosIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi92aWV3LmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi92aWV3LmgsIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGdldC5jCiwgc25tcGxpYi8ucHVyZSwgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi9zeXN0ZW0uaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wX2FwaS4zLAogICBtYW4vc25tcHRlc3QuMSwgbWFuL3NubXB3YWxrLjEsIG1hbi92YXJpYWJsZXMuNSwKICAgbWFuL1JFQURNRSwgbWFuL2Rlcy4xLCBtYW4vZGVzLjM6CgogICBJbml0aWFsIHJldmlzaW9uCiAgIAoxOTk0LTExLTE4IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLAogICBzbm1wZC5jOgoKICAgQWRkZWQgc29tZSBocC1taWJzCiAgIAoxOTk0LTExLTA0IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIFZpcnR1YWwgTWVtb3J5IG1pYiAoY3VycmVudGx5IG9ubHkgdG90YWwgYW5kIHVzZWQpCiAgIAoxOTk0LTEwLTI4IDEzOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgaHAtdXggbWFjaGluZXMgbm93IHJldHVybiB0aGUgY29ycmVjdCBtaWIgbG9jYXRpb24gZm9yIHRoZWlyIGFyY2ggdHlwZS4KICAgQWRkZWQgaHAtdXggdG8gdGhlIGlmZGVmcyBmb3IgUm91dGVfU2Nhbl9SZWxvYWQoKSBmdW5jdGlvbiBmb3IgY29ycmVjdAogICAgICBrZXJuYWwgcmVhZGluZy4KICAgCjE5OTQtMTAtMjYgMTM6MzEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcGFydHlfdmFycy5jLCBzbm1wX3ZhcnMuYzoKCiAgIERlYyBjb21waWxhdGlvbiBhY2hpdmVkLCB0aG91Z2ggaXRzIG5vdCBvcGVuaW5nIGFueSBwb3J0cyB3aGVuIHJ1bi4KICAgCjE5OTQtMTAtMjQgMTQ6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQWRkZWQgdGhlIGV4dGVuc2libGUgbWliIHNlY3Rpb24uCiAgIAoxOTk0LTEwLTIwIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYywgdmFyX3N0cnVjdC5oOgoKICAgQWRkZWQgdGhlIHJlbWFpbmluZyBocC11eCBzeW1ib2xzCiAgIHB1dCBhbGwgZGVwZW5kYW5jaWVzIGZvciBteSBzdHVmZiB1bmRlciB3ZXMvCiAgIG1vdmVkIHRoZSB2YXJpYWJsZSBkZWNsYWlyYXRpb25zIChzdHJ1Y3RzKSB0byB2YXJfc3RydWN0cy5oIHNvIHRoZXkgY291bGQgYmUKICAgcmVmZXJlbmNlZCBieSBvdGhlciBmaWxlcy4KICAgQ2hhbmdlZCB0aGUgZGVmYXVsdCB2YWx1ZXMgdG8gaHAtdXggZnJvbSBCU0QgYW5kIG90aGVyIG1pc2Mgc3RyaW5ncwogICBBZGRlZCBhcHByb3ByaWF0ZSBkZXBlbmRhbmNpZXMgdG8gdGhlIG1ha2VmaWxlCiAgIENoYW5nZWQgZXJyb3JzIGFuZCBhZGRlZCBzdHVmZiB0byB0aGUgdmFyaWFibGUgZGVjbGFpcmF0aW9ucyBmb3IgbXkgc3R1ZmYKICAgCjE5OTQtMTAtMTQgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGtlcm5lbC5jLCBzbm1wX3Zhcl9yb3V0ZS5jCiwgc25tcF92YXJzLmM6CgogICBmaXhlZCBubGlzdCBmb3IgdGhlIGhwcy4gIE5vdCBzdXJlIG9mIHRocmVlIHBhcnRpY3VsYXIgbmxpc3QKICAgcmVmZXJlbmNlcyAoZm9yIHRoZSBhcnAgdGFibGUpLiAgVGhlIHJlc3QgYXJlIHdvcmtpbmcuCiAgIEFsc28gYWRkZWQgd2VzLyogZG8gdGhlIGRlcGVuZGFuY2VzIGZvciBzbm1wX3ZhcnMuYwogICAKMTk5NC0xMC0xNCAwODozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF92YXJzLmM6CgogICBJIGZpeGVkIHRoZSBzb3VyY2UgZm9yIGNvbXBpbGF0aW9uIGFuZCBiZWdhbiBhZGRpbmcgbXkgb3duIG1pYiBkZWZzLgogICBBbnkgaW5jbHVkZWQgbWlicyB3aGljaCBtYWtlIGtlcm5hbCByZWFkcyBzdGlsbCBmYWlsLgogICAKMTk5NC0xMC0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgaGlzdG9yeS5oLCBrZXJuZWwuYwosIHNubXBfYWdlbnQuYywgc25tcF92YXJfcm91dGUuYywKICAgc25tcF92YXJzLmgsIHNubXBkLmMsIGFsYXJtLmMsCiAgIGV2ZW50LmMsIGhpc3RvcnkuYywgcGFydHlfdmFycy5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzX2V2ZW50LmgsIHZpZXdfdmFycy5jCiwgYWNsLmNvbmYsIGFjbF92YXJzLmMsIGFsYXJtLmgKLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuaCwgbTJtLmgKLCBzbm1wX3ZhcnNfbTJtLmgsIHZpZXdfcGFyc2UuYywgLnB1cmUKLCByb3V0ZV93cml0ZS5jOgoKICAgSW5pdGFsIENNVSBzb3VyY2UuCiAgIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuOCAtPiBWNS4wLjkKCjIwMDMtMDktMDUgMjM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDktMDUgMjM6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZm9yZ290IGEgdGVzdCBhZnRlciB0aGUgaWYKICAgCjIwMDMtMDktMDUgMjM6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZGVkIEJvYiBSb3dsYW5kcwogICAKMjAwMy0wOS0wNSAyMzozMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zCiwgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMwosIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMKLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zCiwgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF90b2RvLjMsCiAgIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG94eWdlbiB1cGRhdGUKICAgCjIwMDMtMDktMDUgMjM6MjUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjkKICAgCjIwMDMtMDktMDUgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzgwMDU2MSBmcm9tIEJvYiBSb3dsYW5kcyB0byBmaXggNjRiaXQgcHJvYmxlbXMgKC0+IHNpemVfdCkKICAgCjIwMDMtMDktMDUgMjI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgUGF0Y2ggIzgwMDQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgNjQgYml0IGFnZW50eCBwcm9ibGVtcwogICAKMjAwMy0wOS0wNSAyMjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBQYXRjaCAjNzkyMDA4IGZyb20gVGhvbWFzPyB0byBhbGxvdyB1c21Vc2VyIHRva2VucyB0byBvdmVycmlkZSBwcmV2aW91cyBlbnRyaWVzCiAgIAoyMDAzLTA5LTA1IDIyOjA0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBtaWIyYy4xLmRlZiwgc25tcGNtZC4xLmRlZiwKICAgc25tcGRlbHRhLjEsIHNubXBkZi4xLCBzbm1wbmV0c3RhdC4xLAogICBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMS5kZWYsCiAgIHNubXB0ZXN0LjEuZGVmLCBzbm1wdHJhbnNsYXRlLjEuZGVmOgoKICAgUGF0Y2ggIzc4OTQ4NSBmcm9tIEJvYiBSb3dsYW5kcyBmb3IgYSBsb25nIG5lZWRlZCBvdmVyaGF1bCBvZiB0aGUgbWFudWFsIHBhZ2VzLgogICAKMjAwMy0wOS0wNSAyMjowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBvbmUgcnVuLWF3YXkgcGF0Y2gKICAgCjIwMDMtMDktMDUgMjE6NTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFyc2UuYzoKCiAgIGhpZ2ggbGV2ZWwgY29tbWVudHMgYWJvdXQgY29udGFpbmVkIGNvcHlyaWdodHMgbW92ZWQgZnJvbSB0aGUgbWFpbiBicmFuY2gKICAgCjIwMDMtMDktMDUgMjE6NTQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciB1cGRhdGVzCiAgIAoyMDAzLTA5LTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgQWRkIG9wdGlvbmFsIGFyZ3VtZW50cyB0byB0aGUgLS13aXRoLXBlcmwtbW9kdWxlcyBmbGFnIGZvciBwYXNzaW5nIGRvd24KICAgCjIwMDMtMDktMDUgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBhIGdldGJ1bGsgYnVnIHBvaW50ZWQgb3V0IGJ5IEp1cmlqIFNtYWtvdi4KICAgCjIwMDMtMDctMjcgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBmaWxlbmFtZSBpbiBlcnJvciBtc2csIGFzIG5vdGVkIGluIGNvZGVycwogICAKMjAwMy0wNy0yNCAxODoxNCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkIGFjY2VzcyB0byBhdWdtZW50cyB0YWcgKGZpeCBidWcgNzQwMDgyOiBtaWIyYyBoYW5kbGVzIEFVR01FTlRpbmcgdGFibGVzCiAgIGluY29ycmVjdGx5KQogICAKMjAwMy0wNy0yNCAxODoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGluZGV4ZXMgZnJvbSBhdWdtZW50ZWQgdGFibGUgZm9yIHRhYmxlcyB1c2luZyBhdWdtZW50cyAoZml4CiAgIGJ1ZyA3NDAwODI6IG1pYjJjIGhhbmRsZXMgQVVHTUVOVGluZyB0YWJsZXMgaW5jb3JyZWN0bHkpCiAgIAoyMDAzLTA3LTI0IDA1OjI3ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGRlZmluZSBORVRTTk1QX0lOTElORSBhcyBlbXB0eSBpZiBub3QgZGVmaW5lZAogICAKMjAwMy0wNy0xMCAwOTozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB0eXBvOyB1c2Ugd2hpY2ggdG8gZmluZCBzY3A7IGFkZCBleHRyYSBjb25maWcgdG8gb3RoZXIgY29uZmlnCiAgIAoyMDAzLTA3LTA5IDIwOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIGhvc3QvcGF0aCB1cGxvYWQ7IHRyeSB0byBleHRyYWN0IG1vcmUgaW5mbyBmcm9tIG1ha2UgbG9nIG9uIGVycm9yCiAgIAoyMDAzLTA3LTA5IDIwOjU0ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlLCBuc2ItbmlnaHRseToKCiAgIGFkZCBob3N0L3BhdGggdXBsb2FkIHBhcmFtczsgdXNlIG5ldyBuc2ItZGVmYXVsdC1wYXRocwogICAKMjAwMy0wNy0wMyAyMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfbGlzdF9zc2xsLmMsIGNvbnRhaW5lcl9udWxsLmMKOgoKICAgb29wcyAtIG5vIG5ldyBmZWF0dXJlcyBmb3IgNS4wLjgKICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX2xpc3Rfc3NsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9udWxsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBjb250YWluZXJfbGlzdF9zc2xsLmMsIGNvbnRhaW5lcl9udWxsLmMKOgoKICAgbmV3IGNvbnRhaW5lcnMKICAgCjIwMDMtMDctMDIgMTM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmaXggbmV0c25tcF9zdWJ0cmVlX3VubG9hZCgpIHRvIHVwZGF0ZSB0aGUgcm9vdCBwb2ludGVyCiAgIAoyMDAzLTA3LTAyIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsIHNubXBsaWIvcGFyc2UuYwo6CgogICBQYXRjaCAjNzYwNDQ4IGZyb20gQm9iIFJvd2xhbmRzL1N1biB0byBmaXggYnVnICM3NTE5MTMgdG8gcHJvdGVjdCBhIGZldyBtaW5vciBzZWN1cml0eSB2aW9sYXRpb25zCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIGZpbGUgc3RybGNweS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTA6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wZC5jLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIFBhdGNoICM3NjA0MTcgZnJvbSBCb2IgUm93bGFuZHMvU3VuIGZvciBmaXhpbmcgQnVnICM3NTE5MjAgZm9yIG1pbm9yIHNlY3VyaXR5IHByb2JsZW1zIChQSUQgZmlsZSB1bmxpa2VkIGZpcnN0LCBhbmQgdXNlIHN0cmxjcHkgaW5zdGVhZCBvZiBzdHJjcHkuICBBIG5ldyBzdHJsY3B5IGZpbGUgd2FzIGRlZmluZWQgaWYgbm90IGRlZmluZWQgZm9yIGEgc3lzdGVtLgogICAKMjAwMy0wNy0wMiAxMDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGRvbid0IHVzZSBpc3NwYWNlIGFuZCBpc3ByaW50IHNpbXVsdGFuaW91c2x5CiAgIAoyMDAzLTA3LTAyIDEwOjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBjb21tZW50IGNoYW5nZSBmb3IgY2xhcmlmaWNhdGlvbgogICAKMjAwMy0wNy0wMiAxMDoyNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIFBhdGNoICM3NjQwNDcgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogUmVtb3ZlIHJlZHVuZGFudCBkZWNsYXJhdGlvbiBmcm9tIHNubXBfZGVidWcuaCBhbmQgZml4IGEgZmV3IGNvbW1lbnRzCiAgIAoyMDAzLTA3LTAyIDEwOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICM3NTkzMDkgZnJvbSBTdGVwaGVuIEZyaWVkbCB0byBhZGQgcHJvbXB0IG92ZXItcmlkZSBmbGFnIGRlc2NyaXB0aW9ucyB0byBwcm9tcHQgb3V0cHV0CiAgIAoyMDAzLTA3LTAyIDEwOjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM3NTkyOTg6IGZpeCBzcGVsbGluZyBlcnJvcgogICAKMjAwMy0wNi0yNSAxNDoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIGZpeCBwcm94eWluZyBmb3IgZ2V0YnVsawogICAKMjAwMy0wNi0yMiAwNzoyMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IHVzYWdlIGZvciBmbGFnIG9yZGVyaW5nCiAgIAoyMDAzLTA2LTE2IDE0OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29tbWVudCBhYm91dCBpdCBiZWluZyBicm9rZW4sIGFzIHBvaW50ZWQgb3V0CiAgIGJ5IEJydWNlLgogICAKMjAwMy0wNi0xNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHN1cHBvcnQgLCBzZXBhcmF0ZWQgYXJndW1lbnRzIHRvIC1UIGxpa2UgLWggc2F5cyBpdCB3aWxsLgogICAKMjAwMy0wNi0xNiAxNDo1NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEJydWNlIFNoYXcncyBwYXRjaCA3NTU1NTMgdG8gZml4IFJVTlRFU1RTIHRlc3QgbnVtYmVyIHJlcG9ydGluZyB3aGVuCiAgIHRlc3Rpbmcgc3Vic2V0cyBhcmUgdXNlZC4KICAgCjIwMDMtMDYtMTYgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NTU1NDAgZnJvbSBCcnVjZSBTaGF3IGFuZCBJUkM6U2ViTm9iIHRvIGZpeCBidWcgIzcwMTQzOSBmb3IgNjQgYml0IHNvbGFyaXMgc3lzdGVtcyBhbmQgNjQgYml0IGludGVnZXJzIHJldHVybmVkIGJ5IGdldEtzdGF0CiAgIAoyMDAzLTA2LTE2IDE0OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIFBhdGNoICM3NTQxMDUgZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBzb21lIHNwZWxsaW5nIGVycm9ycwogICAKMjAwMy0wNi0xMCAxNTo0OCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEJld2FyZSBvZiBkZXJlZmVyZW5jaW5nIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAzLTA2LTEwIDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIHVudXNlZCBmdW5jdGlvbiBhcyBwb2ludGVkIG91dCBieSBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDYtMDkgMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIExvbmcgb3ZlcmR1ZSBwYXRjaCAjNjk1MTkyIGZyb20gUm9uIFRhYm9yIHRvIGZpeCB0aGUgVkFDTSBzcGlubmluZyBwcm9ibGVtIHRoYXQgSSBkaWRuJ3QgcXVpdGUgZml4IGJlZm9yZQogICAKMjAwMy0wNi0wOSAxNjowMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMKLCB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVM6CgogICBmaXggYnVnICM3MDY3MTAgdG8gc2hvdyB3aGVuIHByaXZhY3kgaGFzIGJlZW4gZGlzYWJsZWQKICAgCjIwMDMtMDYtMDkgMTU6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJ1ZyAjNzQ4NDMxIGZyb20gSm9obiBTaGl2ZXI6IGZpeCB0aHJlYWQtc2FmZSBwcm9ibGVtcyB3aXRoIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uICh3aGljaCB3YXMgbWlzc2luZyBpbiB0aGUgNS54IGxpbmUgYW55d2F5KQogICAKMjAwMy0wNi0wOSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLk1hdHN1c2hpdGEudHh0LCBSRUFETUUuTWF0c3VzaGl0YS50eHQ6CgogICBQYXRjaCAjNzQ4MzA1IGZyb20gc3Jpbml2YXNhIHJhbyBndXJ1c3UgZGVzY3JpYmluZyBob3cgdG8gYnVpbGQgbmV0LXNubXAgb24gTWF0c3VzaGl0YSBlbWJlZGRlZCBzeXN0ZW1zCiAgIAoyMDAzLTA2LTA5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBhdGNoIDc0NjMzOTogT3R0byBTb2xhcmVzIGZpeGVzIGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gbGludXgKICAgCjIwMDMtMDYtMDkgMTQ6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIHBhdGNoICM3NDA5MTggZnJvbSBFcmljIEUuIEJvd2xlczogZml4IHBhc3MgdGhyb3VnaCBpbnZvY2F0aW9uIGZvciBTRVRzCiAgIAoyMDAzLTA2LTA5IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzQ5MDYyIHRvIGZpeCBjYWNoaW5nIGNyYXNoaW5nIGFuZCBjbGFzaGluZyB1bmRlciBTb2xhcmlzCiAgIAoyMDAzLTA2LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcGF0Y2ggIzc0OTEwMyBmcm9tIEdhcnJ5IEMgTWFyc2hhbGwgdG8gZml4IHRoZSBwcm94eSB3aGVuIGEgdGltZW91dCBvY2N1cnMgZnJvbSB0aGUgdGFyZ2V0CiAgIAoyMDAzLTA2LTA2IDIzOjE3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBtaXNzaW5nIGxlbmd0aCBieXRlIHdoZW4gc2V0dGluZyBpbmRleCB3aXRoIGNoZWNrcyBkaXNhYmxlZAogICAKMjAwMy0wNS0yOCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICByZW1vdmUgdW51c2VkIGNvZGUgYXMgcG9pbnRlZCBvdXQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNS0yOCAxNDoyOSAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0OgoKICAgYWRkZWQgVjQvVjUgbm90ZSBmcm9tIG1haW4gYnJhbmNoIHRvIHBhdGNoZXMKICAgCjIwMDMtMDUtMjMgMTE6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGZyZWUgY29udGFpbmVyIGFmdGVyIGZyZWVpbmcgY29udGVudHMKICAgCjIwMDMtMDUtMjMgMTE6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICB1cGRhdGUgY29udGFpbmVyIGZyZWUgbWFjcm8vY29kZSB0byBkZWFsIHcvcG9pbnRlciBiZWluZyBkZWxldGVkCiAgIAoyMDAzLTA1LTIzIDExOjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEVYVEVOU0lCTEVNSUIgLT4gVUNEQVZJU19NSUIKICAgCjIwMDMtMDUtMTQgMTA6MzAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA1LTE0IDEwOjI4ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBjaG1vZCB0byB3b3JrIGZyb20gY29uZmlndXJlIGFuZCBjb25maWcuc3RhdHVzCiAgIAoyMDAzLTA1LTEyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzczNTUxMSBmcm9tIEFsZXggQnVyZ2VyOiBmaXggc25tcHRyYXBkIHRvIGVuc3VyZSB0aGVyZSBhcmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHZhcmJpbmRzCiAgIAoyMDAzLTA1LTEyIDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgUGF0Y2ggIzczNjc4NCBmcm9tIFJvbiBUYWJvcjogZml4IHByb3hpZXMgZm9yIHJlc3RhcnRlZCBOU01QdjMgc3ViLWFnZW50cwogICAKMjAwMy0wNS0wOCAxNjoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBBbmRyZXcgRmluZGxheQogICAKMjAwMy0wNS0wOCAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIChleGNlbGxlbnQpIHBhdGNoICM3MDU1NjYgZnJvbSBBbmRyZXcgRmluZGxheSBvbiBwZXJsIGFnZW50IHN1cHBvcnQ6CiAgIAogICAxKSBBZ2VudCBjYW5ub3QgcmV0dXJuIE1BQyBhZGRyZXNzZXMgY29udGFpbmluZyB6ZXJvIG9jdGV0LgogICAKICAgMikgQWdlbnQgY29yZWR1bXBzIHdoZW4gdHJ5aW5nIHRvIHJldHVybiBJUCBhZGRyZXNzZXMKICAgaWYgdGhlc2UgYXJlIHN1cHBsaWVkIGFzIGRvdHRlZC1xdWFkIG9yIGFzIGEgaG9zdG5hbWUKICAgdGhhdCBmYWlscyB0byByZXNvbHZlLgogICAKICAgMykgQWdlbnQgY29ycnVwdHMgT0lEIHZhbHVlcy4KICAgCiAgIDQpIEFnZW50IHRydW5jYXRlcyBhbnkgT0NURVRfU1RSSU5HIG9yIEJJVF9TVFJJTkcgdGhhdAogICBjb250YWlucyBhIHplcm8gb2N0ZXQgKHRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgKDEpIGFib3ZlKQogICAKICAgQVBJIGNoYW5nZXMgaW50cm9kdWNlZDoKICAgCiAgIGEpIElQIGFkZHJlc3NlcyBub3cgcGFzc2VkIGFzIGJpbmFyeSBzdHJpbmdzICg0IG9jdGV0cwogICBmb3IgSVB2NCkgcmF0aGVyIHRoYW4gZG90dGVkLXF1YWQgb3IgbmFtZS4gVGhpcwogICBzaWRlc3RlcHMgdGhlIElQdjQvSVB2NiBwcm9ibGVtIGFuZCBsZWF2ZXMgdGhlIGNhbGxpbmcKICAgc2NyaXB0IHRvIGRlYWwgd2l0aCBuYW1lLT5hZGRyZXNzIHJlc29sdXRpb24gYW5kCiAgIGFzc29jaWF0ZWQgZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTA4IDA5OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIEFsZXggQnVyZ2VyLCB3aG8gc3VibWl0dGVkIHRoZSBwZXJsIHdpbjMyIHBhdGNoZXMKICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gU3RlcGhlbgogICAKMjAwMy0wNS0wOCAwOTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMKOgoKICAgcGF0Y2ggIzcxMDI3NSBmcm9tIFN0ZXBoZW4gSi4gRnJpZWRsOiBjb25zdCBmaXhlcyBmb3IgQVBJcyB0aGF0IGRvbid0IG1vZGlmeSB0aGVpciBhcmd1bWVudHMKICAgCjIwMDMtMDUtMDggMDk6MjggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIG1pc3NlZCBhIGNvbW1pdCBmb3IgYSBwZXJsIHBhdGNoCiAgIAoyMDAzLTA1LTA4IDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzcxMjEwMTogbWlub3IgaXJpeCBmaXgKICAgCjIwMDMtMDUtMDggMDk6MjEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBNZW50aW9uIHBhdGNoICM3MTU2MDMKICAgCjIwMDMtMDUtMDggMDk6MTggIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIFNOTVAvUkVBRE1FLCBTTk1QL1NOTVAueHMKLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHBhdGNoICM3MTU2MDM6IGZpeCBwZXJsIG1vZHVsZSBidWlsZHMgdW5kZXIgd2luZG93cwogICAKMjAwMy0wNS0wOCAwNzoxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHRyeSB0byB1c2UgZGVmYXVsdCBjb250YWluZXIgaWYgbm9uZSBzcGVjaWZpZWQ7IG5vbi1leGlzdGVudCByb3cgc3RhdHVzIG5vdAogICBsZWdhbCBmb3IgYSBuZXcgcm93OyBzYW5pdHkgY2hlY2sgYXNzZXJ0czsgcmVtb3ZlIHVudXNlZCBjb29wZXJhdGl2ZQogICBub3RpZmljYXRpb24gY29kZTsgY2hlY2sgZm9yIG51bGwgdGFibGUgY29udGFpbmVyCiAgIAoyMDAzLTA1LTA4IDA3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgb2JqZWN0X21vbml0b3IgYXMgaXQgZG9lc24ndCBkbyBhbnl0aGluZyBhbmQgd291bGQgYmUgYSBuZXcgZmVhdHVyZSBpZgogICBpdCBkaWQKICAgCjIwMDMtMDUtMDggMDc6MDUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggc3lzbmFtZSB0cmFuc2xhdGlvbiBmb3IgLzsgYWxsb3cgZXh0cmEgY29uZmlnIHRvIGJlIHNwZWNpZmllZCBpbgogICBlbnZpcm9ubWVudCB2YXIKICAgCjIwMDMtMDUtMDggMDc6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGNoZyBORVRfU05NUF9VU0VfQVNTRVJUIGRlZmluZSB0byBORVRTTk1QX1VTRV9BU1NFUlQgdG8gYmUgY29uc2lzdGVudAogICAKMjAwMy0wNS0wOCAwNjo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGFwcGx5IHBhdGNoIFsgNzI0OTI3IF0gdG8gZml4IGxvZyBtc2c7IGFkZCBcbiB0byBsb2cgbXNncwogICAKMjAwMy0wNS0wNSAxNTozNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBhZ2VudHhQaW5nSW50ZXJ2YWwKICAgCjIwMDMtMDUtMDUgMTA6MzUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlndXJlLmluCiAgIAoyMDAzLTA1LTA1IDEwOjI5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIGNobW9kIG5ldC1zbm1wLWNvbmZpZyBhZnRlciBjb25maWd1cmUsIGluc3RlYWQgaW4gbWFrZQogICAKMjAwMy0wNC0wMyAxNToxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgd3JhcCBTTk1QX0ZSRUUgbWFjcm8gdy9kbyB3aGlsZSwgc28gaXQgd29uJ3QgYWZmZWN0IGlmL3RoZW4gZmxvdwogICAKMjAwMy0wMy0yOCAwNjo0OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmtyYjU6CgogICBLZW4gSG9ybnN0ZWluIG5vdGVkIHRoYXQgdGhlIHJ3dXNlciAtcyBmbGFnIHdhcyBtaXNzaW5nIGl0J3MgYXJndW1lbnQKICAgCjIwMDMtMDMtMjggMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgUGF0Y2ggZnJvbSBLZW4gZm9yIG1pc2Mga3JiNSBmaXhlcyAoZW5jcnlwdGlvbiB0eXBlcywgTmV3IGNyeXB0byBzdXBwb3J0LC4uLgogICAKMjAwMy0wMy0xOSAxMTo0NiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHRyYWlsaW5nIFwgZnJvbSBwZXJsIHJ1bGVzCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjcgLT4gVjUuMC44CgoyMDAzLTAzLTE3IDE3OjMzICByc3RvcnkKCiAgICogTkVXUywgbWFuL25ldHNubXBfaGFuZGxlci4zLAogICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjM6CgogICB1cGRhdGUgZm9yIDUuMC44CiAgIAoyMDAzLTAzLTE3IDE3OjIwICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEKLCBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC44ICkKICAgCjIwMDMtMDMtMTQgMTQ6NTUgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBwZXJsL1NOTVAvU05NUC5wbSwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDE0OjQwICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDEzOjUzICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMwo6CgogICB1cGRhdGUgZm9yIDUuMC44LnByZTIKICAgCjIwMDMtMDMtMTQgMTM6NDUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHRyYWlsaW5nIHNsYXNoIG9uIHNyY2RpciBmb3IgY29tbWVudCBjaGVja3MKICAgCjIwMDMtMDMtMTQgMTM6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIGV4dHJhIG1vZHVsZXMgYW5kIHRyYW5zcG9ydHMKICAgCjIwMDMtMDMtMTQgMTI6NDQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHVzZSBuZXcgbWFjcm8gZm9yIGlubGluaW5nOyBmaXggc29tZSBpbmRlbnQgbWFkbmVzcwogICAKMjAwMy0wMy0xNCAxMjo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVzZSBuZXcgbWFjcm8gZm9yIHRlc3RpbmcgaWYgaW5saW5pbmcgaXMgb24KICAgCjIwMDMtMDMtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGFpeC5oLCBocHV4LmgsCiAgIGlyaXguaDoKCiAgIGRvbid0IHVuZGVmIGlubGluZQogICAKMjAwMy0wMy0xNCAxMjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW5hbWUgbWFjcm8gdXNlZCB0byB0ZXN0IGZvciBpbmxpbmluZwogICAKMjAwMy0wMy0xNCAxMjozOSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgaWYgaW5saW5lIG1hY3JvIG5vdCBkZWZpbmVkLCBkZWZpbmUgYXMgZW1wdHkKICAgCjIwMDMtMDMtMTQgMTI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKLCBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsIHNubXBsaWIvZGF0YV9saXN0LmMKLCBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgcmVwbGFjZSBpbmxpbmUgdy9tYWNybwogICAKMjAwMy0wMy0xMyAxOTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbiB0byBmaXggc29tZSBBZ2VudFggKG1vc3RseSkgbWVtb3J5IGxlYWtzCiAgIAoyMDAzLTAzLTEyIDEzOjQwICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBwYXRjaCAjNjk5MzgwOiBGcm9tIENocmlzdG9waGUgS2FsdDogbWFrZSBuZXQtc25tcC1jb25maWcgZG8gd2hhdCBpdCdzIGRvY3VtZW50IHRvIGRvIChhZGQgLUxAbGliZGlyQCkKICAgCjIwMDMtMDMtMTIgMTE6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoICM3MDA2NzI6IHJlc2V0IGl0bXAgdG8gdGhlIG5ldyB2YWx1ZSBsZW5ndGggYWZ0ZXIgZGVjb2RpbmcgYSBoZXggc3RyaW5nCiAgIAoyMDAzLTAzLTExIDE3OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBBcHBsaWVkIG9wZW5zc2wgZHluYW1pYyB2ZXJzaW9uIGhhY2svZml4CiAgIAoyMDAzLTAzLTExIDE1OjE0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGQgV1JBUExJQlMgdmFyIGluc3RlYWQgb2YgZGlyZWN0IHN1YnN0aXR1dGlvbgogICAKMjAwMy0wMy0xMSAxNToxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBXUkFQTElCUyB0byAtLWFnZW50LWxpYnMgYW5kIC0tZXh0ZXJuYWwtYWdlbnQtbGlicwogICAKMjAwMy0wMy0xMSAwMDozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHJldmVydCB0byAyLjEzCiAgIAoyMDAzLTAzLTA2IDAxOjQ0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCiAgIAoyMDAzLTAzLTA2IDAxOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGxpYndyYXAgdy9uc2w7IG1ha2Ugc3VyZSBhbGwgcXVvdGVzIHJlc3RvcmVkIGJlZm9yZSB1c2luZyBBQyBtYWNyb3MuIFRoaXMKICAgc2VlbXMgdG8gbWVzcyB1cCB0aGUgY29uZmlnIG91dHB1dCB3aGlsZSBjaGVja2luZyBmb3IgbW9kdWxlcywgYnV0IHcvb3V0IGl0LAogICBJIGdldCBlcnJvcnMgZnJvbSBtNCB3aGVuIHJ1bm5pbmcgYXV0b2NvbmYuCiAgIAoyMDAzLTAzLTA1IDIwOjUxICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBuZXQtc25tcC1jb25maWcteAogICAKMjAwMy0wMy0wNSAyMDo0OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBjaGVjayBmb3IgYW4gb3B0aW9uYWwgM3JkIHBhcmFtLCBub2N2cywgdG8gbm90IGNvbW1pdCBhZnRlciB1cGRhdGluZyB2ZXJzaW9uCiAgIAoyMDAzLTAzLTA1IDIwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHB1dCBhbGwgdGhlIHZlcnNpb24gbnVtYmVyIGNoYW5nZXMgaW4gdGhlIHNhbWUgc3RlcAogICAKMjAwMy0wMy0wNSAyMDoyMSAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC44LnByZTEgKQogICAKMjAwMy0wMy0wNSAyMDowMCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjAuOC5wcmUxCiAgIAoyMDAzLTAzLTA1IDE5OjA0ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBiYWNrIG91dCBkb2NzIGZvciBuZXcgZnVuY3Rpb25hbGl0eSBhY2NpZGVudGFsbHkgYWRkZWQgd2hlbiBhcHBseWluZyBwYXRjaAogICAKMjAwMy0wMy0wNSAxODo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGJhY2sgb3V0IG5ldyBmdW5jdGlvbmFsaXR5IGFjY2lkZW50YWxseSBhZGRlZCB3aGVuIGFwcGx5aW5nIHBhdGNoCiAgIAoyMDAzLTAzLTA1IDE4OjIwICByc3RvcnkKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICB1cGRhdGVzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMy0wMy0wNSAxODoxOCAgcnN0b3J5CgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgYWRkIHNubXBkLjgKICAgCjIwMDMtMDMtMDUgMTg6MTIgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfaGFuZGxlci4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zOgoKICAgdXBkYXRlcyBmb3IgNS4wLjgKICAgCjIwMDMtMDMtMDUgMTg6MDQgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdG8gNS4wLjgKICAgCjIwMDMtMDMtMDUgMTc6NTggIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgcmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50OyBmaXggdHlwbwogICAKMjAwMy0wMy0wNSAxNzo1OCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZXhjbHVkZSBmdHAgZnJvbSBjb21tZW50IGNoZWNrOyB1c2UgZWdyZXAKICAgCjIwMDMtMDMtMDUgMTc6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGNoZyBDKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0wMy0wNSAxNzo1MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBhcmdoISBGcmVlQlNEIGlzIGRyaXZpbmcgbWUgY3JhenkhICBzZXQgUkFORE9NPTIgaWYgUkFORE9NIG5vdCBkZWZpbmVkOyB1c2UgdGVzdAogICAKMjAwMy0wMy0wNSAxNzoyMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBzaW1wbGlmeSBuZXRzdGF0IGFyZ3MgJiB0d2VhayBncmVwIHJlZ2V4IGZvciBtdWx0aSBwbGF0Zm9ybSBjb21wYXRhYmlsaXR5CiAgIAoyMDAzLTAzLTA1IDE3OjExICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGNoZWNrIC9iaW4gYW5kIC91c3IvYmluIGZvciBuZXRzdGF0IChwcm9iYWJseSBhIGdvb2Qgam9iIGZvciBjb25maWd1cmUpCiAgIAoyMDAzLTAzLTA1IDE3OjAyICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG1pc3NlZCBvbmUsIHJlOiAoKCApKSAtPiBleHByCiAgIAoyMDAzLTAzLTA1IDE2OjU4ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHVzZSBtb3JlIHBvcnRhYmxlIGV4cHIgaW5zdGVhZCBvZiAgKCggKSkgZm9yIGFyaXRobWV0aWMgZXhwcmVzc2lvbnMKICAgCjIwMDMtMDMtMDUgMTY6MTYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgZm9yIHN5c3RlbXMgd2l0aCAvYmluL25ldHN0YXQsIGNoZWNrIHRoYXQgc25tcGQgcG9ydCBpcyBub3QgaW4gdXNlLiBJZiBpdCBpcywKICAgdHJ5IHVwIHRvIHRocmVlIHJhbmRvbSBvdGhlcnMgYmVmb3JlIGdpdmluZyB1cC4KICAgCjIwMDMtMDMtMDUgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLXBhY2thZ2U6CgogICBkb24ndCBwcm9tcHQgYmV0d2VlbiBzdGVwcyBieSBkZWZhdWx0CiAgIAoyMDAzLTAzLTA1IDE1OjExICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGltcG9ydCBTTk1QX1NMRUVQIHRpbWUgZnJvbSBlbnZpcm9ubWVudCwgaWYgYXZhaWxhYmxlCiAgIAoyMDAzLTAzLTA1IDE1OjEwICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkb24ndCByZWRlZmluZSBpbmxpbmUKICAgCjIwMDMtMDMtMDUgMTU6MDggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE1OjA3ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBzb21lIGZpbGVzIGF1dG9jb25mIG1heSBjcmVhdGUKICAgCjIwMDMtMDMtMDUgMTM6NDIgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIKLCBsdG1haW4uc2gsIGNvbmZpZ3VyZToKCiAgIFVwZGF0ZSBsaWJ0b29sIHRvIHZlcnNpb24gMS40LjMsIGZvciB0aGUgYmVuZWZpdCBvZiBEYXJ3aW4KICAgCjIwMDMtMDMtMDUgMTM6MzkgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBEb250IGZvcmNlIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGZvciAtLXdpdGgtZG1hbGxvYwogICAKMjAwMy0wMy0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgd3JvbmcgdHlwZSByZXR1cm5lZCBmb3IgbnNNb2R1bGVNb2RlcyBhcyByZXBvcnRlZCBieSBNaWNoYWVsIEtpcmtoYW0KICAgCjIwMDMtMDMtMDMgMTU6MDMgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIE1lbnRpb24gdGhlIEFnZW50WEFkZHJlc3MsIEFnZW50c1JldHJpZXMgYW5kIEFnZW50WFRpbWVvdXQgcGFyYW1ldGVycwogICAKMjAwMy0wMy0wMyAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBBZGQgc3VwcG9ydCBmb3IgT3BlbkJTRCAzLiBTb3J0IHNvbWUgbGluZXMgZm9yIGVhc2llciByZWZlcmVuY2UuCiAgIAoyMDAzLTAzLTAxIDEwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogYmV0dGVyIGVycm9yIGNoZWNraW5nCiAgIAoyMDAzLTAzLTAxIDA5OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGRvbid0IGNyZWF0ZSBkZWxlZ2F0ZWQgY2FjaGUgZm9yIENMRUFOVVBTRVQKICAgCjIwMDMtMDItMjggMjM6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIHR5cG8KICAgCjIwMDMtMDItMjggMjM6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFBhdGNoICM1OTc2MjkgZnJvbSBNYXR0IFNlbHNreSB0byBmaXggbWFuIHBhZ2UgaW5zdGFsbGF0aW9uCiAgIAoyMDAzLTAyLTI4IDEzOjE4ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlIGlmIHdlIGNhbm5vdCBjcmVhdGUgcGlkIGZpbGUKICAgCjIwMDMtMDItMjggMTM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFVzZSBGUyB0eXBlcyB3aXRoIExpbnV4CiAgIAoyMDAzLTAyLTI3IDAwOjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgc3luYyB3L21haW4KICAgCjIwMDMtMDItMjYgMTg6NTIgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBzeW5jIHcvbWFpbjogcHV0IGluIG1pc3NpbmcgSU5TVEFMTF9EQVRBCiAgIAoyMDAzLTAyLTI2IDE4OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBJbXBsZW1lbnQgc3lzUmF3SW50ZXJydXB0cyBhbmQgc3lzUmF3Q29udGV4dCBmb3IgU29sYXJpcwogICAKMjAwMy0wMi0yNiAxNDozMCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYSBDIHByZWNlZGVuY2UgYm90Y2gtdXAsIHRoYW5rcyB0byBGYWJy4KWrgIGMY2lvIExhcyBDYXNhcyA8RmFicmljaW9AYXRhbi5jb20uYnI+CiAgIAoyMDAzLTAyLTI2IDE0OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBJbXBsZW1lbnQgdGhlIHNzUmF3SW50ZXJydXB0cyBhbmQgc3NSYXdDb250ZXh0IGNvdW50ZXJzIGluIExpbnV4CiAgIAoyMDAzLTAyLTI2IDE0OjEzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCB0aGUgLVMgb3B0aW9uCiAgIAoyMDAzLTAyLTI1IDE0OjM4ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggbG9naWMgb2YgdGVzdCBvcGVyYXRpb24KICAgCjIwMDMtMDItMjUgMTQ6MzMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgdXNlIEFVVE8oQ09ORnxIRUFERVIpIGZyb20gY29uZmlndXJlLCBpbnN0ZWFkIG9mIGhhcmRjb2RlZDsgZG9uJ3QgdHJ5IGFuZCBydW4KICAgQVVUTyhDT05GfEhFQURFUikgaWYgbm90IGZvdW5kCiAgIAoyMDAzLTAyLTI1IDE0OjExICByc3RvcnkKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBuZXcgZmlsZQogICAKMjAwMy0wMi0yNSAxNDowMyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2ggKGNvcnJlY3RseSwgdGhpcyB0aW1lKQogICAKMjAwMy0wMi0yNSAxMzo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBhZGQgTk9BVVRPREVQUwogICAKMjAwMy0wMi0yNSAxMzozOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogYWRkIHNtdXggdG8gZGlzdCBtb2R1bGVzOyBtb3ZlIG1ha2UgdGVzdCBpbnRvIG5zYi1tYWtlOwogICByZW1vdmUgdGVlIHNvIHJjIGlzIHByZXNlcnZlZDsgdXNlIG5ldyBOT0FVVE9ERVBTCiAgIAoyMDAzLTAyLTI1IDEzOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUmVjb2duaXNlICJkZWZWZXJzaW9uIHYzIiBhcyB3ZWxsIGFzICJkZWZWZXJzaW9uIDMiIGFzIGRvY3VtZW50ZWQKICAgaW4gdGhlIG1hbiBwYWdlcyAocHJpb3IgdG8gUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvcnJlY3Rpb24pCiAgIFtXZSBtaWdodCBhcyB3ZWxsIHN1cHBvcnQgYm90aCBzdHlsZXMuLi4uXQogICAKMjAwMy0wMi0yNSAxMzoyMCAgcnN0b3J5CgogICAqIEVYQU1QTEUuY29uZi5kZWYsIHNlZHNjcmlwdC5pbiwKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vbWliMmMuMS5kZWYsCiAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgbWFuL3NubXBjb25mLjEuZGVmLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogKEkgaG9wZSBJIGdvdCB0aGlzIHJpZ2h0KQogICAtQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMTM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIHBhdGNoICM2NTc4MDg6IGNhbGN1bGF0ZSBhIHByb3BlciBpZlNwZWVkIHVuZGVyIGxpbnV4IHdoZW4gcG9zc2libGUKICAgYW5kIGRvIG1vcmUgcHJvcGVyIGlmT3BlclN0YXR1cyBzdGF0ZSBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wMi0yNSAxMzoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtIElyZmFuIFNoZXJpZmYgcG9pbnRlZCBvdXQgYSBidWcgd2l0aCBnZXRuZXh0IHJlcXVlc3RzIGRpcmVjdGx5IHRvIGEgY29sdW1uLgogICAtIGNoZWNrIGVudHJ5IG5vZGUgYXMgc3VnZ2VzdGVkIGJ5IElyZmFuIFNoZXJpZmYKICAgCjIwMDMtMDItMjUgMTM6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBSZW1vdmUgbGFzdCByZW1haW5pbmcgdXNlIG9mICdubGlzdCcgdW5kZXIgSFAtVVggMTAgJiAxMS4KICAgQXMgcGVyIHBhdGNoICM2NTY3NzMgZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDMtMDItMjUgMTM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQ2hlY2tpbmcgdGhlIGxlbmd0aCBvZiBhIHN0cmluZyBidWZmZXIgb25jZSBpcyBzdWZmaWNpZW50LgogICBVc2luZyAnc3Rybm5jcHknIFtzaWNdIHRvIGNoZWNrIHRoaXMgbGVuZ3RoIHR3aWNlIGlzIHVubmVjZXNzYXJ5Li4uCiAgIAoyMDAzLTAyLTI1IDEzOjEyICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC0gTWVzcyB3aXRoIG91dHB1dCBvZiBkb3h5Z2VuIHRvIGFkZCBzZiBsb2dvcywgZXRjLCB0byB0aGUgYm90dG9tIG9mIHRoZQogICAgIGdlbmVyYXRlZCBodG1sIGZpbGVzLgogICAtIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBuZXQtc25tcC1jb25maWcgcGF0Y2ggKCM2OTIzNzMpCiAgIAoyMDAzLTAyLTI1IDEzOjExICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUGF0Y2ggIzY1NTE1NCBmcm9tIEpvZWwgUm9zZGFobDogbW9yZSBwcm9wZXIgZGVtb25pemF0aW9uOgogICAgIC0gY2xvc2Ugc3RkaW4vc3Rkb3V0L3N0ZGVyciBpZiBhcHByb3ByaWF0ZS4KICAgICAtIGRvdWJsZSBmb3JrLgogICAgIC0gY2hkaXIgLyAgIFtleGNlcHQgdW5kZXIgd2luZG93c10KICAgCjIwMDMtMDItMjUgMTM6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUGF0Y2ggIzY2MjE2OSBmcm9tIEphbiBXaWxsZW0gTHVpdGVuOiBkaXNraW8gc3VwcG9ydCBmb3IgRGFyd2luCiAgIAoyMDAzLTAyLTI1IDEzOjEwICByc3RvcnkKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBzZXQudDoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgRml4IHRlc3RzIGZvciBidWxrd2FsayAoZHVwbGljYXRlIGhlYWRlcikgYW5kIHNldCAoaW52YWxpZCBPSUQgY29uc3RhbnQpCiAgIAoyMDAzLTAyLTI1IDEzOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEFjY29tbW9kYXRlIGEgZnVzc3kgSVJJWCBlbnZpcm9ubWVudCwgd2hpY2ggaXMgcGlja3kgYWJvdXQgPHVuaXN0ZC5oPgogICBTZWUgYnVnICM2Njc3MjYKICAgCjIwMDMtMDItMjUgMTM6MDQgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBCcnVjZSBTaGF3IHBvaW50ZWQgb3V0IGEgY29tbWVudCB0eXBvCiAgIAoyMDAzLTAyLTI1IDEzOjAyICByc3RvcnkKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgZml4IG15IGRlY2xhcmF0aW9ucyBhcyBwb2ludGVkIG91dCBieSBBbmRyZXcgUGFnZQogICAKMjAwMy0wMi0yNSAxMzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEFuIGFkZGl0aW9uYWwgY2hhbmdlIHRvIHN1cHBvcnQgJ3QnIGhpbnRzCiAgIAoyMDAzLTAyLTI1IDEzOjAwICByc3RvcnkKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLWRvY3VtZW50IHBhdGNoICM2NzQyMTg6IHJlb3BlbiBsb2cgZmlsZXMgb24gSFVQLgogICAtQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMTI6NTkgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLWRvY3VtZW50IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMjo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUGF0Y2ggZnJvbSBDaHJpc3RvcGhlIHRvIHN1cHBvcnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgCjIwMDMtMDItMjUgMTI6NTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIENsYXJpZnkgdGhlIGxvY2FsLW9ubHkgYWNjZXNzIGZvciBub24tc3RhbmRhcmQgcG9ydCBBZ2VudFggY29ubmVjdGlvbnMKICAgCjIwMDMtMDItMjUgMTI6NTQgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAgIC0gIGNsb3NlIGFuZCByZS1vcGVuIGxvZyBmaWxlIG9uIHJlY2VpdmluZyBhIEhVUCAocGF0Y2ggNjc0MjE4LCBzdWJtaXR0ZWQKICAgICAgICBieSBhbm9ueW1vdXMpCiAgIAoyMDAzLTAyLTI1IDEyOjUyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBCcnVjZSBTaGF3IHBvaW50ZWQgb3V0IGEgY29tbWVudCB0eXBvCiAgIAoyMDAzLTAyLTI1IDA5OjA0ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29uZmlndXJhdGlvbi1yZWxhdGVkIGRvY3VtZW50YXRpb24gYW5kIGluc3RhbGxhdGlvbiBjaGFuZ2VzLgogICAocGF0Y2hlcyAjNjkyMzcyLCAgNjkyMzc3LCAgNjkyMzc5IGFuZCA2OTIzODYpCiAgIAoyMDAzLTAyLTEzIDIwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFBhdGNoICM2NTQzMjk6IGRvdWJsZSBjaGVjayBsZW5ndGhzIHdoZW4gY29weWluZwogICAKMjAwMy0wMi0xMiAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5oOgoKICAgdXBkYXRlCiAgIAoyMDAzLTAyLTExIDExOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmMKOgoKICAgcGF0Y2ggIzY2NzY5NCAoYW5vbikgdG8gYWRkIGJhY2sgbmV3bGluZXMgdG8gcGFzcyBjb2RlCiAgIAoyMDAzLTAyLTAzIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGcm9tIFJpY2hhcmQgTGFpbmc6IGNoYW5nZSB2YWx1ZSBjaGVjayBvZiBhIHN0cmluZyB0byB1c2UgYSBwcm9wZXIgbGVuZ3RoLgogICAKMjAwMy0wMS0yNCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBwYXRjaCAjNjcyMDIxIGZyb20gSm9zaHVhIEdpbGVzOiBsYXJnZSBzZXQgcmVxdWVzdCBmaXhlcwogICAKMjAwMy0wMS0yMCAyMzoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIG1pc3NpbmcgYnJhY2UKICAgCjIwMDMtMDEtMjAgMjM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIGJhY2sgKGFjY2lkZW50YWxseSBkZWxldGVkKSBjcmVhdGlvbiBvZiBnemlwcGVkIHRhcmJhbGwKICAgCjIwMDMtMDEtMjAgMjM6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3RyaW5nIHRlc3QgY2FzZQogICAKMjAwMy0wMS0yMCAyMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGFycmF5X3Fzb3J0OyBmaXggYmluYXJ5IHNlYXJjaDsgY29uJ3QgcmVjdXJzZSBvbiBpbnNlcnQsIGRlbCwgZXRjIHNpbmNlCiAgIHRoZSBJTlNFUlQvREVMRVRFIG1hY3JvcyBhbHJlYWR5IGhhbmRsZSBtdWx0aXBsZSBpbmRleGVzCiAgIAoyMDAzLTAxLTIwIDIyOjU0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgb2ZmaWNpYWwgcGF0Y2ggWyA2Njk3MDcgXSA1LjAuNzogMTYtQml0IFJlcXVlc3QgSURzCiAgIAoyMDAzLTAxLTIwIDIyOjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgZml4IHR5cG8gaW4gbG9nIG1lc3NhZ2U7IGFkZCBuZXRzbm1wX2NvbXBhcmVfbWVtCiAgIAoyMDAzLTAxLTIwIDIyOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNyZWF0ZSBtZDVzdW1zIGFmdGVyIGNyZWF0aW5nIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0yMCAyMjo1MSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIGFub3RoZXIgbGV2ZWwgb2YgZGlyZWN0b3JpZXMgdG8gbWFrZSBkZXBlbmQsIHBlciBkdHMgb24gY29kZXJzCiAgICh0aG91Z2h0IHRoaXMgd2FzIGluIDUuMC43LCBidXQgYXBwYXJlbnRseSBub3QhKQogICAKMjAwMy0wMS0xNCAwODo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMKLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG94eWdlbiBjaGFuZ2VzCiAgIAoyMDAzLTAxLTEzIDIxOjQ5ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcKICAgCjIwMDMtMDEtMTMgMjA6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVjb2duaXplIG5ldyAndCcgY29kZSBpbiBkaXNwbGF5IGhpbnRzCiAgIAoyMDAzLTAxLTEzIDIwOjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGF0Y2ggZm9yIG1lbW9yeSBsZWFrcyBzZW50IHRvIGNvZGVycyBieSBKYXkgUGFybGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjYgLT4gVjUuMC43CgoyMDAzLTAxLTExIDAxOjE1ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBjb25maWd1cmUtc3VtbWFyeQogICAKMjAwMy0wMS0xMSAwMToxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDEtMTEgMDE6MDggIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIHZhcmlhdGlvbnMgb2YgY2hhbmdlbG9nLmFkZAogICAKMjAwMy0wMS0xMCAyMDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgZG94eWdlbiBvdXRwdXQgdGFncyB0byBwdXQgdGhlIHJlY2VudGx5IGRlZmluZWQgZnVuY3Rpb25zIGludG8gZ3JvdXBzLgogICAKMjAwMy0wMS0xMCAyMDowOSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfYWdlbnQuMywKICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb3h5Z2VuIHVwZGF0ZXMKICAgCjIwMDMtMDEtMTAgMTc6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgb3BwcwogICAKMjAwMy0wMS0xMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZW1vdmUgZG91YmxlIGNoZWNraW5nIG91dHB1dAogICAKMjAwMy0wMS0xMCAxNDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHBvc2l0aW9uYWwgYXJndW1lbnRzCiAgIAoyMDAzLTAxLTEwIDA5OjA0ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZWZlcmVuY2UgQnJ1Y2UgU2hhdydzIGRpc2N1c3Npb24gb2YgdGhlIHBlcmwgY29tcGlsYXRpb24gcHJvYmxlbXMKICAgKHNlZSBSRUFETUUuc29sYXJpcykKICAgCjIwMDMtMDEtMTAgMDg6MzEgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gQWdlbnRYIHVuZGVyIHdpbmRvd3MsIGFuZCBiZWVmIHVwIHRoZSBwZXJsIHN0dWZmIGEgYml0LgogICBBZGQgYSBtaXNzaW5nIGVudHJ5IGluIHRoZSBjb250ZW50cyBsaXN0LgogICAoVGhpcyBtYXkgcHJvdmUgdG9vIGxhdGUgZm9yIDUuMC44LCBidXQgYXQgbGVhc3QgaXQnbGwgYmUgcmVhZHkgZm9yIG5leHQgdGltZSEpCiAgIAoyMDAzLTAxLTA5IDE4OjQxICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE4OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tb2RlX2VuZF9jYWxsLmg6CgogICBlbmQtb2YtbW9kZSBoZWxwZXIgdG8gY2FsbCBtb3JlIGhhbmRsZXJzIGFmdGVyIHByb2Nlc3NpbmcgdGhlIG1haW4KICAgbGluZS4gIEZ1bmN0aW9uYWxseSBhbGxvd3MgcGFyYWxsZWwgaGFuZGxlciB0cmVlcyBhbmQgY2FsbGJhY2tzIGFmdGVyCiAgIGEgcGFydGljdWxhciBtb2RlIGlzIGNvbXBsZXRlZCAodXNlZnVsIGZvciB0aGluZ3MgcmVnaXN0ZXJlZCB1bmRlciBhCiAgIHNlcmlhbGl6ZSBoYW5kbGVyIHdoZW4geW91IGRvbid0IGtub3cgd2hlbiB0aGUgbW9kZSBpcyBvdmVyKS4KICAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIHByb2R1Y3Rpb24gY29kZSB5ZXQuKS4KICAgCjIwMDMtMDEtMDkgMTE6NTUgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gdGhlIHBlcmwgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5IHByb2JsZW0sCiAgIHRoZSB1bnJlc3BvbnNpdmUgYWdlbnQgcHJvYmxlbSAoYW5kIGZpeCksIGFuZAogICBkaXNjbGFpbSBhbGwga25vd2xlZGdlIG9mIERhdmlkIFRvd24ncyBOZXQ6OlNOTVAgbW9kdWxlLAogICAKMjAwMy0wMS0wOSAxMDoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTYwc25tcHYyY2J1bGtnZXQsIFQwMjIwc25tcHYzYnVsa2dldAo6CgogICBHZXRCdWxrIHRlc3Rpbmcgc3VwcGxpZWQgYnkgWGlhb2ZlbmcgTGluZwogICAKMjAwMy0wMS0wOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEFkZCAteCBmbGFnIGZvciBjYWxsaW5nIHN1YnRlc3RzIHdpdGggInNoIC14Ii4KICAgRml4IG51bWJlciBjb3VudGluZyBmb3IgaW50ZXJhY3RpdmUgb3V0cHV0LgogICAKMjAwMy0wMS0wNyAxODo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjgpLCBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKICAgCjIwMDMtMDEtMDcgMTM6MTggIGhhcmRha2VyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjU4KSwgRkFROgoKICAgaXJjIHNlcnZlciBuYW1lIGNoYW5nZQogICAKMjAwMy0wMS0wNyAxMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGJ1ZyAjNjYzNjI4IGFuZCBwYXRjaDogZml4IGlwIGFkZHJlc3MgaW5kZXggcGFyc2luZyBmcm9tIE9JRHMKICAgCjIwMDMtMDEtMDcgMDQ6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgY29kZSB0byBmcmVlICdjYWxsYmFja19kYXRhX2tlZXAnIGRhdGEuCiAgIFRoaXMgYnJhbmNoIHdvdWxkIG5ldmVyIGJlIGludm9rZWQsIGFuZCBpcyBpbiB0aGUgd3JvbmcKICAgcGxhY2UgYW55d2F5LiAgUGF0Y2ggc3VwcGxpZWQgYnkgSmF5IFBhcmxhcgogICAKMjAwMy0wMS0wNiAxMToxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBTb2xhcmlzIDkgaGVhZGVyCiAgIAoyMDAzLTAxLTA1IDE4OjE0ICBuYmEKCiAgICogd2luMzIvd2luMzIub3B0OgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxNzoyOCAgbmJhCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgd2luMzIub3B0CiwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE1OjQ1ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgU05NUC1NUEQtTUlCLnR4dCwgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0CiwgU05NUHYyLU1JQi50eHQsIFNOTVB2Mi1UTS50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbnMKICAgCjIwMDMtMDEtMDMgMTU6NTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNhbGwgQUNfRElTQUJMRV9TSEFSRUQsIGFzIHNldHMgdGhlIGRlZmF1bHQgdG8gZGlzYWJsZWQgKGl0J3MgdmVyeQogICBwcmVzZW5jZSBpbiBjb25maWd1cmUuaW4gZ2VuZXJhdGVzIGEgY29uZmlndXJlIHdpdGggc2hhcmVkIGRpc2FibGVkLCBldmVuCiAgIGlmIGl0IHdhcyBpbiBhbiBpZiBibG9jazsgZm9yIGRldmVsb3BlciBkZWZhdWx0LCBzZXQgZW5hYmxlX3NoYXJlZCBkaXJlY3RseQogICB1bmxlc3MgaXQgd2FzIHByZXZpb3VzbHkgc2V0OyB0ZXN0IHRoYXQgZW5hYmxlX3NoYXJlZD15ZXMgZm9yIGVtYmVkZGVkLXBlcmwKICAgCjIwMDMtMDEtMDMgMDg6MDIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjU3KSwgRkFROgoKICAgTWVudGlvbiB0aGUgU3RyYXR1cyBWT1MgcG9ydC4gKFRoYW5rcyB0byBCcmFuZG9uIEhhbGwpCiAgIAoyMDAzLTAxLTAyIDE4OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgcGFyZW5zIGFyb3VuZCB4IGluIG1hY3JvIGluIGNhc2UgeCBpcyBtdWx0aXBsZSBDIHRva2VucwogICAKMjAwMi0xMi0yMiAxMjozMiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLAogICBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTIgKQogICAKMjAwMi0xMi0yMiAxMjozMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMgogICAKMjAwMi0xMi0yMiAxMjoyMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMjAgMDc6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNsZWFuIGF3YXkgbmV0LXNubXAtY29uZmlnIG9uIG1ha2UgY2xlYW4KICAgCjIwMDItMTItMjAgMDc6NTcgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHN0YXNoIHRoZSBvaWRfc3Rhc2ggLi4uCiAgIAoyMDAyLTEyLTIwIDA0OjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQSBwYXRjaCBmcm9tIFY0IHRoYXQgZGlkbid0IG1ha2UgaXQgLi4uIGFsbG93IGxpc3Qgb2YgbnVtZXJpYyBiaXRzIHNldHRpbmcgQklUUwogICAKMjAwMi0xMi0yMCAwMjo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIGFkZCBhIGdsb2JhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgcmVnaXN0ZXJpbmcgZGlyZWN0bHkgdmlhIGEgY2FsbGJhY2suCiAgIAoyMDAyLTEyLTIwIDAyOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgYWRkIGNhbGxiYWNrLmgKICAgCjIwMDItMTItMjAgMDI6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZSByZW5hbWluZy4gIChzbnByaW50ZiBjaGFuZ2UgbWlzdGFrZSkKICAgCjIwMDItMTItMjAgMDI6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzb21lIG5ldyByb3V0aW5lcyBmb3Igc2F2aW5nIG9pZCBzdGFzaCBkYXRhIHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gY3VycmVudCBwcm9kdWN0aW9uIGNvZGUpCiAgIAoyMDAyLTEyLTE5IDE3OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gd2F0Y2ggZm9yIHVuZGVmcyBwYXNzZWQgaW4gYXMgYSB2YWx1ZSB0byBhIFNFVCBjbGF1c2UuCiAgIC0gY2hhbmdlIEJJVFMgdG8gYSBPY3RldCBTdHJpbmcgYXMgaXQgc2hvdWxkIGJlLgogICAgIC0gb24gYSBzaWRlIG5vdGUsIGRvIHlvdSBrbm93IHRoYXQgdGhlIE5ldC1TTk1QIHBhcnNlciBkb2Vzbid0CiAgICAgICBkaXN0aW5ndWlzaCBiZXR3ZWVuIEJJVFMgYW5kIEJJVCBTVFJJTkcgaW4gaXQncyBsaXN0IG9mIHR5cGVzPyAgSQogICAgICAgZG9uJ3QgdGhpbmsgaXQncyBwb3NzaWJsZSB0byB1c2UgYm90aCB0eXBlcyBpbiB0aGUgY29kZSB0b2RheQogICAgICAgKHdoaWNoIGlzIGZpbmUsIHNpbmNlIEJJVCBTVFJJTkcgaXMgbm90IHVzZWQgaW4gU05NUHYyIGFuZCBiZXlvbmQpLgogICAKMjAwMi0xMi0xOSAxNzo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcHJpbnQgYSB3YXJuaW5nIHdoZW4geW91IGNhbid0IHBhcnNlIGFuIE9JRCAoZXJyLCBub3QgaWRlYWwpCiAgIAoyMDAyLTEyLTE5IDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBza2lwIFNFVGluZyBjb2x1bW5zIHdpdGggbm8gdmFsdWUgcGFzc2VkIGluLgogICAKMjAwMi0xMi0xOSAxNDo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvZXhhbXBsZS5jLCBob3N0L2hyX25ldHdvcmsuYwosIGhvc3QvaHJfc3dpbnN0LmM6CgogICBCZWluZyBhIGJpdCBxdWljaywgZWgsIERhdmUgLi4uCiAgIAoyMDAyLTEyLTE5IDExOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMgKFY0LTItcGF0Y2hlcy4xMiksIGF0LmM6CgogICBFbnN1cmUgdGhlIGlmbmFtZSBidWZmZXIgaXMgYmlnIGVub3VnaCB0byByZWFkIGluIGEgZnVsbC1sZW5ndGggbmFtZS4KICAgKEZyb20gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMTE6MDUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmMKICAgKFY0LTItcGF0Y2hlcy5bMjgsOSwzLDMsMzBdKSwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmM6CgogICBEZXRlY3Qgd2hlbiBtZW1vcnkgYWxsb2NhdGlvbnMgZmFpbCwgYW5kIGRvbid0IHBsb3VnaCBvbiByZWdhcmRsZXNzLgogICAoQmFzZWQgb24gY2hhbmdlcyB3aXRoaW4gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMTA6MDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFRoZSBHcmVhdCBTVVNFICdzcHJpbnRmJyBIdW50Li4uLi4KICAgCjIwMDItMTItMTkgMDY6MDIgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgICAgLSBjb2RlIHdpdGggQlNEaTQKICAgCjIwMDItMTItMTkgMDU6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoYW5nZSBhIGNvbW1lbnQgdGhhdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRoZSB0cmFuc3BvcnQgc3R1ZmYKICAgICAtIGZpeCBzb21lIHBhcnRpY3VsYXJseSBiYWQgZm9ybWF0dGluZyBpbiBzbm1wX29wZW5fZXgKICAgCjIwMDItMTItMTggMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHJlbW92ZSBtZW0tbGVhayBjb21tZW50LiAgT3V0IG9mIGRhdGUgYW5kIHdhcyBmaXhlZAogICAKMjAwMi0xMi0xOCAxMzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgZGVsZXRlIGV4cGVyaW1lbnRhbCB3YXJuaW5nIGFib3V0IGFnZW50eAogICAKMjAwMi0xMi0xOCAxMzo0MCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgZml4IGJ1ZyM2NTU0ODg6IGRlc2NyaXB0aW9ucyBvZiBzc0lPUmF3UmVjZWl2ZWQgYW5kIHNzUmF3SW50ZXJydXB0cyB3ZXJlIHJldmVyc2VkCiAgIAoyMDAyLTEyLTE4IDA4OjE5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzdGRlcnIgbG9nZ2luZyBvbiBIVVAgKGlmIC1MIHdhcyBnaXZlbiBvbiBjb21tYW5kIGxpbmUpCiAgIAoyMDAyLTEyLTE3IDE5OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlICc7JyBmcm9tIGRlZmluZTsgaWYgdGFibGUgaGFzIGEgc3RvcmFnZSB0eXBlLCBjaGVjayB0aGF0IGl0J3Mgbm90CiAgIHJlYWQgb25seSBiZWZvcmUgYWxsb3dpbmcgc2V0cwogICAKMjAwMi0xMi0xNyAxOToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIG5ldmVyIG1pbmQKICAgCjIwMDItMTItMTcgMTk6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEb24ndCBjaGVjayBmb3IgcHJlZml4ZXMgaW4gdGVzdC4gIFRoZXkgZG9uJ3QgZXhpc3QuICBIb3dldmVyLCBkbyBzZXQgU05NUENPTkZQQVRIIGluIHRlc3QgaW5pdGlhbGl6YXRpb24gdG8gYSBib2d1cyB2YWx1ZQogICAKMjAwMi0xMi0xNyAxODo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRpcmVjdCBjYWxsIHRvIGluaXRfc25tcCgpLiAgVGhpcyBpcyBhbHJlYWR5IGNhbGxlZCBieSB0aGUgLnBtIGZpbGUKICAgCjIwMDItMTItMTcgMTA6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBwZXJzaXN0ZW5jZSBmb3IgYXJyYXktdGFibGVzCiAgIAoyMDAyLTEyLTE3IDEwOjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGFkZCByZWFkX2NvbmZpZ19zdG9yZV9kYXRhX3ByZWZpeDsgYWRkIEFTTl9USU1FVElDS1Mgdy9BU05fVU5TSUdORUQgY2FzZXMKICAgCjIwMDItMTItMTcgMDk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRvbid0IHVzZSBTT19SRVVTRV9BRERSIHNvIGFnZW50IHBvcnQgY2FuJ3QgYmUgaGlqYWNrZWQKICAgCjIwMDItMTItMTcgMDk6NDMgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICB1c2UgbG9jYWwgdmFyIGZvciBiYXNlIGFnZW50IGxpYnM7IHJlb3JkZXIgYmFzZSBhZ2VudCBsaWJzIHNvIHN0YXRpYyBsaW5raW5nCiAgIHdvcmtzCiAgIAoyMDAyLTEyLTE2IDE4OjMyICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmg6CgogICBZZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nIC4uLgogICAKMjAwMi0xMi0xNiAxNzo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgcmVtb3ZlIGJvZ3VzIGNvbW1lbnQgcmVmZXJlbmNlIHRvIHRhYmxlX2RhdGFzZXQgaGVscGVyLgogICAKMjAwMi0xMi0xNiAxNzo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCBhcHBzL3NubXB0cmFwZC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYwo6CgogICBTcHJlYWQgc29tZSBtYWdpYyBkdXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzICh3aHkgaXNuJ3QgLS1lbmFibGUtc2xpZW50LWxpYnRvb2wgdGhlIGRlZmF1bHQgLi4uKQogICAKMjAwMi0xMi0xNiAxMTo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIChwZWVybmFtZSBpcyBjb3BpZWQgYnkgc25tcF9vcGVuX2V4KQogICAKMjAwMi0xMi0xNiAxMTozMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAxMToxOSAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDEwOjAyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZSAoY2F1c2VkIHByb2JsZW1zIG9uIFN1biA1LjcsIHJlcG9ydGVkIGJ5IGpicG4pCiAgIAoyMDAyLTEyLTE2IDA4OjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY29uZmlndXJlIHcvb3V0IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNiAwODoxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgREVWRkxBR1M9IiIgaWYgbm90IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNiAwMjozOSAgbmJhCgogICAqIHNubXBsaWIvOiBvaWRfc3Rhc2guYywgc2NhcGkuYywgc25tcEFBTDVQVkNEb21haW4uYwosIHNubXBJUFhEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xNiAwMjozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgUG9zc2libGUgbGVhayBvZiBmZCBvbiBlcnJvciByZXR1cm4KICAgCjIwMDItMTItMTQgMTA6MjIgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMSApCiAgIAoyMDAyLTEyLTE0IDEwOjIxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNiAtPiBWNS4wLjdwcmUxCgoyMDAyLTEyLTE0IDA5OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIGFnZW50L21pYmdyb3VwOyBmaXggbW9kdWxlcyBmb3IgY29uZmlnX2Rpc3QKICAgCjIwMDItMTItMTQgMDk6NTggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCjIwMDItMTItMTQgMDk6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIHJldiB0byA1LjAuNwogICAKMjAwMi0xMi0xNCAwOTo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1uIHRvIGdyZXAgZm9yIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwOTo0NyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTE0IDA5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA5OjMwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgY29tbWVudHMgdG8gc29tZSBzdHJ1Y3R1cmUgbWVtYmVycwogICAKMjAwMi0xMi0xNCAwOToyOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGVycm9ycyBkdXJpbmcgY29tbWl0IHVuZG8gc2hvdWxkIGJlIHh4RkFJTEVEOyB1c2Ugc2V0X3JlcXVlc3RfZXJyb3IgaW5zdGVhZCBvZgogICBzZXRfbW9kZV9yZXF1ZXN0X2Vycm9yOyByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQ7IG1vcmUgZGVidWdnaW5nOyBjaGVjayBmb3IKICAgYW5kIGNhbGwgbG93ZXIgaGFuZGxlcnMKICAgCjIwMDItMTItMTQgMDk6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbHdheXMgcHJvY2VzcyBsYXRlciBwYXNzZXMgb2YgYSBzZXQgcmVxdWVzdAogICAKMjAwMi0xMi0xMyAxNjowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxNTo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxNTo0MCAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCBpbmNvbXBsZXRlIHplcm9pbmcgb2Ygc2VjdXJpdHkgZGF0YQogICAKMjAwMi0xMi0xMyAxNTozOSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCBhIHBvc3NpYmxlIGZyZWVpbmcgb2YgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDItMTItMTMgMTU6MzggIG5iYQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTE6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENsZWFyIHRoZSAncHJvY2Vzc2VkJyBmbGFnIGJldHdlZW4gcGFzc2VzLCBzbyB0aGF0IGhhbmRsZXJzCiAgIGNhbiBjb3JyZWN0bHkgY2xlYW4gdXAgYWZ0ZXIgZXJyb3JzIGhhdmUgYmVlbiBkZXRlY3RlZC4KICAgCjIwMDItMTItMTMgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGFkZCBhc3NlciB0byB0cnkgYW5kIGNhdGggaW50ZXJtaXR0ZW50IGNyYXNoIGkndmUgYmVlbiBzZWVpbmcKICAgCjIwMDItMTItMTMgMTE6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBsb2cgdW5rbm93biBhZ2VudHggb3BlcmF0aW9uCiAgIAoyMDAyLTEyLTEzIDEwOjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWYgbm8gcm93IGNyZWF0ZSBjYWxsYmFjayBvbiBzZXQsIHVzZSBOT1RXUklUQUJMRSBpbnN0ZWFkIG9mIE5PU1VDSElOU1RBTkNFCiAgIAoyMDAyLTEyLTEzIDEwOjA0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBmaXggY3V0LW4tcGFzdGUgc28gZGVsZWdhdGVkIGZsYWcgZGlzcGxheWVkIHByb3Blcmx5CiAgIAoyMDAyLTEyLTEzIDEwOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBsb2cgdGV4dCAoQVBQfExJQnxUT0spIGluc3RlYWQgb2Ygc3RvcmUgaWQgaW4gZGVidWcgbXNncwogICAKMjAwMi0xMi0xMyAwOTo1MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCAtLXdpdGgtbGlid3JhcAogICAKMjAwMi0xMi0xMyAwOTo0OSAgcnN0b3J5CgogICAqIEZBUToKCiAgIGdyYW1tYXIvaW5kZW50aW9uIHR3ZWFrICsgbWVudGlvbiBzdHJpcCBmb3IgbWVtb3J5IGZvb3RwcmludCBxdWVzdGlvbgogICAKMjAwMi0xMi0xMyAwOTozMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGV4cGxpY2l0IG1lbnRpb24gb2YgU05NUCBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KICAgVGhpcyBzZXR0aW5nIGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWNlc3NhcnksIGFuZCB3aXRob3V0IGl0LAogICB0aGUgbWFuIHBhZ2UgaXMgaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkuCiAgIAoyMDAyLTEyLTEzIDA3OjQ3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSAtUyBkbyB0aGUgc2FtZSBhcyBzbm1wZCAtUyAoc2V0IHRoZSBzeXNsb2cgZmFjaWxpdHkpCiAgICAgLSBtYWtlIC1sIHByaW50IGEgd2FybmluZyBzYXlpbmcgdGhhdCBpdCBpcyBkZXByZWNhdGVkIGFuZCAtUyBzaG91bGQKICAgICAgIGJlIHVzZWQgaW5zdGVhZAogICAKMjAwMi0xMi0xMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gaW5jcmVhc2Ugd2lkdGggb2YgdG9rZW4gZmllbGQgdG8gaW1wcm92ZSBsZWdpYmlsaXR5IG9mCiAgICAgICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBoZWxwIG91dHB1dAogICAKMjAwMi0xMi0xMiAxNzo0NiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdW5rbm93biAtTyBvcHRpb25zCiAgIAoyMDAyLTEyLTEyIDE1OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc29tZSBzaXplX3QgdGhhdCByZWFsbHkgc2hvdWxkIGJlIGludAogICAKMjAwMi0xMi0xMiAxNDoxOCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBBIGxvbmcgb3ZlcmR1ZSBwYXRjaCAoIzQxNTI1MikgZnJvbSBSb2JlcnQgSGFzdGluZ3MgdGhhdCBpbXBsZW1lbnRzCiAgIHJldmVyc2UgRElTUExBWS1ISU5UIHByb2Nlc3NpbmcsIGkuZS4gaXQgYWxsb3dzIHlvdSB0byBpbnB1dCBkYXRhCiAgIGZvcm1hdHRlZCBsaWtlIHRoZSBESVNQTEFZLUhJTlQgcHJlc2NyaWJlcy4gRW5hYmxlZCBieSBkZWZhdWx0LCBidXQKICAgY2FuIGJlIGRpc2FibGVkIHdpdGggdGhlIC1JaCBvcHRpb24gb3Igbm9EaXNwbGF5SGludCBpbiBzbm1wLmNvbmYKICAgCjIwMDItMTItMTIgMTM6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHBhcnNlIG9pZHMgaW4gdmlldyBzdGF0ZW1lbnRzIHRoZSBzYW1lIHdheSB0aGUgYXBwcyBkbyBpdCAoY29uc2lzdGVuY3ksIGhlIHNhaWQpCiAgIAoyMDAyLTEyLTEyIDEzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQWRkIGEgZ2V0Um9vdE9JRCBmdW5jdGlvbiB0byB0aGUgcmVnaW5mbyBwb2ludGVyIHBhc3NlZCBpbnRvIGhhbmRsZXJzLgogICAKMjAwMi0xMi0xMiAxMzozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNoYW5nZSBjcmVhdGUgYW5kIGR1cGxpY2F0ZSByb3cgdG8gcmV0dXJuIHNwZWNpZmljIGNvbnRleHQgaW5zdGVhZCBvZiBnZW5lcmljCiAgIG5ldHNubXBfaW5kZXg7IGNhdGNoIGVycm9yIGZyb20gcGFyc2Vfb2lkX2luZGV4ZXMgb24gcm93IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIFByaW50IGVycm9ycyB0byBTVERFUlIgaW5zdGVhZC4KICAgICAoYWN0dWFsbHkgZG9uJ3QgYmVjYXVzZSB0aGVzZSBzdGF0ZW1lbnRzIGFyZSBjb21tZW50ZWQgb3V0IGluIHRoZQogICAgIGZpcnN0IHBsYWNlKQogICAKMjAwMi0xMi0xMiAxMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJldmVyc2UgdGhlIGNvbnRleHQgb2YgYSBjb250ZXh0IGlmIHN0YXRlbWVudCBzbyBpZiBub3QgdGhlIGNvbnRleHQKICAgdGhlbiBkb24ndCB1c2UgdGhlIGNvbnRleHQgaW4gdGhlIGdpdmVuIGNvbnRleHQuCiAgIAoyMDAyLTEyLTEyIDEyOjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCBsb25nLWRlcHJlY2F0ZWQgLXEgYW5kIC1TIG9wdGlvbnMKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMTItMTIgMTI6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBtZXNzYWdlIGluIHVzYWdlCiAgIAoyMDAyLTEyLTEyIDExOjM3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuMS5kZWYsIGFnZW50L3NubXBkLmM6CgogICBJbXBsZW1lbnQgYSBjb21tYW5kLWxpbmUgb3B0aW9uICgtUykgdG8gc2V0IHRoZSBmYWNpbGl0eSB0byB1c2Ugd2hlbgogICBsb2dnaW5nIHZpYSBzeXNsb2cuICAgQmFzZWQgb24gYW4gaWRlYSBieSBKb2VsIFJvc2RhaGwgKFBhdGNoICM2Mjc3MDEpCiAgIE5vdGUgdGhhdCAtbCBhbmQgLUwgYXJlIGFscmVhZHkgdGFrZW46LSgKICAgCiAgIFRvRG86CiAgICAgUHJvdmlkZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgZm9yIGJvdGggdGhpcywgYW5kIHRoZSBzeXNsb2cgdG9rZW4gKCdzbm1wZCcpLgogICAKMjAwMi0xMi0xMiAxMToxOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwo6CgogICBTdXBwb3J0IHNldHRpbmcgb2Ygc3lzRGVzY3IgYW5kIHN5c09iamVjdElEIHZpYSBzbm1wZC5jb25mCiAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyAodGhvdWdoIG5vdCB2aWEgU05NUCBTRVQgcmVxZXN0cykuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3NzAyIGFuZCAjNjI4MDExKQogICAKMjAwMi0xMi0xMiAxMDo1OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGFsbF9oZWxwZXJzLmMsIHRhYmxlLmM6CgogICBTdXBwcmVzcyBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBDaHJpcyBKb2hucyAoIzY0NDA0MSkKICAgCjIwMDItMTItMTIgMTA6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBVc2UgJ3N5c2NvbmYnIHRvIHJlcG9ydCBvbiBTb2xhcmlzIG1lbW9yeSB1c2FnZS4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQmVuIFN0ZXJuICgjNjUxMTgyKQogICAKMjAwMi0xMi0xMiAxMDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQmFzaWMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgQWdlbnRYIHNvY2tldHMgKG9uIHRoZSBtYXN0ZXIgc2lkZSBhdCBsZWFzdCkuCiAgIFNlZSBGZWF0dXJlIFJlcXVlc3QgIzYzMjU1NgogICAKMjAwMi0xMi0xMiAwODo1NyAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBjcmVhdGUgdmVyc2lvbiB0YWcgZnJvbSB2ZXJzaW9uIHNvIGN2cyBleHBvcnQgd29ya3M7IGZpeCBSRUw7IGFkZCB0YXIuZ3oKICAgb2Ygc291cmNlIGFzIGRlcGVuZGVuY3kgZm9yIHJwbWZpbGVzCiAgIAoyMDAyLTEyLTEyIDA4OjA0ICBuYmEKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2VudW0uYywgc25tcF9zZWNtb2QuYywgc25tcF90cmFuc3BvcnQuYwo6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTIgMDc6MTggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb2N1bWVudCB0aGUgLU9VIG9wdGlvbiwgYW5kIGFscGhhYmV0aXNlIHRoZSBoYW5kbGluZyBvZiBvcHRpb25zLgogICAKMjAwMi0xMi0xMiAwNjoyNSAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgJ3NubXBpbmZvcm0nIGFzIGEgcmVsYXRpdmUgbGluaywgcmF0aGVyIHRoYW4gYW4gYWJzb2x1dGUgb25lLgogICBGaXggcHJvdmlkZWQgYnkgdGhlIGluZGVmYXRpZ2FibGUgU3RlZmFuIFJhZG1hbiAoQnVnICM2NTI1ODcpCiAgIAoyMDAyLTEyLTEyIDA1OjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFF1b3RlIGNvbmZpZ3VyZSBvcHRpb25zIHdoZW4gY29udHJ1Y3RpbmcgbmV0LXNubXAtY29uZmlndXJlIGFuZCBuZXQtc25tcC1jb25maWd1cmUuaAogICBUaGlzIGFsbG93cyBvcHRpb25zIGNvbnRhaW5pbmcgc3BhY2VzLCBldGMsIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5LgogICAoU2VlIEZlYXR1cmUgUmVxdWVzdCAjNTQ3MTUyKQogICAKMjAwMi0xMi0xMSAxNjo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgUGF0Y2ggZm9yIEZyZWVCU0QuIFRoYW5rcyB0byBKdW4gS3VyaXlhbWEKICAgCjIwMDItMTItMTEgMTI6MTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wX2xvZ2dpbmcuYzoKCiAgIFRyeSBkaXNhYmxpbmcgbGluZS1idWZmZXJpbmcgb24gV2luZG93cyBzeXN0ZW1zIChzaW5jZSBpdAogICBhcHBhcmVudGx5IGVuYWJsZXMgZnVsbC1idWZmZXJpbmcgaW5zdGVhZCkuICBTZWUgQnVnICM1NTg4MzcuCiAgIAoyMDAyLTEyLTExIDExOjI1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGdldC50LCBnZXRuZXh0LnQsCiAgIG5vdGlmeS50LCBzZXQudDoKCiAgIEV4cGxpY2l0bHkgc2V0IFNOTVAgdmVyc2lvbiA9IDEgKHRoZSBvcmlnaW5hbCBkZWZhdWx0IGFzIGV4cGVjdGVkIGJ5IHRoZSB0ZXN0cykKICAgVGhpcyBzaG91bGQgbm93IHBhc3MgYWxsIHRlc3RzIGFwYXJ0IGZyb20gY29uZi50ICMzCiAgIAoyMDAyLTEyLTExIDA2OjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaDoKCiAgIEJlIG1vcmUgc2VsZWN0aXZlIGluIHVzaW5nIHRoZSA2NC1iaXQgdmVyc2lvbiBvZiBubGlzdC4gKEJ1ZyAjNjExNjU1KQogICAKMjAwMi0xMi0xMSAwNjoyNyAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBub24tZnVuY3Rpb25hbGl0eSBvZiBvbmUgb2YgdGhlIHN1Z2dlc3RlZCBhcHByb2FjaGVzLgogICAoQnVnICM2MTcxMTkpLiAgIFJlcG9ydGVkIGJ5IFF1YW5haCBHaWJzb24tTW91bnQKICAgCjIwMDItMTItMTEgMDY6MjAgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgdGhlCiAgIGVtYmVkZGVkIHBlcmwgc2NyaXB0LiAgKEJ1ZyAjNjE3ODkxKSBGaXggcHJvdmlkZWQgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDItMTItMTEgMDU6NTYgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKFY0LTItcGF0Y2hlcy40KSwgUkVBRE1FLnNubXB2MzoKCiAgIERvY3VtZW50IHRoZSBsb2NhdGlvbiBhc3N1bXB0aW9ucyBiZWluZyBtYWRlIGluIHRoaXMgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgZm9yY2luZyBzdHJpbmdzIHRvIGJlIGRpc3BsYXllZCBpbiBlaXRoZXIKICAgQVNDSUkgb3IgSGV4IGZvcm1hdCwgYnlwYXNzaW5nIHRoZSAiZ3Vlc3MiIG1lY2hhbmlzbSBhcyB0byB3aGljaAogICBpcyBtb3JlIGFwcHJvcHJpYXRlLiAgIFN1Z2dlc3RlZCBieSBOaWNrIEthbmFrYWtvcm4uCiAgICAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYWZmZWN0IG9iamVjdHMgd2l0aCBhIERpc3BsYXktSGludCBpbgogICB0aGVpciBNSUIgZGVmaW5pdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6MzAgIGR0czEyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaAogICAoVjQtMi1wYXRjaGVzLlsyLDI2LDZdKSwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDb21tYW5kLWxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgd2hldGhlciB0byB1bmxpbmsgdGhlIFBJRCBmaWxlIG9yIG5vdC4KICAgTmVjZXNzYXJ5IGZvciBjb3JyZWN0IHRlc3Qgb3BlcmF0aW9uLgogICAKMjAwMi0xMi0xMSAwNDoyMSAgZHRzMTIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIFRoZSBsYXRlc3QgbGlicmFyeSBkZWZhdWx0cyB0byBNT0RVTEU6Om5hbWUgc3R5bGUgb3V0cHV0LAogICBzbyBhZGp1c3QgdGhlIGV4cGVjdGVkIG91dHB1dCBjaGVja3MgYWNjb3JkaW5nbHkuCiAgIEFsc28sIHRoZXJlIGFyZSBhY3R1YWxseSAzNiB0ZXN0cywgbm90IDM1IQogICAKMjAwMi0xMi0xMSAwNDoxNyAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgSW5pdGlhbGlzZSB0aGUgU05NUCBsaWJyYXJpZXMsIHRvIHNldCB1cCB0aGUgT0lEIHRyZWUuCiAgIEFkZHJlc3NlcyBidWdzICM2MzgwMjQgYW5kICM2Mjc2NDMKICAgICBbUW46IERvIHdlIG5lZWQgdG8gc3VwcGx5IGFuICdhcHBuYW1lJyAoYy5kIHRoZSBTTk1QIG1vZHVsZSkgP10KICAgCjIwMDItMTItMTAgMTk6MjkgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEFsbG93IHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvZiBwZXJzaXN0ZW50IGRpcmVjdG9yeQogICAKMjAwMi0xMi0xMCAxOToyNCAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJlcG9ydCBlcnJvcnMgaGFuZGxpbmcgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzCiAgIAoyMDAyLTEyLTEwIDE5OjIzICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBhc3MgdXAgZXJyb3Igb24gZGlyZWN0b3J5IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEwIDE3OjI3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJldHRlciByZXNwZWN0IGZvciB0aGUgbWF4IHdpZHRoIG9wdGlvbiAoc25tcHRyYW5zbGF0ZSAtVGQpCiAgIAoyMDAyLTEyLTEwIDE3OjI2ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBvaWRPdXRwdXRGb3JtYXQgb3B0aW9uCiAgIAoyMDAyLTEyLTEwIDE3OjI1ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENsZWFuIHVwLiBSZW1vdmUgY2FsbHMgdG8gb2Jzb2xldGUgZnVuY3Rpb25zIHNubXBfc2V0X3F1aWNrX3ByaW50LAogICBzbm1wX2dldF9kdW1wX3BhY2tldCwgc25tcF9nZXRfc3VmZml4X29ubHkuIFJlbW92ZSBsYXN0IHRyYWNlcyBvZiB0aGUKICAgbm9uX3NlcXVlbnRpYWwgYmFja3dhcmRzIGhhY2suIE1ha2Ugc3VyZSBpdCB3b3JrcyBmb3IgYWxsIC1PIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEwIDExOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjI2KSwKICAgaW50ZXJmYWNlcy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGVtcHR5IGxpbmVzIGluIC9wcm9jL25ldC9kZXYgIChCdWcgIzYyNTQyNikKICAgCjIwMDItMTItMTAgMTE6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdjMuYzoKCiAgIEZyZWUgZGVzdGluYXRpb24gbWVtb3J5IGJlZm9yZSBjbG9uaW5nIFNOTVAgRW5naW5lIElELgogICBGaXggcHJvdmlkZWQgYnkgTWFydGluIENhcmxzc29uLiAgKEJ1ZyAjODM1NDgxKQogICAKMjAwMi0xMi0xMCAxMTowNyAgZHRzMTIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBBZGQgIiRDb25maWd7Y2NmbGFnc30iIHRvIENDRkxBR1MuICAgKFNlZSBidWcgIzY0MDg5OSkKICAgCjIwMDItMTItMTAgMTA6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY0LTItcGF0Y2hlcy44KSwgaXBBZGRyLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgTGludXggdmlydHVhbCBpbnRlcmZhY2VzIGluIHRoZSBpcEFkZHJlc3NUYWJsZS4KICAgKE5vdGUgdGhpcyBkb2VzICpub3QqIGluY2x1ZGUgc2VwYXJhdGUgcGVyLXYtaW50ZXJmYWNlIHN0YXRpc3RpY3MKICAgIGluIHRoZSBpbnRlcmZhY2VzIHRhYmxlKS4KICAgCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEplbnMgU2l0dG5lciAoIzYyMTI3NCkKICAgCjIwMDItMTItMTAgMDQ6NTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiBleHRyYW5lb3VzIF5NIGNoYXJhY3RlcnMuCiAgIAoyMDAyLTEyLTEwIDAyOjM2ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdoZW4gdXNpbmcgLU9xdiBhbmQgcHJpbnRpbmcgYW4gZW1wdHkgc3RyaW5nIHlvdSBjb3VsZCBlbmQgdXAgd2l0aAogICBhIE5VTEwgc3RyaW5nIGFuZCBub3QgYW4gZW1wdHkgc3RyaW5nIGxlYWRpbmcgdG8gc29tZSB2ZXJ5IG9ic2N1cmUKICAgcHJvYmxlbXMgaW4gc25tcHRhYmxlIGFuZCBvdGhlciBhcHBsaWNhdGlvbnMuCiAgIAoyMDAyLTEyLTA5IDExOjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBIYW5kbGUgbWlzc2luZyBpbnRlZ2VyIHZhbHVlcyAod2hldGhlciAzMi0gb3IgNjQtYml0ISkuICAgT29wcyEKICAgCjIwMDItMTItMDkgMTA6MTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuMzgpLCBzbm1wX2FwaS5jOgoKICAgSGFuZGxlIGludGVnZXItYmFzZWQgdmFsdWVzIGNvcnJlY3RseSBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVGhvbWFzIFdlYmVyICgjNTYxMDcxKQogICAKMjAwMi0xMi0wOSAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVGFrZSBub3RlIG9mIHN1YmFnZW50LXJlcXVlc3RlZCBieXRlIG9yZGVyaW5nIGluIHN1YnNlcXVlbnQgY29tbXVuaWNhdGlvbnMuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFVyYmFuICgjNjMyMjg0KQogICAKMjAwMi0xMi0wOSAwOTozMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMjUpLCBzbm1wZC5jOgoKICAgUmVtb3ZlIHRoZSBQSUQgZmlsZSBvbiBhZ2VudCBzaHV0ZG93bi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk5KQogICAKMjAwMi0xMi0wOSAwOToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEhhbmRsZSAnc3RydWN0IHNvY2thZGRyJyB0aGF0IGNvbnRhaW4gJ3NhX2xlbicgZmllbGRzIGRpZmZlcmVudGx5CiAgIHRvIHRob3NlIHRoYXQgZG9uJ3QgKGMuZiBpZmlsdGVyX2lvY3RsLmMgaW4gQklORCA5LjIuMSBzb3VyY2VzKQogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTYpCiAgIAoyMDAyLTEyLTA5IDA3OjEyICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlY29nbmlzZSBCU0RpNCwgYW5kIHR3ZWFrIHRoZSByZWNvZ25pdGlvbiBvZiAnZGxvcGVuJy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwuCiAgIAoyMDAyLTEyLTA5IDA2OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwo6CgogICBSZW1vdmUgc29tZSB3YXJuaW5ncywgYW5kIHRyeSB0byBjb3BlIHdpdGggJ3N5c2N0bCcgZmFpbHVyZXMuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMuCiAgIAoyMDAyLTEyLTA5IDA0OjIwICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIGxpbWl0YXRpb25zIG9uIC91c3IvdWNiL3NlZCwKICAgYW5kIHBvaW50IHBlb3BsZSB0b3dhcmRzIC91c3IvYmluL3NlZCBpbnN0ZWFkLgogICAKMjAwMi0xMi0wNyAwODo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBJbnNlcnQgbmV3bHktY3JlYXRlZCByb3dzIGludG8gdGhlIHBlci1yZXF1ZXN0IGxpc3RzLCBzbyB0aGF0IGxvd2VyCiAgIGxldmVsIGhhbmRsZXJzIGNhbiBhY2Nlc3MgdGhlbS4KICAgICBbUW46IFNob3VsZCB3ZSBkbyBzb21ldGhpbmcgc2ltaWxhciB3aXRoIHVwZGF0ZWQgbGlzdHMgYXMgd2VsbD9dCiAgIAoyMDAyLTEyLTA3IDA4OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlcG9ydCBiYWNrIHRoZSBjb3JyZWN0IGVycm9yIGZvciByb3dzIHRoYXQgY291bGRuJ3QgYmUgY3JlYXRlZC4KICAgCjIwMDItMTItMDcgMDg6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZyZWVpbmcgYSByb3cgdGhhdCBuZXZlciBnb3QgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2UuCiAgIAoyMDAyLTEyLTA2IDE4OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBTa2lwIG9uIG5vbi1vcGVuc3NsIG1hY2hpbmVzLiAgVEhpcyBzaG91bGQgYmUgY2hhbmdlZCB0byBqdXN0IG5vdCB1c2luZyBlbmNyeXB0aW9uIG9uIHRob3NlIG1hY2hpbmVzLCBidXQgSSBkbyBub3QgaGF2ZSB0aGUgdGltZSBhdCB0aGUgbW9tZW50CiAgIAoyMDAyLTEyLTA2IDEzOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMTM6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMjowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCBkZWxldGUgdGhlICJvbGQiIChub24tZXhpc3RlbnQpIHJvdywgd2hlbiB0aWR5aW5nIHVwIGFmdGVyCiAgIGNyZWF0aW5nIGEgbmV3IHJvdy4KICAgCjIwMDItMTItMDYgMTE6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVHdlYWsgaGFuZGxpbmcgb2YgKGludmFsaWQpIFJvd1N0YXR1cyBjcmVhdGlvbiByZXF1ZXN0cyBpbiBhbgogICAiYXV0b21hdGljIGNyZWF0aW9uIiB0YWJsZS4gICBUaGVzZSBzaG91bGQgcmV0dXJuIHdyb25nVmFsdWUgb3IKICAgaW5jb25zaXN0ZW50VmFsdWUsIHJhdGhlciB0aGFuIG5vdFdyaXRhYmxlLgogICAKMjAwMi0xMi0wNSAwNTo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdXBwb3J0IHVzZSBvZiBSb3dTdGF0dXMgb2JqZWN0IHRvIGNvbnRyb2wgY3JlYXRpb24gb2YgbmV3IHJvd3MKICAgKGkuZS4gd2hlbiB0aGUgJ2FsbG93X2NyZWF0aW9uJyBmbGFnIGlzIG5vdCBzZXQpLgogICBUaGlzIHNob3VsZCBkZWFsIHdpdGggZXZlcnl0aGluZyBleGNlcHQgZGV0ZXJtaW5pbmcgd2hldGhlciBhCiAgIHJvdyBpcyByZWFkeSB0byBnbyAnYWN0aXZlJyAoZS5nLiB2aWEgJ2NyZWF0ZUFuZEdvJykuICBTdWNoIGEKICAgZGVjaXNpb24gaXMgaW5oZXJlbnRseSBzcGVjaWZpYyB0byBlYWNoIGluZGl2aWR1YWwgTUlCLCBzbyBtdXN0CiAgIHJlYWxseSBiZSBkb25lIGluIHRoZSBsb3dlci1sZXZlbCBoYW5kbGVyLgogICAKMjAwMi0xMi0wNSAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdG9wIHByb2Nlc3Npbmcgd2hlbiBhICdub24td3JpdGFibGUgY3JlYXRlJyBpcyBkZXRlY3RlZC4KICAgCjIwMDItMTItMDQgMTk6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIC0gQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAtIHJ1biBldmVudFRhYmxlIGVudHJpZXMuCiAgIAoyMDAyLTEyLTA0IDE5OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmM6CgogICBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIAoyMDAyLTEyLTA0IDE5OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYywKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jOgoKICAgdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIHRvIGdldCByZWFsIHN0cmluZ3MgZnJvbSBtaWIgZGF0YS4KICAgCjIwMDItMTItMDQgMTk6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLAogICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAosIG10ZUV2ZW50VGFibGUuYywgbXRlRXZlbnRUYWJsZS5oOgoKICAgLSBpbXBsZW1lbnRlZCB0aGUgbXRlRXZlbnRUYWJsZSBhbmQgdGhlIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUKICAgICAtIEZZSSwgdG90YWwgaW1wbGVtZW50YXRpb24gdGltZTogYWJvdXQgNCBob3VycwogICAgIC0gbm8gZWFzeS10by11c2UgLmNvbmYgd3JhcHBlcnMgeWV0IHRob3VnaC4gIHNubXBzZXQgc3VwcG9ydCBvbmx5LgogICAKMjAwMi0xMi0wNCAxOToyOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIC0gdXNlIHRoZSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbiB3aGljaCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMTItMDQgMTk6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gY3JlYXRlIGEgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24uCiAgIC0gQWxsb3cgcm93IGNyZWF0aW9uIHVzaW5nIHJvd1N0YXR1cyB3aGVuIHRoZSBkYXRhIGNvbHVtbiBleGlzdHMsIGJ1dAogICAgIHRoZXJlIGlzIG5vIGFzc2lnbmVkIHZhbHVlIChpZSwgaXMgTlVMTCkuCiAgIC0gdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIGluc3RlYWQgb2YgbWVtZHVwIHRvIG1ha2Ugc3VyZSBhbgogICAgIGltcGxpY2l0IE5VTEwgaXMgaW4gcGxhY2UgZm9yIHRoaW5ncyB0aGF0IHVzZSB0aGUgZGF0YSBhbmQgbmVlZCBpdAogICAgIGFzIGEgcmVhbCBzdHJpbmcuCiAgIAoyMDAyLTEyLTA0IDE5OjI3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBkb2N1bWVudCAtLXByZWZpeAogICAKMjAwMi0xMi0wNCAxMzoxNiAgaGFyZGFrZXIKCiAgICogTkVXUyAoVjQtMi1wYXRjaGVzLjkpLCBORVdTOgoKICAgZG9jdW1lbnQgNC4yLjYKICAgCjIwMDItMTItMDMgMDQ6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIENsb3NlIHByaW50ZXIgZmlsZSBoYW5kbGUgd2l0aCAnZmNsb3NlJyByYXRoZXIgdGhhbiAncGNsb3NlJyB0byBhdm9pZAogICBhIG1lbW9yeSBsZWFrIG9uIFNvbGFyaXMgMi42LiAgIEZpeCBwcm92aWRlZCBieSBKYWNvYm8gTWF0dXRlLgogICAKMjAwMi0xMi0wMyAwNDozMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgVHJhbnNsYXRlIEdldE5leHQgKGFuZCBHZXRCdWxrKSByZXF1ZXN0cyBpbnRvIHNpbXBsZSBHZXQgcmVxdWVzdHMsCiAgIHdoZW4gcGFzc2luZyB0aGVtIGZyb20gdGhlIHRhYmxlX2RhdGEgaGFuZGxlciB0byB0YWJsZV9kYXRhc2V0LgogICAgIFRoaXMgaXMgYW5hbG9nb3VzIHRvIGhvdyB0aGUgaXRlcmF0ZSBoYW5kbGVyIHdvcmtzLCBhbmQgYWxsb3dzCiAgIGxvd2VyIGxldmVsIGhhbmRsZXJzIHRvIG92ZXJyaWRlIHRoZSBiYXNpYyBiZWhhdmlvdXIgKHdpdGhvdXQKICAgaGF2aW5nIHRvIGR1cGxpY2F0ZSBhbGwgb2YgdGhlICJmaW5kIG5leHQgcm93IiBjb2RlIGV2ZXJ5IHRpbWUpLgogICAKMjAwMi0xMi0wMiAwNDo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmV0dXJuIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zLCByYXRoZXIgdGhhbiB0aGUgU05NUHYxICdub1N1Y2hOYW1lJyBlcnJvci4KICAgVGhpcyB1c2VkIHRvIGJyZWFrIEFnZW50WCBzdWJhZ2VudHMsIGJ1dCB0aGUgbGF0ZXN0IGNoYW5nZSB0byBzbm1wX2FnZW50LmMKICAgKHRvIGNhdGNoIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMpIHNlZW1zIHRvIGhhdmUgZml4ZWQgdGhhdCBwcm9ibGVtLgogICAKMjAwMi0xMi0wMiAwNDo0MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRXhwbGljaXRseSBwYXJlbnRoZXNpc2UgYSBjb21wYXJpc29uLCB0byBrZWVwIHRoZSBjb21waWxlciBoYXBweS4KICAgCjIwMDItMTItMDIgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluY2x1c2l2ZS1yYW5nZSBHZXROZXh0IHJlcXVlc3RzIGFyZSB0cmFuc21pdHRlZCBhcyBHZXQgcmVxdWVzdHMsIHNvIG1heQogICB3ZWxsIHJldHVybiBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zLiAgQ2F0Y2ggdGhlc2UgYXMgd2VsbC4KICAgCjIwMDItMTItMDIgMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2F0Y2ggKGFuZCByZWplY3QpIGF0dGVtcHRzIHRvIGNyZWF0ZSBhIG5ldyByb3cgdmlhIGEgbm9uLXdyaXRhYmxlIG9iamVjdC4KICAgCjIwMDItMTEtMjggMDQ6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE51bGwgb3V0IG9uZSBmaW5hbCBsb29wX2NvbnRleHQgcG9pbnRlciBhZnRlciBiZWluZyBmcmVlZC4KICAgKFBhdGNoIHByb3ZpZGVkIGJ5IFJvZ2VyIE1jQ2FsbWFuKQogICAKMjAwMi0xMS0yNiAxNzo1OSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERpc2NhcmQgdGhlIHNlY29uZGFyeSAoR1JPVVApIERFU0NSSVBUSU9OIGluc2l6ZSBhIE1PRFVMRS1DT01QTElBTkNFCiAgIHRvIGF2b2lkIGxlYWtpbmcgbWVtb3J5LiBUaGFua3MgdG8gRXVnZW5lX0JydWtAYm1jLmNvbQogICAKMjAwMi0xMS0yNiAxNzo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVpbnN0YXRlIHRoZSAtdyBvcHRpb25zIHRoYXQgd2FzIGxvc3QgaW4gdGhlIGluZGVudCBmdXJ5CiAgIAoyMDAyLTExLTI2IDEwOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIFRoZSBub3RpZmljYXRpb24gdmFyaWFibGUgc2hvdWxkbid0IGJlIHN0YXRpYy4gIEEgYnVnIGZvdW5kIHdoaWxlCiAgIHRyYWNraW5nIGRvd24gYSBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IFZlbmljZSBvbiBJUkMuCiAgIAoyMDAyLTExLTI2IDA0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGluY29ycmVjdCB1c2FnZSBvZiBTRV9NQVhfSURTIHZzIFNFX01BWF9TVUJJRFMuCiAgIFJlcG9ydGVkIGJ5ICdzaGluZXBlYWsnCiAgIAoyMDAyLTExLTI1IDIyOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIGhhY2sgb2YgYSBoYWNrIG9mIGEgaGFjaywgb3I6IGZpeCBtdWx0aS1saW5lIEZBUSBxdWVzdGlvbnMKICAgCjIwMDItMTEtMjUgMTA6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMi0xMS0xOCAyMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBhcHBsaWVkIHBhdGNoICM1Mjc2NTAKICAgCjIwMDItMTEtMTEgMTc6MTAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVzcGVjdCB0aGUgbWliZGlycyBjb25mIGRpcmVjdGl2ZS4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTExIDE2OjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggYSBtaXNzaW5nIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0xMSAxNDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgZml4IHRhZGRyIGdlbmVyYXRpb24vcGFyc2luZyBmb3IgcG9ydCBiYXNlZCB0cmFuc3BvcnRzIHRvIHByb3Blcmx5IHVzZQogICBuZXR3b3JrIGJ5dGUgb3JkZXJpbmcuCiAgIAoyMDAyLTExLTExIDE0OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgZml4IHdyaXRlIHN1cHBvcnQgZm9yIHRoZSB0aW1lb3V0IGNvbHVtbgogICAKMjAwMi0xMS0wOSAxMDowNiAgbmJhCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBEbyBhd2F5IHdpdGggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMS0wOSAwOTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wcm9jLmMsIGhvc3QvaHJfcHJpbnQuYwo6CgogICBaZXJvIGlzIGFuIE9LIGZpbGUgZGVzY3JpcHRvci4gLTEgaXMgdGhlIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0wOSAwOTo1NCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICBNb3JlIHRvIHRoZSBwb2ludCBtZXNzYWdlIGZvciB1bmRlZmluZWQgaWRlbnRpZmllcnMuIEJyb3VnaHQgZm9yd2FyZCBmcm9tIDQuMgogICAKMjAwMi0xMS0wOSAwOTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIFByaW50IHRoZSBlcnJvciBpbmZvcm1hdGlvbiBpbiBjYXNlIG9mIGVycm9yCiAgIAoyMDAyLTExLTA5IDA5OjUxICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHYyIGV4Y2VwdGlvbiByZXN1bHRzCiAgIAoyMDAyLTExLTA5IDA5OjQ5ICBuYmEKCiAgICogc2Vkc2NyaXB0LmluLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3RlY3QgUFJFRklYIHdoZW4gaXQgaXMgdGhlIGVudiB2YXIuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0wOSAwOTo0NyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZCBSRkMgMzM3MSBMMlRQLU1JQgogICAKMjAwMi0xMS0wOSAwOTo0NiAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlZCBmcm9tIElBTkEKICAgCjIwMDItMTEtMDcgMDU6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgICAgLSBmaXggLUNmIGFuZCAtQ3cgb3B0aW9uIHByb2Nlc3NpbmcgKHByZXZpb3VzbHkgd291bGQgY29yZSBkdW1wIGlmCiAgICAgICBubyBvcHRpb24gcGFzc2VkKSwgYXMgcG9pbnRlZCBvdXQgYnkgaGFtcGEgb24gI25ldC1zbm1wCiAgIAoyMDAyLTExLTA2IDE1OjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGN1dC9wYXN0ZQogICAKMjAwMi0xMS0wNiAxNTowNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4gJiBtYWtlZmlsZXMKICAgCjIwMDItMTEtMDYgMTQ6MDggIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgbWlzc2luZyBlbmQgcXVvdGUKICAgCjIwMDItMTEtMDYgMTM6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgQERFVkZMQUdTQCB3ZWhlcnZlciB0aGVyZSBpcyBhIEBDRkxBR1NALCBleGNlcHQgZm9yIHRoZSBuZXcgLS1iYXNlLWNmbGFncwogICAKMjAwMi0xMS0wNiAxMzoyMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGFkZCBAREVWRkxBR1NAIHRvIENGTEFHUwogICAKMjAwMi0xMS0wNiAxMzoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHNlcGVyYXRlIGRldmVsb3BlciBjZmxhZ3MgZnJvbSBub3JtYWwgY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEyOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgY2hhbmdlIHN0cnVjdC5oIGluY2x1ZGUgdG8gdXNlICIiIGluc3RlYWQgb2YgPG5ldC1zbm1wLz4sIHNpbmNlIGl0IGl0IGEgbG9jYWwKICAgaW5jbHVkZSwgbm90IGEgc3lzdGVtIGluY2x1ZGUKICAgCjIwMDItMTEtMDYgMTI6MzkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHB1cmdlIElOX1VDRF9TTk1QX1NPVVJDRQogICAKMjAwMi0xMS0wNSAxMjoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBhZGRlZCBhIHhtbHNob3J0IGRlbGltaXRlciBhcyByZXF1ZXN0ZWQgYnkgbGFuZHMgb24gSVJDCiAgIAoyMDAyLTExLTA1IDExOjU5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHRhYnMgLT4gc3BhY2VzIG9ubHkgdHJ5IHRvIGNobW9kIFJPIHNyYyBkaXIgaWYgb3duZXIgb2YgZGlycwogICAKMjAwMi0xMS0wNSAxMTo1NiAgcnN0b3J5CgogICAqIG1raW5zdGFsbGRpcnM6CgogICBtYWtpbmcgYSBkaXJlY3RvcnkgaXMgbm90IGFuIGVycm9yLCBzbyBkb24ndCBzZW5kIG91dHB1dCB0byBzdGRlcnIKICAgCjIwMDItMTEtMDQgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIGFsbG93IHVucmVnaXN0ZXJlZCBzZWN1cml0eSBtb2RlbHMgPD0gMgogICAKMjAwMi0xMS0wNCAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiB0byBiZSBiZXR0ZXIgc3VwcG9ydGVkIChyb3dzdGF0dXMgbm8gbG9uZ2VyIGhhcyB0bwogICBiZSBmaXJzdCBpbiB0aGUgbGlzdCwgLi4uKQogICAKMjAwMi0xMS0wNCAxMToxMyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGNwcGZsYWdzIHRvIC0tY2ZsYWdzCiAgIAoyMDAyLTExLTA0IDExOjEzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkIHN0dWZmIGZvciA1LjAuNyAob3Igd2hhdGV2ZXIpIG1lbnRpb25pbmcgYSBmZXcgbmV3IGZlYXR1cmVzLgogICAKMjAwMi0xMS0wMSAxMjowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgYnVnICM2MzIwOTQgdXNpbmcgdGhlIHN1Z2dlc3RlZCBtZXRob2Q6IHdhdGNoIGZvciBOVUxMIHN0cmVycm9yKCkgcmV0dXJuCiAgIAoyMDAyLTExLTAxIDEwOjA5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB1bmRvIG15IGNoYW5nZXMgZnJvbSByIDUuMTcsIGF0dGVtcHRpbmcgdG8gcmVkdWNlIHJ1bnMgb2YgY29uZmlnLnN0YXR1cwogICBieSB1c2luZyBleHBsaWNpdCBwYXRocyB0byBzcmNkaXIsIGFuZCBsZXQgVlBBVEggZG8gaXQncyB0aGluZwogICAKMjAwMi0xMC0yOSAxNDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB0YXJnZXQgdG8gYnVpbGQgYmluYXJ5IGFycmF5IHRlc3QgYXBwOyB0d2VhayB0byBwYXJzZSB0ZXN0IHRhcmdldCAocmVkdWNlcyBtb3N0CiAgIGJ1dCBub3QgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMpCiAgIAoyMDAyLTEwLTI5IDE0OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggZm9yIGJpbmFyeSBzZWFyY2ggcHJvYmxlbSBub3RlZCBieSBSb215IENocmlzdGVuc2VuIG9uIGNvZGVyczsgcGFydGlhbAogICAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGEgYmluYXJ5IGFycmF5IGl0ZXJhdG9yCiAgIAoyMDAyLTEwLTI5IDE0OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgc2ltcGxlIHRlc3QgcHJvZ3JhbSBmb3IgYmluYXJ5IGFycmF5CiAgIAoyMDAyLTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBkZWJ1Z2dpbmcgYXMgbm90ZWQgaW4gYnVnICM2MzAzNDgKICAgCjIwMDItMTAtMjggMTk6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlZCAuMS42LjMgdG8gMS4zLjYgYXMgbm90ZWQgaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAKMjAwMi0xMC0yOCAxNTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgY2hhbmdlZCBwYXNzd29yZAogICAKMjAwMi0xMC0yOCAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgbWlzYyB2YWNtIGZpeGVzCiAgIAoyMDAyLTEwLTI4IDA4OjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgZXJyb25lb3VzIGZyZWUoKSBvZiByeGJ1ZgogICAKMjAwMi0xMC0yNSAxMjozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4ZWQgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIC0+IE5FVFNOTVBfT1BfQ0FMTEJBQ0tfRElTQ09OTkVDVCBhcyBub3RlZCBieSBUcm9nTCBvbiBJUkMKICAgCjIwMDItMTAtMjUgMDc6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYSBORVRTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHlwZSBjYWxsYmFjayBpZiB3ZQogICAgICAgZGVjaWRlIHRvIHNodXRkb3duIGEgc3RyZWFtIHR5cGUgY29ubmVjdGlvbiBiZWNhdXNlIHdlIHJlY2VpdmVkCiAgICAgICBhbiBleGNlc3NpdmVseSBsYXJnZSBwYWNrZXQuCiAgIAoyMDAyLTEwLTI0IDEwOjQxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgc3VwZXItYnVnLXBhdGNoIGdlbmVyYXRvciBTdGVmYW4gUmFkbWFuIHRvIHRoZSBUSEFOS1MgbGlzdAogICAKMjAwMi0xMC0yNCAxMDo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgYnVnICM2MTc1MDg6IGFkZGVkIHRoZSBtdGFfc2VuZG1haWwgbW9kdWxlIHRvIC0taGVscAogICAKMjAwMi0xMC0yNCAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgaW5zdGFsbCBsaXN0IGZvciBtaWIyYyBjb25mIGZpbGVzIGFuZCByZW1vdmUgb2xkIG9uZQogICAKMjAwMi0xMC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggaW5jb3JyZWN0IHZhcmlhYmxlIG5hbWUgSSBub3RpY2VkIHdoZW4gY29weWluZyB0byBhIGRpZmZlcmVudCBjb25maWd1cmUgc2NyaXB0IGluIGFub3RoZXIgcGFja2FnZQogICAKMjAwMi0xMC0yMyAyMDoyOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXhlZCBidWcjNjE3ODM4OiB2ZXJzaW9udGFnIGlzbid0IGRpc3RyaWJ1dGVkIGFuZCBzaG91bGRuJ3QgYmUgYWx3YXlzCiAgIHVzZWQgaW4gdGhlIG1ha2UgZGlzdGNsZWFuIGNhbGxzLgogICAKMjAwMi0xMC0yMyAyMDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgaW5jb25zZXF1ZW5jaWFsIG1lbW9yeSBsZWFrcyBmaXhlZCAoaW5pdCB0aW1lIGxlYWtzKS4KICAgCjIwMDItMTAtMjMgMjA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEZpeGVkIHZhcmlvdXMgbWVtb3J5IGxlYWtzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBhcyBwb2ludGVkIG91dCBieQogICBSb2dlciBNY0NhbG1hbiBhbmQgSmF5IFBhcmxhciBvbiB0aGUgLWNvZGVycyBsaXN0IChpbmNsdWRpbmcgdGhlaXIgcGF0Y2hlcykKICAgCjIwMDItMTAtMjMgMTg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHNubXBOb3RpZnlUYWJsZS5jCiAgIAoyMDAyLTEwLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmcmVlIGEgcHJldmlvdXNseSBtYWxsb2NlZCBwb2ludGVyIHRvIHRoZSB3YXRjaCB2YXJpYWJsZSBiZWZvcmUgcmVwbGFjaW5nIGl0LgogICAKMjAwMi0xMC0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB1bnVzZWQgbWFsbG9jLgogICAKMjAwMi0xMC0yMSAxMjo0MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICAgIC0gYWRkIHN5c3RlbSBmaWxlIGZvciBTb2xhcmlzIDkKICAgCjIwMDItMTAtMTcgMjI6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgT3B0aW1pemVkIHRoZSBWQUNNIGNoZWNrcyBpbiB0aGUgY2FzZSBvZiBnZXRuZXh0L2dldGJ1bGsgc28gdGhhdCB3aGVuCiAgIGxhcmdlIHBvcnRpb25zIG9mIHRoZSBtaWIgdHJlZSBhcmUgZXhjbHVkZWQsIHRoZSBzdWItbWliIGFjY2VzcyBjb2RlCiAgIHdvbid0IGJlIGNhbGxlZCBhdCBhbGwgKGZpbmFsbHkgaW1wbGVtZW50aW5nIGEgdmVyeSBsb25nIG5lZWRlZCBvcHRpbWl6YXRpb24pLgogICAKMjAwMi0xMC0xNyAyMjo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBuZXcgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29tbW9uYWxpdHkgYmV0d2VlbiB0d28gb2lkczogbmV0c25tcF9vaWRfZmluZF9wcmVmaXgKICAgCjIwMDItMTAtMTcgMjI6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFByaW50IG91dCBhICJzdW1tYXJ5IiBhdCB0aGUgZW5kIG9mIGEgcnVuCiAgIAoyMDAyLTEwLTE3IDA1OjQwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBQcm9wZXJseSB0ZXJtaW5hdGUgYSBsb29wIGNvbnN0cnVjdCAobWlzc2luZyAnQGVuZEAnKQogICBTcG90dGVkIGJ5IEthcmwgQ29vcGVyLiAgICBPb3BzIQogICAKMjAwMi0xMC0xNiAxNzoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIGNvbnRpbnVlIGFmdGVyIEVJTlRSIGNhdXNlZCBieSBzaWduYWwgd2UgaGFuZGxlZCAoaW5zdGVhZCBvZiBmYWxsaW5nCiAgIHRob3JvdWdoIHRvIGV4aXQhKQogICAKMjAwMi0xMC0xNiAxNzowMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBjaGVjayBmb3Igb3VyIHNpZ25hbCBmbGFncyBvbiBFSU5UUiwgYW5kIG9ubHkgcmVsZXNlY3QgaWYgbm90IGNoYW5nZWQ7CiAgIGRlYnVnIG1zZyB3aGVuIHNpZ25hbHMgcmVnaXN0ZXJlZCBhbmQgZm9yIHNlbGVjdC9mZHNldHM7CiAgIAoyMDAyLTEwLTE2IDE1OjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSBDUFBGTEFHUyBiZWZvcmUgdXNlciBjb25maWd1cmUgQ0ZMQUdTLi4gc28gaWYgYSB1c2VyIGFkZHMgc29tZXRoaW5nCiAgIGxpa2UgL3Vzci9sb2NhbC9pbmNsdWRlIHRvIENGTEFHUywgd2Ugd2lsbCBwaWNrIHVwIG91ciBsb2NhbCBpbmNsdWRlcyBmaXJzdCwKICAgaW5zdGVhZCBvZiBpbmNsdWRlcyBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4uCiAgIAoyMDAyLTEwLTE2IDAwOjA2ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaAo6CgogICBtYWtlIHN1cmUgc25tcHRyYXBkIGFsd2F5cyBob25vcnMgRFNfQVBQX05VTUVSSUNfSVAgZm9yIGxvZ2dpbmcKICAgCjIwMDItMTAtMTUgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV0c25tcF9nZXRfYm9vbGVhbiAtPiBuZXRzbm1wX2RzX2dldF9ib29sZWFuCiAgIAoyMDAyLTEwLTE1IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IGNvbnN0YW50IHVzZWQgaW4gYXNzZXJ0LCBub3RlZCBvbiBjb2RlcnMKICAgCjIwMDItMTAtMTUgMTQ6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHN5c2xvZyBmb3IgbGlid3JhcCBsb2cgbGV2ZWxzCiAgIAoyMDAyLTEwLTE1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZCB5ZXQgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTQgMTE6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZml4IGlwdjYgdHJhbnNwb3J0IGFkZHJlc3Mgc3BlY3MKICAgCjIwMDItMTAtMTEgMTk6MTggIGhhcmRha2VyCgogICAqIFJFQURNRS5jbXUsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFJlbW92ZSB0aGUgUkVBRE1FLmNtdSBmaWxlIChlbnRpcmVseSBvdXQgb2YgZGF0ZSBhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMTAtMTEgMTY6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCAjNjAwOTMzIGZyb20gRG9uYWwgRGlhbW9uZDogZHNrUGVyY2VudE5vZGUgZm9yIEZyZWVCU0Q0CiAgIAoyMDAyLTEwLTExIDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU5ODI4MCBmcm9tIEplZmYgV2F0c29uOiBtYWtlIC1PUSBub3QgcHJpbnQgdHlwZSB3YXJuaW5ncy4KICAgCjIwMDItMTAtMTEgMTY6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggaW5jbHVkZSBkaXJlY3RvcnkKICAgCjIwMDItMTAtMTEgMTY6NDIgIGhhcmRha2VyCgogICAqIGRpc3QvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBycG0gc3ViZGlyCiAgIAoyMDAyLTEwLTExIDE2OjMyICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYmV0dGVyIGRvY3MgYWJvdXQgYXV0by1leHRyYWN0ZWQgU0YgbmV3cwogICAKMjAwMi0xMC0xMSAxNjowNCAgaGFyZGFrZXIKCiAgICogZGlzdC86IE1ha2VmaWxlLCBuZXQtc25tcC5zcGVjOgoKICAgbWVyZ2UgaW4gcGF0Y2ggIzU5ODg2OTogTWFyayBIYXJpZydzIGJldHRlciBycG0gc3R1ZmYKICAgCjIwMDItMTAtMTEgMTU6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgQWx0ZXJuYXRpdmUgdG8gYSBwYXRjaCBzdWdnZXN0aW9uOiBhZGQgLU9VIHRvIG5vdCBwcmludCBVTklUUyBzdWZmaXhlcy4KICAgCjIwMDItMTAtMTEgMTU6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgLi4vYWdlbnQvc25tcF9hZ2VudC5jCiAgIAoyMDAyLTEwLTExIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZG9udFByaW50VW5pdHMKICAgCjIwMDItMTAtMTEgMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoICM2MTcxNTEgZnJvbSBBbmRyZXcgUnVja2VyIEpvbmVzOiBmaXggbGlid3JhcCBoZWFkZXJzLgogICAgIC0gSSdtIHN0aWxsIHVuaGFwcHkgd2l0aCBob3cgbGlid3JhcCBmdW5jdGlvbnMuLi4gIG5lZWRzIHRoaW5raW5nIGFib3V0LgogICAKMjAwMi0xMC0xMSAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjMzEyNjk0IGZyb20gSm9obiBTdXJ2ZXlvcjogZml4IGRpc2tpbyBvbiBzb2xhcmlzLgogICAKMjAwMi0xMC0xMSAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzYyMTM5OCBmcm9tIE1hdHRoZXcgS3JlbnplciB0byBmaXggbGludXggYXJwIHRhYmxlLgogICAKMjAwMi0xMC0xMSAwOTo0NyAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIGNoZyBuZXRzbm1wbWlicyAtPiBuZXRzbm1wbWlic3NrZCAobm90ZWQgb24gY29kZXJzIGJ5IEplZCBXaGl0dGVuKQogICAKMjAwMi0xMC0xMSAwOTo0NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBub3RlIHNxdWFyZSBicmFja2V0cyBmb3IgSVB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTEgMDk6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHNlbGVjdCgpIG1vcmUgcXVpY2tseSBpZiBhbiBFSU5UUiBoYXBwZW5zCiAgIAoyMDAyLTEwLTExIDAxOjUxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhcHBsaWVkIEhhcnJpZSdzIHBhdGNoIGRlc2NyaWJpbmcgbG93IG1lbW9yeSBmb290cHJpbnRzCiAgIAoyMDAyLTEwLTEwIDExOjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIEhvcnN0ZWluIHRvIGZpeCBLU00gbW9kdWxlCiAgIAoyMDAyLTEwLTEwIDA2OjIyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgICAgLSByZW1vdmUgYmFkIGlubGluZXMgd2hpY2ggY2F1c2UgZmlsZSBub3QgdG8gY29tcGlsZSB3aXRoIFN1biBDQy4KICAgICAgIFNlZSBidWcgIzYyMDgyNy4KICAgCjIwMDItMTAtMTAgMDI6MDMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCAubGEgZmlsZXMKICAgCjIwMDItMTAtMTAgMDI6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1ha2UgdGhlIC5zcGVjIGZpbGUgYWxtb3N0IHVzYWJsZS4KICAgCjIwMDItMTAtMDggMTg6NTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEZBUSB1cGRhdGVzIGZvciBkb3dubG9hZCBzaXRlcy4KICAgCjIwMDItMTAtMDggMTA6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIFBhdGNoIGZyb20gSm9zaHVhIEtlcm9lcyBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCiAgIAoyMDAyLTEwLTA3IDEzOjU3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGRlZCBhIHN0YXRlbWVudCBhYm91dCB0aGUgQ09QWUlORyBmaWxlIChzdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0xMC0wNiAxNDozMiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBuc2ItKiBsaWtlcyBmdWxsIHBhdGhzLCB1cGRhdGUgZXhhbXBsZXM7IGZpeCBzb3VyY2Vmb3JnZSB1cGxvYWQgc2l0ZQogICAKMjAwMi0xMC0wNSAxNzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMKLCBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC42ICkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjUgLT4gVjUuMC42CgoyMDAyLTEwLTA1IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTAtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjYKICAgCjIwMDItMTAtMDUgMTQ6MDggIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgaWxsZWdhbCBmbGFnIGZyb20gbnNiLWNvbmZpZwogICAKMjAwMi0xMC0wNSAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgYWxsb2NhdGUgMCBieXRlcwogICAKMjAwMi0xMC0wNSAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCByZWZlcmVuY2UgcHRyIGFmdGVyIGlzIGhhcyBiZWVuIGZyZWUnZC4KICAgCjIwMDItMTAtMDQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBzZWNvbmRhcnkgZWZmZWN0IG9mIGJ1ZyA2MTM5ODMgYW5kIHJlYWxseSBmaXggaXQgdGhpcyB0aW1lLgogICAKMjAwMi0xMC0wMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLzogdHVubmVsLmMgKFY0LTItcGF0Y2hlcy4yKSwgdHVubmVsLmMKOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIGZpeCBzb21lIGNvZGluZyBlcnJvcnMKICAgCjIwMDItMTAtMDEgMDc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG9mZmljYWwgcGF0Y2ggNjE3MDQ5OiBpbml0aWFsaXplIGNvbnRhaW5lciBsaXN0IGVhcmxpZXIgKGluIGluaXRfYWdlbnQpCiAgIAoyMDAyLTEwLTAxIDA3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycyAoZGFtbiB3aW5kb3dzIGVkaXRvcnMpCiAgIAoyMDAyLTA5LTMwIDE1OjE3ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC41ICkKICAgCjIwMDItMDktMzAgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIGluZm8gb24gbWQ1c3VtcyBhbmQgZ3BnIHNpZ25pbmcKICAgCjIwMDItMDktMzAgMTU6MTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZml4IGNobW9kIHRvIGRvIHdoYXQgSSB3YW50ZWQsIG5vdCB3aGF0IEkgdG9sZCBpdAogICAKMjAwMi0wOS0zMCAxNToxNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTWFrZWZpbGUudG9wLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNQogICAKMjAwMi0wOS0zMCAxNDoyNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIG1lcmdlIHByZSBjaGFuZ2VzIGludG8gNS4wLjQgY29tbWVudHMKICAgCjIwMDItMDktMzAgMTQ6MjUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE5FV1MgdXBkYXRlcyBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgbXkgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuMyAtPiBWNS4wLjUKCjIwMDItMDktMzAgMTY6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtYWtlIGxlbiBhIHNpemVfdCB0byBmaXggcHJvYmxlbSBvbiA2NCBiaXQgc3lzdGVtLCByZXBvcnRlZCBieSBzZWJub2RgIGluIElSQwogICAKMjAwMi0wOS0zMCAxNjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdGF0aWMgbG9jYWwgdmFycywgYXMgdGhleSBhcmUgbGlrZWx5IHRvIGNhdXNlIHByb2JsZW1zIHdpdGggdGhyZWFkcwogICAKMjAwMi0wOS0zMCAxNTo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtYWtlIHN1cmUgaW5zdGFsbCBkaXIgaXMgcmVsYXRpdmUgdG8gYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTMwIDE1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnCiAgIAoyMDAyLTA5LTMwIDE1OjE5ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZml4IHR5cG9zCiAgIAoyMDAyLTA5LTMwIDE1OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYXZvaWQgaW5maW5pdGUgbG9vcAogICAKMjAwMi0wOS0zMCAxNDo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGFzc3VtZSBtYWtlIGlzIEdOVSBtYWtlLCBhbmQgc2VhcmNoIGZvciBpdC4gcmVxdWlyZSB1c2VyIHRvIHNldCBhbgogICBlbnYgdmFyIGlmIG5vIEdOVSBtYWtlIGlzIGZvdW5kIGluIFBBVEgKICAgCjIwMDItMDktMzAgMTQ6NTggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgaWYgQ1ZTIGRpciBpcyBybywgYXV0b21hZ2ljYWxseSBtYWtlIGl0IHJ3IGJlZm9yZSB1cGRhdGUgYW5kIHJvIGFmdGVyIHVwZGF0ZQogICAKMjAwMi0wOS0yNyAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbWFrZSBnZXRfc2V0X2NhY2hlKCkgcmV0dXJuIGFuIGVycm9yIGlmIG5vIHByZXZpb3VzIFNFVCBoYXMgYmVlbiBzdGFydGVkLgogICAKMjAwMi0wOS0yNyAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRvdWJsZSBjaGVjayBhZ2FpbnN0IHNvbWUgbnVsbCBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbSBpbiB0aGUgY2FjaGUgY29kZS4KICAgCjIwMDItMDktMjcgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCB0cmVlY2FjaGVfbnVtIHRvIC0xIGF0IGluaXQgb2YgbWVtb3J5LCB0byBiZSBleHRyYSBzYWZlLgogICAKMjAwMi0wOS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICBtb3ZlIGxpYndyYXAgdmFyaWFibGVzCiAgIAoyMDAyLTA5LTI2IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgb2ssIHJlbW92ZSB0Y3B3cmFwcGVycyB2YXJzCiAgIAoyMDAyLTA5LTI2IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZGVmaW5lIHN0dXBpZCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRjcHdyYXBwZXJzIGJlY2F1c2UgdGhleSBkb24ndCBnZXQKICAgY29uY2VwdHMgb2YgZW5jYXBzdWxhdGlvbi4gIGFyZy4KICAgCjIwMDItMDktMjYgMTE6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBjaGFuZ2UgY2FsbF9wdiB0byBwZXJsX2NhbGxfcHYgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHBlcmwuCiAgIAoyMDAyLTA5LTI2IDExOjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcnVuIHN0cmR1cCgpIG9uIGdldF9taWJfZGlyKCkgcmVzdWx0cyB0byBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEV1Z2VuZSBCcnVrLgogICAKMjAwMi0wOS0yMyAxMzoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1lbnRpb24gZnJlc2htZWF0CiAgIAoyMDAyLTA5LTIzIDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSBpbXBsZW1lbnQgYSAobG9uZyBuZWVkZWQpIHNldHRhYmxlIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBjdXJyZW50CiAgICAgcGVyc2lzdGVudCBpbmZvcm1hdGlvbi4KICAgCjIwMDItMDktMjMgMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gbWFrZSBub3QgaW4gdGltZSB3aW5kb3cgcmVwb3J0cyB0cmlnZ2VyIGEgcmVzZW5kIG9mIGluZm9ybXMuCiAgICAgKHN1Z2dlc3Rpb24gZnJvbSBFcmlrIEFuZ2dhcmQpCiAgIAoyMDAyLTA5LTIwIDExOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oOgoKICAgICAtIHJlbW92ZSBmdW5jdGlvbnMgdmFjbV9wYXJzZV9zZWN1cml0eSBhbmQgdmFjbV9mcmVlX3NlY3VyaXR5IHdoaWNoCiAgICAgICBkb24ndCBleGlzdAogICAKMjAwMi0wOS0xOSAxNzowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIC0gc3VwcG9ydCBhZ2VudCBzaHV0ZG93bnMgKHdlbGwsIG9rIGl0J3MganVzdCBhbiBhcGkgc2luY2UgaXQgZG9lc24ndCB3b3JrKS4KICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDktMTkgMTY6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC54cywgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICBmaXggYWdlbnQgcmVxdWVzdF9pbmZvUHRyIHByb2JsZW1zLgogICAKMjAwMi0wOS0xOSAxMjowNCAgZHRzMTIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIENvbXBpbGUgYW5kIGxpbmsgd2l0aCAnZ2V0b3B0LmMnIGV4cGxpY2l0bHkuCiAgIAogICBUaGlzIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5LCBidXQgZm9yIHNvbWUgcmVhc29uCiAgICh0aGF0IGNvbXBsZXRlbHkgZXNjYXBlcyBtZSEpLCB1c2luZyBjb21tYW5kLWxpbmUgb3B0aW9ucwogICAoc3VjaCBhcyAtSVIpIHdpdGggdGhlIFJlbGVhc2UgdmVyc2lvbiBvZiBzbm1wdHJhbnNsYXRlCiAgIGNhdXNlcyBhIHJ1bi10aW1lIERMTCBlcnJvci4gIChUaGUgRGVidWcgdmVyc2lvbiBpcyBmaW5lKS4KICAgVGhlIG90aGVyIGFwcGxpY2F0aW9ucyBzZWVtIHRvIGJlIE9LIC0gdGhpcyBwcm9ibGVtIG9ubHkKICAgc2VlbXMgdG8gaGl0IHNubXB0cmFuc2xhdGUuICBTbyBhcyBhIHN0aWNraW5nLXBsYXN0ZXIsCiAgIGNvbXBpbGlpbmcgZ2V0b3B0LmMgaW4gYXMgcGFydCBvZiB0aGUgcHJvamVjdCwga2VlcHMgYm90aAogICB2ZXJzaW9ucyBvZiB0aGUgYXBwbGljYXRpb24gaGFwcHkuCiAgICAgU29tZW9uZSB3aXRoIGJldHRlciBXaW5kb3dzIGtub3dsZWRnZSB0aGFuIG1lIG5lZWRzIHRvCiAgIGxvb2sgYXQgdGhpcyBhbmQgZml4IGl0IHByb3Blcmx5LgogICAKMjAwMi0wOS0xOSAwNjoxNCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSB1bmRvIHdvcnN0IG9mIGluZGVudCBkYW1hZ2UKICAgCjIwMDItMDktMTkgMDY6MDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIF9kcGFyc2UgZnVuY3Rpb25zICh3aGljaCBkb24ndCBleGlzdCkKICAgCjIwMDItMDktMTggMTA6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlc2V0IFNOTVBfU0xFRVAgYWZ0ZXIgbG9vcAogICAKMjAwMi0wOS0xOCAxMDo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcmVtb3ZlIHZlcnkgb2Jzb2xldGUgKGFuZCBub3QgdXNlZCBhbnl3aGVyZSkgI2RlZmluaXRpb25zIG9mCiAgICAgICBQQVJUWV9NSUJfQkFTRSBhbmQgQ09OVEVYVF9NSUJfQkFTRQogICAKMjAwMi0wOS0xOCAwMjo1OSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHR3ZWFrIGZvciA1LjAuNCBsYXN0IG1pbnV0ZSB1cGRhdGUKICAgCjIwMDItMDktMTggMDI6NDggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBjaGcgPiB0byAtZ3QgdG8gYWNoaWV2ZSBpbnRlbmRlZCByZXN1bHQKICAgCjIwMDItMDktMTggMDE6MzkgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xOCAwMTozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNCApCiAgIAoyMDAyLTA5LTE4IDAxOjMyICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xOCAwMDo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkICQoc3JjZGlyKSB0byBhIGZldyBkZXBlbmRlbmNpZXMgdG8gdHJ5IGFuZCByZWR1Y2UgdGhlICMgb2YgdGltZXMgdGhhdAogICBjb25maWcuc3RhdHVzIGlzIHJ1biB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNyYyBkaXIKICAgCjIwMDItMDktMTggMDA6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICB2aXN1YWxseSBwcm92b2NhdGl2ZSBzZWN0aW9uIGhlYWRlcnM7IGFkZCByZWNlbnQgc3RhdHVzIChhbGwgYmFkIG5ld3MpOwogICBub3QgdG8gdXNlIG5ldyB3aW4zMnNkay5kc3cgdG8gZ2V0IGFkZGl0b25hbCBmdW5jdGlvbmFsaXR5IHdpdGggcGxhdGZvcm0gc2RrOwogICByZW1vdmUgaW5mbyBvbiByZW1vdmluZyBhZ2VudHgsIGFzIGl0J3MgYmVlbiBhcm91bmQgbm93IGZvciBhIHdoaWxlOyBhZGQKICAgc2VjdGlvbiBvbiB3aGF0IGZpbGVzIHRvIGVkaXQgdG8gYWRkIG1pYjJjIGdlbmVyYXRlZCBjb2RlIHRvIGFnZW50OyByZW1vdmUKICAgcmVmZXJlbmNlIHRvIHNwZWNpZmljIHJlbGVhc2UgbnVtYmVyIGluIGV4YW1wbGUKICAgCjIwMDItMDktMTggMDA6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICB0YWtlICdzZGsnIG91dCBvZiBleGUgbmFtZQogICAKMjAwMi0wOS0xOCAwMDoyNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIHN3YXAgc25tcGRzZGsgZm9yIHNubXBkCiAgIAoyMDAyLTA5LTE4IDAwOjE0ICByc3RvcnkKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGdldCBhbGwgb3VyIGR1Y2tzIGluIGEgcm93OiBhZGQgYWR2YXBpMzIubGliIHRvIGxpbmsgbGluZXMsIG1ha2Ugc3VyZSBhbGwKICAgUmVsZWFzZSBhbmQgRGVidWcgbGlicy9hcHBzIGFyZSBjb21waWxlIHdpdGggc2FtZSBDKysgc2V0dGluZ3MKICAgCjIwMDItMDktMTggMDA6MTIgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICByZW1vdmUgc2RrIGRlcGVuZGVudCBtb2R1bGVzCiAgIAoyMDAyLTA5LTE4IDAwOjEwICByc3RvcnkKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgZ3JvdXAgbW9kdWxlcyB0aGF0IGRlcGVuZCBvbiB3aW4zMiBzZGsgdG9nZXRoZXIsIHdpdGggaWZkZWYKICAgCjIwMDItMDktMTggMDA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG5vIGNhbGxiYWNrIGZvciB3aW4zMiB1bnRpbCBwaXBlIGZkIHByb2JsZW0gaXMgZml4ZWQKICAgCjIwMDItMDktMTggMDA6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgbmV3IHZlcnNpb25zIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTggMDA6MDUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBuZXcgd29ya3NwYWNlIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTYgMTY6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWliIG1vZHVsZSBsb2FkaW5nIGZpeGVzIGJ5IGNhbGxpbmcgaW5pdF9zbm1wIGZpcnN0CiAgIAoyMDAyLTA5LTEzIDE1OjA1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHR3ZWFrIGV4YW1wbGUgbnNiLWNvbmZpZyBjb21tYW5kOyBhZGQgLWIgYmFjayB0byBjdnMyY2wsIG90aGVyd2lzZSB5b3UKICAgZ2V0IGNoYW5nZWxvZyBtc2dzIGZyb20gb3RoZXIgYnJhbmNoZXMgYW5kIGhhdmUgdG8gd2VlZCB0aGVtIG91dAogICAKMjAwMi0wOS0xMyAxMjozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIGZpeCBpbGxlZ2FsIG9pZHMgdG8gbm90IHJldHVybiBhIHBvaW50ZXIuCiAgIAoyMDAyLTA5LTEzIDEwOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIG1pbm9yIG9wdGltaXNhdGlvbjsgd2UgZG9uJ3QgbmVlZCBhIHplcm8tdGVybWluYXRlZCBjb21tdW5pdHkKICAgICAgIHN0cmluZyBleGNlcHQgZm9yIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAyLTA5LTEzIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZGVkIC1pIG9wdGlvbiB0byByZXF1ZXN0IGluZGVudCBub3QgYmUgcnVuCiAgIAoyMDAyLTA5LTEzIDEwOjA2ICBqYnBuCgogICAqIENPUFlJTkc6CgogICAgIC0gYWRkIG1pc3NpbmcgdmVyYiBpbiBpbnRyb2R1Y3Rpb24KICAgCjIwMDItMDktMTIgMTU6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcHJvdGVjdCBjYWxsaW5nIHNvbWUgU3ZJViBkZXJlZmVyZW5jZSBmdW5jdGlvbnMgaWYgaXQncyBub3QgYW4gSVYuCiAgICAgLSBlbGltaW5hdGVzIHRoZSByZW1haW5pbmcgcGVybCB3YXJuaW5ncy4KICAgCjIwMDItMDktMTIgMTQ6NDUgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGluY2x1ZGUgbGRmbGFncyB3aGVyZSBhcHByb3ByaWF0ZSAoLS1saWJzLCAtLWFnZW50LWxpYnMsIC4uLikKICAgCjIwMDItMDktMTIgMDE6NDggIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlOgoKICAgYWRkL3VzZSBuZXcgb3B0aW9uIHRvIHJlbW92ZSBidWlsZCBkaXIgYWZ0ZXIgc3VjY2Vzc2Z1bCBidWlsZAogICAKMjAwMi0wOS0xMiAwMTo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHByaW50IGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMiAwMToxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIG11Y2ggbW9yZSBjb21wbGV4IHRlc3RzIG9mIFVTTSB1c2VyIGNyZWF0aW9uL21vZGlmaWNhdGlvbi4KICAgCjIwMDItMDktMTIgMDE6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDAxc25tcHYxZ2V0LAogICB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsCiAgIHRlc3RzL1QwMDRzbm1wdjFub3N1Y2g6CgogICAtIHN1cHBvcnQgZm9yIG11bHRpcGxlIHRlc3RzIGF0IG9uY2UuCiAgIC0gbWVyZ2UgdjEgdGVzdHMgaW50byBhIHNpbmdsZSAoZmFzdGVyKSB0ZXN0LgogICAKMjAwMi0wOS0xMiAwMDozNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IG1vbmtleSBhcm91bmQgd2l0aCByZXR1cm5pbmcgZXJyb3IgY29kZXMsIGp1c3QgZXhpdDsgbW9yZSByZWdleHAgdHdlYWtzCiAgIAoyMDAyLTA5LTExIDE5OjM2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIHVzZSBzdWItc2Vjb25kIHNsZWVwcyBpZiBhdmFpbGFibGUKICAgLSBzbGVlcCAxIChzdWItKXNlY29uZCBhdCBhIHRpbWUgd2hlbiB3YWl0aW5nIGZvciBwYXJ0aWN1bGFyIHRlc3RzCiAgICAgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgU05NUF9TTEVFUCBkdXJhdGlvbi4KICAgCjIwMDItMDktMTEgMTk6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB1c2Ugc25tcF9sb2cgaW5zdGVhZCBvZiBwcmludGYgZm9yIHNodXRkb3duIG1lc3NhZ2UuCiAgIAoyMDAyLTA5LTExIDE4OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNzaW5nIHZhcmlhYmxlIGRlY2wgcG9pbnRlZCBvdXQgYnkgaXJjOmRmCiAgIAoyMDAyLTA5LTEwIDE2OjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwcyAmIGVycm9yIG1lc3NhZ2VzCiAgIAoyMDAyLTA5LTEwIDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY29tcGlsZXIgd2FybmluZ3MgYXJlIHlvdXIgZnJpZW5kITsgZml4IGVtYmVkZWQgY29tbWVudHM7IGZpeCBub24tdm9pZAogICBmdW5jdGlvbnMgdy9ubyBydG4gdmFsdWVzOyBjb2RlIHJlb3JnIHRvIGZpeCBlbWFjcyBpbmRlbnQgY29tcGxhaW50cwogICAKMjAwMi0wOS0xMCAxNToyNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgdGFyZ2V0cyB0byBoZWxwIG5pZ2h0bHkgYnVpbGQgc2NyaXB0IGRldGVybWluZQogICBpZiBhIG1ha2UgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogICAKMjAwMi0wOS0xMCAxNToxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrcyBmb3IgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzOyBhZCBuc2ItYWJvcnQsIG5zYi1mbG93OwogICBkaXJlY3Qgc29tZSBtZXNzYWdlcyB0byBzdGRlcnI7IHVzZSBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyBtYWtlIHRhcmdldHM7CiAgIHVwZGF0ZSBlcnJvciBncmVwIHRvIGluY2x1ZGUgJyoqKic7IGNoZWNrIGZvciBuZXcgdmFsdWUgdG8gcm0gLWZSIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMCAxNTowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHMKICAgCjIwMDItMDktMTAgMTU6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgYWRkIG9wdGlvbiB0byBybSAtZlIgYnVpbGQgZGlyIGF0IHN0YXJ0OyBjaGVjayBzY3JpcCBwYXRoIGZvciBuc2ItZnVuY3Rpb25zOwogICBwcmVmaXggZGVmYXVsdCBidWlsZCBkaXIgdy92ZXJzaW9uOyBleGl0IHcvcmMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDktMTAgMTU6MDUgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLXBsYXRmb3JtOgoKICAgYWRkIGN1cnJlbnQgcGF0aCB0byBzY3JpcHQgdG8gbnNiLWZ1bmN0aW9uIHNlYXJjaCBwYXRoCiAgIAoyMDAyLTA5LTA5IDA5OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEphcmVkIFNtaXRoLU1pY2tlbHNvbiAoYnVnICM2MDUxNDcpCiAgICAgICB3aGVyZWJ5IHBhc3NpbmcgYW4gdW5rbm93biB0eXBlIGNoYXJhY3RlciB0byBzbm1wX2FkZF92YXIgd291bGQKICAgICAgIGNhdXNlIGEgc2VnZmF1bHQuCiAgIAoyMDAyLTA5LTA5IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgdmFsdWUgYmVmb3JlIHVzaW5nIGl0LgogICAKMjAwMi0wOS0wOSAwOTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDdXJyZW50IGhlYWRlciB1cGRhdGUgcGF0Y2ggZm9yIG5ldGJzZCBmcm9tIFBhdHJpY2sgV2VsY2hlLgogICAKMjAwMi0wOS0wNiAxODozMCAgZHJpZWh1aXMKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTWFyayB0aGUgbm9uLXJhdyB2YXJpYW50cyBvZiBvYmplY3RzIHRoYXQgYXJlIGFjY2Vzc2FibGUgYXMgcmF3IGNvdW50ZXJzCiAgIGFzIGRlcHJlY2F0ZWQsIHRvIChob3BlZnVsbHkhKSBjdXQgZG93biBvbiB0aGUgbnVtYmVyIG9mIHVzZXJzIHRoYXQgZ2V0CiAgIGJpdHRlbiBieSBpdC4uCiAgIAoyMDAyLTA5LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGFkZGVkIEJydWNlJ3MgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0wNCAxNDoyNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IHBlcmxjbGVhbgogICAKMjAwMi0wOS0wNCAxNDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBwcm9jZXNzIGdyb3VwaW5nIGJ5IGNhbGxpbmcgc2V0c2lkKCkgKHJlcG9ydGVkIGJ5IGlyYzpUcm9nTCkKICAgCjIwMDItMDktMDQgMTQ6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNldHNpZCgpLgogICAKMjAwMi0wOS0wMyAxMzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FzZXMgd2hlcmUgdGhlcmUgZWl0aGVyIGFyZSBubyB0YWJsZXMgb3Igbm8gc2NhbGFycy4KICAgCjIwMDItMDktMDMgMTM6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZG9uJ3QgdXNlIE5VTEwgdmFyaWFibGVzLgogICAKMjAwMi0wOS0wMiAyMjozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUyICkKICAgCjIwMDItMDktMDIgMjI6MzMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMgogICAKMjAwMi0wOS0wMiAyMjoyMiAgcnN0b3J5CgogICAqIG1hbi9uZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZWQgZG9jcwogICAKMjAwMi0wOS0wMiAyMjoxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOS0wMiAyMjoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZzoKCiAgIHRyeSBhbmQgZ3Vlc3MgYXQgc3JjIGRpciBpZiBub3Qgc3BlY2lmaWVkCiAgIAoyMDAyLTA5LTAyIDIyOjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGFkZCBub3RlIGFib3V0IGVyciB3aGVuIGJ1aWxkaW5nIGluIGFuZCBvdXQgb2Ygc291cmNlIHRyZWUKICAgCjIwMDItMDktMDIgMjE6NTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZ1bGwgcGF0aCB0byB2ZXJzaW9udGFnLCBpbiBjYXNlIHdlIGFyZSBidWlsZGludCBvdXRzaWRlIG9mIHNyYyBkaXJlY3RvcnkKICAgCjIwMDItMDktMDIgMjE6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW1vdmUgZm9yY2VkIHByb21wdCBvbiBlcnJvcnMKICAgCjIwMDItMDktMDIgMjE6MzYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCB3YXJuaW5ncyB3aGVuIFZFUlNJT04gaXMgcmVxdWlyZWQ7IGFkZCB0YXJjbGVhbiB0YXJnZXQ7IGFkZCB0YXJjbGVhbiB0bwogICBkaXN0Y2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGFkZCBtc2cgb24gZXJyb3I7IGFkZCBjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMjA6MjcgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIHdpbjMyICYgQWdlbnRYIHN0YXR1cwogICAKMjAwMi0wOS0wMiAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBmaXggdG8gYXZvaWQgbG9ja2luZyB1cCB0aGUgYWdlbnQgd2hlbiBhIHN1Z2FnZW50IGRpZXMgZHVyaW5nIGEgc2V0IHJlcXVlc3QuIFdlCiAgIG11c3QgY2xlYW4gdXAgdGhlIGRlbGVnYXRlZCByZXF1ZXN0cyB3aGVuIHRoZSBzZXNzaW9uKHMpIGFyZSBjbG9zZWQsIHNvIHRoYXQKICAgdGhleSB3aWxsIGJlIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCwgYWxsb3dpbmcgZnVydGhlciByZXF1ZXN0cyB0byBiZSBwcm9jZXNzZWQuCiAgIAoyMDAyLTA5LTAxIDEzOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBjaGFuZ2UgcmVzdWx0IHR5cGUgYmFjayB0byBpbnQsIGFzIGl0IG1heSByZWNlaXZlIGEgbmVnYXRpdmUgdmFsdWUKICAgCiAgIFBMRUFTRSBjaGVjayB0aGUgdXNlIG9mIGEgdmFyaWFibGUgYmVmb3JlIGNoYW5naW5nIGlzIHNpZ25lZG5lc3MsIGVzcGVjaWFsbHkKICAgYXJlb3VuZCByZWxlYXNlIHRpbWUhCiAgIAoyMDAyLTA4LTMwIDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGluY2x1ZGUgY2hlY2tfdmFyYmluZC5oCiAgIAoyMDAyLTA4LTMwIDE1OjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgY2hhbmdlIE5PU1VDSE5BTUUgdG8gTk9TVUNISU5TVEFOQ0UgYWdhaW4sIGFzIGl0IHNlZW1zIHRoZSBhZ2VudFggZml4IGFsc28KICAgY29ycmVjdGx5IGRlYWxzIHdpdGggdGhpcyBlcnJvciBjb2RlCiAgIAoyMDAyLTA4LTMwIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gZGVsZXRlIHN1bnNpdGUuY25sYWItc3dpdGNoLmNoIG1pcnJvciwgYXMgaXQgaXNuJ3Qgb25lIGFueW1vcmUuCiAgIAoyMDAyLTA4LTI5IDEzOjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIG1vZHVsZXMgYmVmb3JlIGNvbmZpZ3VyaW5nIHRoZW0KICAgCjIwMDItMDgtMjkgMTA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCB0aGUgbGFzdCBBRVMgYnVnIEkga25vdyBvZi4gIEFFUzEyOCB3b3JrcyBncmVhdC4KICAgICBJIHN0aWxsIE5lZWQgdG8gZml4IDE5Mi8yNTYgZm9yIGxvbmdlciBrZXkgZ2VuZXJhdGlvbiBmcm9tIE1ENS9TSEEKICAgCjIwMDItMDgtMjkgMTA6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICB1c2UgdGhlIHJpZ2h0IHBlcmwgbW9kdWxlIG5hbWUgaW4gdGhlIHVzZSBsaW5lLgogICAKMjAwMi0wOC0yOSAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgTW9yZSBXaW4zMi1yZWxhdGVkIHRpZHlpbmcgdXAuCiAgIFRoZSBhZ2VudCBub3cgY29tcGlsZXMgd2l0aCByZWxhdGl2ZWx5IGZldyB3YXJuaW5ncy4KICAgCjIwMDItMDgtMjkgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBEZWNsYXJlIG5ldyByb3V0aW5lICduZXRzbm1wX29pZF9lcXVhbHMnLCBhbmQgYXNzb3J0ZWQgV2luMzIgY2xlYW51cCBmaXhlcy4KICAgCjIwMDItMDgtMjggMTQ6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY2xhcmlmeSBjdnMyY2wgc2NyaXB0IG5hbWU7IHJlbW92ZSAtYiBmbGFnIGZyb20gY3ZzMmNsIHBlciBEYXZlOyBhIGxpdHRsZQogICByZW9yZ2FuaXphdGlvbjsgcHV0IGNvbW1hbmRzIG9uIHNlcGFyYXRlIGxpbmVzIHByZWZpeGVkIHdpdGggJDsgbm90ZSA1LngvNC54CiAgIGRpZmZlcmVuY2VzIHBlciBEYXZlJ3MgZW1haWw7IHBsdWcgbXkgbmV3IHNjcmlwdHMgd2hlcmUgYXBwcm9wcmlhdGUKICAgCjIwMDItMDgtMjcgMTQ6NDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIFVSTCBmb3IgY3ZzMmNsOyB1cGRhdGUgY3ZzMmNsIGNtZHMgdG8gY3ZzMmNsLnBsLCBzaW5jZSB0aGF0J3MgdGhlIGZpbGUKICAgdGhhdCdzIGFjdHVhbGx5IGRpc3RyaWJ1dGVkCiAgIAoyMDAyLTA4LTI3IDAwOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjcgMDA6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUxICkKICAgCjIwMDItMDgtMjcgMDA6MjQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCAoNS42KSwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgKDUuNSksCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAoNS42KSwgYXBwcy9NYWtlZmlsZS5kZXBlbmQgKDUuNSksCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICg1LjUpLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAogICAoNS41KToKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTI3IDAwOjE3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zICg1LjMpLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zICg1LjMpLAogICBuZXRzbm1wX2RlYnVnLjMgKDUuMyksIG5ldHNubXBfaGFuZGxlci4zICg1LjMpLCBuZXRzbm1wX2luc3RhbmNlLjMKICAgKDUuMyksIG5ldHNubXBfbXVsdGlwbGV4ZXIuMyAoNS4zKSwgbmV0c25tcF9vbGRfYXBpLjMgKDUuMyksCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMgKDUuMyksIG5ldHNubXBfc2NhbGFyLjMgKDUuMiksCiAgIG5ldHNubXBfc2VyaWFsaXplLjMgKDUuMyksIG5ldHNubXBfdGFibGUuMyAoNS4zKSwKICAgbmV0c25tcF90YWJsZV9hcnJheS4zICg1LjMpLCBuZXRzbm1wX3RhYmxlX2RhdGEuMyAoNS4zKSwKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMgKDUuMyksIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMyAoNS4zKSwKICAgbmV0c25tcF90b2RvLjMgKDUuMyksIG5ldHNubXBfd2F0Y2hlci4zICg1LjIpOgoKICAgdXBkYXRlIG1hbiBwYWdlcyBmb3IgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZyAoMS4xKToKCiAgIG5ldyBmaWxlIHRvIGNvbmZpZ3VyZSB1c2luZyBzYW1lIG9wdGlvbnMgYXMgbnNiLXBhY2thZ2UgZm9yIHRlc3Qgb3IgZGlzdAogICAKMjAwMi0wOC0yNyAwMDowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2UgKDEuMyk6CgogICBkb24ndCBhcHBlbmQgc3lzLW5hbWUgd2hlbiBidWlsZGluZyBpbiBzcmMgdHJlZQogICAKMjAwMi0wOC0yNyAwMDowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xOSk6CgogICBmaXggdHlwbwogICAKMjAwMi0wOC0yNyAwMDowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xOCk6CgogICByZW5hbWUgbnNiLWdldC1jb25mZyAtPiBuc2ItY29uZmlnLWRpc3Q7IHVzZSBkb3VibGUgcXVvdGVzIGN1eiBvZiBzb21lCiAgIHdpZXJkIHNoZWxsIHRoaW5nIEkgZG9uJ3QgeWV0IHVuZGVyc3RhbmQ7IGNoZWNrIGZvciBzcmMgZGlyIGluIGNvbmZpZyoKICAgCjIwMDItMDgtMjYgMjM6MzQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiAoNS4xMik6CgogICB0d2VhayBjb21tZW50Y2hlY2sgdGFyZ2V0IHRvIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMjM6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgKDUuMyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgKDUuMSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmggKDUuMiksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAoNS4xKSwgc25tcGxpYi93aW5zZXJ2aWNlLmMKICAgKDUuMSk6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzIChhbmQgYW55dGhpbmcgdGhhdCBldmVuIHJlbW90ZWx5IHJlc2VtYmxlcyBvbmUpCiAgIAoyMDAyLTA4LTI2IDE3OjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE3KToKCiAgIHBhc3MgbWFrZSBwYXJhbXMgdG8gbWFrZSwgc28gd2UgZG9uJ3QgdHJ5IHRvIGluc3RhbGwgaW4gL3Vzci9sb2NhbC9iaW4gb2YKICAgdGhlIGNvbXBpbGUgc2VydmVycy4uLiA6LS8KICAgCjIwMDItMDgtMjYgMTc6MzkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTYpOgoKICAgbWFrZSBkaXN0ICYgZXh0cmEgdHJhbnNwb3J0czsgbm8gaXB2NiBvbiBEYXJ3aW47IG1ha2UgdG91Y2hpdCBiZWZvcmUgbWFrZQogICAKMjAwMi0wOC0yNiAxNzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAoNS40KToKCiAgIHJlcGxhY2UgdV9pbnQzMl90LCB3aGljaCBkb2Vzbid0IGNvbXBpbGUgb24gU3VuIDUuOCwgd2l0aCB1X2ludAogICAKMjAwMi0wOC0yNiAxNjo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jICg1LjIpOgoKICAgZml4IHVuZGVjbGFyZWQgdmFyaWFibGUgZXJyb3Igc3BvdHRlZCBvbiBTdW4sIHdoaWNoIGxpbnV4IG1pc3NlZCBjb21wbGV0ZWx5LgogICBJIGhhdmUgbm8gaWRlYSBob3cgdGhpcyBjb21waWxlZCBiZWZvcmUhIQogICAKMjAwMi0wOC0yNiAxNjo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNSk6CgogICBjbGVhbmVyIHdheSB0byBhZGQgc3lzdGVtIHNwZWNpZmljIG1vZHVsZXM7IGRpc2FibGUgcGVybCwgYXMgaXQgYnJlYWtzCiAgIGJ1aWxkcyBvdXRzaWRlIG9mIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAxNTo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNCk6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXgKICAgCjIwMDItMDgtMjYgMTU6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTMpOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4OyBiYWlsIG9uIGNvbmZpZ3VyZSBlcnJvcnMKICAgCjIwMDItMDgtMjYgMTU6MDQgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzICgxLjQpOgoKICAgYWRkIHN1Z2dlc3Rpb24gdG8gc3ltbGluayBuc2ItKiBpbiBsb2NhbCBiaW4gZGlyCiAgIAoyMDAyLTA4LTI2IDE1OjAzICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlICgxLjIpLCBuc2ItZnVuY3Rpb25zICgxLjEyKToKCiAgIGFkZCBvcHRpb24gZm9yIHByZS1yZWxlYXNlIHRlc3QgY29uZmlndXJlIG9wdGlvbnMKICAgCjIwMDItMDgtMjYgMTU6MDIgIHJzdG9yeQoKICAgKiBSRUFETUUuc25tcHYzICg1LjMpOgoKICAgbWFrZSBzZWN0aW9uIGhlYWRlcnMgc3RhbmQgb3V0IG1vcmU7IG1vdmUgbm90ZSBhYm91dCBlbmNyeXB0aW9uIG5vdCBiZWluZwogICBlbmFibGVkIHRvIGEgbW9yZSBwcm9taW5lbnQgcGxhY2UuCiAgIAoyMDAyLTA4LTI0IDIxOjI0ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jCiAgIChWNC0yLXBhdGNoZXMuWzM3LDNdKToKCiAgIE1lcmdlIGZyb20gSEVBRDogZGV0ZWN0IHRoZSByZXF1aXJlbWVudCBmb3IgbGlua2luZyB3aXRoIC1sZGV2c3RhdC4KICAgVWdseSBoYWNrIHRvIG1ha2Ugc3VyZSBkaXNraW8gZGV2aWNlIG5hbWVzIGluY2x1ZGUgdGhlIGRldmljZSBudW1iZXIuCiAgIAoyMDAyLTA4LTIzIDExOjQ2ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluIChWNC0yLXBhdGNoZXMuMyk6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0yMiAwODozMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmggKDUuMik6CgogICAgIC0gRE9OVF9VU0VfTkxJU1QgcmVpbnN0YXRlZCwgc28gTk9fS01FTV9VU0FHRSByZWR1bmRhbnQKICAgCjIwMDItMDgtMjIgMDg6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCAoNS45KSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAoNS4xMCk6CgogICAgIC0gcmVpbnN0YXRlIHRlc3QgZm9yIERPTlRfVVNFX05MSVNUCiAgIAoyMDAyLTA4LTIyIDA3OjExICBqYnBuCgogICAqIGFnZW50L3NubXBkLmMgKDUuMTApOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDc6MDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYyAoVjQtMi1wYXRjaGVzLjI0KToKCiAgICAgLSBzdG9wIGFuZCByZXN0YXJ0IGxvZ2dpbmcgd2hlbiBIVVBwZWQuICBUaGlzIGFsbG93cyBsb2dmaWxlcyB0byBiZQogICAgICAgcm90YXRlZCBhbmQgc28gZm9ydGguCiAgIAoyMDAyLTA4LTIyIDA0OjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzICg1LjIpOgoKICAgQWRkIHRoZSBtaXNzaW5nICcteC9YJyBvcHRpb25zIHRvIHRoZSBleGFtcGxlIGF1dGhQcml2IGNvbW1hbmQgbGluZQogICAgIChyZXBvcnRlZCBieSBQcmFzYWRhIFIgVmFua2F5YWxhcGF0aSkKICAgCjIwMDItMDgtMjAgMTE6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICg1LjYpLCBhcHBzL3NubXB0cmFwZC5jICg1LjQpLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmggKDUuMyksIEZBUSAoNS4xNyk6CgogICBxdWlldCBzbm1wdHJhcGQgd2hlbiBpdCBjYW4ndCBjb25uZWN0IHRvIHRoZSBhZ2VudHggbWFzdGVyLgogICAKMjAwMi0wOC0yMCAwODo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmggKDUuMSk6CgogICAgIC0gYWRkICNkZWZpbmUgTk9fS01FTV9VU0FHRSAxIHNpbmNlIG5ldC1zbm1wLWNvbmZpZy5oLmluIG5vIGxvbmdlcgogICAgICAgcGF5cyBhdHRlbnRpb24gdG8gdGhlIERPTlRfVVNFX05MSVNUIHRva2VuLiAgT21pc3Npb24gb2YgdGhpcwogICAgICAgY2F1c2VzIHRoZSBhZ2VudCB0byBleGl0IHdpdGggdGhlIG1lc3NhZ2UgImluaXRfa21lbToga3ZtX29wZW4KICAgICAgIGZhaWxlZDogZXJyb3IgMCIuCiAgIAogICAgICAgTk9URTogdGhpcyBtYXkgbmVlZCBhcHBseWluZyB0byBvdGhlciBtZW1iZXJzIG9mIHRoZSBTb2xhcmlzIDIKICAgICAgIGZhbWlseSwgYnV0IEkgZG9uJ3QgaGF2ZSBtYWNoaW5lcyB0byBoYW5kIHRvIHRlc3QgdGhpcy4KICAgCjIwMDItMDgtMjAgMDg6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICg1LjIpOgoKICAgICAtIGRldGVjdCBnaWdhYml0IGV0aGVybmV0IGRldmljZXMgKGdlTikKICAgICAtIHVuZG8gaW5kZW50IG1heWhlbQogICAKMjAwMi0wOC0yMCAwNTo1NyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oICg1LjEpOgoKICAgICAtIGZvciBub3csIGRvbid0ICNpbmNsdWRlIHNubXBfbG9ja2luZy5oIHNpbmNlIGl0IGJyZWFrcyByZS1lbnRyYW50CiAgICAgICBzdXBwb3J0IChiZWNhdXNlIG11dGV4X3R5cGUgZ2V0cyBtdWx0aXBseS1kZWZpbmVkKS4gIEZ1cnRoZXJtb3JlLCB0aGUKICAgICAgIGZ1bmN0aW9ucyBpdCBkZWNsYXJlcyBhcmUgbmV2ZXIgdXNlZCBhbnl3aGVyZSwgbm9yIGRlZmluZWQgYW55d2hlcmUuCiAgIAoyMDAyLTA4LTIwIDA1OjU2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmggKDUuMSk6CgogICAgIC0gZG9uJ3QgZGVmaW5lICJkbyBub3RoaW5nIiBtYWNyb3MgZm9yIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucwogICAgICAgb24gV2luMzIgcGxhdGZvcm0gKHNpbmNlIHJlYWwgImRvIG5vdGhpbmciIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQgZm9yCiAgICAgICByZWFzb25zIGJlc3Qga25vd24gdG8gc29tZW9uZSBlbHNlKS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMjAgMDU6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oICg1LjEpOgoKICAgICAtIGZpeCBoaWdobHkgYm9ndXMgbm9uLUMgc3ludGF4CiAgIAoyMDAyLTA4LTIwIDA1OjUzICBqYnBuCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5jICg1LjEpOgoKICAgICAtIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucyBubyBsb25nZXIgI2RlZmluZWQgdG8gImRvIG5vdGhpbmciCiAgICAgICB0YXJnZXRzIGZvciBXaW4zMiBpbiBtdF9zdXBwb3J0LmgsIHRoZXJlZm9yZSBubyBuZWVkIHRvICN1bmRlZiB0aGVtCiAgICAgICBoZXJlLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwMToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICg1LjIpOgoKICAgaGVhZGVycyBmb3IgY2FjaGUgZW5hYmxpbmcgZnVuY3Rpb25zLgogICAKMjAwMi0wOC0yMCAwMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICg1LjMpOgoKICAgZG9uJ3QgdXNlIG5vbi1leGlzdGVudCBtZW1vcnkgcG9pbnRlcnMgdG8gdGhlIHJlc3BvbnNlIGRhdGEgKGVnOiAidGltZW91dCIpCiAgIAoyMDAyLTA4LTE5IDE3OjQ2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oICg1LjEpOgoKICAgQ2hhbmdlIGEgZmV3IGNvbmRpdGlvbmFscyB0byB1c2UgI2lmIGluIHBsYWNlIG9mICNpZmRlZgogICAKMjAwMi0wOC0xOSAxNzoyOCAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYyAoNS4xNyksIHBhcnNlLmMgKDUuNCk6CgogICBBbGlnbiB3aXRoIDQuMiBicmFuY2gKICAgCjIwMDItMDgtMTkgMTc6MjYgIG5iYQoKICAgKiBtaWJzLzogRElTTUFOLVNDSEVEVUxFLU1JQi50eHQgKDUuMSksCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0ICg1LjEpLCBJQU5BaWZUeXBlLU1JQi50eHQKICAgKDUuMSksIElORVQtQUREUkVTUy1NSUIudHh0ICg1LjEpLCBNYWtlZmlsZS5taWIgKDUuMiksIGlhbmFsaXN0CiAgICg1LjEpLCBtaWJmZXRjaCAoNS4xKSwgcmZjbGlzdCAoNS4xKToKCiAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQnMKICAgCjIwMDItMDgtMTkgMTc6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAoNS43KToKCiAgIEJhaWwgb3V0IGZvciBiYWQgc25tcEFkbWluU3RyaW5nIHZhbHVlCiAgIAoyMDAyLTA4LTE5IDEwOjQzICBqYnBuCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUzKSwgRkFRICg1LjE2KToKCiAgICAgLSBkb24ndCB1c2UgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGluIGV4YW1wbGVzCiAgICAgLSBicmVhayBhIGNvdXBsZSBvZiBvdmVyLWxvbmcgbGluZXMKICAgICAtIG1lbnRpb24gbmV0c25tcF8gdmFyaWFudCBvZiBkc19zZXRfIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTE5IDA1OjQ0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41MiksIEZBUSAoNS4xNSk6CgogICBBZGQgYW4gZW50cnkgYWJvdXQgdGhlIHNubXB0cmFwZC9BZ2VudFggd2FybmluZyBtZXNzYWdlLgogICAKMjAwMi0wOC0xOCAyMToyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xMSk6CgogICBkb24ndCBjb25maWd1cmUgd2l0aCBidWlsZCBpbnN0YWxsIGRpciwgaXQgaXMgYWxyZWFkeSBzcGVjaWZpZWQgb24gY21kIGxpbmUKICAgZm9yIG1ha2UgaW5zdGFsbAogICAKMjAwMi0wOC0xOCAxMzo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYyAoNS43KToKCiAgIG1vcmUgZGVidWdnaW5nIC0gbG9nIHZhbHVlIHJlcXVlc3QgaXMgdHJ5aW5nIHRvIHNldAogICAKMjAwMi0wOC0xNiAxODoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FICg1LjkpOgoKICAgYWRkZWQgQnJ1Y2UgU2hhdyB0byB0aGUgdGhhbmtzIGxpc3QKICAgCjIwMDItMDgtMTYgMTg6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzICgxLjIpOgoKICAgQSBncmVhdCB1cGRhdGUgdGFsa2luZyBhYm91dCBwZXJsIGFuZCBzb2xhcmlzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMi0wOC0xNiAwNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICg1LjQpOgoKICAgQ2F0Y2ggZXhwbGljaXRseSAnbm9TdWNoSW5zdGFuY2UnIGV4Y2VwdGlvbnMsIHdoZW4gd2Fsa2luZyBhbgogICBpdGVyYXRvci1oYW5kbGVkIG1vZHVsZSwgc28gdGhhdCBob2xlcyBjYW4gYmUgc2tpcHBlZCBhbmQgdGhlCiAgIG5leHQgcmVhbCBpbnN0YW5jZSByZXRyaWV2ZWQuICAoVGhpcyB3YXMgYWxyZWFkeSBoYW5kbGVkIGZvcgogICBtb2R1bGVzIHRoYXQgZGlkbid0IG1hcmsgbWlzc2luZyBpbnN0YW5jZXMgZXhwbGljaXRseSkuCiAgIAoyMDAyLTA4LTE2IDAzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTMpOgoKICAgdHVybiBvZmYgY2FjaGluZyBieSBkZWZhdWx0LCBzaW5jZSB0aGUgYWdlbnR4IGNvZGUgYXBwZWFycyBicm9rZW4uCiAgIAoyMDAyLTA4LTE2IDAzOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKDUuNSksIHNubXBfYWdlbnQuYyAoNS4xMik6CgogICBzcGVlZCBlbmhhbmNlbWVudHMgdmlhIGltcGxlbWVudGluZyBhIHJlZ2lzdHJhdGlvbiBzdWJ0cmVlIGxvb2t1cAogICBjYWNoZS4gIGdyZWF0bHkgc3BlZWRzIHRoaW5ncyB1cCB3aGVuIHNpbWlsYXIgcmVxdWVzdHMgY29tZSBpbgogICAoc25tcHdhbGssIC4uLikuCiAgIAoyMDAyLTA4LTE1IDEzOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmMgKDUuMyk6CgogICBwcm90ZWN0IGFnYWluc3QgTlVMTCBsYWJlbHMgaW4gc3VidHJlZXMKICAgCjIwMDItMDgtMTUgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMgKDUuMyksIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgKDUuNCksCiAgIGFnZW50L2FnZW50X3RyYXAuYyAoNS4xKSwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgKDUuMiksCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgKDUuMSksIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgKDUuMSksIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAoNS4yKSwgc25tcGxpYi9zbm1wdXNtLmMgKDUuMyk6CgogICB1c2UgbmV0c25tcF9vaWRfZXF1YWxzICh3aGljaCBpcyBzb21ldGltZXMgZmFzdGVyIHRoYW4KICAgc25tcF9vaWRfY29tcGFyZSkgaW4gYSBmZXcgcGxhY2VzIHRvIGFjaGlldmUgYmFyZWx5IG5vdGljZWFibGUgc3BlZWQgZ2FpbnMuCiAgIAoyMDAyLTA4LTE1IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmMgKDUuMik6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIGV4aXN0cyBiZWZvcmUgcGFzc2luZyBpdCB0byBzdHJjbXAoKQogICAKMjAwMi0wOC0xNSAxMTowNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMICg1LjcpOgoKICAgY2hhbmdlIE1BTjNQT0RTIHRvIHNvbWV0aGluZyBjb21wbGlhbnQgd2l0aCB0aGUgcGVybCBtYW51YWxzLiAgSSB0aGluay4KICAgCjIwMDItMDgtMTQgMTM6NDIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYyAoNS4yKToKCiAgIGFkZCBkZWJ1ZyBmb3IgbG9jYWwgcGFyc2luZyBvZiBhcmdzCiAgIAoyMDAyLTA4LTE0IDEyOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgKDUuNSksIG1hc3Rlcl9hZG1pbi5jICg1LjQpLAogICBzdWJhZ2VudC5jICg1LjUpOgoKICAgYWRkIG1vcmUgZGV0YWlsZWQgaW4gZGVidWcgbWVzc2FnZXM7IGFkZCBhIGZldyBuZXcgZGVidWdzCiAgIAoyMDAyLTA4LTE0IDEyOjIzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjExKToKCiAgIHdoZW4gYWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBoYXZlIGZpbmlzaGVkLCBjaGVjayBhbGwgcmVxdWVzdHMgc3RhdHVzIHNvIHRoYXQKICAgYXNwIHN0YXR1cyBpcyBzZXQsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBhZ2VudHggc2V0IHByb2Nlc3NpbmcuCiAgIChub3cgaWYgSSBjYW4ganVzdCBnZXQgYWxsIHRoaXMgaGFpciBvZmYgdGhlIGZsb29yLCBhbmQgZ2x1ZSBpdCBiYWNrIHRvIG15CiAgIGhlYWQsIGFuZCB0aGVuIGZpeCB0aGF0IGRlbnQgaW4gdGhlIHdhbGwgd2hlcmUgSSd2ZSBiZWVuIGJhbmdpbmcgbXkgaGVhZC4uLi4pCiAgIAoyMDAyLTA4LTEzIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMgKDUuMTQpOgoKICAgZml4IGEgbGVuZ3RoIGNvbXBhcmlzb24gcHJvYmxlbSB3aXRoIG5ldHNubXBfb2lkX2lzX3N1YnRyZWUoKQogICAKMjAwMi0wOC0xMyAxNzoyNCAgaGFyZGFrZXIKCiAgICogTkVXUyAoNS42KToKCiAgIGRvY3VtZW50IGEgZmV3IHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wOC0xMyAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICg1LjEpOgoKICAgRml4IG9wZW4gZmlsZSBydW5hd2F5IG9uIHNvbGFyaXMuICBTZWUgYnVnICM1OTI4MDYgcmVwb3J0ZWQgYnkgSmFtZXMgSXJ3aW4uCiAgIAoyMDAyLTA4LTEzIDE1OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oICg1LjcpOgoKICAgYXJyYXkgb2YgcG9pbnRlcnMgPSBwb2ludGVyIHRvIGEgcG9pbnRlcgogICAKMjAwMi0wOC0wOSAxOTozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUwgKDUuMSk6CgogICBtaXNjIGRvYyBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTk6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgKDUuNCksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICg1LjIpLCBzbm1wbGliL3NubXB1c20uYwogICAoNS4yKSwgc25tcGxpYi9zbm1wdjMuYyAoNS4zKToKCiAgIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE5OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAoNS4yKSwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICg1LjEzKToKCiAgIHNsaWdodCBzcGVlZCB1cHMgZm9yIHNubXBfb2lkX2NvbXBhcmUoKSB0byBkbyBzaW5nbGUgaW50IGNvbXBhcmVzIHRpbGwgIT0KICAgCjIwMDItMDgtMDkgMTk6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYyAoNS4yKToKCiAgIC0gb3BlbnNzbCAwLjkuNyBzdXBwb3J0IGZvciBERVMgY2hhbmdlcy4KICAgLSBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxOToyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jICg1LjIpOgoKICAgaW5kZW50IGZpeGVzLgogICAKMjAwMi0wOC0wOSAxOToyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc2NhcGkuaCAoNS4xKSwgc25tcHVzbS5oICg1LjEpOgoKICAgZGVmaW5lIEFFUyBrZXkgc3BlY2lmaWNzCiAgIAoyMDAyLTA4LTA5IDE5OjI2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICg1LjgpLCBjb25maWd1cmUgKDUuMTcpLCBjb25maWd1cmUuaW4gKDUuMTUpLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICg1LjkpOgoKICAgLSBjaGVjayBmb3Igb3BlbnNzbCAuMC45LjcgREVTIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucy4KICAgLSBjaGVjayBmb3IgQUVTIHN1cHBvcnQgaW4gb3BlbnNzbCAoPiAwLjkuNykKICAgCjIwMDItMDgtMDkgMTk6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICg1LjQpOgoKICAgZml4IG1vZGUgcHJvY2Vzc2luZyBmb3IgUkVTRVJWRTEvUkVTRVJWRTIgdGVzdCBmYWlsdXJlcwogICAKMjAwMi0wOC0wOSAxODoyOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMCk6CgogICBsb2cgbXNnIHdoZW4gd2UgaWdub3JlL2ZpeCBpbGxlZ2FsIGVycm9yX3ZhbHVlcyBmb3IgdGhlIGNsaWVudCBBUElzCiAgIAoyMDAyLTA4LTA5IDE4OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mICg1LjEyKToKCiAgIGNvcnJlY3Rpb25zIHRvIGV4YW1wbGUgY29kZQogICAKMjAwMi0wOC0wOSAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYyAoNS42KToKCiAgIHJldmVydCBlcnJvcnMgdG8gdW5pbmZvcm1hdGl2ZSBTTk1QdjEgbm9TdWNoTmFtZSBmb3IgQWdlbnRYIGdldC1uZXh0L2luY2x1c2l2ZQogICBwcm9jZXNzaW5nOyBhbHNvIGFkZCBtb3JlIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlCiAgIAoyMDAyLTA4LTA5IDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICg1LjQpOgoKICAgZGVidWcgbXNnIGZvciBhZ2VudHggb2lkIGZvciBjYXNlcyBvdGhlciB0aGFuIGdldC9nZXRuZXh0CiAgIAoyMDAyLTA4LTA5IDExOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICg1LjMpOgoKICAgZG9uJ3QgZnJlZSByZWdpc3RyYXRpb24gaW5mbyBvbiBmYWlsdXJlLCBhcyBuZXRzbm1wX3JlZ2lzdGVyX21pYiBhbHJlYWR5IGRpZCBpdAogICAKMjAwMi0wOC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAoNS4yKSwgc25tcENhbGxiYWNrRG9tYWluLmMgKDUuMSksCiAgIHNubXBJUFhEb21haW4uYyAoNS4xKSwgc25tcFRDUERvbWFpbi5jICg1LjQpLCBzbm1wVENQSVB2NkRvbWFpbi5jCiAgICg1LjUpLCBzbm1wVURQRG9tYWluLmMgKDUuNiksIHNubXBVRFBJUHY2RG9tYWluLmMgKDUuNyksCiAgIHNubXBVbml4RG9tYWluLmMgKDUuNCksIHNubXBfdHJhbnNwb3J0LmMgKDUuMSk6CgogICAgIC0gcmVuYW1lIHNubXBfPGRvbWFpbj5fYmxhaCBmdW5jdGlvbnMgdG8gbmV0c25tcF88ZG9tYWluPl9ibGFoCiAgICAgLSBtYWtlIHRyYW5zcG9ydCBtZW1iZXIgZnVuY3Rpb25zIHN0YXRpYywgdG8gZW1waGFzaXNlIHRoYXQgdGhleSBzaG91bGQKICAgICAgIG5vdCBiZSB1c2VkIGRpcmVjdGx5CiAgICAgLSBoYW5kbGUgRUlOVFIgaW4gc2VuZCBhbmQgcmVjdiBmdW5jdGlvbnMgKGFzIHBvaW50ZWQgb3V0IGJ5IEFudHRpIEt1bnRzaQogICAgICAgaW4gYnVnIHJlcG9ydCAjNTc2ODA2KQogICAgIC0gZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwOTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oICg1LjMpLAogICBzbm1wSVBYRG9tYWluLmggKDUuMiksIHNubXBUQ1BEb21haW4uaCAoNS4yKSwgc25tcFRDUElQdjZEb21haW4uaAogICAoNS4zKSwgc25tcFVEUERvbWFpbi5oICg1LjIpOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDk6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggKDUuMyk6CgogICAgIC0gZG9uJ3QgZXhwb3J0IG5ldHNubXBfdW5peF9ibGFoKCkgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTA5IDA5OjUzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICg1LjEpOgoKICAgICAtIGZpeCBuYXN0eSBmb3JtYXR0aW5nCiAgIAoyMDAyLTA4LTA4IDEyOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdjMuYyAoNS4yKToKCiAgIHJld29yZCBjb25maWdfcGVycm9yIG1zZ3MgdG8gcmVtb3ZlICJFcnJvciIsIGFzIGl0IGlzIHJlZHVuZGFudAogICAKMjAwMi0wOC0wOCAxMjoxMSAgcnN0b3J5CgogICAqIHNubXBsaWIva2V5dG9vbHMuYyAoNS4xKToKCiAgIHJlbW92ZSBpZmRlZiB0byBsb2cgbXNnIHRvIHVzZXIsIGFmdGVyIG1ha2luZyBtc2cgbW9yZSBpbmZvcm1hdGl2ZTsgcmVtb3ZlCiAgIGFubm95aW5nIGJsYW5rIGxpbmVzCiAgIAoyMDAyLTA4LTA4IDExOjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICg1LjcpLCBjb25maWd1cmUgKDUuMTYpLCBjb25maWd1cmUuaW4gKDUuMTQpOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgdG8gY29tcGxldGVseSBkaXNhYmxlIGttZW0gdXNhZ2UKICAgCjIwMDItMDgtMDYgMDM6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuMyk6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDM6MjcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCAoNS4xKToKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTA2IDAzOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKDUuMyksIHNubXBfYXBpLmMgKDUuMTIpOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA2IDAzOjE3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jIChWNC0yLXBhdGNoZXMuNCk6CgogICAgIC0gYWRkIGRlYnVnZ2luZyBvdXRwdXQgd2hlbiBhbGwgYWxhcm1zIHVucmVnaXN0ZXJlZAogICAKMjAwMi0wOC0wNiAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjQpOgoKICAgICAtIHNldCBtYWluX3Nlc3Npb24gdG8gTlVMTCBpbiBzdWJhZ2VudF9zaHV0ZG93bigpLiAgVGhpcyAoYWxvbmcgd2l0aCB0aGUKICAgICAgIGRlcmVnaXN0cmF0aW9uIG9mIGFsbCBhbGFybXMpIGFsbG93cyBBZ2VudFggZnVuY3Rpb25hbGl0eSB0byBiZQogICAgICAgc3RvcHBlZCBhbmQgcmVzdGFydGVkIGluIHN1YmFnZW50cy4KICAgICAtIFRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIHRoaXMgcGF0Y2ggKCM1NTg1MTcpCiAgIAoyMDAyLTA4LTA2IDAzOjA4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYwogICAoVjQtMi1wYXRjaGVzLlszLDEsMzZdKToKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgICAgLSBjYWxsIGl0IGZyb20gc25tcF9zaHV0ZG93bigpCiAgICAgLSB0aGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBwcm92aWRpbmcgdGhpcyBwYXRjaAogICAKMjAwMi0wOC0wNSAxMDowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiAoNS4zKToKCiAgIG1hdGNoIGZ1bmN0aW9uIGRlZmluaXRpb24gdy9OZXRzbm1wXypfRGF0YVBvaW50IHR5cGVkZWZzOyBhZGQgY3ZzIElkCiAgIAoyMDAyLTA4LTAzIDExOjUyICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUyAoMS41KToKCiAgIGJyZWFrIHVwIGxpbmVzIGxvbmcgdGhhbiA4MCBjaGFyczsgYWJjZGUsIG5vdCBhYmNkZAogICAKMjAwMi0wOC0wMyAwMzoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUyAoMS40KToKCiAgIG1vcmUgdXBkYXRlcyBhYm91dCB0aGluZ3MgV2VzIGRvZXMgYXQgMTI6MzAgYW0KICAgCjIwMDItMDgtMDMgMDI6NDQgIGhhcmRha2VyCgogICAqIEZBUSAoNS4xNCksIFJFQURNRSAoNS44KSwgc2Vkc2NyaXB0LmluICg1LjYpLCBwZXJsL1NOTVAvU05NUC5wbQogICAoNS4xMiksIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgKDUuNSk6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjMgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4yIC0+IFY1LjAuMwoKMjAwMi0wOC0wMiAyMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZCAubGlicwogICAKMjAwMi0wOC0wMiAyMzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDgtMDIgMjM6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0wMiAyMzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvcmdvdHRlbiB0byBjaGVjayBpbiB0ZXN0IGZvciBwZXJsX2V2IGNoYW5nZXMKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBwcmludCAob3BwcykKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggZGVmYXVsdCB2ZXJzaW9uIHVzYWdlLgogICAKMjAwMi0wOC0wMiAyMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzU3MjM5NCBmcm9tIEthdHN1aGlzYSBBQkU6CiAgICAgLSBzdXBwb3J0IGxpbmsgbG9jYWwgYWRkcmVzc2VzCiAgICAgLSBiaW5kIHRvIGlwdjYgb25seSBpZiBJUFY2X1Y2T05MWSBpcyBkZWZpbmVkLgogICAKMjAwMi0wOC0wMiAyMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBjb25maWd1cmUgc3BlY2lmaWVkIGRlZmF1bHQgdmVyc2lvbmluZwogICAKMjAwMi0wOC0wMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNTcyMzk0OiBhZGQgaXB2NiB0cmFuc3BvcnRzIHdoZW4gLS1lbmFibGUtaXB2NiBkZWZpbmVkLiAgVGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA4LTAyIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDo1NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgdXBkYXRlCiAgIAoyMDAyLTA4LTAyIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbW9yZSBkb2NzLgogICAKMjAwMi0wOC0wMiAxNDoyOSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMywgTWFrZWZpbGUuaW46CgogICBkb3h5Z2VuIHVwZGF0ZS4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgZm9yIHlldCBtb3JlIHN0dWZmLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGEgZmV3IG1vcmUgZGlzdCByZWxhdGVkIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZXJyb3IgbWVzc2FnZSBjaGFuZ2UgdG8gcmVtb3ZlIERFUyBzcGVjaWZpYyBlcnJvciBtc2cuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3R5cGVtYXA6CgogICBzcGFjaW5nIGZpeGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC54czoKCiAgIHJlbmFtZWQgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICByZW5hbWVkIGZpbGUKICAgCjIwMDItMDgtMDIgMTQ6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgQWRkIGEgImV2YWx2YXJzIiBkaXJlY3RpdmUgdG8gZG8gc2ltcGx5IHJlcGxhY2VtZW50cy4KICAgCjIwMDItMDgtMDIgMTQ6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB1c2UgQ1ZTVVNFUiB2YXJpYWJsZSB3aGVuIGRvaW5nIHN0dWZmIGluc3RlYWQgb2YgbXkgaGFyZC1jb2RlZCBuYW1lLgogICAKMjAwMi0wOC0wMiAxNDoxNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2hhbmdlIGNoZWNrY29tbWVudCB0YWcgdG8gZXhjbHVkZSB3aW4zMiBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBjaGFuZ2Vsb2cgYnVpbGQgbm90ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjcmVhdGVkIGEgaG93LXRvIGZpbGUgZm9yIG1ha2luZyByZWxlYXNlcwogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9jaGFuZ2Vsb2dmaXg6CgogICBjaGFuZ2Vsb2cgZml4LXVwIHNjcmlwdAogICAKMjAwMi0wOC0wMiAxMDoyMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHRyYW5zbGF0ZSAnLycgaW4gc3lzdGVtIG5hbWUgdG8gJ18nIChmb3IgY3lnd2luKQogICAKMjAwMi0wOC0wMiAwOTo1NiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBjdnMgZ2V0IGNvbW1hbmQgZXhhbXBsZQogICAKMjAwMi0wOC0wMiAwOTowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgU3VwcHJlc3MgJ2lubGluZScgd2hlbiBub3QgdXNpbmcgR0NDLiBTdWdnZXN0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAyLTA4LTAyIDA4OjU5ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIG9uIHNraXBwaW5nIG1ha2UgdGVzdDsgYWRkIC1wIGZsYWcgdG8gZXhhbXBsZXMKICAgCjIwMDItMDgtMDIgMDg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZGVzY3JpYmUgdXNlIG9mIG5zYi1wYWNrYWdlIHNjcmlwdC4gVGVzdGVycyBhbmQgY29tbWVudHMgYXBwcmVjaWF0ZWQuLi4KICAgCjIwMDItMDgtMDIgMDg6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wbGF0Zm9ybToKCiAgIG91dHB1dCBwbGF0Zm9ybSBpbmZvCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW5hbWVkIHRvIG5zYi1wYWNrYWdlCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIHJlbmFtZWQgbnNiLWJ1aWxkIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHNjcmlwdCBmdW5jdGlvbgogICAKMjAwMi0wOC0wMiAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2hhbmdlIGxvY2F0aW9uIG5hbWUgdG8gVW5rbm93bgogICAKMjAwMi0wOC0wMiAwODowOCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0KOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHJldHVybiBjb2RlCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBkb24ndCBwdWxsIGZpcnN0IGFyZyB0aWwgYWZ0ZXIgZ2V0b3B0cy9zaGlmdDsgbW92ZSBzZXQgb2YgZGVmYXVsdCBvcHRzCiAgIAoyMDAyLTA4LTAyIDA3OjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IGFkZCAtZiBvcHRpb24gdG8gcHJvbXB0IHRvIG92ZXJyaWRlCiAgIG5vIHByb21wdCBmbGFnICh1c2VmdWwgZm9yIGVycm9ycyk7IG5ldyBuc2ItbWFrZSBtZXRob2Q7IGNoZWNrIHJjIG9mCiAgIG1ha2UgY2xlYW4KICAgCjIwMDItMDgtMDIgMDc6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyB0d2VhayB1c2FnZQogICAKMjAwMi0wOC0wMiAwNzoxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IHR5cG87IHJlbW92ZSBleHRyYSB0cmFpbGluZyBzbGFzaCBpbiBkaXIKICAgCjIwMDItMDgtMDIgMDY6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGNoZWNrIG1vcmUgcGxhY2VzIHRvIHNvdXJjZSBuc2ItZnVuY3Rpb25zOyBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIHBhdGgKICAgCjIwMDItMDgtMDIgMDY6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBqdXN0IHNob3cgZXJyb3JzIGFmdGVyIGJ1aWxkLCBub3Qgd2FybmluZ3MKICAgCjIwMDItMDgtMDEgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJldmVydCB0byBub24tYW5zaSBwcm90b3R5cGVzIGZvciBvbGRlciBwZXJsIHdpdGggb2xkZXIgY29tcGlsZXJzIG9uCiAgIG9sZGVyIHN5c3RlbXMuICBOb3QgdGhhdCBJJ20gZ3J1bXB5LCBvZiBjb3Vyc2UuCiAgIAoyMDAyLTA4LTAxIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfcGVybC5jOgoKICAgY2hlY2sgZm9yIG9sZGVyIGFuZCBuZXcgZW1iZWRkZWQgcGVybCBjYWxsIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wMSAxNDowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IHN5bWxpbmsgdG8gc3JjIGZyb20gYnVpbGQ7IHVwZGF0ZSBuc2ItZ2V0LWNvbmZpZwogICAKMjAwMi0wOC0wMSAxNDowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IGZvciBjbWQgbGluZSBidWlsZCBkaXIKICAgCjIwMDItMDgtMDEgMTI6NTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggY29uZmlnIGluc3RhbGwgcGF0aDsgcmVtb3ZlIHBsYXRmb3JtIHNwZWNpZmljIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA4LTAxIDEyOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW1vdmUgaGFyZCBjb2RlZCBpbmZvCiAgIAoyMDAyLTA4LTAxIDEyOjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIHByb21wdHM7IHJlbW92ZSBwcmV2aW91cyBpbnN0YWxsczsgdHdlYWsgZXJyIHBhdHRlcm4KICAgCjIwMDItMDgtMDEgMTI6MTQgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKSBpbnN0ZWFkIG9mIGRzX3NldF9ib29sZWFuKCkKICAgCjIwMDItMDgtMDEgMTI6MTIgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgICAtIGNoYW5nZSBjb2RlIHNhbXBsZSB0byB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpCiAgICAgLSB1cGRhdGUgcmVmZXJlbmNlcyB0byBsaWJyYXJpZXMgKHdoaWNoIHdlcmUgc3RpbGwgdGFsa2luZyBhYm91dAogICAgICAgbGlidWNkYWdlbnQgZXQgYWwuKSAtLSBQTEVBU0UgUkVWSUVXIEJFRk9SRSA1LjAuMwogICAKMjAwMi0wOC0wMSAxMjowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGxvdHMgb2YgZml4ZXMgdG8gcHJldmlvdXNlIHVudGVzdGVkIHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMTI6MDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHNjcmlwdCB0byBidWlsZCByZWxlYXNlcy4uLiBzdGlsbCBzb21lIGhhcmRjb2Rpbmcgd2hpbGUgdGVzdGluZywgYnV0IGl0cwogICBnZXR0aW5nIHRoZXJlLi4uCiAgIAoyMDAyLTA4LTAxIDExOjUxICByc3RvcnkKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwOgoKICAgdXRpbGl0eSBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogc2NhbGFyLmMsIHNjYWxhcjIuYzoKCiAgIEdvIHdpdGggdGhlICJzY2FsYXIgYXMgc3VwZXItaGFuZGxlciBvZiBpbnN0YW5jZSIgaW1wbGVtZW50YXRpb24uCiAgIFNjYWxhcjEuYyBpcyBwcm9iYWJseSByZWR1bmRlbnQsIGJ1dCB3ZSBjYW4gcmVtb3ZlIHRoaXMgbGF0ZXIuCiAgIChZdXAgLSBJJ20gYSBjb3dhcmQuLi4uKQogICAKMjAwMi0wOC0wMSAwMToxMSAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTWlub3IgdHlwb3MsIHBsdXMgZW1waGFzaXNlIHRoZSBuZWVkIGZvciB0aGUgSXBIbHBBUEkgbGlicmFyeS4KICAgCjIwMDItMDctMzAgMDg6MjYgIGR0czEyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0OgoKICAgUmVjb2duaXNlICcwJyBhcyBhIHZhbGlkIHNldHRpbmcgZm9yIHN1ZmZpeFByaW50aW5nLCBhbmQgdXBkYXRlIHRoZQogICBwcm9tcHRzIHRvIG1hdGNoIHRoZSB2NSBvdXRwdXQgZm9ybWF0cyBkZWZhdWx0cy4gU2VlIEJ1ZyAjNTY3NDUxCiAgIAoyMDAyLTA3LTMwIDA3OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRmlyc3QgYXR0ZW1wdCBhdCB0YWNrbGluZyBCdWcgIzU3NDQzNAogICBSZWNvZ25pc2UgdGhhdCBkZWZhdWx0IG91dHB1dCBmb3JtYXQgaXMgZXF1aXZhbGVudCB0byAtT1MuCiAgIFNubXB0YWJsZSBzdGlsbCBjcmFzaGVzIHdpdGggLU9mIG9yIC1PdSwgYnV0IGF0IGxlYXN0IHRoZQogICBkZWZhdWx0IGludm9jYXRpb24gd29ya3MuCiAgIAoyMDAyLTA3LTMwIDA1OjQxICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydCBuZXdseS1kZWZpbmVkIHB1YmxpYyBuYW1lcywgYW5kIHJlLWV4cG9ydCBzb21lIHJvdXRpbmVzIHRoYXQKICAgaGF2ZSBjaGFuZ2VkIG5hbWUuICBUaGlzIHNob3VsZCBub3cgY29tcGlsZSB1bmRlciBWaXN1YWwgQysrIGFnYWluLgogICAKMjAwMi0wNy0zMCAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCByZW1vdmUgYSBSb3ctU3RhdHVzIGF1dG8tZGVsZXRlZCByb3cgdW50aWwgdGhlIGxhc3QgbWludXRlLAogICBpbiBjYXNlIG90aGVyIChsb3dlcikgaGFuZGxlcnMgdHJ5IHRvIGFjY2VzcyBpdC4KICAgCjIwMDItMDctMzAgMDE6MzggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjEpLCBGQVE6CgogICBNZW50aW9uIHRoZSBuZWVkIHRvIGVzY2FwZSBxdW90ZXMgd2hlbiBxdWVyeWluZyBzdHJpbmctaW5kZXhlZCB0YWJsZXMuCiAgIAoyMDAyLTA3LTI5IDIzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXBkYXRlIHJlZ2lzdGVyIGZ1bmN0aW9uIG5hbWUKICAgCjIwMDItMDctMjkgMjM6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBhdXRvZ2VuIGV4YW1wbGUgY29kZSBmb3IgaW5kZXggY2hlY2tpbmcgaW4gZXh0cmFjdF9pbmRleDsgdXBkYXRlIHJlZ2lzdGVyCiAgIGZ1bmN0aW9uIG5hbWU7IHVzZSBjb250YWluZXIgaW4gKl9nZXRfYnlfaWR4KCkKICAgCjIwMDItMDctMjkgMTY6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIG5ldyBzdHJ1Y3QgbmFtZTsgYWRkIGV4YW1wbGUgY29kZSBhcyBjb21tZW50cyBpbnN0ZWFkIG9mIHZhcl9YWFgKICAgYW5kIHN1Y2g7IGluIGEgZmV3IGltcG9ydGFudCBwbGFjZXMgYWRkIGNvZGUgd2hpY2ggd2lsbCBhbGxvdyBhIG5ld2x5CiAgIGdlbmVyYXRlZCBtb2R1bGUgdG8gYmUgY29tcGlsZWQgaWYgLURUQUJMRV9DT05UQUlORVJfVE9ETyBpcyBzcGVjaWZpZWQ7CiAgIHByb2JhYmx5IGEgZmV3IG90aGVyIHR3ZWFrcyBJIGZvcmdvdAogICAKMjAwMi0wNy0yOSAwMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2FycmF5LmMsIHRhYmxlLmMsIHRhYmxlX2RhdGEuYwosIHRhYmxlX2RhdGFzZXQuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBkZWZlcmVuY2luZyBOVUxMIHBvaW50ZXJzLgogICAoTW9zdCBvZiB0aGVzZSBTaG91bGQgTmV2ZXIgSGFwcGVuIGJ1dCBZb3UgQ2FuJ3QgQmUgVG9vIENhcmVmdWwhKQogICAKMjAwMi0wNy0yOSAwMzowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZGV0ZWN0IGBkbWZlJyBldGhlcm5ldCBjYXJkcyBhcyBmb3VuZCBvbiBOZXRyYSBYMSBtYWNoaW5lcy4KICAgICAgIFRoYW5rcyB0byBKb2huIE9sc29uIGZvciB2ZXJpZnlpbmcgdGhpcyBmaXguCiAgIAogICAgICAgQWxzbyBub3RlIHRoYXQgYGluZGVudCcgaGFzIC0tLS1lZCB0aGUgZm9ybWF0dGluZyBvZiB0aGlzIGZpbGUKICAgICAgIGJleW9uZCBsZWdpYmlsaXR5IGluIHNldmVyYWwgcGxhY2VzLiAgSSBkb24ndCB0aGluayB3ZSB3YW50IHRvCiAgICAgICBkbyAqdGhhdCogYWdhaW4uCiAgIAoyMDAyLTA3LTI5IDAyOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZ1bGxlciB2YWxpZGF0aW9uIG9mIFJvd1N0YXR1cyB2YWx1ZXMgd3J0IHJvdyBjcmVhdGlvbi9leGlzdGluZyByb3dzLgogICAKMjAwMi0wNy0yOSAwMToyNSAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBUYWtlIGFjY291bnQgb2YgcmVjZW50IGNoYW5nZXMgaW4gbGlicmFyeSBmaWxlcy4KICAgJ1JlbGVhc2UnIGFwcGxpY2F0aW9ucyBzdGlsbCBkb24ndCBsaW5rIHByb3Blcmx5LCBidXQgYXQgbGVhc3QKICAgdGhlIGxpYnJhcmllcyBjb21waWxlLCBhbmQgdGhlICdEZWJ1Zycgc2lkZSBzZWVtcyB0byB3b3JrLgogICAKMjAwMi0wNy0yOSAwMToyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBUd2VhayBpbmxpbmUgaGFuZGxpbmcgZm9yIEFJWCAtIHN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAyLTA3LTI2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhdXRvZGVwZW5kZW5jaWVzIHVudGlsIHBvcnRhYmxlIHNvbHV0aW9uIGNhbiBiZSBmb3VuZAogICAKMjAwMi0wNy0yNiAwODo0MSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAob2Jzb2xldGUpIHVjZC1zbm1wL3JlZ2lzdHJ5IG1vZHVsZS4KICAgCjIwMDItMDctMjYgMDc6MzIgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUHJvdGVjdCB0aGUgV2luMzIgdmVyc2lvbiBvZiB0aGUgY29uZmlnIGZpbGUsIHNvIHRoYXQgdGhlIG90aGVyIGhlYWRlcgogICBmaWxlcyByZWNvZ25pc2UgdGhhdCBpdCBoYXMgaW5kZWVkIGJlZW4gaW5jbHVkZWQuCiAgIAoyMDAyLTA3LTI2IDA3OjI0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4wKSwgRkFROgoKICAgQSBiaXQgbW9yZSBkZXRhaWwgb24gbWliMmMsIHBsdXMgdGhlIG5vbi13cml0ZWFiaWxpdHkgb2Ygc3lze0xvY2F0aW9uLENvbnRhY3R9CiAgIAoyMDAyLTA3LTI2IDA1OjIyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy45KSwgRkFROgoKICAgQW5vdGhlciBlbnRyeSBhYm91dCBpbnZhbGlkIHVzZSBvZiBtaWIyYy4KICAgCjIwMDItMDctMjYgMDU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBTdXBwcmVzcyB0aGUgIm5vbi1zdGFuZGFyZCIgY29uZGl0aW9uYWwgY29uc3RydWN0LAogICBzaW5jZSBpdCdzIG5vdCByZWNvZ25pc2VkIGJ5IHNvbWUgdmVyc2lvbnMgb2YgJ21ha2UnLgogICAKMjAwMi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgJ3NjYWxhcicgYW5kICd3YXRjaGVyJyBoZWxwZXJzIHRvIHRoZSBoZWxwZXIgbGlicmFyeS4KICAgCjIwMDItMDctMjUgMDM6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBTdXBwb3J0IGZvciB3YXRjaGluZyBhIHN5c1VwVGltZSBtYXJrZXIuCiAgIAoyMDAyLTA3LTI1IDAzOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBOZXcgcm91dGluZSBmb3IgcmV0cmlldmluZyBhIGNvbHVtbiB2YWx1ZSBkaXJlY3RseSBmcm9tIGEgcmVxdWVzdCBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDEzOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBjaGVjayBmb3Igc2V0dGluZyBzYW1lIHZhbHVlIGluIGRzX3NldF9zdHJpbmcsIHNpbmNlIGl0IGZyZWVzIHRoZSBvbGQKICAgdmFsdWUgYmVmb3JlIGR1cGluZyB0aGUgbmV3IG9uZQogICAKMjAwMi0wNy0yNCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3Qvc25tcGQtaW5pdC5kOgoKICAgZmlyc3Qgc3RhYiBhdCBpbml0LmQgc3RhcnR1cCBzY3JpcHQgZm9yIHNubXBkCiAgIAoyMDAyLTA3LTI0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFdoZW4gcnVubmluZyBvZmYgdGhlIGVuZCBvZiBvbmUgY29sdW1uLCBhbmQgbW92aW5nIG9uIHRvIHRoZSBuZXh0CiAgIChpbiBhIEdldE5leHQpLCB3ZSBuZWVkIHRvIHN0YXJ0IGFnYWluIHdpdGggdGhlIGZpcnN0IHJvdy4KICAgVGhpcyBpcyBwcm9iYWJseSB0aGUgaW50ZW50aW9uIG9mIHRoZSBjb25kaXRpb25hbCBibG9jayBhdCB0aGUgc3RhcnQKICAgb2YgdGhpcyBsb29wLCBidXQgSSBjYW4ndCBzZWUgaG93IHRoaXMgdGVzdCBjb3VsZCBldmVyIHBvc3NpYmx5IG1hdGNoLgogICAKICAgTm90ZSB0aGF0IHRoZXJlIGlzIGFsc28gYSByZWZlcmVuY2UgdG8gdGhlIHJvdyBkYXRhIGFjY2Vzc2libGUgdmlhCiAgIHRoZSAncmVxdWVzdC0+cGFyZW50X2RhdGEnIGRhdGEgbGlzdC4gICBUaGlzIHdpbGwgYWxzbyBuZWVkIHRvIGJlCiAgIHJld291bmQuICBTdWdnZXN0aW9ucyBhcyB0byBob3cgYmVzdCB0byBkbyBzbyBncmF0ZWZ1bGx5IHJlY2VpdmVkLgogICAKMjAwMi0wNy0yNCAwNjozOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIHBvc3NpYmlsaXR5IG9mIGZhaWxpbmcgdG8gZXh0cmFjdCBhIHJvdyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDA2OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgaW52YWxpZCB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yMyAxNDo1OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWlzc2luZyBjb21tZW50IHRlcm1pbmF0b3IuOi0oCiAgIAoyMDAyLTA3LTIzIDEyOjAyICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICB1c2UgbmV3IG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CiAgIAoyMDAyLTA3LTIzIDEyOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgYWRkIG5ldyBuZXRzbm1wX2Fzc2VydCwgd2hpY2ggZGVmYXVsdHMgdG8gbG9nZ2luZyBhIG1lc3NhZ2UKICAgCjIwMDItMDctMjMgMDc6NDMgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMyAoVjQtMi1wYXRjaGVzLjMpLCBtaWJfYXBpLjMuZGVmOgoKICAgRml4IHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlICdzcHJpbnRfcmVhbGxvYycgY2FsbHMsIHRvIGluY2x1ZGUgdGhlICdhbGxvd19yZWFsbG9jJyBwYXJhbWV0ZXIuCiAgIAoyMDAyLTA3LTIyIDEwOjU4ICByc3RvcnkKCiAgICogZGlzdC86IG5ldC1zbm1wLnNwZWMsIG5zYi1mdW5jdGlvbnM6CgogICBuZXcgKGFsbW9zdCBlbXB0eSkgc3BlYyBmaWxlOyBzdGFydCBjcmVhdGluZyBmdW5jdGlvbnMgZm9yIGF1dG9tYXRlZCBidWlsZHMKICAgCjIwMDItMDctMjIgMDE6NDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBBIG1vcmUgZ2VuZXJhbGlzZWQgZm9ybSBvZiB0aGUgJ25zX3JlZ2lzdGVyX3t0eXBlfV9pbnN0YW5jZScgcm91dGluZXMsCiAgIGltcGxlbWVudGVkIGFzIGEgc2VwYXJhdGUgaGVscGVyIG1vZHVsZSwgYW5kIHVzZWFibGUgd2l0aCBib3RoIHRoZQogICBpbnN0YW5jZSBhbmQgc2NhbGFyIGhlbHBlcnMuCiAgICAgVGhpcyBhbHNvIHN1cHBvcnRzIGFyYml0cmFyeSBBU04gdHlwZXMgKGluY2x1ZGluZyBzdHJpbmdzIGFuZCBPSURzKS4KICAgCjIwMDItMDctMjIgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyMS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcjIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaDoKCiAgIEFnZW50IGhlbHBlciBtb2R1bGUgZm9yIHN1cHBvcnQgb2Ygc2NhbGFyIG9iamVjdHMuCiAgIFZlcnkgc2ltaWxhciB0byB0aGUgImluc3RhbmNlIiBoZWxwZXIsIGV4Y2VwdCB0aGF0IHRoaXMgZGVhbHMgd2l0aAogICBpbnZhbGlkIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzIGFzIHdlbGwgKHJlcG9ydGluZyBub1N1Y2hJbnN0YW5jZQogICByYXRoZXIgdGhhdCBub1N1Y2hPYmplY3QpLgogICAKICAgVGhlcmUgYXJlIHR3byBwYXJhbGxlbCBpbXBsZW1lbnRhdGlvbnMgYXMgdGhlIG1vbWVudDoKICAgICAtIHNjYWxhcjEgaXMgZXNzZW50aWFsbHkgYW4gZW5oYW5jZWQgY29weSBvZiB0aGUgaW5zdGFuY2UgaGVscGVyLAogICAgICAgYnV0IGlzIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgaXQuCiAgICAgLSBzY2FsYXIyIHNpdHMgYWJvdmUgdGhlIGluc3RhbmNlIGhlbHBlciwgYW5kIHVzZXMgdGhhdCB0byBkbyBtb3N0CiAgICAgICBvZiB0aGUgcmVhbCBwcm9jZXNzaW5nLgogICBTY2FsYXIxIGlzIHByb2JhYmx5IHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LCB3aGlsZSBzY2FsYXIyIGZlZWxzIG1vcmUKICAgaW4ga2VlcGluZyB3aXRoIHRoZSBnZW5lcmFsIGV0aG9zIG9mIHRoZSBoYW5kbGVyIG1lY2hhbmlzbS4KICAgV2UgcHJvYmFibHkgbmVlZCB0byBkZWNpZGUgd2hpY2ggdG8gYWRvcHQsIGFuZCBqdW5rIHRoZSBvdGhlci4KICAgCjIwMDItMDctMTkgMTQ6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB1c2UgbmV0IGFnZW50eCByZXRpcmVzL3RpbWVvdXQgZHMgdmFsdWVzCiAgIAoyMDAyLTA3LTE5IDE0OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIHJlZ2lzdGVyIHBhcnNlciBmb3IgYWdlbnR4VGltZW91dCBhbmQgYWdlbnR4UmV0cmllcyB0b2tlbnMKICAgCjIwMDItMDctMTkgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub24tZXhpc3RlbnQgbnN0QWdlbnQqIGZpbGVzCiAgIAoyMDAyLTA3LTE5IDE0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1vdmUgT05FX1NFQyB0byBkZWZpbml0aW9ucy5oOyBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTIGRlZmF1bHRzCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaDoKCiAgIG1vdmUgZGVmaW5pdGlvbiBvZiBPTkVfU0VDIGhlcmUgZnJvbSBzbm1wZC5jCiAgIAoyMDAyLTA3LTE5IDExOjIzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHBhc3MgbG9jYWwgb2JqLCBub3QgcmFuZG9tIHVuaXRpYWxpemVkIHBvaW50ZXIuOi0oCiAgIAoyMDAyLTA3LTE5IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIE1BWFBBVEhMRU4gaXNuJ3QgZGVmaW5lZC4KICAgCjIwMDItMDctMTkgMDM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVXNlIHRoZSAic3lzdGVtLWluZGVwZW5kZW50IiBTTk1QX01BWFBBVEggbGVuZ3RoIGRlZmluaXRpb24gaW5zdGVhZCBvZiBNQVhQQVRITEVOCiAgIAoyMDAyLTA3LTE4IDIyOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uZXhpc3RlbnQgbWliZ3JvdXAvbnN0QWdlbnRNb2R1bGVPYmplY3QuaAogICAKMjAwMi0wNy0xOCAxOTo0NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yICkKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuMSAtPiBWNS4wLjIKCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1pbm9yIHBhdGNoIGZvciBub24tZXhpc3RlbnQgKGRpZWQpIGxvZyBmaWxlcy4KCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMgoKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBtYWtlIGRlcGVuZCBmaXhlcy4KCQoyMDAyLTA3LTE4IDE4OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWxhcm0uYywgZXZlbnQuYzoKCiAgIG1ha2UgdGhlIHJtb24gY29kZSBjb21waWxlLgogICAgLSBuZXcgc3VidHJlZSBwb2ludGVyIHN0cnVjdHVyZS4KICAgIC0gc3ByaW50X29iamlkIC0+IHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDctMTggMTg6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgc2lsZW5jZSBwZXJsIHN1YmRpcmVjdG9yeSBidWlsZCBjb21tYW5kcy4KICAgCjIwMDItMDctMTggMTg6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBVc2UgbmV0c2ggLXQgLWQgeG1sIHRvIGdldCB4bWwgb3V0cHV0IGZyb20gbmV0c2guCiAgICAgKE9rLCBJJ20gc2l0dGluZyBoZXJlIGF0IGFuIElFVEYgY29uZmVyZW5jZSBoYXZpbmcgYW4gYXJndW1lbnQgYWJvdXQKICAgICAgeG1sIHZzIEJFUiBhbmQgbmVlZGVkIGEgWE1MKC1saWtlKSBleGFtcGxlIG9mIGEgaHVnZSBkYXRhIHNldCwgc28gSQogICAgICBtYWRlIG5ldHNoIGRvIGl0LikKICAgCjIwMDItMDctMTggMTc6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIGluaXRpYWwgc3VwcG9ydCBmb3IgZG9pbmcgcmVxdWVzdHMgZnJvbSBtdWx0aXBsZSBob3N0cyAocmV0cmlldmFsLCBub3Qgc2V0cykKICAgCjIwMDItMDctMTggMTc6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgbW9yZSBmaXhlcyB0byBzdGlsbCB1Z2x5IGNvbG9yaXplZCB0ZXh0ICh3ZWxsLCB0aGUgdGV4dCBpcyBwcmV0dHkgYnV0CiAgIHRoZSBzdXBwb3J0IGlzIHVnbHkpLgogICAKMjAwMi0wNy0xOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgY2hhbmdlIHRleHQgc3RyaW5nIGVycm9yIHRvIG1hdGNoIGZ1bmN0aW9uIG5hbWUgY2FsbGVkLgogICAKMjAwMi0wNy0xOCAxNTozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgcmVuYW1lIGZyZWUgLT4gY2ZyZWUgdG8gYXZvaWQgc29tZSBwcm9ibGVtIHdlcyBoYWQuLi4gOy0pCiAgIAoyMDAyLTA3LTE4IDE0OjQxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHR3byBwZW9wbGUgZml4aW5nIG1lbW9yeSBsZWFrIGluIGRpZmZlcmVudCBwbGFjZXMgPSBzZWdmYXVsdAogICAKMjAwMi0wNy0xOCAxMTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgICRuYW1lIC0+ICRpCiAgIAoyMDAyLTA3LTE4IDEwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE4IDA5OjQwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tZGVidWctdG9rZW5zLCAtLWluZGVudC1vcHRpb25zCiAgIAoyMDAyLTA3LTE4IDA5OjE4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgc25tcGxpYi9zbm1wLXRjLmMKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4Lmg6CgogICBBcHBseSBwYXRjaCBmcm9tIEJ1ZyAjNTgyMzQ3LCBmb3IgSXJpeCA2LjUgc3VwcG9ydC4KICAgU3VibWl0dGVkIGJ5IEphbiBZZW55YSBLYXNwcnphawogICAKMjAwMi0wNy0xOCAwOToxMiAgZHRzMTIKCiAgICogbWFuLzogc25tcHRyYXBkLjggKFY0LTItcGF0Y2hlcy41KSwgc25tcHRyYXBkLjguZGVmOgoKICAgRml4IG1hcmt1cCBwcm9ibGVtIG9uIHNubXB0cmFwZCBtYW4gcGFnZSAoQnVnICM1ODMzMjkpCiAgIAoyMDAyLTA3LTE4IDA5OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIFRoZSBmaXggZm9yIHRoZSB0bV9nbXRvZmYgcHJvYmxlbSBvbiBBSVggKEJ1ZyAjNTY1NzY5KSBhbHNvIGFwcGxpZXMgdG8gQUlYIDUKICAgCjIwMDItMDctMTggMDk6MDYgIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgKFY0LTItcGF0Y2hlcy4xKSwgZW5jb2RlX2tleWNoYW5nZS5jCjoKCiAgIEZpeCBvZmYtYnktb25lIGJ1ZmZlciBvdmVyZmxvdyAocGF0Y2ggIzU3NzI2MSkKICAgCjIwMDItMDctMTggMDg6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIEdlbmVyYXRlIG9uZSBjb2RlLWZpbGUgcGVyIHRhYmxlICh0byBtYXRjaCB0aGUgaGVhZGVyIHN0cnVjdHVyZSkuCiAgIE15IGFwb2xvZ2llcyBpZiB0aGlzIGlzbid0IGNvcnJlY3QsIFJvYmVydCAtIGJ1dCB0aGUgcHJldmlvdXMgYmVoYXZpb3VyCiAgIHNlZW1lZCB0byBiZSBicm9rZW4uCiAgIAoyMDAyLTA3LTE4IDA4OjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBUYWNrbGUgc29tZSBvZiB0aGUgaW1tZWRpYXRlIGRlZmljaWVuY2llcyBpbiB0aGUgZmlyc3QgZHJhZnQgb2xkLWFwaSBjb25maWcuCiAgIChOb3cgdGhhdCBXZXMgaGFzIHBvaW50ZWQgbWUgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiEpCiAgIAoyMDAyLTA3LTE4IDA4OjIyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEZpeCB0aGUgJ2RlY2wnIHN1YnN0aXR1dGlvbiBoYW5kbGluZyAoc28gaXQgZG9lc24ndCBpbmNsdWRlIHRoZSBpbnRlcm5hbCB0b2tlbiBhcyB3ZWxsKS4KICAgCjIwMDItMDctMTggMDc6MTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgUHJvdmlkZSB0aGUgbWlzc2luZyBwYXJhbWV0ZXIgaW4gYSByZWFkX29ubHkgaW5zdGFuY2UgcmVnaXN0cmF0aW9uLgogICAKMjAwMi0wNy0xOCAwNzowOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgQnJpbmcgdGhlICdyZWFkX29ubHlfaW50JyBpbnN0YW5jZSBoYW5kbGVyIGluIGxpbmUgd2l0aCB0aGUgcmVzdCBvZgogICB0aGUgY29udmVuaWVuY2UgaW5zdGFuY2UgaGFuZGxlcnMuCiAgIChhbmQgZXZlbiBicmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSBhbmQgZGVjbGFyZSB0aGUgdGhpbmcuLi4uKQogICAKMjAwMi0wNy0xOCAwNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IGFub3RoZXIgbWVtb3J5IGxlYWsgZHVlIHRvIGFuIGltcHJvcGVyIGlmZGVmZWQgb3V0IHNlY3Rpb24gb2YgY29kZQogICAKMjAwMi0wNy0xOCAwNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgSSdtIGJlZ2lubmluZyB0byByZWdyZXQgZXZlciBydW5uaW5nIGluZGVudCBvbiB0aGUgY29kZSBiYXNlLi4uCiAgIAoyMDAyLTA3LTE3IDE1OjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgZG9jdW1lbnQgYW5kIGluc3RhbGwgbWliMmMub2xkLWFwaS5jb25mCiAgIAoyMDAyLTA3LTE3IDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHNlZ2ZhdWx0IChwb3NzaWJseSBjcmVhdGluZyBtZW1vcnkgbGVhayk7IGF1dGhvciBuZWVkcyB0byBleGFtaW5lIGNvZGUKICAgCjIwMDItMDctMTcgMDc6NDEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuYXJyYXktdXNlci5jb25mLCBtaWIyYy5jb25mLAogICBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pbnRfd2F0Y2guY29uZiwKICAgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIERhdmUncyBiZWluZyB1bnJlYXNvbmFibHkgcGlja3kgYWJvdXQgZ3JhbW1hciAmIHNwZWxsaW5nIGFnYWluLgogICBKdXN0IGlnbm9yZSBoaW0sIGFuZCBoZSdsbCBnbyBhd2F5Li4uLi4KICAgCjIwMDItMDctMTcgMDc6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIEluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIG9sZCA0eC1zdHlsZSBhZ2VudCBBUEkgdXNpbmcgdGhlIG5ldyB2ZXJzaW9uIG9mIG1pYjJjLgogICBJdCBkb2Vzbid0IGhhbmRsZSB0eXBlcyBwcm9wZXJseSwgYW5kIEknbSBzdXJlIEknbGwgaGF2ZSBidWdnZXJlZCB1cCBzb21lIG9mCiAgIHRoZSBjb250cm9sIHN0cnVjdHVyZSBoYW5kbGluZywgYnV0IGl0IHNlZW1zIHRvIGdlbmVyYXRlIHNvbWV0aGluZyB0aGF0J3MKICAgcHJldHR5IGNsb3NlIHRvIHRoZSBvbGQgb3V0cHV0LiAgIEl0J3MgYmV0dGVyIHRoYW4gbm90aGluZy4uLi4uCiAgIAoyMDAyLTA3LTE2IDIyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIHJlc3RvcmUgaW5saW5lIGZ1bmN0aW9ucyAoc2lnaC4gSSBmZWVsIGxpa2UgSSdtIHBsYXlpbmcgcmluZy1hcm91bmQtdGhlLXJvc2llKQogICAKMjAwMi0wNy0xNiAyMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW5hbWUgc29tZSBzdHJ1Y3QgbWVtYmVycyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvIHJlYWQ7IGEgYml0IG9mIHJlLW9yZGVyaW5nCiAgIGluIHRoZSBzZXQgY29kZTsgbmV3IGZsYWdzIGZvciBuZXcgYW5kIGRlbGV0ZWQgcm93czsgcm93IGRlbGV0ZXMgbm93CiAgIGFjdHVhbHkgd29yayEKICAgCjIwMDItMDctMTYgMTk6MzIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hhbmdlIGNvbXBsZXggbWFjcm9zIGludG8gZnVuY3Rpb25zLiB3b3VsZCBiZSBuaWNlIGlmIEMgaGFkIGlubGluZS4KICAgCjIwMDItMDctMTYgMTg6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB1bW0sIHRyeSB1c2luZyBjb3JyZWN0IGRlZmluZS46LS8KICAgCjIwMDItMDctMTYgMTg6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB0ZXN0IHRoYXQgbmV0LXNubXAtY29uZmlnLmggaGFzIGJlZW4gaW5jbHVkZWQsIGluc3RlYWQgb2YgYWN0dWFsbHkgaW5jbHVkaW5nIGl0Li4KICAgKHNob3VsZG4ndCB0aGlzIHJlYWxseSBiZSBpbiBhbGwgdGhlIGhlYWRlciBmaWxlcz8pCiAgIAoyMDAyLTA3LTE2IDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE2IDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMTYgMTE6MTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMgKGdydW1ibGUgZ3J1bWJsZSkKICAgCjIwMDItMDctMTYgMTE6MTQgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTE6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmRlcGVuZCwgbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAo6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBmYWN0b3J5LmMKICAgCjIwMDItMDctMTYgMTA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgbmV0c25tcF9jb250YWluZXJfaW5pdF9saXN0KCkgaW4gc3RhcnR1cCBpbml0cwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwgc25tcGxpYi9vaWRfYXJyYXkuYwo6CgogICByZW1vdmUgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoZyBwYXJhbSB0eXBlIGZyb20gdm9pZCogdG8gc3RydWN0ICoKICAgCjIwMDItMDctMTYgMTA6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5Lmg7IGFkZCBmYWN0b3J5LCBiaW5hcnkgYXJyYXkgLltjaF07IGRlcml2ZQogICBPQkpTIGFuZCBMT0JKUyBmcm9tIENTUkNTOyBhZGQgKG9wdGlvbmFsKSBhdXRvIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbgogICAKMjAwMi0wNy0xNiAwOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5LmgKICAgCjIwMDItMDctMTYgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmg6CgogICBzdHJ1Y3Qgc3VidHJlZSAtPiBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTYgMDk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBsYXN0IHJlbWFpbmluZyByZWZzIHRvIG5vdyBkZWZ1bmN0IG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZ2VuZXJpYyBiaW5hcnkgYXJyYXkgY29udGFpbmVyIGV4dHJhY3RlZCBmcm9tIG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmg7IG5ldyB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2luZGV4IChvaWQgcHRyICsgbGVuKQogICAKMjAwMi0wNy0xNiAwOTozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGdlbmVyaWMgY29udGFpbmVyIGludGVyZmFjZTsgdXNlIG5ldyBuZXRzbm1wX2luZGV4IGluc3RlYWQgb2YKICAgb2lkX2FycmF5X2hlYWRlcjsgcmVuYW1lIGFycmF5X2dyb3VwIC0+IHJlcXVlc3RfZ3JvdXAKICAgCjIwMDItMDctMTYgMDk6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYWRkIGl0ZXJhdG9yczsgbW9yZSBmdW5jdGlvbiB0eXBlZGVmczsgcmVuYW1lIHNvbWUgZnVuYyBwdHJzLCBhZGQgZmluZF9uZXh0LAogICBnZXRfc3Vic2V0LCBnZXRfaXRlcmF0b3IsIGZvcl9lYWNoLCBuY29tcGFyZTsgYWRkIGFiaWxpdHkgdG8gaGF2ZSBuZXN0ZWQKICAgY29udGFpbmVyczsgbW9yZSB1dGlsaXR5IHJvdXRpbmVzOyBjb252ZW5pZW5jZSBtYXJjcm9zOyBzdGFydCBhZGRpbmcgY29tbWVudHMKICAgCjIwMDItMDctMTYgMDk6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oOgoKICAgZGVjbGFyYXRpb25zIGZvciBhIGdlbmVyaWMgZmFjdG9yeQogICAKMjAwMi0wNy0xNiAwODo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZHluaXguYywgbWVtb3J5X2hwdXguYwosIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfaHB1eC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBidWcgcmVwb3J0IDU4MTYxOCAoYWxzbyBhcHBsaWNhYmxlIHRvIGR5bml4KQogICBQcm92aWRlZCBieSBOaWNob2xhcyBMLiBOaWdheQogICAKMjAwMi0wNy0xNiAwNjo1NCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIE9JRC9PSUQucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHJlbW92ZSAib3VyIiBwcm9ibGVtIGFuZCB1c2Ugb2xkZXIgInVzZSB2YXJzIiBpbnN0ZWFkIGZvciBvbGRlciBwZXJsLgogICAgICh0aGlzIHNob3VsZCBtYWtlIGl0IHdvcmsgd2l0aCBwZXJsIDUuMDA1LiAgQ291bGQgc29tZSBvbmUgdGVzdCB0aGlzCiAgICAgIGZvciBtZT8pCiAgIAoyMDAyLTA3LTE1IDA2OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBuYW1lcyBvZiBuZXRzbm1wX3N1YnRyZWUgZWxlbWVudHMgY2hhbmdlZAogICAKMjAwMi0wNy0xNSAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTUgMDU6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgU29tZSByZWFsbHkgbmFzdHkgaGFja3MgdG8gZ2V0IGNvbG9yaXplZCB0YWJsZXMgdG8gd29yay4KICAgCjIwMDItMDctMTQgMjA6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbWliLnQ6CgogICBjb21tZW50IG91dCBicm9rZW4gdGVzdHMgZm9yIG5vdyAoWFhYIG1hcmtlZCkKICAgCjIwMDItMDctMTQgMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGdldGJ1bGsuCiAgIAoyMDAyLTA3LTE0IDIwOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgQSBuZXcgZnVuY3Rpb24gdG8gY2FsbCBhIHN1Yi1oYW5kbGVyIGJ1dCBwYXNzaW5nIGl0IG9ubHkgb25lIHJlcXVlc3QgdG8gaGFuZGxlLgogICAKMjAwMi0wNy0xMCAyMToyMSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZGVmaW5lIExPR19EQUVNT04sIHNpbmNlIHdpbmRvd3MgZG9lc24ndCBoYXZlIGl0CiAgIAoyMDAyLTA3LTEwIDIxOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgZGVmaW5lIG9mIGluX2FkZHJfdCwgd2hpY2ggY2FuIGJlIGZvdW5kIGluIG5ldC1zbm1wL3R5cGVzLmgKICAgCjIwMDItMDctMTAgMDI6MzYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTEwIDAyOjM1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZG9uJ3QgdXNlIDAgaW4gJXAgZm9ybWF0IHNwZWNpZmllcnMKICAgCjIwMDItMDctMTAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBmaXggc29tZSBob3JyaWJsZSBpbmRlbnQgYnJva2VuIGZvcm1hdHRpbmcKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIHJlbW92ZSBzb21lIG9ic29sZXRlIHZhcmlhYmxlcwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSByZWZsZWN0IGNoYW5nZWQgZnVuY3Rpb24gbmFtZXMgZnJvbSBhZ2VudF9yZWdpc3RyeQogICAKMjAwMi0wNy0xMCAwMjozMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICAgIC0gY2hhbmdlcyBkdWUgdG8gcmVuYW1pbmcgb2Ygc3RydWN0IHN1YnRyZWUgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBOT1RFIE1FTU9SWSBMRUFLICh3aGljaCBJIGNhbid0IHNlZSBob3cgdG8gZml4IC0tIG5ldyBhZ2VudCBBUEkKICAgICAgIGV4cGVydHMgcGxlYXNlIGV4YW1pbmUpCiAgIAoyMDAyLTA3LTEwIDAyOjI5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIG5hbWUsIHN0YXJ0LCBlbmQgbWVtYmVycyBhcmUgbm93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB0byByZWR1Y2UKICAgICAgIHdhc3RlZCBtZW1vcnkgKGJ5IGEgZmFjdG9yIG9mIDUgb3Igc28pCiAgICAgLSBmdW5jdGlvbnMgYXJlIHJlbmFtZWQgY29uc2lzdGVudGx5CiAgIAoyMDAyLTA3LTEwIDAyOjIwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLAogICBuZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTA5IDA2OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlIGNhY2hlX2lkIHN0b3JhZ2Ugd2hlbiBjbG9zaW5nIHNlc3Npb24KICAgCjIwMDItMDctMDkgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGp1c3QgY2FsbCBuZXRzbm1wX2RzX3NodXRkb3duKCkgb25jZSBpbiBzbm1wX3NodXRkb3duKCkKICAgCjIwMDItMDctMDkgMDQ6MTUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbmV0c25tcF9maXh1cF9taWJfZGlyZWN0b3J5KCkKICAgCjIwMDItMDctMDkgMDM6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgYSBjYXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDggMjI6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBleHRlcm4gQyBmb3IgQysrIGNvbXBpbGVzCiAgIAoyMDAyLTA3LTA4IDA3OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICAgIC0gcmVtb3ZlIG9ic29sZXRlIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDctMDcgMTk6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMDcgMTk6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBmaXggdHlwbwogICAKMjAwMi0wNy0wNyAxOTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBwcm9jLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjAzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCiAgIAoyMDAyLTA3LTA3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBtYWtlIHBhcmFtIGNvbnN0OyBmaXggY29tcGlsZSBjb25zdCB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE4OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaXggbWVtb3J5IGxlYWs7IHByZXAgYSBmZXcgY29tbWVudHMgZm9yIGluZGVudAogICAKMjAwMi0wNy0wNiAxNDoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIucHJlMSApCiAgIAoyMDAyLTA3LTA2IDE0OjEwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgcHJvamVjdCB2ZXJzaW9uIHRvIDUuMC4yCiAgIAoyMDAyLTA3LTA2IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBzbm1wdHJhcGQgaXMgYWN0dWFsbHkgYnVpbHQgaW4gdGhlIGFwcHMgZGlyZWN0b3J5LCBub3QgdGhlIGFnZW50IGRpcmVjdG9yeS4KICAgCjIwMDItMDctMDUgMTE6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNsYXJpZnkgZGlyZWN0aW9ucyBmb3Igb2J0YWluaW5nIHBlcmwvU05NUCBtb2R1bGUuCiAgIAoyMDAyLTA3LTA1IDA1OjE4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIC4uLgogICAKMjAwMi0wNy0wNSAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9jbGllbnQuYywgbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHN5c09iamVjdElEIHdhcyBiZWluZyByZXR1cm5lZCBtaW51cyBpdHMgbGFzdCBzdWItaWRlbnRpZmllciBiZWNhdXNlCiAgICAgICB0aGUgbGVuZ3RoIHZhcmlhYmxlIGhhZCBub3QgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBpdAogICAgICAgaXMgbm93IGxvbmdlci4gIENvZGUgY2hhbmdlZCB0byB1c2Ugc2l6ZW9mKCkgaW5zdGVhZCwgc28gdGhpcyB3b24ndAogICAgICAgaGFwcGVuIGFnYWluLiAgUmVwb3J0ZWQgYnkgU3RpYW4gU29pbGFuZCAoYnVnICM1Nzc0MzkpLgogICAKMjAwMi0wNy0wNCAxMDoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wCiAgIAoyMDAyLTA3LTA0IDA3OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCBoYW5kbGluZyBvZiBvcGFxdWUgcG9pbnRlciBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMgdG8KICAgICAgIGF2b2lkIGJvdGggbXVsdGlwbGUgZnJlZSgpIHByb2JsZW0gYW5kIHVubmVjZXNzYXJ5IGNvcHlpbmcuCiAgIAoyMDAyLTA3LTA0IDA2OjAwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgKFY0LTItcGF0Y2hlcy5bNSw5XSksIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5ldHdvcmtEaXNrIHBhdGNoICM1NTQ1NTQKICAgCjIwMDItMDctMDQgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaAogICAoVjQtMi1wYXRjaGVzLls1LDFdKSwgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBORlMgZmlsZXN5c3RlbSBwYXRjaCAjNTU0NTUzCiAgIChzaW1wbGlmaWVkIHRvIGF2b2lkIHRoZSByZS1pbmRlbnRhdGlvbiAtIHdoaWNoIG1ha2VzIGl0IGVhc2llciB0byBzZWUKICAgIHdoYXQncyBjaGFuZ2VkLiAgVGhlIHdob2xlIEhvc3RSZXMgZ3JvdXAgbmVlZHMgY2xlYW5pbmcgdXAgYW55d2F5ISkKICAgCjIwMDItMDctMDQgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVuc3VyZSB0cmFuc3BvcnQgb3BhcXVlIGRhdGEgaXNuJ3QgbXVsdGlwbHkgYXNzaWduZWQKICAgKGFuZCBoZW5jZSBtdWx0aXBseSBmcmVlZCkgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzLgogICBEYXRhZ3JhbS1iYXNlZCB0cmFuc3BvcnRzIGRvbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbS4KICAgQmFzZWQgb24gUGF0Y2ggNTczNzcxCiAgIAoyMDAyLTA3LTAzIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBiZSBwcmVjaXNlIGFib3V0IHdoYXQgZmlsZSBuZWVkcyB0byBiZSBjb25maWd1cmVkIGZvciBhY2Nlc3MgY29udHJvbAogICAKMjAwMi0wNy0wMyAxNDoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggbWlub3IgZ3JhbW1hciBlcnJvcnM7IGFkZCBkZXNjciBmb3IgbWliMmMuYXJyYXktdXNlcjsgYWRkIHNlY3Rpb24gaGVhZGVyCiAgIGZvciBnZW5lcmF0aW5nIGhlYWRlciBkZWZpbml0aW9uIGZpbGVzCiAgIAoyMDAyLTA3LTAzIDEzOjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IHR5cGVzLmgsIGxpYnJhcnkvc3lzdGVtLmg6CgogICBtb3ZlIGluY2x1ZGUgZm9yIGluX2FkZHJfdCB0byBuZXQtc25tcC90eXBlcy5oLCB3aGVyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZAogICBmb3Igc3lzdGVtcyB3L291dCBuZXRpbmV0L2luLmgKICAgCjIwMDItMDctMDMgMTI6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIG1vcmUgdHdlYWtzIG5vdGljZWQgb24gdGhlIG1haWxpbmcgbGlzdAogICAKMjAwMi0wNy0wMyAwODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgbWFrZSB0ZXN0IGNsZWFudXBzIHRlc3QucGwKICAgCjIwMDItMDctMDMgMDM6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jIChWNC0yLXBhdGNoZXMuMSksIHV0aWxfZnVuY3MuYwo6CgogICBTaHV0IHRoZSBhZ2VudCBkb3duIGNsZWFubHkgYmVmb3JlIHJlc3RhcnRpbmcuCiAgIFRoaXMgY2xvc2VzIGFueSBTTk1QL0FnZW50WCBwb3J0cyBhcyB3ZWxsLgogICAKMjAwMi0wNy0wMyAwMzoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgT0lEIHN1Yi1pZGVudGlmaWVycyBhcmUgdW5zaWduZWQsIHNvIHRyZWF0aW5nIHRoZW0gYXMgc2lnbmVkIGNhbgogICBnaXZlIHRoZSB3cm9uZyByZXN1bHRzIHdpdGggbGFyZ2UgdmFsdWVzLgogICAKMjAwMi0wNy0wMyAwMzoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uaCAoVjQtMi1wYXRjaGVzLjUpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBFbnN1cmUgaW5fYWRkcl90IGlzIGRlZmluZWQuCiAgIAoyMDAyLTA3LTAzIDAyOjM0ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFRlc3RpbmcgZm9yIDxzeXMvZGlza2xhYmVsLmg+IHJlcXVpcmVzIDxtYWNoaW5lL3R5cGVzLmg+IG9uIE5ldEJTRCAxLjUuCiAgIFJlcG9ydGVkIGJ5IEZlbGljaWEgTmVmZi4KICAgKEFwcGFyZW50bHkgZnJvbSB0aGUgTmV0QlNEIGJ1ZyBkYXRhYmFzZSAtIHdoeSB0aGV5IGRpZG4ndCB0ZWxsIHVzIGFib3V0CiAgIGl0IGlzIGEgbXlzdGVyeSB0byBtZS4uLi4pCiAgIAoyMDAyLTA3LTAzIDAyOjE5ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHN5c09iamVjdElEIGFzIHJlcG9ydGVkIGluIHRoZSBjb25maWd1cmUgLS1oZWxwIG91dHB1dC4KICAgKFRoZSBhY3R1YWwgdmFsdWUgdXNlZCBpcyBjb3JyZWN0IC0gaXQncyBqdXN0IHRoZSBoZWxwIG91dHB1dCB0aGF0J3Mgd3JvbmcpLgogICBTcG90dGVkIGJ5IFNhbmRoeWEgU2F0eWFuYXJheWFuLgogICAKMjAwMi0wNy0wMiAyMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIHVwZGF0ZSB0ZXh0IGZvciB2YXJpb3VzIC5jb25mIGZpbGVzCiAgIAoyMDAyLTA3LTAyIDEzOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBmaXhlcyBub3RlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGJ5IFBhdHJpY2UgS2FkaW9uaWsgPGthZGlvbmlrQGVuc2VpcmIuZnI+CiAgIAoyMDAyLTA3LTAyIDAyOjM5ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBBZGQgdGhlICdzbm1wZCcgYW5kICdzbm1wdHJhcGQnIGJpbmFyeSBuYW1lcyB0byB0aGUgYXBwcm9wcmlhdGUgcGF0aHMKICAgd2hlbiBzZXR0aW5nIHVwIHRoZSB0ZXN0aW5nIGZyYW1ld29yay4KICAgCjIwMDItMDctMDEgMDc6NTMgIGR0czEyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy44KSwgYXNuMS5jOgoKICAgRW5jb2RlL0RlY29kZSBPSURzIG9mIHRoZSBmb3JtIDIuWCAoWCA+IDQwKSBjb3JyZWN0bHkuCiAgIAoyMDAyLTA3LTAxIDAyOjQwICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBob3JyaWJsZSBmb3JtYXR0aW5nIGluIGhlbHAgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDItMDctMDEgMDI6MjMgIGR0czEyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIFBpY2sgdXAgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBmb3IgdGhlIHJvb3Qgb2YgdGhlIFVDRCBleHRlbnNpYmxlIGFnZW50IHRhYmxlcwogICAoc28gdGhhdCB0aGUgRVhBTVBMRS5jb25mIGZpbGUgZ2V0cyBzZXQgdXAgd2l0aCB0aGUgY29ycmVjdCBudW1lcmljIE9JRHMpCiAgIAoyMDAyLTA2LTI4IDA2OjQ2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF90Y3BfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI4IDA0OjQxICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBVcGRhdGUgZGVmYXVsdCBzdG9yZSByZXRyaWV2YWwgZnVuY3Rpb25zIHRvIHVzZSB0aGUgY29ycmVjdCBuYW1lLgogICAKICAgTm90ZSB0aGF0IHRoaXMgdGVzdCBzY3JpcHQgYXBwZWFycyB0byBpbmNsdWRlIHR3byBpbmZpbml0ZSBsb29wcy4KICAgSSdtIG5vdCBjbGVhciBob3cgdGhpcyBpcyBleHBlY3RlZCB0byBydW4gc3VjY2Vzc2Z1bGx5ID8KICAgCjIwMDItMDYtMjggMDQ6MzkgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vbi1leGlzdGVudCBkZWd1Z2dpbmcgZnVuY3Rpb24uCiAgIAoyMDAyLTA2LTI4IDA0OjM3ICBkdHMxMgoKICAgKiBwZXJsL21hbmFnZXIvOiBNYWtlZmlsZS5QTCwgZGlzcGxheXRhYmxlLnBtLAogICBnZXRWYWx1ZXMucG0sIG1hbmFnZXIucG0sIHNubXB0b3NxbDoKCiAgIEJyaW5nIHBlcmwgJ21hbmFnZXInIG1vZHVsZSB1bmRlciB0aGUgTmV0U05NUCBiYW5uZXIKICAgKGJvdGggaW4gdGVybXMgb2YgbW9kdWxlIGdyb3VwIG5hbWUsIGFuZCByZWZlcmVuY2VzIHRvICd1Y2Qtc25tcCcpLgogICBSZW1vdmUgc29tZSBVQ0Qtc3BlY2lmaWMgc2V0dGluZ3MuCiAgIAogICBOb3RlIHRoYXQgc25tcHRvc3FsIHN0aWxsIHJlZmVycyBleHBsaWNpdGx5IHRvIFdlcycgVUNEIGVtYWlsIGFkZHJlc3MsCiAgIGFuZCBtYW5hZ2VyLnBtIHRvIFdlcycgVUNEIGZpbGVzdG9yZSBwYXRoLiAgVGhlIHJlbGV2YW50IGxpbmVzIGhhdmUKICAgYmVlbiBoaWdobGlnaHRlZCwgdG8gZW5jb3VyYWdlIGFueW9uZSB3aXNoaW5nIHRvIHVzZSB0aGlzIHRvIGNoYW5nZSB0aGVtLgogICAKMjAwMi0wNi0yOCAwNDoxMiAgZHRzMTIKCiAgICogcGVybC86IEFueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgbWFuYWdlci9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBjaGVja2luZyBmb3IgImludGVybmFsIiBwcmVyZXF1aXNpdGVzLCBzbyB0aGF0ICJwZXJsIE1ha2VmaWxlLlBMIgogICBhdCB0aGUgdG9wIGxldmVsIHdpbGwgd29yayAtIGV2ZW4gb24gYSBwcmlzdGluZSBzeXN0ZW0uCiAgIAogICBRbjoKICAgICBJcyBpdCBuZWNlc3NhcnkvZGVzaXJhYmxlIHRvIHNlcGFyYXRlIHRoZSBOZXRTTk1QIG1vZHVsZXMgdG8gdGhpcyBleHRlbnQ/CiAgIFdvdWxkIGl0IG5vdCBiZSBzaW1wbGVyIHRvIGhhdmUgYWxsIG9mIHRoZSBtYWluIC5wbS8ueHMgZmlsZXMgaW4gYSBzaW5nbGUKICAgTmV0U05NUCBkaXJlY3RvcnksIGFuZCBjb21waWxlL2luc3RhbGwgdGhlbSBhbGwgZnJvbSB0aGVyZT8KICAgCjIwMDItMDYtMjggMDE6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2hlY2sgZm9yIC0td2l0aC1lbnRlcnByaXNlIChldCBhbCkgYmVpbmcgaW52b2tlZCB3aXRob3V0IGEgdmFsdWUsIGFuZCBib21iIG91dC4KICAgCjIwMDItMDYtMjcgMjE6NDMgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIG5ldyBSRUFETUUgZGV0YWlubGluZyB0aGUgdXNlIG9mIFNGSU8gdG8gY2lyY3VtdmVudCB0aGUgMjU1IGZkIGxpbWl0IG9uCiAgIHNvbGFyaXMuCiAgIAoyMDAyLTA2LTI3IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgY2hhbmdpbmcgYXJyYXk7IGFkZCBuZXRzbm1wX3RhYmxlX2FycmF5X3JlbW92ZV9yb3coKQogICAKMjAwMi0wNi0yNyAwNDoxNSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBTb21lIHZlcnNpb25zIG9mICdtYWtlZGVwZW5kJyAoZS5nLiBSZWRIYXQgNy4xKSwgY2FuJ3QgaGFuZGxlICItb3N1ZmZpeCIKICAgYXMgYSBzaW5nbGUgb3B0aW9uLiAgQWxsIHZlcnNpb25zIHNlZW0gaGFwcHkgd2l0aCAiLW8gc3VmZml4IiBzbyB1c2UgdGhhdC4KICAgCjIwMDItMDYtMjcgMDM6MzEgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgRU5WX1NFUEFSQVRPUl9DSEFSIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgJzonIGluIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkKICAgKGFzIHN1Z2dlc3RlZCBieSBSb2JlcnQpCiAgIAoyMDAyLTA2LTI3IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF91ZHBfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI3IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNubXBfbWliLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9taWIuYwo6CgogICBWYWxpZGF0ZSBuZXcgc25tcEVuYWJsZUF1dGhlblRyYXBzIHZhbHVlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgogICBTcG90dGVkICYgZml4ZWQgYnkgU2hhbnRoYSBLdW1hcmEKICAgCjIwMDItMDYtMjUgMTQ6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIGFkZCBBUFBUT1BTICgtQ3EpIGZvciBzdXBwcmVzc2luZyBvdXRwdXQgb2Ygc2V0IHJlc3VsdHMgb24gc3VjY2VzcwogICAKMjAwMi0wNi0yNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQXBwbHkgcGF0Y2ggIzU1OTg0OCB0byB1c2UgdGhlIC9wcm9jIHBzZXVkby1maWxlc3lzdGVtIHVuZGVyIExpbnV4CiAgIChyYXRoZXIgdGhhbiBwYXJzaW5nIHRoZSBvdXRwdXQgb2YgcHMpCiAgIAoyMDAyLTA2LTI1IDA4OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENoZWNrIGZvciAnYWl4NCcgKHdoaWNoIGlzIHRoZSB0b2tlbiBkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVyIGZpbGUpCiAgIHJhdGhlciB0aGFuICdhaXgnLiAgIFNlZSBidWcgIzU2NTc2OQogICAKMjAwMi0wNi0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgVHJlYXQgJzAnIGFzIGFuIGludmFsaWQgaW5kZXggZm9yIGEgInNpbXBsZSB0YWJsZSIuCiAgIAoyMDAyLTA2LTI1IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHN5c0NvbnRhY3QuMCBhbmQgc3lzTG9jYXRpb24uMAogICBjb25maWd1cmF0aW9uIHRva2Vucy4KICAgCjIwMDItMDYtMjUgMDY6NDAgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3A6CgogICAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCB0byBkZWZhdWx0X3N0b3JlIGZ1bmN0aW9ucwogICAKICAgICAtIGNsZWFuIHVwIG1hbnBhZ2UgYSBiaXQKICAgCiAgICAgLSBmaXggYnJlYWthZ2UgaW4gZ2VuZXJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlLjMuaCBkdWUgdG8gYXV0by1pbmRlbnRhdGlvbgogICAgICAgb2YgZGVmYXVsdF9zdG9yZS5oCiAgIAoyMDAyLTA2LTI1IDAyOjU1ICBqYnBuCgogICAqIEVYQU1QTEUuY29uZi5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgRVhBTVBMRS5jb25mLmRlZjoKCiAgICAgLSBtZW50aW9uIHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbiBldCBhbC4gaW4gc25tcGQuY29uZiBtYWtlcyB0aGVtCiAgICAgICByZWFkLW9ubHkKICAgCiAgICAgLSBhbHNvIGNoYW5nZSBzeW50YXggb2YgYWxsIGV4YW1wbGUgY29tbWFuZCBsaW5lIHRvb2xzIHRvIHVzZSBuZXdlcgogICAgICAgLWMgQ09NTVVOSVRZIHN5bnRheCBub3QgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCjIwMDItMDYtMjQgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgbWFrZSBidWZmZXIgc2l6ZSBpbmNyZWFzZSBub3RlIGEgZGVidWcgc3RhdGVtZW50IHJhdGhlciB0aGFuIGEgZ2VuZXJpYwogICBsb2cgc3RhdGVtZW50LgogICAKMjAwMi0wNi0yMyAxODo0MCAgZHJpZWh1aXMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBIYW5kbGUgQ09VTlRFUjY0IGluIF9fdHJhbnNsYXRlX2Fzbl90eXBlLgogICAKMjAwMi0wNi0yMyAxNjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2NyaXB0IGFuZCB0aGUgbGFuZ3VhZ2UgaXQgaG91c2VzLgogICAgIChtYW4gcGFnZSBhdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBjb250YWluZWQgcG9kIGRvY3VtZW50YXRpb24pCiAgIAoyMDAyLTA2LTIzIDE1OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgdXBkYXRlIHRvIHJlZmVyZW5jZSB0b3AgbGV2ZWwgTWFrZWZpbGUuUEwKICAgCjIwMDItMDYtMjMgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY0LTItcGF0Y2hlcy4xKSwgU05NUC54czoKCiAgIGZpeCByZXBvcnRlZCBieSBXaWxsZW0gRGVra2VyIGZvciBXaW5kb3dzLiAgQnVnICM1NDMxOTQgZml4ZWQuCiAgIAoyMDAyLTA2LTIyIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIGZvciByZWNlbnQgbWV0aG9kb2xvZ2llcwogICAKMjAwMi0wNi0yMSAxNjowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaW5hbCAoaG9wZWZ1bGx5ISkgZml4IGZvciBwYXJzaW5nIGlwIGFkZHJlc3NlcyBmcm9tCiAgICJGY28uIEphdmllciBSaWRydWVqbyIgPGFjYnJpcGVmQHNpLmVodS5lcz4KICAgCjIwMDItMDYtMTkgMTQ6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmcm9tIGRveHlnZW4KICAgCjIwMDItMDYtMTkgMTE6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaW50X3dhdGNoLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgc2NhbGFyIG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIGdlbmVyYXRpbmcgc2NhbGFyIGNvZGUuCiAgIAoyMDAyLTA2LTE5IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBjbGVhbiB1cCBtdWx0aS1saW5lIGNvbW1lbmQgd2hpY2ggd2FzIG1lc3NlZCB1cCBieSBpbmRlbnQuCiAgIAoyMDAyLTA2LTE5IDExOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHByb21wdGluZyBvZiB1bmtub3duIHBhcmFtZXRlcnMgdG8gYWxpYXNlcy4KICAgLSBtaXNjIG90aGVyIGltcHJvdmVtZW50cyAobGlrZSAicmVoYXNoIikKICAgCjIwMDItMDYtMTkgMTE6MzggIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBmb3IgbmV3IGRlZmF1bHQgc3RvcmUgQVBJCiAgIAoyMDAyLTA2LTE5IDExOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgTWFrZWZpbGUuc3Vicy5wbCwgbWFrZS1wZXJsLW1ha2VmaWxlcywgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEFSR0dHR0dHCiAgIEkgbG92ZSBwZXJsLgogICBJIGhhdGUgcGVybCdzIG1ha2Ugc3lzdGVtLgogICBJIGhhdGUgdGhlIGZhY3QgdGhhdCBwZXJsIHNlZ2ZhdWx0cyBpZiBHZXRPcHRpb25zKCkgaXMgY2FsbGVkIG1vcmUKICAgdGhhbiBvbmNlLgogICBzaWdoLgogICBUaGlzIGhvcGVmdWxseSB3aWxsIGZpeCB0aGUgcGVybCBtb2R1bGUgYnVpbGQgcm91dGluZXMgc28gaXQgYXQgbGVhc3QKICAgd29ya3MgKGJ1dCBpdCdzIHN0aWxsIHVnbHkgYW5kIGNvdWxkIHVzZSBtb3JlIGNsZWFuaW5nKS4KICAgCjIwMDItMDYtMTkgMDc6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggaW5maW50ZSBsb29wIGFuZCBhZGQgZGVidWcgaW4gcmVtb3ZlX2RlbGVnYXRlZAogICAKMjAwMi0wNi0xOCAwNzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgTlVMTCB0aGUgcHJpdiBwb2ludGVyIG9uIHNlc3Npb24gZHVwbGljYXRpb24uICB0aGFua3MgdG8gcmV6aXRvegogICAKMjAwMi0wNi0xNyAwNjoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlZCBLYXRzdWhpc2EncyBlbWFpbCBhZGRyZXNzLCBvbiByZXF1ZXN0CiAgIAoyMDAyLTA2LTE0IDA3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjNTY5MDIxOiBmcm9tIExhdXJpIE15bGxhcmkKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdGFibGUgaXRlcmF0b3Igc3VwcG9ydC4KICAgCjIwMDItMDYtMTQgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzU2OTAyMCBmcm9tIHJleml0b3ogb24gSVJDIHRvIGZpeCBub24taW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDItMDYtMTQgMDM6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYzoKCiAgIEFkZCAobnVsbCkgY29udGV4dCwgdG8gYnJpbmcgaW50byBsaW5lIHdpdGggdGhlIHY1IHJlZ2lzdHJ5IEFQSXMuCiAgIEZpeGVzIGJ1ZyA1Njg1ODAuCiAgIAoyMDAyLTA2LTE0IDAyOjI3ICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBVc2UgbWF0Y2hpbmcgJyBhbmQgIiBxdW90ZXMgZm9yIEFJWCBjb25maWd1cmUgdGVzdC4KICAgTWVudGlvbmVkIGluIHBhc3NpbmcgaW4gYnVnIDU2NTc2OS4KICAgCjIwMDItMDYtMTMgMTQ6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2NvbmYudDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlIHJvdXRpbmVzCiAgIAoyMDAyLTA2LTEyIDA2OjQzICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEJyaW5nIFdpbmRvd3MgT0lEIHVzYWdlIGludG8gbGluZSB3aXRoIHRoZSBtYWluIGNvbmZpZyBmaWxlIHNldHRpbmdzLgogICAKMjAwMi0wNi0xMiAwNjozNyAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENvcnJlY3QgdGhlIGRlZmF1bHQgRW50ZXJwcmlzZSBPSUQgdXNlZCBpbiB0cmFwcywgdG8gYXZvaWQgYSByZXBlYXRlZCAwCiAgIHN1YmlkZW50aWZpZXIuICAoRml4ZXMgYnVnICM1NjY5MTcpCiAgIAoyMDAyLTA2LTEyIDA1OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZWZpbmUgJ2xlbmd0aCcgYXMgYSBzaWduZWQgdmFyaWFibGUsIHNvIGl0IGNhbiBoYW5kbGUgYW4gZXJyb3IgdmFsdWUgb2YgLTEuCiAgIFJlcG9ydGVkIGJ5IEpvYWtpbSBBbHRoaW5pLgogICAKMjAwMi0wNi0xMiAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSBzdXJlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXh0IGxpbmsgaXMgcHJvcGVybHkgc2F2ZWQsIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgUHJvYmxlbSBkaXNjb3ZlcmVkIGJ5IEh1Z28gQ2Fjb3RlLgogICAKMjAwMi0wNi0xMiAwMjoxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2FnZW50X2luZGV4LmgsIGFnZW50L2FnZW50X3RyYXAuaAosIGFnZW50L2FsbF9oZWxwZXJzLmgsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYnVsa190b19uZXh0LmgsIGFnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvbXVsdGlwbGV4ZXIuaCwgYWdlbnQvbnVsbC5oCiwgYWdlbnQvb2xkX2FwaS5oLCBhZ2VudC9yZWFkX29ubHkuaCwKICAgYWdlbnQvc2VyaWFsaXplLmgsIGFnZW50L3NldF9oZWxwZXIuaCwKICAgbGlicmFyeS9jbXVfY29tcGF0LmgsIGxpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFRDUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgbGlicmFyeS9zbm1wX3NlY21vZC5oLCBsaWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGxpYnJhcnkvdWNkX2NvbXBhdC5oOgoKICAgU3VwcGx5IG1pc3NpbmcgI2lmbmRlZi8jZGVmaW5lLyNlbmRpZiBhbmQgZXh0ZXJuICJDIiB7fSB3cmFwcGVycwogICAKMjAwMi0wNi0xMSAxNzo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZW1vdmUgc3B1cmlvdXMgcHJpbnRmIHRvIHN0ZGVycgogICAKMjAwMi0wNi0xMSAxNDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGFkZCBleHRlcm4gIkMiOyBhZGQgdm9pZF9hcnJheSBzdHJ1Y3QKICAgCjIwMDItMDYtMTEgMTQ6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgdHNlYXJjaDsgdXNlIG5ldyBjb250YWluZXIgaW5zdGVhZAogICAKMjAwMi0wNi0xMSAxNDoxOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBjb250YWluZXIgZm9yIHNlY29uZGFyeSBpbmRleAogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY29udGFpbmVyIHRvIGhlYWRlcnM7IGFkZCBjb250YWluZXIuYwogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBpbml0IGZ1bmN0aW9ucyBmb3IgYmFzaWMvc29ydGVkIGNvbnRhaW5lcgogICAKMjAwMi0wNi0xMSAxNDoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIG1vcmUgbWV0aG9kcyBmb3IgYmFzaWMgY29udGFpbmVyOyBhZGQgc29ydGVkICh3aWxsIHByb2JhYmx5IHJlbmFtZSkgY29uYXRpbmVyCiAgIAoyMDAyLTA2LTExIDEyOjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGluY2x1ZGVzOyBhZGQgZXh0ZXJuICJDIiBmb3IgX19jcGx1c3BsdXMKICAgCjIwMDItMDYtMTEgMTE6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCwgTWFrZWZpbGUuUEwsIFJFQURNRQosIG5ldHNoLCBzbm1wc2g6CgogICByZW5hbWVkIHNubXBzaCB0byBuZXRzaCwgYXMgSSBsaWtlIHRoZSBuYW1lIGJldHRlciBhbmQgaXQgYXBwZWFscyB0byBhCiAgIHdpZGVyIG51bWJlciBvZiBwZW9wbGUuCiAgIAoyMDAyLTA2LTEwIDA5OjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgd2hlbiBkZWxldGluZyBhbiBhc3AgcG9pbnRlciwgbWFrZSBzdXJlIGl0IGlzbid0IGluIHRoZSBkZWxlZ2F0ZWQgbGlzdAogICAKMjAwMi0wNi0xMCAwODo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggcGFyc2Vfb25lX29pZF9pbmRleCB0byBhbGxvdyB0b28gc2hvcnQgSVAgYWRkcmVzcyB3aGVuIGNvbXBsZXRlIGlzCiAgIHNwZWNpZmllZDsgYWRkIG5ldHNubXBfb2lkMmNoYXJzICYgbmV0c25tcF9vaWQyc3RyCiAgIAoyMDAyLTA2LTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBkZWZpbmVzCiAgIAoyMDAyLTA2LTEwIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC8uY3ZzaWdub3JlLCBwZXJsL01ha2VmaWxlLlBMOgoKICAgVG9wIGxldmVsIHBlcmwgTWFrZWZpbGUuUEwgdG8gaW5zdGFsbCB0aGUgd2hvbGUgYnVuY2ggdW5kZXJuZWF0aC4KICAgVGhpcyBzaG91bGQgbm93IGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgbG93ZXIgbGV2ZWwgbWFrZWZpbGVzIGZvcgogICBzaW1wbGljaXR5LgogICAKMjAwMi0wNi0xMCAwNzoyNyAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBBY2tub3dsZWRnZSBrbm93biBmYWlsaW5nIHRlc3RzLgogICBUaGlzIG1lc3NhZ2UgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgcHJvYmxlbSBoYXMgYmVlbiBpc29sYXRlZCBhbmQgZml4ZWQuCiAgIAoyMDAyLTA2LTEwIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCBmb3IgaXBhZGRyZXNzIGJ1aWxkaW5nL3BhcnNpbmcgb2YgT0lEIGluZGV4ZXMuCiAgIAoyMDAyLTA2LTEwIDAyOjA3ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgTWVudGlvbiB0aGUgb3RoZXIgcGVybCBtb2R1bGVzLCBpbnRyb2R1Y2VkIHdpdGggdjUgKHBhcnRpY3VsYXJseSAnZGVmYXVsdF9zdG9yZScpCiAgIAoyMDAyLTA2LTEwIDAxOjI4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgTmV3IGVudHJ5IGRlc2NyaWJpbmcgcG9zc2libGUgcHJvYmxlbXMgd2l0aCB0cmFwIGhhbmRsZXJzLgogICAKMjAwMi0wNi0wOCAyMTozOSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDYtMDggMjA6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGJyZWFrIHBlcmwgbWFrZWZpbGUgY3JlYXRpb24gaW50byBzZXBlcmF0ZSBzdGVwOyBvbmx5IGNsZWFuIHBlcmwgZGlyZWN0b3J5CiAgIGlmIHRoZXJlIGlzIGEgbWFrZWZpbGUKICAgCjIwMDItMDYtMDggMjA6MTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBwZXJsdGVzdCB0YXJnZXQgdG8gbWFrZSB0ZXN0IGluIGFsbCBwZXJsIGRpcmVjdG9yaWVzCiAgIAoyMDAyLTA2LTA4IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgZml4IHRvIGRlYWwgd2l0aCB1cGRhdGVkIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDYtMDggMDc6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgdG8gU1FMLVN0YXRlbWVudCByZXF1aXJlbWVudCBvZiAxLjAwNAogICAKMjAwMi0wNi0wOCAwNjo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgbWliIGluaXQgY29kZSBmcm9tIEMgc25tcF90cmFuc2xhdGVfb2JqIGNhbGwKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5pdF9zbm1wIGluc2lkZSB0cmFuc2xhdGVPYmoKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGNoYW5nZSB2ZXJzaW9uIHRvIDAuMQogICAKMjAwMi0wNi0wOCAwNjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgQSBmZXcgY2xlYW51cHMgdG8gaWZjb25maWcgYW5kIG5ldHN0YXQgY29tbWFuZHMKICAgCjIwMDItMDYtMDggMDY6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIC0gYmVnaW5uaW5nIHN1cHBvcnQgZm9yIGltcG9ydC9leHBvcnQgb2YgZGF0YSAoY3VycmVudGx5IHRvL2Zyb20gQ1NWKS4KICAgLSBzdXBwb3J0IGZvciAiZGlmZiIgd2hpY2ggY29tcGFyZXMgb2xkIChwb3NzaWJseSBpbXBvcnRlZCBkYXRhKSB0byBjdXJyZW50LgogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgcmVxdWlyZWQgU05NUCBtb2R1bGUgdmVyc2lvbiBmcm9tIDQgdG8gNQogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgdHV0b3JpYWwgcGxhY2UgaG9sZGVyIGNvbW1lbnQgT0lELgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGttaWIgZm9yIG5ld2VyIHBlcmwgbW9kdWxlcy4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgdHVybiBvZmYgZXh0cmEgYm9sZC91bmRlcmxpbmUgZm9ybWF0dGluZyBieSBkZWZhdWx0LgogICAKMjAwMi0wNi0wNyAxNTowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGdlbmVyaWMgY29udGFpbmVyIHN0cnVjdHVyZSBmb3Igc3RvcmluZyBkYXRhCiAgIAoyMDAyLTA2LTA3IDEzOjAxICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnhzOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNi0wNyAxMDozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgdG8ga2VlcCBpbiBsaW5lIHdpdGggY29uZmlndXJlLmluICh3aHk/IHNob3VsZG4ndAogICBjb25maWd1cmUgbm90IGJlIGluIENWUyBhbmQgYmUgYXV0b2dlbmVyYXRlZD8gT25lIG9mIHRoZXNlIGRheXMgSSdtIGdvaW5nCiAgIHRvIGhhdmUgdG8gbGVhcm4gYXV0b2NvbmYuLi4uKQogICAKMjAwMi0wNi0wNyAxMDozNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGFsd2F5cyBjaGVjayByZXR1cm4gc3RhdHVzIG9mIG1ha2Ugd2hlbiBpbnNpZGUgYSBsb29wLCBhbmQgZXhpdCBvbiBlcnJvcnMKICAgCjIwMDItMDYtMDcgMDg6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMyksCiAgIGludGVyZmFjZXMuYzoKCiAgIE9ubHkgbnVsbC10ZXJtaW5hdGUgdGhlIGludGVyZmFjZSBuYW1lIHdoaWxlIGl0J3MgYWN0dWFsbHkgYmVpbmcgY29waWVkLgogICBSZXN0b3JlIHRoZSBkYXRhIGxpbmUgYWZ0ZXJ3YXJkcywgc28gdGhlIGRlYnVnZ2luZyBvdXRwdXQgaXMgbWVhbmluZ2Z1bC4KICAgCjIwMDItMDYtMDcgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEZpeCBmb3IgaW5kZXhpbmcgZXJyb3IsIHRoYXQgY2F1c2VzIGEgY3Jhc2ggaWYgbW9yZSB0aGFuIDE2IHZhcmJpbmRzCiAgIGFyZSBhZGRlZCB0byB0aGUgY2FjaGUgaW4gb25lIGdvLiAgU3BvdHRlZCBieSBTaGFudGggS3VtYXJhCiAgIAoyMDAyLTA2LTA2IDAxOjEyICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bNyw1XSksIGFjbG9jYWwubTQsCiAgIGNvbmZpZ3VyZToKCiAgIERvbid0IGRpZmZlcmVuY2lhdGUgYmV0d2VlbiBlbGYtIGFuZCBhLm91dC1iYXNlZCBOZXRCU0Qgc3lzdGVtcy4KICAgKFByb2JsZW0gaGlnaGxpZ2h0ZWQgYnkgRmVsaWNpYSBOZWZmKQogICAKMjAwMi0wNi0wNSAxODo1MCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBwdXQgZGVmaW5lcyBmb3Igc29ja2xlbl90IGFuZCBpbl9hZGRyX3QgaW4gbmV0LXNubXAvdHlwZXMuaCBpbnN0ZWFkIG9mIGhhdmluZwogICBjb25maWd1cmUgZ2VuZXJhdGUgdGhlbTsgY29uZmlndXJlIGluc3RlYWQgZ2VuZXJhdGVzIEhBVkVfU09DS0xFTl9UIGFuZAogICBIQVZFX0lOX0FERFJfVCBmb3Igc3lzdGVtcyB3aGljaCBkb24ndCBuZWVkIHRoZSBkZWZpbmVzOyB0aGlzIGlzIHByaW1hcmlseQogICBmb3IgdGhlIGJlbmVmaXQgb2YgdGhlIFdpbjMyIHBsYXRmb3JtLCB3aGljaCBkb2Vzbid0IGhhdmUgY29uZmlndXJlLgogICAKMjAwMi0wNi0wNSAwOToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGRvbid0IGFkdmFuY2UgcmVxdWVzdCBwb2ludGVyIGluc2lkZSBmb3IgbG9vcCwgc2luY2UgZm9yIGxvb3AgZG9lcyBpdCBmb3IKICAgdXM7IG90aGVyd2lzZSBmb3IgbG9vcCBtYXkgZW5kIHVwIGRlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyLgogICAKMjAwMi0wNi0wNSAwNjo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIHZhcmlvdXMgdW5peCB1dGlsaXRpZXM6CiAgICAtIGN1cnJlbnRseTogbmV0c3RhdCwgcHMsIGRmLCBpZmNvbmZpZwogICAKMjAwMi0wNi0wNSAwNjo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy9zY2xpOgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgaW4gSnVlcmdlbidzCiAgIHNjbGkgY29tbWFuZC4KICAgCjIwMDItMDYtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIG5ldyBjb21tYW5kczoKICAgICBzb3VyY2UgZmlsZSAtLSBzb3VyY2VzIGFuIHJjIGZpbGUKICAgICB3YXRjaCBleHByZXNzaW9uIC0tIHJlcGVhdGVkbHkgcnVucyBhIGNvbW1hbmQgYW5kIGNvbG9yaXplcwogICAgICAgZGlmZmVyZW5jZXMgaW4gZGF0YQogICAgIGV2YWwgZXhwcmVzc2lvbiAtLSBldmFsdWF0ZXMgYW4gZXhwcmVzc2lvbiBkaXJlY3RseSBpbiBwZXJsCiAgICAgICAtIGJlZ2lubmluZ3Mgb2Ygb3ZlcmxvYWRzIGluIHBlcmwgc28gdGhhdCBjYWxsaW5nIHN5c0NvbnRhY3QoKQogICAgICAgICB3aWxsIHJldHVybiB0aGUgc3lzQ29udGFjdCB2YWx1ZS4gIHRhYmxlcyBub3QgcmV0dXJuZWQgeWV0LgogICBmaXhlczoKICAgICB0dXJucyBvZiBvcm5hbWVudGFsIHByb21wdCBzdXBwb3J0IChpY2spIGJ5IGRlZmF1bHQKICAgCjIwMDItMDYtMDUgMDQ6NDMgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wY21kLjEuZGVmOgoKICAgQnJpZWYgbWVudGlvbiBvZiB0aGUgbmVlZCB0byBxdW90ZSBPSURzIGNvbnRhaW5pbmcgc3RyaW5nIGluZGV4ZXMsCiAgIHRvIHByb3RlY3QgdGhlIGRvdWJsZSBxdW90ZXMgZnJvbSB0aGUgc2hlbGwuCiAgIAoyMDAyLTA2LTA0IDEwOjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYSBudWxsIHRyZWVjYWNoZSBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldAogICAKMjAwMi0wNi0wNCAxMDozMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGFzcC0+cGR1ID09IE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQuCiAgIAoyMDAyLTA2LTA0IDA1OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0IGZvciBwcmludGYsIHNpbmdsZSBxdWVyeS9zZXRzIG9mIHNjYWxhcnMsIG11bHRpLWxpbmUgYWxpYXNlcy4KICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgbWFrZSBuZXcoKSBvcGVyYXRvciBhIGJpdCBzbWFydGVyCiAgIAoyMDAyLTA1LTI5IDE5OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfYWxhcm0uYzoKCiAgIHNldCB0aGUgc3RvcmFnZSBwb2ludGVyIHRvIE5VTEwsIGFzIHBvaW50ZWQgb3V0IGJ5IE1hcmsgSG95LgogICAKMjAwMi0wNS0yOSAwOToyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBBUElpZnkgTUlCRElSUyBzdXBwb3J0CiAgIAoyMDAyLTA1LTI5IDA3OjQzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgRXhwYW5kIG9uIHdoZW4gT3BlblNTTCBpcyBuZWNlc3NhcnksIGFuZCBob3cgdG8gY29tcGlsZSB1c2luZyBpdC4KICAgCjIwMDItMDUtMjkgMDY6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgU2V0IFJFVVNFQUREUiBzbyB0aGF0IHNwZWNpZnlpbmcgdGhlIHNhbWUgcG9ydCB0d2ljZSBkb2Vzbid0IGtpbGwgdGhlIGFnZW50LgogICAoU3VnZ2VzdGVkIGJ5IFJvYmVydCBIYXN0aW5ncykKICAgCjIwMDItMDUtMjkgMDI6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBSZWZlcmVuY2UgYm90aCB2ZXJzaW9ucyBvZiB0aGUgdHV0b3JpYWwgKHNpbmNlIHRoaXMgZG9jdW1lbnQgaXMgdXNlZAogICBmb3IgYnVpbGRpbmcgdGhlIG9uLWxpbmUgdmVyc2lvbiBvZiB0aGUgRkFRKQogICAKMjAwMi0wNS0yOSAwMjoxNiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNCksIEZBUToKCiAgIENsYXJpZnkgdGhhdCB0cmFwIGZpbHRlcmluZyBpcyBub3QgeWV0IG9wZXJhdGlvbmFsLgogICAKMjAwMi0wNS0yOCAxNDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICByZW1vdmUgXk0gY2hhcnMKICAgCjIwMDItMDUtMjggMTQ6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaXggbG9naWMgaW4gY2FuX2RlbGV0ZTsgY29uc29saWRhdGUgdXNlIG9mIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdCBieSBzZXR0aW5nCiAgIHJjIGZvciB1c2UgYXQgZW5kIG9mIGxvb3A7IGRvbid0IHVzZSByZW1vdmVkIG1hY3JvcyBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlLAogICB1c2luZyBuZXcgbmV0c25tcF9jaGVja192Yiogcm91dGluZXMgaW5zdGVhZDsgYWRkIGFzc2VydHMgZm9yIGVycm9yIGNhc2VzIHRoYXQKICAgc2hvdWxkIGJlIGNhdWdodCBieSBlYXJsaWVyIHJvdXRpbmVzCiAgIAoyMDAyLTA1LTI4IDE0OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIGNhbGxiYWNrcyBmb3Igcm93IChkZSlhY3RpdmF0aW9uCiAgIAoyMDAyLTA1LTI4IDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0ICIjaW5jbHVkZSA8c2VhcmNoLmg+IiB3aXRoIHRoZSBIQVZFX1NFQVJDSF9IIHRva2VuLiAgKFN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI4IDA2OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBGaXggdGhlIGRlY2xhcmF0aW9uIG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudC4gKFNwb3R0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yNyAwMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIERvbid0IGhhcmR3aXJlIHN5c2xvZyBmYWNpbGl0eSB0byBMT0dfREFFTU9OLgogICBGaXggcHJvdmlkZWQgYnkgSm9ha2ltIEZhbGxzam8uCiAgIAoyMDAyLTA1LTI3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL3NubXB0cmFwZC5jCiAgIChWNC0yLXBhdGNoZXMuWzIsOF0pLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgVHdlYWsgJ3VzbVVzZXInIGhlbHAgc3RyaW5nIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB3aGljaCBiaXRzIGFyZSBvcHRpb25hbC4KICAgUmVwb3J0ZWQgYnkgQWxpIENoYW5hdWkuCiAgIAoyMDAyLTA1LTI3IDAxOjIyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmIChWNC0yLXBhdGNoZXMuNCksIHNubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbGltaXQgb24gdGhlIG51bWJlciBvZiAiZmlsZSIgZGlyZWN0aXZlcy4KICAgCjIwMDItMDUtMjcgMDE6MTcgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLCB0aGF0IGNvbmZ1c2VzIHNvbWUgJ21ha2UncwogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIFByb3BlciBjcmVhdGlvbiBvZiByZXR1cm5lZCBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGluY3JlYXNlIHJlZmVyZW5jZSBjb3VudHMgb24gcmV0dXJuZWQgbWliIHJlZ2lzdHJhdGlvbiBvYmplY3RzIHNvCiAgIHRoZXkncmUgbm90IGF1dG8tY2xlYW5lZCBieSBwZXJsICh0aGUgYWdlbnQgbm93IGhhcyBhIGNvcHkgb2YgdGhlIHBvaW50ZXIpCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBkZWZhdWx0X3N0b3JlIG5ldHNubXBfIHByZWZpeGVzLgogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IGZvciBzY2FsYXJzIChtaWIyYy5zY2FsYXIuY29uZiBmaWxlIGNvbWluZyBzaG9ydGx5KQogICAKMjAwMi0wNS0yNCAwOTo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBIG5ldyBydWxlIGNhbGxlZCAiY29tbWVudGNoZWNrIiB0byBncmVwIGFsbCBzb3VyY2VzIGZvciAvLyBjb21tZW50cy4KICAgCjIwMDItMDUtMjQgMDg6MDkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEZWNsYXJlICdyZWdpc3Rlcl9taWJfZGV0YWNoX25vZGUnIGJlZm9yZSBpdCdzIHVzZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgogICAoU3BvdHRlZCBieSBYaWFuZyBaaGFuZykKICAgCjIwMDItMDUtMjQgMDc6NDQgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2guCiAgIChUaGF0ICptaWdodCogYmUgY29uZnVzaW5nIFN1bidzIG1ha2UsIGJ1dCBpcyB3cm9uZyBhbnl3YXkpCiAgIAoyMDAyLTA1LTIzIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXRfYnNkaTQuYywKICAgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9mcmVlYnNkMi5jLCB2bXN0YXRfaHB1eC5jLAogICB2bXN0YXRfbmV0YnNkMS5jLCB2bXN0YXRfc29sYXJpczIuYzoKCiAgIEJyaW5nIHRoZSB2YXJpb3VzICd2YXJfZXh0ZW5zaWJsZV92bXN0YXQnIGRlZmluaXRpb25zIGludG8gbGluZQogICB3aXRoIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZpbGUgLSBpLmUuIG5vbi1zdGF0aWMuCiAgIAoyMDAyLTA1LTIxIDE1OjI1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLUkkKHNyY2RpcikvaW5jbHVkZSB0byBDUFAgcGF0aCBmb3IgcGVvcGxlIGJ1aWxkaW5nIG91dHNpZGUgb2Ygc3JjIHRyZWUKICAgCjIwMDItMDUtMjEgMDg6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhcHBseSBwYXRjaCBbIDU1ODEyOSBdIE1ha2UgdGhlIHR1bm5lbCBtaWIgY29tcGlsZSBpbiA1LjAuMSwgc3VibWl0dGVkCiAgIGJ5IExvcmVuem8gQ29saXR0aSAobGNvbGl0dGkpLCB3aGljaCBhZGRzIG1pc3NpbmcgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDUtMjEgMDU6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggY29yZSBkdW1wIGluIC11IG9wdGlvbiBwcm9jZXNzaW5nLCBub3RlZCBieSBBbmRyZWFzIE1hdXMKICAgCjIwMDItMDUtMjEgMDU6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy45KSwgbWVtb3J5LmMKOgoKICAgTGF0Y2ggbWVtb3J5IHJlcG9ydGluZyBhdCAyXjMxLTEsIHJhdGhlciB0aGFuIDJeMzItMSBzaW5jZSB0aGVzZQogICBvYmplY3RzIGFyZSBkZWZpbmVkIGFzIChzaWduZWQpIEludGVnZXIzMi4KICAgT25seSBsYXRjaCBpZiB0aGUgdmFsdWUgaXMgKmdyZWF0ZXIqIHRoYW4gdGhpcyB0aHJlc2hvbGQsIG5vdCBsZXNzIQogICAKMjAwMi0wNS0yMSAwMToyMCAgamJwbgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi91Y2RfY29tcGF0LmMKOgoKICAgICAtIGFkZCBjb21wYXRpYmlsaXR5IGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMgZm9yIG5ld2x5LXJlbmFtZWQKICAgICAgIGRlZmF1bHQgc3RvcmUgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIChkZWZpbmVkIGlmZgogICAgICAgLS1lbmFibGUtdWNkLWNvbXBhdGliaWxpdHkgaXMgZ2l2ZW4gdG8gYXQgY29uZmlndXJhdGlvbiB0aW1lKQogICAKMjAwMi0wNS0yMSAwMDo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgICAgLSBtb3ZlIGRlZmluaXRpb24gb2YgbmV0c25tcF9kc19yZWFkX2NvbmZpZyB0eXBlIGZyb20gZGVmYXVsdF9zdG9yZS5oCiAgICAgICBpbnRvIGRlZmF1bHRfc3RvcmUuYyAoc2luY2UgaXQgaXMgbm90LCBhbmQgc2hvdWxkIG5vdCwgYmUgdXNlZAogICAgICAgZWxzZXdoZXJlKS4KICAgCjIwMDItMDUtMjAgMDM6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlZ2lzdGVycyB0b2tlbnMgZm9yIGlwdjYgcm8vcncgY29tbXVuaXR5LCBhbmQgbWFrZSBzdXJlIHRvIHBhcnNlIHRoZW0KICAgYXMgaXB2Niwgbm90IHY0LgogICAKMjAwMi0wNS0xOSAxMTozOCAgZHJpZWh1aXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBCdWdmaXggZm9yIEZyZWVCU0Qgc3VwcG9ydCBvZiB0aGUgZGlza0lPIG1pYi4gVGhlIG9yaWdpbmFsIGNvZGUgbmVnbGVjdGVkCiAgIHRoZSBkZXZpY2UgbnVtYmVyLCB3aGljaCBtYWRlIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4sIHNheSwgYWQwIGFuZCBhZDEKICAgaW1wb3NzaWJsZS4KICAgCjIwMDItMDUtMTcgMDk6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gc2xpZ2h0bHkgcmVkdWNlIG1lbW9yeSBjb3N0cyBvZiByZWdpc3RhcnRpb25zCiAgIAoyMDAyLTA1LTE2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHN0b3JlIHRhZyBuYW1lcy4KICAgZml4IGluaXRfc25tcCgpIGRlZmluaXRpb24gdG8gbWF0Y2ggbm9ybWFsIHBlcmwgbm9uLWFuc2kgbW9kZS4KICAgCjIwMDItMDUtMTYgMTY6MzkgIGRyaWVodWlzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE1ha2Ugc3VyZSAtLWNmbGFncyBzcGl0cyBvdXQgdGhlIHJlcXVpcmVkIGluY2x1ZGUgcGF0aCB3aGVuIGluc3RhbGxpbmcKICAgaW4gYSBub24tZGVmYXVsdCBsb2NhdGlvbiwgYXMgZG9jdW1lbnRlZCBpbiB0aGUgdXNhZ2UgaW5mbyBpbiB0aGUgc2NyaXB0LgogICAKMjAwMi0wNS0xNiAxNTozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgYWRkIGEgbGluZSB0byB0aGUgc3lzU2VydmljZXMgcHJvbXB0IHNheWluZyBpZiB5b3UgZG9uJ3Qga25vdywgc2F5IG5vLgogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHVwZGF0ZSB0byBuZXcgZGVmaW5lIGxpc3QKICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdGVzdCBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTI6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9nZW46CgogICBhdXRvZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlcyB0byBuZXcgLmggdG9rZW5zCiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgLmggLT4gcGVybG1vZHVsZSByZWdlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDA3OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBDb25zb2xpZGF0ZSB0aGUgdmFyaW91cyBPSUQgb3V0cHV0IGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtcyBpbnRvIG9uZS4KICAgVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zICh5ZXQhKSAtIGp1c3QgdGhlIGludGVybmFscy4KICAgCjIwMDItMDUtMTUgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBmaXggZGVmYXVsdF9zdG9yZQogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY3JlYXRlIGEgZGVmaW5lIGxvY2F0aW9uIGZvciBIQVZFX0dFVERFVlMKICAgCjIwMDItMDUtMTUgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBkZXBlbmQgdXBkYXRlLCB3aGljaCBJIG1lYW50IHRvIGNoZWNrIGluIGJlZm9yZSB0aGUgNS4wLjEgcmVsZWFzZQogICAKMjAwMi0wNS0xNSAwNTo1MyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGF1dG9fbmxpc3QuYywga2VybmVsLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF9wZXJsLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozOSAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozNyAgamJwbgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBtaWIuYywgcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcF9hbGFybS5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywKICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfc2VjbW9kLmMsIHNubXB1c20uYywKICAgc25tcHYzLmMsIHVjZF9jb21wYXQuYywgdmFjbS5jOgoKICAgICAtIHJlbmFtZSBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyBmcm9tIGRlZmF1bHRfc3RvcmUgZnJvbSBkc19ibGFoCiAgICAgICB0byBuZXRzbm1wX2RzX2JsYWgKICAgCjIwMDItMDUtMTUgMDI6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjApLCBzbXV4LmM6CgogICAgIC0gaW5pdGlhbGlzZSBzbXV4X2xpc3Rlbl9zZCB0byBhdm9pZCBwcm9ibGVtcyBub3RlZCBpbiBidWcgIzU0NTQ0OAogICAgICAgKGEgYml0IHVucmVhc29uYWJsZSBpbiBteSB2aWV3IGJ1dCBpdCBjYW4ndCBkbyBhbnkgaGFybSkuCiAgIAoyMDAyLTA1LTE0IDEyOjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcHJlY2lzaW9uIGV4dHJhY3Rpb24gb2YgdHVtb3IgaW5zdGVhZCBvZiBhbXB1dGF0aW9uLCBvciwgaWZkZWYgc2VhcmNoLmgKICAgZnVuY3Rpb25zIHRoYXQgYXJlbid0IGVzc2VudGlhbCB0byB0YWJsZV9hcnJheSBvcGVyYXRpb24gYW5kIHdpbGwgcHJvYmFibHkKICAgdmFuaXNoIGluIHRoZSBuZWFyIGZ1dHVyZSBhbnl3YXkuCiAgIAoyMDAyLTA1LTEzIDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGZpeCB0eXBlIGluIHNpemVvZgogICAKMjAwMi0wNS0xMyAxMzowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc2VhcmNoLmggYmVmb3JlIGNvbXBpbGluZyB0aGUgdGFibGVfYXJyYXkgaGVscGVyCiAgIAoyMDAyLTA1LTEzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMDUtMTMgMDA6MzkgIGRyaWVodWlzCgogICAqIENoYW5nZUxvZzoKCiAgIE5vdGUgY2hhbmdlcyB0byBjb25maWd1cmUuaW4uCiAgIAoyMDAyLTA1LTEyIDEwOjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBNYWtlIHN1cmUgdGhlIGNoZWNrcyBmb3Iga3ZtIHJlbGF0ZWQgc3R1ZmYgaGFwcGVucyB3aGVuIC1sa3ZtIGlzIGluIHNjb3BlLgogICBBZGQgZGV0ZWN0aW9uIG9mIHRoZSAtbGRldnN0YXQgcmVxdWlyZW1lbnQgd2hlbiBidWlsZGluZyB3aXRoIHVjZC1zbm1wL2Rpc2tpby4KICAgCgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAgLT4gVjUuMC4xCgoyMDAyMC0wNS0xMiAxNzozMCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgZGV0ZWN0IC1sZGV2c3RhdCB3aGVuIG5lZWRlZDsgZml4IC1sa3ZtIGRldGVjdGlvbgoKMjAwMi0wNS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIHR1dG9yaWFsLTUgaW5zdGVhZCBvZiB0dXRvcmlhbAogICAKMjAwMi0wNS0xMCAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICByZXF1ZXN0IGluZm8gcGVybCBjb2RlIG1vdmVkIHRvIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAyLTA1LTEwIDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgT0lEIGJ1aWxkaW5nIG92ZXJsb2Fkcy4KICAgCjIwMDItMDUtMTAgMTY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEFkZCBwcm9wZXIgbGVuZ3RoIHNlZ21lbnQgdG8gdGhlIGJ1aWxkIHZpZXcgT0lELgogICAKMjAwMi0wNS0xMCAxNDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldyBkb2MgcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcKICAgCjIwMDItMDUtMTAgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy4wKSwgdmFjbV92YXJzLmMKOgoKICAgZml4IHZhY20gcHJvYmxlbSBvbiBzZXRzIHdpdGggT0lEcyBjb250YWluaW5nIGxhcmdlIG51bWJlcnMgYXMgbm90ZWQKICAgYnkgVmluYXkgR2FvbmthciBvbiB0aGUgLWNvZGVycyBtYWlsaW5nIGxpc3QuCiAgIAoyMDAyLTA1LTEwIDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYWxsaW5nIG9uIG11bHRpcGxlIHRhYmxlcwogICAKMjAwMi0wNS0xMCAwMzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1lcmdlICJTVFJJTkc6IEhleDoiIHR5cGUgdG9rZW5zIGludG8gYSBzaW5nbGUgdG9rZW4gIkhleC1TVFJJTkc6IgogICAKMjAwMi0wNS0xMCAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgUmVwb3J0IG5vbi1leGlzdGVudCBzdWJpbnN0YW5jZXMgYXMgJ25vU3VjaEluc3RhbmNlJyByYXRoZXIgdGhhbiAnbm9TdWNoT2JqZWN0Jy4KICAgInNubXBnZXQgLi4uLiAuMS4zLjYuMS42LjMuMTIuMS41LjAuOTkiIG5vdyByZXNwb25kcyBjb3JyZWN0bHkuCiAgICh0aG91Z2ggInNubXBnZXQgLi4uLiAuMS4zLjYuMS42LjMuMTIuMS41LjEiIHN0aWxsIHJldHVybnMgJ25vU3VjaE9iamVjdCcpCiAgIAogICBBbHNvIGd1ZXNzIHRoYXQgZmFpbGVkIFNFVCByZXF1ZXN0cyBhcmUgJ25vQ3JlYXRpb24nIGVycm9ycyAod2hpY2ggaXMKICAgcHJvYmFibHkgdGhlIG1vc3QgbGlrZWx5IG9wdGlvbikuCiAgIAoyMDAyLTA1LTA5IDE1OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGV4aXQgcHJvcGVybHkgd2hlbiBhIHN1YmRpciBmYWlscyB0byBtYWtlIHByb3Blcmx5CiAgIAoyMDAyLTA1LTA5IDE1OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY3JlYXRlIGEgdG9rZW4gZm9yIHRoZSAtT3YgZXF1aXZlbGFudAogICAKMjAwMi0wNS0wOSAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjUpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIHBhdGNoIGZyb20gVGFrdW1pIEthZG9kZSB0byBmaXggbWVtb3J5IHVzYWdlIG9uIHNvbGFyaXMKICAgCjIwMDItMDUtMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgdXBkYXRlcyBmcm9tIG1hbGxvY2VkIHZtc3RhdCBmaXhlcyBmcm9tIHBhdGNoZXMgYnJhbmNoCiAgIAoyMDAyLTA1LTA4IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBuZXcgLS1jb21waWxlLXN1YmFnZW50IGZlYXR1cmVzOgogICAgIC0tY2ZsYWdzCiAgICAgLS1ub3JtCiAgICAgLS1sZGZsYWdzCiAgICAgaW5jbHVkZXMgaGVhZGVyIGZpbGVzCiAgICAgbWlzYyBvdGhlciBidWcgZml4ZXMuCiAgIAoyMDAyLTA1LTA4IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1ha2UgdGhlIHN1YmFnZW50IHByb3Blcmx5IGNhbGwgdGhlIHJlc2VydmUyIHN0YXRlIGFnYWluLgogICAKMjAwMi0wNS0wOCAxMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA4IDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHVtLCB1c2UgMzAgc2Vjb25kcyBsaWtlIGFkdmVydGlzZWQuCiAgIAoyMDAyLTA1LTA4IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmgsCiAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIGRlZmluZSBhIGJldHRlciBub3RpZmljYXRpb24gZXhhbXBsZSAobm8gcmVxdWVzdHMuICBqdXN0IGFsYXJtIC0+IHNlbmQpCiAgIAoyMDAyLTA1LTA3IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHVwZGF0ZSB0byBjdXJyZW50IGluZGVudCBjb21tYW5kCiAgIAoyMDAyLTA1LTA3IDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgbW92ZSB0ZXh0IGluIGNvbW1lbnQgbGVmdCBzbGlnaHQgKHdhcyB0b28gbG9uZykuCiAgIAoyMDAyLTA1LTA3IDIyOjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGVudW0gZml4ZXMuCiAgIAoyMDAyLTA1LTA3IDIyOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb2x1bW5fZGVmaW5lcy5jb25mLAogICBtaWIyYy5jb2x1bW5fZW51bXMuY29uZiwgbWliMmMuY29uZjoKCiAgIE5ldyBtaWIyYyBmaWxlcyBmb3IgZ2VuZXJhdGluZyBoZWFkZXJzIGZ1bGwgb2YgY29sdW1uIG51bWJlciBkZWZpbmVzCiAgIGFuZCBlbnVtIGRlZmluZXMuCiAgIAoyMDAyLTA1LTA3IDIyOjQwICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBhZ2VudCBsaWJyYXJ5IHJlb3JkZXJpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IG5vdyBzdXBwb3J0cyAubyBmaWxlcyAocHJlY29tcGlsZWQgY29kZSkuCiAgIAoyMDAyLTA1LTA3IDIyOjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmU6CgogICBobW0uICBtaXNzZWQgc29tZSBjaGVja2luIGZpbGVzLgogICAKMjAwMi0wNS0wNyAxMToxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBjb25mdGVzdC5jb25mLCBzdGFydGFnZW50LnBsLCBjb25mLnQKOgoKICAgdGVzdCBmb3IgY29uZmlndXJhdGlvbiBmaWxlL2RlZmF1bHRfc3RvcmUgc3VwcG9ydAogICAKMjAwMi0wNS0wNyAxMToxNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1ha2UgaW5pdF9zbm1wKCkgdGFrZSBhIGNoYXIgKiBhcmd1bWVudCBsaWtlIHRoZSByZWFsIEFQSQogICAKMjAwMi0wNS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgdHlwb3MuCiAgIAoyMDAyLTA1LTA3IDA5OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGZpeCB0aGUgLWcgZmxhZy4KICAgCjIwMDItMDUtMDcgMDk6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNhbGwgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBsaWtlIGEgZ29vZCBib3kuCiAgIAoyMDAyLTA1LTA2IDIwOjQzICByc3RvcnkKCiAgICogbWlicy9NYWtlZmlsZS5taWI6CgogICBmaXggbWlzc2luZyAkIG5vdGVkIGJ5IEpvaG4gTWlsbHMgb24gdGhlIGNvZGVycyBsaXN0CiAgIAoyMDAyLTA1LTA2IDE2OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9hcGkuYwogICAoVjQtMi1wYXRjaGVzLls0LDIsMywzXSksIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUgKGNvcnJlY3RseSBkb25lIHRoaXMgdGltZSkKICAgCjIwMDItMDUtMDYgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywgc25tcFVuaXhEb21haW4uYwo6CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbgogICAoVjQtMi1wYXRjaGVzLlszLDcsMSwyXSksIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wNiAxNToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIFBhdGNoZXMgIzU1MTkxNCsgZnJvbSBHYXJ5IEVkd2FyZHMgdG8gc3VwcG9ydCBocHV4MTEgZm9yIG1lbW9yeSBhbmQgdm1zdGF0IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTU6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBhZGQgbmV3IGhwdXggbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbmV3IGNvbnRyaWJ1dG9ycy4KICAgCjIwMDItMDUtMDYgMTQ6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmCiwgc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1NTE0ODk6IEZyb20gSmVmZnJleSBXYXRzb24gdG8gYWRkIGEgLVEgb3B0aW9uIGZvciBxdWljayBidXQgdy8gYW4gJz0nCiAgIAoyMDAyLTA1LTA2IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBjaGFuZ2UgLUQgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IGN1cnJlbnQgY29kZS4KICAgCjIwMDItMDUtMDYgMTQ6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIG1pc2Mgc21hbGwgYnVncyBhbmQgZXJyb3IgbWVzc2FnZSB3b3JkaW5nIGZpeGVzLgogICAKMjAwMi0wNS0wNiAwOTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjkpLCBzbXV4LmM6CgogICBidWcgIzU0NzAxMDogZml4IHNtdXggYXV0aCBidWcgYXMgcmVwb3J0ZWQgYW5kIGZpeGVkIGJ5IFN0ZWZhbiBSYWRtYW4KICAgCjIwMDItMDUtMDEgMjM6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgZm9yIHVwZGF0ZSB0byB0YWJsZV9hcnJheQogICAKMjAwMi0wNS0wMSAyMzowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIG9iamVjdF9tb25pdG9yIHN0dWZmCiAgIAoyMDAyLTA1LTAxIDIyOjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjaGVja192YXJiaW5kIHN0dWZmCiAgIAoyMDAyLTA1LTAxIDIyOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIHZhbGlkYXRpb24gdmFicmluZCBpbmZvCiAgIAoyMDAyLTA1LTAxIDIyOjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBkbyBJIHJlYWxseSBoYXZlIHRvIGRvIHRoaXM/IHNpZ2guIE9rLCByZW5hbWUgZGVidWcgdG9rZW47IHJldmFtcCBsb2dpYyB0bwogICBtb2RpZnkgcm93cyBpbiBwbGFjZSwga2VlcGluZyB1bmRvIGluZm8gKHZzIGFsd2F5cyBjaGFuZ2luZyBhIGNvcHkgb2YgYSByb3cKICAgYW5kIHN3YXBwaW5nIHJvd3Mgd2hlbiBzZXQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkgdG8gYWxsb3cgZXh0ZXJuYWwgY29kZQogICB0byBrZWVwIHBvaW50ZXJzIHRoYXQgZG9uJ3QgZGlzYXBwZWFyIG9uIHRoZW07IGFkZCBhIGZldyBjYWxsYmFja3MsIGluY2x1ZGluZwogICByb3dfY29tcGFyZSwgc28gdGFibGVfYXJyYXkgY2FuIG1haW50YWluIHRoZSBzZWNvbmRhcnkgaW5kZXggdHJlZTsgZG9uJ3QgY2FsbAogICBjYW5fYWN0aXZhdGUvY2FuX2RlbGV0ZSB1bmxlc3Mgd2UgYXJlIGFjdHVhbGx5IHRyeWluZyB0byBhY3RpdmF0ZS9kZWxldGUgcm93OwogICBhZGQgc2tlbGV0b24gKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBjb29wZXJhdGl2ZSBub3RpZmljYXRpb25zIG9mIHJvdyBldmVudHM7CiAgIHVwZGF0ZSBjaGFuZ2luZyBhcnJheSBpbiBjb21taXQgJiB1bmRvIGNhc2VzLCBub3QganVzdCBjb21taXQ7IGNoYW5nZSB0eXBkZWZzCiAgIGZvciBhIGZldyBjYWxsYmFjayBwb2ludGVyczsgdW1tbW0uLi4gSSAqdGhpbmsqIHRoYXQncyBpdC4uLi46LSkKICAgCjIwMDItMDUtMDEgMTc6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBBZGQgaW5kZXggYnVpbGRpbmcgdG8gdGhlICsgb3BlcmF0b3IuCiAgIAoyMDAyLTA1LTAxIDA5OjUyICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgT0lEL09JRC54cywgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9hZ2VudC5wbSwgYWdlbnQvYWdlbnQueHMsIGFnZW50L3Rlc3QucGwKLCBhZ2VudC90eXBlbWFwOgoKICAgTWFrZSBnZXRPSUQgZm9yIHJlcXVlc3RzIHJldHVybmVkIGEgTmV0U05NUDo6T0lEIGJsZXNzZWQgcmVmZXJlbmNlLgogICBJJ20gbm90IGhhcHB5IGFib3V0IGhvdyB0aGlzIGlzIGRvbmUsIGJ1dCBhbGwgYXR0ZW1wdHMgdG8gZG8gaXQKICAgY29ycmVjdGx5IG9ubHkgbGVmdCBtZSBpbiBjb25mdXNpb24uCiAgIAoyMDAyLTA1LTAxIDA5OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKOgoKICAgQ2hhbmdlIHRoZSBkb21haW4gT0lEcyB0byBwb2ludCB0byB0aGUgbmV0LXNubXAgZG9tYWlucyBjcmVhdGVkIGJ5IERhdmUuCiAgIFRoaXMgZml4ZXMgYnVnICM1NDQyNDUgYXMgd2VsbC4KICAgCjIwMDItMDUtMDEgMDk6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIHRoZSBPSUQgcGVybCBtb2R1bGUgdG8gdGhlIGxpc3Qgb2YgbW9kdWxlcy4KICAgCjIwMDItMDUtMDEgMDc6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuMCksIFVDRC1TTk1QLU1JQi50eHQ6CgogICByZW1vdmUgb2xkIChhbmQgY29uZmxpY3Rpbmcgd2l0aCB0cmFwcykgdHJhbnNwb3J0IGRvbWFpbiBPSURzCiAgIAoyMDAyLTA1LTAxIDA2OjE5ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLmRlZiwgc25tcGJ1bGt3YWxrLjEuZGVmLAogICBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLmRlZiwKICAgc25tcHNldC4xLmRlZiwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB3YWxrLjEuZGVmOgoKICAgQWRkIHR5cGUgdGFncyAiU1RSSU5HOiAiIGFuZCAiSU5URUdFUjogIiB0byBleGFtcGxlIG91dHB1dC4KICAgQWRkIGV4cGxpY2l0IHNldHRpbmcgb2YgcHJvdG9jb2wgdmVyc2lvbiB0byBleGFtcGxlIGNvbW1hbmRzLgogICAKMjAwMi0wNS0wMSAwMzozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWd1dGlsLmMsIGFndXRpbC5oLAogICBhZ3V0aWxfYXBpLmgsIGFsYXJtLmMsIGFsYXJtLmgsIGV2ZW50LmMsCiAgIGV2ZW50LmgsIGhpc3RvcnkuYywgaGlzdG9yeS5oLCByb3dfYXBpLmgsCiAgIHJvd3MuYywgcm93cy5oLCBzdGF0aXN0aWNzLmMsIHN0YXRpc3RpY3MuaDoKCiAgICAgLSByZW1vdmUgQ1ZTIExvZzogZW50cmllcyB3aGljaCBhcmUgY2F1c2luZyBwcm9ibGVtcyBzaW5jZSB0aGV5IGFyZQogICAgICAgZW1iZWRkZWQgaW4gYSBjb21tZW50LCBidXQgc29tZSBvZiB0aGUgbG9nIGVudHJpZXMgY29udGFpbiBjb21tZW50CiAgICAgICBkZWxpbWl0ZXJzLgogICAKMjAwMi0wNC0zMCAyMjoxNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZW1vdmUgbmV0c25tcF9wcm9jZXNzaW5nX3NldCwgaXQgbGl2ZXMgaW4gc25tcF9hZ2VudC5jCiAgIAoyMDAyLTA0LTMwIDIyOjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLXRjLmMKOgoKICAgcmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXI7IGFsbG93IE5PTkUgYXMgb2xkIHZhbHVlIGZvciBzdG9yYWdlIHR5cGUgdHJhbnN0aW9ucwogICAKMjAwMi0wNC0zMCAyMjoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbW92ZSBvdmVybHkgY29tcGxleCBtYWNybyBzdHVmZiBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlCiAgIAoyMDAyLTA0LTMwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE1ha2VmaWxlLlBMLCBPSUQucG0sIE9JRC54cywgUkVBRE1FCiwgdGVzdC5wbDoKCiAgIC0gYWxsb3cgY29udmVyc2lvbnMgdG8gYW4gYXJyYXkgKG5lZWRzIHRvIGJlIHRpZWQgc3RpbGwpLgogICAtIGRvY3VtZW50YXRpb24uCiAgIAoyMDAyLTA0LTMwIDA4OjE1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wZC5jOgoKICAgICAtIGZpeCBidWcgIzU0NTc3NSwgcmVwb3J0ZWQgYnkgRGF2ZSBEZW5zb24sIHdoZXJlYnkgdGhlIFBJRCBvZiBhbgogICAgICAgYWxyZWFkeS1ydW5uaW5nIHNubXBkIHdvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IHN0YXJ0aW5nIGEgbmV3IHNubXBkCiAgICAgICAod2hpY2ggd291bGQgdGhlbiBleGl0LCBsZWF2aW5nIHRoZSBvcmlnaW5hbCBzbm1wZCBydW5uaW5nIGFuZCB0aGUKICAgICAgIHdyb25nIFBJRCBpbiB0aGUgZmlsZSkuICBTb2x1dGlvbiBpcyBub3QgdG8gd3JpdGUgdGhlIFBJRCB1bnRpbCB3ZQogICAgICAgaGF2ZSBzdWNjZXNzZnVsbHkgb3BlbmVkIGFsbCBvdXIgc29ja2V0cy4KICAgCjIwMDItMDQtMzAgMDc6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogLmN2c2lnbm9yZSwgQ2hhbmdlcywgTUFOSUZFU1QsCiAgIE1ha2VmaWxlLlBMLCBPSUQucG0sIE9JRC54cywgUkVBRE1FLAogICB0ZXN0LnBsLCB0eXBlbWFwOgoKICAgT0lEIHBlcmwgbW9kdWxlIHNvIHlvdSBjYW4gZG8gc2ltcGxlIE9JRCBtYW5pcHVsYXRpb25zIHdpdGhpbiBwZXJsIGVhc2lseToKICAgICAtIEV4YW1wbGU6ICBuZXcgTmV0U05NUDo6T0lEKCdpbnRlcmZhY2VzJykgPiBuZXcgTmV0U05NUDo6T0lEKCdzeXN0ZW0nKQogICAKMjAwMi0wNC0yOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlZ2V4cCBmaXggZm9yIHdoaXRlIHNwYWNlIGNoZWNrcyBpbiBpbmRlbnQgZm9ybWF0dGVkIGNvZGUKICAgCjIwMDItMDQtMjkgMTY6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVvcmRlciBwZXJsIG1vZHVsZSBuYW1lcyB0byByZWZsZWN0IChuZXcpIGRlcGVuZGVuY2llcy4KICAgCjIwMDItMDQtMjkgMDk6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgZml4IGEgZmV3IHdhcm5pbmdzIG9uIGZhaWxlZCB0ZXN0cyAoanVzdCBzY3JlZW4gY2xlYW51cHMpCiAgIAoyMDAyLTA0LTI5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbToKCiAgIE1ha2UgdGhlIHBlcmwgbW9kdWxlIHJlc3BlY3Qgc25tcC5jb25mIHNldHRpbmdzIChmaW5hbGx5KS4KICAgICAtIE5vdyByZXF1aXJlcyBhIGRlcGVuZGVuY3kgb24gdGhlIE5ldFNOTVA6OmRlZmF1bHRfc3RvcmUgbW9kdWxlIHRob3VnaC4KICAgCjIwMDItMDQtMjcgMDg6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb24ndCBwcm9jZXNzIHNldCByZXF1ZXN0IHRpbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGFyZSBjb21wbGV0ZSwgYW5kIHF1ZXVlCiAgIGFueSBvdGhlciByZWNlaXZlZCBwYWNrZXRzIHVudGlsIGEgc2V0IGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZy4KICAgCjIwMDItMDQtMjcgMDg6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjbGVhbiB1cCBjb21tZW50cyBtdW5nZWQgYnkgaW5kZW50CiAgIAoyMDAyLTA0LTI3IDA4OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDQtMjcgMDg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC86IG9iamVjdF9tb25pdG9yLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWZkZWYgZ3ltbmFzdGljcyB0byBtYWtlIHN1cmUgYXNzZXJ0cyBhcmUgb25seSBjb21waWxlZCBpbiBvbmx5IGlmIGV4cGxpY2l0eQogICByZXF1ZXN0ZWQKICAgCjIwMDItMDQtMjYgMjE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGZpeCB1bmJhbGFuY2VkIGVuZGlmIG9uIGxpbnV4LiBob3BlIEkgZGlkbid0IGJyZWFrIGFueXRoaW5nIGVsc2UuCiAgIAoyMDAyLTA0LTI2IDE5OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCB1bnVzZWQgdmFyIHdhcm5pbmcgZm9yICF3aW5kb3dzCiAgIAoyMDAyLTA0LTI2IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBmaXggT0lEX0xFTkdUSCBkZWZpbml0aW9ucwogICAKMjAwMi0wNC0yNiAxMDo1MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvQVNOL01ha2VmaWxlLlBMLAogICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcyBpbiBtYWtlZmlsZXMuICBNYWtlIGV2ZXJ5dGhpbmcgdXNlCiAgIG5ldC1zbm1wLWNvbmZpZywgLi4uCiAgIAoyMDAyLTA0LTI2IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtOgoKICAgLSBDbGVhbnVwLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gQ2hhbmdlIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcyBmb3IgdWNkLXNubXAKICAgLSBDaGFuZ2UgY29udGFjdCBsb2NhdGlvbiB0byBuZXQtc25tcC11c2VycyAocGVyIEpvZSdzIGFncmVlbWVudCkKICAgCjIwMDItMDQtMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgUkVBRE1FLCAKCWRlZmF1bHRfc3RvcmUucG0sIHRlc3QucGw6CgogICAtIGNsZWFudXAuCiAgIC0gVXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaW5kIGxpYnJhcnksIGV0Yy4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIGEgZmV3IG1vcmUgdGVzdHMgYWRkZWQKICAgLSB1c2UgY29ycmVjdCBsaWJyYXJpZXMKICAgLSBhZGQgZG9jdW1lbnRhdGlvbgogICAKMjAwMi0wNC0yNiAwNDoyMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBFeHRyYWN0aW5nIHRoZSB2ZXJzaW9uIGZyb20gJ3NubXBsaWIvc25tcF92ZXJzaW9uLmMnIG5lZWRzIHRvIHRha2UgYWNjb3VudAogICBvZiBibGFuayBzcGFjZS4gIFJlcG9ydGVkIGJ5IFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNTQ3Mzc5KQogICAKMjAwMi0wNC0yNiAwNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjgpLCBtZW1vcnkuYwo6CgogICBIYW5kbGUgbWVtb3J5IHZhbHVlcyA+IDMyYml0IChsYXRjaGluZyBhdCAyXjMyLTEpCiAgIFBhdGNoICM1NDg2NjMgZnJvbSBSb2IgTXllcnMKICAgCjIwMDItMDQtMjYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBSZW1vdmUgcmVkdW5kYW50ICdJbnZhbGlkIG9wdGlvbicgbWVzc2FnZSwgc2luY2UgdGhpcyBpcyB0eXBpY2FsbHkKICAgcmVwb3J0ZWQgYnkgZ2V0b3B0KCkuICAoU3VnZ2VzdGVkIGJ5IEFuZHJldyBSdWNrZXIgSm9uZXMgLSBwYXRjaCAjNTQ4NzQ4ICkKICAgCjIwMDItMDQtMjYgMDM6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBBZGQgJ3YnIHRvIHRoZSBsaXN0IG9mIHZhbGlkIG9wdGlvbnMgKHBhdGNoICM1NDg3NDgpCiAgIFRoYW5rcyB0byBBbmRyZXcgUnVja2VyIEpvbmVzLgogICAKMjAwMi0wNC0yNiAwMzozNiAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgaW1wcm92ZWQgSFAtVVggMTEgcGF0Y2gKICAgKCM1MzA3MjQpIHRvIHRoZSBtYWluIHY1IGxpbmUsIGFzIHdlbGwgYXMgdGhlIHY0LTIgYnJhbmNoLgogICBUaGUgY29kZSBub3cgY29tcGlsZXMgY2xlYW5seSB1bmRlciBIUC1VWCAxMSB1c2luZyBnY2MuCiAgIAoyMDAyLTA0LTI1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgUGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcgdG8gZml4IHBvc3NpYmxlIHZhcmlhYmxlIG5hbWUgY2xhc2gKICAgCjIwMDItMDQtMjQgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgaGFuZGxlIGNhbGxiYWNrcyBzZW5kaW5nIG5ldyBub3RpZmljYXRpb25zICh3aGlsZSBwcm9jZXNzaW5nIG5vdGlmaWNhdGlvbnMpCiAgIAoyMDAyLTA0LTI0IDIxOjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgaGVhZGVyIGZvciBuZXcgZnVjbnRpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdHMKICAgCjIwMDItMDQtMjQgMjE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgbmV3IGZ1bmN0aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3QgdmFsdWVzCiAgIAoyMDAyLTA0LTI0IDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC9wcm9jL3N0YXQgY2FuIGJlIGxhcmdlciB0aGFuIDEwMjQKICAgCjIwMDItMDQtMjQgMDY6MTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtaXNzaW5nICdtZDUuaCcgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTA0LTIzIDA5OjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2FycmF5LmM6CgogICByZW1vdmUgbGFzdCBvZiB0aGUgI3dhcm5pbmdzLCBhZGQgeHh4LXJrcyBpZiBuZWNlc3NhcnkKICAgCjIwMDItMDQtMjMgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB3YXJuaW5ncwogICAKMjAwMi0wNC0yMiAxOToxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FOgoKICAgdXBkYXRlIFVSTCB0byB1c2UgZnJlZW5tcC5jb20gbWlycm9yICh1bmxlc3Mgc29tZW9uZSBrbm93cyBhIGJldHRlciBwbGFjZT8pCiAgIAoyMDAyLTA0LTIyIDE0OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFwcGx5IGRvY3VtZW50YXRpbiBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZ2VyIDxBeGVsLktpdHRlbmJlcmdlckBtYXh4aW8uY29tPgogICAKMjAwMi0wNC0yMiAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSBleHRyYSBAZW5kQCAoc3VyZSB3b3VsZCBiZSBuaWNlIGlmIG1pYjJjIHdvdWxkIGNoZWNrIGZvciB1bmJhbGFuY2VkCiAgIEBlbmRAcykKICAgCjIwMDItMDQtMjIgMDk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgdXBkYXRlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hdGNoIGhlYWRlciAobm8gbWl4ZWQgY2FzZSkKICAgCjIwMDItMDQtMjIgMDg6MTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggYnVnICM1NDcxMTA6IHByb3Blcmx5IHNwZWxsIGRlZmluZQogICAKMjAwMi0wNC0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgYWRkIHN0YXRpYyB0byBhIHJldHVybmVkIHZhcmlhYmxlCiAgIAoyMDAyLTA0LTIxIDE2OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzCiAgIAoyMDAyLTA0LTIxIDExOjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIDUuMC5wcmUzIC0+IDUuMDsgKEknbSBzdXJlIHRoZXJlIGFyZSBvdGhlciBwbGFjZXMgdGhpcyBuZWVkcyB0byBjaGFuZ2UsCiAgIGJ1dCBJIHdhbnRlZCB0byBnZXQgdGhlIGZpcnN0IHBvc3QgNS4wIGNoZWNraW4uLi46LSkKICAgCjIwMDItMDQtMjAgMDA6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAgKQoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIgLT4gVjUuMAoKMjAwMi0wNC0yMCAwMDoyNyAgaGFyZGFrZXIKCiAgICogZXZlcnl0aGluZzoKCiAgIHNldCBhbGwgQ1ZTL1JDUyByZXZpc2lvbiBjb250cm9sIG51bWJlcnMgdG8gNS4wCgkKMjAwMi0wNC0yMCAwMDowNyAgaGFyZGFrZXIKCiAgICogZXZlcnl0aGluZzoKCQogICBXaGl0ZSBzcGFjZSwgb2ggZ2xvcmlvdXMgd2hpdGUgc3BhY2UuCiAgIEhvdyBncmVhdCBvdXIgdGhvdWdoPwogICBUaGUgY29kZSBpcyBmaW5lLgogICBXZSBhZ3JlZSBvbiBmdW5jdGlvbmFsaXR5IGVhc2lseS4KICAgV2hhdCByZWFsbHkgdHJvdWJsZXMgdXM/CiAgIFNvbWV0aGluZyB3ZSBjYW4ndCBzZWUuCiAgIFNvbWV0aGluZyBiZXR3ZWVuIHRoZSBjb2RlLgogICBXZSBib3cgZG93biB0byB5b3VyIG1hZ25pZmljZW5jZSwKICAgRm9yIHlvdSBhcmUgZXZlcnl3aGVyZSwKICAgQmV0d2VlbiBldmVyeXRoaW5nLgogICBQcmV0dHkgbm90aGluZ25lc3MgeW91IGFyZS4KCQoyMDAyLTA0LTIwIDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICB0dXJuIG9uIHVjZCBjb21wYXQgYnkgZGVmYXVsdC4KICAgCjIwMDItMDQtMjAgMDA6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBsYXN0IHVwZGF0ZXMKICAgCjIwMDItMDQtMTkgMjM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICByZW1vdmUgdGVzdGRlbGF5ZWQKICAgCjIwMDItMDQtMTkgMjM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IC5jdnNpZ25vcmUgLCAuY3ZzaWdub3JlOgoKICAgY3ZzIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA0LTE5IDIzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGRvbid0IGRpZSBpZiBwZXJsIGRvZXNuJ3QgaW5pdC4KICAgCjIwMDItMDQtMTkgMjM6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFJFQURNRSAsIFNOTVAucG06CgogICBjaGFuZ2Ugd2FybmluZy4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG11bHRpcGxlIGluc2VydHMgaW50byB0aGUgZGVsZWdhdGVkIGNoYWluIGRvbid0CiAgIGhhcHBlbiAocmVhZDogdGhleSBzaG91bGRuJ3QgYW55d2F5LCBidXQuLi4uLikuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHR5cGVkZWYgdXBkYXRlCiAgIAoyMDAyLTA0LTE5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgRml4IHRoZSBjYWxsYmFjayBidWlsZCBob29rIHRvIHR1cm4gb2ZmIHRoZSBleHBlY3QgcmVzcG9uc2UgZmxhZyB3aGVuCiAgIG5vdCBhcHByb3ByaWF0ZS4KICAgCjIwMDItMDQtMTkgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBzcGVsbGluZyBtaXN0ZWFrOyByZW1vdmUgY2FwaXRhbCBsZXR0ZXJzIGluIGZ1bmN0aW9uIG5hbWVzCiAgIAoyMDAyLTA0LTE5IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZWQgaW4gb2lkX2FycmF5LmgKICAgCjIwMDItMDQtMTkgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbWFrZSB0aGUgcGVybEluaXRGaWxlIGFuZCBkaXNhYmxlUGVybCB0b2tlbnMgcmVnaXN0ZXIgYXMgcHJlbWliIHN1Y2gKICAgdGhhdCB3aGVuIHBhc3NlZCBhcyBhIC0tRkxBRyBpdCdsbCBhY3R1YWxseSBkbyB0aGUgcmlnaHQgdGhpbmcgYW5kCiAgIGRpc2FibGUgdGhlIGxhdGVyICJwZXJsIiB0b2tlbiBoYW5kbGVycy4KICAgCjIwMDItMDQtMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgbWFuL01ha2VmaWxlLmluICwgbWFuL25ldHNubXBfYWdlbnQuMwogICAsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zICwgbWFuL25ldHNubXBfZGVidWcuMyAsCiAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zICwgbWFuL25ldHNubXBfaGFuZGxlci4zCiAgICwgbWFuL25ldHNubXBfaW5zdGFuY2UuMyAsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMyAsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKICAgLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMgLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMyAsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zICwgbWFuL25ldHNubXBfdGFibGUuMyAsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMgLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMgLAogICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMgLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiAgICwgbWFuL25ldHNubXBfdG9kby4zOgoKICAgZG9jdW1lbnRhdGlvbi4gIENhbid0IGdldCBlbm91Z2guCiAgICAgLSBtYWtlIGRvY3Mgbm93IGluc3RhbGxzIG1hbiBwYWdlcyBpbnRvIHRoZSBtYW4gZGlyLCB3aGljaCBhcmUgdGhlbiBpbnN0YWxsZWQuCiAgIAoyMDAyLTA0LTE5IDE3OjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCAsIFQxMjFwcm94eXNldDoKCiAgIENvcnJlY3QgZm9yIG5ldyBTVFJJTkcgcHJlZml4LgogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIEthdHN1aGlzYSBBQkUKICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnhzICwgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgZml4IGhlYWRlciBmaWxlcyBmb3IgbmV3IHBhdGhzLgogICAKMjAwMi0wNC0xOSAxNzowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBBcHBseSBwYXRjaCAjNTMyNTU1OiBpcHY2IGNvbTJzZWMgc3VwcG9ydCwgdGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA0LTE5IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwgc25tcGxpYi90b29scy5jOgoKICAgZml4IHN5c1VwVGltZSAoYW5kIHJlbGF0ZWQgZnVuY3Rpb25zKSB0byBoYW5kbGUgbXVjaCBsYXJnZXIgdXBUaW1lCiAgIHZhbHVlcyAoaWUsIGZpeCBzaWduZWQgaW50ZWdlciB3cmFwcGluZykuCiAgIAoyMDAyLTA0LTE5IDExOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGVtYmVkZGVkIHBlcmwgc3VwcG9ydC4KICAgCjIwMDItMDQtMTkgMTE6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L01ha2VmaWxlLmluCiAgICwgYWdlbnQvc25tcF9wZXJsLmMgLCBhZ2VudC9zbm1wX3BlcmwucGwgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmggLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgQWRkIHNvbWUgbmV3IHNubXBkLmNvbmYgdG9rZW5zIGZvciBjb250cm9sbGluZyBwZXJsIGJldHRlci4KICAgRml4IGVtYmVkZGVkIHBlcmwgc3VwcG9ydCBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMDQtMTkgMTE6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IC5jdnNpZ25vcmUgLCBNYWtlZmlsZS5QTCAsCiAgIGRlZmF1bHRfc3RvcmUucG0gLCBkZWZhdWx0X3N0b3JlLnhzOgoKICAgQWRkZWQgbWlzc2luZyBhZ2VudCBkZWZhdWx0X3N0b3JlIHN0dWZmLiAgKHRoZXkgZXhpc3RlZCBvbiBteSBtYWNoaW5lLAogICBJIGRvbid0IGtub3cgd2h5IGV2ZXJ5b25lIGVsc2Ugd2FzIGhhdmluZyBwcm9ibGVtcykKICAgCjIwMDItMDQtMTkgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGluZ3MgdGhhdCBzaG91bGQgbmV2ZXIgZXZlciBoYXBwZW4KICAgCjIwMDItMDQtMTkgMDM6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgPFNpZ2g+IEEgbGl0dGxlIGxlYXJuaW5nIGlzIGEgZGFuZ2Vyb3VzIHRoaW5nLgogICBBcHBseSB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggZnJvbSBBeGVsIC0gc29ycnkuCiAgIAoyMDAyLTA0LTE5IDAxOjQ5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiAsIGRveHlnZW4uY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGRvY3VtZW5hdGlvbiB3aGVuIHNyY2RpciAhPSBjb25maWdkaXIKICAgKFBhdGNoIHN1cHBsaWVkIGJ5IEF4ZWwgS2l0dGVuYmVyZ2VyKQogICAKMjAwMi0wNC0xOCAxNzozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBmaXggc25tcElQWERvbWFpbiAoYWdhaW4pCiAgIAoyMDAyLTA0LTE4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBvbmx5IG9wZW4gc3ViYWdlbnQgY29ubmVjdGlvbnMgb25jZSBhdCBzdGFydHVwCiAgIAoyMDAyLTA0LTE4IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IGZvciBkb3duIHN1YmFnZW50IGNhc2VzLCBtYXJrIHJlZ2lzdHJhdGlvbnMgYXMgZGV0YWNoZWQKICAgCjIwMDItMDQtMTggMTc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlZmluZSBhIG1heGltdW0gcGFja2V0IHNpemUgd2UgY2FuIGFjY2VwdCB0byBwcm90ZWN0IGNlcnRhaW4gZXJyb3IKICAgY29uZGl0aW9ucyAoLTEgYWZ0ZXIgY29udmVyc2lvbiBpcyBub3cgdG9vIGxhcmdlKS4KICAgCjIwMDItMDQtMTggMTY6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBjaGFuZ2UgdGhlIGVudGVycHJpc2UgT0lEcyBpbiB0aGUgcHJvcGVyIHBsYWNlIChuZXQtc25tcC1jb25maWcuaC5pbgogICBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUpLgogICAKMjAwMi0wNC0xOCAxMzo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBBZGQgdHdvIG5ldyBvcHRpb25zIHRvIG5ldC1zbm1wLWNvbmZpZyBhcyByZXF1ZXN0ZWQgb24gdGhlIElSQyBjaGFubmVsLgogICAgIC0tY29uZmlndXJlLW9wdGlvbnMKICAgICAtLXNubXBkLW1vZHVsZS1saXN0CiAgIAoyMDAyLTA0LTE4IDExOjQzICByc3RvcnkKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgYWRkIG1pc3NpbmcgY29tbWEKICAgCjIwMDItMDQtMTggMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHN1cHBsaWVkIGVudGVycHJpc2UgT0lEcyBjb3JyZWN0bHkKICAgKGFuZCB1c2UgYSBtb3JlIG1lYW5pbmdmdWwgb3V0cHV0IG1lc3NhZ2UpCiAgIAogICBTaGFtZSB0aGVzZSBzZXR0aW5ncyBhcmVuJ3QgY2FjaGVkIGZvciBsYXRlciByZS11c2UuLi4uCiAgIAoyMDAyLTA0LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTm90aWZ5IG9uIGFnZW50IHJlY29uZmlndXJhdGlvbi4KICAgCjIwMDItMDQtMTggMDc6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIG5vdGlmaWNhdGlvbnMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTggMDc6MDggIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEZpeCB0aGUgdGFibGUtb2YtY29udGVudHMgc2VxdWVuY2UgZm9yIHRoZSBuc01vZHVsZVRhYmxlLCBhZGQgbm90aWZpY2F0aW9uCiAgIGRlZmluaXRpb25zIGZvciB0aGUgYWdlbnQsIGFuZCBkZWZpbmUgZ3JvdXBzIGZvciBldmVyeXRoaW5nLgogICAKMjAwMi0wNC0xOCAwMjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJyaW5nIGludGVnZXIgYW5kIHN0cmluZyBvdXRwdXQgZm9ybWF0cyBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgdHlwZXMKICAgYnkgcHJpbnRpbmcgYSB0eXBlIHRva2VuIGJlZm9yZSB0aGUgdmFsdWUgKHVubGVzcyBzdXByZXNzZWQgYnkgJ3F1aWNrIHByaW50JykKICAgVGhhbmtzIHRvIEVyaWsgZm9yIHRoZSBwYXRjaAogICAKMjAwMi0wNC0xOCAwMTo0NiAgZHRzMTIKCiAgICogRkFROgoKICAgUmVwbGFjZSB0aGUgZGxtb2QgJ1dIRVJFJyB3aXRoIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwuLi4uCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGRlZmluZSB0aGUgaXB4RG9tYWluIHZhcmlhYmxlcwogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRXJyb3IgY29uZGl0aW9uIHRlc3RzCiAgIAoyMDAyLTA0LTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgT2gsIGp1c3QgYSBzbWFsbCBwYXRjaCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIG1ha2UgbW9kdWxlcyByZXF1ZXN0CiAgIHRoYXQgYWxsIHF1ZXJpZXMgdG8gYSBzZXQgb2YgcmVnaXN0cmF0aW9ucyBnZXQgcGFzc2VkIGFsbCBhdCBvbmNlCiAgICh3aGljaCBhcHBhcmVudGx5IGlzIGltcG9ydGFudCBmb3IsIG9oLCBhZ2VudHgpCiAgIAoyMDAyLTA0LTE3IDEwOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtaXNjIG5vbi1jaGFuZ2UgY2xlYW4gdXBzCiAgIAoyMDAyLTA0LTE3IDEwOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW5hbWUgc3RydWN0dXJlcyBiZWdpbm5pbmcgd2l0aCBfIHRvIGVuZGluZyB3aXRoIF9zCiAgIAoyMDAyLTA0LTE3IDEwOjAyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgc2Vzc2lvbiBjcmVhdG9yIHRvIHVzZSBhdCB3aWxsIChkaWZmZXJlbnQKICAgZnJvbSB0aGUgY2FsbGJhY2sgbWFnaWMpLgogICAKMjAwMi0wNC0xNyAwOTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgc3lzT0lEcyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xNyAwODoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlLgogICAKMjAwMi0wNC0xNyAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZQogICAKMjAwMi0wNC0xNyAwNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgbW92ZSBuc01vZHVsZVRhYmxlIGludG8gRGF2ZSdzIHN0cnVjdHVyZS4KICAgCjIwMDItMDQtMTcgMDY6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmggLAogICBzbm1wVENQSVB2NkRvbWFpbi5oICwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbnMgb2YgRG9tYWluIG9iamVjdHMgKGNvbnN0IC0+IGV4dGVybikKICAgCjIwMDItMDQtMTcgMDY6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9zbm1wY29uZi1jb25maWcgLAogICBzbm1wZC1kYXRhL3NubXBjb25mLWNvbmZpZyAsIHNubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZzoKCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZGF0YQogICAKMjAwMi0wNC0xNyAwMzowMSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIHJlcG9ydGVkIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHN5c29pZCAmIG5vdGlmaWNhdGlvbiBPSURzCiAgIGJhY2sgaW50byBsaW5lIHdpdGggd2hhdCB3ZSBhY3R1YWxseSB1c2UgKGkuZS4gdGhlIHVjZGF2aXMgT0lEcykuCiAgIAogICBRbjogIERvIHdlIHdhbnQgdG8gc3dpdGNoIHRvIHVzaW5nIHRoZSBuZXQtc25tcCBlcXVpdmFsZW50IHN5c09JRHM/CiAgIFFuOiAgV2hhdCBhYm91dCBkZWZpbmluZyBuZXQtc25tcCBub3RpZmljYXRpb25zPwogICAKMjAwMi0wNC0xNyAwMjo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgRml4IC0td2l0aC1lbnRlcnByaXNlLXN5c29pZCBhbmQgLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCwKICAgYW5kIHRyeSB0byBjbGFyaWZ5IHRoYXQgdGhlc2UgYXJlIE9JRHMsIHdoaWxlIC0td2l0aC1lbnRlcnByaXNlLW9pZAogICBpcyBhY3R1YWxseSBqdXN0IHRoZSBlbnRlcnByaXNlICpudW1iZXIqCiAgIAogICBRbjogIHNob3VsZCB3ZSBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gdG8gcmVmbGVjdCB0aGlzPwogICAKMjAwMi0wNC0xNiAxMDowNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluICwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAsIEZBUSAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUzICkKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGRlbGV0ZSB0b3AgZGlzY2xhaW1lcnMKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMDQtMTYgMTA6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWlzYyBidWcgZml4ZXMKICAgCjIwMDItMDQtMTYgMDg6MTkgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBjb25jZXJuaW5nIHRoZSAnbGliY3J5cHRvJyBSUE0gZGVwZW5kZW5jeS4KICAgCjIwMDItMDQtMTYgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wNC0xNiAwNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGEgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIHRvZG8gY29tbWVudAogICAKMjAwMi0wNC0xNiAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgSSBndWVzcyBJIGZvcmdvdCB0byBydW4gYXV0b2NvbmYKICAgCjIwMDItMDQtMTUgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogc25tcGNvbmYgLCBNYWtlZmlsZS5pbjoKCiAgIG1vdmUgc25tcGNvbmYgZGF0YSBkaXJlY3RvcmllcyB0byBkaWZmZXJlbnQgbmFtZXMgdG8gYXZvaWQgY29uZnVzaW9uCiAgIAoyMDAyLTA0LTE1IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvYXV0aG9wdHMgLAogICBzbm1wLWRhdGEvZGVidWdnaW5nICwgc25tcC1kYXRhL21pYnMgLCBzbm1wLWRhdGEvb3V0cHV0CiAgICwgc25tcGQtZGF0YS9hY2wgLCBzbm1wZC1kYXRhL2Jhc2ljX3NldHVwICwKICAgc25tcGQtZGF0YS9leHRlbmRpbmcgLCBzbm1wZC1kYXRhL21vbml0b3IgLAogICBzbm1wZC1kYXRhL29wZXJhdGlvbiAsIHNubXBkLWRhdGEvc3lzdGVtICwKICAgc25tcGQtZGF0YS90cmFwc2lua3MgLCBzbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nICwKICAgc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZToKCiAgIGRhdGEgZmlsZSBtb3ZpbmcKICAgCjIwMDItMDQtMTIgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgTWFzc2l2ZSBjbGVhbnVwIGVmZm9ydC4gIEl0IHNob3VsZCBub3cgcmVzcGVjdCBvcmRlcmluZyBpbiB0aGUKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBmaWxlcyBhcyB3ZWxsLgogICAKMjAwMi0wNC0xMiAxMzowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGZpeCBmb3Igb3ZlcnplYWxvdXMgcGVybCBzY3JpcHQKICAgCjIwMDItMDQtMTIgMDk6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgY29weSB1Y2QgcGVyc2lzZW50IGRpcmVjdG9yeSB0byBuZXQtc25tcCAocHJvbXB0cywgZmxhZ3MgYW5kIG90aGVyIGZ1bikKICAgCjIwMDItMDQtMTIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCB0cmFwdG9lbWFpbAogICAKMjAwMi0wNC0xMiAwNzo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgcmVtb3ZlIHRyYXBub3RpZgogICAKMjAwMi0wNC0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiAsIHJzbm1wOgoKICAgcmVtb3ZlIHJzbm1wLCB3aGljaCBpcyB2ZXJ5IHZlcnkgb2xkIGFuZCBvdXQgb2YgZGF0ZQogICAKMjAwMi0wNC0xMiAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSAsIE1ha2VmaWxlLmluICwgbWliMmMuMS5kZWY6CgogICBBIG1hbnVhbCBwYWdlIGZvciBtaWIyYyAoaGVscCwgSSdtIHR1cm5pbmcgaW50byBEYXZlKQogICAKMjAwMi0wNC0xMiAwNzoyOCAgaGFyZGFrZXIKCiAgICogZG90Z2RiaW5pdDoKCiAgIGEgZ2RiIGluaXRpYWxpemF0aW9uIGZpbGUgd2l0aCBoZWxwZnVsIGZ1bmN0aW9ucwogICAKMjAwMi0wNC0xMiAwMjo0MiAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBBZGQgJ3NubXBjb25mJyBhbmQgJ21pYjJjJyB0byB0aGUgbGlzdCBvZiBzY3JpcHRzIHRvIGluc3RhbGwuCiAgIAogICBJJ3ZlIGxlZnQgJ3RyYXB0b2VtYWlsJyBvZmYgdGhpcyBsaXN0LCBzaW5jZSBpdCBzYXlzIGl0J3Mgbm90IGludGVuZGVkCiAgIGFzIGEgZGlyZWN0bHkgdXNlci1pbnZva2VkIGNvbW1hbmQsIHNvIHByb2JhYmx5IG91Z2h0IG5vdCB0byBiZSBpbnN0YWxsZWQKICAgaW50byBhIGJpbmFyeSBkaXJlY3RvcnkuCiAgIAoyMDAyLTA0LTEyIDAyOjQxICBkdHMxMgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIEZpeCB0aGUgcGF0aCBvZiBzbm1wd2FsayB0byBiZSBzb21ldGhpbmcgbW9yZSBwbGF1c2libGUuCiAgIChJJ20gbm90IGNvbnZpbmNlZCBhYm91dCB0aGUgdmFsaWRpdHkgb2YgdGhhdCBpbml0aWFsICdydG9wbWliJyBPSUQgbWluZCEpCiAgIAoyMDAyLTA0LTEyIDAyOjM2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgRml4IHR5cG8gaW4gcmVmZXJlbmNlIHRvICdtaWIyYy5pdGVyYXRlLmNvbmYnCiAgIAoyMDAyLTA0LTEyIDAyOjMzICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcyAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtYWluIGxpYnJhcnkgYXMgJ2xpYnNubXAnIGlmIGNvbmZpZ3VyZWQgdXNpbmcgVUNEIGNvbXBhdGliaWxpdHkuCiAgIFRoaXMgc2hvdWxkIGhhbmRsZSB0aGUgcmVxdWlyZW1lbnRzIG9mIGFwcGxpY2F0aW9uIGNvbXBhdGliaWxpdHkuCiAgIEFnZW50IGxpYnJhcnkgY29tcGF0aWJpbGl0eSBpcyBsaWtlbHkgdG8gcHJvdmUgYSBoYXJkZXIgcHJvYmxlbQogICAoc2luY2UgdGhlcmUgYXJlIG5vdyB0aHJlZSBsaWJyYXJpZXMsIG5vdCBqdXN0IHR3by4uLikKICAgCjIwMDItMDQtMTEgMjI6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBzZXQgU05NUENPTkZQQVRIIGlmZiBbc2ljXSBub3Qgc2V0CiAgIAoyMDAyLTA0LTExIDIyOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJldHVybiBmcm9tIGluaXRNaWIgYmVmb3JlIGRvaW5nIGFueXRoaW5nLgogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgdHVybiBvZmYgY29tcGxpZXIgd2FybmluZ3MKICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgInNob3cgY29sdW1ucyBmcm9tIFRBQkxFIgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgbmV3IGRlbW8gc2NhbGFyOiB0aGUgc2xlZXBlci4gIChkYWggZGFoIGRhaCBkdW1tbW1tKQogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgaW5kZW50LgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy5oICwgZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jCiAgICwgZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oOgoKICAgQWRkIGEgZGVsYXllZCBpbnN0YW5jZSBleGFtcGxlLCBzaG93aW5nIGhvdyB0byByZXR1cm4gbWliIHJlcXVlc3QKICAgcmVzdWx0cyBsYXRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGVseS4KICAgCjIwMDItMDQtMTEgMjI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICByZW1vdmUgbGVnYWN5IGV4YW1wbGUuCiAgIAoyMDAyLTA0LTExIDIyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhZGQgY29tbWVudCBhYm91dCBwb3NzaWJseSBmaXhpbmcgaW5jbHVzaXZlIHJlcXVlc3RzIGluIHRoZSBmdXR1cmUuCiAgIAoyMDAyLTA0LTExIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICBjaGFuZ2UgbW9kdWtlcy0+IG1vZHVsZXMKICAgCjIwMDItMDQtMTEgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB0dXJuIG9mZiBkZWJ1Z2dpbmcgd2hlbiBjYWxsaW5nIGxvZ2dpbmcgY2FsbGJhY2tzCiAgIAoyMDAyLTA0LTEwIDEyOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtICwgU05NUC54czoKCiAgIGZpeCBwZXJsIG1vZHVsZSBpbiBtYW55IG1hbnkgcGxhY2VzLiAgbW9zdCB0ZXN0cyBub3cgcGFzcy4KICAgCjIwMDItMDQtMTAgMTI6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBmb3JjZSBzZXR0aW5nIHRvIGEgImJvZ3VzIiBTTk1QQ09ORlBBVEguCiAgIAoyMDAyLTA0LTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgRXhwb3J0aW5nIGZ1bmN0aW9ucyBnb29kLiAgSW50ZXJuYWxpemluZyBiYWQuCiAgIAoyMDAyLTA0LTEwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICBzaWdoLgogICAKMjAwMi0wNC0xMCAwOToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wNC0xMCAwOToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIE1ha2UgdGhlIHBlcmwgbW9kdWxlIGNhbGwgaW5pdF9zbm1wKCkKICAgICAtIHRoaXMgaXMgYSBmYWlybHkgbWFqb3IgY2hhbmdlLCBpcyBpdCBub3cgd2lsbCByZWFkIC5jb25mIGZpbGVzLgogICAgIC0gbWFueSBwZW9wbGUgaGF2ZSBhc2tlZCBmb3IgdGhpcy4KICAgLSBtaXNjIGNsZWFuIHVwcy4KICAgCjIwMDItMDQtMTAgMDk6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRG9uJ3QgcmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIGZvciB0aGUgY29uc2l0dWVudCBzdWJ0YXJnZXRzIG9mICJtYWtlIGluc3RhbGwiCiAgIAoyMDAyLTA0LTEwIDA5OjA5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgYSBmZXcgdGhpbmdzLCBzZXBhcmF0ZWQgcGVybCBzdHVmZiBpbnRvIGl0J3Mgb3duIHNlY3Rpb24uCiAgIAoyMDAyLTA0LTEwIDA4OjQ2ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBCcmluZyB0aGUgaGVscCBtZXNzYWdlIGZvciB0aGUgVUNEIGNvbXBhdGFiaWxpdHkgb3B0aW9uIGludG8gbGluZSB3aXRoCiAgIHdoYXQncyBhY3R1YWxseSByZWNvZ25pc2VkLgogICAKMjAwMi0wNC0xMCAwNzo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgY2hhbmdlIGxpYnRvb2wgdmVyc2lvbmluZyB0byB0aGVpciByZWNvbW1lbmRlZCBtZXRob2Qgb2YgZG9pbmcgdGhpbmdzCiAgICh3aGljaCBJIGhhdGUsIGJ1dCBpcyBzdGlsbCBiZXR0ZXIgdGhhbiB3aGF0IHdlIHdlcmUgZG9pbmcsIEkgZ3Vlc3MpCiAgIAoyMDAyLTA0LTEwIDA3OjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEJyaW5nIHVzZSBvZiBCVUlMVFNVQkRJUiB3aXRoaW4gJ2luc3RhbGxsb2NhbGhlYWRlcnMnIGludG8gbGluZQogICB3aXRoIHRoZSBwcmVjZWRpbmcgY29tbWVudCwgYW5kIGFjdHVhbCB1c2FnZS4KICAgKGkuZS4gSU5TVEFMTEJVSUxUU1VCRElSIHJhdGhlciB0aGFuIElOQ0xVREVCVUlMVFNVQkRJUikKICAgCjIwMDItMDQtMTAgMDU6NTggIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUeXBvIGluIHNlY3VyaXR5LWluY2x1ZGUgaGVhZGVyIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSB2YXJpYWJsZQogICAKMjAwMi0wNC0xMCAwNTo1NSAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgbWliMmMgY29uZiBmaWxlcy4KICAgCjIwMDItMDQtMTAgMDE6NTUgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDA0c25tcHYxbm9zdWNoICwgVDAxOXNubXB2MmNub3N1Y2g6CgogICBUd28gbmV3IHRlc3RzIHRvIGNoZWNrIGhhbmRsaW5nIG9mIEdFVGluZyBub24tZXhpc3RhbnQgaW5zdGFuY2VzCiAgIAoyMDAyLTA0LTEwIDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBIGZpeCBmb3IgU05NUHYxIGVycm9ycyB0aGF0IGRvZXNuJ3QgZW5kIHVwIGJyZWFraW5nIEFnZW50WCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDItMDQtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gRGF2ZSB0byBmaXggdjEgZXJyb3IgcmVzdWx0cy4KICAgCjIwMDItMDQtMDggMjE6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZml4IGluY29ycmVjdCBsZW5ndGggcmV0dXJuIHZhbHVlCiAgIAoyMDAyLTA0LTA4IDE4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jICwgdmFjbV92YXJzLmg6CgogICBkb24ndCBhbGxvdyBuby1jb25maWd1cmF0aW9uIGFjY2VzcyBhbnltb3JlLgogICAKMjAwMi0wNC0wOCAxNzo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIG1vcmUgdW5jb25zdCBjb3JyZWN0bmVzcwogICAKMjAwMi0wNC0wOCAxNzozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBzaXplX3QgZXh0ZXJucyBmb3IgZXhwb3J0ZWQgb2lkcwogICAKMjAwMi0wNC0wOCAxNzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRlbXBvcmFyeSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB0aGF0IGFjY2lkZW50YWxseSBiZWNhbWUgcGVybWFuZW50LgogICAKMjAwMi0wNC0wOCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYyAsIHNubXBfdHJhbnNwb3J0LmM6CgogICBkZWZpbmUgbGVuZ3RoIHNpemVfdCdzIGZvciBvaWQgdmFyaWFibGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBzdXBwb3J0ICJudWxsIiB0eXBlcy4KICAgCjIwMDItMDQtMDggMTY6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIG5vdGlmaWNhdGlvbiBsb2cgbWliIHN1cHBvcnQgYmVmb3JlIC1IIHVzYWdlLgogICAKMjAwMi0wNC0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpeCBhIGZldyB0aGluZ3MgYW5kIG1ha2Ugc3ViaGFuZGxlcnMgbm90IGFibGUgdG8gdGVsbCB0aGVyZSB3ZXJlIG1vcmUgcmVxdWVzdHMuCiAgIAoyMDAyLTA0LTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgQSBjby13b3JrZXIgcG9pbnRlZCBvdXQgdGhhdCB0aGUgSU5TVEFMTCBzY3JpcHQgc3RpbGwgc2FpZCB0byBlZGl0IGNvbmZpZy5oCiAgIAoyMDAyLTA0LTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdW5zdGF0aWMtaXplIGEgZmV3IG9pZHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGV4dGVybmFsCiAgIAoyMDAyLTA0LTA4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBUQ1BEb21haW4uYyAsCiAgIHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBfYXBpLmMgLCBzbm1wX3RyYW5zcG9ydC5jCiAgICwgc25tcHVzbS5jOgoKICAgQ2hhbmdlIGNvbnN0IG9pZCBkZWNsYXJhdGlvbnMgaW50byBzdGF0aWMgb25lcyBzaW5jZSBzaGFyZWQgbGlicmFyaWVzCiAgIGhhdmUgYSBwcm9ibGVtIHdpdGggaW5pdGlhbGl6aW5nIHRoZW0gb24gbGludXggc3lzdGVtcyBhdCBsZWFzdC4KICAgCjIwMDItMDQtMDggMTE6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWluaW1hbCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2dpbmcgYW5kIHRoZSBpbmplY3RIYW5kbGVyIHRva2VuCiAgIAoyMDAyLTA0LTA1IDE0OjMyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOC5kZWYgLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQiBzdXBwb3J0LgogICAKMjAwMi0wNC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBjb250ZXh0IG5hbWUgc3VwcG9ydCBpbiBwcm94eSBjb2RlLgogICAKMjAwMi0wNC0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZGlzbWFuIGV2ZW50IG1pYiBzdXBwb3J0IGZvciBzZW5kaW5nIHRyYXBzIHZpYSBtb25pdG9yZWQgT0lEcy4KICAgCjIwMDItMDQtMDUgMTA6MTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcHV0IHRyYXAgY29uZmlnIGludG8gaXRzIG93biBzZWN0aW9uLgogICBkb2N1bWVudCB0aGUgIm92ZXJyaWRlIiB0b2tlbi4KICAgCjIwMDItMDQtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBjaGFuZ2UgZGVmYXVsdCBjb250ZXh0IHRvIGFuIGVtcHR5IHN0cmluZwogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuNSksIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBNYWtlIGFuIGV4YW1wbGUgZGF0YXNldCB0YWJsZSB0byBob2xkIGFuZCBzdG9yZSBkYXRhIGluIChhZG1pdHRlZGx5CiAgIHVzZWxlc3MgZGF0YSBmcm9tIGEgbmV0d29yayBtYW5hZ2VtZW50IHBvaW50IG9mIHZpZXcsIGJ1dCBpdCdzIGFuIGV4YW1wbGUpLgogICAKMjAwMi0wNC0wMiAyMjoxMiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBmcm9tIHN1YmRpciBidWlsZCBjYXNlLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzIGZyb20gZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaCBhbmQgbWliX21vZHVsZV9pbmNsdWRlcy5oIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy5oIGZyb20gdGhlIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgY3JlYXRlIHNvbWUgaW5zdGFsbCBmcm9tIGJ1aWx0IGhlYWRlciBydWxlcy4KICAgCjIwMDItMDQtMDIgMTc6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCBtaWIyYy5jb25mOgoKICAgcmVtb3ZlIGRlbGV0ZWQgYXJyYXktYXV0byBmcm9tIC5jb25mIGluc3RhbGwvcmVmZXJlbmNlIGxpc3RzCiAgIAoyMDAyLTA0LTAyIDE1OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmggLCB1Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgdWNkLXNubXAvcmVnaXN0cnkuaDoKCiAgIHJlbW92ZSB0aGUgcmVnaXN0cnkgbW9kdWxlLCBhcyBpdCdzIG9ic29sZXRlIGR1ZSB0byBjb250ZXh0cy4gIFVzZSB0aGUgbnNNb2R1bGVUYWJsZSBpbnN0ZWFkCiAgIAoyMDAyLTA0LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgKFY0LTItcGF0Y2hlcy43KSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY0LTItcGF0Y2hlcy44KSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMiAwNzowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgY2hhciBmb3IgTlVMTCBiZWZvcmUgc2V0dGluZyB0bzoKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOSksIGNtdV9jb21wYXQuYyAsCiAgIHNubXBfYXBpLmM6CgogICBMZXQgaW5pdF9zbm1wIHByb3RlY3QgaXRzZWxmLgogICAKMjAwMi0wMy0yOSAxNTowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyAmIHVwZGF0ZXMKICAgCjIwMDItMDMtMjkgMTA6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWRkIGNvbW1lbnQKICAgCjIwMDItMDMtMjkgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgYSBhbGxvd19jcmVhdGlvbiBkZWZpbml0aW9uLgogICAKMjAwMi0wMy0yOSAwODoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIG5ldC1zbm1wLWNvbmZpZyBleGVjdXRhYmxlIGFmdGVyIGl0J3MgYnVpbHQKICAgCjIwMDItMDMtMjkgMDg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc2V0U2VyaWFsTm8uYyAsIHNldFNlcmlhbE5vLmg6CgogICBvcHBzLiAgZm9yZ290IHRvIGNoZWNrIHRoZSBzZXRTZXJpYWwgY29kZSBpbgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgKFY0LTItcGF0Y2hlcy40KSwgcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjQtMi1wYXRjaGVzLjQpLCBocl9maWxlc3lzLmM6CgogICBhcHBseSBmcmVlYnNkNSBwYXRjaCAjNTE3MzMzCiAgIAoyMDAyLTAzLTI4IDIzOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3lzdGVtLmMgLCBtaWJJSS9pbnRlcmZhY2VzLmMKICAgLCBtaWJJSS9pcEFkZHIuYzoKCiAgIEFwcGx5IG5ldGJzZCBmaXggcGF0Y2ggIzUyOTczMwogICAKMjAwMi0wMy0yOCAyMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy44KSwgc25tcF9hcGkuYyAsCiAgIHNubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjUgIGR0czEyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AgLCByZWFkX2NvbmZpZy4zLmRlZiAsCiAgIHNubXBfYXBpLjMuZGVmOgoKICAgVHdlYWsgdG8gdXNlIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTAzLTI4IDE1OjIzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVuYW1lL3ByZWZpeCBmdW5jdGlvbnM7IGFkZCBkb3h5Z2VuIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDMtMjggMTM6MDAgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBhZGQgZGVmaW5lIGZvciBleGNsdWRpbmcgc3R1ZmYgKERPWFlHRU5fU0hPVUxEX1NLSVBfVEhJUykKICAgCjIwMDItMDMtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgc2V0U2VyaWFsTm8KICAgCjIwMDItMDMtMjggMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgZml4IGEgbmV2ZXItc2Vlbi1idXQtdmVyeS1vbGQtYnVnIHVzaW5nIHRoZSB3cm9uZyBkZWZhdWx0X3N0b3JlIHRva2VuLgogICAKMjAwMi0wMy0yOCAxMjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgb25seSBzZXQgdGhlIGRlZmF1bHQgb3V0cHV0IHN0eWxlIGlmIGl0J3Mgbm90IGFscmVhZHkgc2V0IHRvIHNvbWV0aGluZy4KICAgCjIwMDItMDMtMjggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICB3cmFwcGluZy4KICAgCjIwMDItMDMtMjggMTI6MTcgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSB2ZXJzaW9uIG51bWJlcgogICAKMjAwMi0wMy0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgYmFjayBvdXQgY2hhbmdlIGZyb20gdmVyc2lvbiAxLjY1IHVudGlsIGJldHRlciBzb2x1dGlvbiBjYW4gYmUgZm91bmQ7CiAgIGJ1ZyAjNTM1MDI5CiAgIAoyMDAyLTAzLTI4IDEyOjAzICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHJldHVybiBzcGVjaWZpYyByZXN1bHQgY29kZSBmb3IgcmVnaXN0cmF0aW9uIGZhaWx1cmUgaWYgYXZhaWxhYmxlLgogICAKMjAwMi0wMy0yOCAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgcGVybCB0eXBvCiAgIAoyMDAyLTAzLTI3IDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZGVsZXRlIG9sZCwgdW51c2VkIGNvbmYgZmlsZQogICAKMjAwMi0wMy0yNyAwODoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYyAsIG5vdGlmaWNhdGlvbl9sb2cuaCAsCiAgIHNubXB0cmFwZC5jOgoKICAgYWRkICJkb250UmV0YWluTG9ncyIgdG9rZW4gdG8gc25tcHRyYXBkLmNvbmYgdG8gbm90IGVuYWJsZSB0aGUKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIuCiAgIAoyMDAyLTAzLTI3IDAxOjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgVXNlIHRoZSBjb3JyZWN0IG5hbWUgb2YgdGhlIFdpbmRvd3MgSVAgSGVscGVyIEFQSSBsaWJyYXJ5LgogICAoQ29tcHV0ZXJzIGNhbiBiZSBzb29vbyBwaWNreSEpCiAgIAoyMDAyLTAzLTI2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSBSZWFsbHkgZml4IHRoZSAidW5kbyBmYWlsZWQiIHByb2JsZW0uICBJRSwgbm90IGp1c3QgYW55IG9sZCBlcnJvcgogICAgIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgbWVzc2FnZSB0byBnZXQgc2VudCBiYWNrLiAgT25seSB2YXJiaW5kcwogICAgIHdpdGggYW4gdW5kbyBmYWlsZWQgZXJyb3IgY29kZSB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIHJlc3VsdC4KICAgICB1bmRvIGZhaWxlZCByZXN1bHRzIGRvIHN0aWxsIHN1cGVyc2VkZSBhbGwgb3RoZXIgZXJyb3IgY29kZXMsCiAgICAgaG93ZXZlciwgd2hpY2ggaXMgd2hhdCB0aGUgb3JpZ2luYWwgcHJvYmxlbSB3YXMgYWxsIGFib3V0LiAgV2Ugc3RpbGwKICAgICBoYXZlIHRvIGRlcGVuZCBvbiB0aGUgbW9kdWxlcyByZXR1cm5pbmcgdGhlIHJpZ2h0IGVycm9yIGNvZGUgKGJ1dAogICAgIHRoYXQncyB0aGVpciBmYXVsdCBpZiB0aGV5IGRvbid0KS4KICAgLSBtaXNjIGNsZWFudXBzIGFuZCByZW5hbWVzCiAgIAoyMDAyLTAzLTI2IDIzOjIwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgQ3JhaWcgU2V0ZXJhCiAgIAoyMDAyLTAzLTI2IDE0OjA3ICByc3RvcnkKCiAgICogVE9ETzoKCiAgIGFkZCBjcmVhdGluZyBzcmMgcnBtIHNwZWMgZmlsZQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNraW8uYyAoVjQtMi1wYXRjaGVzLjIpLCBkaXNraW8uYzoKCiAgIGVuYWJsZSBkaXNraW8gb24gZnJlZWJzZDUuICBJbXBsZW1lbnRzIHBhdGNoIDUxNzMyOCBpbiBhIGRpZmZlcmVudCB3YXkuCiAgIAoyMDAyLTAzLTI2IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZml4IGZvciBvdGhlci1kaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTI2IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBpbmZvIGluIHNwbGl0X3N1YnRyZWUKICAgCjIwMDItMDMtMjYgMDc6NDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzAsMF0pLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzksOV0pLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo0MSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQWRkICctbGhscGFwaScgdG8gdGhlIGxpc3Qgb2YgYWdlbnQgbGlicmFyaWVzLCB3aGVuIHJ1bm5pbmcgb24gV2luZG93cwogICAodXNpbmcgQ3lnd2luKS4gIFNob3VsZCBmaXggQnVnICM1MzQ0MDkuCiAgIAoyMDAyLTAzLTI1IDIyOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IHBhcnNlLmMgKFY0LTItcGF0Y2hlcy4zKSwgcGFyc2UuYzoKCiAgIGZpeCBidWcjNTIwNDc4IHNob3dNaWJFcnJvcnMgdG9rZW4gaXMgaW52ZXJ0ZWQKICAgCjIwMDItMDMtMjUgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzCiAgIAoyMDAyLTAzLTI1IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHVzZSBlbWFjcyB0byBmaXggcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBwZXJsIHRvIHNlYXJjaCBhbmQgcmVwbGFjZSBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0yNSAwODo0MyAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5vcHQgLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiAgICwgc25tcGQvc25tcGQuZHNwICwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLAogICBzbm1wZGYvc25tcGRmLmRzcCAsIHNubXBnZXQvc25tcGdldC5kc3AgLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKICAgLCBzbm1wc2V0L3NubXBzZXQuZHNwICwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAogICAsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwICwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiAgICwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCAsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwICwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCAsIHNubXB2YWNtL3NubXB2YWNtLmRzcCAsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb25zIG9mICdnZXRvcHQuYycgYW5kICdzbm1wX3BhcnNlX2FyZ3MuYycgaW4KICAgZWFjaCBpbmRpdmlkdWFsIGFwcGxpY2F0aW9uIHByb2plY3QuICBUaGVzZSByb3V0aW5lcyBhcmUgaW5jbHVkZWQgd2l0aGluCiAgIHRoZSBsaWJyYXJpZXMsIHNvIHdlIG1pZ2h0IGFzIHdlbGwgdXNlIHRob3NlLgogICAKMjAwMi0wMy0yNSAwNTo1MyAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi5vcHQgLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIEdvdGNoYSEgIEV2ZXJ5dGhpbmcgbm93IGJ1aWxkcyAobW9yZS1vci1sZXNzKSBjbGVhbmx5IHVuZGVyIFZpc3VhbCBDKysuCiAgIFlvdSBzdGlsbCBoYXZlIHRvIHVzZSB0aGUgIkJhdGNoIEJ1aWxkIiBtZWNoYW5pc20gKG9yIGVsc2UgYmUgY2FyZWZ1bCB3aGljaAogICBvZiBsaWJzbm1wL2xpYnNubXBfZGxsIHlvdSBidWlsZCBpbiBlYWNoIG9mIHRoZSBEZWJ1ZyAmIFJlbGVhc2UgbW9kZXMpLAogICBhbmQgeW91IG5lZWQgdG8gYnVpbGQgdHdpY2UgaW4gb3JkZXIgdG8gZ2V0IGVuY29kZV9rZXljaGFuZ2UgbGlua2luZy4KICAgQnV0IHRoaW5ncyAqZG8qIGZpbmFsbHkgYnVpbGQuCiAgIAoyMDAyLTAzLTI0IDA1OjIxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjMgMDk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICByZWFsbHkgZml4IHNubXBpbmZvcm0gaW5zdGFsbHMgdGhpcyB0aW1lLgogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaW5hbCBjbGVhbnVwcyBvZiBub3RpZmljYXRpb24gbG9nIHN1cHBvcnQKICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIG9mIHNubXBpbmZvcm0KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSZW5hbWUgc3R1ZmYuICBGaXggc3R1ZmYuICBZb3Uga25vdywgbm9ybWFsIHJvdXRpbmUuCiAgIAoyMDAyLTAzLTIyIDIyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBmaXggdmVyc2lvbiBmaWxlIGxvY2F0aW9uIGZvciBub24tc291cmNlZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmb3Jnb3QgdG8gY29tbWl0IGEgcHJvdG90eXBlLgogICAKMjAwMi0wMy0yMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIHJlZ2lzdGVyX21pYl9jb250ZXh0MiAtPiBuZXRzbm1wX3JlZ2lzdGVyX21pYiAoYW5kIG1hcmtlZCBhcyBpbnRlcm5hbCkKICAgCjIwMDItMDMtMjIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgc3ViYWdlbnQuYzoKCiAgIHVzZSBuZXcgZXJyb3IgbG9nZ2luZyBhcGkgd2hlbiAhcm9vdAogICAKMjAwMi0wMy0yMiAxNDowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZW5hYmxlIGxvZ2dpbmcgc2Vzc2lvbiBlcnJvcnMgdG8gc29tZSBsb2cgbGV2ZWwgb3RoZXIgdGhhbiBFUlIuCiAgIAoyMDAyLTAzLTIyIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHN1YmFnZW50LmM6CgogICBiZXR0ZXIgYWdlbnR4IGNvbm5lY3Rpb24gcmVsYXRlZCBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMjIgMDk6MzUgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3ICwgd2luMzIub3B0ICwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCAsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwICwgc25tcGQvc25tcGQuZHNwOgoKICAgU2xvd2x5IG1ha2luZyBwcm9ncmVzcyBvbiA1LjAgV2luZG93cyBidWlsZC4KICAgRXZlcnl0aGluZyBub3cgY29tcGlsZXMsIHRob3VnaCB0aGUgUmVsZWFzZSB2ZXJzaW9uIGRvZXNuJ3QgbGluay4KICAgICAoY29tcGxhaW5zIGFib3V0IGFzc29ydGVkIHVua25vd24gcm91dGluZXMgdGhhdCBhcmUgdGhlcmUsCiAgICAgIHN0YXJpbmcgaXQgaW4gdGhlIGZhY2UuICBHcnJyISEhISkKICAgCjIwMDItMDMtMjIgMDg6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gbm90ICJ0d2VhayIgcmFuZ2Vfc3ViaWQgd2hlbiBkZWFsaW5nIHdpdGggY29tcHJlc3NlZCBPSURzLgogICAgICAgVGhhbmtzIHRvIENyYWlnIFNldGVyYSBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgZGV2aWF0aW9uIGZyb20gUkZDCiAgICAgICAyNzQxLgogICAKMjAwMi0wMy0yMiAwNzo1MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oICwgc25tcGxpYi9vaWRfYXJyYXkuYwogICAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBWYXJpb3VzIG1pbm9yIGluY29uc2lzdGVuY2llcyAobW9zdGx5IHRvIGRvIHdpdGggc3VidGxlIHZhcmlhdGlvbnMgaW4gdHlwZXMpCiAgIAoyMDAyLTAzLTIyIDA3OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTAzLTIyIDA3OjI5ICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCAsIG1pYl9tb2R1bGVfaW5pdHMuaCAsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDoKCiAgIEJyaW5nIFdpbmRvd3MgdmVyc2lvbnMgb2YgImF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIiBoZWFkZXIgZmlsZXMgdXAgdG8gZGF0ZS4KICAgCjIwMDItMDMtMjIgMDI6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRvbid0IHVzZSAicmVnIiBhcyBhIHBhcmFtZXRlciBuYW1lIGluIGtlcm5lbF9zdW5vczVfY2FjaGVfYWdlKCkKICAgICAgIGFzIC91c3IvaW5jbHVkZS9pbmV0L2NvbW1vbi5oIHNheXM6CiAgICAgICAjZGVmaW5lIHJlZyByZWdpc3RlcgogICAgICAgKCEpIHdoaWNoIHRoZSBjb21waWxlciB0aGVuIGJhcmZzIG9uLiAgUmVwb3J0ZWQgYXMgYnVnICM1MzMzMzYgYnkKICAgICAgIEFub255bW91cy4KICAgCjIwMDItMDMtMjEgMDk6MjQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX2NvbmZpZyogLT4gbmV0c25tcF9jb25maWcgKGZvciBuZXcgZnVuY3Rpb25zIG9ubHkpCiAgIC0gZml4IGJ1ZyB3aGVyZSBzbm1wX2NvbmZpZygpIHN0cmluZ3Mgd2VyZSBnZXR0aW5nIHBhcnNlZCB0d2ljZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB3cmFwIGFnZW50eCBzdHVmZiBpbiBhIHN0aWxsIHVudXNlZCB2YXJpYWJsZSAoYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGZpeCBvaWQgcGFyc2luZy4KICAgCjIwMDItMDMtMjEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi9hbGFybS5jICwgUm1vbi9zdGF0aXN0aWNzLmMgLAogICBtaWJJSS9hdC5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMSAwNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIwIDIwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgYSBsaXN0IG9mIHJlZ2lzdGVyZWQgdGV4dCBlbnVtcyB0byBBU05fKiB2YWx1ZXMuCiAgICAgKEluIHByb2JhYmx5IHRoZSB3cm9uZyBwbGFjZS4pCiAgIAoyMDAyLTAzLTIwIDIwOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmg6CgogICBjcmVhdGUgYSBuZXcgIm92ZXJyaWRlIiBkaXJlY3RpdmUgdG8gZm9yY2UgYW4gT0lEIHRvIGEgcGFydGljdWxhciB2YWx1ZQogICAtIG5vdCBmaW5pc2hlZC4gIEl0J3MgZGVzaWduZWQgdG8gZG8gcmVhZC13cml0ZSBhcyB3ZWxsLCBidXQgZG9lc24ndC4KICAgCjIwMDItMDMtMjAgMjA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNoZWNrIGZvciBpbmNsdXNpdmUKICAgCjIwMDItMDMtMjAgMTE6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgaW5jbHVkZSBuZXcgZGVsZXRlL3JlbW92ZSBicmVha2Rvd24gQVBJcwogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBUEkgY2hhbmdlLgogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBzb21lICJ0aGlzIHdpbGwgY2hhbmdlIiBlYXJseSByb3cgc3RhdHVzIGltcGxlbWVudGF0aW9uLgogICAgLSAodGhpcyB3aWxsIG1vdmUgdG8gYSBzZXBhcmF0ZSBoYW5kbGVyKQogICAKMjAwMi0wMy0yMCAxMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBwb2ludGVyIGNoZWNraW5nIGFnYWluc3QgaWxsZWdhbCBhZGRzIChpZSwgc2hvdWxkbid0IGhhcHBlbiBidXQgY2hlY2sgYW55d2F5KQogICAKMjAwMi0wMy0yMCAwODo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIE9rLCBJIG1ha2UgbWlzdGFrZXMuICBJIGFkbWl0IGl0LiAgSXQgcmVhbGx5IHNob3VsZCBoYXZlIGJlZW4gYSBOVUxMLgogICAKMjAwMi0wMy0yMCAwODozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTAzLTIwIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgc2VwYXJhdGUgb3V0IGRlbGV0ZS9yZW1vdmUgcm93IGZ1bmN0aW9uYWxpdHkKICAgCjIwMDItMDMtMjAgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIHN5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMjAgMDY6MjcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlICwgbG9jYWwvbWliMmM6CgogICAtIGFkZCBtYW55IG1hbnkgLVQgZmxhZ3MgZm9yIGRlZmluaW5nIHR5cGVzLgogICAKMjAwMi0wMy0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZvcmNlIHNldHRpbmcgb2YgJyFyb290JyBmbGFnIHNvIHRoYXQgaXQgd2lsbCBydW4gZm9yIG5vbi1wcml2aWxlZ2VkCiAgIHVzZXJzIG9yIHdoZW4gYW4gYWdlbnR4IG1hc3RlciBzaW1wbHkgaGFzIG5ldmVyIGV4aXN0ZWQuCiAgIAoyMDAyLTAzLTE5IDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBhbGxvdyB0YWJsZXMgdG8gYmUgbWFya2VkIHdoZXRoZXIgdGhleSBzaG91bGQgc3VwcG9ydCBjcmVhdGlvbiBvciBub3QuCiAgIC0gYnVnIGZpeGVzCiAgIAoyMDAyLTAzLTE5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jICwgdGFibGVfZGF0YXNldC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBoZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgaGVscGVycy9idWxrX3RvX25leHQuYyAsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgcGVybC9hZ2VudC9hZ2VudC54cyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIHJlbmFtZWQgYSBmZXcgYmFkbHkgbmFtZWQgZnVuY3Rpb25zIChuZXRzbm1wXyBhcHBlYXJlZCB0d2ljZSkuCiAgIC0gaW1wbGVtZW50ZWQgdGhlIGJlZ2lubmluZyBvZiBjcmVhdGlvbiBzdXBwb3J0IGZvciBkYXRhc2V0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFwcGFyZW50bHkgSSByYW4gYXV0b2NvbmYgZWFybGllciBhbmQgbWlzc2VkIGNoZWNraW5nIGluIHRoZSByZXN1bHRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBhZGQgLW5mY2EKICAgCjIwMDItMDMtMTcgMTY6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIFNldCBkZWZhdWx0IHBvcnQgdG8gMTYyLgogICAKMjAwMi0wMy0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYzoKCiAgIGltcHJvdmVkIGZvcm1hdHRpbmcgc3RyaW5ncyBzaG93aW5nIGJvdGggdHJhbnNwb3J0IHR5cGUgYW5kIHBvcnQgbnVtYmVyLgogICAKMjAwMi0wMy0xMyAyMzozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgbWlzc2luZyAiaW5zdGFsbHN1YmRpcnMiIHRhcmdldCBtaXNzaW5nICh0aGFua3MgdG8gS2F0c3VoaXNhIEFCRSkKICAgCjIwMDItMDMtMTMgMjM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNyZWF0ZS1zbm1wdjMtdXNlciB0byBhdXRvbWF0ZSBhZGRpbmcgYSB2MyB1c2VyIHRvIGJvdGggdGhlIHVzbQogICBhbmQgdmFjbSB0YWJsZXMgKGJ5IGFkZGluZyBsaW5lcyB0byBib3RoIHRoZSBwZXJzaXN0ZW50IGFuZCBub3JtYWwKICAgY29uZiBmaWxlcykuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBidWcgZml4IGZvciBwcmUtcHJvY2Vzc2VkIHJlcXVlc3RzLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCAsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaAogICAsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oICwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliX21vZHVsZV9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCAsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oICwgaW5jbHVkZS91Y2Qtc25tcC92YXJfc3RydWN0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKCiAgIC0gLS1lbmFibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBhY3R1YWxseSBpbnN0YWxscyBoZWFkZXJzIChhcyBvcHBvc2VkCiAgICAgdG8gYWx3YXlzLCB3aGljaCBpcyB3aGF0IGl0IHVzZWQgdG8gZG8pLgogICAtIGFkZCBhZ2VudF9taWJzIHRvIGNvbmZpZ3VyZSBkZWZhdWx0IG1pYiBtb2R1bGVzIGFuZCBkb2N1bWVudC4KICAgLSBjaGFuZ2UgaGVscCBkb2N1bWVudGF0aW9uIGEgYml0IGZvciB0aGUgbWliIG1vZHVsZXMuCiAgIC0gYWRkIGEgZm9yY2VkIGRlcGVuZGVuY3kgZm9yIG1pYl9tb2R1bGVzLmxvCiAgIAoyMDAyLTAzLTEzIDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oOgoKICAgb3Bwcy4gIGR1cGxpY2F0ZXMgZXhpc3RpbmcgYWdlbnRfbWlicy5oCiAgIAoyMDAyLTAzLTEzIDE1OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQKICAgKFY0LTItcGF0Y2hlcy5bMSwxLDEsMSwxLDldKSwgVUNELURFTU8tTUlCLnR4dCAsCiAgIFVDRC1ESVNLSU8tTUlCLnR4dCAsIFVDRC1ETE1PRC1NSUIudHh0ICwKICAgVUNELUlQRklMVEVSLU1JQi50eHQgLCBVQ0QtSVBGV0FDQy1NSUIudHh0ICwKICAgVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZHJlc3MgY2hhbmdlcyBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgbm90ZSBzYXlpbmcgdGhlc2UgbWlicyBhcmUgbm8KICAgbG9uZ2VyIHN1cHBvcnRlZCBieSBVQ0QuCiAgIAoyMDAyLTAzLTEzIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQWRkZWQgYSBuc01vZHVsZVRhYmxlIHRhYmxlIHdoaWNoIHJlcGxhY2VzIHRoZSBvbGRlciBtclRhYmxlLgogICBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIGl0ZW1zIHdpdGhpbiB0aGUgTUlCCiAgIHRyZWUganVzdCBsaWtlIHRoZSBtclRhYmxlIHdhcywgYnV0IHdpdGggc3VwcG9ydCBmb3IgY29udGV4dHMgYW5kIGZvcgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9ucyB3aXRoIGRpZmZlcmVudCBwcmlvcml0aWVzLgogICAKMjAwMi0wMy0xMyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHRvb2xzLmMgKFY0LTItcGF0Y2hlcy40KSwgdG9vbHMuYzoKCiAgIG1hbGxvYyBhdCBsZWFzdCBvbmUgYnl0ZSBpbiBoZXhfdG9fYmluYXJ5MgogICAKMjAwMi0wMy0xMyAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGRlYnVnIHN0YXRlbWVudAogICAKMjAwMi0wMy0xMyAxNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBsb2NhbCB2YXJpYWJsZSBuYW1lIGJ1ZmZlcnMgYnkgZGVmYXVsdCB3aGVuIGJ1aWxkaW5nIG9pZCBzZWdtZW50cy4KICAgCjIwMDItMDMtMTMgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC8qIHN0b3Agd2F0ZXIgZnJvbSBmbG93aW5nIHRocm91Z2ggZGFtICovCiAgIGZpbmdlci0+aW5zZXJ0KCJob2xlIikKICAgCjIwMDItMDMtMTMgMDQ6MDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBBZGQgYSBkZXNjcmlwdGlvbiBvZiAidW5saW5rZWQgT0lEcyIuCiAgIAoyMDAyLTAzLTEyIDIxOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBtaWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaXggaGVhZGVycy4KICAgCjIwMDItMDMtMTIgMjE6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGRvbid0IGZvcm1hdCBjb21tZW50cyBvcHRpb24KICAgCjIwMDItMDMtMTIgMjE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGZvciB0YWJsZXMgd2l0aCBob2xlcy4KICAgCjIwMDItMDMtMTIgMjE6MDkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBtb3ZlIGRlZmF1bHQgbWlicyB0byB0aGVpciBvd24gdmFyaWFibGUuCiAgIAoyMDAyLTAzLTEyIDIxOjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9NYWtlZmlsZS5QTCAsIGFnZW50L01ha2VmaWxlLlBMICwKICAgYWdlbnQvYWdlbnQueHMgLCBhZ2VudC90eXBlbWFwOgoKICAgLSB1c2UgbmV0LXNubXAtY29uZmlnIHRvIGZpZ3VyZSB0aGluZ3Mgb3V0LgogICAtIHVwZGF0ZSBoZWFkZXJzIGFuZCB0eXBlaW5mbyBmb3IgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IEZBUTJIVE1MICwgUkVBRE1FLm1pYjJjICwgbWliMmMgLCB0a21pYgogICAsIG1pYjJjLmFycmF5LWF1dG8uY29uZiAsIG1pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICByZW1vdmUgb2Jzb2xldGUgbWliMmMuY29uZiBmaWxlCiAgIAoyMDAyLTAzLTEyIDE4OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvbid0IGZvcmdldCB0byBzZXQgcm93LT5uZXh0LT5wcmV2IHRvIHNvbWV0aGluZyB3aGVuIHJlbW92aW5nIHJvdy4KICAgCjIwMDItMDMtMTIgMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBhZ2VudHggaW5jbHVzaXZlIHNlYXJjaGVzIHRvIGlnbm9yZSBnZXQgZXJyb3JzLgogICAKMjAwMi0wMy0xMiAxNzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHNvbWUgbWluaW1hbCBkdW1wIGRlYnVnZ2luZy4KICAgCjIwMDItMDMtMTIgMDg6MzQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDE4OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBjYXN0IC0xIHRvIHVfY2hhciBzbyB0ZXN0IGRvZXNuJ3QgYWx3YXlzIGZhaWwgKGZpeCBjb21waWxlciB3YXJuaW5nKQogICAKMjAwMi0wMy0xMSAxNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdHJlYXQgKGlsbGVnYWwpIGVycm9ycyBmcm9tIHN1YmFnZW50cyBzcGVjaWFsbHkgZm9yIGdldG5leHQgY2FzZXMuCiAgIAoyMDAyLTAzLTExIDEzOjQxICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgb3VyIHNubXAgbGlicmFyaWVzIHRvIG91dHB1dAogICAKMjAwMi0wMy0xMSAxMDozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IHRhYmxlX2RhdGEuaCAsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGRlbGV0ZS9yZW1vdmUgc3VwcG9ydCBoZWFkZXIgY2hhbmdlcy4KICAgCjIwMDItMDMtMTEgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYWxsb3cgY29tcGlsYXRpb24gLS13aXRoLW91dC10cmFuc3BvcnRzPVRDUAogICAKMjAwMi0wMy0xMSAwODoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGZpeGVzIGZvciAtLWRpc2FibGUtZGVidWdnaW5nCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgQnJpbmcgdGhlIDR4LSBhbmQgbWFpbi1icmFuY2ggRkFRcyBpbnRvIGFncmVlbWVudC4KICAgCjIwMDItMDMtMTEgMDY6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBjb3JyZWN0IHNlc3Npb24gSUQgd2hlbiB0YWxraW5nIHRvIHN1YmFnZW50cy4gIFRoYW5rcyB0byBDcmFpZwogICAgICAgU2V0ZXJhIGZvciB0aGlzIGZpeC4KICAgCjIwMDItMDMtMTEgMDU6MjAgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBiYWQgdHlwZSBhc3NpZ25tZW50IGluIGJ1aWxkX3RyYW5zbGF0aW9uX3RhYmxlKCksIG5vdGljZWQgYnkKICAgICAgIFBldGVyIFN0ZXZlbnMuCiAgIAoyMDAyLTAzLTExIDAwOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgZnJlZXMsIGV2ZW4gdGhvdWdoIGl0J3Mgc3VwcG9zZWQgdG8gYmUgb2sgYWNjb3JkaW5nIHRvIGFuc2kuCiAgIAoyMDAyLTAzLTExIDAwOjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGJlZ2lubmluZyBzdXBwb3J0IGZvciBtYXhpbXVtIGxvZ2dlZCBjaGVja2luZy4KICAgCjIwMDItMDMtMTEgMDA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAtIG51bGwgY2hlY2sKICAgLSBkb2MgY29tbWVudHMuCiAgIAoyMDAyLTAzLTExIDAwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIAoyMDAyLTAzLTExIDAwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5leHQgaGFuZGxlcnMgKG9wcHMpLgogICAKMjAwMi0wMy0xMCAxNDoxMSAgbmJhCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgRml4IG9uZSBzcHJpbnRfdmFyaWFibGUgPT4gc25wcmludF92YXJpYWJsZQogICAKMjAwMi0wMy0xMCAxNDowNiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICBBZGQgc25wcmludF8qIGZ1bmN0aW9ucyB0aGF0IHdlcmUgc3ByaW50XyogaW4gdWNkLXNubXAgNAogICAKMjAwMi0wMy0xMCAxNDowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHdoZW4gSVBYLXRyYW5zcG9ydCBlbmFibGVkCiAgIAoyMDAyLTAzLTEwIDE0OjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBjb21waWxhdGlvbiBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDMtMDggMjI6MjYgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHBlcmwvU05NUC9TTk1QLnBtICwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMiApCiAgIAoyMDAyLTAzLTA4IDE4OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtaXNjIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTA4IDE4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0wOCAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQgdG8gZGVhbCB3aXRoIFNlbmRtYWlsIDguMTIgcXVldWVncm91cHMuCiAgIAoyMDAyLTAzLTA4IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBjc2V0ZSB0byBmaXggd2luMzIgYnVpbGRzCiAgIAoyMDAyLTAzLTA4IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBhZGQgQ2FsbGJhY2sgdHJhbnNwb3J0IHRvIGN5Z3dpbgogICAKMjAwMi0wMy0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gcm1vbiBzdXBwb3J0LgogICAKMjAwMi0wMy0wOCAxNjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byByZW1vdmUgb2xkIGFuIHVudXNlZCBwb2ludGVyCiAgIAoyMDAyLTAzLTA4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmggLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAogICAsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwgYXBwcy9zbm1wYnVsa2dldC5jICwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYyAsIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jCiAgICwgYXBwcy9zbm1wZ2V0LmMgLCBhcHBzL3NubXBnZXRuZXh0LmMgLAogICBhcHBzL3NubXBzZXQuYyAsIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYwogICAsIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB2YWNtLmMKICAgLCBhcHBzL3NubXB3YWxrLmMgLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmggLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiAsCiAgIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZiAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9jbXVfY29tcGF0LmMgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBzdHJ1Y3Qgc25tcF9zZXNzaW9uIHR5cGVkZWZlZCB0byBuZXRzbm1wX3Nlc3Npb24uICAmIHBkdS4gJiAuLi4KICAgCjIwMDItMDMtMDggMTQ6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0X3N5bWJvbCAtPiBnZXRfdHJlZQogICAKMjAwMi0wMy0wOCAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cyAsIGFnZW50L2FnZW50LnBtICwgYWdlbnQvYWdlbnQueHMKICAgLCBhZ2VudC90ZXN0LnBsOgoKICAgbWlzc2VkIHVwZGF0ZXMKICAgCjIwMDItMDMtMDggMDc6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYyAsIGRlZmF1bHRfc3RvcmUuYyAsIG1pYi5jCiAgICwgb2lkX2FycmF5LmMgLCBvaWRfc3Rhc2guYyAsIHJlYWRfY29uZmlnLmMKICAgLCBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmMgLAogICBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLCBzbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wX2FwaS5jICwgc25tcF9kZWJ1Zy5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXB2My5jOgoKICAgbWlzc2luZyB1cGRhdGVkIGNvZGUKICAgCjIwMDItMDMtMDggMDI6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBzb21lIHNubXAgLT4gbmV0c25tcCBmaXhlcwogICAKMjAwMi0wMy0wNyAxMzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiAgICwgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgNCkKICAgCjIwMDItMDMtMDcgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDMpCiAgIAoyMDAyLTAzLTA3IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMikKICAgCjIwMDItMDMtMDcgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwgYWdlbnQvaGVscGVycy9udWxsLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwgYXBwcy9zbm1wc3RhdHVzLmMgLAogICBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAxKQogICAKMjAwMi0wMy0wNyAwNjoyMSAgamJwbgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6NDcgIGpicG4KCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICAgIC0gbWlub3IgdXBkYXRlcwogICAKMjAwMi0wMy0wNyAwNTozOSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6MDAgIGpicG4KCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgICAtIG1ha2UgcHJvdG90eXBlcyBtYXRjaCBoZWFkZXIKICAgCiAgICAgLSBtYWtlIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAzOjA3ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGZpeCB1cCBzbnByaW50XyBkZWNsYXJhdGlvbnMsIGZpeCBzbWFsbCB0eXBvLiAgUGF0Y2ggYnkgR3V5CiAgIEhhcnJpcy4KICAgCjIwMDItMDMtMDcgMDI6NDQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2Ygc3ByaW50X3JlYWxsb2NfYnlfdHlwZSwgYXMgbm90ZWQKICAgICAgIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUgLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSAsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmU6CgogICBuZXcgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAzLTA2IDE3OjEzICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGRvY3MKICAgCjIwMDItMDMtMDYgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmg6CgogICBleGFtcGxlcyBtb2R1bGUgd3JhcHBlciB0byBpbmNsdWRlIGFsbCAobmV3KSBleGFtcGxlcy4KICAgCjIwMDItMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGRvY3VtZW50IGJldHRlci4KICAgCjIwMDItMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIHNlYXJjaCBleGFtcGxlcyBmb3IgZG9jcy4KICAgCjIwMDItMDMtMDYgMTY6MjkgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIGV4YW1wbGUgTUlCIHRlbXBsYXRlIChhbmQgb25lIG5vZGUpCiAgIAoyMDAyLTAzLTA2IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLU1JQi50eHQ6CgogICBpbnN0YW50aWF0ZSBleGFtcGxlcwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc29tZSBOUyBtaWJzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHNjYWxhcl9pbnQuYyAsIHNjYWxhcl9pbnQuaDoKCiAgIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBTTk1QIGVuYWJsZWQgaW50IHJlZ2lzdGVyZWQgYXQgYSBzY2FsYXIuCiAgIAoyMDAyLTAzLTA2IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBtYW55IGNoYW5nZXMgZm9yIGluc3RhbmNlcy4gIFNwZWNpZmljaWNhbGx5OgogICAgIC0gYWxsb3cgZm9yIHN1YmhhbmRsZXJzLgogICAgIC0gcHJvdmlkZSBhbiBpbnQgd3JhcHBlci4KICAgICAtIHJldXNlIG1vcmUgY29kZS4KICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZW1vdmUgYSBibGFuayBsaW5lLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIEZpeCBtYXN0ZXIgYWdlbnQgZ2V0YnVsayBzdXBwb3J0LiAgdGhpcyBoYXMgdG8gYmUgaW5kZXBlbmRlbnRseSBvZiB0aGUKICAgbm9ybWFsIGJ1bGstPm5leHQgZml4ZXMgZHVlIHRvIGRlbGVnYXRpb24uICBMb25nIHN0b3J5LgogICAKMjAwMi0wMy0wNiAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIG1vdmUgYnVsa190b19uZXh0IGZpeGluZyBmdW5jdGlvbmFsaXR5IGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UuCiAgIAoyMDAyLTAzLTA2IDEwOjI2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gc3ByaW5rbGUgbWFnaWMgY29uc3QgZHVzdAogICAKMjAwMi0wMy0wNiAxMDoxOCAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBkb2N1bWVudCBjaGFuZ2VkIEFQSSwgaW5jb3Jwb3JhdGluZyBwYXRjaGVzIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDA5OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMmFnZW50eHNldGZhaWwgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZml4IHRlc3RzLgogICAKMjAwMi0wMy0wNiAwOToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIHJlLWVuYWJsZSBzZXR0aW5nIG9wdGluZCB0byAxIHRpbGwgRGF2ZSB0ZWxscyBtZSB3aGVyZSB0aGlzIGJyZWFrcy4KICAgCjIwMDItMDMtMDYgMDk6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUxc25tcHYyY3RyYXAgLCBUMDUyc25tcHYyY2luZm9ybSAsCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgZml4ZXMgZm9yIG5ldyBjb21tYW5kIGxpbmUgdXNhZ2UuCiAgIAoyMDAyLTAzLTA2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBtb3JlIGltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIChtb3N0bHkpCiAgIAoyMDAyLTAzLTA2IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBhdXRvY29uZgogICAKMjAwMi0wMy0wNiAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuMyksIHNubXB2My5jOgoKICAgRml4IGEgY29uZnVzaW9uIGJldHdlZW4gZGVmQXV0aFR5cGUgYW5kIGRlZlByaXZUeXBlLgogICAKMjAwMi0wMy0wNiAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBwcm90b2NvbC5jOgoKICAgcHJvcGVyIGZpeCBmb3Igbm90IHJlcXVpcmluZyByZXNwb25zZXMgdG8gQ0xFQU5VUCBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDYgMDY6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHplcm8gdGhlIG5hbWUgb2YgZWxlbWVudHMgb2YgdGhlIGJ1bGsgY2FjaGUKICAgCjIwMDItMDMtMDYgMDY6MDYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjYWxsb2MoKSBub3QgbWFsbG9jKCkgaW4gYSBmZXcgcGxhY2VzIHRvIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzCiAgICAgICB0byB6ZXJvZXMuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FwaS5jOgoKICAgQWN0dWFsbHkgdXNlIHRoZSBjb21tb24gJ2RlZlBhc3NwaHJhc2UnIHZhbHVlIGlmICdkZWZ7QXV0aCxQcml2fVBhc3NwaHJhc2UnIGlzbid0IHNldC4KICAgUW46IFNob3VsZCB0aGUgQXV0aFBhc3NwaHJhc2UgYWxzbyBiZSB1c2VkIGZvciBwcml2YWN5IGlmIG5vIG90aGVyIHZhbHVlIGlzIGF2YWlsYWJsZT8KICAgCjIwMDItMDMtMDYgMDU6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHNlbmQgcmVxdWVzdHMgZm9yIE9JRHMgcHJlY2VlZGluZyB0aGUgc3RhcnQgb2YgYSByZWdpb24KICAgICAgICh0aGlzIGNhbiBsZWFkIHRvIGxvb3BzIGlmIGUuZy4gYSBzdWJhZ2VudCBoYXMgcmVnaXN0ZXJlZCB0d28KICAgICAgIGFkamFjZW50IHJvd3MpLgogICAKMjAwMi0wMy0wNiAwNTowNyAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyB0ZXN0Y2xlYW4KICAgCjIwMDItMDMtMDYgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSB1c2UgbW9yZSBlZmZpY2llbnQgZ2V0X3RyZWUoKSBpbiBzcHJpbnRfcmVhbGxvY192YWx1ZSgpCiAgIAoyMDAyLTAzLTA1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNXNubXB2MmNnZXRuZXh0ICwgVDAwMXNubXB2MWdldCAsCiAgIFQwMDJzbm1wdjFnZXRuZXh0ICwgVDAwM3NubXB2MWdldGZhaWwgLCBUMDE0c25tcHYyY2dldAogICAsIFQwMTZzbm1wdjJjZ2V0ZmFpbCAsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwgLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsICwgVDEwMGFnZW50aHVwOgoKICAgZml4ZXMgZm9yIG5ldyBmb3JjZWQgLWMgZmxhZ3MKICAgCjIwMDItMDMtMDUgMTg6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBhcHByb3ByaWF0ZSBjb21tZW50LgogICAKMjAwMi0wMy0wNSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggZHVwbGljYXRlIGZyZWUgYnkgY2xvbmluZyB0aGUgcGR1IGJlZm9yZSBzZW5kaW5nIGl0IG91dCBhZ2FpbgogICAodGhvdWdodCBJIGhhZCBkb25lIHRoaXMgb25jZSBpbiB0aGUgcGFzdCBhbHJlYWR5LCBidXQgSSBnb3QgMS8yIGZ1bmN0aW9ucykuCiAgIAoyMDAyLTAzLTA1IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRlbXBvcmFyeSBmaXggdG8gZml4IGZvciBhZ2VudHggU0VUIHJlcXVlc3RzLiAgVGhpcyByZXZlcnNlcyBhCiAgIHByZXZpb3VzIEpvaG4gY2hhbmdlIHdoZXJlIHJlc3BvbnNlcyB0byBjbGVhbnVwcyBhcmUgbm93IGV4cGVjdGVkCiAgIGFnYWluLiAgVGhpcyB0b29rIG1lIGEgZ29vZCAyIGRheXMgdG8gdHJhY2sgZG93biwgc2lnaC4uLgogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBhZGQgKGFzY2lpKSBhZ2VudHggc3RhdGUgZGlhZ3JhbQogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBtdWx0aXBsZSBmcmVlIGJ1ZyBmaXhlcy4KICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDMtMDUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMgLCBtYXN0ZXJfcmVxdWVzdC5oOgoKICAgcmVtb3ZlZCB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDMtMDUgMTA6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gb29wcywgZml4IGJhZCBjdXQgYW5kIHBhc3RlCiAgIAoyMDAyLTAzLTA1IDEwOjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlaW50cm9kdWNlIHNjb3BlIHByb2Nlc3NpbmcgKHNlZSBSRkMgMjc0MSwgcC4gNjYsIHNlY3Rpb24gNy4yLjMuMgogICAgICAgcGFyYWdyYXBoIDIpOiAiSWYgdGhlIHN1YmFnZW50IGNhbid0IGxvY2F0ZSBhbiBhcHByb3ByaWF0ZQogICAgICAgdmFyaWFibGUsIF9fdi5uYW1lX2lzX3NldF90b190aGVfc3RhcnRpbmdfT0lEX18gW3RoZSBpbXBvcnRhbnQKICAgICAgIGJpdF0gYW5kIHRoZSBWYXJCaW5kIGlzIHNldCB0byBgZW5kT2ZNaWJWaWV3JyIKICAgCjIwMDItMDMtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDg6NDggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgc25tcF9hZ2VudC5jICwKICAgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIG5ldyBERUJVR01TR1ZBUiBtYWNybyBpbiBhIGZldyBwbGFjZXMKICAgCjIwMDItMDMtMDUgMDg6NDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGFkZCBERUJVR01TR1ZBUiBtYWNybyB0byBwcmludCBvdXQgYSB2YXJpYWJsZQogICAKMjAwMi0wMy0wNSAwODozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBwcmludF92YWx1ZSBmdW5jdGlvbiB1cGRhdGVzLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB1Y2REZW1vUHVibGljLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwODowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZ3JyciwgYm90Y2hlZCBsYXN0IGZpeAogICAKMjAwMi0wMy0wNSAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IGNhbGxiYWNrIHNlc3Npb24gdmVyc2lvbiBudW1iZXIgdG8gdGhlIGdlbmVyaWMgLTEKICAgdmVyc2lvbiBhbGxvd2luZyB0aGUgcGR1IHRvIHBhc3NlZCB3aXRob3V0IHZlcnNpb24gY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtb3ZlIE5VTEwgY2hlY2sgdG8gKmJlZm9yZSogeW91IGFjdHVhbGx5IHVzZSB0aGUgcG9pbnRlci4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIG1hcmsgSU5DTFVTSVZFIHJlcXVlc3RzIGFzIHN1Y2gKICAgCjIwMDItMDMtMDUgMDc6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSB1c2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgd2hpbGUgbG9vcCwganVzdCBhIHByZWNhdXRpb24gZm9yIGZ1dHVyZSBwcm9ibGVtcy4KICAgCjIwMDItMDMtMDUgMDc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfY2hlY2tfcGFyc2UpIGFsbG93IGludGVybmFsIHNldCB0cmFuc2FjdGlvbnMgdG8gYmUgcGFzc2VkIHRvCiAgICAgdGhlIGFnZW50LCBzaW5jZSBhZ2VudHggc2VuZHMgdGhlbS4KICAgCjIwMDItMDMtMDUgMDc6MjEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBkb24ndCBhZGQgdGhlICJtb2R1bGUgSUQiIHRvIE9JRHMgaWYgaXQgaXMgbnVtZXJpYyBiZWNhdXNlIHdlCiAgICAgICBjb3VsZG4ndCBsb29rIGl0IHVwIHByb3Blcmx5ICh0byBhdm9pZCBob3JyaWJsZSBsb29raW5nIG91dHB1dAogICAgICAgbGlrZSB0aGlzOiAiT0lEOiAjLTE6Omlzby4yLjMuNC41LiIpCiAgIAoyMDAyLTAzLTA1IDA3OjA1ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIDJjIGluIGVycm9yIG1lc3NhZ2UgZnJvbSB2ZXJzaW9uIHByb21wdAogICAKMjAwMi0wMy0wNSAwNzowMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB0ZXN0cwogICAKMjAwMi0wMy0wNSAwNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgLSByZS1lbXBoYXNpcyBhIHN1Z2dlc3Rpb24gdG8gc3dpdGNoIHRvIGEgc2VjdXJlIHZlcnNpb24gb2YgdGhlIHByb3RvY29sLgogICAtIGRlbGV0ZSBub3Rpb24gdGhhdCB2MyB3aXRob3V0IGF1dGgvcHJpdiBwcm92aWRlcyBiZXR0ZXIgc2VjdXJpdHkgKGl0IGRvZXNuJ3QpLgogICAtIERvbid0IGFjY2VwdCB2MmMgYXMgYW4gYWNjZXB0ZWQgdmFsdWUsIGFzIGl0J3MgdXNlZCBhcyBhbiBpbnQuCiAgICAgLSBidXQgZG8gY2hhbmdlIGhlbHAgbWVzc2FnZXMsIGV0YywgdG8gcmVmbGVjdCB0aGF0IDIgPSB2MmMuCiAgIAoyMDAyLTAzLTA1IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgQ2FzdCBhIGNhbGxvYyBhcHByb3ByaWF0ZWx5IChyZXF1ZXN0ZWQgYnkgR3JlZ29yeSBUb3RoKQogICAKMjAwMi0wMy0wNSAwNjoyMCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvIGluIE9CSlMgZGVmaW5pdGlvbgogICAKMjAwMi0wMy0wNSAwNjoxOCAgamJwbgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgICAgLSBjbGVhbiB0YXJnZXQgZGVwZW5kcyBvbiAkKE9CSlMpIGFuZCAkKExPQkpTKSwgc28gZGVmaW5lIHRoZW0KICAgCjIwMDItMDMtMDUgMDM6NTIgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBkZWZhdWx0IHZlcnNpb24gdGVzdHMgKHNwbGl0dGluZyB0aGVtIG92ZXIgc2V2ZXJhbCBsaW5lcwogICAgICAgY29uZnVzZXMgc2ggb24gU29sYXJpcywgYXQgbGVhc3QpLgogICAKICAgICAtIGRpc2FtYmlndWF0ZSBzb21lIGluc3RhbmNlcyBvZiAidmVyc2lvbiIgaW4gZGVmYXVsdCB2ZXJzaW9uCiAgICAgICBwcm9tcHQgdGV4dC4KICAgCjIwMDItMDMtMDUgMDI6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENvcnJlY3RseSBkZXRlY3Qgd2hlbiBubyBpbml0aWFsIGRlZmF1bHQgdmVyc2lvbiBoYXMgYmVlbiBzZXQuCiAgIEFjY2VwdCAnMmMnIGFzIHdlbGwgYXMgJzInIGZvciBhIGRlZmF1bHQgdmVyc2lvbiBjaG9pY2UuCiAgIEZpeCB0aGUgdGl0bGUgZm9yIHRoaXMgcHJvbXB0LCBhbmQgcmV3b3JkIHRoZSBkZXNjcmlwdGlvbiB0bwogICBtYWtlIGl0IGEgKnNsaWdodGx5KiBsZXNzIGxlYWRpbmcgcXVlc3Rpb24sIG0nbHVkLgogICAKICAgUW46IFNob3VsZCB3ZSBzdXBwb3J0IGEgIm5vIGRlZmF1bHQgdmVyc2lvbiIgb3B0aW9uID8KICAgICAoaGVuY2UgYWxsb3cgdGhlIGFkbWluIHRvIGZvcmNlIHRoZSBkZWNpc2lvbiBkb3duIHRvIHRoZSB1c2VyKQogICAKMjAwMi0wMy0wNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlCiAgIAoyMDAyLTAzLTA0IDE4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAoVG8gSm9obik6IGRvIG5vdCBmcmVlIHRoZSBteXZvaWQgcG9pbnRlciBpbiBhIGhhbmRsZXIuICBZb3UgY2FuIG5vdAogICBhc3N1bWUgdGhhdCBpdCdzIGEgZnJlZWFibGUgcmVzb3VyY2UuICBGb3IgaW5zdGFuY2UsIHRoZSBhZ2VudHggbWFzdGVyCiAgIGFnZW50IHdhcyB1c2luZyBpdCB0byBzdG9yZSB0aGUgbWFzdGVyIHNlc3Npb24gcG9pbnRlciBpbiBpdCAod2hpY2gKICAgd291bGQgZXhpc3QgaW4gbXVsdGlwbGUgcmVnaXN0ZXJlZCBub2RlcykuCiAgIAoyMDAyLTAzLTA0IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4gLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB1c2UgYSBjb25maWd1cmUgZ2VuZXJhdGVkIHdyYXBwZXIgaGVhZGVyIGZvciB2MyBzZWN1cml0eSBtb2R1bGVzLgogICAKMjAwMi0wMy0wNCAxMTo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgYWRkIGRtYWxsb2MuaCB0byB0aGUgcHJvcGVyIHBsYWNlLgogICAKMjAwMi0wMy0wNCAxMTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgc3RyaW5nIGNsZWFuIHVwcy4KICAgCjIwMDItMDMtMDQgMTE6NTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBhY2xvY2FsLm00ICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEltcGxlbWVudCBhIGRlZmF1bHQgdmVyc2lvbiBwcm9tcHQgZm9yIGNvbmZpZ3VyZS4KICAgIC0gKFdlcyBkdWNrcyBhcyB0aGlzIGlzIGN1cnJlbnRseSBzZXQgdG8gJzMnIHdoaWNoIGhlIG1heSBoYXZlIHRvCiAgICAgICBjaGFuZ2UgYXMgaXQgaGFzbid0IGV4YWN0bHkgYmVlbiBhZ3JlZWQgdXBvbiBhcyB0aGUgcHJvcGVyIGRlZmF1bHQgeWV0KS4KICAgIC0gLS13aXRoLWRlZmF1bHQtc25tcC12ZXJzaW9uIGFsc28gY3JlYXRlZC4KICAgIC0gY2hhbmdlZCBoYW5kbGluZyBvZiBkZWZhdWx0IHN0b3JlIC8gc25tcC5jb25mIHVzYWdlIGJ1dCBpbXBhY3QKICAgICAgc2hvdWxkIGJlIGxvdywgaG9wZWZ1bGx5LgogICAKMjAwMi0wMy0wNCAxMTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYSBmZXcgZXJyb3Igc3RyaW5ncyBzbGlnaHRseSBpbXByb3ZlZC4gIFdlIHJlYWxseSBuZWVkIHRvIGNoYW5nZSB0aGUKICAgd2F5IHRoZXNlIGFyZSBoYW5kbGVkIHRvIGdldCBiZXR0ZXIgaW1wcm92ZW1lbnQuCiAgIAoyMDAyLTAzLTA0IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgc2VwYXJhdGUgb3V0IHRoZSBjbGVhbmluZyBvZiAvdG1wIGZyb20gdGhlIG1haW4gY2xlYW5pbmcgdG8gcHJvdmlkZSBpdAogICBhcyBhIHNwZWNpYWwgdGFyZ2V0LgogICAKMjAwMi0wMy0wNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtV2FsbCBmaXhlcy4KICAgCjIwMDItMDMtMDQgMDU6MzIgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYgLCBzbm1wYnVsa3dhbGsuMS5kZWYgLAogICBzbm1wZ2V0LjEuZGVmICwgc25tcGdldG5leHQuMS5kZWYgLCBzbm1wc3RhdHVzLjEuZGVmCiAgICwgc25tcHRlc3QuMS5kZWYgLCBzbm1wdHJhcC4xLmRlZjoKCiAgICAgLSByZW1vdmUgZnVydGhlciBpbnN0YW5jZXMgb2YgcG9zaXRpb25hbCBjb21tdW5pdHkgc3RyaW5nIHBhcmFtZXRlciwKICAgICAgIGFmdGVyIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDA1OjI1ICBqYnBuCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgLCBzbm1wd2Fsay4xLmRlZjoKCiAgICAgLSBwYXRjaGVzIGZyb20gUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy42KSwgbWVtb3J5LmM6CgogICBDb3JyZWN0IGRlYnVnIG91dHB1dCBtZXNzYWdlICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAzLTAxIDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIG1ha2luZyB0aGUgKHNhbWUpIGRlYnVnZ2luZyBzdGF0ZW1lbnQgbW9yZSB1c2VmdWwuCiAgIAoyMDAyLTAzLTAxIDIyOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgdG8gYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgogICAKMjAwMi0wMy0wMSAxMjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMgLCBtaWIuYyAsIHNubXBfYXBpLmMgLAogICBzbm1wX2NsaWVudC5jICwgc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYSBmZXcgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wMSAxMjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IGluc3RhbGwgaGVhZGVycyBoZXJlLgogICAKMjAwMi0wMy0wMSAwNTo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGFkZCBzbnByaW50X3ZhbHVlLCBzbnByaW50X3ZhcmlhYmxlLCBzbnByaW50X29iamlkCiAgIAoyMDAyLTAyLTI4IDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMgLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwICwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBBZGQgYmFjayB0aGUgJ3NubXBDYWxsYmFjaycgZG9tYWluIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI3IDEwOjA0ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jICwgc25tcGJ1bGt3YWxrLmMgLCBzbm1wZ2V0LmMKICAgLCBzbm1wZ2V0bmV4dC5jICwgc25tcHNldC5jICwgc25tcHN0YXR1cy5jCiAgICwgc25tcHRhYmxlLmMgLCBzbm1wdGVzdC5jICwgc25tcHRyYW5zbGF0ZS5jCiAgICwgc25tcHRyYXAuYyAsIHNubXB1c20uYyAsIHNubXB3YWxrLmM6CgogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcywgbWFrZSB0aGVtIG1vcmUgY29uc2lzdGVudCBhbmQgYnJpbmcgaW4gbGluZQogICAgICAgd2l0aCBtYW51YWwgcGFnZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogbWFuLzogc25tcHNldC4xLmRlZiAsIHNubXB0YWJsZS4xLmRlZiAsIHNubXB0cmFwLjEuZGVmCiAgICwgc25tcHVzbS4xLmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGNoYW5nZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgcGFyc2UuYyAsIHNubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcyB0byBiZSBtb3JlIGNvbnNpc3RlbnQgYW5kIGluIGxpbmUgd2l0aCBtYW51YWwKICAgICAgIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogdmFjbS5jIChWNC0yLXBhdGNoZXMuNCksIHZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjcgMDY6NTAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBbQUREUkVTU0VTXSAtPiBbTElTVEVOSU5HIEFERFJFU1NFU10gaW4gdXNhZ2UgbWVzc2FnZSwgdG8gbWF0Y2gKICAgICAgIG1hbnVhbCBwYWdlLgogICAKMjAwMi0wMi0yNyAwNjowOSAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkcm9wIG9wdGlvbmFsIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBmcm9tIHRyYXBzZXNzCiAgICAgICBkZXNjcmlwdGlvbi4KICAgCjIwMDItMDItMjcgMDU6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBkcm9wIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIG5vIHNucHJpbnRfYmxhaCB5ZXQKICAgCjIwMDItMDItMjcgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMgLCBocl9zd3J1bi5jOgoKICAgVXNlIHRoZSBtb3JlIGluZm9ybWF0aXZlICdvdXRwdXRfYXBpLmgnIGhlYWRlciBmaWxlIG5hbWUKICAgICAoSSBtdXN0IGhhdmUgbWlzc2VkIHRoZXNlIGVhcmxpZXIpCiAgIAoyMDAyLTAyLTI3IDA1OjM1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0geWVzLCBmb3Igb25jZSB0aGUgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiB1cGRhdGVkICpiZWZvcmUqIHRoZQogICBjb2RlIQogICAKMjAwMi0wMi0yNyAwNToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNToxMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wX2FwaS5oICwgc25tcF9kZWJ1Zy5oICwKICAgc3lzdGVtLmg6CgogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MTAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmg6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUEwgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDQ6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYyAsIGFwcHMvc25tcGRlbHRhLmMgLAogICBhcHBzL3NubXB0YWJsZS5jICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB3YWxrLmMKICAgLCBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDI6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjcgMDI6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUsIG5vLCBJIE1FQU4gaXQgdGhpcyB0aW1lCiAgIAoyMDAyLTAyLTI3IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2xlYXIgbmV3IG1lbW9yeSBhZnRlciByZWFsbG9jKCkgc2luY2UgcmVhbGxvYyBkb2Vzbid0IGRvIGl0LgogICAKMjAwMi0wMi0yNiAxMjozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgVU5TSUdORUQzMgogICAKMjAwMi0wMi0yNiAwODo1NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAsIGtlcm5lbF9zdW5vczUuaCAsCiAgIG1pYklJL2F0LmMgLCBtaWJJSS9pY21wLmMgLCBtaWJJSS9pbnRlcmZhY2VzLmMgLAogICBtaWJJSS9pcC5jICwgbWliSUkvdGNwLmMgLCBtaWJJSS91ZHAuYyAsCiAgIG1pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIGNoYW5nZSBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhZnRlciBzb21lIGludGVyZXN0aW5nIHByb2ZpbGluZyAoc2VlCiAgICAgICBsZW5ndGh5IG5ldyBjb21tZW50IGluIGtlcm5lbF9zdW5vczUuYykKICAgCjIwMDItMDItMjYgMDg6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgc25tcGxpYi9zbm1wLXRjLmMgLAogICBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIFJlbW92ZSBhc3NvcnRlZCBleHRyYW5lb3VzIF5NJ3MKICAgCjIwMDItMDItMjYgMDc6MTQgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEEgcXVpY2sgZ3VpZGUgdG8gaW5zdGFsbGluZyB0aGUgQ29yZSBQbGF0Zm9ybSBTREssIG5lZWRlZCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI2IDA3OjAzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wdjMuYyAsCiAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQXNzb3J0ZWQgbWlub3IgdHdlYWtzIHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICBNb3N0bHkgYmVjYXVzZSBWQysrIGlzIGZ1c3N5IGFib3V0IHNvcnQtb2YtY29tcGF0aWJsZSBkYXRhIHR5cGVzCiAgICAgKGUuZy4gc2lnbmVkIHZzIHVuc2lnbmVkIGludGVnZXJzKS4KICAgCjIwMDItMDItMjYgMDc6MDAgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIuZHN3ICwgd2luMzIub3B0CiAgICwgbGliYWdlbnQvbGliYWdlbnQuZHNwICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AgLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AgLAogICBzbm1wZC9zbm1wZC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIFJlbmFtZSAnbGlidWNkbWlicycgdG8gcmVmbGVjdCB0aGUgY2hhbmdlIG9mIHByb2plY3QgbmFtZSwKICAgYW5kIGFzc29ydGVkIHR3ZWFrcyBzbyB0aGF0IHRoZSBmdWxsIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgICAgKE4uQjogVGhlIGFnZW50IHJlcXVpcmVzICJNaWNyb3NvZnQgUGxhdGZvcm0gQ29yZSBTREsiIGluIG9yZGVyCiAgICAgICB0byBidWlsZCB0aGUgJ25ldHNubXBtaWJzJyBwcm9qZWN0KQogICAKMjAwMi0wMi0yNiAwNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdmFyaWFibGUgaW4gYSB3YXJuaW5nCiAgIAoyMDAyLTAyLTI2IDA2OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDItMjUgMjE6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtb3JlIGluc3RhbGwgY2hhbmdlcwogICAKMjAwMi0wMi0yNSAyMTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaW5zdGFsbGluZyBEQkQ6OkZpbGUuCiAgIAoyMDAyLTAyLTI1IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgb25lIHRvbyBtYW55ICcwJ3MgaW4gYSB1cmwuCiAgIAoyMDAyLTAyLTI1IDIwOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgcmV3b3JkLgogICAKMjAwMi0wMi0yNSAyMDozMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIG1vdmUgd2FybmluZyBvdXRzaWRlIHNlY29uZGFyeSB3YXJuaW5nIGF1Z21lbnRhdGlvbiBsb29wLgogICAKMjAwMi0wMi0yNSAyMDoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTAyLTI1IDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIGZpbmRfdGFibGVfYXJyYXlfaGFuZGxlcigpOyByZW1vdmUgZGVidWdnaW5nIGNvZGUvY29tbWVudHM7CiAgIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBoYW5kbGVyIGJlZm9yZSB1c2luZyB0aGUgdm9pZCBwb2ludGVyOwogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMi0yNSAxMTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYyAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIDIgbmV3IGZ1bmN0aW9ucy4KICAgCjIwMDItMDItMjUgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc2V0IHNlY3VyaXR5IG1vZGVsCiAgIAoyMDAyLTAyLTI1IDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsIHdpbjMyL3dpbjMyLmRzdzoKCiAgIENvbnRpbnVpbmcgaW1wcm92ZW1lbnRzIHRvIGNvbXBpbGF0aW9uIG9mIHRoZSBsYXRlc3QgY29kZSB1bmRlciBWaXN1YWwgQysrLgogICBUaGUgJ2xpYmhlbHBlcnMnIHByb2plY3Qgbm93IGNvbXBpbGVzLCBhbmQgdGhpcyBhbHNvIGFkZHJlc3NlcyBhIG51bWJlcgogICBvZiB3YXJuaW5ncyBhbmQgZXJyb3JzIGluIHRoZSBsaWJhZ2VudCBhbmQgbGlidWNkbWlicyBwcm9qZWN0cy4KICAgICBCdXQgdGhlc2UgdHdvIHN0aWxsIGZhaWwgb24gJ09JRF9MRU5HVEgnIGFuZCAnaXBobHBhcGkuaCcKICAgCjIwMDItMDItMjUgMDc6MDAgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQcm92aWRlIGEgcGxhdXNpYmxlIG1vZHVsZSBjb25maWd1cmF0aW9uIGxpc3QgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNSAwNjowNCAgamJwbgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICAgIC0gcmVzb2x2ZSBjb25mbGljdGluZyBTWU5UQVhlcyBmb3IgbnNUcmFuc2FjdGlvbk1vZGUKICAgCiAgICAgLSBhZGQgcmFuZ2UgZm9yIGluZGV4IG5zVHJhbnNhY3Rpb25JRAogICAKMjAwMi0wMi0yNSAwMzoyMyAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgRW5zdXJlIHRoZSBtYWluIGxpYnJhcnkgY29tcGlsZXMgYW5kIHdvcmtzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjE5ICBkdHMxMgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5oICwgc25tcHRyYXBkLmM6CgogICBFbnN1cmUgc25tcHRyYXBkIGNvbXBpbGVzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMgLCBvaWRfc3Rhc2guYyAsIHNubXAtdGMuYyAsCiAgIHVjZF9jb21wYXQuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBrZWVwIFZpc3VhbCBDKysgaGFwcHkuCiAgIAoyMDAyLTAyLTI1IDAyOjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIFdyYXAgd2l0aCAiZXh0ZXJuIEMiCiAgIAoyMDAyLTAyLTI1IDAyOjU2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oOgoKICAgUGFuZGVyIHRvIENQUCdzIGluY3JlZGlibHkgZnVzc3kgbmF0dXJlLCBhbmQgcHJvdmlkZSB0aGUgY29ycmVjdCBoZWFkZXIgZmlsZSBuYW1lLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGRlYnVnIHRva2VuIGZvciBkaXNwbGF5aW5nIHRoZSBsaXN0IG9mIG1vZHVsZXMKICAgKHNwb3R0ZWQgYnkgQnJpYW4gU2hhdmVyKQogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IEBmb3JlYWNoICR2YXIxICR2YXIyIGVudW1zQAogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgcmVtb3ZlIHRyYWlsaW5nIDsncyBmcm9tIHNxbCBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMi0yMiAxMDo1NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggLCBzbm1wbGliL3Rvb2xzLmM6CgogICBkZWZpbmUgbmV0c25tcF9zdHJkdXBfYW5kX251bGwKICAgCjIwMDItMDItMjIgMTA6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgdXRpbGl0aWVzLgogICAKMjAwMi0wMi0yMiAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBkb24ndCBsb29wIGFnYWluIGZvciBzZWNvbmRhcnkgU0VUIG1vZGVzIGFuZCBjYWNoZSBpbmZvcm1hdGlvbiBpbnN0ZWFkLgogICAtIHZhcmlvdXMgZml4ZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGwgZGlyZWN0b3JpZXMgZm9yIGhlYWRlcnMKICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNvbXBpbGUtc3ViYWdlbnQgZm9yIGF1dG9tYXR0ZWQgc3ViYWdlbnQgY29tcGlsYXRpb24gZnJvbQogICBtaWJtb2R1bGUgLmMgZmlsZXMgOy0pCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jIChWNC0yLXBhdGNoZXMuWzEsMV0pLAogICBNU0cwMDAwMS5iaW4gLCB3aW5zZXJ2aWNlLm1jOgoKICAgQWRkIG1pc3NpbmcgZmlsZXMgZm9yIFdpbmRvd3Mgc2VydmljZSBvcGVyYXRpb24uCiAgIAoyMDAyLTAyLTIyIDA4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSnVzdCBjbG9zZSB0aGUgbWFpbiBzZXNzaW9uIHdoZW4gc2h1dHRpbmcgZG93biB1bmRlciBXaW5kb3dzLAogICBub3QgZXZlcnl0aGluZyAoc28gdGhhdCBpdCBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlIHNodXRkb3duIHRyYXApLgogICAKMjAwMi0wMi0yMiAwODo0MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcHYzLmM6CgogICBUd2Vha3MgcmVxdWlyZWQgdG8gZ2V0IHRoZSBsaWJyYXJ5IGNvbXBpbGluZyB1bmRlciBXaW5kb3dzIFZDKysKICAgCjIwMDItMDItMjIgMDg6MzcgIGR0czEyCgogICAqIHdpbjMyLzogc25tcHNtX2luaXQuaCAsCiAgIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AgLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsIGxpYmFnZW50L2xpYmFnZW50LmRzcCAsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AgLCBsaWJzbm1wL2xpYnNubXAuZHNwICwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcAogICAsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwICwgc25tcGQvc25tcGQuZHNwICwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLCBzbm1wZGYvc25tcGRmLmRzcCAsCiAgIHNubXBnZXQvc25tcGdldC5kc3AgLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AgLCBzbm1wc2V0L3NubXBzZXQuZHNwICwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCAsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwICwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwICwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAogICAsIHNubXB0cmFwL3NubXB0cmFwLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiAgICwgc25tcHVzbS9zbm1wdXNtLmRzcCAsIHNubXB2YWNtL3NubXB2YWNtLmRzcCAsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFByb3ZpZGUgV2luZG93cy1zcGVjaWZpYyB2ZXJzaW9ucyBvZiBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBoZWFkZXIgZmlsZXMsCiAgIGFuZCBhZGQgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZSB0byB0aGUgcHJvamVjdCBmaWxlcy4KICAgCjIwMDItMDItMjIgMDc6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRGVmaW5lIHN0YW5kYXJkIE9JRCBsZW5ndGhzIGhlcmUgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlIHRvIGFueQogICBmaWxlIHdhbnRpbmcgdG8gYWNjZXNzIHRoZSBPSUQgc3RydWN0dXJlcykKICAgCjIwMDItMDItMjIgMDM6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXB2My5jOgoKICAgU3VwcG9ydCAiLi4uLiAtM3Uge3NlY05hbWV9IC4uLi4iIHN5bnRheAogICAoaW4gdGhlIG5vcm1hbCBnZXRvcHQgc3R5bGUgLSBpLmUuIG5vIG5lZWQgZm9yIHN1cnJvdW5kaW5nIHF1b3RlcykKICAgCiAgIEl0IHNob3VsZCBub3cgYmUgcG9zc2libGUgdG8gc3dpdGNoIHRvIHRoaXMgYXMgdGhlIHJlY29tbWVuZGVkIGZvcm0KICAgZm9yIFNOTVB2MyBvcHRpb25zIC0gaWYgdGhhdCdzIHdoYXQgd2Ugd2FudCB0byBkby4KICAgICBRbjogIERvIHdlIHdhbnQgdG8/CiAgIAoyMDAyLTAyLTIxIDA4OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgU3VwcG9ydCAiLTN1IHtzZWNOYW1lfSIgc3ludGF4ICgqd2l0aCogdGhlIHF1b3RlcywgdW5mb3J0dW5hdGVseSkuCiAgIE5vdyBjb21lcyB0aGUgZnVuIGJpdC4uLi4uCiAgIAoyMDAyLTAyLTIxIDA3OjU0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDA3OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBkcm9wIGlubGluZSAobW9yZSB0cm91YmxlIHRoYW4gaXQgaXMgd29ydGgpCiAgIAoyMDAyLTAyLTIxIDA1OjAwICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYW4gU05NUHYzICJjb21iaW5lZC1vcHRpb24iIGNvbW1hbmQtbGluZSBmbGFnICgtM3gpLgogICAoSW4gKmFkZGl0aW9uKiB0byB0aGUgY3VycmVudCBjb21tYW5kLWxpbmUgZmxhZ3MsIEkgaGFzdGVuIHRvIGFkZCEpCiAgIAogICBTdXBwb3J0cyAgIi4uLiAtM3V7c2VjTmFtZX0gLi4uIiBhbmQgIi4uLiAtM3U9e3NlY05hbWV9IC4uLiIgc3ludGF4LAogICBidXQgbm90IHRoZSBzZXBhcmF0ZSAiLi4uIC0zdSB7c2VjTmFtZX0gLi4uIiBzdHlsZS4KICAgCiAgIEkgaGF2ZW4ndCB0b3VjaGVkIHRoZSBkb2N1bWVudGF0aW9uIG9yIHVzYWdlIG1lc3NhZ2UgdG8gbWVudGlvbiB0aGlzLgogICAKMjAwMi0wMi0yMCAxODoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgdXNlIGZvciBpbnN0ZWFkIG9mIGNvbnRpbnVlIGZvciBsb29wcy4KICAgCjIwMDItMDItMjAgMTM6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIEFkZCBhIC0tcXVpdCBvcHRpb24gKGFuZCBhIGNvbmZpZ3VyYXRpb24gdG9rZW4pIHNvIHRoYXQgeW91IGNhbiBub3cKICAgICBjcmVhdGUgbmV3IHVzZXJzIGJ5IHNpbXBseSBjYWxsaW5nIHNubXBkIGFzOgogICAgICAgc25tcGQgLS1jcmVhdGVVc2VyPSJteXVzZXIgTUQ1IG15cGFzc3dvcmQiIC0tcXVpdAogICAtIENoYW5nZSBSRUFETUUuc25tcHYzIGRvY3VtZW50YXRpb24gdG8gbWFrZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgogICAKMjAwMi0wMi0yMCAwNjoxNiAgamJwbgoKICAgKiBhcHBzL01ha2VmaWxlLmluICwgYXBwcy9zbm1wdHJhcGQuYyAsIGNvbmZpZ3VyZQogICAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IHRvIHNubXB0cmFwZCAodW50ZXN0ZWQpCiAgIAogICAgIC0gbWlub3IgY2hhbmdlcyB0byBzbm1wZCBsaWJ3cmFwIHN1cHBvcnQKICAgCiAgICAgLSBjb25maWd1cmUgZml4ZXMgZm9yIGxpYndyYXAKICAgCjIwMDItMDItMjAgMDM6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0yMCAwMzowNiAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0yMCAwMzowMyAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIHVwIHRoZSBvYmplY3QgZmlsZXMgYXMgd2VsbAogICAKMjAwMi0wMi0yMCAwMTo0MSAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgdGhlIG5ldyBjcm9wIG9mIGdlbmVyYXRlZCBtYW4gcGFnZXMuCiAgIAoyMDAyLTAyLTIwIDAxOjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBTdXBwbHkgbWlzc2luZyBkb3VibGUtcXVvdGUgIChvb3BzKQogICAKMjAwMi0wMi0xOSAwNDowMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBJbml0aWFsaXNlIHRoZSBsaWJyYXJ5IGludGVybmFscyAqYmVmb3JlKiBwYXJzaW5nIHRoZSBjb21tYW5kIGxpbmUsCiAgIHNvIHRoYXQgZGVmYXVsdHMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgUW46ICBTaG91bGQgJ19pbml0X3NubXAnIGJlIGludm9rZWQgYnkgJ3NubXBfcGFyc2VfYXJncycgaXRzZWxmPwogICAKMjAwMi0wMi0xOSAwMzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IG11bHRpcGxlIG91dHB1dCBmb3JtYXQgZmxhZ3Mgd29yayBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLgogICAoaS5lLiB0aGUgbGFzdCBvbmUgaXMgdXNlZCwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBpbnRlcm5hbCBvcmRlcmluZykuCiAgIAoyMDAyLTAyLTE4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMgLCB0ZXN0aGFuZGxlci5jOgoKICAgaW5jbHVkZSBzdGRsaWIuaAogICAKMjAwMi0wMi0xOCAyMTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggaW5jbHVkZXMKICAgCjIwMDItMDItMTggMjE6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIC0gbWFrZSBjYXBhYmlsaXR5IHRvIGNyZWF0ZSBkYXRhIGNvbnRleHRzIGZyb20gYSBsb29wIGNvbnRleHQgKGxlc3MKICAgICBtYWxsb2NzIHdoZW4gbWFsbG9jcyBhcmVuJ3Qgb3RoZXJ3aXNlIGF2b2lkYWJsZSkuCiAgIC0gZG9uJ3QgZG91YmxlIGZyZWUgdGhlIGRhdGEgY29udGV4dCBwb2ludGVyLgogICAKMjAwMi0wMi0xOCAyMTo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSBhbGwgYWdlbnQgaGVscGVycy4KICAgCjIwMDItMDItMTggMjE6NDkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaDoKCiAgIHByb3RlY3QgaW5jbHVkZSBmcm9tIGRvdWJsZSBpbmNsdWRlCiAgIAoyMDAyLTAyLTE4IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICBmaXggaW5jbHVkZSBwYXRocwogICAKMjAwMi0wMi0xOCAwMjozNSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHdlYWsgdGhlIGxpc3Qgb2YgaGVhZGVyIGZpbGVzIHRvIGJlIGluc3RhbGxlZCAodGhhbmtzIHRvIENocmlzdG9waCBNYW1taXR6c2NoKQogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAoVjQtMi1wYXRjaGVzLjcpLCBocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgdW5oZWxwZnVsIE9TRiBkZWZpbml0aW9ucyAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBkb24ndCBidWlsZCBvaWQncyB3aXRoID4xMjggbGVuZ3RoIHN1Ymlkcy4gIChzZWUgYnVnICM1MTg4NTUpCiAgIAoyMDAyLTAyLTE2IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTkVULVNOTVAtTUlCLnR4dCAsIE5FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCAsCiAgIE5FVC1TTk1QLVNZU1RFTS1NSUIudHh0ICwgTkVULVNOTVAtVEMudHh0OgoKICAgd2hpdGUgc3BhY2UgY2xlYW4gdXAuICAoQUdFTlQtTUlCIG5vdCBjaGVja2VkIGluIGR1ZSB0byBvdGhlcgogICBpbmNvbXBsZXRlIGNoYW5nZXMpLgogICAKMjAwMi0wMi0xNiAwMDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUyAsIGFnZW50L3NubXBkLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gZmluaXNoIGltcGxlbWVudGluZyBzbm1wX2NvbmZpZygibXkgY29uZmlnIGxpbmUiKQogICAgIC0gd2FzIGRvbmUgYmVmb3JlLCBidXQgcHJldmlvdXNseSBoYWQgdG8gYmUgY2FsbGVkIG9ubHkgYWZ0ZXIKICAgICAgIGNvbmZpZ3VyYXRpb24gZmlsZXMgaGFkIGJlZW4gcmVhZC4gIE5vdyBjYW4gYmUgY2FsbGVkIGF0IGFueSB0aW1lLgogICAtIG1ha2UgYWxsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhdmFpbGFibGUgYXMgLS1sb25nb3B0cyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICAtIC0tc29tZXRoaW5nPXZhbHVlIC0+ICJzb21ldGhpbmcgdmFsdWUiCiAgICAgLSAtLXNvbWV0aGluZyAgICAgICAtPiAic29tZXRoaW5nIDEiICh3b3JrcyBmb3Igc2V0dGluZyBib29sZWFucyB0byB0cnVlKQogICAKMjAwMi0wMi0xNiAwMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjIwMDItMDItMTYgMDA6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBycG0gZm9yIDQuMC4zIGFuZCBhYm92ZSAob3Igd2hlbmV2ZXIgaXQgd2FzIHRoYXQgd2Ugbm93IG5lZWQgbGlicnBtZGIpCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBpbnN0YWxsL2NsZWFuL2V0Yy4KICAgCjIwMDItMDItMTUgMjI6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXM6CgogICBpbnN0YWxsIGFsbCBzeXN0ZW0gYW5kIG1hY2hpbmUgZmlsZXMsIHNpbmNlIHRoZXkgaW5jbHVkZSBlYWNoIG90aGVyCiAgIAoyMDAyLTAyLTE1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCAsIG1pYnMvTkVULVNOTVAtTUlCLnR4dCAsCiAgIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0ICwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dAogICAsIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgU2tlbGV0b24gZnJhbWV3b3JrIGZvciB0aGUgTmV0LVNOTVAgZW50ZXJwcmlzZSB0cmVlLgogICAoaW5jb3Jwb3JhdGluZyB0aGUgaW5pdGlhbCAnbnNUcmFuc2FjdGlvblRhYmxlJywgYnV0IG5vdGhpbmcgZWxzZSBhcyB5ZXQpCiAgIAoyMDAyLTAyLTE1IDA5OjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgY29tbWFuZC1saW5lIG9wdGlvbnMuCiAgIAoyMDAyLTAyLTE1IDA3OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oICwgc25tcGxpYi93aW5zZXJ2aWNlLmMKICAgLCBhZ2VudC9zbm1wZC5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvd2luc2VydmljZS5yYyAsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRodSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE1IDA3OjI1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBTdG9rZSBXZXMnIHNlbnNlIG9mIHBhcmFub2lhIGJ5IGNvbmNlZGluZyB3aXRob3V0IGNvbW1lbnQuCiAgICAgICAoV2hhdCBtaWdodCBTaGllbGQgYmUgcGxvdHRpbmcgbm93Li4uLi4uKQogICAKMjAwMi0wMi0xNSAwNzoxOSAgamJwbgoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgICAgLSBmaXggdGlueSBmb3JtYXR0aW5nIGVycm9yCiAgIAoyMDAyLTAyLTE1IDA3OjE3ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBOT1RJRklDQVRJT04tTE9HLU1JQiAoc2luY2UgaXQncyBvbmUgb2YgdGhlIGRlZmF1bHQgbG9hZCBsaXN0ISkKICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5oOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLnJjOgoKICAgZmlsZSB3aW5zZXJ2aWNlLnJjIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjowOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgSW5jbHVkZSB0aGUgPHN5cy90aW1lLmg+IGNhc2NhZGUsIHRvIHBpY2sgdXAgdGhlIGRlZmluaXRpb24gb2YgJ3RpbWV2YWwnCiAgIAoyMDAyLTAyLTE1IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGJyaW5nIHVzYWdlIG1lc3NhZ2UgaW4gbGluZSB3aXRoIG1hbnBhZ2UKICAgCjIwMDItMDItMTUgMDM6MjkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDYXRjaCB1c2Ugb2YgdGhlIHRyYW5zcG9ydCBhbmQgcG9ydCBvcHRpb25zLCBhbmQgaXNzdWUgYW4gYXBwcm9wcmlhdGUKICAgZXJyb3IgbWVzc2FnZSwgZGVzY3JpYmluZyB1c2Ugb2YgdGhlIDxob3N0bmFtZT4gcGFyYW1ldGVyIGluc3RlYWQuCiAgIAoyMDAyLTAyLTE1IDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBzbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgKmJlZm9yZSogcHJvY2Vzc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywKICAgcmF0aGVyIHRoYW4gYWZ0ZXIuICBUaGF0J3MgcHJvYmFibHkgYSBiaXQgbW9yZSBmbGV4aWJsZTotKQogICAKMjAwMi0wMi0xNSAwMjozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCAsIGRlZmluaXRpb25zLmggLAogICBtaWJfYXBpLmggLCBvdXRwdXRfYXBpLmggLCBwZHVfYXBpLmggLCBzZXNzaW9uX2FwaS5oCiAgICwgc25tcHYzX2FwaS5oICwgdHlwZXMuaCAsIHV0aWxpdGllcy5oICwKICAgdmFyYmluZF9hcGkuaDoKCiAgIFJlbW92ZSAnbmV0LXNubXAtY29uZmlnLmgnIGZyb20gdGhlIG1haW4gQVBJIGhlYWRlciBmaWxlcy4KICAgVGhpcyB3aWxsIGhhdmUgdG8gYmUgI2luY2x1ZGVkIHNlcGFyYXRlbHkgKGVpdGhlciBleHBsaWNpdGx5CiAgIG9yIHZpYSB0aGUgYWxsLWluLW9uZSAnbmV0LXNubXAtaW5jbHVkZXMuaCcgaGVhZGVyKQogICAKMjAwMi0wMi0xNSAwMjozMSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFJFQURNRSB0byBkZXNjcmliZSB0aGUgc3RhdHVzIG9mIDxuZXQtc25tcC9saWJyYXJ5PiBhbmQgPG5ldC1zbm1wPiBoZWFkZXIgZmlsZXMuCiAgIAoyMDAyLTAyLTE1IDAyOjEzICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUge3N5c3RlbSxtYWNoaW5lfS8qLmggaGVhZGVyIGZpbGVzIGFzIHdlbGwuCiAgIAogICBEb2luZyB0aGlzIHZpYSB0aGUgJ21hbicgJiAnbWlicycgTWFrZWZpbGVzIGlzIGEgZ3Jvc3MgaGFjaywKICAgYW5kIHJlYWxseSBuZWVkcyB0byBiZSBoYW5kbGVkIG1vcmUgY2xlYW5seS4gIEJ1dCBpdCdzIHRoZQogICBiZXN0IEkgY2FuIGNvbWUgdXAgd2l0aCBhdCB0aGUgbW9tZW50LiAgU29ycnkgLSBEYXZlLgogICAKMjAwMi0wMi0xNSAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiAsIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgVUNELWNvbXBhdGFiaWxpdHkgaGVhZGVycyBhcyB3ZWxsLgogICAKMjAwMi0wMi0xNSAwMTo1NyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBPbmx5IGluc3RhbGwgc3ViZGlyZWN0b3J5IHN0dWZmICpvbmNlKi4gIChEb24ndCBiZSBzbyBlbnRodXNpYXN0aWMsIERhdmUhKQogICAKMjAwMi0wMi0xNSAwMTozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIFJlbW92ZSByZWR1bmRlbnQgJy1DTicgYW5kICctQ08nIG9wdGlvbnMgZnJvbSB0aGUgZXhhbXBsZSBzbm1wdXNtIGNvbW1hbmQuCiAgICAgKGFzIG1lbnRpb25lZCBieSBXZXMgb24gdGhlIHVzZXJzIG1haWxpbmcgbGlzdCAyMDAyLTAyLTEzKQogICAgIFFuOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBkb25lIG9uIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoIGFzIHdlbGw/CiAgIAoyMDAyLTAyLTE1IDAxOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oICwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmggLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIFJlc3RvcmUgJ3ZlcnNpb24uaCcgYXMgYmVpbmcgYSAidG9wLWxldmVsIiBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDItMTUgMDE6MTMgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBmdWxsIHNldCBvZiBsaWJyYXJ5IGhlYWRlciBmaWxlcywKICAgcmV0YWluaW5nIHRoZSB0b3AtbGV2ZWwgdnMgbGlicmFyeSBzdWJkaXJlY3Rvcnkgc3BsaXQuCiAgIAoyMDAyLTAyLTE1IDAxOjEwICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBMb29rIGZvciB0cmFuc3BvcnQtcmVsYXRlZCBoZWFkZXIgZmlsZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTE1IDAxOjA5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEVuc3VyZSBwYXJ0aWFsIGluc3RhbGwgdGFyZ2V0cyByZWN1cnNlIHByb3Blcmx5LgogICAKMjAwMi0wMi0xNCAwODoxOCAgZHRzMTIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTG9vayBmb3IgbWliX21vZHVsZV9jb25maWcuaCBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbgogICAKMjAwMi0wMi0xNCAwODowNiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IG1hbjggaW5zdGFsbCBkZWZpbml0aW9ucwogICAKMjAwMi0wMi0xNCAwNzo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBuZXQtc25tcC1jb25maWcuaW46CgogICBTdWJzdGl0dXRlIHZhbHVlcyBpbnRvICduZXQtc25tcC1jb25maWcnIHByb3Blcmx5LCBhbmQgZG9uJ3QgJ21ha2UgY2xlYW4nIGl0IGF3YXkuCiAgIAoyMDAyLTAyLTE0IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMKICAgCjIwMDItMDItMTQgMDc6MTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kICwKICAgYXBwcy9zbm1wYnVsa2dldC5jICwgYXBwcy9zbm1wZ2V0LmMgLCBhcHBzL3NubXBzdGF0dXMuYwogICAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLCBhZ2VudC9hZ2VudF90cmFwLmMKICAgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgc3BhY2UgZnJvbSBDUFBGTEFHUwogICAKMjAwMi0wMi0xNCAwNjoyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCAsIGRlZmluaXRpb25zLmggLAogICBtaWJfYXBpLmggLCBuZXQtc25tcC1pbmNsdWRlcy5oICwgb3V0cHV0X2FwaS5oICwKICAgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaCAsIHNubXB2M19hcGkuaCAsIHR5cGVzLmgKICAgLCB1dGlsaXRpZXMuaCAsIHZhcmJpbmRfYXBpLmg6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDY6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oICwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmggLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oICwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmggLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvbXRfc3VwcG9ydC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmggLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCAsIGluY2x1ZGUvbmV0LXNubXAvdG9vbHMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC92YWNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92ZXJzaW9uLmggLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oICwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oCiAgICwgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9vaWRfYXJyYXkuYyAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsIHNubXBsaWIvc25tcF9hbGFybS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2F1dGguYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wX3NlY21vZC5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA0OjQxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmggLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvY2FsbGJhY2suYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jICwKICAgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBtb3ZlcyB0b3dhcmRzIHVzaW5nIHRoZSAicHVibGljIiBBUEkgaGVhZGVyIGZpbGVzIGluIHRoZSBsaWJyYXJ5CiAgIGNvZGUgYXMgd2VsbCAoY29uY2VudHJhdGluZyBvbiBvdXRwdXQvY29uZmlnL3V0aWxpdHkgaGVhZGVyIGZpbGVzKS4KICAgCjIwMDItMDItMTQgMDM6MTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENsb3NlIGEgZGFuZ2xpbmcgImlmIiBibG9jay4gICAob29wcyEpCiAgIAoyMDAyLTAyLTE0IDAxOjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYyAoVjQtMi1wYXRjaGVzLjQpLCBpZi5jOgoKICAgQ2hlY2sgZm9yIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2YgSS9GIHRhYmxlIChwYXRjaCBmcm9tIFJlZEhhdCkKICAgCjIwMDItMDItMTQgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBMYXRlc3QgUmVkSGF0IHJwbS1yZWxhdGVkIHBhdGNoCiAgIAoyMDAyLTAyLTE0IDAxOjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgUlBNIGxpYnJhcmllcwogICAKMjAwMi0wMi0xMyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBNYWtlIEpvaG4gdHJ1c3QgaGlzIGNvZGUKICAgCjIwMDItMDItMTMgMDg6MzQgIGpicG4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAgIC0gdHJhbnNwb3J0IGZpeGVzICh1bnRlc3RlZCwgc3RpbGwgI2lmIDApCiAgIAoyMDAyLTAyLTEzIDA4OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1hcmsgc29tZSBKb2huLXRvLWRvLXNlY3Rpb25zCiAgIAoyMDAyLTAyLTEzIDA3OjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIG1hbi9zbm1wY21kLjEuZGVmICwKICAgc25tcGxpYi9taWIuYzoKCiAgIFN3aXRjaCB0byB1c2luZyAtT1Mgc3R5bGUgb3V0cHV0IGJ5IGRlZmF1bHQsIGFuZCBkcm9wIHRoZSByZXF1aXJlbWVudAogICBmb3IgZnVsbCBPSURzIHRvIHN0YXJ0IHdpdGggJy4nLCBwbHVzIGNvbW1hbmQtbGluZSBvcHRpb25zIHRvIHJlc3RvcmUKICAgdGhlIG9yaWdpbmFsIFVDRC1zdHlsZSBiZWhhdmlvdXIuCiAgIAoyMDAyLTAyLTEzIDA3OjM2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQXBwbHkgSm9obidzIGZpeCBmb3IgYnVncyAjNDg5MzM2IGFuZCAjNTA4MTQ2IChkdXBsaWNhdGUgY29sdW1ucyBhbmQKICAgY29sdW1ucyBpbiB3cm9uZyBvcmRlcikgdG8gdGhlIG1haW4gYnJhbmNoIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTEyIDE2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBjb25zdCBjaGFuZ2VzLgogICAKMjAwMi0wMi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC86IC5jdnNpZ25vcmUgLCBBU04vLmN2c2lnbm9yZSAsIGFnZW50Ly5jdnNpZ25vcmUKICAgLCBkZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmU6CgogICBhZGQgLmN2c2lnbm9yZSBmaWxlLgogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgYWRkIGFnZW50L2FnZW50X2hhbmRsZXIuaAogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oOgoKICAgY29uc3QgYWRkaXRpb25zLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQWRkIHN0cmluZy5oCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgaGVhZGVyLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4ZXMgdG8gcmVlbmFibGUgZGlzbWFuIGV2ZW50IHN0dWZmIGZvciA1LjAgY29kZS4gIE5vdCBkb25lIHRoZQogICAicmlnaHQiIHdheSwgYnV0IGl0IHdvcmtzLgogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIC1XYWxsIGZpeGVzCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGFkZCBzdGRsaWIuaAogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgbm8gbG9uZ2VyIHVzZWQgImR1bXBfdmFyIiByb3V0aW5lLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBjb25zdCBzcGVjaWZpYyBjaGFuZ2VzLgogICAKMjAwMi0wMi0xMiAxNjozNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG5ldyBwZXJsIHNwZWNpZmljIGZlYXR1cmVzLgogICAKMjAwMi0wMi0xMiAxNjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAuUEhOT1kgbW9kcwogICAKMjAwMi0wMi0xMiAwNzoyMiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQgLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbG9nZ2luZ19hcGkuaCAsIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgUmVuYW1lIHRoZSBsb2dnaW5nICYgcmVsYXRlZCBvdXRwdXQgQVBJIGhlYWRlciBmaWxlLCB0byBiZXR0ZXIKICAgcmVmbGVjdCB0aGUgc2NvcGUgb2YgdGhpcyBBUEkuICAoQXMgc3VnZ2VzdGVkIGJ5IFdlcyAmIEpvaG4pCiAgIAoyMDAyLTAyLTEyIDA3OjIxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhbWVuZCBmaXggdG8gYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIHRvCiAgICAgICBhY3R1YWxseSBhZGQgLWxuc2wgdG8gbGluayBwYXJhbWV0ZXJzIQogICAKMjAwMi0wMi0xMiAwNTozOSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSAtLSBVU0VfTElCV1JBUAogICAgICAgd2FzIG5vdCBiZWluZyAjZGVmaW5lZCBpbiB0aGUgY2FzZSB3aGVyZSAtbG5zbCBpcyBuZWVkZWQgaW4gYWRkaXRpb24KICAgICAgIHRvIC1sd3JhcC4KICAgCjIwMDItMDItMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgbGliIGRlcGVuZGVuY3kgZml4IGZvciBzbm1wZCB0YXJnZXQKICAgCjIwMDItMDItMTEgMDg6MjkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC9taWIuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC91Y2RfY29tcGF0LmggLCBzbm1wbGliL2NtdV9jb21wYXQuYyAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9wYXJzZS5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBFeHRyYWN0IENNVV9DT01QQVRBQklMSVRZIGNvZGUsIGFuZCBleHBsaWNpdGx5IGRlcHJlY2F0ZWQgVUNEIGNvZGUgaW50byBzZXBhcmF0ZSBmaWxlcy4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSB0aGUgJ2RzX3NldF94eHgnIGxpYnJhcnkgcm91dGluZXMsIHJhdGhlciB0aGFuIHRoZSBvbGQgJ3NubXBfc2V0X3h4eCcgY2FsbHMKICAgCjIwMDItMDItMTEgMDQ6NDUgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmICwgc25tcF9jb25maWcuNS5kZWYgLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIHNwZWxsaW5nIHR3ZWFrcwogICAKMjAwMi0wMi0xMSAwNDoyNyAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiAsIGRlZmF1bHRfc3RvcmUuMy50b3AgLCBtaWJfYXBpLjMKICAgLCBtaWJfYXBpLjMuZGVmICwgc25tcF9hZ2VudF9hcGkuMyAsCiAgIHNubXBfYWdlbnRfYXBpLjMuZGVmICwgc25tcF9hbGFybS4zICwgc25tcF9hbGFybS4zLmRlZgogICAsIHNubXBfYXBpLjMgLCBzbm1wX2FwaS4zLmRlZiAsIHNubXBfc2Vzc19hcGkuMwogICAsIHNubXBfc2Vzc19hcGkuMy5kZWYgLCBzbm1wX3RyYXBfYXBpLjMgLAogICBzbm1wX3RyYXBfYXBpLjMuZGVmICwgdmFyaWFibGVzLjUgLCB2YXJpYWJsZXMuNS5kZWY6CgogICAgIC0gZ2VuZXJhdGUgdGhlIHJlc3Qgb2YgdGhlIG1hbnVhbCBwYWdlcyAodG8gZ2V0IHZlcnNpb24gaW4gZm9vdGVyKQogICAKMjAwMi0wMi0wOCAxNTo1NiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCAsIG1pYl9tb2R1bGVfY29uZmlnLmggLAogICBtaWJfbW9kdWxlX2luaXRzLmggLCBsaWJzbm1wL2xpYnNubXAuZHNwICwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwgc25tcGQvc25tcGQuZHNwOgoKICAgd2luMzIgc3BlY2lmaWMgcG9ydGlvbnMgb2YgcGF0Y2ggNTAzMjU2CiAgIAoyMDAyLTAyLTA4IDE1OjUzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgcGF0Y2gjNTAzMjU2OiBoZWxwZXJzIGxpYnJhcnkgZGVmaW5pdGlvbiBmb3Igd2luMzIKICAgCjIwMDItMDItMDggMDk6MDggIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0IHR3ZWFrYWdlCiAgIAoyMDAyLTAyLTA4IDA4OjIyICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgLCBzbm1wX2FnZW50X2FwaS4zICwgc25tcF9hbGFybS4zCiAgICwgc25tcF9hcGkuMyAsIHNubXBfc2Vzc19hcGkuMyAsIHNubXBfdHJhcF9hcGkuMzoKCiAgIFJlZmVyZW5jZSB0aGUgbmV3IGhlYWRlci1maWxlcyBpbiBzZWN0aW9uIDMgbWFuIHBhZ2Ugc3lub3BzZXMuCiAgIAoyMDAyLTAyLTA4IDA3OjUwICBqYnBuCgogICAqIG1hbi86IG1pYl9hcGkuMyAsIHJlYWRfY29uZmlnLjMuZGVmICwgc25tcF9hZ2VudF9hcGkuMwogICAsIHNubXBfY29uZmlnLjUuZGVmICwgc25tcF90cmFwX2FwaS4zICwKICAgc25tcGNtZC4xLmRlZiAsIHNubXBjb25mLjEuZGVmICwgc25tcGQuY29uZi41LmRlZiAsCiAgIHZhcmlhYmxlcy41OgoKICAgICAtIG1vcmUgbWlub3IgdHdlYWtzICh1Y2Qtc25tcCAtPiBOZXQtU05NUCBldGMuKQogICAKMjAwMi0wMi0wOCAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIGxvY2FsIG1vZHVsZXMgZnJvbSBkZXBlbmRlbmN5IGxpc3QKICAgCjIwMDItMDItMDggMDc6NDUgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfdHJhcC5jCiAgICwgYXV0b19ubGlzdC5jICwga2VybmVsLmMgLCBtaWJfbW9kdWxlcy5jICwKICAgc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmMgLCBzbm1wZC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuYyAsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgaGVscGVycy9pbnN0YW5jZS5jICwgaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgaGVscGVycy9udWxsLmMgLCBoZWxwZXJzL29sZF9hcGkuYyAsIGhlbHBlcnMvcmVhZF9vbmx5LmMKICAgLCBoZWxwZXJzL3NlcmlhbGl6ZS5jICwgaGVscGVycy90YWJsZS5jICwKICAgaGVscGVycy90YWJsZV9hcnJheS5jICwgaGVscGVycy90YWJsZV9kYXRhLmMgLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIG1pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jICwgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIG1pYmdyb3VwL1Jtb24vYWd1dGlsLmMgLAogICBtaWJncm91cC9SbW9uL2FsYXJtLmMgLCBtaWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBtaWJncm91cC9SbW9uL2hpc3RvcnkuYyAsIG1pYmdyb3VwL1Jtb24vcm93cy5jICwKICAgbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMgLAogICBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMKICAgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBtaWJncm91cC9taWJJSS9hdC5jCiAgICwgbWliZ3JvdXAvbWliSUkvaWNtcC5jICwgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICwgbWliZ3JvdXAvbWliSUkvaXAuYyAsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLAogICBtaWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYyAsIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMKICAgLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jICwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICwgbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICwgbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwgbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvc211eC9zbXV4LmMgLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMgLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLCBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgLCBtaWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYyAsCiAgIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jCiAgICwgbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jICwgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLCBtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBVc2UgdGhlIG5ldyAnbmV0LXNubXAtaW5jbHVkZXMnIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBmaWxlcywKICAgaW4gcGxhY2Ugb2YgdGhlICh1bmluc3RhbGxlZCkgJ21pYmluY2wuaCcuCiAgICAgV2hlZWVlZS4uLi4uLgogICAKMjAwMi0wMi0wOCAwNzoxNyAgamJwbgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYgLCBzbm1wX2FnZW50X2FwaS4zICwKICAgc25tcF9hbGFybS4zICwgc25tcF9hcGkuMyAsIHNubXBfY29uZmlnLjUuZGVmICwKICAgc25tcF9zZXNzX2FwaS4zICwgc25tcGQuMS5kZWYgLCBzbm1wZC5jb25mLjUuZGVmICwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAgIC0gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gZ2VuZXJhdGUgbWFuIHBhZ2VzIGF0IGNvbXBpbGUgdGltZQogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xICwgc25tcGJ1bGt3YWxrLjEgLAogICBzbm1wYnVsa2dldC4xLmRlZiAsIHNubXBidWxrd2Fsay4xLmRlZiAsIHNubXBjbWQuMQogICAsIHNubXBjbWQuMS5kZWYgLCBzbm1wY29uZi4xICwgc25tcGNvbmYuMS5kZWYKICAgLCBzbm1wZ2V0LjEgLCBzbm1wZ2V0LjEuZGVmICwgc25tcGdldG5leHQuMSAsCiAgIHNubXBnZXRuZXh0LjEuZGVmICwgc25tcHNldC4xICwgc25tcHNldC4xLmRlZiAsCiAgIHNubXBzdGF0dXMuMSAsIHNubXBzdGF0dXMuMS5kZWYgLCBzbm1wdGFibGUuMSAsCiAgIHNubXB0YWJsZS4xLmRlZiAsIHNubXB0ZXN0LjEgLCBzbm1wdGVzdC4xLmRlZiAsCiAgIHNubXB0cmFuc2xhdGUuMSAsIHNubXB0cmFuc2xhdGUuMS5kZWYgLCBzbm1wdHJhcC4xCiAgICwgc25tcHRyYXAuMS5kZWYgLCBzbm1wdXNtLjEgLCBzbm1wdXNtLjEuZGVmICwKICAgc25tcHdhbGsuMSAsIHNubXB3YWxrLjEuZGVmICwgc25tcHRyYXBkLjggLAogICBzbm1wdHJhcGQuOC5kZWY6CgogICAgIC0gcmVuYW1lIG1hbiBwYWdlcyB3aGljaCBhcmUgbm93IGdlbmVyYXRlZCBhdCBjb21waWxlIHRpbWUgaW4gb3JkZXIKICAgICAgIHRvIHBpY2sgdXAgdGhlIHZlcnNpb24gKHdoaWNoIGdldHMgcHV0IGluIHRoZSBmb290ZXIpLgogICAKICAgICAtIGFsc28gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJKSi5oICwgbWliSkovaWNtcC5jICwgbWliSkovaWNtcC5oCiAgICwgbWliSkovaWZfZmllbGRzLmggLCBtaWJKSi9pbnRlcmZhY2VzLmMgLAogICBtaWJKSi9pbnRlcmZhY2VzLmggLCBtaWJKSi9pcC5jICwgbWliSkovaXAuaCAsCiAgIG1pYkpKL2lwQWRkci5jICwgbWliSkovaXBBZGRyLmggLCBtaWJKSi9pcE1lZGlhLmMgLAogICBtaWJKSi9pcE1lZGlhLmggLCBtaWJKSi9pcFJvdXRlLmMgLCBtaWJKSi9pcFJvdXRlLmgKICAgLCBtaWJKSi9pcHY2LmMgLCBtaWJKSi9pcHY2LmggLCBtaWJKSi9rZXJuZWxfaHB1eC5jCiAgICwgbWliSkova2VybmVsX2hwdXguaCAsIG1pYkpKL2tlcm5lbF9saW51eC5jICwKICAgbWliSkova2VybmVsX2xpbnV4LmggLCBtaWJKSi9zbm1wX21pYi5jICwKICAgbWliSkovc25tcF9taWIuaCAsIG1pYkpKL3N5c09SVGFibGUuYyAsCiAgIG1pYkpKL3N5c09SVGFibGUuaCAsIG1pYkpKL3N5c3RlbV9taWIuYyAsCiAgIG1pYkpKL3N5c3RlbV9taWIuaCAsIG1pYkpKL3RjcC5jICwgbWliSkovdGNwLmggLAogICBtaWJKSi90Y3BUYWJsZS5jICwgbWliSkovdGNwVGFibGUuaCAsIG1pYkpKL3VkcC5jICwKICAgbWliSkovdWRwLmggLCBtaWJKSi91ZHBUYWJsZS5jICwgbWliSkovdWRwVGFibGUuaCAsCiAgIG1pYkpKL3ZhY21fdmFycy5jICwgbWliSkovdmFjbV92YXJzLmg6CgogICBSZW1vdmUgdGhlIGF0dGVtcHRlZCAnbWliSUknIHJlLXdyaXRlLgogICBJZiB3ZSB3YW50IHRvIHRpZHkgdXAgbWliSUksIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gdXNlIHRoZSBuZXcgYWdlbnQgQVBJcy4KICAgCjIwMDItMDItMDggMDY6NDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBuZXQtc25tcC1pbmNsdWRlcy5oICwKICAgYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIEJyaW5nIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBmaWxlcyBjbG9zZXIgaW4gbGluZSB3aXRoIHRoZSBleGlzdGluZyAibWliaW5jbC5oIiBmaWxlCiAgIAoyMDAyLTAyLTA4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuaCAoVjQtMi1wYXRjaGVzLjEpLAogICBzeXNPUlRhYmxlLmg6CgogICBFbnN1cmUgdGhlIG51bGwgdmVyc2lvbnMgb2YgdGhlIHR3byBSRUdJU1RFUiBtYWNyb3Mgc3dhbGxvdyB0aGVpciBwYXJhbWV0ZXJzLgogICAKMjAwMi0wMi0wOCAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW1wbGVtZW50IHRoZSBtaXNzaW5nIG91dGdvaW5nIGVycm9yIHN0YXRpc3RpY3MgY291bnRlcnMKICAgKHBhdGNoICM1MTAxOTQgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwogICAoVjQtMi1wYXRjaGVzLls2LDNdKSwgaG9zdC9ocl9zdG9yYWdlLmMgLCB1Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG1lbW9yeSBhbmQgc3dhcCBlbnRyaWVzIGluIGhyU3RvcmFnZVRhYmxlIGZvciBTb2xhcmlzCiAgIChmcm9tIHBhdGNoICM1MDU0OTggLSB0aGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQogICAKMjAwMi0wMi0wOCAwMjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIENvbnNvbGlkYXRlIGlkZW50aWNhbCBNSUIgb2JqZWN0IGVudHJpZXMgKFdJTjMyL25vbi1XSU4zMikKICAgCjIwMDItMDItMDggMDA6NTAgIGpicG4KCiAgICogbWFuL1JFQURNRToKCiAgICAgLSByZW1vdmUgY2hyb25pY2FsbHkgZGF0ZWQgdW5oZWxwZnVsIFJFQURNRQogICAKMjAwMi0wMi0wNyAxMzozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlcyAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIG1ha2VmaWxlaW5kZXBlbmQucGwgLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluCiAgICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLCBhcHBzL01ha2VmaWxlLmRlcGVuZAogICAsIGFwcHMvTWFrZWZpbGUuaW4gLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAogICAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLCBsb2NhbC9NYWtlZmlsZS5pbgogICAsIG1hbi9NYWtlZmlsZS5pbiAsIG1pYnMvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1ha2UgbWFrZSdzIE1ha2VmaWxlJ3MgdG8gbWFrZSBiZXR0ZXIgbWFraW5nCiAgIAoyMDAyLTAyLTA3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGVjayBsb2NhbCBwYXRoZXMKICAgCjIwMDItMDItMDcgMTI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVuc3VyZSBhZ2VudCByZXR1cm5zIHRoZSBjb3JyZWN0IGVycm9yIGNvZGVzIGZvciBVTkRPIGFuZCBDT01NSVQgZmFpbHVyZXMuCiAgIAoyMDAyLTAyLTA3IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCAsIFNOTVAueHMgLCB0L3N0YXJ0YWdlbnQucGw6CgogICBhdHRlbXB0IGF0IHBvcnRpbmcgSm9lJ3MgU05NUCBtb2R1bGUgdG8gbmV0LXNubXAuCiAgIEl0IGNvbXBpbGVzLCBidXQgb25seSBzb21lIG9mIHRoZSB0ZXN0cyBzdWNjZWVkLgogICAKMjAwMi0wMi0wNyAxMDowOSAgamJwbgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wICwgbWliX2FwaS4zICwKICAgcmVhZF9jb25maWcuMy5kZWYgLCBzbm1wLmNvbmYuNS5kZWYgLCBzbm1wX2FnZW50X2FwaS4zCiAgICwgc25tcF9hbGFybS4zICwgc25tcF9hcGkuMyAsIHNubXBfY29uZmlnLjUuZGVmCiAgICwgc25tcF9zZXNzX2FwaS4zICwgc25tcF90cmFwX2FwaS4zICwgc25tcGJ1bGtnZXQuMQogICAsIHNubXBidWxrd2Fsay4xICwgc25tcGNvbmYuMSAsIHNubXBkLmNvbmYuNS5kZWYKICAgLCBzbm1wZGVsdGEuMSAsIHNubXBkZi4xICwgc25tcGdldC4xICwKICAgc25tcGdldG5leHQuMSAsIHNubXBuZXRzdGF0LjEgLCBzbm1wc2V0LjEgLAogICBzbm1wc3RhdHVzLjEgLCBzbm1wdGFibGUuMSAsIHNubXB0ZXN0LjEgLAogICBzbm1wdHJhbnNsYXRlLjEgLCBzbm1wdHJhcC4xICwgc25tcHRyYXBkLmNvbmYuNS5kZWYKICAgLCBzbm1wdXNtLjEgLCBzbm1wd2Fsay4xICwgdmFyaWFibGVzLjU6CgogICAgIC0gYWRkIE5ldC1TTk1QIGluIGhlYWRlciBvZiBhbGwgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA5OjUyICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gdXBkYXRlIHN0eWxlIHRvIG1hdGNoIHNubXBkIGFuZCBzbm1wdHJhcGQgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA4OjE1ICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBmaXggc3BlZWxpbmcgbWlzdGFrZQogICAKMjAwMi0wMi0wNyAwODowMCAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gYnJpbmcgdXAgdG8gZGF0ZSB3aXRoIHNubXB0cmFwZAogICAKMjAwMi0wMi0wNyAwNzoyOCAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSAsIGFjY29uZmlnLmggLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNyAwNjozMCAgamJwbgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAgIC0gYWxwaGFiZXRpc2Ugb3B0aW9ucwogICAKICAgICAtIGJyaW5nIG1hbiBwYWdlIGluIGxpbmUgd2l0aCBuZXcgcG9zaXRpb25hbCBhcmd1bWVudHMgbGlzdGVuaW5nCiAgICAgICBhZGRyZXNzIHNwZWNpZmljYXRpb24gYW5kIGFkZCBzZWN0aW9uIGRlc2NyaWJpbmcgdGhhdAogICAKICAgICAtIHB1dCBOZXQtU05NUCBpbiBoZWFkZXIKICAgCjIwMDItMDItMDYgMTA6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oOgoKICAgICAtIGZpeCBidWcgbm90ZWQgYnkgTmllbHMKICAgCjIwMDItMDItMDYgMDk6MjUgIGpicG4KCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAsIHNubXB1c20uYzoKCiAgICAgLSBtaW5vciB0d2Vha3MgZHVlIHRvIGNoYW5nZSBpbiBkZWZpbml0aW9uIG9mIFVTTSBPSURzLgogICAKMjAwMi0wMi0wNiAwOToxNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIG1vdmUgVVNNIE9JRCBkZWZpbml0aW9ucyBpbnRvIHNubXB1c20uYywgbWFrZSB0aGVtIGNvbnN0CiAgIAogICAgIC0gY29uc2VxdWVudCBpbmNyZWFzZSBpbiBjb25zdC1uZXNzIGluIHNvbWUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlIGludGVybmFsIG5vdGUgYWJvdXQgdjMgYXBpLCB3aGljaCBzaG91bGQgYmUgcHVibGljCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oOgoKICAgcmVtb3ZlZCB1bm5lZWRlZCBmaWxlCiAgIAoyMDAyLTAyLTA2IDA5OjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAogICAsIHNubXBsaWIva2V5dG9vbHMuYyAsIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgY29uc3QtbmVzcyBmb3IgdHJhbnNmb3JtIHR5cGUgYXJncwogICAKMjAwMi0wMi0wNiAwOTowMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmgKICAgLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gYWRkIHNvbWUgY29uc3QtbmVzcyBmb3IgT0lEIGFyZ3MgKG1haW5seSBzbyB0aGF0IGRlYnVnbXNnX29pZCB0YWtlcwogICAgICAgY29uc3QpLgogICAKMjAwMi0wMi0wNiAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFN1cHBvcnQgZm9yIER5bml4L1BUWCA0LjQsIGNvdXJ0ZXN5IG9mIFBhdHJpY2sgSGVzcy4KICAgCjIwMDItMDItMDYgMDc6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgZmlyc3QgYXJndW1lbnQgb2Ygc25tcF9kdXBfb2JqaWQoKSBjb25zdC4KICAgCiAgICAgLSBiZXR0ZXIgaGFuZGxlIE5VTEwgdmFsdWVzIGluIHNubXBfZHVwX29iamlkKCkuCiAgIAoyMDAyLTAyLTA2IDA3OjA5ICBkdHMxMgoKICAgKiBGQVEgLCBtYW4vc25tcF90cmFwX2FwaS4zOgoKICAgQ2xhcmlmeSB0aGUgYXBwbGljYWJpbGl0eSBvZiAnc25tcF90cmFwX2FwaSgzKScgcm91dGluZXMgdG8gQWdlbnRYIHN1YmFnZW50cy4KICAgCjIwMDItMDItMDYgMDU6NTggIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgLCBub3RpZmljYXRpb25fbG9nLmMgLAogICBzbm1wYnVsa2dldC5jICwgc25tcGJ1bGt3YWxrLmMgLCBzbm1wZGVsdGEuYyAsCiAgIHNubXBkZi5jICwgc25tcGdldC5jICwgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYwogICAsIHNubXBzdGF0dXMuYyAsIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsCiAgIHNubXB0cmFuc2xhdGUuYyAsIHNubXB0cmFwLmMgLCBzbm1wdHJhcGQuYyAsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5jICwgc25tcHRyYXBkX2xvZy5jICwgc25tcHVzbS5jCiAgICwgc25tcHZhY20uYyAsIHNubXB3YWxrLmMgLCBzbm1wbmV0c3RhdC9pZi5jCiAgICwgc25tcG5ldHN0YXQvaW5ldC5jICwgc25tcG5ldHN0YXQvaW5ldDYuYyAsCiAgIHNubXBuZXRzdGF0L21haW4uYyAsIHNubXBuZXRzdGF0L3JvdXRlLmM6CgogICBBcHBsaWNhdGlvbnMgYW1lbmRlZCB0byB1c2UgdGhlIG5ldy1zdHlsZSBsaWJyYXJ5IGhlYWRlciBzdHJ1Y3R1cmUuCiAgIChJbiBtb3N0IGNhc2VzLCBzaW1wbHkgaW5jbHVkaW5nIHRoZSBzaW5nbGUgImZ1bGwgQVBJIiBoZWFkZXIgZmlsZSkKICAgCjIwMDItMDItMDYgMDU6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhc24xLmggLCBjb25maWdfYXBpLmggLAogICBkZWZpbml0aW9ucy5oICwgbG9nZ2luZ19hcGkuaCAsIG1pYl9hcGkuaCAsCiAgIG5ldC1zbm1wLWluY2x1ZGVzLmggLCBwZHVfYXBpLmggLCBzZXNzaW9uX2FwaS5oICwKICAgc25tcHYzX2FwaS5oICwgdHlwZXMuaCAsIHV0aWxpdGllcy5oICwgdmFyYmluZF9hcGkuaDoKCiAgIEZyYW1ld29yayBmb3IgbmV3IGxpYnJhcnkgaGVhZGVyIGZpbGUgb3JnYW5pc2F0aW9uLCB3aXRoIGVpZ2h0IG1haW4gZ3JvdXBzCiAgIG9mIEFQSSByb3V0aW5lcy4gIEN1cnJlbnRseSB0aGVzZSBzdGlsbCByZWZlciB0byB0aGUgVUNELXN0eWxlIHN0eWxlIGhlYWRlcgogICBmaWxlcyBmb3IgdGhlIGFjdHVhbCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCiAgIAoyMDAyLTAyLTA2IDA1OjMxICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSByZXBsYWNlIHVzZSBvZiAkPCB3aXRoIGV4cGxpY2l0IGZpbGVuYW1lLCBzaW5jZSBub24tR05VIG1ha2VzIHNlZW0KICAgICAgIHRvIGJhcmYgb24gaXQKICAgCjIwMDItMDItMDYgMDM6MzEgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4IGluY29ycmVjdCBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbiBpbiAnbWFrZSBjbGVhbicKICAgCjIwMDItMDItMDYgMDM6MTggIGR0czEyCgogICAqIGFjY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdGVjdCB0aGUgcHJvamVjdCBjb25maWcgZmlsZSBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4KICAgCjIwMDItMDItMDYgMDM6MDcgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cyBhbmQKICAgICAgIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi8uLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzCiAgICAgICBhbmQgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuNyksIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGVybCBmaXhlcwogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtb3ZlIHRoZSBvaWR0cmVlX2NvbXBhcmUgZnVuY3Rpb24gdG8KICAgdGhlIG1haW4gbGlicmFyeS4KICAgCjIwMDItMDItMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L01ha2VmaWxlLmluOgoKICAgcGVybCBidWlsZCBmaXhlcy4KICAgCjIwMDItMDItMDUgMDc6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgb3Bwcy4gIFJlbW92ZWQgZm9yY2VkIHBlcmwgZW1iZWRkaW5nCiAgIAoyMDAyLTAyLTA0IDE2OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdGhpcyBmaWxlIHNob3VsZG4ndCBiZSBjaGVja2VkIGluCiAgIAoyMDAyLTAyLTA0IDE2OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFjY29uZmlnLmggLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L3NubXBfcGVybC5jCiAgICwgYWdlbnQvc25tcF9wZXJsLnBsICwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIFN1cHBvcnQgZm9yIGVtYmVkZGluZyBwZXJsIHN1YnJvdXRpbmVzIGludG8gdGhlIGFnZW50IHRvIGJlIGNhbGxlZAogICAgIGFzIGhhbmRsZXJzLgogICAtIE5ldyBjb25maWd1cmUgb3B0aW9uczoKICAgICAtLXdpdGgtcGVybC1tb2R1bGVzIGF0dGVtcHRzIHRvIGJ1aWxkIGNvbnRhaW5lZCBtb2R1bGVzIChwb29ybHkgY3VycmVudGx5KS4KICAgICAtLWVuYWJsZS1lbWJlZGRlZC1wZXJsIGFjdHVhbGx5IHNwZWNpZmllcyB0byBkbyBwZXJsIGVtYmVkZGluZwogICAgIHdpdGhpbiB0aGUgYWdlbnQuCiAgIAoyMDAyLTAyLTA0IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSAsIEFTTi9BU04ueHMgLCBBU04vQ2hhbmdlcyAsCiAgIEFTTi9NQU5JRkVTVCAsIEFTTi9NYWtlZmlsZS5QTCAsIEFTTi90ZXN0LnBsICwKICAgYWdlbnQvQ2hhbmdlcyAsIGFnZW50L01BTklGRVNUICwgYWdlbnQvTWFrZWZpbGUuUEwgLAogICBhZ2VudC9hZ2VudC5wbSAsIGFnZW50L2FnZW50LnhzICwgYWdlbnQvdGVzdC5wbCAsCiAgIGFnZW50L3R5cGVtYXAgLCBkZWZhdWx0X3N0b3JlL0NoYW5nZXMgLAogICBkZWZhdWx0X3N0b3JlL01BTklGRVNUICwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCAsCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSAsCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cyAsIGRlZmF1bHRfc3RvcmUvdGVzdC5wbCAsCiAgIGRlZmF1bHRfc3RvcmUvdHlwZW1hcDoKCiAgIEJlZ2lubmluZ3Mgb2YgbmV3IHBlcmwgbW9kdWxlcyBuZWVkZWQgdG8gaW1wbGVtZW50IGFuIFNOTVAgYWdlbnQgKG9yCiAgIGFnZW50eCBzdWJhZ2VudCkgaW5zaWRlIHBlcmwuCiAgICAgLSBub3QgY29tcGxldGUgeWV0LgogICAgIC0gbWF5IGNoYW5nZS4KICAgICAtIGJ1dCB3b3Jrcy4KICAgCjIwMDItMDItMDQgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDItMDEgMDE6NTAgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgdGhlIHByb2NlZHVyZSBmb3IgY29tcGlsaW5nIHdpdGggJ2NjJyByYXRoZXIgdGhhbiAnZ2NjJwogICAKMjAwMi0wMS0zMSAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcy9zbm1wbGliXC8vLzsKICAgCjIwMDItMDEtMzEgMDY6NTUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlIGNsZWFuIGFzIHJlcG9ydGVkIGJ5IEJyYWRsZXkgQm96YXJ0aC4KICAgCjIwMDItMDEtMzAgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBCcmluZyBNSUIgdmFyaWFibGUgdmVyc2lvblRhZyBpbnRvIGxpbmUgd2l0aCB0aGUgbmV3IDxuZXQtc25tcC92ZXJzaW9uLmg+IHVzYWdlCiAgIAoyMDAyLTAxLTI5IDE3OjUzICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmggLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIE1vdmVkIHZlcnNpb25pbmcgaW5mb3JtYXRpb24gZnJvbSB2ZXJzaW9uLmggdG86CiAgICAgLSBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgICAgLSBkZWZpbmUgbmV0c25tcF9nZXRfdmVyc2lvbigpOwogICAgICAgLSBjcmVhdGUgYSBjb25zdCBjaGFyICpOZXRTbm1wVmVyc2lvbkluZm8KICAgICAtIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBleHRlcm4gdGhlIGFib3ZlIGNoYXIgKgogICAgICAgLSBwcm90b3R5cGUgdGhlIGZ1bmN0aW9uCiAgICAgLSBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gY3JlYXRlIGEgc3RhdGljIHZhcmlhYmxlICh0aGUgb2xkIHdheSkgYW5kIHNldCBpdCB0byBOZXRTbm1wVmVyc2lvbkluZm8KICAgCjIwMDItMDEtMjkgMTY6MDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoICwgdGVzdHMvVDA0OXNubXB2M2luZm9ybSAsCiAgIHRlc3RzL1QwNTBzbm1wdjN0cmFwICwgdGVzdHMvVDA1MXNubXB2MmN0cmFwICwKICAgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0gLCB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAgLAogICB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwICwgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwKICAgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwICwKICAgdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICB0cmFwIHRlc3QgZml4ZXMgc28gdGhlIG1ham9yaXR5IG9mIHRoZSB0ZXN0cyBub3cgd29yay4KICAgCjIwMDItMDEtMjkgMTY6MDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgZ2VuZXJhdGUgdWNkLXNubXAtY29uZmlnLmggYW55IGxvbmdlci4KICAgCjIwMDItMDEtMjkgMTU6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaDoKCiAgIG1vdmVkIHMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLyouaAogICBtb3ZlZCBtL2dlbmVyaWMuaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCiAgIAoyMDAyLTAxLTI5IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1jIGFyZ3VtZW50IHBhcnNpbmcuCiAgIAoyMDAyLTAxLTI5IDA5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZWZlcmVuY2UgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpbnN0ZWFkIG9mIGp1c3QgY29uZmlnLmgKICAgCjIwMDItMDEtMjkgMDk6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYXR0ZW1wdCB0byBmaXggdGhlIHVua25vd24gZW5naW5laWQvdW5rbm93biB1c2VyIHByb2JsZW1zIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAyLTAxLTI4IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICB3aG9vcHMuICBNaXNzZWQgc29tZSAuaCBmaWxlIGNoZWNrcyBpbiBjb25maWd1cmUuICBUaGFua3MgUm9iZXJ0LgogICAKMjAwMi0wMS0yOCAyMTowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBtaW5vciBmaXguCiAgIAoyMDAyLTAxLTI4IDIxOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIGFkZGVkIGNvZGUgY29udmVydCBzY3JpcHQgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGhlYWRlciBjb252ZXJzaW9uCiAgIAoyMDAyLTAxLTI4IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBhcHBzL3NubXBidWxrZ2V0LmMgLCBhcHBzL3NubXBidWxrd2Fsay5jICwKICAgYXBwcy9zbm1wZGVsdGEuYyAsIGFwcHMvc25tcGRmLmMgLCBhcHBzL3NubXBnZXQuYwogICAsIGFwcHMvc25tcGdldG5leHQuYyAsIGFwcHMvc25tcHNldC5jICwKICAgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0YWJsZS5jICwgYXBwcy9zbm1wdGVzdC5jCiAgICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB2YWNtLmMKICAgLCBhcHBzL3NubXB3YWxrLmMgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwogICAsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyAsIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCAsIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oICwgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaAogICAsIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FsYXJtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9lbnVtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wa3NtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCAsIGluY2x1ZGUvbmV0LXNubXAvdG9vbHMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKICAgLCBtYW4vTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2FzbjEuaCAsIHNubXBsaWIvY2FsbGJhY2suYwogICAsIHNubXBsaWIvY2FsbGJhY2suaCAsIHNubXBsaWIvZGF0YV9saXN0LmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5oICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsIHNubXBsaWIvZ2V0b3B0LmggLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2ludDY0LmggLCBzbm1wbGliL2tleXRvb2xzLmMKICAgLCBzbm1wbGliL2tleXRvb2xzLmggLCBzbm1wbGliL2xjZF90aW1lLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmggLCBzbm1wbGliL2xpYnNubXAuaCAsIHNubXBsaWIvbWQ1LmMKICAgLCBzbm1wbGliL21kNS5oICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvbWliLmgKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvbXRfc3VwcG9ydC5oICwKICAgc25tcGxpYi9vaWRfYXJyYXkuYyAsIHNubXBsaWIvb2lkX2FycmF5LmggLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9vaWRfc3Rhc2guaCAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvcGFyc2UuaCAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsCiAgIHNubXBsaWIvc2NhcGkuYyAsIHNubXBsaWIvc2NhcGkuaCAsIHNubXBsaWIvc25tcC10Yy5jCiAgICwgc25tcGxpYi9zbm1wLXRjLmggLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcC5oICwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmggLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5oICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uaCAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uaCAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmggLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmggLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmggLCBzbm1wbGliL3NubXBfYWxhcm0uYwogICAsIHNubXBsaWIvc25tcF9hbGFybS5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2F1dGguYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9jbGllbnQuaCAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmggLAogICBzbm1wbGliL3NubXBfZW51bS5jICwgc25tcGxpYi9zbm1wX2VudW0uaCAsCiAgIHNubXBsaWIvc25tcF9pbXBsLmggLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oICwgc25tcGxpYi9zbm1wX3NlY21vZC5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5oICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oICwgc25tcGxpYi9zbm1wa3NtLmMgLAogICBzbm1wbGliL3NubXBrc20uaCAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdXNtLmggLCBzbm1wbGliL3NubXB2My5jICwgc25tcGxpYi9zbm1wdjMuaAogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3N5c3RlbS5oICwKICAgc25tcGxpYi90b29scy5jICwgc25tcGxpYi90b29scy5oICwKICAgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oICwgc25tcGxpYi92YWNtLmMgLAogICBzbm1wbGliL3ZhY20uaCAsIHRlc3RpbmcvUlVOVEVTVFMgLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCAsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oICwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDIwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2luZGV4LmMgLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYwogICAsIGF1dG9fbmxpc3QuYyAsIGtlcm5lbC5jICwgbWliX21vZHVsZXMuYyAsCiAgIHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jICwgc25tcGQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYyAsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGhlbHBlcnMvbnVsbC5jICwgaGVscGVycy9vbGRfYXBpLmMgLCBoZWxwZXJzL3JlYWRfb25seS5jCiAgICwgaGVscGVycy9zZXJpYWxpemUuYyAsIGhlbHBlcnMvdGFibGUuYyAsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgbWliZ3JvdXAvaG9zdF9yZXMuaCAsCiAgIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsIG1pYmdyb3VwL21pYmluY2wuaCAsCiAgIG1pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBtaWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwgbWliZ3JvdXAvUm1vbi9hbGFybS5jICwKICAgbWliZ3JvdXAvUm1vbi9ldmVudC5jICwgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLAogICBtaWJncm91cC9SbW9uL3Jvd3MuYyAsIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAsIG1pYmdyb3VwL21pYklJL2F0LmMgLCBtaWJncm91cC9taWJJSS9pY21wLmMgLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBtaWJncm91cC9taWJJSS9pcC5jICwKICAgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLCBtaWJncm91cC9taWJJSS9pcHY2LmMgLAogICBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMKICAgLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jICwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICwgbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oCiAgICwgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBtaWJncm91cC9taWJKSi9pY21wLmMKICAgLCBtaWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBtaWJncm91cC9taWJKSi9pcC5jCiAgICwgbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLCBtaWJncm91cC9taWJKSi9pcE1lZGlhLmMKICAgLCBtaWJncm91cC9taWJKSi9pcHY2LmMgLCBtaWJncm91cC9taWJKSi9rZXJuZWxfbGludXguYwogICAsIG1pYmdyb3VwL21pYkpKL3NubXBfbWliLmMgLCBtaWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMKICAgLCBtaWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBtaWJncm91cC9taWJKSi90Y3AuYwogICAsIG1pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLCBtaWJncm91cC9taWJKSi91ZHAuYyAsCiAgIG1pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMgLCBtaWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIG1pYmdyb3VwL21pc2MvZGxtb2QuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBtaWJncm91cC9zbXV4L3NtdXguYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDE5OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgREVGSU5FIElUIGluc3RlYWQKICAgCjIwMDItMDEtMjggMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBkZWZpbmUgaXQgaW5zdGVhZAogICAKMjAwMi0wMS0yNSAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2Vfb25lX29pZF9pbmRleDoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBpbnQgZm9yIGxlbmd0aCdzIHB1bGxlZCBmcm9tIHRoZSBvaWQuCiAgICAgLSBNYWtlIHN1cmUgdGhleSdyZSBhbHdheXMgPCAxMjgKICAgCjIwMDItMDEtMjUgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjbG9zZXIgYWRoZXJlbmNlIHRvIHN0YXRlIG1hY2hpbmVzIGRlc2NyaWJlZCBpbiBSRkMgMjU3NAogICAKMjAwMi0wMS0yNSAwOToxMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSB1c21EZWNyeXB0aW9uRXJyb3IgcmVwb3J0cyB0byBiZSBzZW50IGluIGEgY291cGxlIG9mIGV4dHJhCiAgICAgICBjYXNlczogYmFkIHNhbHQgKGxlbmd0aCAhPSA4KSBhbmQgbGVuZ3RoIG9mIGVuY3J5cHRlZCBkYXRhIG5vdCBhCiAgICAgICBtdWx0aXBsZSBvZiA4IG9jdGV0cyAocGVyIFJGQyAyNTc0KS4KICAgCjIwMDItMDEtMjUgMDk6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZvciB1bmtub3duIG1lc3NhZ2UgdHlwZXMsIGluY3JlbWVudCBzbm1wSW5BU05QYXJzZUVycnMgYW5kIGZhaWwKICAgICAgIGF0IHRoZSBwb3N0LXBhcnNlIHN0YWdlLgogICAKICAgICAtIGZvciBub3RpZmljYXRpb24gdHlwZXMsIGluY3JlbWVudCBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGFuZCBiYWlsCiAgICAgICBvdXQgZWFybHkuCiAgIAoyMDAyLTAxLTI1IDA5OjAxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmb3IgdW5oYW5kbGVkIG1lc3NhZ2VzIChlLmcuIFJFU1BPTlNFIG1lc3NhZ2VzIHNlbnQgdG8gYWdlbnRzKSwKICAgICAgIGluY3JlbWVudCB0aGUgc25tcFVua25vd25QRFVIYW5kbGVycyBjb3VudGVyLgogICAKICAgICAtIHRyeSB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWZzIHdoZW4gcG9zdC1wYXJzZSBmYWlscy4KICAgCjIwMDItMDEtMjUgMDY6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjYpLCB2YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggbWlub3IgcHJvYmxlbSB3aXRoIHN0b3JhZ2VUeXBlIChhbHdheXMgb2theSB0byBzZXQgdG8gY3VycmVudAogICAgICAgdmFsdWUpLgogICAKICAgICAtIGRvbid0IHJlc2V0IHNvbWUgdmFyaWFibGVzIHRvIG9sZCB2YWx1ZSB1bmxlc3Mgd2UgYWN0dWFsbHkgc2V0CiAgICAgICB0aGVtIGluIHRoZSBmaXJzdCBwbGFjZSEKICAgCjIwMDItMDEtMjUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHByaW50IG91dCBkZWJ1Z2dpbmcgaW5mbyBpbiBhIGZ1cnRoZXIgY2FzZSB3aGVyZSBpdCBoYXMgYmVlbgogICAgICAgZnJlZSgpZC4KICAgCiAgICAgLSBzZXQgdGhlIGV4Y2VwdGlvbiBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBlcnJvciBub1N1Y2hOYW1lIHdoZW4KICAgICAgIHdlIGhhdmUgdGhlIGluY29ycmVjdCBudW1iZXIgb2YgaW5kaWNlcy4KICAgCjIwMDItMDEtMjUgMDQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvUkVBRE1FLm5ld2xpYjoKCiAgIGZpbGUgUkVBRE1FLm5ld2xpYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAyLTAxLTI1IDA0OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgdG8gYmVmb3JlIHdoZXJlIChwb3RlbnRpYWxseSkgdGhlIGRhdGEgaXQgaXMKICAgICAgIHRyeWluZyB0byBwcmludCBnZXRzIGZyZWUoKWQuCiAgIAoyMDAyLTAxLTI1IDA0OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBrZWVwIGFzcC0+dmJjb3VudCBjb3JyZWN0IGluIGNyZWF0ZV9zdWJ0cmVlX2NhY2hlKCkgaWYgd2UgZHVtcAogICAgICAgdmFyYmluZHMgaW4gdGhlIEdFVE5FWFQgY2FzZSBiZWNhdXNlIG51bXZhcmJpbmRzID4gbm9uLXJlcGVhdGVycy4KICAgICAgIEZhaWxpbmcgdG8gZG8gdGhpcyB3aWxsIGNhdXNlIHByb2JsZW1zIGxhdGVyIHdoZW4geW91IGl0ZXJhdGUgb3ZlcgogICAgICAgMCAuLiBhc3AtPnZiY291bnQgLSAxIGluIHJlYXNzaWduX3JlcXVlc3RzKCkuCiAgIAoyMDAyLTAxLTI0IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgdXBkYXRlIG1hY3JvcyB0byBwdXQgcGFyZW5zIGFyb3VuZCBwYXJhbWV0ZXJzIHdoZW4gdXNlZCwgaW4gY2FzZSBhIHBhcmFtZXRlciBpcyBhbiBleHByZXNzaW9uLCB3aGljaCBtaWdodCBtdWNrIGFib3V0IHdpdGggb3BlcmF0b3IgcHJlY2VkZW5jZSBydWxlcyBhbmQgY2F1c2UgdW5leHBlY3RlZCBhbmQgdW5kZXNpcmFibGUgYmVoYXZpb3IuCiAgIAoyMDAyLTAxLTI0IDExOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHJ5IHRvIGZpbmQgJiBoYW5kbGUgZXh0ZXJuYWwgaW5kZXhlczsgdXNlIG5ldyBzdHlsZSBuZXQtc25tcCBpbmNsdWRlczsgYWRkCiAgIHJvd19jb3B5OyB1c2UgY29udGV4dCB0eXBlcyAmIGNhc3RzIGluIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBnZW5lcmljIHR5cGVzCiAgIHJlY2FzdCBpbnNpZGUgbWV0aG9kCiAgIAoyMDAyLTAxLTI0IDA2OjAzICBqYnBuCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMyksIHJlYWRfY29uZmlnLmM6CgogICAgIC0gYXZvaWQgZm9ybWF0IHN0cmluZyBuYXN0aWVzIGluIHJlYWRfY29uZmlnX3N0b3JlKCkgd2hlbiB3cml0aW5nIHRvCiAgICAgICBmaWxlcyAoZXhwb3NlZCBlLmcuIGJ5IHRoZSBwZXJzaXN0ZW50IHN5c05hbWUuMCBzdHVmZiAtLSB0cnkKICAgICAgIHNubXBzZXQgaG9zdCBzeXNOYW1lLjAgcyAiJTA4eCIgLS0gb29wcykKICAgCjIwMDItMDEtMjQgMDQ6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZG9uJ3QgYXV0b21hdGljYWxseSBhY2NlcHQgYSBtc2dVc2VyTmFtZSBvZiAiIiB3aGVuIHByb2Nlc3NpbmcKICAgICAgIGluY29taW5nIG1lc3NhZ2VzLgogICAKMjAwMi0wMS0yNCAwNDozMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmlnZ2VyIGJ1ZmZlciBmb3IgbXNnQXV0aG9yaXRhdGl2ZUVuZ2luZUlEIGZpZWxkIHNpbmNlIGl0IGlzIG5vdAogICAgICAgbGltaXRlZCB0byAzMiBieXRlcyBsaWtlIFNubXBFbmdpbmVUQy4gIFJlYWxseSB0aGlzIG5lZWRzIHRvIGJlCiAgICAgICBhbGxvY2F0ZWQgYnkgdGhlIHNlY3VyaXR5IG1vZHVsZSBidXQgZm9yIG5vdyB3ZSdsbCBqdXN0IG1ha2UgaXQKICAgICAgIHR3aWNlIGFzIGJpZy4KICAgCjIwMDItMDEtMjQgMDM6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQUlYIHN1cHBvcnQgZm9yIHRoZSBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNlY01vZGVsIG9mIDAgaXMgYSBwYXJzZSBlcnJvciBpbiBIZWFkZXJEYXRhCiAgIAoyMDAyLTAxLTIzIDA3OjIzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiZSBjYXJlZnVsIHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZiBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlcyBpbgogICAgICAgc25tcHYzX3BhcnNlIC0tIGZpeGVzIG1lbW9yeSBsZWFrcyB3aGVuIG1hbGZvcm1lZCBQRFVzIGFyZQogICAgICAgcmVjZWl2ZWQuCiAgIAoyMDAyLTAxLTIyIDE5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oOgoKICAgY2hnIGFwaSBmb3Igc25tcF9vaWRfbmNvbXBhcmUsIGRvbid0IGltcGxlbWVudCBpdCB2aSBzbm1wX29pZF9jb21wYXJlCiAgIAoyMDAyLTAxLTIyIDE5OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX2FycmF5Lmg6CgogICBhZGQgR2V0X29pZF9kYXRhX2NvdW50KCk7IGFkZCBzdWJzZXQgc3VwcG9ydAogICAKMjAwMi0wMS0yMiAxOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBtaWIuYyAsIG1pYi5oOgoKICAgYWRkIG5ldHNubXBfc3RyMm9pZCgpCiAgIAoyMDAyLTAxLTIyIDE5OjQxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbgogICAKMjAwMi0wMS0yMiAxOTo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb247IGFkZCBwcmVsaW1pbmFyeSBsb2NraW5nIGNvZGU7IGFkZCB0YV9jaGVja19yb3dfc3RhdHVzCiAgIAoyMDAyLTAxLTIyIDA2OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbV92YXJzLmM6CgogICAgIC0gZml4IGJ1ZyBqdXN0IGludHJvZHVjZWQgd2hlcmUgc2V0dGluZyBhbiBleGlzdGluZyByb3cncyBzdGF0dXMgdG8KICAgICAgIGNyZWF0ZUFuZEdvKDQpIG9yIGNyZWF0ZUFuZFdhaXQoNSkgd291bGQgZGVsZXRlIHRoZSByb3cuCiAgIAoyMDAyLTAxLTIyIDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIGEgcGFyc2UgZXJyb3IgaWYgd2UgcmVjZWl2ZSBVc21TZWN1cml0eVBhcmFtZXRlcnMgd2l0aCBhCiAgICAgICBtc2dVc2VyTmFtZSB0aGF0IGlzIGlsbGVnYWxseSBsb25nLgogICAKMjAwMi0wMS0yMiAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAgIC0gb29wcywgbGVmdCBvbGQgY29kZSBpbiAjaWYgMCBicmFuY2ggQUdBSU4uICBJIGFtIGdldHRpbmcgaW50byBiYWQKICAgICAgIGhhYml0cyEKICAgCjIwMDItMDEtMjIgMDM6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVha3MgaW4gcm93IGNyZWF0aW9uL2Rlc3RydWN0aW9uCiAgIAogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIHZhbGlkaXR5IGNoZWNraW5nIG9mIHNubXBOb3RpZnlUYWcsIHNubXBOb3RpZnlUeXBlCiAgICAgICBhbmQgc25tcE5vdGlmeVN0b3JhZ2VUeXBlLgogICAKICAgICAtIHBhc3NlcyA2LjUuMS4wIC0tIDYuNS44LjMKICAgCjIwMDItMDEtMjIgMDE6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDItMDEtMjEgMjM6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSB0aWR5IHRoaW5ncyB1cCBhIGJpdCAoaGFkIGxlZnQgc29tZSBvbGQgY29kZSBzaXR0aW5nIGlmICNpZiAwCiAgICAgICBicmFuY2gpLgogICAKICAgICAtIHJlbWVtYmVyIHRvIGNsb3NlICh0YXJnZXQtPnNlc3MpIHdoZW4gd2UgbW92ZSBhIHRhcmdldCB0bwogICAgICAgbm90SW5TZXJ2aWNlKDIpLgogICAKMjAwMi0wMS0yMSAxMTowNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRBZGRyVGFibGUKICAgCjIwMDItMDEtMjEgMDY6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgICAtIGltcGxlbWVudCBzbm1wVGFyZ2V0U3BpbkxvY2sgb2JqZWN0CiAgIAoyMDAyLTAxLTE4IDA5OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVZpZXdUcmVlRmFtaWx5VGFibGUuICBQYXNzZXMgYWxsIHRoZQogICAgICAgcmVsZXZhbnQgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS40LjAuMSAtLSA1LjQuOS43IGluY2x1c2l2ZSkuCiAgIAoyMDAyLTAxLTE4IDA4OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiB2YWNtLmMgLCB2YWNtLmg6CgogICAgIC0gYWRkIGEgc3dpdGNoIHRvIHZhY21fZ2V0Vmlld0VudHJ5KCkgdG8gYWxsb3cgdGhlIG1hc2sgZW50cmllcwogICAgICAgdG8gYmUgaWdub3JlICh3aGljaCBpcyB3aGF0IHlvdSB3YW50IHdoZW4geW91IGFyZSBqdXN0IHVzaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIHRvIGxvb2sgdXAgYW4gZW50cnkgaW4gdGhlIHRhYmxlIGluIG9yZGVyIHRvIHdyaXRlIHNvbWUgbmV3CiAgICAgICB2YWx1ZSB0byBvbmUgb2YgdGhlIGNvbHVtbmFyIG9iamVjdHMpLgogICAKMjAwMi0wMS0xOCAwNjowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21BY2Nlc3NUYWJsZS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0ICg1LjMuMCAtLSA1LjMuOS43IGluY2x1c2l2ZSkuCiAgIAoyMDAyLTAxLTE4IDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlIChpLmUuIGRvbid0CiAgICAgICBqdXN0IGRvIGV2ZXJ5dGhpbmcgaW4gdGhlIENPTU1JVCBwaGFzZSkuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS4yLjAgLS0gNS4yLjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwNDowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGVycm9yIHN0YXR1cyBhZnRlciBDT01NSVQgb3IgVU5ETwogICAgICAgcGhhc2VzIHdpdGggY29tbWl0RmFpbGVkIG9yIHVuZG9GYWlsZWQgKGJ1dCBkbyB0cmFuc2xhdGUgZXJyb3IKICAgICAgIHJldHVybnMgZnJvbSB0aG9zZSBwaGFzZXMgaW50byB0aG9zZSBlcnJvcnMgd2hlbiB3ZSBkb24ndCBoYXZlIGFuCiAgICAgICBleGlzdGluZyBlcnJvciBzdGF0dXMpLgogICAKMjAwMi0wMS0xNyAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ0lEIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlIHBhY2tldAogICAgICAgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE3IDA2OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnTWF4U2l6ZSBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZQogICAgICAgcGFja2V0IGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNSAwODoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHRvcCBsZXZlbCBpbmNsdWRlIHdoaWNoIGluY2x1ZGVzIHVzZWZ1bCBzbm1wbGliIGhlYWRlcnMKICAgCjIwMDItMDEtMTUgMDg6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL3VjZC1zbm1wLzogYWdlbnRfaW5kZXguaCAsIGFnZW50X3JlYWRfY29uZmlnLmgKICAgLCBhZ2VudF9yZWdpc3RyeS5oICwgYWdlbnRfdHJhcC5oICwgYXNuMS5oICwKICAgYXV0b19ubGlzdC5oICwgY2FsbGJhY2suaCAsIGRlZmF1bHRfc3RvcmUuaCAsCiAgIGRzX2FnZW50LmggLCBoZWFkZXJfY29tcGxleC5oICwgaW50NjQuaCAsIGtleXRvb2xzLmgKICAgLCBtaWIuaCAsIG1pYl9tb2R1bGVfY29uZmlnLmggLCBtaWJpbmNsLmggLAogICBwYXJzZS5oICwgcmVhZF9jb25maWcuaCAsIHNjYXBpLmggLCBzbm1wLXRjLmggLAogICBzbm1wLmggLCBzbm1wX2FnZW50LmggLCBzbm1wX2FsYXJtLmggLCBzbm1wX2FwaS5oCiAgICwgc25tcF9jbGllbnQuaCAsIHNubXBfZGVidWcuaCAsIHNubXBfaW1wbC5oICwKICAgc25tcF9sb2dnaW5nLmggLCBzbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBfdmFycy5oICwKICAgc25tcHVzbS5oICwgc25tcHYzLmggLCBzdHJ1Y3QuaCAsIHN5c3RlbS5oICwKICAgdG9vbHMuaCAsIHRyYW5zZm9ybV9vaWRzLmggLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAgICwgdWNkLXNubXAtY29uZmlnLmggLCB1Y2Qtc25tcC1pbmNsdWRlcy5oICwKICAgdXRpbF9mdW5jcy5oICwgdmFyX3N0cnVjdC5oICwgdmVyc2lvbi5oOgoKICAgY3JlYXRlIDQueCBoZWFkZXJzIHRoYXQgYXJlIHdyYXBwZXJzIHBvaW50aW5nIHRvIG5ldyBoZWFkZXJzCiAgIAoyMDAyLTAxLTE0IDE1OjA4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIFVzZXJSb3dBY3Rpb24gYW5kIHZvaWQgcG9pbnRlcgogICAKMjAwMi0wMS0xNCAxMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsIE1ha2VmaWxlLmluOgoKICAgLT4gbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAKMjAwMi0wMS0xNCAxMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlZAogICAKMjAwMi0wMS0xNCAxMzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGNvcHkgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCBhbmQgdXBkYXRlIHRvIG5ldC1zbm1wIHVzZSBuZXcgYWdlbnQgZGlyCiAgIAoyMDAyLTAxLTE0IDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oICwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X2luZGV4LmggLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgYWdlbnQvYXV0b19ubGlzdC5jICwgYWdlbnQvYXV0b19ubGlzdC5oICwKICAgYWdlbnQvZHNfYWdlbnQuaCAsIGFnZW50L2tlcm5lbC5jICwgYWdlbnQvbWliX21vZHVsZXMuYwogICAsIGFnZW50L21pYl9tb2R1bGVzLmggLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLCBhZ2VudC92YXJfc3RydWN0LmggLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAogICAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcE1lZGlhLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcFJvdXRlLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcHY2LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3AuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBtb3ZlZCB0aGUgL2FnZW50IGluc3RhbGxlZCBoZWFkZXJzIHRvIC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQKICAgCjIwMDItMDEtMTMgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIGEgY291cGxlIG1vcmUgaW5zdGFsbCBoZWFkZXJzLgogICAKMjAwMi0wMS0xMSAxNDoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluICwgbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLAogICBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmggLAogICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5oCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oCiAgICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oICwgYWdlbnQvaGVscGVycy9udWxsLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmggLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oICwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhcHBzL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gQWRkIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIHRvIGluY2x1ZGUgcGF0aC4KICAgLSBSZW5hbWUgMyBhZ2VudCBsaWJyYXJpZXMgZnJvbSBsaWJ1Y2QqIC0+IGxpYm5ldHNubXAqCiAgIAoyMDAyLTAxLTExIDA3OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGRvbid0IHVzZSB3aGlsZSh4LS0gPj0gMCkgbG9vcHMgZm9yIG5ldyB1bnNpZ25lZCBpbmRleCBjb21wb25lbnRzCiAgIAoyMDAyLTAxLTExIDA1OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGJlIGNhcmVmdWwgYWJvdXQgc2lnbmVkZXNzIG9mIGluZGV4IGNvbXBvbmVudHMgaW4gdGFibGVzCiAgIAoyMDAyLTAxLTEwIDEzOjEyICBuYmEKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ3JlYXRlIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMS0xMCAwODoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGxvbmcgbG9vcCB2YXJpYWJsZSBpbiB2YXJfc3lzT1JUYWJsZSgpIHRvIGF2b2lkCiAgICAgICBpbmNvcnJlY3QgbGV4aS1vcmRlcmluZyB3aGVuIGRvaW5nIHJlcXVlc3RzIGxpa2UgR0VUTkVYVAogICAgICAgc3lzT1JEZXNjci40Mjk0OTY3Mjk1LgogICAKICAgICAtIG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgY2hhbmdlcwogICAKMjAwMi0wMS0xMCAwNzozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrIGluIHJlYXNzaWduX3JlcXVlc3RzKCkKICAgCjIwMDItMDEtMTAgMDc6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNldCB0eXBlIGZvciB1bmhhbmRsZWQgR0VUIHJlcXVlc3RzIGluIGhhbmRsZV9wZHUoKSB0byBiZQogICAgICAgbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gbm9TdWNoT2JqZWN0IChub1N1Y2hPYmplY3QgZXhjZXB0aW9ucwogICAgICAgYXJlIGRldGVjdGVkIGFuZCBleHBsaWNpdGx5IHNldCBlYXJsaWVyKS4KICAgCjIwMDItMDEtMTAgMDU6NTIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gY29ycmVjdCB0eXBvIHRoYXQgbWVhbnQgZXJyb3IgcmV0dXJucyBmcm9tIG9sZC1hcGkgd3JpdGUgbWV0aG9kcwogICAgICAgd2VyZSBpZ25vcmVkLgogICAKMjAwMi0wMS0xMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gY2hhbmdlIHZhbHVlIG9mIFNUQVRfVEFSR0VUX1NUQVRTX0VORCBzbyB0aGF0IG1pYklJL3NubXBfbWliLmMgY2FuCiAgICAgICByZXR1cm4gdmFsdWVzIG9mIG1hbmRhdG9yeSBvYmplY3RzIHNubXBTaWxlbnREcm9wcyBhbmQKICAgICAgIHNubXBQcm94eURyb3BzLgogICAKMjAwMi0wMS0wOSAwODo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB1bmtub3duL2lsbGVnYWwgdmFyYmluZCB0eXBlcyBpbiB2MS92MmMgUERVcyBjYXVzZQogICAgICAgc25tcEluQVNOUGFyc2VFcnJzIHRvIGJlIGluY3JlbWVudGVkLgogICAKMjAwMi0wMS0wOSAwNzo1NSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDkgMDc6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa2dldC5jOgoKICAgICAtIGJyaW5nIGFwcC1zcGVjaWZpYyBvcHRpb25zIGluIGxpbmUgd2l0aCBzbm1wYnVsa3dhbGsgKC1DIHJhdGhlcgogICAgICAgdGhhbiAtQikKICAgCjIwMDItMDEtMDkgMDc6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBmb3JtYXR0aW5nIGNoYW5nZSB0byB1c2FnZSBtZXNzYWdlCiAgIAoyMDAyLTAxLTA5IDA2OjM1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDggMDg6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBhZGQgb3B0aW9ucyBmcm9tIHNubXB3YWxrCiAgIAogICAgIC0gYWxsb3cgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycyB0byBiZSBzZXQKICAgCiAgICAgLSBjaGFuZ2UgZGVmYXVsdCB2YWx1ZSBvZiBtYXgtcmVwZWF0ZXJzIHRvIGEgbG93ZXIgdmFsdWUgdG8gYXZvaWQKICAgICAgIHRpbWVvdXRzIHdpdGggc2xvd2VyIGFnZW50cwogICAKMjAwMi0wMS0wOCAwODoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdHJ5IHRvIG1hbGxvYygpIGEgemVyby1sZW5ndGggYnVmZmVyLCBpbiBjYXNlIHNvbWUgbWFsbG9jKClzCiAgICAgICBjb21wbGFpbi4KICAgCjIwMDItMDEtMDggMDg6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhvcGVmdWxseSBmaW5hbCBHRVRCVUxLIGZpeCAtLSBwYXNzZXMgYWxsIFNpbHZlckNyZWVrJ3MgR0VUQlVMSwogICAgICAgdGVzdHMgKGluY2wuIG5lZ2F0aXZlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMpCiAgIAoyMDAyLTAxLTA4IDA2OjU5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oICwKICAgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgICAgLSBHRVRCVUxLIGZpeCB0byBpZ25vcmUgdmFyYmluZHMgZm9yIHdoaWNoIHplcm8gcmVwZXRpdGlvbnMgYXJlCiAgICAgICBjYWxsZWQgZm9yCiAgIAogICAgIC0gZHJvcCBhc3AtPnN0YXJ0IGFuZCBhc3AtPmVuZCB3aGljaCBhcmUgaGFyZGx5IHVzZWQgYW5kIHdoaWNoIGdldAogICAgICAgaW4gdGhlIHdheSBvZiB0aGlzIHR5cGUgb2YgcHJvY2Vzc2luZwogICAKICAgICAtIGlnbm9yZSBuZWdhdGl2ZSByZXBldGl0aW9ucyBpbiBidWxrX3RvX25leHQgaGFuZGxlcgogICAKMjAwMi0wMS0wNyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wMS0wNyAwODozOCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL0lOU1RBTEw6CgogICBQTkdHcmFwaCAtPiBHRDo6R3JhcGgKICAgCjIwMDItMDEtMDQgMTM6NDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGRlcGVuZGVuY2llcwogICAKMjAwMi0wMS0wNCAxMzoyNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaDoKCiAgIG1vdmUgYWNjb25maWcuaCBiYWNrIHRvIHRoZSB0b3AgZGlyIHdoZXJlIGl0cyBhcHBhcmVudGx5IHN1cHBvc2VkIHRvIGxpdmUuCiAgIAoyMDAyLTAxLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtb3JlIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHRyYW5zbGF0aW9ucy4gIHdhcm5pbmc6IGluY2x1ZGVzIHRoZSBkZWZhdWx0IHBlcnNpc3RlbnQgc3RvcmUuCiAgIAoyMDAyLTAxLTA0IDEzOjA0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlLzogbmV0LXNubXAvLmN2c2lnbm9yZSAsIHVjZC1zbm1wLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDEtMDQgMTM6MDIgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgYnVpbHQgbmV0LXNubXAtY29uZmlnCiAgIAoyMDAyLTAxLTA0IDEzOjAwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4gLCBlbmNvZGVfa2V5Y2hhbmdlLmMgLAogICBub3RpZmljYXRpb25fbG9nLmMgLCBzbm1wYnVsa2dldC5jICwgc25tcGJ1bGt3YWxrLmMKICAgLCBzbm1wZGVsdGEuYyAsIHNubXBkZi5jICwgc25tcGdldC5jICwKICAgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYyAsIHNubXBzdGF0dXMuYyAsCiAgIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsIHNubXB0cmFuc2xhdGUuYyAsCiAgIHNubXB0cmFwLmMgLCBzbm1wdHJhcGQuYyAsIHNubXB0cmFwZF9oYW5kbGVycy5jCiAgICwgc25tcHRyYXBkX2xvZy5jICwgc25tcHVzbS5jICwgc25tcHZhY20uYwogICAsIHNubXB3YWxrLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwTWVkaWEuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwUm91dGUuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwdjYuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2tlcm5lbF9saW51eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc25tcF9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMgLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvY2FsbGJhY2suYyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL29pZF9hcnJheS5jICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXV0aC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXBfZW51bS5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc25wcmludGYuYyAsIHNubXBsaWIvc3RydG9sLmMgLAogICBzbm1wbGliL3N0cnRvdWwuYyAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMKICAgLCBzbm1wbGliL3ZhY20uYyAsIHRlc3RpbmcvVC5jICwKICAgdGVzdGluZy9ldGltZXRlc3QuYyAsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jICwKICAgdGVzdGluZy9taXNjdGVzdC5jICwgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS50b3AgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBzZWRzY3JpcHQuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2F1dG9fbmxpc3QuYyAsCiAgIGFnZW50L2tlcm5lbC5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKICAgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMKICAgLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiAgICwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluOgoKICAgcmVtb3ZlZCB1bmVlZGVkIG9sZGVyIGZpbGVzCiAgIAoyMDAyLTAxLTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoICM0OTIwNzIgdG8gbWFpbiBicmFuY2gKICAgCjIwMDItMDEtMDMgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGNoZWNrIHJlc3VsdHMgb2Ygc2V0bW50ZW50IGJlZm9yZSB1c2luZyB0aGVtLgogICAKMjAwMi0wMS0wMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAyLTAxLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtOgoKICAgUE5HR3JhcGggLT4gR0RHcmFwaAogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoYW5nZSBleHBvcnQgbmFtZSB0byAibmV0LXNubXAiIGZyb20gInVjZC1zbm1wIgogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYWtlIHVzZSBvZiB0aGUgbmV3IG11bHRpLWFkZCBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YXNldC5jICwgdGFibGVfZGF0YXNldC5oOgoKICAgYWRkIG11bHRpcGxlIGRlZmF1bHQgcm93IGNvbHVtbiBkZWZpbml0aW9ucyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYyAsIHRhYmxlLmg6CgogICBhZGQgbXVsdGlwbGUgaW5kZXhlcyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zIChnZXRTdGF0UHRyIG5vIGxlc3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4gLCBvaWRfc3Rhc2guYyAsIG9pZF9zdGFzaC5oOgoKICAgZGF0YSBzdGFzaGluZyBiYXNlZCBvbiBhbiBvaWQgY2FjaGluZyB0cmVlLgogICAKMjAwMS0xMi0yNiAxNTozNiAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCAsIE1ha2VmaWxlLlBMICwgbWFuYWdlci5wbToKCiAgIHVwZGF0ZSB0byBtYWtlIGl0IGEgYml0IGVhc2llciB0byBpbnN0YWxsIChpbmNsdWRpbmcgYSBNYWtlZmlsZSBmb3IKICAgYXV0b21hdGVkIGluc3RhbGxhdGlvbikuCiAgIAoyMDAxLTEyLTI2IDEzOjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMICwgZGlzcGxheXRhYmxlLnBtICwgZ2V0VmFsdWVzLnBtCiAgICwgZ3JlZW4uZ2lmICwgbWFuYWdlci5wbSAsIHJlZC5naWYgLCBzZXR1cGF1dGgKICAgLCBzZXR1cGRiICwgc2V0dXB1c2VyICwgc25tcHRvc3FsOgoKICAgbW92aW5nIG1hbmFnZXIgdG8gcGVybC9tYW5hZ2VyCiAgIAoyMDAxLTEyLTI0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmggLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUxICkKICAgCjIwMDEtMTItMjQgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCBtaWIyYyAsIG1pYjJjLmNvbmY6CgogICBVcGRhdGUgdG8gbWFrZSBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IGl0J3Mgbm90IGZpbmlzaGVkIGFuZCB5b3UgbXVzdAogICByZWZlcmVuY2UgYSBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24gZmlsZSBhdCB0aGlzIHBvaW50LgogICAKMjAwMS0xMi0yNCAxNTo1MSAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAubm90LmV2ZW4uY2xvc2UgKQogICAKMjAwMS0xMi0yNCAxNTo1MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbW9yZSBjb21tZW50cy4KICAgCjIwMDEtMTItMjQgMTU6NDEgIGhhcmRha2VyCgogICAqIEZBUSAsIFJFQURNRToKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBORVdTICwgUkVBRE1FOgoKICAgNS4wIGNvbW1lbnQgdXBkYXRlcy4KICAgCjIwMDEtMTItMjQgMTU6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGRveHlnZW4gY29tbWVudHMgb24gYSBmZXcgZnVuY3Rpb25zLgogICAKMjAwMS0xMi0yNCAxNTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0xMi0yNCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIGZvciBub24tZXhpc3RlbnQgbW9kdWxlcwogICAKMjAwMS0xMi0yMyAxNTo0NyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnOgoKICAgb3Bwcy4gIERvbid0IGNoZWNrIGluIGdlbmVyYXRlZCBmaWxlcy4KICAgCjIwMDEtMTItMjMgMTU6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBycG0gdXNhZ2UgKEkgaG9wZSkuCiAgIAoyMDAxLTEyLTIzIDE0OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkZWQgLmN2c2lnbm9yZSBmaWxlCiAgIAoyMDAxLTEyLTIzIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbmV0LXNubXAtY29uZmlnLgogICAKMjAwMS0xMi0yMyAxNDo0NyAgaGFyZGFrZXIKCiAgICogTkVXUyAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIG5ldC1zbm1wLWNvbmZpZyAsIG5ldC1zbm1wLWNvbmZpZy5pbiAsIGFnZW50L01ha2VmaWxlLmluCiAgICwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gY3JlYXRlZCBhIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgdG8gcmVwb3J0IGNvbXBpbGVkIGxpYnMuCiAgIC0gc2VwYXJhdGVkIGxpYnMgbmVlZGVkIGJ5IGFnZW50IGZyb20gdGhvc2UgbmVlZGVkIGJ5IHRoZSByZXN0IG9mIHRoZQogICAgIGFwcGxpY2F0aW9ucy4KICAgCjIwMDEtMTItMjEgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGhvdyB0byBpbnN0YWxsIERCSQogICAKMjAwMS0xMi0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICByZW1vdmUgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgQW55RGF0YQogICAKMjAwMS0xMi0yMSAxNjozNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1ha2UgaW5zdGFsbCBhcyByb290LgogICAKMjAwMS0xMi0yMSAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMICwgSU5TVEFMTCAsIElOU1RBTEwgLAogICBJTlNUQUxMOgoKICAgYmV0dGVyIGRlc2NyCiAgIAoyMDAxLTEyLTIxIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjIwMDEtMTItMjEgMTY6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGl0J3MgdmVyeSBhbHBoYSBjb2RlLgogICAKMjAwMS0xMi0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG5ldyBpbnN0cnVjdGlvbnMKICAgCjIwMDEtMTItMjEgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGRveHlnZW4uCiAgIAoyMDAxLTEyLTIxIDEwOjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmg6CgogICBjb21waWxlIGluIGFnZW50IHNwZWNpZmljIHN1cHBvcnQgbWlicy4KICAgCjIwMDEtMTItMjEgMDk6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoc3RpbGwgaW5jb21wbGV0ZSkgMm5kIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTIxIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKGluY29tcGxldGUpIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTE5IDE3OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCByZWFsbG9jIGZsb2F0IGFuZCBkb3VibGUgYnVpbGRzLgogICAKMjAwMS0xMi0xOSAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzYyBmaXhlcy4KICAgCjIwMDEtMTItMTkgMTY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZGVmaW5lIGEgQyBkYXRhdHlwZSBhcyAkdmFyLmRlY2wgKHBlciBSb2JlcnQncyBzdWdnZXN0aW9uLiAgUm9iZXJ0OiB3ZQogICBwcm9iYWJseSB3YW50IHBvaW50ZXJzIGZvciB0aGluZ3MgbGlrZSBzdHJpbmdzLCBubz8gIG1heWJlIG9uZSB0eXBlCiAgIHRoYXQgaXMgYWx3YXlzIGEgcG9pbnRlciBhbmQgYW5vdGhlciB0aGF0IGlzIHNvbWV0aW1lcyBkZXBlbmRpbmcgb24KICAgdGhlIHR5cGU/KQogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgIGNoYW5nZSBkZWZhdWx0IGJ1bGsgbnVtYmVyIHRvIDEwMCBmcm9tIHRoZSByaWRpY3Vsb3VzIDEwMDAuCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwKICAgYXBwcy9NYWtlZmlsZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtYWtlIGRlcGVuZAogICAKMjAwMS0xMi0xOSAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgZ2V0YnVsayB1cGRhdGVzIHRvIG1ha2UgaXQgdGhlIG1vZHVsZXMgcmVzcG9uc2liaWxpdHkgdG8gdXBkYXRlIHRoZQogICB2YXJiaW5kIGNoYWluIGFuIHRoZSByZXBlYXQgY291bnRlci4KICAgCjIwMDEtMTItMTkgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oCiAgICwgaGVscGVycy9NYWtlZmlsZS5pbiAsIGhlbHBlcnMvYWxsX2hlbHBlcnMuYyAsCiAgIGhlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5oOgoKICAgR0VUQlVMSyBzdXBwb3J0IGZvciB0aGUgbmV3IEFQSS4KICAgICAtIG1heSBuZWVkIHRvIG1ha2Ugc29tZSBzbGlnaHQgbW9kaWZpY2F0aW9ucy4KICAgICAtIGRlZmF1bHRzIHRvIEdFVE5FWFQgZm9yIGFueSBoYW5kbGVyIHRoYXQgZG9lc24ndCBzZXQgSEFORExFUl9DQU5fR0VUQlVMSy4KICAgICAtIGRvZXNuJ3QgZGVhbCBwcm9wZXJseSB5ZXQgd2l0aCBlbmQtb2YtbWliIGNvbmRpdGlvbiByZW1vdmFsLgogICAKMjAwMS0xMi0xOSAwNjowNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgLXAgb3B0aW9uLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcyBvcHRpb25hbAogICAgICAgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSBkcm9wIChsb25nLWRlcHJlY2F0ZWQpIC1xIG9wdGlvbi4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIGFuZAogICAgICAgY2hhbmdlZCBkZXNjcmlwdGlvbiBvZiBzb21lIG9wdGlvbnMgdG8gYmUgbW9yZSBzaW1pbGFyIHRvIHNubXBkCiAgICAgICBvcHRpb25zICh3aGVyZSBhcHByb3ByaWF0ZSkuCiAgIAoyMDAxLTEyLTE5IDA0OjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucy4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMKICAgICAgIG9wdGlvbmFsIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBwbHVzCiAgICAgICBtaW5vciBmb3JtYXR0aW5nIHR3ZWFrcy4KICAgCiAgICAgLSByZS13cml0dGVuIG9wdGlvbnMgcHJvY2Vzc2luZyBsb29wIHRvIHVzZSBvcHRhcmcoKS4KICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy41KSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0JKRUNUIElERU5USUZJRVIgZm9yIHdpbjMyIGFnZW50CiAgIAoyMDAxLTEyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHdhcm5pbmcgLT4gZGVidWcuCiAgIAoyMDAxLTEyLTE3IDEwOjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgZ2V0TmV4dCBxdWVyaWVzIHdoZXJlIHRoZSBpbml0aWFsIHZhcmJpbmQtPnR5cGUgaXMKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgKHRoZXNlIGN1cnJlbnRseSBhcmlzZSBvbmx5IGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzIGJ1dCB0aGUgaGFuZGxpbmcgaXMgbm90IHNwZWNpZmljIHRvIEFnZW50WCkuCiAgIAogICAgICAgQmFzaWNhbGx5IHRoaXMgaXMgZG9uZSBieSBwZXJmb3JtaW5nIGEgR0VUIGZpcnN0IG9uIGFsbCB0aGUKICAgICAgIHZhcmlhYmxlcyBpbiBhIHJlcXVlc3QuICBGb3IgdmFyaWFibGVzIHRoYXQgaGFkIGFuIGluaXRpYWwgdHlwZSBvZgogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgd2VyZSBzYXRpc2ZpZWQgYnkgdGhpcyBpbml0aWFsIEdFVCwgd2UgdXNlCiAgICAgICB0aGlzIHZhbHVlIGFzIHRoZSByZXN1bHQuICBGb3IgdmFyaWFibGVzIHRoYXQgZGlkIG5vdCBoYXZlIGFuCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSwgb3IgdmFyaWFibGUgdGhhdCBoYWQgYW5kCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSBidXQgd2VyZSBub3Qgc2F0aXNmaWVkIGJ5IHRoaXMKICAgICAgIEdFVCByZXF1ZXN0LCB3ZSBwcm9jZWVkIHRvIHBlcmZvcm0gYSBHRVQtTkVYVCB0eXBlIHJlcXVlc3QgYXMKICAgICAgIG5vcm1hbC4KICAgCjIwMDEtMTItMTcgMTA6MDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaCBlbXVsYXRlcyBvbGQKICAgICAgIGZ1bmN0aW9uYWxpdHkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIHJlZ2lzdGVyX29sZF9hcGkoKS4KICAgCjIwMDEtMTItMTcgMDk6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggYm9ndXMgaW5kZW50CiAgIAoyMDAxLTEyLTE3IDA5OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSByaWdodCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciByZWdpc3Rlcl9taWJfY29udGV4dDIoKSBpbgogICAgICAgcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gZGl0dG8uCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgaGFuZGxlciBpbmplY3Rpb24gb3JkZXIgKHNlcmlhbGl6ZSBuZWVkcyB0byBiZSBjYWxsZWQgZmlyc3QpCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW5uZWVkZWQgY2hlY2sgZm9yIGFscmVhZHkgYW5zd2VyZWQgQVNOX05VTExzIGluIGZpcnN0IHBhc3MuCiAgIAoyMDAxLTEyLTEyIDA5OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IC5jdnNpZ25vcmUgLCBJTlNUQUxMICwgTUFOSUZFU1QKICAgLCBSRUFETUUgLCBzbm1wc2g6CgogICAtIGRvYyB1cGRhdGUuCiAgIC0gc25tcHNoIG5vdyBzdXBwb3J0cyBhbGlhc2VzIHNvIHlvdSBjYW4gZGVmaW5lIGNvbW1hbmQgc2V0cy4KICAgLSBzbm1wc2ggbm93IHJlYWRzIGEgfi8uc25tcHNocmMgZmlsZSBmb3Igc3RvcmluZyB0aGVzZSBkZWZpbmVkIGFsaWFzZXMuCiAgIAoyMDAxLTEyLTEyIDA2OjQyICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gbmV3IGZ1bmN0aW9uIGpvaW5fc3VidHJlZSgpIHdoaWNoIHJlcGFpcnMgInB1bmN0dXJlZCIgc3VidHJlZXMKICAgICAgICh0aGVzZSBhcmlzZSBpbiBwYXJ0aWN1bGFyIHdoZW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zIGFyZQogICAgICAgd2l0aGRyYXduKS4KICAgCiAgICAgLSBjb3B5IHJlZ2luZm8gd2hlbiBkb2luZyBhIHJhbmdlIHJlZ2lzdHJhdGlvbiAoYXMgd2UgdXNlZCB0byBkbwogICAgICAgd2l0aCB0aGUgdmFyaWFibGUgc3RydWN0dXJlKSwgc2luY2UgZWFjaCBub2RlIG11c3Qgc3RhbmQgYWxvbmUuCiAgIAogICAgIC0gYWRkIHBhcmFtZXRlciB0byByZWdpc3Rlcl9taWJfY29udGV4dDIgdG8gYWxsb3cgUkVHSVNURVJfT0lECiAgICAgICBjYWxsYmFja3MgdG8gYmUgd2l0aGhlbGQgKGZvciBpbnN0YW5jZSwgeW91IG5lZWQgdGhpcyB0byBhdm9pZAogICAgICAgZXhjZXNzIEFnZW50WCB0cmFmZmljIGZvciByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcmVtb3ZlIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSAtLSB0aGlzIGhhcyBtb3ZlZCB0byBvbGRfYXBpLmMKICAgCiAgICAgLSBjYWxsIGpvaW5fc3VidHJlZSgpIGluIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkuCiAgIAoyMDAxLTEyLTEyIDA2OjMzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaGFuZGxlci5oOgoKICAgICAtIGFkZCBmdW5jdGlvbnMgc25tcF9oYW5kbGVyX2ZyZWUoKSwgc25tcF9oYW5kbGVyX2R1cCgpLAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9kdXAoKSBhbmQKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpLgogICAKMjAwMS0xMi0xMSAxODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggYnVnIHdoZXJlIHBkdS0+Y29udGV4dE5hbWUgaXMgTlVMTC4KICAgCjIwMDEtMTItMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQklUUzogaXBhZGRyIC0+IG9jdGV0X3N0cgogICAKMjAwMS0xMi0xMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzZW5kIElOQ0xVU0lWRSBzZWFyY2ggcmFuZ2VzIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTEwIDIwOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgbm9hY2Nlc3MgZmxhZyBmb3Igbm90LWFjY2Vzc2libGUgbm9kZXMKICAgCjIwMDEtMTItMTAgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogQ2hhbmdlcyAsIERCRF9BbnlEYXRhLnBhdGNoICwKICAgRm9ybWF0LnBtICwgSU5TVEFMTCAsIE1BTklGRVNUICwgTWFrZWZpbGUuUEwgLAogICBTdG9yYWdlLnBtICwgc25tcHNoOgoKICAgRmlyc3QgdmVyc2lvbgogICAKMjAwMS0xMi0xMCAwMzoyMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCBhcmcgdG8gZHNfc2V0X3N0cmluZwogICAKMjAwMS0xMi0xMCAwMzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZGl0dG8gaW4gc2V0X3BlcnNpc3RlbnRfZGlyZWN0b3J5KCkKICAgCjIwMDEtMTItMTAgMDM6MTggIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGluIHNldF9jb25maWd1cmF0aW9uX2RpcmVjdG9yeSgpIGJlY2F1c2UKICAgICAgIGRzX3NldF9zdHJpbmcoKSBhbHJlYWR5IGRvZXMgdGhhdCBmb3IgeW91LgogICAKMjAwMS0xMi0wNyAwOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgKICAgLCBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgLSBJbXBsZW1lbnQgbmV3IG1hbnRyYTogImFsd2F5cyBwYXNzIG1vcmUgaW5mb3JtYXRpb24sIHJhdGhlciB0aGFuIGxlc3MiLgogICAtIGZpeCB0YWJsZSBpdGVyYXRlciBHRVRORVhUcyBmb3IgbWlzc2luZyBkYXRhIHBvaW50cy4KICAgLSBhZGQgYSBuZXcgaG9vayB0byBmcmVlIGxvb3AgY29udGV4dHMgYXQgdGhlIGVuZCBvZiB0aGUgZW50aXJlIGl0ZXJhdGlvbi4KICAgCjIwMDEtMTItMDYgMDY6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgKEpCUE4tQ0JMLTQuMSksIGNsaWVudC5jOgoKICAgICAtIGlmIHJlcXVlc3QgSURzIGRvbid0IG1hdGNoLCB0aGVuIGNhbGwgaGFuZGxlX2FnZW50eF9wYWNrZXQoKSAtLQogICAgICAgY29wZXMgYmV0dGVyIHdpdGggdW5leHBlY3RlZCBwYWNrZXRzLCBpbiBwYXJ0aWN1bGFyIGZpeGVzCiAgICAgICBpbnRlcm1pdHRlbnQgZHVwbGljYXRlIHRyYXAgaXNzdWUgKGR1ZSB0byByZXNlbnQKICAgYWdlbnR4LU5vdGlmeS1QRFUpLgogICAKMjAwMS0xMi0wNSAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBBaGVtLiAgT3Bwcy4gIE1pc3NpbmcgaW5jbHVkZXMuCiAgICAgLSBub3RlIHRvIHNlbGY6IGNvbXBpbGUgZmlyc3QsICp0aGVuKiBjaGVjayBpbiBjaGFuZ2VzLgogICAKMjAwMS0xMi0wNSAxMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBhZGQgaW4gdGhlIG1pc3NpbmcgZnVuY3Rpb25zIGZyb20gdGhlIE5FVy1BR0VOVC1BUEkgYnJhbmNoLgogICAgIChhbmQgdG8gYW5zd2VyIFJvYmVydCdzIHBlbmRpbmcgcXVlc3Rpb24gb2Ygd2hhdCBoYXBwZW5lZCwgaXQgd2FzCiAgICAgIGxpa2VseSBvbmUgb2YgdGhlIGZpbGVzIHRoYXQgZmFpbGVkIHRvIGNvbW1pdCBvbiBteSBzaWRlIHRoYXQgeW91CiAgICAgIHRyaWVkIHRvIGZpeCBhbmQgc29tZXdoZXJlIGJldHdlZW4gdGhlIHR3byBvZiB1cyB0aGUgY2hhbmdlcyB3ZXJlIGxvc3QpLgogICAKMjAwMS0xMi0wNSAxMDowMyAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1pbm9yIHR3ZWFrcwogICAKMjAwMS0xMi0wNSAwOToxNCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIGFkZCBUQ1AvSVB2NiBkb21haW4gdG8gQUdFTlQgU1BFQyBzZWN0aW9uCiAgIAogICAgIC0gaW5jb3Jwb3JhdGUgc3VnZ2VzdGlvbnMgZnJvbSByc3RvcnkKICAgCjIwMDEtMTItMDUgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgICAtIHVzZSBTT0NLX1NUUkVBTSBub3QgU09DS19ER1JBTSAoZHVoISkuICBZb3Ugd291bGRuJ3QgYmVsaWV2ZSBob3cKICAgICAgIGNvbmZ1c2luZyB0aGlzIHdhcyAtLSBlLmcuIGhvdyBvbiAqZWFydGgqIGNhbiB0aGF0IGNvbm5lY3QoKSBiZQogICAgICAgc3VjY2VlZGluZyEKICAgCjIwMDEtMTItMDUgMDg6MzYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBzdXJlIHRvIGNsb3NlIHNvY2tldCBpZiB5b3UgY2FuJ3QgbWFsbG9jIHRoZSBlbmNvZGVkIGZhci1lbmQKICAgICAgIGFkZHJlc3MgaW4gc25tcF90Y3BfdHJhbnNwb3J0KCkKICAgCjIwMDEtMTItMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCAsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwICwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCAsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA4OjIzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2cgLCBGQVEgLCBORVdTICwgUkVBRE1FICwKICAgUkVBRE1FLndpbjMyICwgYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwKICAgY29uZmlndXJlICwgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwKICAgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmggLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsIGxvY2FsL21pYjJjICwgbG9jYWwvdGttaWIKICAgLCBtYW4vc25tcGQuY29uZi41LmRlZiAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NubXAuaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCAsIHdpbjMyL2NvbmZpZy5oICwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCAsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyL3dpbjMyLmRzdyAsCiAgIHdpbjMyL3dpbjMyLm9wdCAsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKICAgLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AgLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiAgICwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwICwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AgLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKICAgLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCAsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwCiAgICwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCAsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCAsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCAsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKICAgLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwICwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AgLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3A6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwNzo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gZml4IGJ1ZyBpbiBhZGRyZXNzIHBhcnNlcgogICAKMjAwMS0xMi0wNSAwNzo0OCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWlub3IgY2hhbmdlcyB0bywgYWhlbSwgbWFrZSBpdCBjb21waWxlCiAgIAoyMDAxLTEyLTA1IDA3OjQyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIGNvbmRpdGlvbmFsaXNlICNpbmNsdWRlIDxmY250bC5oPgogICAKMjAwMS0xMi0wNSAwNzozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTItMDUgMDc6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBtZW50aW9uIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgaW4gY29uZmlnLCBhbmQgYWRkIGEgI2RlZmluZSBmb3IgaXQKICAgICAgIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBjYWxsIHNubXBfdGNwNl9jdG9yKCkgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVENQSVB2NkRvbWFpbi5oOgoKICAgICAtIFRDUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBVbnRlc3RlZC4KICAgCjIwMDEtMTItMDUgMDc6MTkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1ha2UgZW5jb2RlZCBhZGRyZXNzZXMgYXQgdHJhbnNwb3J0IG9wZW4gdGltZQogICAKMjAwMS0xMi0wNSAwNzoxNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBtb3ZlICNkZWZpbml0aW9uIG9mIFNOTVBfU1RSRUFNX1FVRVVFX0xFTiBmcm9tIHNubXBUQ1BEb21haW4uYwogICAgICAgdG8gc25tcF90cmFuc3BvcnQuaAogICAKMjAwMS0xMi0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucyBsaWtlLCBvaCwgSSBkb24ndCBrbm93LCBnZXRTdGF0UHRyKCkuCiAgIAoyMDAxLTEyLTA1IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0xMi0wNSAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gY2hhbmdlZCB0ZXh0dWFsIGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMi0wNCAyMjo1MiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeCBiaW5kIHBhcmFtZXRlcnMsIHNvIHRoYXQgdGhlIGFnZW50IHdvcmtzCiAgIAoyMDAxLTEyLTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgLSBtb3ZlIGZvcmdvdHRlbiBmdW5jdGlvbiB0eXBlZGVmcyB0byBpdGVyYXRvciBzcGVjaWZpYyBoZWFkZXIgZmlsZS4KICAgLSBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIGNhbGxiYWNrcyB0byBtYWtlIGZ1bmN0aW9ucyBtb3JlIHJldXNhYmxlLgogICAKMjAwMS0xMi0wNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1vdmUgaXRlcmF0b3Igc3BlY2lmaWMgdGFibGUgaW5mb3JtYXRpb24gaW50byBpdHMgb3duIHN0cnVjdHVyZS4KICAgCjIwMDEtMTItMDQgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIEZpeCBwcm90b3R5cGUgYXMgcG9pbnRlZCBvdXQgYnkgSmVyb21lIFBlZHVjYXNzZQogICAKMjAwMS0xMi0wNCAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1lbnRpb24gdGhhdCBub3QgYWxsIHRyYW5zcG9ydCBkb21haW5zIGFyZSBhbHdheXMgYXZhaWxhYmxlLgogICAKMjAwMS0xMi0wNCAwOTo1NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHJlbW92ZSAtcCBhbmQgLVQgb3B0aW9ucyBmcm9tIGRvY3VtZW50YXRpb24uCiAgIAogICAgIC0gYWRkIGxlbmd0aHkgbmV3IHNlY3Rpb24gZGVzY3JpYmluZyBuZXcgdHJhbnNwb3J0IGFkZHJlc3MKICAgICAgIHNwZWNpZmljYXRpb24gZm9ybWF0LCB3aXRoIGV4YW1wbGVzIGFuZCBldmVyeXRoaW5nIQogICAKMjAwMS0xMi0wNCAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMgZm9yIGFwcHMuCiAgIAoyMDAxLTEyLTA0IDAzOjEwICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBhZGQgY3JlYXRlX29zdHJpbmcgbWV0aG9kLCBleHBvcnQgdWNkU25tcFVEUElQdjZEb21haW5bXQogICAKMjAwMS0xMi0wNCAwMjoxOSAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gbWVudGlvbiBJUHY2IHRyYW5zcG9ydCBkb21haW4gT0lEcyBpbiByZWxldmFudCBjb21tZW50LgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUXVlbGwgYSBjb25zdCBjYXN0IHdhcm5pbmcuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGRlYnVnIG91dHB1dCBmcm9tIHJldHJpZXMuCiAgIAoyMDAxLTEyLTAzIDE1OjA2ICBuYmEKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgSEFWRV9TWVNfVFlQRVNfSCBpcyBub3QgY29uZGl0aW9uYWwuCiAgIAoyMDAxLTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBhbGxvdyBjb21waWxhdGlvbnMgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5LgogICAKMjAwMS0xMi0wMyAxNTowMyAgbmJhCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeGVzIHRvIG1ha2UgVURQSVB2NiB0cmFuc3BvcnQgd29yayBmb3IgU29sYXJpcywgTGludXggYW5kIEZyZWVCU0QuCiAgIEl0IGNvbXBpbGVzLCBhbmQgdGhlIGFwcHMgc2VuZCB2NiBwYWNrZXRzLiBBZ2VudCBub3QgeWV0IHRlc3RlZC4KICAgCjIwMDEtMTItMDMgMDk6NDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mICwgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGNvcHkgcm9iZXJ0cyBzcGlmZnkgaGVhZGVyIHRleHQKICAgCjIwMDEtMTItMDMgMDg6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZGF0ZW50aW1lIGNvbHVtbi4KICAgCjIwMDEtMTItMDMgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBwcm9ibGVtIHdpdGggZG91YmxlIGRlbGVnYXRlZCByZXF1ZXN0cyBhZnRlciBnZXRuZXh0IGxvb3AuCiAgIAoyMDAxLTEyLTAzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dDoKCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliIGFkZGVkIHRvIGRlZmF1bHQgbGlzdC4KICAgCjIwMDEtMTItMDMgMDU6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGRlYnVnZ2luZyBvdXRwdXQgKCJibGFoIikKICAgCjIwMDEtMTEtMzAgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgQ2hhbmdlIGhvdyByZXF1ZXN0IHByb2Nlc3NpbmcgZ2V0cyBkb25lIHN1Y2ggdGhhdCByZXF1ZXN0IG9iamVjdHMgYXJlCiAgIGFsbCBjYWxsb2NlZCBhdCBvbmNlIGFuZCBnZXQgcmV1c2VkIGluc3RlYWQgb2YgcmVhbGxvY2F0ZWQuICBCaWcgc3BlZWQKICAgaW1wcm92ZW1lbnRzLgogICAKMjAwMS0xMS0zMCAxNToyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBkb3h5Z2VuLmNvbmY6CgogICAibWFrZSBkb2MiIHRvIHJ1biBkb3h5Z2VuLgogICAKMjAwMS0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IGRlYnVnX2hhbmRsZXIuYyAsIG11bHRpcGxleGVyLmg6CgogICBkb3h5Z2VuIGZpeGVzCiAgIAoyMDAxLTExLTMwIDA5OjI2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSBpbiByZWdpc3Rlcl9oYW5kbGVyKCkgaWYgYXBwcm9wcmlhdGUuCiAgIAoyMDAxLTExLTMwIDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKSB3aGVuIHN1YmFnZW50IHRyaWVzIHRvCiAgICAgICByZWdpc3RlciBhIE1JQiByZWdpb24gdGhhdCBmYWlscyBlaXRoZXIgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZQogICAgICAgb3IgYmVjYXVzZSBvZiBzb21lIG90aGVyIHJlYXNvbi4KICAgCjIwMDEtMTEtMzAgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIG9mIG9sZF9pbmZvICh0aGF0IG5ldmVyIHNlZW1zIHRvIGdldCB1c2VkIGZvcgogICAgICAgYW55dGhpbmcgYW55d2F5PykKICAgCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgdGhhdCBhcmlzZXMgZHVyaW5nIHJvdyByZWdpc3RyYXRpb24gKGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzKSBiZWNhdXNlIHN1Y2Nlc3NpdmUgdmFycyBjYXVzZSBhcHBhcmVudCBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMgKHRoaXMgaXMgYSBkZWZpY2llbmN5KSAtLSBidXQgaXQgd291bGQgYXBwZWFyIHRoaXMKICAgICAgIGNvdWxkIGFyaXNlIGluIG90aGVyIHNpdHVhdGlvbnMgdG9vIChnZW51aW5lIGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucykuCiAgIAoyMDAxLTExLTMwIDA2OjMzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBmaXggYnJva2VuIHBhcnNpbmcgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzKCkgLS0gbG9vcCB3YXMKICAgICAgIGNvcHlpbmcgdGhlIHNhbWUgKGZpcnN0KSB0b2tlbiBNQVhfQVJHUyB0aW1lcy4KICAgCiAgICAgLSBlbGltaW5hdGUgbWVtb3J5IGxlYWsgaW4gZGl0dG8uCiAgIAogICAgIC0gZml4IHR5cG8gKCJQYXVzaWJsZSBjYXVzZSIgLT4gIlBvc3NpYmxlIGNhdXNlKSBpbiBkaXR0by4KICAgCjIwMDEtMTEtMzAgMDY6MjkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHByaW50IGZkIGluIHNlc3NfcHJvY2Vzc19wYWNrZXQoKSAtLSB1c2VmdWwgZm9yIGRlYnVnZ2luZwogICAKMjAwMS0xMS0zMCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgICAgLSByZW1vdmUgYSBjb3VwbGUgb2YgdW5uZWNlc3NhcnkgI2luY2x1ZGVzIGZyb20gc25tcENhbGxiYWNrRG9tYWluLmgKICAgCiAgICAgLSBzZXQgKm9wYXF1ZSB0byBOVUxMIGFmdGVyIHdlIGZyZWUgaXQgLS0gaXQgbWlnaHQgbWF0dGVyLgogICAKMjAwMS0xMS0zMCAwMzo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBjbG9uZSBQRFUgaW4gaGFuZGxlX2FnZW50eF9zdWJhZ2VudCgpIGJlZm9yZSBzZW5kaW5nIGl0IG9uIGNhbGxiYWNrCiAgICAgICBzZXNzaW9uIHRvIGF2b2lkIGRvdWJsZSBmcmVlKCkgYW5kIGZyZWUoKWQgbWVtb3J5IHJlYWRzLgogICAKICAgICAtIG1vcmUgY29uY2lzZSAoYWhlbSkgZGVjbGFyYXRpb24gb2YgbXljYWxsYmFjayBpbiBoYW5kbGVfYWdlbnR4X3BhY2tldCgpLgogICAKMjAwMS0xMS0yOSAwNTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcHV0IHNlc3Npb24gYW5kIHN1YnNlc3Npb24gaW4gc3ViYWdlbnQgZGVzY3JpcHRpb24gKGhlbHBmdWwgZm9yCiAgICAgICBkZWJ1Z2dpbmcpCiAgIAoyMDAxLTExLTI5IDA1OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IElOU1RBTExIRUFERVJTCiAgIAoyMDAxLTExLTI5IDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBzb21lIGRlYnVnZ2luZyB0byBpbml0X3N1YmFnZW50KCkgKHdoaWNoIHNob3dlZCB0aGF0IGl0IHdhc24ndAogICAgICAgYmVpbmcgY2FsbGVkLCBzby4uLikuCiAgIAogICAgIC0gZml4IGNhc3QgaW4gaGFuZGxlX3N1YmFnZW50X3NldF9yZXNwb25zZSgpCiAgIAoyMDAxLTExLTI5IDA1OjQ2ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1ha2Ugc3VyZSBpbml0X3N1YmFnZW50KCkgZ2V0cyBjYWxsZWQKICAgCjIwMDEtMTEtMjggMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjaGVjayBmb3Igc2Vzc2lvbiByZWdpc3RyYXRpb25zIGluIGFsbCBjb250ZXh0cy4KICAgCjIwMDEtMTEtMjggMDY6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEFkZCBzeXMvdHlwZXMuaCBmb3IgYnVnICM0ODYyNzcuCiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgICAtICNpbmNsdWRlIDxuZXRkYi5oPgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBjb25maWd1cmUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGluc3RhbGwgc25tcF90cmFuc3BvcnQuaCBhbmQgc25tcCpEb21haW4uaCAoZm9yIHRoZSBjb25maWd1cmVkCiAgICAgICB0cmFuc3BvcnQgZG9tYWlucykKICAgCjIwMDEtMTEtMjggMDM6MjkgIGpicG4KCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgICAtIHJldmVyc2UgbXlzdGVyeSByZW1vdmFsIG9mICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGFuZCAjaW5jbHVkZQogICA8c3lzL3RpbWUuaD4KICAgCjIwMDEtMTEtMjcgMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgbW9yZSBpbnRlbGxpZ2VudGx5IGFsbG9jYXRlIHRyZWUgc3BhY2UgYmFzZWQgb24gbnVtYmVyIG9mIHZhcmJpbmRzIGluIHJlcXVlc3QuCiAgIAoyMDAxLTExLTI3IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIG1hbGxvYyBvbmUgbGFyZ2UgdHJlZV9jYWNoZSBhcnJheSByYXRoZXIgdGhhbiBhbiBhcnJheSBvZiB0cmVlX2NhY2hlIHBvaW50ZXJzLgogICAKMjAwMS0xMS0yNyAxMjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgaW5jbHVkZSBmaWxlIG5hbWUgY2hhbmdlLgogICAKMjAwMS0xMS0yNyAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY29tbWVudCBjaGFuZ2VzLgogICAKMjAwMS0xMS0yNyAwNzo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeGVkIE1ha2VmaWxlIGZvciBzbm1wdHJhcGQuCiAgIAoyMDAxLTExLTI3IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogTWFrZWZpbGUuaW4gLCBhbGxfaGVscGVycy5jICwKICAgYWxsX2hlbHBlcnMuaCAsIGRlYnVnX2hhbmRsZXIuYyAsIGRlYnVnX2hhbmRsZXIuaDoKCiAgIGRlYnVnIGhhbmRsZXIgY3JlYXRlZCBmb3IgaW5zZXJ0aW5nIGRlYnVnZ2luZyBvdXRwdXQgaW50byB0aGUgY2FsbGluZyBjaGFpbi4KICAgCjIwMDEtMTEtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGVudW0gZGVmaW5pdGlvbnMgZm9yIG1vZGVzIGFuZCBjYW5fbW9kZXMuCiAgIAoyMDAxLTExLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgUERVIHZhcmlhYmxlIHRvIE5VTEwgdG8gYXZvaWQgZnJlZWluZyBpdCB0d2ljZS4KICAgCjIwMDEtMTEtMjYgMTE6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBwbHVnIGFub3RoZXIgbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCAsIFQwMjFzbm1wdjNnZXRuZXh0ICwKICAgVDAyMnNubXB2M2dldE1ENSAsIFQwMjNzbm1wdjNnZXRNRDVERVMgLAogICBUMDI0c25tcHYzZ2V0U0hBMSAsIFQwMjVzbm1wdjNnZXRTSEFERVMgLAogICBUMDI4c25tcHYzZ2V0ZmFpbCAsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24gLAogICBUMDUzYWdlbnR2MXRyYXAgLCBUMDU0YWdlbnR2MmN0cmFwICwgVDA1NWFnZW50djFtaW50cmFwCiAgICwgVDA1NmFnZW50djJjbWludHJhcCAsIFQxMTBhZ2VudHhnZXQgLAogICBUMTExYWdlbnR4c2V0ICwgVDExMmFnZW50eHNldGZhaWwgLCBUMTEzYWdlbnR4dHJhcCAsCiAgIFQxMjBwcm94eWdldCAsIFQxMjFwcm94eXNldCAsIFQxMjJwcm94eXNldGZhaWw6CgogICBkb24ndCB1c2UgY29udGV4dHMgaW4gdGVzdHMuCiAgIAoyMDAxLTExLTI2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZml4IG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jICwgYWdlbnR4L21hc3Rlci5jICwKICAgdWNkLXNubXAvcHJveHkuYzoKCiAgIHVzZSBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHRvIHBsdWcgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0xMS0yNiAwODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9oYW5kbGVyLmg6CgogICBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHJvdXRpbmUKICAgCjIwMDEtMTEtMjYgMDg6MTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgdGhlIGFiaWxpdHkgdG8gbGlzdGVuIGZvciB0cmFwcyBvbiBtdWx0aXBsZSB0cmFuc3BvcnRzIHZpYSB0aGUKICAgICAgIC1wIG9wdGlvbiAoY29uc2lzdGVudCB3aXRoIHNubXBkKS4KICAgCjIwMDEtMTEtMjYgMDU6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fdHJhbnNwb3J0X29pZCgpIHRvIGRvIHNlc3Npb24gY3JlYXRpb24gZnJvbQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIsIHRvIGFsbG93IGNyZWF0aW9uIG9mCiAgICAgICBub24tSVB2NCBzZXNzaW9ucyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLgogICAKMjAwMS0xMS0yNiAwNDo0NSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMKICAgLCBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgY3JlYXRpbmcgYSB0cmFuc3BvcnQgZnJvbSBhCiAgICAgICA8dERvbWFpbi1vaWQsIHRBZGRyZXNzLW9jdGV0LXN0cmluZz4gcGFpci4KICAgCjIwMDEtMTEtMjYgMDM6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fc3VwcG9ydCgpIHRvIGRldGVybWluZSB3aGV0aGVyIGEgdHJhbnNwb3J0IGRvbWFpbgogICAgICAgaXMgc3VwcG9ydGVkLgogICAKMjAwMS0xMS0yMyAxMDoyNCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGFkZCBtdWx0aXBsZSB0cmFuc3BvcnQgZG9tYWluIHN1cHBvcnQgZm9yIHRyYXBkIC0tIHRoaXMgd2FzIHJlYWxseQogICAgICAgUkVBTExZIGVhc3khCiAgIAoyMDAxLTExLTIzIDA5OjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGZ1bmN0aW9uIHNubXBfdHJhbnNwb3J0X3N1cHBvcnQoKSAocmVwbGFjZWQgd2l0aAogICAgICAgc25tcF90ZG9tYWluX3N1cHBvcnQoKSkuCiAgIAoyMDAxLTExLTIzIDA4OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYzoKCiAgICAgLSB1c2UgbmV0d29yayBvcmRlciBmb3IgQUFMNVBWQyB0cmFuc3BvcnQgYWRkcmVzcyBlbmNvZGluZwogICAKMjAwMS0xMS0yMyAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmM6CgogICAgIC0gc2V0IGxvY2FsX2xlbmd0aCwgcmVtb3RlX2xlbmd0aCBhcyBhcHByb3ByaWF0ZQogICAKMjAwMS0xMS0yMyAwODozOSAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTExLTIzIDA4OjM0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIG1ha2UgdHJhcHMgd29yayB3aXRoIG5ldy1zdHlsZSBhZGRyZXNzZXMsIHVzZSBkb21haW4tYmFzZWQgYWRkcmVzcwogICAgICAgZW5jb2RpbmdzIGluIHNubXBUYXJnZXRBZGRyVGFibGUuICBOb3RlIHlvdSBjYW4gbm93IHNlbmQgdHJhcHMvaW5mb3JtcwogICAgICAgb3ZlciBhbnkgc3VwcG9ydGVkIHRyYW5zcG9ydCB0eXBlIGJ5IHVzaW5nIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUgYW5kCiAgICAgICBhIHRyYW5zcG9ydDphZGRyZXNzIHR5cGUgc3BlY2lmaWNhdGlvbi4KICAgCjIwMDEtMTEtMjMgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIGNyZWF0ZSBhcHByb3ByaWF0ZWx5LWVuY29kZWQgbG9jYWwgb3IgcmVtb3RlIGVuZHBvaW50IGFkZHJlc3NlcyBhdAogICAgICAgdHJhbnNwb3J0IG9wZW4gdGltZS4KICAgCjIwMDEtMTEtMjMgMDY6NTAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSB1cGRhdGUgZGVwZW5kZW5jaWVzIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTIyIDA5OjA4ICBqYnBuCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCAsIGV2YWxfdG9vbHMuc2ggLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0ICwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQgLAogICB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCAsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0ICwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0ICwgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsICwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKICAgLCB0ZXN0cy9UMDIwc25tcHYzZ2V0ICwgdGVzdHMvVDAyMXNubXB2M2dldG5leHQgLAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1ICwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUyAsCiAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExICwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUyAsCiAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsICwgdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsCiAgIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0gLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCAsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCAsIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtICwKICAgdGVzdHMvVDA1M2FnZW50djF0cmFwICwgdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsCiAgIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLAogICB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsIHRlc3RzL1QxMDBhZ2VudGh1cCAsCiAgIHRlc3RzL1QxMTBhZ2VudHhnZXQgLCB0ZXN0cy9UMTExYWdlbnR4c2V0ICwKICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwgLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCAsCiAgIHRlc3RzL1QxMjBwcm94eWdldCAsIHRlc3RzL1QxMjFwcm94eXNldCAsCiAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICAgIC0gdXNlIHVkcDo8aG9zdG5hbWU+Ojxwb3J0PiBpbnN0ZWFkIG9mIC1wIHRvIG1ha2UgdGVzdHMgd29yayBhZ2FpbgogICAKMjAwMS0xMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYyAsIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIG1vcmsgd29yZSBvbiB0aGUgbm90aWZpY2F0aW9uIGxvZyBtaWIuICBJdCBub3cgc3VwcG9ydHMgdmFyaWFibGUKICAgc3RvcmFnZSwgYnV0IHNlZ2ZhdWx0cyBvbiBhY2Nlc3MgZHVlIHRvIHBkdSBjbG9uaW5nIHByb2JsZW1zIEknbSBub3QKICAgZ29pbmcgdG8gd29yayBvdXQgcmlnaHQgbm93LgogICAKMjAwMS0xMS0yMSAyMzoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBzbm1wdHJhcGQgbGlua2luZy4KICAgCjIwMDEtMTEtMjEgMjI6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgT0lEX0xFTkdUSDsgdXNlIGFjdHVhbCBvaWQgdHlwZSBpbiBjYWxjdWxhdGlvbgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGFkZCBOVUxMIHBvaW50ZXIgZm9yIHJidWlsZCBpbiBzZXNzaW9uIGNyZWF0aW9uLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgbmV0aW5ldC9pbi5oIG5lZWRlZC4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgdmFyaWFibGUgY2xlYW4gdXBzLgogICAKMjAwMS0xMS0yMSAyMjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsIGxvY2FsL21pYjJjICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiAsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYgLAogICBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0ICwgcGVybC9TTk1QL1NOTVAueHMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvbWliLmgKICAgLCBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NubXAtdGMuaCAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaCAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hcGkuaCAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9jbGllbnQuaCAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCAsCiAgIHNubXBsaWIvdG9vbHMuYyAsIHNubXBsaWIvdG9vbHMuaCAsIHNubXBsaWIvdmFjbS5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIyOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi86IHZhY20uaCAsIGFzbjEuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMgLCBvaWRfYXJyYXkuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYyAsIGRhdGFfbGlzdC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDE4OjU2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgdmVyc2lvbi5oICwgYWdlbnQvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgYWdlbnQvbWliX21vZHVsZXMuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYwogICAsIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLCBhZ2VudC92YXJfc3RydWN0LmgKICAgLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluCiAgICwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oICwgYWdlbnQvaGVscGVycy9udWxsLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmggLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oICwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAogICAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsIGFnZW50L21pYmdyb3VwL3RhcmdldC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmggLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwgYXBwcy9NYWtlZmlsZS5pbiAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDA2OjQzICBqYnBuCgogICAqIGNvbmZpZy5oLmluOgoKICAgICAtIElQdjYgY29uZmlnIGRlZnMKICAgCjIwMDEtMTEtMjEgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBub3ctZXh0cmFuZW91cyAjaW5jbHVkZSAic25tcEJsYWhEb21haW4uaCIgbGluZXMKICAgCjIwMDEtMTEtMjEgMDM6MzkgIGpicG4KCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0xMS0yMCAwOTozOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcElQWERvbWFpbi5jICwgc25tcElQWERvbWFpbi5oOgoKICAgICAtIGR1aC4gIEZvcmdvdCBhIGNvdXBsZSBvZiB0aGluZ3MgdG8gZG8gd2l0aCBkb21haW4tYmFzZWQgdHJhbnNwb3J0CiAgICAgICBhZGRyZXNzIHBhcnNpbmcuCiAgIAoyMDAxLTExLTIwIDA5OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2UgbmV3IGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nIGZvciBhZ2VudCBOU0FQcwogICAKMjAwMS0xMS0yMCAwOToyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBBQUw1UFZDRG9tYWluLmggLAogICBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmgKICAgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmggLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uaCAsIHNubXBfYXBpLmMgLAogICBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMS0yMCAwOToxNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIE5vdGU6IGluY29tcGxldGUhCiAgIAoyMDAxLTExLTIwIDA4OjI5ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gdW5yZWdpc3Rlcl97c3RyaW5nLGludCxvaWR9X2luZGV4KCkgdXRpbGl0eSBmdW5jdGlvbnMgY29udHJpYnV0ZWQKICAgICAgIGJ5IERhbWlhbiBHaWxtdXJyYXkuCiAgIAoyMDAxLTExLTIwIDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oIChWNC0yLXBhdGNoZXMuMSksIHNubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAxNjo1OSAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9hc24xLmg6CgogICBGaXggdHlwbyBpbiBjb21tZW50IFtrYXJsaGVnQG1pY3Jvc2hhcnAuY29tXQogICAKMjAwMS0xMS0xNiAwODozNCAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIFVuc2lnbmVkMzIvR2F1Z2UzMiB0eXBlcwogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBwcm90b2NvbC5jIChWNC0yLXBhdGNoZXMuNSksIHByb3RvY29sLmM6CgogICAgIC0gc3RyaWN0ZXIgdGVzdCBmb3IgbnVsbCBPSURzCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgaWYgdmFsdWUgaXMKICAgICAgIGNvbmZpZ3VyZWQgdmlhIHRoZSBhdXRodHJhcGVuYWJsZSB0b2tlbgogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudF90cmFwLmMgLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDY6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gbGV0IFZBQ00gY2hlY2tzIHN1Y2NlZWQgZm9yIG5vbi1JUHY0IHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMTUgMDU6MTkgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQgLCBUMTIxcHJveHlzZXQ6CgogICAgIC0gdXNlIHBzeXNjb250YWN0IG5vdCBzeXNjb250YWN0IHRvIHNldCBpbml0aWFsIHZhbHVlIG9mIHN5c0NvbnRhY3QuMAogICAgICAgb2JqZWN0IHNpbmNlIHRoZSBsYXR0ZXIgYWxzbyBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seS4KICAgCjIwMDEtMTEtMTUgMDU6MDcgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBkLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGZvcm1hdHRpbmcgb2YgdXNhZ2UgbWVzc2FnZQogICAKMjAwMS0xMS0xNSAwNDowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlICJzbm1wZC5oIiAoZm9yICNkZWZpbml0aW9uIG9mIE1BU1RFUl9BR0VOVCkKICAgICAtIGRvbid0IHN0cmR1cCgpIGFnZW50eHNvY2tldCB2YWx1ZSAtLSBkc19zZXRfc3RyaW5nIGRvZXMgaXQgZm9yIHlvdQogICAgIC0gY2hhbmdlIGRlYnVnZ2luZyB0byBmaXQgaW4gYmV0dGVyIHdpdGggcmVzdCBvZiBtb2R1bGUKICAgCjIwMDEtMTEtMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzcsN10pLCBjb25maWcuaC5pbgogICAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGFnZW50eF9jb25maWcuYyAsIGFnZW50eF9jb25maWcuaAogICAsIG1hc3Rlci5jICwgbWFzdGVyLmggLCBzdWJhZ2VudC5oOgoKICAgc2xpZ2h0bHkgbW9kaWZpZWQgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gbW92ZSBhZ2VudHggY29uZmlndXJhdGlvbiBpbnRvCiAgIGEgc2VwYXJhdGUgZmlsZS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmg6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaWxlIE5FVC1TTk1QLUFHRU5ULU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMDU6MjkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gcXVpZXRlbiBzb21lIG5vaXN5IGxvZ2dpbmcKICAgCjIwMDEtMTEtMTMgMDQ6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHVzZSB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGVuIGFwcHJvcHJpYXRlIGluCiAgICAgICB1bnJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAoyMDAxLTExLTEzIDAzOjIzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcmVzZXQgdnItPm5hbWVsZW4gd2hlbiB3ZSd2ZSBmaW5pc2hlZCB3aXRoIGl0CiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBmaWxlIGFsbF9oZWxwZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0wOCAwODowOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGJldHRlciBpbXBsZW1lbnRhdGlvbiBvZiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSwgd2hpY2ggdXNlcwogICAgICAgcmFuZ2VzIHByb3Blcmx5IGluIHRoZSBjYWxsYmFjayAoaGVuY2UgbXVjaCBtb3JlIGVmZmljaWVudCBmb3IKICAgICAgIEFnZW50WCkuCiAgIAoyMDAxLTExLTA3IDA5OjU2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBub3ctcmVkdW5kYW50IGFnZW50eF9idWlsZCBmdW5jdGlvbnMKICAgCjIwMDEtMTEtMDcgMDY6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgLCBtYXN0ZXJfYWRtaW4uYyAsCiAgIHByb3RvY29sLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UoKSBpbiBhIGNvdXBsZSBvZiBwbGFjZXMgZm9yIG1vcmUgY29tcHJlaGVuc2l2ZQogICAgICAgZGVidWdnaW5nIG91dHB1dC4KICAgCiAgICAgLSBwYXJzZSB1bnJlZ2lzdGVyIHJhbmdlcyBwcm9wZXJseSwgYW5kIHVzZSB0aGUgcmFuZ2UgcHJvcGVybHkgZm9yCiAgICAgICBwYXNzaW5nIHRvIHVucmVnaXN0ZXJfbWliX2NvbnRleHQoKS4KICAgCjIwMDEtMTEtMDcgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfZGVidWcuYyAsIHNubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdTTVNHT0lEUkFOR0UoKSBtYWNybyBmb3IgZGVidWdnaW5nIE9JRCByYW5nZXMKICAgCjIwMDEtMTEtMDYgMDY6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gcmVzZXQgdGhlIGluY2x1c2l2ZSBmbGFnIGluIGEgY291cGxlIG9mIGNhc2VzLCB0byBwcmV2ZW50IHNwdXJpb3VzCiAgICAgICBJTkNMVVNJVkUgZ2V0TmV4dCBiZWhhdmlvdXIKICAgCjIwMDEtMTEtMDUgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gY29ycmVjdCBidWcgaW4gcmFuZ2Vfc3ViaWQgdHdlYWsgY29kZQogICAKMjAwMS0xMS0wNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNhbGN1bGF0ZSB1cHBlciBib3VuZCBmb3IgdGFibGUgcm93IHJlZ2lzdHJhdGlvbnMgc2xpZ2h0bHkgZGlmZmVyZW50bHkKICAgCjIwMDEtMTEtMDEgMDk6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBwcm90b2NvbC5jICwKICAgcHJvdG9jb2wuaCAsIHN1YmFnZW50LmM6CgogICAgIC0gaW1wbGVtZW50IHJlbG9jYXRpbmcgYnVmZmVyIHZlcnNpb24gb2YgYWdlbnR4X2J1aWxkKCkgcm91dGluZXMsCiAgICAgICBhbmQgdXNlIHRoZW0uCiAgIAoyMDAxLTExLTAxIDA5OjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgICAgLSBzdXBwb3J0IGZvciByZWxvY2F0YWJsZSBidWZmZXIgYnVpbGQgY2FsbGJhY2tzIHZpYSBvcGVuX2V4IGNhbGxzCiAgIAoyMDAxLTEwLTMwIDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTMwIDAzOjI0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHRoZSBpbml0aWFsIGJ1ZmZlciBzaXplIDIwNDggaW4gc25tcF9yZXNlbmRfcmVxdWVzdCAoYXMgaW4KICAgICAgIF9zZXNzX2FzeW5jX3NlbmQpIHRvIG1ha2Ugc3VjY2Vzcy9mYWlsIGJlaGF2aW91ciBmb3IgQWdlbnRYIG1vcmUKICAgICAgIHByZWRpY3RhYmxlIChzaW5jZSBBZ2VudFggU1RJTEwgZG9lc24ndCB1c2UgcmVsb2NhdGluZyBidWZmZXJzLAogICAgICAgYm9vIGhpc3MpLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktYXV0by5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS11c2VyLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBmaWxlIHRhYmxlX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5Lmg6CgogICBmaWxlIHRhYmxlX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5oOgoKICAgZmlsZSBvaWRfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaWxlIG9pZF9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI2IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZnVuY3Rpb24gbmFtZSBpbiBlcnJvciBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDA2OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jICwgaW50ZXJmYWNlcy5oOgoKICAgICAgLSBhZGQgc3VwcG9ydCBmb3IgcnggYW5kIHR4IGRyb3AgY291bnRzIChpZkluRGlzY2FyZHMgYW5kCiAgICAgICAgaWZPdXREaXNjYXJkcykgZm9yIExpbnV4ICgyLjIrKQogICAKMjAwMS0xMC0yNiAwNTo1NyAgamJwbgoKICAgKiBhY2xvY2FsLm00OgoKICAgICAtIGFkZCBpZl9pcWRyb3BzIG1lbWJlciB0byBzdHJ1Y3QgaWZuZXQKICAgCjIwMDEtMTAtMjYgMDQ6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGFkZCB0cmFuc2xhdGlvbiBmb3IgYXRtKDM3KSB0eXBlIGludGVyZmFjZXMgZm9yIExpbnV4CiAgIAoyMDAxLTEwLTI2IDAzOjQzICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHRoZSBmYWN0IHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbi4wIChldCBhbC4pIHZpYSBhCiAgICAgICBzeXNsb2NhdGlvbiAob3IgZXF1aXZhbGVudCkgdG9rZW4gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHksCiAgICAgICByZXR1cm5pbmcgYSBub3RXcml0YWJsZSBlcnJvciByZXNwb25zZSBpZiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8KICAgICAgIFNFVCBpdC4KICAgCjIwMDEtMTAtMjQgMTA6MDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy40KSwKICAgc3lzdGVtX21pYi5jOgoKICAgICAtIGZpeCB0eXBvIG5vdGVkIGJ5IFRpbSBEaWV0egogICAKMjAwMS0xMC0yNCAwODo0MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjQtMi1wYXRjaGVzLjIpLCBocl9zd2luc3QuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsganVzdCBpbnRyb2R1Y2VkCiAgIAoyMDAxLTEwLTI0IDAzOjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gdXNlIHBrZ2luZm8gaW50ZXJmYWNlIHRvIGRldGVybWluZSB0eXBlIG9mIHNvZnR3YXJlIHBhY2thZ2UgbW9yZQogICAgICAgc3BlY2lmaWNhbGx5IGlmIHBvc3NpYmxlLiAgU2xpZ2h0IHZhcmlhdGlvbiBvbiBwYXRjaCAjNDczNjY5LCBzdWJtaXR0ZWQKICAgICAgIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAxLTEwLTI0IDAzOjM4ICBqYnBuCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTIxIDA3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaWxlIG1pYjJjLml0ZXJhdGUuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xOSAwOTo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGZpbGUgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xNyAwNzo1MiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMiksIEZBUToKCiAgIE1lbnRpb24gdGhlIE1SVEcgdHV0b3JpYWwgd2ViIHBhZ2VzCiAgICAgKGFzIHN1Z2dlc3RlZCBieSBDaHJpc3RpYW4gUm9ib3R0b20gUmVpcykKICAgCjIwMDEtMTAtMTUgMDY6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYyAsIHNubXBVRFBEb21haW4uYzoKCiAgICAgLSB6ZXJvIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZXMuICBIb3BlZnVsbHkgZml4ZXMgcHJvYmxlbXMgb24gTmV0QlNECiAgICAgICBub3RlZCBieSBKb2FraW0gQWx0aGluaSAocmVsYXRlZCB0byBzYV9sZW4gbWVtYmVyIHByb2JhYmx5Pz8pLgogICAKMjAwMS0xMC0xMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPcHBzZXMuCiAgIAoyMDAxLTEwLTExIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW4gLCBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMgLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYgLCBtYW4vc25tcF9lcnJvci4zICwKICAgbWFuL3NubXBfcGVycm9yLjMgLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zICwKICAgbWFuL3NubXBjbWQuMSAsIG1hbi9zbm1wZC4xLmRlZiAsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiAgICwgbWFuL3NubXBzZXQuMSAsIG1hbi9zbm1wdHJhbnNsYXRlLjEgLAogICBtYW4vc25tcHRyYXBkLjggLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYgLAogICBtYW4vc25tcHdhbGsuMSAsIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0ICwKICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQgLCBtaWJzL01ha2VmaWxlLm1pYiAsCiAgIG1pYnMvUkVBRE1FLm1pYnMgLCBtaWJzL1NNVVgtTUlCLnR4dCAsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsIG1pYnMvbWliZmV0Y2ggLCBtaWJzL3JmY2xpc3QKICAgLCBtaWJzL3NtaXN0cmlwICwgcGVybC9TTk1QL1NOTVAueHMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsIHNubXBsaWIvaW50NjQuYyAsCiAgIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oICwgc25tcGxpYi9tdF9zdXBwb3J0LmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuaCAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvc2NhcGkuYyAsIHNubXBsaWIvc2NhcGkuaCAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9hdXRoLmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmMgLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYyAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMKICAgLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmggLCB0ZXN0aW5nL01ha2VmaWxlLmluCiAgICwgd2luMzIvY29uZmlnLmggLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0xMSAxNDowMSAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAsIENoYW5nZUxvZyAsIEZBUSAsIE1ha2VmaWxlLmluICwKICAgTkVXUyAsIFJFQURNRSAsIGFjY29uZmlnLmggLCBhY2xvY2FsLm00ICwKICAgY29uZmlnLmd1ZXNzICwgY29uZmlnLmguaW4gLCBjb25maWcuc3ViICwKICAgY29uZmlndXJlICwgY29uZmlndXJlLmluICwgbHRjb25maWcgLCBsdG1haW4uc2gKICAgLCBtYWtlZmlsZWluZGVwZW5kLnBsICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oCiAgICwgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfdHJhcC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKICAgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwgYXBwcy9NYWtlZmlsZS5pbgogICAsIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jICwKICAgYXBwcy9zbm1wZ2V0LmMgLCBhcHBzL3NubXBnZXRuZXh0LmMgLCBhcHBzL3NubXBzZXQuYwogICAsIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYyAsCiAgIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgYXBwcy9zbm1wdHJhcC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB2YWNtLmMKICAgLCBhcHBzL3NubXB3YWxrLmMgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiAgICwgbG9jYWwvbWliMmMuY29uZiAsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYgLAogICBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0ICwgbG9jYWwvdGttaWI6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTA5IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIFNvbWV0aW1lcyB3ZSBmZWVsIGxpa2UgYSAtbnV0CiAgIAoyMDAxLTEwLTA5IDA2OjE1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcHJvcGVybHkgYWNjb3VudCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3VmZml4IGluIHRoZSB2YXJpYWJsZQogICAgICAgdGFibGUgaW4gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAoyMDAxLTEwLTA4IDA4OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBkZWNsYXJlIHZlcnNpb25fc3lzb2lkX2xlbiBhcyBleHRlcm4gSU5UIG5vdCBleHRlcm4gb2lkLCBzbyBhcyB0bwogICAgICAgbWF0Y2ggaXRzIGFjdHVhbCBkZWZpbml0aW9uIGluIHN5dGVtX21pYi5jLiAgVGhpcyBjYXVzZWQgYWxsIGtpbmRzIG9mCiAgICAgICBmdW4gJiBnYW1lcyBvbiBMaW51eCBvbiBhIEFscGhhLgogICAKMjAwMS0xMC0wNCAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYyAsIGNhbGxiYWNrLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHNubXBfY2FsbGJhY2tfbGlzdCgpIHRvIHJldHVybiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgYQogICAgICAgZ2l2ZW4gPG1ham9yLCBtaW5vcj4gcGFpci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBmaWxlIHBhc3NfcGVyc2lzdHRlc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0xMC0wMyAwNTo0MiAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDMgMDM6MTEgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBkbyBTTk1QRF9DQUxMQkFDS19VTlJFR0lTVEVSX09JRCBjYWxsYmFja3MgaW4KICAgICAgIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkgLS0gY2FsbGVkIHdoZW4gQWdlbnRYIHN1YmFnZW50cwogICAgICAgZGlzYXBwZWFyLgogICAKMjAwMS0xMC0wMiAwNjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkb24ndCBzZW5kIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIEFTTl9QUklWX0VYQ0xfUkFOR0Ugb24tdGhlLXdpcmUKICAgCjIwMDEtMDktMjYgMDg6MDMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBhbGxvdyBzcGxpdF9zdWJ0cmVlKCkgdG8gZG8gYSBzcGxpdCBpbiB0aGUgbWlkZGxlIG9mIGEgY29sdW1uLAogICAgICAga2VlcGluZyB0aGUgcmVsZXZhbnQgdmFyaWFibGUgaW4gYm90aCB0aGUgb2xkIHRyZWUgYW5kIHRoZSBuZXcKICAgICAgIHRyZWUgKGFyaXNlcyBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHBhdGNoIGZyb20gRGFtaWFuIEdpbG11cnJheSBmb3IgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoCiAgICAgICBhbGxvd3MgaXQgdG8gY29wZSB3aXRoIG5vbi16ZXJvIGxlbmd0aCB2YXJpYWJsZXMgYW5kIGFsc28KICAgICAgIG5vbi1jb250aWd1b3VzIE9JRHMgZm9yIGFkamFjZW50IGNvbHVtbnMuCiAgIAogICAgIC0gcmV3cml0dGVuIGR1bXBfcmVnaXN0cnkoKSB0aGF0IHVzZXMgcmVhbGxvY2F0aW5nIHByaW50IGZ1bmN0aW9ucwogICAgICAgYW5kIGFsc28gcHJpbnRzIG91dCB2YXJpYWJsZSBsaXN0cy4KICAgCjIwMDEtMDktMjYgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWJ0cmVlIG5hbWUgYmVpbmcgbG9uZ2VyIHRoYW4KICAgICAgIHJlcXVlc3RlZCBuYW1lIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHN1ZmZpeCBmb3IgdmFyaWFibGUgbWF0Y2hpbmcuCiAgIAogICAgIC0gYmUgc3RyaWN0IGFib3V0IHN1YnRyZWUgY2h1bmtzIGJlaW5nIGluY2x1c2l2ZSBvZiB0aGUgc3RhcnQgT0lECiAgICAgICBhbmQgZXhjbHVzaXZlIG9mIHRoZSBlbmQgT0lEIChzaG93cyB1cCBiaWcgdGltZSBpbiBBZ2VudFgpLgogICAKMjAwMS0wOS0yNiAwNzoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBkb24ndCBkbyBnZXROZXh0IHJlcXVlc3RzIG9uIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZXMgdGhhdCBiZWdpbiBpbgogICAgICAgYSB0cmVlIG1hcmtlZCBhcyBhIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSAodGhleSBhcmUgZG9vbWVkIHRvCiAgICAgICBmYWlsKS4gIFNraXAgdG8gdGhlIG5leHQgcGFydCBvZiB0aGUgdHJlZSBzdHJhaWdodCBhd2F5LgogICAKMjAwMS0wOS0yNiAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gYnJpbmcgZGVidWdnaW5nIHRva2VucyBpbnRvIGxpbmUgd2l0aCByZXN0IG9mIEFnZW50WCBjb2RlCiAgIAoyMDAxLTA5LTI1IDA4OjE1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UgY2hhcmFjdGVyCiAgIAoyMDAxLTA5LTI1IDAzOjU4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBjYXN0CiAgIAoyMDAxLTA5LTI1IDAzOjQ1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIGluZmVsaWNpdHkgd2hlbiBwcmludGluZyBhbmQgc3lzbG9nZ2luZyAobm90IHN1cmUgdGhpcyBpcwogICAgICAgYWN0dWFsbHkgcG9zc2libGUgYnV0KQogICAKMjAwMS0wOS0yNSAwMzowOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGludGVncmF0ZSBzb21lIGNoYW5nZXMgZnJvbSB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaDogSGFycmllJ3MKICAgICAgIHByb3RvdHlwZXMgYW5kIFdlcydzIGZpeCBmb3IgYnVnICAjNDYzMjI2LgogICAKMjAwMS0wOS0yNSAwMzowMSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBmaXggc2lnbmVkbmVzcyBvZiB0aW1lIHN0dWZmCiAgIAoyMDAxLTA5LTI1IDAyOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAsIHNubXBfbG9nZ2luZy5oOgoKICAgICAtIG1ha2UgYXJndW1lbnQgb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50IGNvbnN0CiAgIAogICAgIC0gZG9uJ3Qgc3RyZHVwIERFRkFVTFRfTE9HX0lEIGlmIGEgTlVMTCBhcmcgaXMgZ2l2ZW4KICAgCjIwMDEtMDktMjQgMDk6MzkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiByZXdyaXR0ZW4gb3V0cHV0IGZ1bmN0aW9ucyBpbiBzbm1wdHJhcGRfbG9nLmMgd2hpY2gKICAgICAgIGF2b2lkIGZpeGVkIGxlbmd0aCBidWZmZXJzLgogICAKICAgICAtIGZpeCBidWcgbm90ZWQgaW4gc3VwcG9ydCByZXF1ZXN0ICM0NTY2NDYgKGN1c3RvbSB0cmFwIGZvcm1hdCB3YXMKICAgICAgIGJlaW5nIGlnbm9yZWQgZm9yIHYyIHRyYXBzIGFuZCBpbmZvcm1zKS4gIFRoYW5rcyB0bwogICAgICAgRy5QcmluY2lwYXRvQG1vdG9yb2xhLmNvbSBmb3Igc3BvdHRpbmcgdGhpcyBvbmUuCiAgIAogICAgIC0gY29ycmVjdCB1c2FnZSBmb3IgLVAgb3B0aW9uIHRvIHJlZmxlY3QgdGhhdCBpdCBjYXVzZXMgb3V0cHV0IG9uCiAgICAgICBzdGRlcnIgbm90IHN0ZG91dC4KICAgCjIwMDEtMDktMjQgMDk6MzYgIGpicG4KCiAgICogYXBwcy86IHNubXB0cmFwZF9sb2cuYyAsIHNubXB0cmFwZF9sb2cuaDoKCiAgICAgLSByZXdyaXRlIG9mIG91dHB1dCBmdW5jdGlvbnMgdG8gYXZvaWQgdXNlIG9mIGZpeGVkLWxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTIwIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIG5ldyBsb2dtYXRjaCBtaWIgZnJvbSBTdGVwaGFuIFdlbnplbC4KICAgCjIwMDEtMDktMTUgMDg6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gb3ZlcnJpZGUgZXhjbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQgb3BlcmF0aW9ucyB3aGVuIHJldHJ5aW5nCiAgICAgICBvcGVyYXRpb25zCiAgIAoyMDAxLTA5LTE1IDA4OjM5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgICAtIGltcHJvdmVkIHN1cHBvcnQgZm9yIEFnZW50WC1zdHlsZSBpbmNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dAogICAKMjAwMS0wOS0xNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBwYXRjaCAjNDQzMTE1IGZyb20gWWltaW4gR2U6IGRpc2tpbyBzdXBwb3J0IGZvciBmcmVlYnNkNAogICAKMjAwMS0wOS0xNCAxNDozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgUGF0Y2ggIzQ0MDMyMCBmcm9tIE1hcmsgRmVybGF0dGU6CiAgIAogICAxKSBBZGRzIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBzbm1wX2xvZ2dpbmcgQVBJCiAgICAgIChzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQoY2hhciAqaWRlbnQpKQogICAKICAgMikgUG9ydHMgc25tcHRyYXBkIHRvIHVzZSB0aGUgZXhpc3Rpbmcgc25tcF9sb2dnaW5nIEFQSSBpbnN0ZWFkIG9mCiAgICAgIHVzaW5nIHN5c2xvZyBkaXJlY3RseS4KICAgCiAgIDMpIFBvcnRzIHNubXBfbG9nZ2luZy5bY2hdIHRvIHVzZSB0aGUgV2luMzIgRXZlbnQgTG9nIHdoZW4gY29tcGlsZWQgb24KICAgICAgV2luMzIuIEkgZGlkbid0IHVwZGF0ZSB0aGUgVmlzdWFsIEMgcHJvamVjdCBmaWxlcywgYmVjYXVzZSBJIG9ubHkKICAgICAgaGF2ZSBhY2Nlc3MgdG8gYSBuZXdlciB2ZXJzaW9uIG9mIFZDLCBhbmQgSSBkaWRuJ3Qga25vdyBpZiB5b3UKICAgICAgd2FudGVkIHRoZW0gdXBkYXRlZC4gVGhlIGFkdmFwaTMyIGxpYnJhcnkgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlCiAgICAgIHByb2plY3QgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yayBvbiBXaW4zMiAodGhhdCdzIHdoZXJlIHRoZSBldmVudAogICAgICBsb2cgQVBJIGlzKS4KICAgCjIwMDEtMDktMTQgMTQ6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlOgoKICAgSSwgdWgsIGNvdWdoLCB1aCBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mL2F1dG9oZWFkZXIuICBEYXZlOiBkb24ndCBraWxsIG1lLgogICAKMjAwMS0wOS0xNCAxNDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBQYXRjaCAjNDI4ODg0OiBBZGQgLVBSIGxpa2Ugb3B0aW9uIHRvIHBlcmwgbW9kdWxlIChmcm9tIEpvZSBDbGFya2UpLgogICAKMjAwMS0wOS0xNCAxNDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgYWNjb25maWcuaCAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaAogICAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaAogICAsIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL2FzbjEuaDoKCiAgIEFwcGxpZWQgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICM0MjczNDMgZnJvbSBIYXJyaWU6CiAgICAgbWFrZSBlbnRlcnByaXNlIElEIHJlbG9jYXRhYmxlIHdoZXJlIGxlZ2FsIHRvIGRvIHNvCiAgIAoyMDAxLTA5LTE0IDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluICwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAxMjowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3V0aWxzLmMgLCBocl91dGlscy5oOgoKICAgcmVtb3ZlZC4gIEZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gc25tcGxpYi9zbm1wLXRjLltjaF0KICAgCjIwMDEtMDktMTQgMTI6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLXRjLmg6CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAwOTo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIGZpbGUgY29uZmlnLmguYm9ybGFuZCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA5LTE0IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX3JlcXVlc3QuYyAsCiAgIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICAgIC0gdXNlIGluY2x1c2l2ZSBzZWFyY2ggcmFuZ2Ugb25seSB3aGVuIGFwcHJvcHJpYXRlIGZvciBnZXROZXh0CiAgICAgICBxdWVyaWVzCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMDYgMDc6NDAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYzoKCiAgICAgLSBpZiBpbmNsdWRlIGJpdCBpcyBzZXQgaW4gYW4gQWdlbnRYIFNlYXJjaFJhbmdlIChoZW5jZSB0eXBlIG9mIHZhcmJpbmQKICAgICAgIGlzIEFTTl9QUklWX0lOQ0xfUkFOR0UpLCB0cnkgYW4gZXhhY3QgcXVlcnkgZmlyc3QgYmVjYXVzZSBhbiBvYmplY3QKICAgICAgIHdob3NlIG5hbWUgaXMgbGV4aS1lcXVhbCBpcyBhIHZhbGlkIHJlc3BvbnNlOyBpZiBleGFjdCBxdWVyeSBmYWlscwogICAgICAgdGhlbiBmYWxsIGJhY2sgdG8gYW4gaW5leGFjdCBxdWVyeS4KICAgCjIwMDEtMDktMDYgMDc6MzggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwKICAgcHJvdG9jb2wuYyAsIHN1YmFnZW50LmM6CgogICAgIC0gb29wcywgdXNlZCBJTkNML0VYQ0wgd3Jvbmcgd2F5IHJvdW5kIGluIGEgY291cGxlIG9mIHBsYWNlcwogICAKICAgICAtIGJldHRlciB0ZXN0IGZvciBzY29waW5nIHJlcXVpcmVtZW50cyBpbiBzdWJhZ2VudAogICAKMjAwMS0wOS0wNCAwNzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGJyZWFrOyBhZnRlciBwcm9jZXNzaW5nIC1QIG9wdGlvbiwgbm90ZWQgYnkgQm90b25kCiAgICAgICBUYXJuYXkgKHNlZSBwYXRjaCAjNDU4MzI3KQogICAKMjAwMS0wOC0yOCAwMzowNCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjcpLCBzbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgPHRjcGQuaD4gaWYgdXNpbmcgbGlid3JhcCwgbm90ZWQgYnkgTmF0aGFuCiAgICAgICBOZXVsaW5nZXIgKHBhdGNoICM0NTM4MzEpLgogICAKMjAwMS0wOC0yOCAwMjozOCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcGQuYzoKCiAgICAgLSBhdm9pZCB1c2Ugb2YgcHJlLXByb2Nlc3NvciBkaXJlY3RpdmVzIGluc2lkZSBwcmludGYoKSBjYWxsLCB3aGljaAogICAgICAgaXMgYSBtYWNybyBpbiBnbGliYywgbWFraW5nIHRoaXMgYW4gdW5kZWZpbmVkIGJlaGF2aW91cgogICAgICAgY29uc3RydWN0ICh3aGljaCBHQ0MgMy4wIHJlZnVzZXMgdG8gY29tcGlsZSkuICBTZWUgYnVnICM0NTU4MDQgZm9yCiAgICAgICBmdXJ0aGVyIGRldGFpbHMuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuaDoKCiAgIGZpbGUgZGF0YV9saXN0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgZmlsZSBkYXRhX2xpc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yMiAwODo0NSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBjaGVja2luZyB0aGF0IHJlc3VsdHMgdG8gYmUgcmV0dXJuZWQgdG8gbWFzdGVyIGFnZW50IGFyZSBpbgogICAgICAgcmVxdWVzdGVkIHNjb3BlIChpZiBhbnkpIChnZXRCdWxrIG5vdCB5ZXQgZG9uZSkKICAgCjIwMDEtMDgtMTUgMDk6MzEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX29iamlkIGluIGRlYnVnbXNnX29pZCB0byBwcmludCBsb25nIE9JRHMuCiAgIAoyMDAxLTA4LTE1IDA4OjM3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCB0aGUgdmFsdWUgb2Ygc25tcEluQmFkQ29tbXVuaXR5VXNlcyB3aGVuIGF0dGVtcHRpbmcgYW4KICAgICAgIG9wZXJhdGlvbiBub3QgcGVybWl0dGVkIGJ5IHRoZSBnaXZlbiBjb21tdW5pdHksIHBlciBSRkMgMTkwNy4KICAgCjIwMDEtMDgtMTUgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHdoZW4gdHJhbnNsYXRpbmcgdGhlIHYyKyBlcnJvci1zdGF0dXMgdmFsdWUgYXV0aG9yaXphdGlvbkVycm9yCiAgICAgICBpbnRvIG5vU3VjaE5hbWUgZm9yIGEgdjEgc2Vzc2lvbiwgaW5jcmVtZW50IHRoZSB2YWx1ZSBvZgogICAgICAgc25tcEluQmFkQ29tbXVuaXR5VXNlcywgcGVyIFJGQyAyNTc2LgogICAKMjAwMS0wOC0xNCAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gaW4gc25tcF9zZXRfdmFyX29iamlkKCksIHRyeSB0byBkZXRlY3QgYSBwcmV2aW91c2x5LW1hbGxvYygpZWQKICAgICAgIGJ1ZmZlciBmb3IgdGhlIHZhcmlhYmxlIG5hbWUsIGFuZCBmcmVlKCkgaXQsIHRvIGF2b2lkIG1lbW9yeQogICBsZWFrcy4KICAgCjIwMDEtMDgtMTMgMDM6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gdXNlIFdpbjMyIGNhbGxzIHRvIGNoYW5nZSBibG9ja2luZyBzdGF0ZSBvZiBzb2NrZXRzIGlmCiAgICAgICBhcHByb3ByaWF0ZS4gIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMuCiAgIAoyMDAxLTA4LTEzIDAzOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGFuIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBhbmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24gaWYKICAgICAgIHdlIGdldCBhbiBlcnJvciBvbiBhIHN0cmVhbSByZWNlaXZlLCBhcyB3ZWxsIGFzIGlmIGl0IGlzIGNsb3NlZCBpbgogICAgICAgYW4gb3JkZXJseSBmYXNoaW9uLiAgVGhpcyBtYWtlcyBsaWZlIGVhc2llciBvbiBXaW4zMiBpbnBhcnRpY3VsYXIuCiAgICAgICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIHdpdGggZGVidWdnaW5nIHRoaXMuCiAgIAoyMDAxLTA4LTA5IDAzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpbGUgdGFibGVfZGF0YXNldC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA5IDAzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaDoKCiAgIGZpbGUgdGFibGVfZGF0YXNldC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA4IDAxOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaDoKCiAgIGZpbGUgdGFibGVfZGF0YS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA4IDAxOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGZpbGUgdGFibGVfZGF0YS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfcGVycm9yLjM6CgogICBmaWxlIHNubXBfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMzoKCiAgIGZpbGUgc25tcF9hcGlfZXJyc3RyaW5nLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjM6CgogICBmaWxlIHNubXBfc2Vzc19wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9lcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDYgMDQ6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggZm9yIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gbG9nZmlsZSBhcmd1bWVudCBoYW5kbGluZywKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyAoYnVnICM0NDgyNDMpLiAgQWxzbyB1c2UgYSBsYXJnZSBlbm91Z2ggYnVmZmVyCiAgICAgICB0byBoYW5kbGUgZmlsZW5hbWVzIG9mIGxlbmd0aCBQQVRIX01BWCAoaWYgcG9zc2libGUpLgogICAKMjAwMS0wNy0zMCAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBtb3ZlIHNubXBfc29ja2V0X2xlbmd0aCBmdW5jdGlvbiB0byBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgICAgZnJvbSBzbm1wX2FwaS5jIC0tIHRoaXMgaXMgdGhlIG9ubHkgcmVtYWluaW5nIHBsYWNlIHRoYXQgdXNlcyB0aGlzCiAgICAgICBmdW5jdGlvbiwgd2hpY2ggY2VydGFpbmx5IGRvZXNuJ3QgYmVsb25nIGluIHNubXBfYXBpLmMgYWZ0ZXIgdGhlCiAgICAgICB0cmFuc3BvcnQgYWJzdHJhY3Rpb24gbWFsYXJrZXkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDc6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gdHJ5IHRvIHJldHVybiBpbnZhbGlkKDIpIGZvciB0aGUgaXBSb3V0ZVR5cGUgY29sdW1uIGlmIHRoZSByb3V0ZQogICAgICAgaXMgbm90IHVwLiAgU2VlIGJ1ZyAjNDI2NzEwLCByZXBvcnRlZCBieSBwandlYmVyLgogICAKMjAwMS0wNy0yNyAwNzozMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHNldCBkZWZhdWx0QXV0aFR5cGUgdG8gdXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2wgaWYgU0hBIHNwZWNpZmllZAogICAgICAgKHdhcyBzZXQgdG8gdXNtSE1BQ01ENUF1dGhQcm90b2NvbCBpbiB0aGlzIGNhc2UpLiAgU3BvdHRlZCBieQogICAgICAgV2lsbGlhbSBLZW5uZW1lciAoYnVnICM0NDQ4NjApCiAgIAoyMDAxLTA3LTI3IDA2OjU5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGNoYW5nZSB0byBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlIE9OTFkgdG8gc2VuZCBORVdMWSBkZWxlZ2F0ZWQKICAgICAgIHJlcXVlc3RzIGFmdGVyIHByb2Nlc3NpbmcgYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiAgVGhpcyBpcyBhY2hpZXZlZAogICAgICAgYnkgc2F2aW5nIHRoZSB2YWx1ZSBvZiBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGFuZCB0ZW1wb3JhcmlseQogICAgICAgc2V0dGluZyBpdCB0byBOVUxMLiAgQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdmFyYmluZHMgaW4gdGhlCiAgICAgICByZXNwb25zZSwgdGhlcmVmb3JlLCBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGNvbnRhaW5zIG9ubHkgbmV3bHkKICAgICAgIGRlbGVnYXRlZCByZXF1ZXN0cywgaWYgYW55LiAgQWZ0ZXIgc2VuZGluZyB0aGVzZSwgdGhlIG5ldyByZXF1ZXN0cwogICAgICAgYXJlIG1lcmdlZCB3aXRoIHRoZSBzYXZlZCBxdWV1ZS4KICAgCiAgICAgICBUaGlzIGZpeGVzIGEgYnVnIHRoYXQgYXJpc2VzIGlmIHlvdSByZXF1ZXN0IHZhcmlhYmxlcyBmcm9tIHR3byBvcgogICAgICAgbW9yZSBzZXBhcmF0ZSBzdWJhZ2VudHMgc2ltdWx0YW5lb3VzbHkuICBXaGF0IHVzZWQgdG8gaGFwcGVuIGlzCiAgICAgICB0aGF0LCB1cG9uIHJlY2VpdmluZyB0aGUgZmlyc3QgcmVzcG9uc2UsIHRoZSBtYXN0ZXIgYWdlbnQgd291bGQKICAgICAgIG5vdGljZSB0aGF0IGl0IGhhZCBhbiBvdXRzdGFuZGluZyByZXF1ZXN0LCBhbmQgcmV0cmFuc21pdCBpdC4KICAgICAgIFRoZW4gdGhlIHNlY29uZCByZXNwb25zZSBhcnJpdmVzLCBhbmQgdGhlIG1hc3RlciBhZ2VudCBzZW5kcyB0aGUKICAgICAgIHJlcGx5IHRvIHRoZSAoU05NUCkgcmVxdWVzdGVyIGFuZCBmcmVlcyB0aGUgcmVxdWVzdHMgKGluY2x1ZGluZwogICAgICAgY2FsbGJhY2sgZGF0YSkuICBGaW5hbGx5LCBhbm90aGVyIEFnZW50WCByZXNwb25zZSAodG8gdGhlCiAgICAgICBlcnJvbmVvdXNseSB0cmFuc21pdHRlZCByZXF1ZXN0KSBhcnJpdmVzIGFuZCB0aGUgY2FsbGJhY2sgaXMKICAgICAgIGNhbGxlZCByZWZlcmVuY2luZyBkZWFsbG9jYXRlZCBtZW1vcnksIHdoaWNoIGNhdXNlcyBhIHNlZ2ZhdWx0LgogICAKMjAwMS0wNy0yNiAwNzoyOCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKE5FVy1MSUJSQVJZLUFQSS40KSwgc25tcF9hcGkuYzoKCiAgIEFkZGluZyBhICdkb3VibGUnLXZhbHVlZCB2YXJiaW5kIGlzbid0IGluaGVyZW50bHkgYW4gaW50ZXJuYWwgZXJyb3IhCiAgIAoyMDAxLTA3LTI1IDA1OjQ3ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZGlzYWJsZSBzdGRlcnIgbG9nZ2luZyAoaWYgcmVxdWVzdGVkKSBiZWZvcmUgY2FsbGluZyBpbml0X21pYl9tb2R1bGVzKCkuCiAgICAgICBUaGlzIHNob3VsZCBmaXggdGhlIHByb2JsZW0gbm90ZWQgYnkgTmlnZWwgTWV0aGVyaW5naGFtIGluIGJ1ZyAjNDE4ODU3CiAgICAgICB3aGVyZWJ5IHRoZSBBZ2VudFggbWFzdGVyIG1vZHVsZSBwcmludHMgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aGljaCBjYXVzZXMKICAgICAgIGEgU0lHUElQRSB3aGVuIHRoZSBhZ2VudCBpcyBzdGFydGVkIGFzIGEgZGFlbW9uLgogICAKMjAwMS0wNy0yNSAwMjoxOCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBpbml0aWFsaXNlIGJ1ZmZlcnMgdG8gemVybyBpbiBoYW5kbGVfd3JhcF9mbXQsIHRvIGF2b2lkIGdhcmJhZ2UgaW4KICAgICAgIGRpc3BsYXkgb2Ygc2VjdXJpdHkgcGFyYW1ldGVycywgYXMgbm90ZWQgYnkgV2lsbGlhbSBGcmF1ZW5ob2ZlcgogICAgICAgKGJ1ZyAjNDM3MjMxKS4KICAgCiAgICAgLSBhZGQgY2xvc2luZyBwYXJlbnRoZXNpcyBhZnRlciAodmlhIDxhZGRyZXNzPiBpbiBmb3JtYXRfcGxhaW5fdHJhcAogICAKMjAwMS0wNy0yMyAwNzo1MyAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gcmVtb3ZlIGV4Y2Vzc2l2ZSBkZWJ1Z2dpbmcgZnJvbSBzbm1wXyhyZSlhbGxvYyBmdW5jdGlvbnMKICAgCjIwMDEtMDctMjMgMDQ6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBkZWJ1Z2dpbmcgb3V0cHV0IHRvIHByaW50IGxvc2luZyBwYXRoIGNvcnJlY3RseSB3aGVuCiAgICAgICBhIHJlbW90ZSBjb25uZWN0IGZhaWxzLgogICAKMjAwMS0wNy0xNyAwOTo1NiAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB1cGRhdGUgZm9yIG5hbWluZyBjb252ZW50aW9ucyBhbmQgZm9yIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KICAgCjIwMDEtMDctMTcgMDk6MDcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgaW5pdGlhbCBjb2Rpbmcgc3R5bGUgZ3VpZGVsaW5lIGRvY3VtZW50LgogICAKMjAwMS0wNy0xNyAwOTowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZW1lbWJlciB0byByZW1vdmVfdHJhcF9zZXNzaW9uKG91ci1zZXNzaW9uLXdpdGgtbWFzdGVyLWFnZW50KQogICAgICAgaWYgdGhlIG1hc3RlciBhZ2VudCBzZXNzaW9uIGdvZXMgYXdheSwgYmVjYXVzZSBvdGhlcndpc2UgeW91CiAgICAgICBtYXkgc3Vic2VxdWVudGx5IHRyeSB0byB1c2UgaXQsIHdoaWNoIHdpbGwgcHJvYmFibHkgZHVtcCBjb3JlLAogICAgICAgYW5kIGlzIGNlcnRhaW5seSBhbiBlcnJvci4KICAgCiAgICAgLSBhbHNvIGNoYW5nZSB3aGVuIHRyYXAgc2Vzc2lvbiBpcyByZWdpc3RlcmVkIHRvIGJlaW5nIGltbWVkaWF0ZWx5CiAgICAgICB0aGUgc2Vzc2lvbiBpcyBvcGVuZWQgc28gdHJhcHMgY2FuIGJlIHNlbnQsIGUuZy4gZnJvbSB0aGUKICAgICAgIElOREVYX1NUQVJUIGNhbGxiYWNrIChmb3IgZXhhbXBsZSBsaW5rVXAgdHJhcHMgaW4gc3ViYWdlbnRzIHRoYXQKICAgICAgIHJlZ2lzdGVyIGEgcm93IG9mIGlmVGFibGUpLgogICAKMjAwMS0wNy0xNyAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gY2hhbmdlIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24oKSwgc28gYXMgbm90IHRvIGNsb3NlIGFuIFNOTVAKICAgICAgIHNlc3Npb24gc2ltcGx5IGJlY2F1c2Ugd2UgYXJlIHJlbW92aW5nIGl0IGZyb20gdGhlIHRyYXBfc2luawogICAgICAgbGlzdC4gIFRoZSByYXRpb25hbGUgaXMgdGhhdCB0aGUgc2Vzc2lvbiBtYXkgc3RpbGwgYmUgaW4gdXNlIGZvcgogICAgICAgb3RoZXIgcHVycG9zZXMsIG9yIChtb3JlIHRvIHRoZSBwb2ludCkgeW91IG1heSBiZSBjYWxsaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIGZyb20gdGhlIHNlc3Npb24ncyBjYWxsYmFjayAoZnJvbSB3aGVyZSBjbG9zaW5nIHRoZQogICAgICAgc2Vzc2lvbiBpc24ndCBhIGdvb2QgaWRlYSkuCiAgIAoyMDAxLTA3LTEzIDA2OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL25ldHNubXAuaDoKCiAgIGZpbGUgbmV0c25tcC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDAyOjIxICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGZpeCBmb3IgYnVnICM0MzkwOTQsIHJlcG9ydGVkIGJ5IEV2ZXJ0LUphbiB2YW4gVHVpamwsIHdoZXJlYnkKICAgICAgIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50IGV4cGVjdHMgYSByZXNwb25zZSB0byBhbiBhZ2VudHgtQ2xlYW51cFNldC1QRFUKICAgICAgIG1lc3NhZ2UgKGluY29ycmVjdGx5KS4gIFRoaXMgb25seSBzaG93cyB1cCB3aGVuIHRlc3RpbmcgYWdhaW5zdCBvdGhlcgogICAgICAgc3ViYWdlbnRzIChlLmcuIGpheCkgYmVjYXVzZSB0aGUgbmV0LXNubXAgc3ViYWdlbnQgc2VuZHMgYSByZXNwb25zZQogICAgICAgdG8gdGhlIGFnZW50eC1DbGVhbnVwU2V0LVBEVSAoaW5jb3JyZWN0bHkpLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBmaWxlIHZhY21fY29udGV4dC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaDoKCiAgIGZpbGUgdmFjbV9jb250ZXh0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYzoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaDoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDUgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgLCBpbnRlcmZhY2VzLmg6CgogICAgIC0gbWFrZSBJbnRlcmZhY2VfU2Nhbl9HZXRfQ291bnQgbm9uLXN0YXRpYyBhcyBpdCdzIHZlcnkgdXNlZnVsCiAgIAoyMDAxLTA3LTA1IDAzOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGZyZWUgdGhlIGNhY2hlZCBzZWN1cml0eSBwYXJhbWV0ZXJzIHdoZW4gd2UgaGF2ZSBhIHBhcnNlIGVycm9yCiAgICAgICBvbiBpbnB1dCwgb3RoZXJ3aXNlIHdlIGxlYWsgbWVtb3J5ICh0cmlnZ2VyZWQgYnkgU0MgMy4wLjEzLnsyLDN9KS4KICAgCjIwMDEtMDctMDQgMDk6NTEgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjYXRjaCBzb21lIG1hbGZvcm1lZCBTTk1QdjMgcGFja2V0cwogICAKMjAwMS0wNy0wNCAwNzo0MiAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBiYWQgbWlzdGFrZSBpbiBzbm1wdjNfc2NvcGVkUERVX2hlYWRlcl9yZWFsbG9jX3JidWlsZCB3aGljaAogICAgICAgd2FzIGVuY29kaW5nIHRoZSB3cm9uZyBsZW5ndGggaW50byB0aGUgU2NvcGVkUERVIFNFUVVFTkNFIGhlYWRlcgogICAgICAgKHdhc24ndCBpbmNsdWRpbmcgbGVuZ3RoIG9mIGFjdHVhbCBkYXRhLCBpLmUuIFBEVSEpLiAgVG90YWxseSBteQogICAgICAgZmF1bHQgLS0gaW50cm9kdWNlZCB3aGVuIGNoYW5naW5nIG92ZXIgdG8gcmVhbGxvY2F0aW5nIGJ1ZmZlcgogICAgICAgdHlwZSBmdW5jdGlvbnMuICBBbWF6aW5nIHRoaXMgaGFzbid0IGNhdXNlZCBhbGwgc29ydHMgb2YgdHJvdWJsZQogICAgICAgZm9yIHBlb3BsZSEKICAgCjIwMDEtMDctMDIgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGZpbGUgc25tcC10Yy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTAyIDA5OjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAxLTA3LTAyIDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgICAgLSBmaXggYmFkIGJlaGF2aW91ciBpbiBoZWFkZXJfc2ltcGxlX3RhYmxlIHdoZW4gdGhlIGluZGV4IGlzCiAgICAgICBlcXVhbCB0byBVTE9OR19NQVgKICAgCjIwMDEtMDYtMjggMTA6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjaGFuZ2Ugc2Vuc2Ugb2Ygc25tcF9vaWRfY29tcGFyZSgpIHJlc3VsdCBjaGVjayBpbiB2YXJfdXNtVXNlcgogICAgICAgdG8gZG8gbGV4aS1vcmRlcmluZyBjb3JyZWN0bHkKICAgCjIwMDEtMDYtMjggMDc6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNvdW50IG1vcmUgdjEvdjJjIHBhcnNlIGVycm9ycyAoU0MgMS4xLjEyLjEwKQogICAKMjAwMS0wNi0yOCAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hlY2sgdGhhdCB2ZXJzaW9uIGZpZWxkIG9mIFBEVSBpcyBvZiBpbnRlZ2VyIHR5cGUgcmF0aGVyIHRoYW4ganVzdAogICAgICAgYXNzdW1pbmcgaXQgaXMgKFNDIDEuMS4xMi4yLjEpCiAgIAoyMDAxLTA2LTI4IDA0OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCBzbm1wSW5CYWRDb21tdW5pdHlOYW1lcyB3aGVuIHdlIHNlZSB1bmtub3duIGNvbW11bml0eQogICAgICAgbmFtZXMsIHBlciBSRkMxOTA3CiAgIAoyMDAxLTA2LTI3IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIG5ldyBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgdG8gbWFyayBhbGwgb3VyCiAgICAgICBub2RlcyBhcyBkZXRhY2hlZCB3aGVuIHdlIGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0IGluZGljYXRpb24uCiAgIAoyMDAxLTA2LTI3IDA4OjA3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gYWRkIGFkZGl0aW9uYWwgZmxhZyB0byBzdWJ0cmVlIHN0cnVjdHVyZSB0aGF0IHN1YmFnZW50cyBjYW4gdXNlCiAgICAgICB0byBkZXRlcm1pbmUgd2hldGhlciBhbiBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gcmVnaXN0ZXIgYW5kIE9JRAogICAgICAgd2l0aCBhIG1hc3RlciBhZ2VudCBkdXJpbmcgYSBzZXNzaW9uJ3MgbGlmZXRpbWUuICBUaGlzIGFsbG93cwogICAgICAgbWFudWFsIHJlLXJlZ2lzdHJhdGlvbiBhbmQgYXV0b21hdGljIHJlLXJlZ2lzdHJhdGlvbiB0byBiZSBtaXhlZAogICAgICAgd2l0aGluIGEgc3ViYWdlbnQgKHBlcmhhcHMgYmVjYXVzZSB5b3UgYXJlIGRvaW5nIGluZGV4IHN0dWZmKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHdoaWNoIHVuc2V0cyB0aGlzIGZsYWcgZm9yCiAgICAgICBhbGwga25vd24gbm9kZXMgKHN1YmFnZW50IHdvdWxkIHR5cGljYWxseSBjYWxsIHRoaXMgb24gZGlzY29ubmVjdAogICAgICAgaW5kaWNhdGlvbikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAogICAgIC0gY29ycmVjdCBiYWQgcmVjdXJzaXZlIGJlaGF2aW91ciBpbiByZWdpc3Rlcl9taWJfcmVhdHRhY2goKSB3aGljaAogICAgICAgdXNlZCB0byB0cnkgdG8gcmUtcmVnaXN0ZXIgTiBub2RlcyBOISB0aW1lcy4gIE9uY2Ugd2lsbCBub3JtYWxseQogICAgICAgYmUgZW5vdWdoLgogICAKICAgICAtIGNoYW5nZSB0byBkdW1wX3JlZ2lzdHJ5KCkgZm9ybWF0IHRvIGluY2x1ZGUgaGV4IGRpc3BsYXkgb2YKICAgICAgIGZsYWdzIGZpZWxkLgogICAKMjAwMS0wNi0yNiAwOToyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRml4IGVycm9yIGluIFNOTVB2MiB0cmFwIGV4YW1wbGVzICAoSWRlbnRpZmllZCBieSBEaXdha2FyIFNoZXR0eSkuCiAgIAoyMDAxLTA2LTI2IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdGVkIHNlbnNlIG9mIGR1bXBfcmVhbGxvY19vaWRfdG9fc3RyaW5nKCkgcmV0dXJuIHZhbHVlCiAgICAgICBjaGVja3MsIGFzIHNwb3R0ZWQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMjAwMS0wNi0yNSAwNjozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBzbWFsbCB0d2VhayBpbiBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlKCkgd2hlbiByZXRyeWluZyB1bmZ1bGZpbGxlZAogICAgICAgcmVxdWVzdHM6IGNvbnRpbnVlIGZyb20gdGhlICJzdGFydCIgT0lEIG9mIHRoZSBuZXh0IG5vZGUgb2YgdGhlCiAgICAgICB0cmVlLCBub3QgZnJvbSB0aGUgIm5hbWUiIE9JRCwgd2hpY2ggY2F1c2VzIGxvb3BpbmcuCiAgIAoyMDAxLTA2LTIxIDA5OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGhhbmRsZSAiaG9sZXMiIGluIHJvd3Mgb2YgdGFibGVzIHRoYXQgYXJlIGhhbmRsZWQgYnkgc3ViYWdlbnRzCiAgIAogICAgICAgU2luY2UgdGhlIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSBpcyByZWdpc3RlcmVkLCB3ZSBpbnRlcnByZXQKICAgICAgIGEgcmV0dXJuIG9mIG5vU3VjaEluc3RhbmNlIHdoZW4gZG9pbmcgYW4gaW5leGFjdCBxdWVyeSBhcyBtZWFuaW5nCiAgICAgICB3ZSBzaG91bGQgcmV0cnkgdGhlIHF1ZXJ5LgogICAKMjAwMS0wNi0yMSAwMjo1MCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgICAtIGZvcmdvdCB0byBjb21taXQgYXQgdGhlIHNhbWUgdGltZSBhcyBsYXN0IG1pYi5jIGNvbW1pdDsgdXBkYXRlZAogICAgICAgcHJvdG90eXBlIGZvciBzcHJpbnRfcmVhbGxvY19oaW50ZWRfaW50ZWdlcgogICAKMjAwMS0wNi0yMCAwNjo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBjb3VudF9pbmRleGVzIHdoaWNoIHJldHVybnMgdGhlIG51bWJlciBvZiBpbmRleGVzCiAgICAgICBhbGxvY2F0ZWQgZm9yIGEgZ2l2ZW4gT0lELiAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcKICAgICAgICJyb3cgY291bnQiIG9iamVjdHMsIGUuZy4gaWZOdW1iZXIuCiAgIAoyMDAxLTA2LTIwIDA1OjM3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmggLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RBUlQgYW5kIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUT1AKICAgICAgIGNhbGxiYWNrcyB3aGljaCBtYXkgYmUgdXNlZCB0byBtYW5hZ2UgaW5kZXggYWxsb2NhdGlvbnMuCiAgIAogICAgICAgTWFzdGVyIGFnZW50IHNob3VsZCBwcm9iYWJseSBjYWxsIHRoZXNlIGNhbGxiYWNrcyB0b28sIGFsdGhvdWdoCiAgICAgICBpdCdzIGEgYml0IG9mIGEgZGVnZW5lcmF0ZSBjYXNlLgogICAKMjAwMS0wNi0xOSAwOTo0NCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIHVzZSBhbiBleHBsaWNpdCBmaWVsZWQgImFsbG9jYXRlZCIgaW4gc25tcF9pbmRleCBzdHJ1Y3R1cmUgdG8KICAgICAgIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgY3VycmVudGx5IGFsbG9jYXRlZCwgcmF0aGVyCiAgICAgICB0aGFuIG92ZXJsb2FkaW5nIGEgTlVMTCBzZXNzaW9uIHRvIG1lYW4gdGhhdCBpdCBpcyBub3QuCiAgIAogICAgICAgVGhpcyBhbGxvd3Mgc3RhcnR1cCBjb2RlIGluIGEgbWFzdGVyIGFnZW50IHRvIHByZS1yZWdpc3RlciBpbmRpY2VzCiAgICAgICB3aGVuIHRoZXJlIGFyZSBubyBzZXNzaW9ucyBvcGVuLgogICAKMjAwMS0wNi0xOSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYyAsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gIGtlZXAgdGhlIHZhbHVlIG9mIE5FVFdPUktfQllURV9PUkRFUiBmcm9tIGguZmxhZ3MgaW4gdGhlCiAgICAgICAgYWdlbnR4LU9wZW4tUERVIGFuZCB1c2UgaXQgZm9yIHN1YnNlcXVlbnQgbWFzdGVyLWluaXRpYXRlZAogICAgICAgIEFnZW50WCBwcm90b2NvbCBvcGVyYXRpb25zLCBwZXIgUkZDIDI3NDEgKHNlY3Rpb24gNy4xLjEsCiAgICAgICAgcGFyYWdyYXBoIDQpLgogICAKICAgICAgICBGb3Igbm93LCB3ZSBhcmUgc3RvcmluZyB0aGlzIGluIHRoZSBmbGFncyBmaWVsZCBvZiBhCiAgICAgICAgc3Vic2Vzc2lvbi4gIFRoaXMgaXMgbGlrZWx5IHRvIHN0b3Agd29ya2luZyBpZiB0aGUgZmxhZ3MKICAgICAgICBkZWZpbml0aW9ucyBjaGFuZ2UgKGkuZS4gaXQncyBub3QgYSBncmVhdCBzb2x1dGlvbikKICAgCiAgICAgLSAgVGhhbmtzIHRvIFBldGVyIEtvcnN0ZW4gKHNldmVyaXR5b25lIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldCkKICAgICAgICBmb3IgaWRlbnRpZnlpbmcgdGhpcyBidWcsIGFuZCBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcyBmaXguCiAgIAoyMDAxLTA2LTE5IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcmVpbnN0YXRlIHNwYWNlIGJldHdlZW4gbnVtYmVycyBhbmQgdW5pdHMuCiAgIAogICAgIC0gcmVzcGVjdCBESVNQTEFZLUhJTlRzIGZvciBVbnNpZ25lZDMyLCBHYXVnZSwgR2F1Z2UzMiB0eXBlcy4KICAgCjIwMDEtMDYtMTMgMDM6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGRlYnVnZ2luZyB0byByZWR1Y2UgIm5vaXNlIGxldmVsIiBmcm9tIFB1cmlmeQogICAKMjAwMS0wNi0xMiAxMDozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBldGl0aW9ucyBmaWVsZCB2YWx1ZXMgb2YgPCAwIChieQogICAgICAgc2V0dGluZyB0aGVtIHRvIDAsIHBlciBSRkMgMTkwNSkKICAgCjIwMDEtMDYtMTIgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBidWcgdGhhdCBjYXVzZWQgYSBudWxsIHBvaW50ZXIgdG8gYmUgZm9sbG93ZWQgd2hlbiBwcm9jZXNzaW5nIGEKICAgICAgIEdFVEJVTEsgcmVxdWVzdCB3aXRoIG5vbi1yZXBlYXRlcnMgPiAwLCBtYXgtcmVwZXRpdGlvbnMgPT0gMCBhbmQgbm8KICAgICAgIHZhcmJpbmRzIGluIHRoZSByZXF1ZXN0LgogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4xKSwgcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMDYgMDc6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUoKSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpIGNhbGxzCiAgIAoyMDAxLTA2LTA2IDA3OjM3ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gbW9yZSB1bmlmb3JtIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCk6IG1ha2UgaXQgYWx3YXlzIGEKICAgICAgIHZhcmJpbmQgd2hpY2ggdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZSgpaW5nLCBvciBlbHNlIE5VTEwuCiAgIAoyMDAxLTA2LTA1IDAzOjEwICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZml4IGZvciBpbmRleCBhbGxvY2F0aW9uLCBzdWNoIHRoYXQgcmVxdWVzdHMgZm9yIHNwZWNpZmljIGluZGljZXMgd2hpY2gKICAgICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGFsbG9jYXRlZCwgYnV0IGFyZSBub3QgY3VycmVudGx5IGluIHVzZSwgc3VjY2VlZC4KICAgCiAgICAgLSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaWxlIHRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaDoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBmaWxlIG9sZF9hcGkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmg6CgogICBmaWxlIG51bGwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgZmlsZSBpbnN0YW5jZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaDoKCiAgIGZpbGUgc2V0X2hlbHBlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmg6CgogICBmaWxlIHRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmM6CgogICBmaWxlIHJlYWRfb25seS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZmlsZSBzZXJpYWxpemUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmg6CgogICBmaWxlIG9sZF9hcGkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oOgoKICAgZmlsZSBpbnN0YW5jZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oOgoKICAgZmlsZSByZWFkX29ubHkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlOgoKICAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmM6CgogICBmaWxlIG11bHRpcGxleGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oOgoKICAgZmlsZSBzZXJpYWxpemUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBmaWxlIG51bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwNzozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtaXNjIGZpeGVzIGZvciBvaWQgZm9ybWF0dGluZyBwcm9ibGVtcy4KICAgCjIwMDEtMDYtMDEgMDc6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBNYXJ0aW4gT2xkZmllbGQuCiAgIAoyMDAxLTA2LTAxIDAyOjUwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZml4IGZvciBhYnNvbHV0ZWx5IG1pbmQtYmVuZGluZyBtZW1vcnkgbGVhayB3aGVuIEFnZW50WCBzZXNzaW9ucwogICAgICAgdGltZW91dC4gIGFnZW50X3Nlc3Npb25fbGlzdCBob2xkcyBhIHF1ZXVlIG9mIHNlc3Npb25zIHdpdGggb3V0c3RhbmRpbmcKICAgICAgIHJlcXVlc3RzLiAgV2hlbiBhIHNlc3Npb24gdGltZXMgb3V0LCB0aGlzIG11c3QgYmUgc2NhdmVuZ2VkIHRvIG1ha2UKICAgICAgIHN1cmUgdGhlIHNlc3Npb25zIHRoYXQgaGF2ZSB0aW1lZCBvdXQsIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJlcXVlc3RzCiAgICAgICBhcmUgZnJlZSgpZC4KICAgCjIwMDEtMDUtMzAgMDM6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmV0cnkgaW5pdGlhbCBvcGVuIG9mIEFnZW50WCBtYXN0ZXIgc29ja2V0IGlmIEFnZW50WCBwaW5ncyBhcmUKICAgICAgIGVuYWJsZWQgKHNob3VsZCByZWFsbHkgYmUgYSBzZXBhcmF0ZSBkZWZhdWx0X3N0b3JlIG9wdGlvbiBidXQKICAgICAgIG5ldmVyIG1pbmQpCiAgIAoyMDAxLTA1LTMwIDAzOjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG1vcmUgYWdncmVzc2l2ZSBoYW5kbGluZyBvZiB0aW1lb3V0IGNvbmRpdGlvbnMgKGFsc28gZml4IG1lbW9yeQogICAgICAgbGVhaykKICAgCjIwMDEtMDUtMzAgMDM6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIG1vcmUgaW5mb3JtYXRpdmUgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgICAtIHJlbW92ZSBub2lzeSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vcmUgY29tcGFjdCBkZWJ1Z2dpbmcgaW4gX3Nlc3Nfc2VsZWN0X2luZm8KICAgCjIwMDEtMDUtMzAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjb3B5IGZsYWdzIGluIHJlYXR0YWNoX3N1YnRyZWUgKG5lZWRlZCBmb3IgQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pCiAgIAoyMDAxLTA1LTI4IDA4OjU0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgY2xpZW50LmggLAogICBtYXN0ZXJfYWRtaW4uYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLCBzdWJhZ2VudC5jOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSB0d2VhayB0byBnZXRTdGF0UHRyIHRvIGhhbmRsZSBnZXROZXh0IG9wZXJhdGlvbnMgaW4gY29tYmluYXRpb24gd2l0aAogICAgICAgRlVMTFlfUVVBTElGSUVEX0lOU1RBTkNFIG5vZGVzICh3aGljaCBhcmlzZSBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikuCiAgIAoyMDAxLTA1LTI4IDA4OjQ2ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzbWFsbCB0d2VhayB0byBkZWJ1Z2dpbmcgb3V0cHV0CiAgIAoyMDAxLTA1LTI4IDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMgKnByb3Blcmx5Ki4KICAgCjIwMDEtMDUtMjggMDQ6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBpbiBfc2Vzc19hc3luY19zZW5kIGVycm9yIGNhc2VzCiAgIAoyMDAxLTA1LTI4IDA0OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGFkZCBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzLgogICAKMjAwMS0wNS0yMyAwOToyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVzcGVjdCBtc2dNYXhTaXplIGluIHJlY2VpdmVkIHYzIFBEVXMgKGluIHRoZSB3ZWFrIHNlbnNlIHRoYXQgaWYKICAgICAgIHRoZSBzZXJpYWxpemVkIHJlc3BvbnNlIFBEVSBpcyBtb3JlIHRoYW4gaXQsIHdlIGRvbid0IHNlbmQgaXQpCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5LiAgVXNpbmcgdGhlc2UKICAgICAgIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5IHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLgogICAgICAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUKICAgICAgIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwOTowMCAgamJwbgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0cnVjdCBzb2NrYWRkcl9pbiByZXNwSXAKICAgCjIwMDEtMDUtMjMgMDg6NTggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGVhcmx5IGJhaWwgb3V0IG9mIGhhbmRsZV9zbm1wX3BhY2tldCgpIGlmIHRoZSBjYWxsYmFjayBvcGVyYXRpb24KICAgICAgIHR5cGUgaXMgbm90IFNOTVBfQ0FMTEJBQ0tfT1BfUkVDRUlWRURfTUVTU0FHRS4gIEluIHByYWN0aWNlLCB0aGUKICAgICAgIG9ubHkgd2F5IHRoaXMgYXJpc2VzIGN1cnJlbnRseSBpcyB3aGVuIGEgc3RyZWFtIHRyYW5zcG9ydCBiYXNlZAogICAgICAgY29ubmVjdGlvbiBnb2VzIGF3YXkgYW5kIGEgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIG9jY3Vycy4KICAgCjIwMDEtMDUtMjMgMDg6NDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG5ldyBmaWVsZHMgcmN2TXNnTWF4U2l6ZSBhbmQgc25kTXNnTWF4U2l6ZSBpbiBzbm1wX3Nlc3Npb24KICAgICAgIHN0cnVjdHVyZSB0byBzdXBwb3J0IHYzIG1zZ01heFNpemUKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkgZnJvbSBwdWJsaWMKICAgICAgIGludGVyZmFjZS4gIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5CiAgICAgICB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4gIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsCiAgICAgICBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZSBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDg6MzcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIG1zZ01heFNpemUgZmllbGQgdG8gc25tcF90cmFuc3BvcnQgc3RydWN0dXJlIHRvIHN1cHBvcnQKICAgICAgIG1zZ01heFNpemUgbmVnb3RpYXRpb24gZm9yIHYzCiAgIAoyMDAxLTA1LTIzIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2NfaGV4c3RyaW5nIGluc3RlYWQgb2Ygc3ByaW50X2hleHN0cmluZyBmb3IKICAgICAgIFNOTVBfVEVTVElOR19DT0RFIGRlYnVnZ2luZyBvdXRwdXQgb2YgSVYsIGtleSBhbmQgcGxhaW50ZXh0CiAgIAoyMDAxLTA1LTIzIDA1OjI1ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIG9wdGlvbiwgcmF0aGVyIHRoYW4gYXJjaGFpYyBoZXhfdG9fYmluYXJ5CiAgIAoyMDAxLTA1LTIzIDA0OjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBhbmQgLUUgb3B0aW9ucywgcmF0aGVyIHRoYW4gYXJjaGFpYyBoZXhfdG9fYmluYXJ5CiAgIAoyMDAxLTA1LTIzIDAzOjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5IGZ1bmN0aW9ucyBmb3IgaW5wdXQgc3RyaW5nCiAgICAgICB0byBPQ1RFVCBTVFJJTkcgY29udmVyc2lvbiwgcmF0aGVyIHRoYW4gYXJjaGFpYyBhc2NpaV90b19iaW5hcnkKICAgICAgIGFuZCBoZXhfdG9fYmluYXJ5CiAgIAogICAgIC0gb21pdCB0cmFpbGluZyBuZXdsaW5lIGZyb20gc3RyaW5nIChoZWxwZnVsIGZvciBvYmplY3RzIHRoYXQgZG9uJ3QKICAgICAgIGFsbG93IG5vbi1wcmludGluZyBjaGFyYWN0ZXJzLCBlLmcuIHN5c0xvY2F0aW9uLjApCiAgIAoyMDAxLTA1LTIwIDA4OjEyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZXdyaXR0ZW4gX3Nlc3NfcmVhZCgpIGZ1bmN0aW9uOgogICAKICAgICAgIC0gYmV0dGVyIGhhbmRsaW5nIG9mIGxvbmcgcGFja2V0cwogICAgICAgLSB6ZXJvLWNvcHkgcmVjZXB0aW9uIG9mIHBhY2tldHMgb24gc3RyZWFtIHRyYW5zcG9ydHMKICAgICAgIC0gbG93ZXIgbWVtb3J5IG92ZXJoZWFkcyBmb3IgcGFja2V0IGZyYWdtZW50IGhhbmRsaW5nIGZvciBzdHJlYW0KICAgICAgICAgdHJhbnNwb3J0cwogICAKICAgICAtIGFsbG93IHBhcnNpbmcgb2YgbGFyZ2Ugb2JqZWN0cyAoPjgxOTIgb2N0ZXRzKQogICAKMjAwMS0wNS0yMCAwNTo0OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGNvbnRleHROYW1lLCBzZWN1cml0eU5hbWUgLS0gY2F1c2VzIG1pbm9yIG1lbW9yeQogICAgICAgbGVhay4KICAgCjIwMDEtMDUtMjAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gdGVzdCByZXR1cm4gb2YgZmNudGwoRl9HRVRGTCksIHNvIGFzIG5vdCB0byBzZXQgZmxhZ3MgdG8gZ2FyYmFnZQogICAKICAgICAtIGNvcnJlY3Rpb24gdG8gY29tbWVudCAtLSBzZXQgc29ja2V0IHRvICpibG9ja2luZyohCiAgIAogICAgIC0gY2hlY2sgb3BhcXVlIGJlZm9yZSB3cml0aW5nIHRvIGl0IGluIHJlY3YKICAgCjIwMDEtMDUtMjAgMDU6MDIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHByb3BlciBoYW5kbGluZyBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgaW4gc25tcF9zeW5jaF9pbnB1dDoKICAgICAgIHNldCBhbiBlcnJvciBjb25kaXRpb24sIHdpdGggZXJybm8gU05NUEVSUl9BQk9SVCAoIlNlc3Npb24gYWJvcnQKICAgICAgIGZhaWx1cmUiKSwgd2hpY2ggc2VlbXMgbGlrZSBhIGdvb2QgZW5vdWdoIG1hdGNoLgogICAKMjAwMS0wNS0xOCAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBtYWtlIG5ld2x5LWFjY2VwdCgpZWQgc29ja2V0cyBibG9ja2luZzsgb3RoZXJ3aXNlIHByb2JsZW1zIGFyaXNlCiAgICAgICBsYXRlciB3aGVuIHNlbmQoKWluZyBsYXJnZSBQRFVzIChzaW5jZSBvbmx5IGEgc2luZ2xlIHNvY2tldCBidWZmZXIncwogICAgICAgd29ydGggb2YgZGF0YSBhdCBtb3N0IGNhbiBiZSBzZW50IHdpdGhvdXQgYmxvY2tpbmcpLgogICAKMjAwMS0wNS0xOCAwNzoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX29iamlkIGFuZCBzcHJpbnRfcmVhbGxvY192YXJpYWJsZSBpbnN0ZWFkIG9mCiAgICAgICBzcHJpbnRfb2JqaWQgYW5kIHNwcmludF92YXJpYWJsZSByZXNwZWN0aXZlbHksIHRvIGFsbG93IGxhcmdlIFBEVXMKICAgICAgIHRvIGJlIHByaW50ZWQgd2hlbiBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMTggMDc6MTYgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIGltcHJvdmVkIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSBzbm1wX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xOCAwNzoxNSAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgICAgLSByZW1vdmUgZGVidWdnaW5nIGZyb20gb3V0cHV0IHJvdXRpbmVzCiAgIAogICAgIC0gbmV3IGZ1bmN0aW9uIHNwcmludF9yZWFsbG9jX29iamlkCiAgIAogICAgIC0gbWFrZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgZXh0ZXJuYWxseQogICAgICAgdmlzaWJsZQogICAKMjAwMS0wNS0xOCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gYXNuX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xNSAwNDoxMCAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9JRHMgZm9yIFVEUC9JUHY2IGFuZCBUQ1AvSVB2NgogICAKMjAwMS0wNS0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBhZGRlZCBcbiB0byB0ZXh0IG9mIHNubXBfbG9nKCkgbWVzc2FnZXMgKGJ1ZyAjNDIyOTc4KQogICAKMjAwMS0wNS0xMSAwNzozMCAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgICAgLSBhZGRlZCBzcHJpbnRfcmVhbGxvY188dHlwZT4gZmFtaWx5IG9mIGZ1bmN0aW9ucyB3aGljaCB0YWtlIGV4dHJhCiAgICAgICBwYXJhbWV0ZXJzIGFuZCB1c2UgcmVsb2NhdGluZyBidWZmZXJzIHRvIHJlbW92ZSBsaW1pdGF0aW9ucyBkdWUgdG8KICAgICAgIGZpeGVkLXNpemUgYnVmZmVycyAoZS5nLiBzZWUgYnVnICM0MDkxODEpLgogICAKICAgICAtIGFsc28gZml4ZXMgcG90ZW50aWFsIHByb2JsZW0gbm90ZWQgYXMgYnVnICM0MTQ4MDMKICAgCiAgICAgLSBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBhbmQgZnByaW50X3ZhbHVlIHVzZSBuZXcgZnVuY3Rpb25zCiAgICAgICBzdWNoIHRoYXQgc25tcGdldCBldGMuIGFyZSBpbXByb3ZlZCBpbW1lZGlhdGVseQogICAKICAgICAtIG9sZCBmdW5jdGlvbnMgcmVtYWluICpGT1IgTk9XKiAtLSBidXQgcmVhbGx5IHRoZXkgc2hvdWxkIGJlCiAgICAgICBjb25zaWRlcmVkIHRvIGJlIGRlcHJlY2F0ZWQgKG5ldyBmdW5jdGlvbnMgcHJvdmlkZSBhIHN1cGVyc2V0IG9mCiAgICAgICB0aGVpciBmdW5jdGlvbmFsaXR5KS4KICAgCjIwMDEtMDUtMTEgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgICAtIGFkZGVkIGFkZGl0aW9uYWwgZnVuY3Rpb24gcG9pbnRlciB0byBzdHJ1Y3QgdHJlZSB0byBwb2ludCBhdAogICAgICAgcmVsb2NhdGluZyBidWZmZXIgY29tcGF0aWJsZSBvdXRwdXQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMTEgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMgLCB0b29scy5oOgoKICAgICAtIGFkZGVkIHV0aWxpdHkgZnVuY3Rpb24gc25tcF9zdHJjYXQsIHdoaWNoIGFwcGVuZHMgYSBzdHJpbmcgdG8gYQogICAgICAgcmVsb2NhdGFibGUgYnVmZmVyCiAgIAoyMDAxLTA1LTEwIDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBidWcgIzQyMzEwOSBpbmNvcnJlY3QgaW5kZXggcGFyc2luZwogICAKMjAwMS0wNS0wOSAxNjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGZpeCBzbm1wX2NsaWVudC5jOjU2OTogd2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgogICAKMjAwMS0wNS0wOSAxMjozNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24uaCAsIFJtb24vUkVBRE1FICwgUm1vbi9hZ3V0aWwuYwogICAsIFJtb24vYWd1dGlsLmggLCBSbW9uL2FndXRpbF9hcGkuaCAsIFJtb24vYWxhcm0uYwogICAsIFJtb24vYWxhcm0uaCAsIFJtb24vZXZlbnQuYyAsIFJtb24vZXZlbnQuaCAsCiAgIFJtb24vaGlzdG9yeS5jICwgUm1vbi9oaXN0b3J5LmggLCBSbW9uL3Jvd19hcGkuaCAsCiAgIFJtb24vcm93cy5jICwgUm1vbi9yb3dzLmggLCBSbW9uL3N0YXRpc3RpY3MuYyAsCiAgIFJtb24vc3RhdGlzdGljcy5oICwgUm1vbi90ZXN0X2FsYXJtLnNoICwKICAgUm1vbi90ZXN0X2hpc3Quc2g6CgogICBJbmNsdWRlIEFsZXggUm96aW4ncyBSbW9uLgogICAKMjAwMS0wNS0wNyAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMgLCBzbm1wX2NsaWVudC5oOgoKICAgQWRkZWQgYSBjb3VwbGUgb2YgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgdmFyYmluZGxpc3RzOgogICAgIGludCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoc3RydWN0IHZhcmlhYmxlX2xpc3QgKm5ld3ZhciwgdV9jaGFyIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2NoYXIgKnZhbF9zdHIsIHNpemVfdCB2YWxfbGVuKTsKICAgICB2b2lkIHNubXBfcmVwbGFjZV92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG9sZF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3X3R5cGUpOwogICAgIHZvaWQgc25tcF9yZXNldF92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG5ld190eXBlKTsKICAgCjIwMDEtMDUtMDcgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGRlZmluZSBTTk1QX01BTExPQ19UWVBFREVGKCkKICAgCjIwMDEtMDUtMDUgMDc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICBmaXggc3RvcmVfIG5hbWU7IGRvbid0IGNhc3QgdG8gYXNueSB0eXBlIGlmIHBhcm0gZXhwZWN0aW5nIHVfY2hhcio7IGZpeCBfdmFyaWFibGVfb2lkCiAgIG5hbWluZzsgY2FzdCBwYXJtIDIgb2YgbWVtZHVwIHRvIHVfY2hhcioKICAgCjIwMDEtMDUtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgICAtLSBtb3JlIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBwcm9ibGVtIGZvdW5kLgogICAKMjAwMS0wNS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAKMjAwMS0wNS0wMyAxMDowOCAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCAsIGNvbmZpZy5ndWVzcyAsIGNvbmZpZy5zdWIgLAogICBjb25maWd1cmUgLCBsdG1haW4uc2g6CgogICB1cGRhdGVkIHRvIGxpYnRvb2wgMS40CiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIHVzZSByZWFsbG9jIHJvdXRpbmVzLgogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHZhcmlhYmxlIGRlY2xhcmF0aW9uLgogICAKMjAwMS0wNS0wMSAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IHByaW50IGhleCBmb3Igc3RyaW5nIGxlbmd0aHMgbGVzcyB0aGFuIDQuICBTaG91bGQgaGF2ZSBkaWVkIGFnZXMgYWdvLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICBGaXggcHJvdG90eXBlIHNvIGl0cyBub3Qgc3RhdGljIChpdCBzaG91bGRuJ3QgYmUpLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIG1ha2UgUk9OTFkgdmFyaWFibGVzIHdyaXRhYmxlICh3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrLiAgSSdtIGJldHRpbmcgbm90LikKICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4gLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgYW4gcnBtIHN1YmRpcmVjdG9yeS4KICAgCjIwMDEtMDQtMjMgMjA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgYmlnIGNsZWFudXAgYW5kIG90aGVyIGZpeGVzIEkndmUgYWxyZWFkeSBmb3Jnb3R0ZW4gaW4gdGhlIGxhc3QgZmV3IG1pbnV0ZXMuCiAgIAoyMDAxLTA0LTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHdhbGsgb2ZmIGVuZCBvZiBtaWIgdHJlZSAoc2lnaCkuCiAgIAoyMDAxLTA0LTIzIDIwOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0aGUgbWliIGluZm8gZGlzcGxheSBvcHRpb25zLgogICBzYXZlIHRoZW0gYXBwcm9wcmlhdGVseS4KICAgCjIwMDEtMDQtMjMgMTg6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbW9yZSBzYXZhYmxlIG9wdGlvbiBpdGVtcy4KICAgdXNlIERhdGE6OkR1bXBlciB0byBzYXZlIG1vc3Qgc3R1ZmYuCiAgIAoyMDAxLTA0LTIzIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHNhdmUgc2Vzc2lvbiBvcHRpb25zIHR3aWNlLgogICBNYWtlIGNvbG9yIG9mIHdyaXRhYmxlIG9iamVjdHMgYSB2YXJpYWJsZS4KICAgCjIwMDEtMDQtMjMgMTc6MDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogdGttaWIgKFY0LTItcGF0Y2hlcy4yKSwgdGttaWI6CgogICBmaXggd2FsayBwcm9ibGVtIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAxLTA0LTIzIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHJlZHVjZSBzY3JlZW4gcmVhbGVzdGF0ZSBhbGwgb3ZlciB0aGUgcGxhY2UKICAgCjIwMDEtMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgdGVzdCBhZ2FpbnN0IHZlcnNpb24gNQogICAKMjAwMS0wNC0xOCAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCAsIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0CiAgICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkZWQgTE0tU0VOU09SUy1NSUIgc3VwcG9ydCAoZGlza2lvIGV4dGVuc2lvbikgZnJvbSBNYXJ0aW4gT2xkZmllbGQKICAgCjIwMDEtMDQtMTggMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhY2tpbmcgb24gc25tcF9hZGRfdmFyIHRvIGhhbmRsZSBsb25nIHZhbHVlcwogICAKICAgICAgIC0gdXNlIHNubXBfe2hleCxkZWNpbWFsfV90b19iaW5hcnkgaW5zdGVhZCBvZiBoZXhfdG9fYmluYXJ5CiAgICAgICAgIGFuZCBhc2NpaV90b19iaW5hcnk7IHRoZXNlIHNob3VsZCBiZSByZW1vdmVkCiAgIAogICAgICAgLSBkb24ndCB1c2Ugc3RydG9rIGluIHByb2Nlc3NpbmcgYml0c3RyaW5ncwogICAKMjAwMS0wNC0xOCAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSB1c2UgdGhlIGdlbmVyaWMgc25tcF9yZWFsbG9jIGZ1bmN0aW9uIGluIGFzbl9yZWFsbG9jCiAgIAoyMDAxLTA0LTE4IDAyOjQwICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jICwgdG9vbHMuaDoKCiAgICAgLSBuZXcsIHJlYWxsb2NhdGluZyB1dGlsaXR5IGZ1bmN0aW9ucyBzbm1wX2hleF90b19iaW5hcnkgYW5kCiAgICAgICBzbm1wX2RlY2ltYWxfdG9fYmluYXJ5IHRvIGNvbnZlcnQgaGV4IGFuZCBkZWNpbWFsIHN0cmluZ3MgdG8gb2N0ZXQKICAgICAgIHN0cmluZ3MgcmVzcGVjdGl2ZWx5LgogICAKICAgICAtIG5ldyB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfcmVhbGxvYyB0byBwZXJmb3JtIGJ1ZmZlciAocmUtKWFsbG9jYXRpb24KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMTA6MDYgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gZXh0ZW5kZWQgKGFuZCBjb3JyZWN0ZWQhKSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgbmV3IEFQSS4KICAgCjIwMDEtMDQtMTEgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXAuYyAsIHNubXAuaDoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGRfdmFyX29wIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLgogICAKMjAwMS0wNC0xMSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowMiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBhc25fcmVhbGxvYygpIGZ1bmN0aW9uIGNoZWNrcyB3aGV0aGVyIGl0IGhhcyBiZWVuIHBhc3NlZCBhIE5VTEwKICAgICAgIHBvaW50ZXIgYW5kIHVzZXMgbWFsbG9jKCkgaW4gdGhhdCBjYXNlICh0aGFua3MgdG8gTWljaGFlbCBTbGlmY2FrCiAgICAgICBmb3IgcG9pbnRpbmcgb3V0IHRoZSBkYW5nZXIgaGVyZSkuCiAgIAoyMDAxLTA0LTExIDA2OjEzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDQ6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gc2V0IFNPX1NOREJVRiBhbmQgU09fUkNWQlVGIHRvIDEyOEtiIGZvciBuZXdseS1vcGVuZWQgVURQIHNvY2tldHMsCiAgICAgICB0byBlbmFibGUgbGFyZ2UgUERVcyB0byBiZSBzZW50IGFuZCByZWNlaXZlZC4gIFNvbWUKICAgICAgIGltcGxlbWVudGF0aW9ucyBkZWZhdWx0IHZlcnkgbG93IChTb2xhcmlzIDIuNyA4S2IsIExpbnV4IDIuNAogICAgICAgNjRLYikuCiAgIAoyMDAxLTA0LTA5IDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIG1vZGlmaWVkIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIG1ha2UgdXNlIG9mIHJlYWxsb2NhdGluZwogICAgICAgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgICAgLSBhZGRpdGlvbmFsIHBhcmFtZXRlciB0byB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmg6CgogICAgIC0gYWxsb3cgYWRkaXRpb25hbCBwYXJhbWV0ZXIgZm9yIG91dGdvaW5nIHBhcmFtcyB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcHJvdG90eXBlcyBmb3IgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucwogICAKMjAwMS0wNC0wOSAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgdG8gdXNlIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIGlmCiAgICAgICB1c2luZyByZXZlcnNlIGVuY29kaW5nIGF0IGFsbC4KICAgCjIwMDEtMDQtMDkgMDk6NDkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAgIC0gYWRkIG5ldyBmdW5jdGlvbiBzbm1wX3JlYWxsb2NfcmJ1aWxkX3Zhcl9vcCgpIHdoaWNoIHVzZXMKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIHRvIGVuY29kZSB2YXJiaW5kcy4KICAgCjIwMDEtMDQtMDkgMDk6NDcgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gcHJvdG90eXBlIGZvciBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LAogICAgICAgd2hpY2ggcGVyZm9ybSByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUKICAgICAgIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCiAgICAgLSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgYWJvdmUuCiAgIAoyMDAxLTA0LTA5IDA5OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sIHdoaWNoIHBlcmZvcm0KICAgICAgIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCiAgICAgICBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKMjAwMS0wNC0wNiAxMjoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0ICwgQ09QWUlORyAsIENoYW5nZUxvZyAsCiAgIEVYQU1QTEUuY29uZi5kZWYgLCBGQVEgLCBORVdTICwgUE9SVElORyAsCiAgIFJFQURNRSAsIFJFQURNRS5hZ2VudHggLCBSRUFETUUuc25tcHYzICwgY29uZmlndXJlCiAgICwgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oCiAgICwgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvZHNfYWdlbnQuaCAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsIGFwcHMvc25tcGRlbHRhLmMKICAgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgbG9jYWwvTWFrZWZpbGUuaW4gLCBsb2NhbC9taWIyYyAsIGxvY2FsL3NubXBjb25mCiAgICwgbG9jYWwvdGttaWIgLCBsb2NhbC93ZXNyZXN0YXJ0ICwgbWFuL3NubXBjbWQuMQogICAsIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgbWFuL3NubXBkZWx0YS4xICwKICAgbWlicy9yZmNsaXN0ICwgbWlicy9yZmNtaWJzLmRpZmYgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCAsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgbWVyZ2UzIC0+IG1lcmdlNC4gIEkgZG9uJ3QgKnRoaW5rKiBJIGJyb2tlIGFueXRoaW5nLgogICAgIC0gVGhlIG1haW4gbGluZSBzaG91bGQgbm93IGNvbnRhaW4gYWxsIHRoZSA0LjIuMSBwYXRjaGVzLgogICAgIC0gSSBtYXkgZG91YmxlIGNoZWNrIHRoaXMgYXQgYSBsYXRlciBkYXRlLgogICAKMjAwMS0wNC0wNSAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jICwgcGFzc19wZXJzaXN0LmM6CgogICBIYW5kbGUgc2V0dGluZyBudWxsIHN0cmluZyB2YWx1ZXMgdmlhIHRoZSAncGFzcycgbWVjaGFuaXNtLiAoU3VwcG9ydCM0MDY3MjgpCiAgIEFsc28gaGFuZGxlIGVtYmVkZGVkIHdoaXRlc3BhY2UgaW4gc3VjaCB2YWx1ZXMuCiAgIEFsc28gYXBwbGllZCB0byAncGFzc19wZXJzaXN0Jy4KICAgCjIwMDEtMDQtMDUgMDY6MDcgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYyAsIGtlcm5lbC5jCiAgICwgbWliX21vZHVsZXMuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaAogICAsIHNubXBfdmFycy5jICwgbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYyAsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jCiAgICwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTA1IDA2OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBFbnN1cmUgdGhhdCBjaGVja2luZyBmb3IgJ3N0YXR2ZnMnIGlzIGRvbmUgY29uc2lzdGVudGx5CiAgIAoyMDAxLTA0LTA1IDA2OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBlbnN1cmUgdGhhdCAnZXhlY19jb21tYW5kJyBpcyB1c2VkIGNvbnNpc3RlbnRseSB3aXRoIHRoZSBhdmFpbGFiaWxpdHkgb2YgZXhlY3YKICAgKEEgY2xlYW5lciBhcHByb2FjaCB0aGFuIHRoZSBwcmV2aW91cyBwYXRjaCkKICAgCjIwMDEtMDQtMDUgMDY6MDEgIGR0czEyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jICwgYXV0b19ubGlzdC5oOgoKICAgZml4IGZvciBhdXRvX25saXN0IGJvZ3VzIGRlZmluaXRpb25zIGZvciBtYWNoaW5lcyB3aXRob3V0IG5saXN0LgogICAKMjAwMS0wNC0wNSAwNDo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBzYXZlIGEgc3RyY3B5KCkgYW5kIGFsbG93IGxvbmcgb2N0ZXQgc3RyaW5nIHZhbHVlcyB3aXRob3V0IGNyYXNoaW5nCiAgICAgICh0aG91Z2ggdGhlcmUgYXJlIHN0aWxsIHByb2JsZW1zIGR1ZSB0byB0aGUgbGliZXJhbCB1c2Ugb2YgZml4ZWQKICAgICAgc2l6ZSBidWZmZXJzIHdpdGggbm8gYm91bmRzIGNoZWNraW5nIGFsbCBvdmVyIHRoZSBwbGFjZS4gIFNpZ2gpLgogICAKMjAwMS0wNC0wNCAwNjo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIC0gY2FsbCBleHRlcm5hbCBzaWduYWwgaGFuZGxlcnMgYmVmb3JlIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpLAogICAgICByYXRoZXIgdGhhbiBhZnRlciBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSBidXQgYmVmb3JlIHNlbGVjdCgpLgogICAgICBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIHByb2JsZW0gdGhhdCBjb3VsZCBhcmlzZSBpZiBhIHNpZ25hbCBoYW5kbGVyCiAgICAgIGNsb3NlZCBhIHNlc3Npb24sIHdoaWNoIHdvdWxkIGNhdXNlIHNlbGVjdCgpIHRvIHJldHVybiAtMSB3aXRoCiAgICAgIEVCQURGLCBhbmQgdGh1cyB0ZXJtaW5hdGUgdGhlIGFnZW50LgogICAKMjAwMS0wNC0wMyAwOTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRW5zdXJlIHRoYXQgdGhlICdleHRtcCcgY29tbWFuZCB2YXJpYWJsZSBpcyBhY2Nlc3NpYmxlIG9uIHN5c3RlbXMgd2l0aG91dCBFWEVDVi4KICAgCjIwMDEtMDQtMDMgMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToyMiAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jICwgc25tcHRyYXBkX2xvZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMgLCByZWFkX2NvbmZpZy5jICwgc25tcFRDUERvbWFpbi5oCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmggLCBzbm1wX2FwaS5jICwgc25tcF9sb2dnaW5nLmMgLAogICBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaCAsIHN5c3RlbS5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAxMDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBjaGVjayBmb3IgbGltaXRzLmggcHJvcGVybHkKICAgCjIwMDEtMDQtMDIgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSBtaW5vciB0eXBlZmFjZSBjaGFuZ2VzCiAgIAoyMDAxLTAzLTMxIDA2OjI3ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MjUgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMzoKCiAgICAtIGRvY3VtZW50IHRoZSBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyIGZ1bmN0aW9uCiAgIAogICAgLSBleHBhbmQgdGhlIE5PVEVTIHNlY3Rpb24gZGlzY3Vzc2luZyB1c2Ugb2YgU0lHQUxSTSAob3Igbm90KQogICAKMjAwMS0wMy0zMSAwNjoxNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seSBhbmQgY2FuY2VsIGFsbAogICAgICBjYWxsYmFja3Mgd2hpY2ggbWFrZSByZWZlcm5jZSB0byB0aGUgQWdlbnRYIHNlc3Npb24uCiAgIAoyMDAxLTAzLTMxIDA2OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAtIEZpeCBtdWx0aXBsZSBmcmVlKCkgb2YgcGFydHMgb2YgdGhlIHN1YnNlc3Npb24gYnkgemVyb2luZyBvdXQKICAgICAgZmllbGRzIHRoYXQgd2UgZG9uJ3QgdXNlLgogICAKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIENoYW5nZWQgcGFja2V0IGhhbmRsaW5nIG9uIHN0cmVhbS1saWtlIHRyYW5zcG9ydHMgc28gdGhhdCBhbGwKICAgICAgY29tcGxldGUgcmVjZWl2ZWQgcGFja2V0cyBhcmUgcHJvY2Vzc2VkOgogICAKICAgICAgX3Nlc3NfcmVhZCBpcyByZWZhY3RvcmVkIGludG8gdHdvIGZ1bmN0aW9uczogX3Nlc3NfcmVhZCByZW1haW5zCiAgICAgIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSB0aGUgdHJhbnNwb3J0IGxheWVyLCBidXQgdGhlbgogICAgICBjYWxscyAocGVyaGFwcyBtb3JlIHRoYW4gb25jZSkgX3Nlc3NfcHJvY2Vzc19wYWNrZXQgdG8gZGlzcGF0Y2gKICAgICAgZWFjaCBwYWNrZXQgcmVhZC4KICAgCiAgICAtIFRoZSBwcmVzZW5jZSBvZiBhIHNlc3Npb24gd2l0aCBhIGJ1ZmZlcmVkIHBhcnRpYWwgcGFja2V0IG5vIGxvbmdlcgogICAgICBjYXVzZXMgc25tcF9zZWxlY3RfaW5mbyB0byByZXR1cm4gd2l0aCBhIHRpbWVvdXQgb2YgemVyby4KICAgCiAgICAtIEZyZWUgdGhlIHN1YnNlc3Npb25zIG9mIGEgc2Vzc2lvbiB3aGVuIGRvaW5nIGFuIHNubXBfc2Vzc19jbG9zZTsKICAgICAgdGhpcyBmaXhlcyBhbiBBZ2VudFggbWVtb3J5IGxlYWsgd2hlbiBzdWJhZ2VudHMgY29tZSBhbmQgZ28uCiAgIAogICAgLSBQZXJmb3JtIGNhbGxiYWNrcyB3aXRoIGFuIG9wZXJhdGlvbiBhcmd1bWVudCBvZgogICAgICBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgd2hlbiB5b3UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDMtMzEgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgTWFkZSB0cmFuc3BvcnQgZG9tYWluIGNvbnN0CiAgIAoyMDAxLTAzLTMxIDA1OjU1ICBqYnBuCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB0aGF0IGNhbiBvY2N1ciB3aGVuIGRlcmVnaXN0ZXJpbmcgY2FsbGJhY2tzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZmlsZSBSRUFETUUuYWdlbnR4IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUyAoVjQtMi1wYXRjaGVzLjEpLCBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBsaWJzbm1wLmRlZjoKCiAgIEFkZCB2YWNtX2lzX2NvbmZpZ3VyZWQuCiAgIAoyMDAxLTAzLTI4IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDY6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MzYgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYyAsIHNubXBfYXBpLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAtIHJlbmFtZSBjYWxsYmFjayBvcGVyYXRpb25zIHRvIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+CiAgICAtIGFkZCBuZXcgb3BlcmF0aW9ucyBTTk1QX0NBTExCQUNLX09QX0NPTk5FQ1QsIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVAogICAgLSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBSRUNFSVZFRF9NRVNTQUdFLCBUSU1FRF9PVVQsIFNFTkRfRkFJTEVECiAgIAoyMDAxLTAzLTI3IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgY2hhbmdlIGZwcmludGYgLT4gc25tcF9sb2cuCiAgIERvbid0IGFsbG93IG1vZGlmaWNhdGlvbnMgb2YgcmVhZC1vbmx5IHJvd3MgaW4gbXRlT2JqZWN0c1RhYmxlLgogICAKMjAwMS0wMy0yNyAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oICwgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jCiAgICwgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgU3VwcG9ydCBmb3IgbmV3IGZlYXR1cmVzIGluIHRoZSBESVNNQU4tRVZFTlQtTUlCIGNvZGU6CiAgICAgTmV3IHNubXBkLmNvbmYgdG9rZW5zOgogICAgICAtIG1vbml0b3IgWy1vIG9pZC4uLl0gWy11IHVzZXJdIG9pZCBbKD18IT18PD18Li4uKSBWQUxVRV0uCiAgICAgIC0gZGVmYXVsdE1vbml0b3JzIHllcwogICAKMjAwMS0wMy0yNyAxMDo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1vdmVkICogZnJvbSBiZWdpbm5pbmcgb2Ygcm91dGluZSB0byB0aGUgc2FtZSBsaW5lIGFzIHRoZSByZXR1cm4KICAgdmFyaWFibGUgZGVjbGFyYXRpb24uICBXYXMgY2F1c2luZyBldGFncyBncmllZiB0aGUgb3RoZXIgd2F5LgogICAKMjAwMS0wMy0yNyAxMDo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW46IHVzZSAlcyBpbnN0ZWFkIG9mIEBzIGZvciBzZWFyY2gvcmVwbGFjZSBkZWxpbWl0ZXJzLgogICAKMjAwMS0wMy0yNyAxMDoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2xvZyB3aXRoICVzIHRvIHByZXZlbnQgJSBleHBhbnNpb24gaW4gb2N0ZXQgc3RyaW5ncyBjb250YWluaW5nIGEgJXMuCiAgIHRyYXBfZm10X2ZyZWUgbmVlZHMgKClzLgogICAKMjAwMS0wMy0yNyAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIEhhbmRsZSBub24tcmVzcG9uc2l2ZSBBZ2VudFggc3ViLWFnZW50cyBtb3JlIHJvYnVzdGx5LgogICAgICAoQmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCAmIFBhdWwgUmFzbXVzc2VuKQogICAKMjAwMS0wMy0yNyAwODowMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQXZvaWQgZG91YmxlLWZyZWVpbmcgb2YgY2FjaGVkIGFkZHJlc3Mgc3RyaW5ncy4KICAgICAgKEpvaG4ncyBpbXByb3ZlbWVudCB0byBteSBzdWdnZXN0ZWQgZml4KS4KICAgCjIwMDEtMDMtMjcgMDI6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVzZXQgY291bnQgb2YgYXV0aG9yaXplZCBwZWVycyBvbiBjbG9zZWRvd24uICAoVGhhbmtzIHRvIFZsYWQgVHVuaWspCiAgIAoyMDAxLTAzLTI2IDE4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oCiAgIChWNC0yLXBhdGNoZXMuWzEsMiwxXSksIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgc25tcGxpYi92YWNtLmMgLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGlwZi1tb2QucGwgKFY0LTItcGF0Y2hlcy4xKSwgaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAwNzo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIEFTTl9PQ1RFVF9TVFIgcmF0aGVyIHRoYW4gdGhlIGhpc3RvcmljIEFTTl9CSVRfU1RSIGZvciAnYicgb2JqZWN0IHZhbHVlcwogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAoVjQtMi1wYXRjaGVzLjMpLCBhZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MzAgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBdm9pZCBjcmFzaCBpbiBzbm1wX3NodXRkb3duIG9uIHBsYXRmb3JtcyB0aGF0IGNoZWNrIHBvaW50ZXIgdmFsaWRpdHkKICAgaW4gZnJlZSgzKSwgZS5nLiBGcmVlQlNELgogICAKMjAwMS0wMy0yMSAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jCiAgICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBjb3B5X253b3JkIGNyZWF0ZWQgdGhhdCBjaGVja3MgYnVmZmVyIGxlbmd0aHMuCiAgIE1hZGUgZXZlcnl0aGluZyB1c2UgaXQuCiAgIAoyMDAxLTAzLTIxIDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIEtTTSBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMjAgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvLmN2c2lnbm9yZToKCiAgIElnbm9yZSBQdXJpZnkgYW5kIE5GUyBzdHVmZgogICAKMjAwMS0wMy0xNiAxMDoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICBhZGRlZCBNSVRfTkVXX0NSWVBUTyAoZm9yIGtzbSkgZGVmaW5pdGlvbiB3aGljaCB3YXMgbWlzc2luZwogICAKMjAwMS0wMy0xNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggcmlkaWN1bG91cyBtZW1vcnkgbGVhayBpbiBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgCjIwMDEtMDMtMTUgMTE6MDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIHdob29wcy4gIE1pc3NlZCBhIG1lcmdlIGNvbmZsaWN0IGxpbmUKICAgCjIwMDEtMDMtMTUgMTA6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIFJFQURNRS53aW4zMiAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgbWFuL3NubXAuY29uZi41LmRlZiAsIG1hbi9zbm1wY21kLjEgLCBtYW4vc25tcHRyYXBkLjgKICAgLCBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCAsIG1pYnMvTVRBLU1JQi50eHQgLAogICBtaWJzL01ha2VmaWxlLm1pYiAsIG1pYnMvUkVBRE1FLm1pYnMgLAogICBtaWJzL1RVTk5FTC1NSUIudHh0ICwgbWlicy9pYW5hbGlzdCAsIG1pYnMvbWliZmV0Y2gKICAgLCBtaWJzL3JmY2xpc3QgLCBtaWJzL3JmY21pYnMuZGlmZiAsIG1pYnMvc21pc3RyaXAKICAgLCBwZXJsL1NOTVAvU05NUC54cyAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9taWIuaCAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCiAgICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL3N5c3RlbS5oICwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwKICAgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiAgICwgd2luMzIvY29uZmlnLmggLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oICwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oICwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oICwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIG1lcmdlIGZyb20gcGF0Y2hlcyBicmFuY2g6IG1lcmdlMi0+My4KICAgCjIwMDEtMDMtMTUgMTA6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oOgoKICAgZXh0cmEgbWVtYmVycyBmb3IgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDA3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIHJ1biBzaWduYWwgaGFuZGxlcnMgZWFybGllcgogICAKMjAwMS0wMy0xNCAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmggKFY0LTItcGF0Y2hlcy4yKSwgYWdlbnRfdHJhcC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDogbWFrZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGEgcHVibGljIGZuLgogICAKMjAwMS0wMy0xNCAxMjoxNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBVc2UgY29uZmlnLmgsIGRvbid0IHVzZSB1Y2Qtc25tcCBkaXJlY3RvcnkgdG8gYnVpbGQgaW4gdGhlIG1pYmdyb3VwIHRyZWUuCiAgIAoyMDAxLTAzLTE0IDExOjA1ICBzbGlmCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiAsIFJVTlRFU1RTICwgVEVTVENPTkYuc2gKICAgLCBldmFsX29uZXNjcmlwdC5zaCAsIGV2YWxfdG9vbHMuc2g6CgogICBtZXJnZSB0aGUgdGVzdCBzY3JpcHQgY2hhbmdlcyBtYWRlIGluIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoLgogICAKMjAwMS0wMy0xNCAxMDo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBDaGFuZ2UgdG8gZGlzY29udGludWl0eSBwcm9jZXNzaW5nIHRvIHN0b3AgaXQgcmV0dXJuaW5nIFRSVUUgYWxsIHRoZQogICB0aW1lCiAgIAoyMDAxLTAzLTE0IDEwOjUyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgICAtIHJvdWdoIHN0YWIgYXQgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgICAtIGJhaWwgb3V0IG9mIGdldE5leHQtdHlwZSBsb29wcyBvbiBhIGJhZFR5cGUgY29uZGl0aW9uCiAgIAoyMDAxLTAzLTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNToKCiAgIGtlcmJlcm9zIFJFQURNRSBmaWxlIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0xNCAxMDoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIEdldCByZXR1cm5lZCAqdmFyX2xlbiByaWdodCBmb3IgbXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlECiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgLCBhcHBzL3NubXB2YWNtLmMgLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBxdWlldCBzb21lIHdhcm5pbmdzLgogICAKMjAwMS0wMy0xNCAxMDoxOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluLgogICAKMjAwMS0wMy0xNCAwNTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTItcGF0Y2hlcy41KSwgaHJfc3dydW4uYzoKCiAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbgpYbgpIaKbmdlcikKICAgCjIwMDEtMDMtMTQgMDU6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTAzLTE0IDAyOjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZVRyaWdnZXJUYWJsZS5jICwKICAgbXRlVHJpZ2dlclRhYmxlLmg6CgogICAgLSBzYXZlIG9yaWdpbmFsIFBEVSdzIHRyYW5zcG9ydCBkb21haW4gLS0gbmVjZXNzYXJ5IGZvcgogICAgICBjb21tdW5pdHkgc3RyaW5nIHByb2Nlc3NpbmcKICAgCiAgICAgIENBVVRJT046IGluY29tcGF0aWJsZSBjaGFuZ2UgaW4gZm9ybWF0IG9mIG10ZVRyaWdnZXJUYWJsZQogICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGVudHJ5CiAgIAogICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbXRlX3J1bl90cmlnZ2VyIGJ5IHJlbGVhc2luZyBQRFVzCiAgIAogICAgLSBzZW5kICJiYWQgdHlwZSIgbm90aWZpY2F0aW9ucyBpbiBzb21lIGNhc2VzCiAgIAogICAgLSBvdGhlciBtaW5vciBtZW1vcnkgbGVha3MKICAgCiAgICAtICJkZWx0YSIgc2FtcGxlVHlwZSBoYW5kbGVkIGZvciBib29sZWFuIHRyaWdnZXJzCiAgIAogICAgLSBtb3JlICJYWFg6IiBjb21tZW50cyEKICAgCjIwMDEtMDMtMTMgMTM6NTIgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggc3VwcG9ydCBmb3IgSW50ZWdlcjMyCiAgIAoyMDAxLTAzLTExIDA4OjQzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgIEFkZCBhIGZ1bmN0aW9uIHRvIHRlc3Qgd2hldGhlciBhbiBPSUQgY29ycmVzcG9uZHMgdG8gYSBzdXBwb3J0ZWQgdHJhbnNwb3J0CiAgIGRvbWFpbi4KICAgCjIwMDEtMDMtMTEgMDc6NTUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmg6CgogICBBZGQgI2luY2x1ZGVzIHRvIG1ha2Ugc3RydWN0IHNvY2thZGRyX2luIGNvbXBsZXRlCiAgIAoyMDAxLTAzLTExIDA3OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaDoKCiAgIFJlbW92ZSBzcHVyaW91cyAjaW5jbHVkZQogICAKMjAwMS0wMy0wOSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggcnd1c2VyIC1zIG1vZGVsIHRvIGFjdHVhbGx5IHdvcmsuCiAgIAoyMDAxLTAzLTA5IDA1OjUyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU2V0IGEgUERVJ3Mgb3BhcXVlIGRhdGEgb24gYSB0Y3BfcmVjdjsgdGhpcyBpc24ndCBuZWNlc3NhcnkgdG8gc2VuZAogICByZXBsaWVzIChiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBpcyBzdHJvbmdseSBjb25uZWN0ZWQpIGJ1dCBpZgogICB5b3UgZG9uJ3QgZG8gdGhpcyB0aGVuIHlvdSBjYW4ndCBkbyAiY29tMnNlYyIgdHlwZSBwcm9jZXNzaW5nIGZvciBQRFVzCiAgIHJlY2VpdmVkIG9uIFRDUCBzZXNzaW9ucy4uLiBpbnRlcmVzdGluZy4KICAgCjIwMDEtMDMtMDkgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggYmFkIGFzc3VtcHRpb24gdGhhdCBjb21tdW5pdHkgc3RyaW5nIGlzIHplcm8tdGVybWluYXRlZAogICAKMjAwMS0wMy0wOCAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29ycmVjdCB2ZXJzaW9uIHN0YXRlbWVudHMgdG8gaW5kaWNhdGUgbmV0LXNubXAuCiAgIC0gcmVtb3ZlIG15IG5hbWUgYXMgYXV0aG9yIChJJ20gY2VydGFpbmx5IG5vdCB0aGUgb25seSBvbmUpCiAgIC0gYWRkIHdlYiBhZGRyZXNzLgogICAKMjAwMS0wMy0wOCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBLZW4gSG9ybnN0ZWluJ3MgbmFtZSB0byBjb250cmlidXRlcnMgbGlzdC4KICAgLSBSZW1vdmVkIG1pbmUgZnJvbSBiZWluZyBsaXN0ZWQgc2VwYXJhdGVseS4KICAgCjIwMDEtMDMtMDggMTQ6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwgc25tcGxpYi9zbm1wa3NtLmMgLAogICBzbm1wbGliL3NubXBrc20uaDoKCiAgIEFkZGVkIGEga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kdWxlIChrc20pLgogICAgIEhvd2V2ZXIsIE5lZWRzIGxpYnJhcmllcyAoLWxrcmI1IC1sY29tX2Vycikgbm90IGJlaW5nIGNoZWNrZWQgZm9yIGN1cnJlbnRseS4KICAgCjIwMDEtMDMtMDggMTQ6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFdob29wcy4gIFNob3VsZG50IGhhdmUgYSBuZWdhdGlvbiBzaWduIG9uIHRoZSBtb3N0IHJlY2VudCBjaGVja2luLgogICAKMjAwMS0wMy0wOCAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSWYgTk9fUFJPQkUgaXMgc2V0LCBkb24ndCBkbyBhbnkgcG9zdCBwcm9iaW5nIGFjdGl2aXRpZXMgZWl0aGVyIGxpa2UKICAgdGltZSB1cGRhdGluZyBhbmQgdXNlciBjcmVhdGlvbi4KICAgCjIwMDEtMDMtMDggMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgUmVtb3ZlIHN0cmR1cCgpcyBvbiBzb21lIHNlc3Npb24gcGFyYW1ldGVycyB3aGljaCBjYXVzZSBtZW1vcnkgbGVha3MKICAgKHNpbmNlIHNubXBfb3BlbiBkZWVwIGNvcGllcyB0aGUgaW5wdXQgc2Vzc2lvbiBhbnl3YXkpCiAgIAoyMDAxLTAzLTA4IDA4OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBNYWtlIHN1cmUgc2VzcyBmaWVsZCBvZiBuZXcgZW50cmllcyBpcyBpbml0aWFsaXNlZCB0byBOVUxMLgogICAKMjAwMS0wMy0wOCAwNzo0OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBNYWtlIGNvbmZpZyB0b2tlbiBwYXJzZXIgdXBkYXRlIHRpbWVzdGFtcCBvbiBlbnRyeSBpdCBjcmVhdGVzOwogICBtb3ZlIHVwZGF0ZV90aW1lc3RhbXAgZnVuY3Rpb24uCiAgIAoyMDAxLTAzLTA3IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBTTk1QLnBtICwgU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIHJlbW92ZSB1bm5lZWRlZCB0aW1lc3RhbXAgc3VwcG9ydAogICAKMjAwMS0wMy0wNiAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2NsaWVudC5jICwgc25tcF9zZWNtb2QuYwogICAsIHNubXBfc2VjbW9kLmggLCBzbm1wdXNtLmM6CgogICBzZWNtb2Qgc3RydWN0IHN5bWJvbCBuYW1lIGNoYW5nZXMgdG8gc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlLgogICAKMjAwMS0wMy0wNiAxNjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2NsaWVudC5jOgoKICAgLSBzZXQgdGhlIGRlZmF1bHQgcGR1IHNlY3VyaXR5IG1vZGVsIHRvIFNOTVBfREVGQVVMVF9TRUNNT0RFTCAobm90IDApLgogICAtIGRvbid0IGZvcmNlIHRoZSBzZWN1cml0eSBtb2RlbCBvZiB0aGUgc2Vzc2lvbiBvbiB0aGUgcGR1IGlmIGFscmVhZHkgc2V0LgogICAKMjAwMS0wMy0wNiAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBob3BlZnVsbHkgZml4IHRvIGFsbG93IG90aGVyIChyZWdpc3RlcmVkKSBzZWN1cml0eSBtb2RlbHMgdG8gYmUgdXNlZC4KICAgCjIwMDEtMDMtMDYgMDk6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjIwMDEtMDMtMDYgMDk6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIENyZWF0ZSBhIG5ldyBzZWNtb2QgY2FsbGJhY2sgd2hlbiBhIHRpbWVvdXQgb24gYSBwZHUgb2NjdXJzLgogICAKMjAwMS0wMy0wNiAwOToxOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgcHJvcGVybHkgaW5zdGFsbCBzZWNtb2QgaGVhZGVyIGxpc3QuCiAgIAoyMDAxLTAzLTA2IDA4OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICAtIGJ1ZyBmaXhlcyBmb3Igc2VjbW9kIHJlbGF0ZWQgc3R1ZmYgKGl0IGNvbXBpbGVzIG5vdyAob3BwcykpLgogICAKMjAwMS0wMy0wNiAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgLSB0d28gbmV3IHNlY21vZCBjYWxsYmFja3MgZm9yIGZyZWVpbmcgYSBwZHUgYW5kIGEgc2Vzc2lvbi4KICAgLSBtb3ZlIHRyYW5zcG9ydCBjbG9zaW5nIGluIHNubXBfc2Vzc19jbG9zZSgpIHRvIGFmdGVyIHBlbmRpbmcKICAgICByZXF1ZXN0cyBhcmUgZnJlZWQvY2xvc2VkIGluIGNhc2Ugc29tZXRoaW5nIG5lZWRzIHRvIG1ha2UgdXNlIG9mIHRoZQogICAgIHRyYW5zcG9ydCBiZWZvcmUgaXQgY2xvc2VzLgogICAKMjAwMS0wMy0wNiAwNzo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgUGFzcyBpbiBwZHUgdG8gc2VjbW9kIGVuY29kZS9kZWNvZGUgcm91dGluZXMuCiAgIAoyMDAxLTAzLTA2IDAzOjM1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vZGlmaWVkIGZ1bmN0aW9uIEludGVyZmFjZV9JbmRleF9CeV9OYW1lIChTb2xhcmlzIHNwZWNpZmljKSB0byBjb3BlIG1vcmUKICAgZ3JhY2VmdWxseSB3aXRoIGxhcmdlIG51bWJlcnMgb2YgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMKICAgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZCBtZW1vcnkgcmVhZHMuCiAgIAoyMDAxLTAzLTA1IDE2OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXZlcnNlIGNhbGxiYWNrIG9yZGVyaW5nIG9mIG5vcm1hbCBjYWxsYmFjay9zZWNtb2QgY2FsbGJhY2sKICAgcHJvY2Vzc2luZyBpbiBzZXNzX2NvcHkoKS4KICAgCjIwMDEtMDMtMDUgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIHJlbW92ZSB1bnVzZWQgZnJlZSBmdW5jdGlvbiBjYWxscyBmb3Igc2VjdXJpdHkgbW9kdWxlIHVucmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDMtMDUgMTY6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIG1pbm9yIEFQSSBjaGFuZ2VzIHRvIHRoZSBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWwgaGFuZGxpbmcuCiAgIAoyMDAxLTAzLTA1IDE2OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm9wZXJseSByZXNwZWN0IHRoZSBET05UX1BST0JFX0ZMQUcuCiAgIAoyMDAxLTAzLTA1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfYXBpLmggLCBzbm1wX3NlY21vZC5oOgoKICAgYWRkIGEgc2Vzc2lvbiBwb2ludGVyIHRvIHRoZSB2MyBidWlsZCByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDUgMTU6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgIEFkZCBhIGtyYjUgc3BlY2lmaWMgZXJyb3IgY29kZS4KICAgCjIwMDEtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHByb3Blcmx5IGhhbmRsZSBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kdWxlcwogICAKMjAwMS0wMy0wNSAxNDo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgbWtkaXIgc25tcGxpYiBiZWZvcmUgY3JlYXRpbmcgYSBmaWxlIGluIGl0CiAgIAoyMDAxLTAzLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSByZXNwZWN0IG5vbi1sb2NhbCBzcmNkaXJzIGZvciB0cmFuc3BvcnQvc2VjbW9kcwogICAKMjAwMS0wMy0wNSAxMDo0MCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvbWliX21vZHVsZXMuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLCBhcHBzL3NubXB0cmFwZC5jCiAgICwgc25tcGxpYi8uY3ZzaWdub3JlICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvY2FsbGJhY2suaCAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2FwaS5oICwKICAgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB1c20uaCAsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBzdXBwb3J0IGZvciBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWxzLiAgQ3VycmVudGx5IG9ubHkgdGhlIFVTTSBpcwogICBhdmFpbGFibGUsIGJ1dCBhIG5ldyBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2RlbCB3aWxsIGJlIGF2YWlsYWJsZQogICBzaG9ydGx5LiAgVGhlc2UgY2hhbmdlcyBzaW1wbHkgbWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgbW9yZSB0aGFuIG9uZQogICBzZWN1cml0eSBzZXJ2aWNlLgogICAKMjAwMS0wMy0wNSAxMDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfc2VjbW9kLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIGF1dGhvcnMgbGlzdC4KICAgCjIwMDEtMDMtMDUgMTA6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmg6CgogICBDb21tZW50IHJlLWFycmFuZ2luZyB0byBhY3R1YWxseSBiZSBuZWFyIHRoZSBmdW5jdGlvbnMgdGhleSdyZSBkZXNjcmliaW5nLgogICAKMjAwMS0wMy0wNSAwNjoxMCAgamJwbgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgZ2V0X215YWRkcigpIGZ1bmN0aW9uIHRvIGNvcGUgbW9yZSBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycwogICBvZiBpbnRlcmZhY2VzLCBhbmQgd2l0aCB0aGUgcG9zc2liaWxpdHkgb2Ygbm9uLUlQdjQgYWRkcmVzc2VzIG9uIHNvbWUKICAgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZAogICBtZW1vcnkgcmVhZHMuICBVc2UgIm9mZmljaWFsIiBkZWZpbml0aW9uIG9mIElOQUREUl9MT09QQkFDSy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgZmlsZSBpYW5hbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgZmlsZSByZmNsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL1JFQURNRS5taWJzOgoKICAgZmlsZSBSRUFETUUubWlicyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBmaWxlIHJmY21pYnMuZGlmZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAxIDE5OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jICwgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTI4IDIzOjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAsIHJlYWRfY29uZmlnLmggLAogICBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWcoY2hhciAqbGluZSkgdG8gcGFyc2UgYSAuY29uZiBjb25maWd1cmF0aW9uCiAgICAgbGluZSBhdCBhbnkgdGltZSBpbiB0aGUgY29kZSAoaGFuZGxlcnMgbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBoYW5kKS4KICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZ19yZW1lbWJlcihjaGFyICpsaW5lKSB0byBtZW1vcml6ZSBpdCBmb3IKICAgICBsYXRlciB1c2UuCiAgIC0gcmVhZF9jb25maWdzLCBldCBhbCwgd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgdGhlbSBhZnRlciByZWFkaW5nCiAgICAgZXZlcnl0aGluZyBlbHNlLgogICAtIEFkZGVkIGEgLVkgZmxhZyB0byBzbm1wX3BhcnNlX2FyZ3MgdG8gc3RvcmUgcmVhZCBjb25maWcgZGlyZWN0aXZlcwogICAgIGZvciBsYXRlciB1c2UsIHRodXMgYWxsb3dpbmcgeW91IHRvIHNwZWNpZnkgLmNvbmYgZGlyZWN0aXZlcyBvbiB0aGUKICAgICBjb21tYW5kIGxpbmUuCiAgIAoyMDAxLTAyLTI3IDA3OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEF2b2lkIGluZmluaXRlIGxvb3Agd2l0aCBBZ2VudFggc3ViYWdlbnRzIGFuZCBWQUNNIGNoZWNraW5nIGludGVyYWN0aW9uLgogICAoRml4IHByb3ZpZGVkIGJ5IEZyYW5rIFN0cmF1c3MpCiAgIAoyMDAxLTAyLTIxIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdWNkLXNubXAtaW5jbHVkZXMuaCAoVjQtMi1wYXRjaGVzLjEpLAogICB1Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzODA1IGZyb20gYmNvbGxhcjogYWRkIHN5cy90aW1lLmggdG8gdWNkLXNubXAtaW5jbHVkZXMuaAogICAKMjAwMS0wMi0yMSAxNToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGludDY0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaW50NjQuYzoKCiAgIGZpeCBidWcgIzEzMzQxNiAodTY0U3VidHJhY3Rpb24gbWF0aCkgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBzdWJtaXR0b3IKICAgCjIwMDEtMDItMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogdmFyX3N0cnVjdC5oIChWNC0yLXBhdGNoZXMuMSksIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gaW5jcmVhc2UgVUNEX1JFR0lTVFJZX09JRF9NQVhfTEVOIHRvIDEyOCBhdCBGcmFuaydzIHJlcXVlc3QKICAgCjIwMDEtMDItMTYgMDQ6MTYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgQ2hhbmdlIGJlaGF2aW91ciBvbiBjeWd3aW4gdG8gZXhjbHVkZSBVbml4IGRvbWFpbiB0cmFuc3BvcnRzIGJ5IGRlZmF1bHQKICAgb24gY3lnd2luLCBhbmQgYWxzbyBmaXggYSBtaW5vciBidWcsIHRoYW5rcyB0byBzdWdnZXN0aW9ucyBieSBQZXRlciBGb2xrLgogICAKMjAwMS0wMi0xNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXB0cmFwZC5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgc25tcF9hbGFybS5oIGluY2x1ZGUKICAgCjIwMDEtMDItMTIgMTQ6MTEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhZGRlZCBLYXJsJ3MgcGF0Y2ggZm9yIHVzZW51bWVyaWMKICAgCjIwMDEtMDItMTIgMTM6NTQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QgLCBTTk1QLnBtICwgU05NUC54cyAsCiAgIGV4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbDoKCiAgIGFkZGVkIHRyYXAgcmVjZXB0aW9uIEFQSSBmcm9tIFBoaWxpcCBQcmluZGV2aWxsZSA8cGhpbGlwcEBjaXNjby5jb20+CiAgIAoyMDAxLTAyLTExIDA4OjIzICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9hZGQgbm90IHNubXBfc2Vzc19hZGQgKHRoZSBsYXR0ZXIgZG9lc24ndCBhZGQgYSBzZXNzaW9uIHRvCiAgIHRoZSBTZXNzaW9uIGxpc3QsIGFuZCBpdCB0aGVyZWZvcmUgd29uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBzZWxlY3QoKQogICBmZHNldCwgaGVuY2Ugc25tcHRyYXBkIHdpbGwgbmV2ZXIgcmVjZWl2ZSB2ZXJ5IG11Y2gpLgogICAKMjAwMS0wMi0xMSAwODoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBpbXByb3Blcmx5LXRlcm1pbmF0ZWQgbGlzdCBpbiBjb20yc2VjIGhhbmRsaW5nLgogICAKMjAwMS0wMi0xMSAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ2xlYW4gdXAgbWVyZ2UgKD4+Pj4+PiwgPT09PT09IGV0Yy4gbGVmdCBiZWhpbmQpLgogICAKMjAwMS0wMi0xMCAwOToyNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdHlwby4KICAgCjIwMDEtMDItMTAgMDk6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfYWRtaW4uYyAsCiAgIHN1YmFnZW50LmM6CgogICBNZW1vcnkgbGVhayBwYXRjaGVzIChzb3VyY2Vmb3JnZSBwYXRjaCAjMTAzNjA1KS4KICAgUmVtb3ZlIGEgZmV3IHN0cmR1cCgpcywgYW5kIGNhbGwgZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24oKSByYXRoZXIgdGhhbgogICBmcmVlKCkgaW4gc3ViYWdlbnQuYzpoYW5kbGVfYWdlbnR4X3BhY2tldCgpIGZvciBBR0VOVFhfTVNHX1JFU1BPTlNFCiAgIGFuZCBkZWZhdWx0IGNhc2VzLCB0byBlbnN1cmUgZnJlZSgpaW5nIG9mIGNsb25lZCBQRFUgYWxsb2NhdGVkIGJ5CiAgIGluaXRfYWdlbnRfc25tcF9zZXNzaW9uLgogICAKMjAwMS0wMi0xMCAwNzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgc25tcElQWERvbWFpbi5jICwgc25tcElQWERvbWFpbi5oICwgc25tcFRDUERvbWFpbi5jCiAgICwgc25tcFRDUERvbWFpbi5oICwgc25tcFVEUERvbWFpbi5jICwKICAgc25tcFVEUERvbWFpbi5oICwgc25tcFVuaXhEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmgKICAgLCBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgIFdob29wcy4gIEZvcmdvdCB0aGUgbmV3IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGx1Z2dhYmxlIHRyYW5zcG9ydCBzdHVmZi4KICAgCjIwMDEtMDItMDkgMTE6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oICwgbXRlT2JqZWN0c1RhYmxlLmMKICAgLCBtdGVPYmplY3RzVGFibGUuaCAsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwgbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuaCAsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgSW1wbGVtZW50ZWQgYW5kIG1hZGUgdXNlIG9mIG10ZU9iamVjdHNUYWJsZSB0byBzZW5kIGFkZGl0aW9uYWwgb2JqZWN0cyBvdXQgd2l0aCB0cmFwcyBnZW5lcmF0ZWQuICBBbHNvLCBkb24ndCByZXR1cm4gZGF0YSBmb3IgbWlzYyB0YWJsZXMgd2hlbiB0aGF0IHRyaWdnZXIgaXNuJ3QgZGVmaW5lZCB0byB1c2UgdGhhdCB0ZXN0IHR5cGUuCiAgIAoyMDAxLTAyLTA5IDExOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jIChWNC0yLXBhdGNoZXMuMiksIG1pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuMSksIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTE6IGZpeCBtZW1vcnkgbGVhayBmb3IgZHVwbGljYXRlIG9pZCByZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMi0wOSAxMTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgcHJveHkuYwogICAoVjQtMi1wYXRjaGVzLlsxLDRdKSwgbWVtb3J5X2ZyZWVic2QyLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wOSAxMDoxMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvc25tcF9hZ2VudC5jCiAgICwgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhcHBzL3NubXBzdGF0dXMuYyAsIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXAuYwogICAsIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oICwgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiAsIHNubXBsaWIvc25tcF9hbGFybS5jICwKICAgc25tcGxpYi9zbm1wX2FsYXJtLmggLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmggLCBzbm1wbGliL3NubXBfY2xpZW50LmMgLAogICBzbm1wbGliL3ZhY20uaDoKCiAgIEFwcGxpZWQgcGF0Y2ggMTAzNTEwOiBkb21haW4gdHJhbnNwb3J0IGluZGVwZW5kZW5jZS4gIE5vdGU6IFRyYXBzL1ZBQ00gYnJva2VuLgogICAKMjAwMS0wMi0wOSAwODo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDFzbm1wdjFnZXQgLCBUMDAyc25tcHYxZ2V0bmV4dCAsCiAgIFQwMDNzbm1wdjFnZXRmYWlsICwgVDAxNHNubXB2MmNnZXQgLCBUMDE1c25tcHYyY2dldG5leHQKICAgLCBUMDE2c25tcHYyY2dldGZhaWwgLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsICwKICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCAsIFQwMjBzbm1wdjNnZXQgLAogICBUMDIxc25tcHYzZ2V0bmV4dCAsIFQwMjJzbm1wdjNnZXRNRDUgLAogICBUMDIzc25tcHYzZ2V0TUQ1REVTICwgVDAyNHNubXB2M2dldFNIQTEgLAogICBUMDI1c25tcHYzZ2V0U0hBREVTICwgVDAyOHNubXB2M2dldGZhaWwgLAogICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uICwgVDA1M2FnZW50djF0cmFwICwKICAgVDA1NGFnZW50djJjdHJhcCAsIFQwNTVhZ2VudHYxbWludHJhcCAsCiAgIFQwNTZhZ2VudHYyY21pbnRyYXAgLCBUMDU4YWdlbnRhdXRodHJhcCAsIFQxMDBhZ2VudGh1cAogICAsIFQxMTBhZ2VudHhnZXQgLCBUMTExYWdlbnR4c2V0ICwgVDExMmFnZW50eHNldGZhaWwKICAgLCBUMTEzYWdlbnR4dHJhcCAsIFQxMjBwcm94eWdldCAsIFQxMjFwcm94eXNldAogICAsIFQxMjJwcm94eXNldGZhaWw6CgogICB1cGRhdGVkIG1vc3QgdGVzdHMgdG8gdXNlIG51bWVyaWMgT0lEcyBzbyBhcyB0byBub3QgcmVseSBvbiBtaWIgcGFyc2luZwogICAKMjAwMS0wMi0wOSAwNzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgcmVtb3ZlIHVudXNlZCBwcm90b3R5cGU6IGdldF9hZ2VudHhfdHJhbnNJRAogICAKMjAwMS0wMi0wOCAxNDoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4gLCBsb2NhbC90cmFwdG9lbWFpbCAsCiAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIHRyYXB0b2VtYWlsIHBlcmwgc2NyaXB0IGNyZWF0ZWQgYXMgYW4gZXhhbXBsZSB0cmFwaGFuZGxlIHNjcmlwdAogICAKMjAwMS0wMi0wOCAxNDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLAogICBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X3RyYXAuYyAsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oICwgYXBwcy9zbm1wZGVsdGEuYwogICAsIGFwcHMvc25tcHNldC5jICwgYXBwcy9zbm1wdHJhcC5jICwKICAgYXBwcy9zbm1wdmFjbS5jICwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiAsCiAgIGxvY2FsL21pYjJjICwgbWFuL3NubXBjbWQuMSAsIG1pYnMvUk1PTi1NSUIudHh0ICwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0ICwgcGVybC9TTk1QL1NOTVAucG0gLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL3BhcnNlLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNZXJnZSBmcm9tIFY0LTItcGF0Y2hlczogbWVyZ2UgMS0+MgogICAKMjAwMS0wMS0zMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMgKFY0LTItcGF0Y2hlcy4xKSwgZGlzay5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNDE0OiBmaXggZGlzayBpbmZvIGZvciBibG9jayBzaXplcyBvdGhlciB0aGFuIDEwMjQuCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICB1c2Ugc25tcF9lbnVtJ3MgcHJvcGVybHkgKHN0cmR1cCgpIHRoZSBzdHJpbmdzIGZpcnN0KQogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfZW51bS5jICwgc25tcF9lbnVtLmg6CgogICBwcm9wZXIgY29uc3RuZXNzIGZvciBzb21lIG9mIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAxLTMwIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggYnVnIEkganVzdCBpbnRyb2R1Y2VkIChyZXR1cm5pbmcgcHJvcGVyIHNhdmV0byBwb2ludGVyKQogICAKMjAwMS0wMS0zMCAxMzoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtIHNubXBzZXRzIGFyZSBzdXBwb3J0ZWQKICAgICAtIEEgbmV3ICJzZXQiIGJ1dHRvbiBoYXMgYmVlbiBhZGRlZCB0byBwZXJmb3JtIHNldHMgb24gYW4gb2lkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gYSB0YWJsZSBhcmUgbm93IGJ1dHRvbnMgdGhhdCBicmluZyB1cCB0aGUKICAgICAgIHNldCB3aW5kb3cgd2l0aCB0aGUgY3VycmVudCB2YWx1ZSBpbnN0YXRlZC4KICAgICAtIEFsbCB3cml0YWJsZSBvYmplY3RzIGluIHRoZSBvdXRwdXQgb2Ygc25tcHtnZXQsd2FsayxnZXRuZXh0fQogICAgICAgYnV0dG9ucyBhcmUgZGlzcGxheWVkIGFzIGJsdWUgYW5kIGFyZSBjbGlja2FibGUgdG8gY2hhbmdlIHRoZWlyCiAgICAgICB2YWx1ZXMuCiAgIC0gc2V0dGluZ3MgY29uZmlndXJlZCB2aWEgdGhlIG9wdGlvbnMgbWVudSBjYW4gbm93IGJlIHNhdmVkLgogICAtIHVzZSBHZXRvcHQ6OlN0ZCBub3cuCiAgIC0gc3VwcG9ydHMgbW9zdCBvZiB0aGUgaW1wb3J0YW50IHNubXBjbWQoMSkgZmxhZ3MgZm9yIHNlc3Npb24gc2V0dXAuCiAgIAoyMDAxLTAxLTMwIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCAsCiAgIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLCBtdGVUcmlnZ2VyRGVsdGFUYWJsZS5oICwKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLCBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJUYWJsZS5jICwgbXRlVHJpZ2dlclRhYmxlLmggLAogICBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oOgoKICAgSW5pdGlhbCAobm90LWNvbXBsZXRlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRElTTUFOLUVWRU5ULU1JQjoKICAgICAtIEltcGxlbWVudHMgYWxsIDMgdGVzdHMgKGJvb2xlYW4sIHRocmVzaG9sZCBhbmQgZXhpc3RlbmNlKS4KICAgICAtIG5vdCByaWdvcm91c2x5IHRlc3RlZC4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHF1ZXJ5aW5nIHRoZSBsb2NhbCBhZ2VudAogICAgICAgKG10ZVRyaWdnZXJUYXJnZXRUYWcgbXVzdCBiZSAnJykuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzZW5kaW5nIHRyYXBzIGFuZCB0aGUgbXRlT2JqZWN0c1RhYmxlIGlzCiAgICAgICBub3QgaW1wbGVtZW50ZWQgKG15IG5leHQgdG9kbyBpdGVtKQogICAgIC0gT25seSB0aGUgZGVmYXVsdCB0cmFwcyBhcmUgc2VudC4gIFRoZSBtdGVFdmVudCogb2JqZWN0cyBoYXZlbid0CiAgICAgICBiZWVuIGltcGxlbWVudGVkIChubyBzZWxmLWRlZmluZWQgdHJhcHMvc2V0cykuCiAgICAgLSBubyBlYXN5IHRvIHVzZSBjb25maWd1cmF0aW9uIHlldCAoc29vbikuCiAgICAgLSBjb25maWd1cmUgd2l0aCAtLXdpdGgtbWliLW1vZHVsZXM9ZGlzbWFuL2V2ZW50LW1pYgogICAKMjAwMS0wMS0zMCAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIHNwcmludGYgZm9yIHN0cmluZ3MgdGhhdCBtYXkgbm90IGJlIG51bGwgdGVybWluYXRlZC4KICAgCjIwMDEtMDEtMzAgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgSW1wbGVtZW50ZWQgZ2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpIGFuZCBzZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCk6CiAgICAgLSBUaGVzZSBhbGxvdyBhIG1pYiBtb2R1bGUgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQKICAgICAgIGFnZW50X3NubXBfc2Vzc2lvbiBwb2ludGVyIGZvciB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KICAgICAtIFRoaXMgc2hvdWxkIHByb2JhYmx5IGRvbmUgZGlmZmVyZW50bHkgbGF0ZXIgd2hlbiB3ZSBjaGFuZ2UgdGhlIG1pYgogICAgICAgbW9kdWxlIGFwaS4KICAgICAtIFRoaXMgd2lsbCBjb21wbGV0ZWx5IGZhaWwgdG8gd29yayBwcm9wZXJseSBpbiBhIG11bHRpLXRocmVhZGVkCiAgICAgICBhZ2VudCAod2hpY2ggd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgYW55d2F5KS4KICAgCjIwMDEtMDEtMjkgMTE6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYXQgaW5pdGlhbGl6YXRpb24gdGltZS4KICAgCjIwMDEtMDEtMjkgMTE6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHByb3Blcmx5IG1hbGxvYyBhIDEgYnl0ZSwgTlVMTCBjaGFyYWN0ZXIgc3RyaW5nIGZvciAiIiByZWFkIHN0cmluZ3MuCiAgIAoyMDAxLTAxLTI5IDExOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMgLCBoZWFkZXJfY29tcGxleC5oOgoKICAgZGF0YSBzZXBlcmF0aW9uIGFuZCBuZXcgZnVuY3Rpb25zOgogICAgIGhlYWRlcl9jb21wbGV4X2dldF9mcm9tX29pZCgpCiAgICAgaGVhZGVyX2NvbXBsZXhfYWRkX2RhdGFfYnlfb2lkKCkKICAgCjIwMDEtMDEtMTIgMDg6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvRElTTUFOLUVWRU5ULU1JQi50eHQ6CgogICAtIERJU01BTi1FVkVOVC1NSUIgYWRkZWQgdG8gbWliIHJlcG9zaXRvcnkuIChPciwgZ3Vlc3Mgd2hhdCBJIGRpZCBkdXJpbmcgYSA2IGhvdXIgcGxhbmUgZmxpZ2h0PykKICAgCjIwMDEtMDEtMTIgMDg6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBiaXQgc3RyaW5ncwogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy41KSwgc25tcF9hcGkuYzoKCiAgIC0gYml0X3N0cmluZyBmaXhlcwogICAtIG1ha2Ugc25tcF9hZGRfdmFyIGNhbGwgc25tcF9wYXJzZV9vaWQoKSBpbnN0ZWFkIG9mIHJlYWRfb2JqaWQoKS4KICAgCjIwMDEtMDEtMTIgMDc6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gbmV3IGRhdGEgdHlwZXMgc3VwcG9ydGVkIGZvciByZWFkX2NvbmZpZyByb3V0aW5lczogdW5zaWduZWQsIGJpdF9zdHIuCiAgIAoyMDAxLTAxLTEyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jIChWNC0yLXBhdGNoZXMuMyksIGFzbjEuYzoKCiAgIGNvbW1lbnQgb3V0IHJlYWxseSBvZGQgKGFuZCBicm9rZW4pIGNoZWNrIGZyb20gYXNuX2JpdHN0cmluZ19jaGVjaz8/PwogICAKMjAwMS0wMS0xMiAwNzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtb3ZlIGNvbmZpZyBzdHJpbmcgaW5pdGlhbGl6ZXIgYWJvdmUgc3ViYWdlbnQgY2hlY2sgc28gaXRzIGtub3duIGV2ZW4KICAgaWYgbm90IHVzZWQuCiAgIAoyMDAxLTAxLTEyIDA3OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLnN0b3JhZ2UuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgogICAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgbWliMmMuc3RvcmFnZS5jb25mICwKICAgbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gbmV3IGRhdGEgdHlwZXMgKHVpbnQzMiwgdW5zaWduZWQsIGJpdHMpLgogICAKMjAwMS0wMS0wOSAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGRzX2FnZW50LmggLCB2YXJfc3RydWN0LmggLCBtaWJncm91cC9taWJpbmNsLmggLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICBTdWJBZ2VudCBwaW5nIHN1cHBvcnQ6CiAgICAgLSBhZ2VudHhQaW5nSW50ZXJ2YWwgc3BlY2lmaWVzIFNFQ09ORFMgYmV0d2VlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgICAgdHJpZXMgdG8gcGluZyB0aGUgbWFzdGVyIGFnZW50LgogICAgIC0gaWYgbm8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQsIGl0IHRyaWVzIHRvIHJlY29ubmVjdC4KICAgICAtIGZhaWxpbmcgdGhhdCBpdCB0cmllcyBldmVyeSBTRUNPTkRTIGFnYWluIHRpbGwgaXQgc3VjY2VlZHMuCiAgICAgLSByZS1yZWdpc3RlcnMgaXRzIG9pZCdzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN1YnRyZWUgbGlzdC4KICAgICAgIC0gbWF5IG5lZWQgc29tZSB0aG91Z2h0LiAgQXNzdW1lcyAqYWxsKiBuZWVkIHRvIGJlIHJlLXJlZ2lzdGVyZWQuCiAgICAgICAtIG5lZWRzIHRvIHJlLXJlZ2lzdGVyIHN5c29ydGFibGUgZW50cmllcyB0b28sIGJ1dCBkb2Vzbid0LgogICAgIC0gY3VycmVudGx5IHNlZy1mYXVsdHMgb24gYWJvdXQgdGhlIDItNHRoIHRpbWUgb3Igc28uICBOb3Qgc3VyZSB3aHkuCiAgICAgLSBTaG91bGQgbWFrZSBEYXZlIHNtaWxlIG9yIGNyaW5nZSBvciBnaWdnbGUsIG5vdCBzdXJlIHdoaWNoLgogICAKMjAwMS0wMS0wOSAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMgLCBjYWxsYmFjay5oOgoKICAgQWxsb3cgZGVyZWdpc3RlcmluZyBvZiBjYWxsYmFja3MKICAgCjIwMDEtMDEtMDkgMDY6MjAgIGhhcmRha2VyCgogICAqIHdpbjMyL3NubXBuZXRzdGF0Lzogc25tcG5ldHN0YXQuZHNwIChWNC0yLXBhdGNoZXMuMSksCiAgIHNubXBuZXRzdGF0LmRzcDoKCiAgIGFkZGVkIGdldG9wdC5jIHRvIGxpc3QKICAgCjIwMDEtMDEtMDQgMTY6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2VudW0uYyAsIHNubXBfZW51bS5oOgoKICAgLSBnZW5lcmljIHNubXAgZW51bSBsaXN0IHN1cHBvcnQuICBOb3QgdXNlZCBhbnl3aGVyZSAoeWV0KS4KICAgCjIwMDEtMDEtMDQgMTY6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oCiAgICwgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oICwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2NhbGxiYWNrLmggLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwICwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwCiAgICwgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLAogICB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgLSBtZXJnZWQgcGF0Y2hlcyBmcm9tIFY0LTItcGF0Y2hlcyBicmFuY2ggdG8gbWFpbiBicmFuY2guCiAgIAoyMDAxLTAxLTA0IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmICwgbWFuL3NubXBjbWQuMSAsIHNubXBsaWIvbWliLmM6CgogICAtIGFkZGVkIG5ldyBwcmludEhleFRleHQgc25tcC5jb25mIHRva2VuLgogICAtIGRvY3VtZW50ZWQgLU9ULCBhbmQgdGhlIHRva2VuLgogICAKMjAwMS0wMS0wNCAxMDoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCAsIG1pYi5jOgoKICAgUGF0Y2ggIzEwMzA5MSBhcHBsaWVkOgogICAgIC0gQWRkZWQgLU9UIG9wdGlvbiB0byB2aWV3IGhleCBzdHJpbmdzIHdpdGggdGV4dCBpbiB0aGVtLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZmlsZSBUMDU2YWdlbnR2MmNtaW50cmFwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDAtMTItMjcgMTY6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwOgoKICAgZmlsZSBUMDU1YWdlbnR2MW1pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yMiAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggdmlldyBwcm9jZXNzaW5nIHRvIHdhdGNoIGZvciBsZW5ndGggcHJlZml4LiAgVGhlIGxlbmd0aCBwcmVmaXgKICAgcmVhbGx5IHJlYWxseSBzaG91bGRuJ3QgYmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvaWQuICBOaWVscz8KICAgCjIwMDAtMTItMTkgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBtYWtlIGluaXRfc25tcHYzKCkgZGVhbCB3aXRoIGEgTlVMTCBhcmd1bWVudCBwcm9wZXJseS4KICAgCjIwMDAtMTItMTggMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogcmVtb3ZlIHBhc3N0ZXN0IGZyb20gdGhlIC5jdnNpZ25vcmUgZmlsZSAoYnVnICMxMjY5NCkKICAgCjIwMDAtMTItMTggMTA6NDUgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FICwgU05NUC5wbToKCiAgIG1pbm9yIGRvYyBmaXgKICAgCjIwMDAtMTItMTQgMTM6NDYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogZml4IHVwdGltZSBmb3IgNjQtYml0IFNvbGFyaXMKICAgCjIwMDAtMTItMTQgMTM6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggc3R1cGlkIHNwZWxsaW5nIGVycm9yCiAgIAoyMDAwLTEyLTEzIDIxOjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gZGxtb2QuYzogZml4IGNvbmZ1c2lvbiBiZXR3ZWVuIGludCwgc2l6ZV90LCBsb25nIGZvciA2NC1iaXQgY29tcGlsZXMuCiAgIAoyMDAwLTEyLTEzIDA4OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGFkZCBzbm1wY29uZi4xCiAgIAoyMDAwLTEyLTA4IDE0OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBzbm1wbGliL3ZhY20uYzoKCiAgIC0gdmFjbV92YXJzLmMsIHZhY20uYzogaW5kZXhpbmcgb2YgdmFjbVZpZXdUcmVlRmFtaWx5RW50cnkgd2FzIGhvc2VkLCBhc3N1bWluZwogICAJdGhhdCB0aGUgU3VidHJlZSBpbmRleCBoYWQgYW4gSU1QTElFRCBhdHRyaWJ1dGUuCiAgIAoyMDAwLTEyLTA4IDE0OjQ2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAsIGhyX3BhcnRpdGlvbi5jOgoKICAgLSBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jOiBmaXggc29tZSB6ZXJvIGluZGV4IHZhbHVlcy4KICAgCjIwMDAtMTItMDggMTQ6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IGZpeCByZXR1cm5zIG9mIHplcm9Eb3RaZXJvIChzdWNoIGFzIGlmU3BlY2lmaWMpCiAgIAoyMDAwLTEyLTA4IDE0OjM4ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwZC5jOiBzZWN1cml0eSBtb2RlbCB2YWx1ZXMgYXJlIG5vdCB0aGUgc2FtZSBpcyBzbm1wIHZlcnNpb24gdmFsdWVzCiAgIAoyMDAwLTEyLTA2IDE0OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IExpbnV4IGtlcm5lbCAyLjAueCBoYXMgbm8gQVJQSFJEX0hJUFBJCiAgIAoyMDAwLTEyLTA1IDA3OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRml4IHJzbm1wJ3MgL3Vzci9sb2NhbCBoYXJkY29kZWQgcGF0aC4KICAgCjIwMDAtMTItMDQgMTc6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWw6CgogICAtIChUMTEyYWdlbnR4c2V0ZmFpbCk6IGZpeAogICAKMjAwMC0xMi0wNCAxNjozMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIuMyAtPiBWNC4yLjQKCQoyMDAyLTA0LTA0IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIHBhdGNoIGZyb20gUGV0dGVyIExhcnNlbiB0byBhZGQgYSBmdW5jdGlvbiBmb3IgZXh0cmFjdGluZyB0aGUgZmQgYXNzb2NpYXRlZCB3aXRoIGEgc2Vzc2lvbgogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRlYWwgd2l0aCBmZCB1bnJlZ2lzdHJhdGlvbnMgcHJvcGVybHkuCiAgIAoyMDAyLTA0LTAzIDA4OjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjQucHJlMyApCiAgIAoyMDAyLTA0LTAyIDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jOgoKICAgQXBwbHkgcGF0Y2ggIzUxNTU3NyB0byBmaXggb25lIGNhc2Ugb2YgYSByZWdpc3RyeSBwcm9ibGVtLgogICAKMjAwMi0wNC0wMiAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBzL2Rhcndpbi5oOgoKICAgQXBwbHkgcGF0Y2ggIzUyNDQyNCBmb3IgZGFyd2luIGZpeGVzIGZvciB1Y2Qtc25tcC9kaXNrLmMKICAgCjIwMDItMDQtMDIgMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhdGNoIDUyNzU3MyB0byBmaXggNjQgYml0IHR5cGVzIG9uIHNvbGFyaXMKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIExldCBpbml0X3NubXAgcHJvdGVjdCBpdHNlbGYuCiAgIAoyMDAyLTAzLTI4IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBlbmFibGUgcm93IGNyZWF0aW9uIGZvciBwYXNzIG1vZHVsZXMuICBQYXRjaCAjNDgyMDA1CiAgIAoyMDAyLTAzLTI4IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBwYXRjaCAjNTE3MzQwOiBmcmVlYnNkNSBzdXBwb3J0CiAgIAoyMDAyLTAzLTI4IDIzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGFwcGx5IGZyZWVic2Q1IHBhdGNoICM1MTczMzMKICAgCjIwMDItMDMtMjggMjM6MTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGJ1ZyAjNTI1ODQ0LiAgcGVybCBTTk1QIHdhcyB1c2luZyBhIHRyYXAgYWRkcmVzcyBvZiAwLjAuMC4wLgogICAKMjAwMi0wMy0yOCAyMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdXNlIGEgc3RhdGljIHZhcmlhYmxlIGZvciBpbml0IGNoZWNraW5nLiAgQnVnICM1MzYzODYuCiAgIAoyMDAyLTAzLTI4IDE1OjIzICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYSBmZXcgbmV3IGVudHJpZXMgKG1vc3RseSByZWxhdGluZyB0byB0cmFwcykKICAgCjIwMDItMDMtMjcgMDE6NTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgVXNlIHRoZSBjb3JyZWN0IG5hbWUgb2YgdGhlIFdpbmRvd3MgSVAgSGVscGVyIEFQSSBsaWJyYXJ5LgogICAoQ29tcHV0ZXJzIGNhbiBiZSBzb29vbyBwaWNreSEpCiAgIAoyMDAyLTAzLTI2IDA4OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGVuYWJsZSBkaXNraW8gb24gZnJlZWJzZDUuICBJbXBsZW1lbnRzIHBhdGNoIDUxNzMyOCBpbiBhIGRpZmZlcmVudCB3YXkuCiAgIAoyMDAyLTAzLTI2IDA3OjQ0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAvZXRjL2ZpbGVzeXN0ZW1zIHRvIGxpc3Qgb2YgbW91bnQgdGFibGUgZmlsZXMgKGZvciBBSVgpCiAgIFNob3VsZCBmaXggYnVncyAyMzI1ODggYW5kICg/KTUxNzExMwogICAKMjAwMi0wMy0yNiAwNzozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo1MCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgJy1saGxwYXBpJyB0byB0aGUgYWdlbnQgbGlicmFyaWVzIHdoZW4gY29tcGlsaW5nIHVuZGVyIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBETExJQlMgaXMgbm90IGFzIHN1aXRhYmxlIGFzIEFHRU5UX0xJQlMgZm9yIHRoaXMKICAgKHNlZSB0aGUgZXF1aXZhbGVudCBwYXRjaCBvbiB0aGUgbWFpbiBicmFuY2gpLCBidXQgaXQgc2hvdWxkIGRvLgogICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGZpeCBidWcjNTIwNDc4IHNob3dNaWJFcnJvcnMgdG9rZW4gaXMgaW52ZXJ0ZWQKICAgCjIwMDItMDMtMjUgMTg6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGZpeCBidWcjNTAyMTIzIGFnZW50eCBpbmZpbml0ZSBsb29wLgogICAKMjAwMi0wMy0yNCAwNToxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFJlc3RyaWN0IGhyU1dSdW5QYXJhbXMgcmV0dXJucyB2YWx1ZXMgdG8gMTI4IG9jdGV0cwogICAKMjAwMi0wMy0yNCAwNTowNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBPb3BzIC0gc25wcmludF8qIGNhbm5vdCByZWFsbG9jCiAgIAoyMDAyLTAzLTIxIDA3OjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeCBidWcgIzUzMjY5NiBmaXhpbmcgcnBtIGZvciBuZXdlciBycG0gdmVyc2lvbnMKICAgCjIwMDItMDMtMjAgMDc6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMTkgMDI6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICAgIC0gcGF0Y2ggZnJvbSBKb3NodWEgR2lsZXMgdG8gaW5jcmVhc2UgdGhlIG1heGltdW0gc3RyaW5nIGxlbmd0aAogICAgICAgKCM1Mjc2NTApLgogICAKMjAwMi0wMy0xOCAxNDozOCAgbmJhCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQWRkIG1pc3NpbmcgZXhwb3J0cyBmb3IgVkMrKyBidWlsZAogICAKMjAwMi0wMy0xOCAxMzoyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFByb3BlciB0ZXN0IGZvciBzdWNjZXNzZnVsIG9wZW4gb2YgRVRDX01OVFRBQgogICAKMjAwMi0wMy0xOCAxMzowOSAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBGaXggaW50ZXJjaGFuZ2VkIHBhcmFtZXRlcnMgZm9yIHN0cm5jcHkKICAgCjIwMDItMDMtMTggMDg6NTEgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwKICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwKICAgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIEFwcGx5IERPUy10eXBlIGxpbmUgZW5kaW5ncyB0byB0aGUgRFNXL0RTUCBmaWxlcy4KICAgCjIwMDItMDMtMTggMDg6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgVXNlIHRoZSBzYW1lIHZhcmlhYmxlIG5hbWUgZm9yIG91dHB1dCBidWZmZXIgYW5kIHNpemUgY2FsY3VsYXRpb24uCiAgIAoyMDAyLTAzLTE4IDA1OjM5ICBqYnBuCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIHMvaHB1eC5oOgoKICAgICAtIGNvbW1pdCBKb2hhbm5lcydzIHVwZGF0ZSB0byB0aGUgSFBVWC0xMSBwYXRjaAogICAKMjAwMi0wMy0xOCAwMjozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZXh0ZW5kIHRjcF93cmFwcGVycyBzdXBwb3J0IHRvIEFnZW50WC4gIFRoaXMgbWFrZXMgaXQgbW9yZQogICAgICAgcmVhc29uYWJsZSB0byBpbXBsZW1lbnQgYSBkaXN0cmlidXRlZCBzdWJhZ2VudCBhcmNoaXRlY3R1cmUKICAgICAgIHdpdGhvdXQgbWFzc2l2ZSBzZWN1cml0eSB3b3JyaWVzLgogICAKMjAwMi0wMy0xNCAwNzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGRvbnRfcHJvYmUgYnVnIHBvaW50ZWQgb3V0IGJ5IFN0ZWZhbiBBZXNjaGJhY2hlci4KICAgCjIwMDItMDMtMTMgMTg6NTggIHNsaWYKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBDbGFyaWZ5IHVuc2lnbmVkIGNoYXIgYXJndW1lbnQgZm9yIHRoZSBub2lzeSBvciBjb25mdXNlZCBjb21waWxlci4KICAgCjIwMDItMDMtMTMgMTg6NDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgcXVlbGwgc2V2ZXJhbCB3YXJuaW5ncyBhYm91dCBzaWduZWQgdnMgdW5zaWduZWQgY29tcGFyaXNvbnMuCiAgIAoyMDAyLTAzLTEzIDE4OjQ0ICBzbGlmCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIHJlbW92ZSBkZXBlbmRlbmNpZXMgdG8gcmVzdG9yZSBidWlsZGluZyBlaXRoZXIgRGVidWcgb3IgUmVsZWFzZSB0YXJnZXRzLgogICAKMjAwMi0wMy0xMyAxODo0MyAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHRyYWNrIGNoYW5nZSBzZXRlbnYgLS0+IHNubXBfc2V0ZW52CiAgIAoyMDAyLTAzLTEzIDE1OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgbWFsbG9jIGF0IGxlYXN0IG9uZSBieXRlIGluIGhleF90b19iaW5hcnkyCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYSBkZXNjcmlwdGlvbiBvZiAidW5saW5rZWQgT0lEcyIuCiAgIAoyMDAyLTAzLTEyIDIwOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIFBhdGNoIGZyb20gZGFuaWVsIFN1bGx5IHRvIGltcHJvdmUgc29sYXJpcyBzd2FwIGluZm8KICAgCjIwMDItMDMtMTIgMDg6MzQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0aW5nIG9mIHRoZSBGQVEgcmVhZHkgZm9yIHRoZSBuZXh0IHJlbGVhc2UuCiAgIChNb3N0bHkgcmVwaHJhc2luZyBvZiBleGlzdGluZyBlbnRyaWVzLCBidXQgYSBmZXcgbmV3IHF1ZXN0aW9ucykKICAgCjIwMDItMDMtMTEgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50X2luZGV4LmMsIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfYWdlbnQuYywKICAgc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBiZXR0ZXIgcHJpbnRpbmcgYXBpcwogICAKMjAwMi0wMy0xMSAxMDowNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgZml4IGFwaSBpbiBhIGNvbW1lbnQgKGhvdyBwaWNreSBhbSBJPykKICAgCjIwMDItMDMtMTEgMDc6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIEJyaW5nIHRoZSA0eC0gYW5kIG1haW4tYnJhbmNoIEZBUXMgaW50byBhZ3JlZW1lbnQuCiAgIAoyMDAyLTAzLTExIDA1OjE2ICBqYnBuCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgICAgLSBmaXggYmFkIHR5cGUgYXNzaWdubWVudCBpbiBidWlsZF90cmFuc2xhdGlvbl90YWJsZSgpLCBub3RpY2VkIGJ5CiAgICAgICBQZXRlciBTdGV2ZW5zLgogICAKMjAwMi0wMy0xMCAxNDowNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmg6CgogICBPb3BzIC0gZm9yZ290IHRvIHJlbW92ZSB0aGUgI2lmZGVmIGZvciB1bnNhZmUgc3ByaW50XyogZnVuY3Rpb25zIGRlY2xhcmF0aW9ucwogICAKMjAwMi0wMy0xMCAxMzo1NCAgbmJhCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIEZpeCB1cCBvdXQtb2Ytb3JkZXIgZXJyb3IgbWVzc2FnZQogICAKMjAwMi0wMy0xMCAxMzo0NCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICBEb24ndCBkaWUgb24gdjIgZXhjZXB0aW9ucwogICAKMjAwMi0wMy0xMCAxMzo0MSAgbmJhCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHNubXBfZGVidWcuYzoKCiAgIFJlbW92ZSBzb21lIGNhbGxzIHRvIG9sZCBzcHJpbnRfKiBmdW5jdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgQWRkIHNucHJpbnRfKiByZXBsYWNlbWVudCBmdW5jdGlvbnMgZm9yIGFsbCBzcHJpbnRfKiBmdW5jdGlvbnMKICAgCjIwMDItMDMtMTAgMTM6MzggIG5iYQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgRG9jdW1lbnQgc25wcmludF97b2JqaWQsdmFyaWFibGUsdmFsdWV9CiAgIAoyMDAyLTAzLTEwIDA4OjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgaW5jbHVkZSB0aGUgc25wcmludGYgY291bnRlcnBhcnRzIGZyb20gdGhlIDUuMCBjb2RlLgogICAKMjAwMi0wMy0wOCAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICByZWRlZmluZSBhIHZhcmlhYmxlIG9uIGZyZWVic2QgZm9yIDIuMi41CiAgIAoyMDAyLTAzLTA4IDE3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgYSBicm9rZW4gZml4IEkgYWNjaWRlbnRpY2FsbHkgY29tbWl0dGVkCiAgIAoyMDAyLTAzLTA4IDE3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBwYXRjaCBmcm9tIE1paGFpbCBCYWxpa292IHRvIHN1cHBvcnQgdXAgYnV0IG5vIGlwIGludGVyZmFjZXMuCiAgIAoyMDAyLTAzLTA4IDE3OjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwgYWNsb2NhbC5tNDoKCiAgIHBhdGNoIGZyb20gUGF1bCBSYXNtdXNzZW4gdG8gZml4IC0tZW5hYmxlLXNoYXJlZAogICAKMjAwMi0wMy0wOCAxNjo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvbGQgcGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzIHRvIGZpeCBjNjRzIGluIHBlcmwKICAgCjIwMDItMDMtMDggMTQ6NTMgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIDEwMDAgbGluZXMgb2YgZHVwbGljYXRlIGNvZGUgYnkgdXNpbmcgdGhlIHNwcmludF9yZWFsbG9jXyogZnVuY3Rpb25zCiAgIGluIHRoZSBpbXBsZW1lbnRhaW9uIG9mIHRoZSBub24tcmVhbGxvYyBjb3VudGVycGFydHMuCiAgIAoyMDAyLTAzLTA4IDE0OjUxICBuYmEKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jOgoKICAgUmVtb3ZlIGxhc3Qgc3ByaW50X25vbnJlYWxsb2MgY2FsbHMKICAgCjIwMDItMDMtMDcgMDM6MjAgIGpicG4KCiAgICogbWFuL21pYl9hcGkuMzoKCiAgICAgLSBwYXRjaCBmcm9tIEd1eSBIYXJyaXMgdG8gZGVzY3JpYmUgbmV3IG1pYl9hcGkKICAgCjIwMDItMDMtMDcgMDI6NTggIGpicG4KCiAgICogc25tcGxpYi9taWIuaDoKCiAgICAgLSBkZWNsYXJlIHRoZSBzcHJpbnRfcmVhbGxvY19ibGFoIGZ1bmN0aW9ucy4gIFRoYW5rcyB0byBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFjdHVhbGx5IHVzZSB0aGUgY29tbW9uICdkZWZQYXNzcGhyYXNlJyB2YWx1ZSBpZiAnZGVme0F1dGgsUHJpdn1QYXNzcGhyYXNlJyBpc24ndCBzZXQuCiAgIFFuOiBTaG91bGQgdGhlIEF1dGhQYXNzcGhyYXNlIGFsc28gYmUgdXNlZCBmb3IgcHJpdmFjeSBpZiBubyBvdGhlciB2YWx1ZSBpcyBhdmFpbGFibGU/CiAgIAoyMDAyLTAzLTA2IDAzOjE5ICBqYnBuCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAgIC0gaWdub3JlIGVycm9ycyBkb2luZyBybSAtcmYgL3RtcC9zbm1wLXRlc3QqIHdoZW4gbWFraW5nIGNsZWFuICh0aGlzCiAgICAgICBoYXBwZW5zIGFsbCB0aGUgdGltZSBvbiB0aGUgY29tcGlsZSBmYXJtIGJlY2F1c2UgZS5nLiBJIGNhbid0CiAgICAgICBkZWxldGUgV2VzJ3MgdGVzdCBkaXJlY3RvcmllcyBhbmQgaXQncyBhIG51aXNhbmNlIGJlY2F1c2UgdGhlbiB0aGUKICAgICAgIHJlc3Qgb2YgdGhlIGRpcmVjdG9yaWVzIGRvbid0IGdldCBjbGVhbmVkIHVwIHByb3Blcmx5KS4KICAgCjIwMDItMDMtMDYgMDI6MjQgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggYW5vdGhlciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IHByb2JsZW0gYXMgcmVwb3J0ZWQgaW4gYnVnCiAgICAgICAjNTI2MjYyLgogICAKMjAwMi0wMy0wNSAxMDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIGltcG9zZSBtYXggbGVuZ3RoIHJlc3RyaWN0aW9uIHN1cHBsaWVkIGJ5IG1pYiBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMjAwMi0wMy0wNSAwOTo1MiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgbWlzc2VkIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBwYXRjaC4KICAgCjIwMDItMDMtMDUgMDk6NTEgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEEgbW9kaWZpZWQgcGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIgZm9yIGxvbmdlciBjb25maWd1cmUgc3RyaW5ncy4KICAgCjIwMDItMDMtMDUgMDg6MjMgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgUmV2ZXJzZSBteSBlYXJsaWVyIChib2d1cykgZml4LgogICBUaGluZ3Mgd2VyZSBmaW5lIGFzIHRoZXkgd2VyZSAtIEkgbXVzdCBiZSBjcmFja2luZyB1cC4uLi4uCiAgIAoyMDAyLTAzLTA1IDA4OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBBZGQgbWlzc2luZyAic3RhbmRhcmQiIGhlYWRlcnMsIGFuZCB0d2VhayBhIHR5cGUgc2xpZ2h0bHkuCiAgIChCYXNlZCBvbiByZXF1ZXN0cyBmcm9tIEdyZWdvcnkgVG90aCkuCiAgIAoyMDAyLTAzLTA1IDA2OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIEJyaW5nIGRlY2xhcmF0aW9uIG9mICdpbml0X2FnZW50JyBpbnRvIGxpbmUgd2l0aCBjb2RlIGRlZmluaXRpb24uCiAgIAoyMDAyLTAzLTA1IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjb3VwbGUgb2YgbWFsbG9jcyBhcHByb3ByaWF0ZWx5IChyZXF1ZXN0ZWQgYnkgR3JlZ29yeSBUb3RoKQogICAKMjAwMi0wMy0wNCAyMTozOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTIgKQogICAKMjAwMi0wMy0wNCAwMTo1MSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDYXRjaCBhbmQgcmVwb3J0IGludmFsaWQgbm9kZSBzcGVjaWZpY2F0aW9ucy4KICAgKFRoaXMgb3VnaHQgdG8gYmUgaGFuZGxlZCBieSB0aGF0IHRlc3QgdGhhdCBmb2xsb3dzIGltbWVkaWF0ZWx5LCBidXQKICAgICIkU05NUDo6TUlCeyRvaWR9IiBhcHBlYXJzIHRvIHJldHVybiB0aGUgY29yZSBtaWItMiBvYmplY3QgcmVnYXJkbGVzcykKICAgCjIwMDItMDMtMDQgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggYnVnICM1MjQ1MjkKICAgCjIwMDItMDMtMDEgMDc6MTcgIG5iYQoKICAgKiBsdG1haW4uc2gsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZToKCiAgIFB1bGwgaW4gdXAtdG8tZGF0ZSBsaWJ0b29sLCB3aGljaCBzaG91bGQgaGVscCBEYXJ3aW4KICAgCjIwMDItMDMtMDEgMDc6MTUgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBQdWxsIGluIHVwLXRvLWRhdGUgY29uZmlnIHNjcmlwdHMKICAgCjIwMDItMDItMjcgMDk6NDcgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgSGFuZGxlIHZpZXdzIHRoYXQgc3BlY2lmeSBhIGZ1bGwgaW5zdGFuY2UgT0lELgogICAoU2luY2UgdGhlIGludGVybmFsbHkgc3RvcmVkIE9JRCBwcmVwZW5kcyB0aGUgbGVuZ3RoIGFzIHdlbGwsCiAgICB0aGUgYXBwYXJlbnQgbGVuZ3RoIGlzIG9uZSBncmVhdGVyIHRoYW4gaXQgcmVhbGx5IGlzKQogICAKMjAwMi0wMi0yNiAxNDoxOCAgbmJhCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgU2F2ZSBGaWxlL2xpbmUgZm9yIG1lc3NhZ2VzIGFib3V0IHVubGlua2VkIE9JRHMKICAgCjIwMDItMDItMjUgMTU6NDYgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBtaWJmZXRjaDoKCiAgIE1ha2Ugc3VyZSB0aGF0IHdlIGZldGNoIElBTkFpZlR5cGUtTUlCIGZyb20gdGhlIG1haW50YWluZWQgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTI1IDE1OjQ1ICBuYmEKCiAgICogbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dDoKCiAgIFVwZGF0ZSBmb3IgUkZDIDMyMzEKICAgCjIwMDItMDItMjUgMDg6NTkgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBOZXcgUkZDJ3MgaXNzdWVkIHdpdGggbWliczoKICAgMzIwMSAgIENJUkNVSVQtSUYtTUlCCiAgIDMyMDIgICBGUlNMRC1NSUIKICAgMzIzMSAgIERJU01BTi1TQ0hFRFVMRS1NSUIKICAgCjIwMDItMDItMjUgMDg6NTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIEZyZWVCU0Q0IGhhcyBuZXcgZGlzayBuYW1lcwogICAKMjAwMi0wMi0yNSAwODo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFByb3Blcmx5IGJyYWNrZXQgcnVuX2xwc3RhdCBwcm90b3R5cGUKICAgCjIwMDItMDItMjUgMDI6NDggIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIG9ubHkgY29weSB0aGUgZmlyc3QgREVTQ1JJUFRJT04gY2xhdXNlIG9mIE1PRFVMRS1DT01QTElBTkNFCiAgICAgICBzdGF0ZW1lbnRzIHRvIGF2b2lkIGEgbWVtb3J5IGxlYWsgKHNlZSBidWcgIzUyMjM2MykuCiAgIAoyMDAyLTAyLTI1IDAxOjIxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3BlY2lmeSB0aGUgY29ycmVjdCBkZWJ1ZyB0b2tlbiBmb3IgZGlzcGxheWluZyB0aGUgbGlzdCBvZiBtb2R1bGVzCiAgIChzcG90dGVkIGJ5IEJyaWFuIFNoYXZlcikKICAgCjIwMDItMDItMjIgMDk6MjcgIGR0czEyCgogICAqIHNubXBsaWIvOiBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWMgLAogICBNU0cwMDAwMS5iaW4gKDEuMSksIHdpbnNlcnZpY2UubWMgKDEuMSk6CgogICBBZGQgbWlzc2luZyBmaWxlcyBmb3IgV2luZG93cyBzZXJ2aWNlIG9wZXJhdGlvbi4KICAgCjIwMDItMDItMjIgMDg6NDIgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBKdXN0IGNsb3NlIHRoZSBtYWluIHNlc3Npb24gd2hlbiBzaHV0dGluZyBkb3duIHVuZGVyIFdpbmRvd3MsCiAgIG5vdCBldmVyeXRoaW5nIChzbyB0aGF0IGl0IGNhbiBzdGlsbCBnZW5lcmF0ZSB0aGUgc2h1dGRvd24gdHJhcCkuCiAgIAoyMDAyLTAyLTIyIDAxOjQ5ICBqYnBuCgogICAqIEZBUSwgUkVBRE1FLndpbjMyOgoKICAgICAtIHVwZGF0ZSBjb21tZW50cyBvbiBXaW4zMiBwb3J0IGluIEZBUQogICAKICAgICAtIGRpc2N1c3Mgd2hhdCBJUEhMUEFQSS57TElCLERMTH0gaXMgYW5kIHdoZXJlIGl0IGNhbiBiZSBvYnRhaW5lZAogICAgICAgZnJvbSBpbiBSRUFETUUud2luMzIKICAgCjIwMDItMDItMjEgMDc6MDIgIGR0czEyCgogICAqIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIEZpeCBib2d1cyBzdHJ1Y3R1cmUgY29tbWVudHMgaW4gdGhlIHNubXBkIHByb2plY3QgZmlsZS4KICAgCjIwMDItMDItMjEgMDM6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAgIC0gZW1pdCBlcnJvciBvbiBvdmVyLWxlbmd0aCBwYXNzd29yZCBpbnN0ZWFkIG9mIHdyaXRpbmcgb2ZmIGVuZCBvZgogICAgICAgYnVmZmVyIChidWcgIzUyMDY0OSwgbm90ZWQgYnkgSm9obiBTZWxsZW5zKS4KICAgCjIwMDItMDItMjAgMDk6MjcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAgIC0gY2hhbmdlcyB0byBhdm9pZCBuYW1lc3BhY2UgY2xhc2ggcHJvYmxlbXMgd2l0aCBzZXRlbnYoKSB3aGljaCBhcmUKICAgICAgIGNhdXNlZCBieSBsaWJ3cmFwIHN1cHBseWluZyBhIGZ1bmN0aW9uIG9mIHRoYXQgbmFtZSBhcyB3ZWxsIGFzIHVzLgogICAKICAgICAtIGFsbCBjYWxscyBpbiB0aGUgY29kZSB0byBzZXRlbnYoKSBhcmUgcmVwbGFjZWQgd2l0aCBhIGNhbGwgdG8KICAgICAgIHNubXBfc2V0ZW52KCkuCiAgIAogICAgIC0gc25tcF9zZXRlbnYoKSBjYWxscyBzZXRlbnYoKSBpZiBzdWNoIGEgZnVuY3Rpb24gZXhpc3RzLCBvdGhlcndpc2UKICAgICAgIGl0IHNpbXVsYXRlcyB0aGUgZWZmZWN0IGJ5IGNhbGxpbmcgcHV0ZW52KCkuCiAgIAoyMDAyLTAyLTIwIDA1OjQzICBqYnBuCgogICAqIE5FV1M6CgogICAgIC0gbWVudGlvbiB0Y3Bfd3JhcHBlcnMgc3VwcG9ydCBmb3Igc25tcHRyYXBkCiAgIAoyMDAyLTAyLTIwIDA1OjQxICBqYnBuCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmM6CgogICAgIC0gYWRkIGxpYndyYXAgc3VwcG9ydCBmb3Igc25tcHRyYXBkCiAgIAoyMDAyLTAyLTIwIDA1OjIwICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGV4aXQgd2l0aCBhbiBlcnJvciBpZiAtLXdpdGgtbGlid3JhcCBpcyBnaXZlbiBhbmQgd2UgY2FuJ3QgZmluZCBpdAogICAKMjAwMi0wMi0yMCAwMzowMCAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0xOSAwNjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBQYXRjaCBmcm9tIEplcm9lbiBSdWlncm9rIHRvIG1lcmdlIGEgZmV3IGlmZGVmcwogICAKMjAwMi0wMi0xOSAwMTo1MSAgamJwbgoKICAgKiBhZ2VudC9hdXRvX25saXN0Lmg6CgogICAgIC0gYWRkIGZvcndhcmQgZGVjbGFyYXRpb24gb2Ygc3RydWN0IG5saXN0IHRvIGF2b2lkIGNvbXBpbGVyCiAgICAgICBjb21wbGFpbnRzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZC4KICAgCjIwMDItMDItMTggMDg6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgcGF0Y2ggZnJvbSBKZXJvZW4gUnVpZ3JvayBmb3IgbWlub3IgaWZkZWYgY2xlYW4gdXBzCiAgIAoyMDAyLTAyLTE4IDAyOjM2ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgdG8gbWFrZSBzdXJlIGJ1ZmZlciBpcyBpbml0aWFsbHkKICAgICAgIHplcm8tdGVybWluYXRlZCAoaW4gY2FzZSBvZiAwIHZhcmJpbmRzKS4gIEJ1ZyAjNTE4NzAwLCBub3RlZCBieQogICAgICAgQW5kcmVhcyBIYXJ0bWFubi4KICAgCjIwMDItMDItMTggMDI6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIHVuaGVscGZ1bCBPU0YgZGVmaW5pdGlvbnMgKHRoYW5rcyB0byBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTggMDI6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gcmVtb3ZlIHRyb3VibGVzb21lIGlubGluZSBxdWFsaWZpZXJzLiAgVGhhbmtzIHRvIEFuZHkgSG9vZCBmb3IKICAgICAgIG5vdGluZyB0aGF0IHRoZXNlIGNhdXNlIHByb2JsZW1zIG9uIEFJWC4KICAgCjIwMDItMDItMTggMDI6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgICAgLSByZW1vdmUgLy8tc3R5bGUgY29tbWVudHMuICBUaGFua3MgdG8gQW5keSBIb29kIGZvciBwb2ludGluZyB0aGlzCiAgIG91dC4KICAgCjIwMDItMDItMTggMDA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZG9uJ3QgYnVpbGQgb2lkJ3Mgd2l0aCA+MTI4IGxlbmd0aCBzdWJpZHMuICAoc2VlIGJ1ZyAjNTE4ODU1KQogICAKMjAwMi0wMi0xNSAyMjowNyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi40LnByZTEgKQogICAKMjAwMi0wMi0xNSAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGZpeCBidWcjNTA4MTI2IHdoaWNoIGFjdHVhbGx5IGxlZCBtZSB0byBhbm90aGVyLgogICAgIC0gb2lkIHBhcnNpbmcgYW5kIHNlYXJjaGluZyBpbiBnZXRuZXh0cyBjb3VsZCBzb21ldGltZXMgbG9vcC4KICAgCjIwMDItMDItMTUgMTc6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBzdXBwb3J0IC0tZGlzYWJsZS1zaGFyZWQtdmVyc2lvbiBjb25jZXB0IGZyb20gUGF1bCBSYXNtdXNzZW4uCiAgIAoyMDAyLTAyLTE1IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBkeW5peCBicm9rZSBsaW51eC4gIEJhZCBkeW5peC4gIE5vIGJvbmUuICBHbyB0byB5b3VyIHJvb20uCiAgIAoyMDAyLTAyLTE1IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBhZGQgYmFjayBpbiBuZXRpbmV0L2luLmggYW5kIHN5cy90aW1lLmggKGluIHByb3BlciBwcm90ZWN0ZWQgZm9ybSkKICAgd2hpY2ggd2FzIGRlbGV0ZWQgZnJvbSA0LjIuMyBmb3Igc29tZSByZWFzb24gd2UgbmV2ZXIgZmlndXJlZCBvdXQuCiAgIAoyMDAyLTAyLTE1IDE2OjIxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUkVBRE1FOgoKICAgdXBkYXRlcyBmb3Igd2hhdCB3aWxsIGJlIDQuMi40CiAgIAoyMDAyLTAyLTE1IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgY2hlY2sgZW5kIG9mIG1pYnZpZXcgY29uZGl0aW9ucwogICAKMjAwMi0wMi0xNSAwODowMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBQb3B1bGF0ZSBhbiBlbXB0eSBjYXNlIHN0YXRlbWVudCAoc3BvdHRlZCBieSBKZXJvZW4gUnVpZ3JvaykKICAgCjIwMDItMDItMTUgMDc6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICByZW1vdmUgdW5uZWVkZWQgLUNOIGFuZCAtQ08gZXhhbXBsZSBvcHRpb25zCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYywgc25tcGxpYi93aW5zZXJ2aWNlLmgsCiAgIHNubXBsaWIvd2luc2VydmljZS5yYywgd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgU3VwcG9ydCBmb3IgcnVubmluZyBhcyBhIFdpbmRvd3Mgc2VydmljZS4KICAgKFN1cHBsaWVkIGJ5IFJhanUgS3Jpc2huYXBwYSAmIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMTQgMTE6MTEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIE1ha2UgYnVmZmVyIHBvaW50ZXIgc3RhdGljIHNvIGl0IGRvZXNuJ3QgbGVhawogICAKMjAwMi0wMi0xNCAxMToxMCAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuaDoKCiAgIEZpeCBiYWQgcGFyYW50aGVzaXMKICAgCjIwMDItMDItMTQgMDc6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggZW1haWwgYWRkcmVzcyBidWcgIzUxNzE3OAogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgQ2hlY2sgZm9yIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2YgSS9GIHRhYmxlIChwYXRjaCBmcm9tIFJlZEhhdCkKICAgCjIwMDItMDItMTQgMDE6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBJbmNsdWRlIFJlZEhhdCBwYXRjaGVzIGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQKICAgCjIwMDItMDItMTQgMDE6MzggIGR0czEyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkb3B0IFJlZEhhdCdzIGNvbmZpZ3VyZSB0ZXN0aW5nIGZvciBycG0gbGlicmFyeSByZXF1aXJlbWVudHMKICAgCjIwMDItMDItMTMgMTY6NDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZW5hYmxlIHNoYXJlZCBieSBkZWZhdWx0IGV4Y2VwdCBmb3IgZGV2ZWxvcGVycwogICAKMjAwMi0wMi0xMyAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIHJlbW92ZSBpbmxpbmUgZnVuY3Rpb24gZnJvbSBiZWluZyBkZWNsYXJlZCBpbiBhbm90aGVyIGZ1bmN0aW9uLgogICAKMjAwMi0wMi0xMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgcmVtb3ZlIGlubGluZSBmdW5jdGlvbiBmcm9tIGJlaW5nIGRlY2xhcmVkIGluIGFub3RoZXIgZnVuY3Rpb24uCiAgIAoyMDAyLTAyLTEzIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBzZXRzIG9mIHVuc2lnbmVkMzIncy4KICAgCjIwMDItMDItMTMgMDc6NTkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEU19MSUJfUFJJTlRfU1VGRklYX09OTFkgaXMgYW4gaW50ZWdlciBvcHRpb24sIG5vdCBhIGJvb2xlYW4gZmxhZy4KICAgKEF0dGVtcHRpbmcgdG8gc2V0IHRoaXMgdmlhIHRoZSBTVUZGSVggZW52aXJvbm1lbnRhbCB2YXJpYWJsZSB3aWxsCiAgIHR1cm4gb24gcGFja2V0IGR1bXBpbmcgaW5zdGVhZCEpCiAgIAoyMDAyLTAyLTEzIDA0OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgICAgLSBmaXggYnVnICM1MTY5MDQgKHNubXBkIGRpZXMgaWYgbm8gcHJpbnRjYXAgd2l0aCBjZ2V0ZW50KSwgbm90ZWQgYnkKICAgICAgIEFub255bW91cyAtLSBjaGVjayByZXR1cm4gdmFsdWUgb2YgY2dldG5leHQoKSBwcm9wZXJseSBpbgogICAgICAgSW5pdF9IUl9QcmludCgpLgogICAKMjAwMi0wMi0xMiAwNzoxMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgICAgLSBhbWVuZCBmaXggdG8gYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIHRvCiAgICAgICBhY3R1YWxseSBhZGQgLWxuc2wgdG8gbGluayBwYXJhbWV0ZXJzIQogICAKMjAwMi0wMi0xMiAwNToyOSAgamJwbgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIC0tIFVTRV9MSUJXUkFQCiAgICAgICB3YXMgbm90IGJlaW5nICNkZWZpbmVkIGluIHRoZSBjYXNlIHdoZXJlIC1sbnNsIGlzIG5lZWRlZCBpbiBhZGRpdGlvbgogICAgICAgdG8gLWx3cmFwLgogICAKMjAwMi0wMi0xMiAwMTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBJbXBsZW1lbnQgdGhlIEJhZENvbW11bml0eXtOYW1lcyxVc2VzfSBjb3VudGVycy4KICAgCjIwMDItMDItMTEgMTA6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgICAgLSBmaXggYnVncyAjNDg5MzM2IGFuZCAjNTA4MTQ2IChkdXBsaWNhdGUgY29sdW1ucyBhbmQgY29sdW1ucyBpbgogICAgICAgd3Jvbmcgb3JkZXIpLgogICAKMjAwMi0wMi0xMSAwODoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSB0aGUgJ2RzX3NldF94eHgnIGxpYnJhcnkgcm91dGluZXMsIHJhdGhlciB0aGFuIHRoZSBvbGQgJ3NubXBfc2V0X3h4eCcgY2FsbHMKICAgCjIwMDItMDItMTEgMDU6MzAgIGpicG4KCiAgICogRkFROgoKICAgICAtIG1lbnRpb24gSFBVWC0xMSBhbmQgRHluaXgvUFRYIDQuNCBzdXBwb3J0LCBhbmQgc29tZSBzcGVsbGluZyBmaXhlcwogICAKMjAwMi0wMi0wOCAwNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6NDIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJvY2VzcyB0aGUgZnVsbCBsaXN0IG9iamVjdHMgaW4gZWFjaCBwYXNzIG9mIGEgU0VULCBldmVuIGlmIG9uZSBlbnRyeSBmYWlscwogICBtaWR3YXkgdGhyb3VnaC4gIFRoaXMgaXMgbGVzcyBlZmZpY2llbnQgdGhhbiBmYWlsaW5nIGltbWVkaWF0ZWx5LCBidXQgYnJpbmdzCiAgIHRoZSBiZWhhdmlvdXIgaW4gbGluZSB3aXRoIHRoZSBkb2N1bWVudGF0aW9uLCBhbmQgZW5zdXJlcyB0aGF0IGFsbCByZXNvdXJjZXMKICAgd2lsbCBiZSByZWxlYXNlZC4KICAgCjIwMDItMDItMDggMDI6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJldHVybiB0aGUgY29ycmVjdCBlcnJvciBpbmRleCBmb3IgcHJvYmxlbXMgaW4gU0VUIGhhbmRsaW5nLgogICAocGF0Y2ggIzQ2NzE1NSwgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG1lbW9yeSBhbmQgc3dhcCBlbnRyaWVzIGluIGhyU3RvcmFnZVRhYmxlIGZvciBTb2xhcmlzCiAgIChmcm9tIHBhdGNoICM1MDU0OTggLSB0aGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQogICAKMjAwMi0wMi0wOCAwMjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIFJlZ2lzdGVyIElQIFJvdXRpbmcgdGFibGUgb2JqZWN0cyBhcyB3cml0YWJsZS4KICAgCjIwMDItMDItMDcgMDc6MzkgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzL2hwdXguaDoKCiAgIFN1cHBvcnQgZm9yIEhQLVVYIDExLCBjb3VydGVzeSBvZiBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAyLTAyLTA1IDExOjQ1ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHllYXIgdXBkYXRlIGZvciBOQUkgYW5kIENhbWJyaWRnZQogICAKMjAwMi0wMi0wNCAwMzoxNyAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGNvcnJlY3QgcHJvY2Vzc2luZyBmb3IgdGltZXRpY2tzIHdoZW4gRFNfTElCX05VTUVSSUNfVElNRVRJQ0tTIGlzCiAgICAgICBzZXQgKGNvcnJlY3RzIGJ1ZyAjNTExNzkzLCByZXBvcnRlZCBieSBBbm9ueW1vdXMpLgogICAKMjAwMi0wMS0yOCAxMjo1MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWlycm9yIHNlY3Rpb24gdXBkYXRlCiAgIAoyMDAyLTAxLTI4IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICB3YXJuaW5nIGFkZGVkIGFib3V0IHNlbmRfdHJhcF92YXJzIGFuZCBlbnRlcnByaXNlIG9pZCB1c2VkLgogICAKMjAwMi0wMS0yNSAwNjoyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggbWlub3IgcHJvYmxlbSB3aXRoIHN0b3JhZ2VUeXBlIChhbHdheXMgb2theSB0byBzZXQgdG8gY3VycmVudAogICAgICAgdmFsdWUpLgogICAKICAgICAtIGRvbid0IHJlc2V0IHNvbWUgdmFyaWFibGVzIHRvIG9sZCB2YWx1ZSB1bmxlc3Mgd2UgYWN0dWFsbHkgc2V0CiAgICAgICB0aGVtIGluIHRoZSBmaXJzdCBwbGFjZSEKICAgCjIwMDItMDEtMjQgMDY6MDYgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGF2b2lkIGZvcm1hdCBzdHJpbmcgbmFzdGllcyBpbiByZWFkX2NvbmZpZ19zdG9yZSgpIHdoZW4gd3JpdGluZyB0bwogICAgICAgZmlsZXMgKGV4cG9zZWQgZS5nLiBieSB0aGUgcGVyc2lzdGVudCBzeXNOYW1lLjAgc3R1ZmYgLS0gdHJ5CiAgICAgICBzbm1wc2V0IGhvc3Qgc3lzTmFtZS4wIHMgIiUwOHgiIC0tIG9vcHMpCiAgIAoyMDAyLTAxLTI0IDAzOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgcy9haXguaDoKCiAgIEFJWCBzdXBwb3J0IGZvciBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgICAoVGhhbmtzIHRvIEFuZHkgSG9vZCkKICAgCjIwMDItMDEtMjMgMDg6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gc2V0IHZpZXdUeXBlIHRvIHRoZSBERUZWQUwgaW5jbHVkZWQoMSkgZm9yIG5ldyByb3dzCiAgIAoyMDAyLTAxLTIyIDA2OjM2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGZpeCBidWcganVzdCBpbnRyb2R1Y2VkIHdoZXJlIHNldHRpbmcgYW4gZXhpc3Rpbmcgcm93J3Mgc3RhdHVzIHRvCiAgICAgICBjcmVhdGVBbmRHbyg0KSBvciBjcmVhdGVBbmRXYWl0KDUpIHdvdWxkIGRlbGV0ZSB0aGUgcm93LgogICAKMjAwMi0wMS0yMiAwNDoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gYmFja3BvcnQgb2YgcmVjZW50IGltcHJvdmVtZW50cyB0byBzbm1wVGFyZ2V0UGFyYW1zVGFibGUsCiAgICAgICBzbm1wVGFyZ2V0QWRkclRhYmxlIGFuZCBzbm1wTm90aWZ5VGFibGUuCiAgIAoyMDAyLTAxLTIxIDA0OjIyICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHNldCBub1N1Y2hPYmplY3QgdG8gRkFMU0UgaWYgd2UgaGF2ZSBhIHZhbGlkIHdyaXRlX21ldGhvZCAodGhpcwogICAgICAgY2F1c2VzIHRoZSBjb3JyZWN0IGV4Y2VwdGlvbiBub1N1Y2hJbnN0YW5jZSB0byBiZSBnZW5lcmF0ZWQgaWYgdGhlCiAgICAgICByZXF1ZXN0ZWQgb2JqZWN0IGRvZXNuJ3QgZXhpc3QpLgogICAKMjAwMi0wMS0yMSAwNDoyMCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gc2xpZ2h0IGNoYW5nZSB0byBnZW5lcmF0aW9uIG9mIGVycm9yLWluZGV4OgogICAKICAgICAgIC0gZXhwbGljaXRseSB0ZXN0IGZvciBlcnJvci1zdGF0dXMgPT0gbm9FcnJvciwgYW5kIHNldCBlcnJvci1pbmRleAogICAgICAgICB0byB6ZXJvIGluIHRoaXMgY2FzZTsKICAgCiAgICAgICAtIG90aGVyd2lzZSB1c2UgdGhlIGNhY2hlZCB2YWx1ZTsKICAgCiAgICAgICAtIGRvbid0IHplcm8gdGhlIGNhY2hlZCB2YWx1ZSBpbiBoYW5kbGVfdmFyX2xpc3QgaWYgaGFuZGxlX29uZV92YXIKICAgICAgICAgcmV0dXJucyBub0Vycm9yCiAgIAogICAgIC0gdGhpcyBjb3BlcyBwcm9wZXJseSB3aXRoIFNFVCByZXF1ZXN0cywgd2hlcmUgYSBmYWlsaW5nIFNFVCB3aWxsIGhhdmUKICAgICAgIGEgRlJFRSBwaGFzZSB3aGljaCB3aWxsIHR5cGljYWxseSByZXR1cm4gbm9FcnJvci4gIFByZXZpb3VzbHkgdGhpcwogICAgICAgd291bGQgZXJyb25lb3VzbHkgY2F1c2UgdGhlIGVycm9yLWluZGV4IHRvIGJlIHNldCB0byB6ZXJvLgogICAKMjAwMi0wMS0yMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oOgoKICAgICAtIGJhY2twb3J0IG9mIHJlY2VudCB2YWNtU2VjdXJpdHlUb0dyb3VwVGFibGUsIHZhY21BY2Nlc3NUYWJsZSBhbmQKICAgICAgIHZhY21WaWV3VHJlZUZhbWlseVRhYmxlIGNoYW5nZXMgKGNvcnJlY3RlZCBzdGF0ZSBtYWNoaW5lcykuCiAgICAgICBCZWZvcmU6IHBhc3NlZCAyMCwgIGZhaWxlZCA4MCwgdW50ZXN0ZWQgMTEKICAgICAgIEFmdGVyOiAgcGFzc2VkIDEwNywgZmFpbGVkIDEsICB1bnRlc3RlZCAzCiAgIAogICAgICAgVGhlIHN0aWxsLWV4dGFudCBmYWlsdXJlcyBhcmUgZHVlIHRvIHRoZSBub24taW1wbGVtZW50ZWQKICAgICAgIHZhY21Db250ZXh0VGFibGUuCiAgIAoyMDAyLTAxLTE1IDEyOjQ0ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBGaXggc3R1cGlkIG1pc3Npbmcgc2l6ZW9mKG9pZCkgZmFjdG9yIGluIG1lbWNweQogICAKMjAwMi0wMS0xNSAxMjo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgRG9udCB1c2Ugc3RhdGljIGJ1ZmZlciB3aGVuIHJlYWRpbmcgL3Byb2Mvc3RhdAogICAKMjAwMi0wMS0xNSAxMjo0MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIHMvc29sYXJpczIuNi5oLCBzL3NvbGFyaXMyLjcuaCwKICAgcy9zb2xhcmlzMi44Lmg6CgogICBGaXggaHJNYXhQcm9jZXNzZXMgZm9yIFNvbGFyaXMKICAgCjIwMDItMDEtMTUgMTI6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBTb21lIGFkZGl0aW9uYWwgZGVidWcgc3RhdGVtZW50cwogICAKMjAwMi0wMS0wOSAwODoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBrZXJuZWxfc3Vub3M1Lmg6CgogICBBZGQgZnVuY3Rpb24gdG8gYWNjZXMgcmF3IGtzdGF0IGRhdGEKICAgCjIwMDItMDEtMDkgMDg6MjYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFVzZSB0aGF0IHN5c2NvbmYgcmV0dXJucyBhIGxvbmcsIHRvIHNhdmUgbGFyZ2UgcGh5cyBtZW0KICAgCjIwMDItMDEtMDkgMDg6MjQgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkEgdmVyc2lvbgogICAKMjAwMi0wMS0wOSAwODoyMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIENhcmUgZm9yIExpbnV4IGRyaXZlcnMgdGhhdCBtYWludGFpbiBvY3RldCBjb3V0ZXJzIGFzIGxvZyBsb25nIHZhbHVlcwogICAKMjAwMi0wMS0wOSAwMjoyMCAgamJwbgoKICAgKiBGQVE6CgogICAgIC0gYWRkIE9TIFggdG8gbGlzdCBvZiBzdXBwb3J0ZWQgT1NlcywgdG8gZml4IGJ1ZyAjNTAxMTc5ICghKQogICAKMjAwMi0wMS0wMyAxNDowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgZml4IGJ1ZyAjNDk4ODA5IChJIHRoaW5rKSBieSBjaGVja2luZyBzZXRtbnRlbnQgcmV0dXJuIHZhbHVlLgogICAKMjAwMi0wMS0wMyAxMzo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAxLTEyLTE4IDA4OjQ5ICBqYnBuCgogICAqIGFjY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgICAtIGFkZCBPU1RZUEUgZGVmaW5lIGZvciB3aW4zMgogICAKMjAwMS0xMi0xOCAwODo0NCAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9CSkVDVCBJREVOVElGSUVSIGZvciB3aW4zMiBhZ2VudAogICAKMjAwMS0xMi0xOCAwNjo1MCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBMYXRoYSBQcmFiaHUgdG8gcHJvZHVjZSBtb3JlIG1lYW5pbmdmdWwgc3lzRGVzY3IuMAogICAgICAgc3RyaW5ncyBmb3IgTWljcm9zb2Z0IHBsYXRmb3Jtcy4KICAgCjIwMDEtMTItMDUgMDc6NDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcGF0Y2ggZnJvbSBKYXNvbiBHbG91ZG9uIHRvIGZpeCBsZWFraW5nIHNlc3Npb24gc3RydWN0dXJlcyBmcm9tIHNubXBfdGltZW91dCgpLgogICAKMjAwMS0xMi0wMyAxNDo1MiAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENvbXBsZXRlIHRoZSBCU0QgSVBTVEFUUyBjb25maWd1cmUgdGVzdHMsIGFzIHBvaW50ZWQgb3V0IGJ5IE1hcmsgTW9yYWVzCiAgIChidWcjIDQ4NzcwOCkKICAgCjIwMDEtMTEtMjkgMTY6NTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIDQuMi4zIGNoYW5nZXMKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIuMiAtPiBWNC4yLjMKCQoyMDAxLTExLTI5IDE0OjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjMgKQogICAKMjAwMS0xMS0yOSAxMzoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNvbGFyaXMgOCByZW5hbWVkIHRoZSBrc3RhdCBpZnNwZWVkIGF0dHJpYnV0ZSB0byBpZlNwZWVkIGFuZCBzb21ld2hlcmUKICAgYWxvbmcgdGhlIGxpbmUgY2hhbmdlZCBpdHMgdmFsdWUgZnJvbSBNYnBzIHRwIGJwcwogICAKMjAwMS0xMS0yOCAxNDo0MyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gaW1wcm92ZWQgaXJpeCBzdXBwb3J0LgogICAKMjAwMS0xMS0yOCAxNDozMSAgaGFyZGFrZXIKCiAgICogcy9pcml4Lmg6CgogICBsYXN0IGZpeGVzIGZvciBpcml4IEkgdGhpbmsKICAgCjIwMDEtMTEtMjggMTQ6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNyZWF0ZSBpc2xhbmRzIGluIHRoZSBzdHJlYW0KICAgCjIwMDEtMTEtMjggMTQ6MDkgIGhhcmRha2VyCgogICAqIHMvaXJpeC5oOgoKICAgaXJpeCBmaXhlcyBmb3IgYnJva2VuIGlyaXggaGVhZGVycwogICAKMjAwMS0xMS0yNyAxNzowNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICB2ZXJzaW9uIHN0YW1wICg0LjIuMy5wcmUxIChvcHBzKSkKICAgCjIwMDEtMTEtMjcgMTc6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBmaXggZm9yIHZlcnNpb24gc3RhbXBpbmcgdGhlIHBlcmwgbW9kdWxlLgogICAKMjAwMS0xMS0yNyAxNzowMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNC4yLjMKICAgCjIwMDEtMTEtMjcgMTE6MDkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIHVzZSBhdCBvd24gcmlzayBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZGVwZW5kYW5jaWVzCiAgIAoyMDAxLTExLTI3IDA2OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAgIC0gdHJ5IGhhcmRlciB0byBnZXQgaHJTeXN0ZW1NYXhQcm9jZXNzZXMuMCByaWdodCwgZHJhd2luZyBvbiBwYXRjaAogICAgICAgIzQ4NTc2NSwgc3VibWl0dGVkIGJ5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciwgZm9yIExpbnV4LCBhbmQKICAgICAgIGFsc28gdXNpbmcgc3lzY3RsKCkgbW9yZSB3aWRlbHkuCiAgIAoyMDAxLTExLTI3IDA2OjUxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiwgcy9saW51eC5oOgoKICAgICAtIExvb2sgZm9yIDxsaW51eC90YXNrcy5oPiwgaW4gb3JkZXIgdG8gZ2l2ZSBhIGJldHRlciB2YWx1ZSBmb3IKICAgICAgIGhyU3lzdGVtTWF4UHJvY2Vzc2VzLjAuICBGcm9tIHBhdGNoICM0ODU3NjUsIHN1Ym1pdHRlZCBieQogICAgICAgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMS0xMS0yNyAwMzo1NiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaCwgdGNwLmM6CgogICAgIC0gZ2l2ZSBjb3JyZWN0IHZhbHVlcyBmb3IgdGNwSW5FcnJzLjAgYW5kIHRjcE91dFJzdHMuMCB1bmRlciBMaW51eAogICAgICAgaWYgdGhlIGtlcm5lbCBtYWtlcyB0aGUgZGF0YSBhdmFpbGFibGUuICBGcm9tIHBhdGNoICM0ODU3NjUsCiAgICAgICBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMS0xMS0yNiAwOTo1MSAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQ6CgogICAgIC0gbG9uZ2VyIHRpbWVvdXQgZm9yIGluaXRpYWwgR0VUIChmaXggc3B1cmlvdXMgdGVzdCBmYWlsdXJlcykKICAgCjIwMDEtMTEtMjEgMTA6NDkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGhlbHAgdXBkYXRlIHRvIHJlbW92ZSB0aGUgc3VwcG9ydCBkYXRhYmFzZQogICAKMjAwMS0xMS0yMSAwNDo1MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAgIC0gZml4IGNvbXBpbGF0aW9uIGZvciBVbHRyaXggNC41IChidWcgIyA0MTUxOTcpIC0tIG1ha2Ugc3VyZQogICAgICAgdmZzLmZfYnNpemUgZXhpc3RzIGluIHZhcl9leHRlbnNpYmxlX2Rpc2soKSwgYW5kIGRlZmF1bHQgaXQgdG8KICAgICAgIDEwMjQuCiAgIAoyMDAxLTExLTIwIDAyOjI3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb24gb2YgU05NUF9NQVhfU0VDX05BTUVfU0laRSwgbm90ZWQgYnkKICAgICAgIEthcmwgTS4gSGVnYmxvb20uCiAgIAoyMDAxLTExLTE5IDA1OjQ4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50YXRpb24gb2YgaWdub3JlZGlzayBkaXJlY3RpdmUuCiAgIAoyMDAxLTExLTE5IDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9kaXNrLmMsIGhyX2Rpc2suaCwgaHJfcGFydGl0aW9uLmMsCiAgIGhyX3BhcnRpdGlvbi5oOgoKICAgICAtIHBhdGNoIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIHRvIGFkZCBkaXJlY3RpdmUgImlnbm9yZWRpc2siIHRvCiAgICAgICBza2lwIGNlcnRhaW4gZGV2aWNlcyAoYW5kIGhlbmNlIGF2b2lkIHRoZSBgc25tcHdhbGsgdGltZXMgb3V0JyB0eXBlCiAgICAgICBwcm9ibGVtcyBmcmVxdWVudGx5IHJlcG9ydGVkKS4gIEFsc28gZXh0ZW5kcyBzZWFyY2ggcmFuZ2VzIHRvIGNvcGUgd2l0aAogICAgICAgbGFyZ2VyIG51bWJlcnMgb2YgZGlza3MgZXRjLgogICAKMjAwMS0xMS0xNiAwNTozMSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIFVuc2lnbmVkMzIvR2F1Z2UzMiB0eXBlcwogICAKMjAwMS0xMS0xNiAwMzoyMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBtb3JlIGNvbnN0LW5lc3MgaW4gcXNvcnRfY29tcGFyZSA9PiBmZXdlciB3YXJuaW5ncwogICAKMjAwMS0xMS0xNiAwMjo1NCAgamJwbgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBhZGQgcHJvdG90eXBlcyBmb3IgdGltZXJTZXQoKSBhbmQKICAgICAgIHRpbWVyUGF1c2UoKS4KICAgCjIwMDEtMTEtMTYgMDI6NTIgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvICNpbmNsdWRlIDxncnAuaD4gaWYgd2UgaGF2ZSBpdAogICAKMjAwMS0xMS0xNiAwMjo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byByZXR1cm4gYSB2YWx1ZSBmcm9tCiAgICAgICBub3RpZnlUYWJsZV91bnJlZ2lzdGVyX25vdGlmaWNhdGlvbnMoKSB0byBhdm9pZCB3YXJuaW5ncwogICAKMjAwMS0xMS0xNiAwMjo0NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1ha2Ugc2lnbmF0dXJlIG9mIHFzb3J0X2NvbXBhcmUKICAgICAgIGZ1bmN0aW9uIG1hdGNoIHRoYXQgZXhwZWN0ZWQgYnkgcXNvcnQoMykgLS0gYWRkcyBjb25zdCB0byBhcmdzLgogICAKMjAwMS0xMS0xNiAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbWFrZSBkZWZpbml0aW9uIG9mIHByaW50X3RyZWVfbm9kZQogICAgICAgc3RhdGljIHRvIG1hdGNoIGZvcndhcmQgZGVjbGFyYXRpb24uCiAgIAoyMDAxLTExLTE1IDEwOjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwOToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZml4IGJhZC1sb29raW5nIGV4cHJlc3Npb24gd2hpY2ggd2FzIGNhdXNpbmcgcHJvYmxlbXMgZGVzY3JpYmVkIGluCiAgICAgICBlbWFpbCB0aXRsZWQgIkRlZmVjdCByZXBvcnQgb24gVUNEIFNOTVAgdG9vbGtpdCAoY3Jhc2ggaW4KICAgICAgIGtlcm5lbF9zdW5vczUuYykiIHNlbnQgdG8gbmV0LXNubXAtdXNlcnMgb24gMjAwMS0wNy0xNy4KICAgCjIwMDEtMTEtMTUgMDg6MzMgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgcmVhZC1vbmx5IG5hdHVyZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBpZiB2YWx1ZSBpcwogICAgICAgY29uZmlndXJlZCB2aWEgdGhlIGF1dGh0cmFwZW5hYmxlIHRva2VuCiAgIAoyMDAxLTExLTE1IDA4OjI4ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDU6MTYgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQsIFQxMjFwcm94eXNldDoKCiAgICAgLSB1c2UgcHN5c2NvbnRhY3Qgbm90IHN5c2NvbnRhY3QgdG8gc2V0IGluaXRpYWwgdmFsdWUgb2Ygc3lzQ29udGFjdC4wCiAgICAgICBvYmplY3Qgc2luY2UgdGhlIGxhdHRlciBhbHNvIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LgogICAKMjAwMS0xMS0xNSAwNTowNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTQgMTc6NTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4zLnByZTEgKQogICAKMjAwMS0xMS0xNCAxNzo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBudW1lcmljIGNvbW1lbnRzIGluIGJvdGggaGV4IGFuZCBkZWNpbWFsCiAgIAoyMDAxLTExLTE0IDE3OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGluY2x1ZGUgSU5URUdFUjMyIGluIElOVEVHRVIgY2FzZSBjaGVja2luZy4KICAgCjIwMDEtMTEtMTQgMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB2ZXJzaW9uIHRhZyBwZXJsL1NOTVAvU05NUC5wbSB3aXRoIHRoZSB1Y2Qtc25tcCB2ZXJzaW9uIG51bWJlci4KICAgCjIwMDEtMTEtMTQgMTY6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiBzbm1wY29uZi4KICAgCjIwMDEtMTEtMTQgMTY6MDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IGluaXQgZnVuY3Rpb24gY2hlY2tpbmcgaW4gbW9kdWxlcwogICAKMjAwMS0xMS0xNCAxMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSBtYWtlIGEgbmV3IGNhbGxiYWNrIGZvciBwcmUtdXBkYXRlLWNvbmZpZyBjb25kaXRpb25zLgogICAtIG1ha2UgdGhlIHNubXBOb3RpZnlUYWJsZSBtYWtlIHVzZSBvZiBpdCB0byByZW1vdmUgInJlYWRPbmx5IiBlbnRyaWVzCiAgICAgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBnZW5lcmF0ZWQgdmlhIGNvbmZpZ3VyYXRpb24gcGFyc2luZy4KICAgICAtIG5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgcmVtb3ZlIHRoZSBnZW5lcmF0ZWQgdGFyZ2V0IGVudHJpZXMsIHdoaWNoCiAgICAgICBpcyBub3QgaWRlYWwsIGJ1dCBhdCBsZWFzdCBkdXBsaWNhdGUgdHJhcHMgYXJlbid0IHNlbnQuCiAgIAoyMDAxLTExLTEzIDExOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBsb29rIGZvciBlcmkgaW50ZXJmYWNlcy4KICAgCjIwMDEtMTEtMTMgMDU6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gcXVpZXRlbiBzb21lIG5vaXN5IGxvZ2dpbmcKICAgCjIwMDEtMTEtMTIgMjM6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jOgoKICAgTVMgQysrIHdhcm5pbmcgZml4ZXMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbAogICAKMjAwMS0xMS0xMSAyMTo0OCAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVzdG9yZSB0aGUgb2xkIHZhbHVlIG9kIFRJTUVfV0lUSF9TWVNfVElNRQogICAKMjAwMS0xMS0wOSAxMjoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgQWRkZWQgYSBnZXJtYW55IGJhc2VkIG1pcnJvcgogICAKMjAwMS0xMS0wOSAxMToyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWVudGlvbiBuZXcgbWlycm9yCiAgIAoyMDAxLTExLTA5IDExOjIwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICBhcHBsaWVkIGVuZ2xpc2gvdHlwby9jaGFuZ2VzIG5vdGVkIGluIGJ1ZyAjNDcxMTc5CiAgIAoyMDAxLTExLTA5IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggYnVnIDQ3OTM2NTogdXNlIHN0cm5jcHkgaW4gc25tcF9hZGRfdmFyKCkuCiAgIAoyMDAxLTExLTA5IDA3OjUzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGZpeCBidWcgIzQ3NDQ4ODogYWRkIGV4dGVybiBDIHdyYXBwZXJzCiAgIAoyMDAxLTExLTA5IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGZpeCBPSURzIHRvIGluY2x1ZGUgZW50cnkgbm9kZQogICAKMjAwMS0xMS0wOCAwOTo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgVU5JVCBzcGVjcyBmb3IgdGhlIGZpbGVUYWJsZSB0byBzYXkga0IgZXhwbGljaXRseQogICAKMjAwMS0xMS0wOCAwOTo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHRoYXQgdGhlIGZpbGVUYWJsZSBpcyBpbiBrQi4KICAgCjIwMDEtMTEtMDYgMDg6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIHRrbWliOgoKICAgYWRkIGZpeGVzIHRvIGNoZWNrIGZvciB0aGUgU05NUCBhbmQgVGsgcGVybCBtb2R1bGVzIGFuZCBwcmludCBhIGJldHRlcgogICBlcnJvciBtZXNzYWdlIGlmIHRoZXkncmUgbm90IGF2YWlsYWJsZSB0ZWxsaW5nIHVzZXJzIGhvdyB0byBnZXQgdGhlbS4KICAgCjIwMDEtMTEtMDYgMDg6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGFzbl9idWlsZF9iaXRzdHJpbmcgdG8gY2hlY2sgZm9yIE5VTEwgdmFsdWVzIChwb2ludGVkIG91dCBieSBUYXRhIEthbHlhbikuCiAgIAoyMDAxLTExLTA2IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGxlbmd0aCBjaGVjayBmaXhlZCBmb3Igd3JhcHBlZCBhZGRpdGlvbi4gIEJ1ZyBwb2ludGVkIG91dCBieSBUYXRhIEthbHlhbgogICAKMjAwMS0xMC0zMCAyMTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIG1ha2UgcGF0aHMgbW9yZSBjb25maWd1cmFibGUgZnJvbSB3aXRoaW4gQyBjb2RlLgogICAKMjAwMS0xMC0zMCAwNzoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gZml4IGJ1ZyB3aGVyZWJ5IGludGVyZmFjZSBjb3VudGVyIGlzIG5vdCByZXNldCwgbm90ZWQgYnkgKGFtb25nc3QKICAgICAgIG90aGVycykgVmljdG9yIEtpcmhlbnNodGVpbiBpbiBwYXRjaCAjNDc0MDY0LgogICAKMjAwMS0xMC0yNiAwOTowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggYWdlbnR4L2NsaWVudCAtPiBhZ2VudHgvc3ViYWdlbnQgaGVscCBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDAzOjM0ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHRoZSBmYWN0IHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbi4wIChldCBhbC4pIHZpYSBhCiAgICAgICBzeXNsb2NhdGlvbiAob3IgZXF1aXZhbGVudCkgdG9rZW4gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHksCiAgICAgICByZXR1cm5pbmcgYSBub3RXcml0YWJsZSBlcnJvciByZXNwb25zZSBpZiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8KICAgICAgIFNFVCBpdC4KICAgCjIwMDEtMTAtMjQgMTA6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIGZpeCB0eXBvIG5vdGVkIGJ5IFRpbSBEaWV0egogICAKMjAwMS0xMC0yNCAwOTo1NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYywgc3lzdGVtX21pYi5oOgoKICAgICAtIGltcGxlbWVudCBwZXJzaXN0ZW5jZSBmb3Igc3lzTG9jYXRpb24uMCwgc3lzQ29udGFjdC4wIGFuZCBzeXNOYW1lLjAKICAgCiAgICAgLSBwcmVzZW5jZSBvZiBhIHN5c2xvY2F0aW9uIHRva2VuIGluIHNubXBkLmNvbmYgbWFrZXMgc3lzTG9jYXRpb24uMAogICAgICAgbm9uLXdyaXRhYmxlIChyZXR1cm5zIG5vdFdyaXRhYmxlIG9uIFNFVCBhdHRlbXB0cykKICAgCjIwMDEtMTAtMjQgMDU6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsganVzdCBpbnRyb2R1Y2VkCiAgIAoyMDAxLTEwLTI0IDAzOjMzICBqYnBuCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhdXRvY29uZiBzdXBwb3J0IGZvciBkZXRlY3RpbmcgcGtnaW5mbyBpbnRlcmZhY2UgaW4gbGliYWRtLiAgVGhhbmtzCiAgICAgICB0byBTdGVmYW4gUmFkbWFuIChwYXRjaCAjNDczNjY5KS4KICAgCjIwMDEtMTAtMjQgMDM6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgICAgLSB1c2UgcGtnaW5mbyBpbnRlcmZhY2UgdG8gZGV0ZXJtaW5lIHR5cGUgb2Ygc29mdHdhcmUgcGFja2FnZSBtb3JlCiAgICAgICBzcGVjaWZpY2FsbHkgaWYgcG9zc2libGUuICBTbGlnaHQgdmFyaWF0aW9uIG9uIHBhdGNoICM0NzM2NjksIHN1Ym1pdHRlZAogICAgICAgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDEtMTAtMTcgMDc6NTIgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gdGhlIE1SVEcgdHV0b3JpYWwgd2ViIHBhZ2VzCiAgICAgKGFzIHN1Z2dlc3RlZCBieSBDaHJpc3RpYW4gUm9ib3R0b20gUmVpcykKICAgCjIwMDEtMTAtMDggMTA6NTYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIuMSAtPiBWNC4yLjIKCQoyMDAxLTEwLTA4IDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIEFwcGx5IHBhdGNoZXMgc3VnZ2VzdGVkIGluIGJ1ZyAjNDY5MDgyIHRvIGZpeCBpbGxlZ2FsIHJvdyBjcmVhdGlvbnMKICAgd2hlbiByb3dzdGF0dXMgaXMgc2V0IHRvIGRlc3Ryb3kuCiAgIAoyMDAxLTEwLTA2IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtaW5vciB0d2Vha3MgdG8gdGhlIGRvd25sb2FkIGxpc3QuCiAgIAoyMDAxLTEwLTA2IDA3OjQyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgRGF2aWQgTGF3cmVuY2UncyB0ZXh0IGFib3V0IGNvbnRyaWJ1dGluZyBwYXRjaGVzLgogICAKMjAwMS0xMC0wNSAxODowOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNiApCiAgIAoyMDAxLTEwLTA1IDE4OjAxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIENoYW5nZSBfUkVFTlRSQU5UIGRlZmluZSB0byBOU19SRUVOVFJBTlQgdG8gbm90IGNvbmZsaWN0IHdpdGggQlNEL09TIDQuMy4KICAgCjIwMDEtMTAtMDUgMTc6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBzL2lyaXguaDoKCiAgIGlyaXggc3BlY2lmaWMgZml4ZXMgbWVudGlvbmVkIGluIGJ1ZyAjNDA1NDU0CiAgIAoyMDAxLTEwLTA1IDE3OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCAjNDQwODA4IHBvc3NpYmx5IG92ZXJ3cml0aW5nIGEgb2lkIGJ1ZmZlci4KICAgCjIwMDEtMTAtMDUgMTY6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICBmaXggdW5zaWduZWQzMiByZXR1cm4gdmFyaWFibGUgdXNhZ2UKICAgCjIwMDEtMTAtMDUgMTY6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBtb3ZlIGFycHRhYl9jdXJyZW50IGFuZCBhcnB0YWJfc2l6ZSBkZWZpbml0aW9ucyB1cCBvdXQgb2YgaWZkZWYgbWVzcy4KICAgCjIwMDEtMTAtMDUgMTY6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgZG9uJ3QgY3JlYXRlIHJvd3N0YXR1cyBlbnRyaWVzIHdpdGggJ2Rlc3Ryb3knIGFzIGluaXRpYWwgdmFsdWUuCiAgIAoyMDAxLTEwLTA1IDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vOiBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuYzoKCiAgIGZpeGVkIFVORE8gY2xhdXNlcy4KICAgCjIwMDEtMTAtMDUgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIGZvciBwaWNreSBjb21waWxlcnMuCiAgIAoyMDAxLTEwLTA1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBiZXR0ZXIgZXJyb3IgZGVzY3JpcHRpb24gZm9yIHRyYXBzZXNzCiAgIAoyMDAxLTEwLTA1IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBBZGRlZCBtaXJyb3Igc2l0ZXMuCiAgIAoyMDAxLTEwLTA1IDA3OjEwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogU01VWC1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0OgoKICAgTUlCIHByb2JsZW1zIHBvaW50ZWQgb3V0IGJ5IE1hcmVrIE1hbG93aWR6aWtpCiAgIAoyMDAxLTEwLTA0IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgRG9uJ3Qgd3JpdGUgYSBudWxsIHBhc3QgdGhlIGVuZCBvZiB0aGUgY29tbXVuaXR5IHN0cmluZyBidWZmZXIuCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL2V4dGVuZGluZywKICAgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaCBmcm9tIFQuIEouIE1hdGhlcjogRG9jdW1lbnRhdGlvbiBvZiB0aGUgcGFzc19wZXJzaXN0IHNubXBkLmNvbmYgdG9rZW4uCiAgIAoyMDAxLTEwLTA0IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OgoKICAgUGF0Y2ggZnJvbSBULiBKLiBNYXRoZXI6IEFuIGV4YW1wbGUgKHBlcmwpIHBhc3NfcGVyc2lzdCBzY3JpcHQuCiAgIAoyMDAxLTEwLTA0IDAyOjIxICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZGlzYWJsZSBzdGRlcnIgbG9nZ2luZyAoaWYgcmVxdWVzdGVkKSBiZWZvcmUgY2FsbGluZyBpbml0X21pYl9tb2R1bGVzKCkuCiAgICAgICBUaGlzIHNob3VsZCBmaXggdGhlIHByb2JsZW0gbm90ZWQgYnkgTmlnZWwgTWV0aGVyaW5naGFtIGluIGJ1ZyAjNDE4ODU3CiAgICAgICB3aGVyZWJ5IHRoZSBBZ2VudFggbWFzdGVyIG1vZHVsZSBwcmludHMgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aGljaCBjYXVzZXMKICAgICAgIGEgU0lHUElQRSB3aGVuIHRoZSBhZ2VudCBpcyBzdGFydGVkIGFzIGEgZGFlbW9uLgogICAKICAgICAgIEFsc28gbm90ZWQgd2l0aCBleHRlbnNpdmUgYW5hbHlzaXMgYnkgVGVkIFJ1bGUgaW4gYnVnICM0Njc1NTEuCiAgIAoyMDAxLTEwLTAzIDExOjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU1ICkKICAgCjIwMDEtMTAtMDMgMTE6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3Rvb2xzLmM6CgogICBwcm9wZXIgY29uc3QgY2FzdGluZyBpbiBmcm9udCBvZiBNYXJra3UncyBjYXN0aW5nIHBhdGNoLgogICAKMjAwMS0xMC0wMyAxMToxMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBQYXRjaDogcHJvcGVyIGNhc3RzIGZvciBwaWNreSBjb21waWxlcnMgZnJvbSBNYXJra3UgTGF1a2thbmVuLgogICAKMjAwMS0xMC0wMyAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgcmJ1aWxkIGJleW9uZCB0aGUgZW5kIG9mIGEgYnVmZmVyIChuZWVkZWQgYnVmZmVyICsgbGVuZ3RoICItIDEiKS4KICAgCjIwMDEtMTAtMDMgMDU6MzggIGpicG4KCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgICAtIGNoYW5nZSBleHByZXNzaW9uIGF0IGwuIDQxNSBmcm9tOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyA9ICprY3N0cmluZyBeICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ciB0bzoKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgXj0gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGlzIG9rYXkgKHNpbmNlICprY3N0cmluZyBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlKS4gIFNpbWlsYXJseQogICAgICAgYXQgbC4gNTMwLiAgVGhlIHByZXZpb3VzIGNvbnN0cnVjdHMgY2F1c2Ugd2FybmluZ3Mgd2l0aCBHQ0MzIGFuZAogICAgICAgc29tZSBvdGhlciBjb21waWxlcnMuICBUaGFua3MgdG8gTmllbCBNYXJrd2ljayB3aG8gbm90ZWQgdGhpcyBpbgogICAgICAgYnVnICM0NjU5NjkuCiAgIAoyMDAxLTEwLTAyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDaGFuZ2Ugb2lkIGxlbmd0aHMgdG8gc2l6ZV90IGZyb20gaW50IChzZWdmYXVsdHMgb24gYW4gYWxwaGEvbGludXgpLgogICAKMjAwMS0xMC0wMiAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBBZGQgcHJvdG90eXBlIGZvciBnZXRUb3RhbFN3YXAoKS4KICAgCjIwMDEtMTAtMDIgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICByZXR1cm4gTk9UX1dSSVRBQkxFIGluc3RlYWQgb2YgUkVBRE9OTFkgYXMgcG9pbnRlZCBvdXQgYnkKICAgYXJhamVzaEBpbmRpYS5hZHZlbnRuZXQuY29tLgogICAKMjAwMS0xMC0wMiAxNzowMyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBQYXRjaCBmcm9tIE1hcmMgTW9lbGxlciB0byBkZWZpbmUgc25wcmludGYgYXMgX3NucHJpbnRmCiAgIAoyMDAxLTEwLTAyIDE3OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQYXRjaCBmcm9tIE1hcmMgTW9lbGxlciB0byBjaGVjayBmb3IgSEFWRV9MUFNUQVQgYmVmb3JlIGNhbGxpbmcgaXQuCiAgIAoyMDAxLTEwLTAyIDE3OjAwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgUm9uLgogICAKMjAwMS0xMC0wMiAxNzowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGdldF91cHRpbWUoKSBpbXBsZW1lbnRhdGlvbiBmb3Igd2luZG93cyBmcm9tIFJvbiBNZXZpc3Nlbi4KICAgCjIwMDEtMTAtMDEgMTc6MzggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTQgKQogICAKMjAwMS0xMC0wMSAxNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgbWFrZSBtYWtlZmlsZWluZGVwZW5kCiAgIAoyMDAxLTEwLTAxIDE3OjM3ICBoYXJkYWtlcgoKICAgKiBtYWtlZmlsZWluZGVwZW5kLnBsOgoKICAgdHJhbnNsYXRlIC5vIC0+IC5sbyBieSBoYW5kLgogICAKMjAwMS0xMC0wMSAxNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suYywgaHJfcHJpbnQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzQ2NTU0NSB0byBmaXggZGVsYXlzIGluIGhvc3QgcmVzb3VyY2VzIG1pYiB3aGVuIGxvb2tpbmcKICAgYXQgZGV2aWNlcyBhbmQgcHJpbnRlcnMuCiAgIAoyMDAxLTEwLTAxIDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICBOZXcgc3R1ZmYgaW4gNC4yLjIKICAgCjIwMDEtMTAtMDEgMTY6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjE6CgogICBtYWtlIHNubXB3YWxrIGRlZmF1bHQgdG8gZGV0ZWN0aW5nIGlsbGVnYWwgT0lEIGluY3JlYXNlcy4gIC1DYyB0dXJucwogICBpdCBvZmYgaW5zdGVhZCBvZiBvbi4KICAgCjIwMDEtMTAtMDEgMTA6MzYgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBlZGl0aW5nIHR3ZWFrcyBieSBKb2huIHRvIGNvdW50IHRoaW5ncyBwcm9wZXJseS4gIFdlcyBsb29zZXMgdGhlCiAgIGFiaWxpdHkgdG8gY291bnQgYmV5b25kIHRoZSBudW1iZXIgMi4KICAgCjIwMDEtMTAtMDEgMTA6MjYgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBkaXR0by4KICAgCjIwMDEtMTAtMDEgMTA6MjIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBWYXJpb3VzIGNvcHlyaWdodCB1cGRhdGVzLgogICAKMjAwMS0xMC0wMSAwMjo1MiAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gYWRkICNpbmNsdWRlICJzbm1wX2xvZ2dpbmcuaCIgdG8gYXZvaWQgY29tcGlsYXRpb24gcHJvYmxlbXMgb24KICAgICAgIHNvbWUgcGxhdGZvcm1zIGludHJvZHVjZWQgYnkgbmV3IGVycm9yIG1lc3NhZ2VzLiBTZWU6CiAgICAgICA8VVJMOmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYWlkPTQ2NTgwNyZncm91cF9pZD0xMjY5NCZhdGlkPTExMjY5ND4KICAgCjIwMDEtMDktMjkgMDY6MDYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgQWRkIGEgbWlzc2luZyBwcm90b3R5cGUgZm9yIHNubXBfcmVhbGxvY19ieV90eXBlCiAgIAoyMDAxLTA5LTI5IDA2OjA1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmg6CgogICBGaXggYSBiYWQgI2lmZGVmIHBhcmFudGhlc2VzCiAgIAoyMDAxLTA5LTI2IDEwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHNtdXggaXMgKm5vdCogYSBwcm9wZXIgZGVsZWdhdGlvbiBzdWJhZ2VudC4KICAgCjIwMDEtMDktMjUgMTI6NDYgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTMgKQogICAKMjAwMS0wOS0yNSAxMTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNjYXBpLmMsIHNjYXBpLmg6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZXMgd2hlbiBlbmNyeXB0aW9uIHN1cHBvcnQgaXNuJ3QgYXZhaWxhYmxlLgogICAKMjAwMS0wOS0yNSAwNzo1OSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYW5vdGhlciBzcGFjZSB0aGF0IHdvdWxkIG1ha2UgdGhlIHRlc3Qgc3VpdGUgZmFpbAogICAKMjAwMS0wOS0yNSAwNzo1MyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSByZWluc3RhdGUgYSBtaXNzaW5nIHNwYWNlCiAgIAoyMDAxLTA5LTI1IDA1OjQzICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGRfbG9nLmg6CgogICAgIC0gaW5jb3Jwb3JhdGUgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgZnJvbSBtYWluIGJyYW5jaCB0byBhdm9pZAogICAgICAgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMKICAgCjIwMDEtMDktMjUgMDU6NDEgIGpicG4KCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIHVzZSByZWxvY2F0aW5nIGJ1ZmZlciB2ZXJzaW9uIG9mIHNwcmludCBmdW5jdGlvbnMKICAgCjIwMDEtMDktMjUgMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcGFyc2UuaDoKCiAgICAgLSBhZGQgcmVsb2NhdGluZyBidWZmZXIgY29kZSBmcm9tIG1haW4gYnJhbmNoCiAgIAoyMDAxLTA5LTI1IDA1OjM5ICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgICAtIGFkZCBzbm1wX3JlYWxsb2MoKSBhbmQgc25tcF9zdHJjYXQgZnVuY3Rpb25zIHdoaWNoIHRoZSByZWxvY2F0aW5nCiAgICAgICBidWZmZXIgY29kZSB1c2VzCiAgIAoyMDAxLTA5LTIxIDE3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIEdsZW5uIE1hbnNmaWVsZCB0byBmaXggaW50ZXJmYWNlIGNvdW50aW5nIG9uIGludGVyZmFjZXMKICAgd2l0aG91dCBpcCBhZGRyZXNzZXMuCiAgIAoyMDAxLTA5LTIwIDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBjaGVjayBza2lwX3doaXRlKCkgcmV0dXJuIChhcyBtZW50aW9uZWQgaW4gcGF0Y2ggIzQ2MjIwMSkuCiAgIAoyMDAxLTA5LTIwIDExOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgZml4ZWQgYSBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cgYnVnIGluIHNwcmludF9hc2NpaXN0cmluZyBhcyBwb2ludGVkCiAgIG91dCBieSBidWcgIzQ2MzIyNi4KICAgCjIwMDEtMDktMjAgMDk6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3Qgd2FybiBhYm91dCBtaXNzaW5nIG9wZW5zc2wgdW5sZXNzIGV4cGxpY2l0bHkgYXNrZWQgKGFuZCB0aGVuIGVycm9yKS4KICAgCjIwMDEtMDktMjAgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIG1vdmUgaGVhZGVycyBhcm91bmQgdG8gZml4IGNvbXBpbGF0aW9uIG9uIFNvbGFyaXMgMi43OyBzeXMvc3RyZWFtLmgKICAgICAgIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGJlZm9yZSBzeXMvc29ja2V0dmFyLmggZm9yIHRoaXMgcGxhdGZvcm0uCiAgIAoyMDAxLTA5LTIwIDA5OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAic3lzdGVtLmgiIHdoaWNoIHVzZXMgdGhlIHR5cGUgaW5fYWRkcl90IHRoZXJlYnkKICAgICAgIGNhdXNpbmcgcHJvYmxlbXMsIGFuZCBzZWVtcyB0byBiZSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAxLTA5LTIwIDA2OjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBNYWtlIHN1cmUgSGFycmllJ3MgbmFtZSBpcyBpbiB0aGUgcGF0Y2hlcyBSRUFETUUgYXMgd2VsbCBhcyB0aGUgbWFpbmxpbmUuCiAgIAoyMDAxLTA5LTIwIDA2OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYywgc25tcF9kZWJ1Zy5jLCBzbm1wdXNtLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gcHJvcGVyIHByb3RvdHlwZXMgZm9yIHNvbWUgZnVuY3Rpb25zLgogICAKMjAwMS0wOS0xOSAxNzoxOSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMiApCiAgIAoyMDAxLTA5LTE5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUxICkKICAgCjIwMDEtMDktMTkgMTY6NTkgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yICkKICAgCjIwMDEtMDktMTggMTc6MjIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFVuZG8gTmllbHMnIGNoYW5nZSB0byBhbGxvdyBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byBvdmVycmlkZSAuY29uZgogICBmaWxlcy4gIFJpZ2h0IGdvYWwsIHdyb25nIGJyYW5jaCB0byBkbyBpdCBpbiBhcyBpdCBicm9rZSBTTk1QdjMgYW1vbmcKICAgb3RoZXIgdGhpbmdzLiAgVGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgaXMgcmF0aGVyIHNlbnNpdGl2ZSB0bwogICBvcmRlcmluZy4KICAgCjIwMDEtMDktMTggMTU6MDggIG5iYQoKICAgKiBzL2Rhcndpbi5oOgoKICAgRml4IGFuIG92ZXJzaWdodCBpbiB0aGUgRGFyd2luIHBhdGNoCiAgIAoyMDAxLTA5LTE4IDE1OjA4ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggYW4gb3ZlcnNpZ2h0IGluIHRoZSBEYXJ3aW4gcGF0Y2hlcwogICAKMjAwMS0wOS0xNyAwOTowMCAgbmJhCgogICAqIHMvZGFyd2luLmg6CgogICBUaGUgZGFyd2luIHN5c3RlbSBmaWxlLCB3aGljaCBJIGZvcmdvdCB3aGVuIGNvbW1pdHRpbmcgdGhlIHJlc3Qgb2YKICAgdGhlIGRhcndpbiBwYXRjaC4KICAgCjIwMDEtMDktMTcgMDc6MDcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYXV0b2hlYWRlciBydW4KICAgCjIwMDEtMDktMTcgMDQ6MTMgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IG5ld2xpbmVzIGluc2lkZSB1c2FnZSBzdHJpbmcuCiAgIAoyMDAxLTA5LTE2IDE0OjU2ICBuYmEKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9zbXV4L3NtdXguYzoKCiAgIE1vdmUgdGhlIHNtdXhfbGlzdGVuX3NkIHZhcmlhYmxlIHRvIHNtdXguYy4gVGhpcyB3YXkgaXQgd2lsbCBiZSBpbiB0aGUKICAgbGlicmFyeSBzbyB0aGUgbGlua2VyIHdvbnQgYmUgdXBzZXQgd2hlbiB5b3UgbGluayB3aXRoIHRoZSBhZ2VudCBsaWJyYXJ5LgogICAKMjAwMS0wOS0xNiAxNDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIHMvb3BlbmJzZC5oOgoKICAgUGF0Y2hlcyBmb3IgT3BlbkJTRCAyLjkKICAgCjIwMDEtMDktMTYgMTQ6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGRpc2tpbyBzdXBwb3J0IGZvciBGcmVlQlNENC4gVGhhbmtzIHRvIFlpbWluIEdlCiAgIAoyMDAxLTA5LTE2IDE0OjE2ICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBQYXRjaGVzIHRvIHN1cHBvcnQgRGFyd2luIChNYWMgT1MvWCkKICAgVGhhbmtzIHRvIFRleCBDbGF5dG9uIDx0ZXhAZGFydHdhcmUuY29tPgogICAKMjAwMS0wOS0xNiAxNDowMyAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9pcEFkZHIuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBIZWFkZXIgcmVhcnJhbmdlbWVudHMgdG8gbWFrZSBCU0QncyBoYXBweSBhZnRlciB0aGUgV0lOMzIgcGF0Y2gKICAgCjIwMDEtMDktMTUgMDY6MDggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYXJndW1lbnQgdG8gc25wcmludGYgKGVycnByZSBjb3JyZXNwb25kaW5nIHRvICVzKSAtLQogICAgICAgaXQgd2FzIG1pc3NpbmcgZnJvbSB0aGUgcGF0Y2ggKCM0NTIwMjcpCiAgIAoyMDAxLTA5LTE0IDE3OjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gZGVidWdnaW5nIGNvbXBpbGF0aW9uIGZpeGVzCiAgIAoyMDAxLTA5LTE0IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1hbnkgbmVlZGVkIGNoYW5nZXMgZnJvbSBtYWlubGluZSBtZXJnZWQgaW50byBwYXRjaGVzIGJyYW5jaAogICAKMjAwMS0wOS0xNCAxNToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBQYXRjaCAjNDUyMDI3IGZyb20gTWFyY3VzIE1laXNzbmVyOgogICAgIHNlY3VyaXR5IGZpeCB0byBtYWtlIHN1cmUgdGhhdCBsb25nIGFzbiBsZW5ndGhzIGNhbid0IGJlIHVzZWQgYW5kCiAgICAgYXJlbid0IGltcHJvcGVybHkgY2FzZWQgdG8gYSBzaWduZWQgdmFsdWUuCiAgIAoyMDAxLTA5LTE0IDE0OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoICM0MzI5ODIgZnJvbSBIb2xsaXM6IGZpeCAtLXdpdGgtbGlid3JhcCB3aXRob3V0IGEgcGF0aCBvcHRpb24KICAgCjIwMDEtMDktMTQgMTM6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywgbWliSUkvdWRwVGFibGUuYzoKCiAgIFNvbGFyaXMgc3VwcG9ydCBmb3IgdWRwVGFibGUuCiAgIFRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgPGpzZkBJbnRlckZhY2UtQUcuY29tPgogICAKMjAwMS0wOS0xNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgZnJvbSBwYXRjaCAjNDIzNDY2OiBhZGQgYWJpbGl0eSB0byB1c2UgdGhpcyBmaWxlIHdpdGhpbiB0aGUgc291cmNlIHRyZWUKICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBBZGRlZCBjb25maWcuaCBmaWxlIGZvciBib3JsYW5kIGNvbXBpbGVycyAod2hpY2ggZGlmZmVycyBzbGlnaHRseSkuCiAgICAgRnJvbSBwYXRjaCAjNDIzNDY2CiAgIAoyMDAxLTA5LTE0IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBpcEFkZHIuYywgdGNwLmMsIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jLCB2YXJfcm91dGUuYzoKCiAgIE1pYi0yIHN1cHBvcnQgZm9yIFdpbmRvd3Mgc3lzdGVtcy4KICAgKk1hbnkqIHRoYW5rcyB0byBMYXRoYSBTLCBmb3IgZmlsbGluZyB0aGlzIGxvbmctYXdhaXRlZCBuZWVkLgogICAKMjAwMS0wOS0xNCAwOTowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIGlwQWRkci5jLCB0Y3AuYywgdGNwVGFibGUuYywKICAgdWRwLmMsIHVkcFRhYmxlLmM6CgogICBNb3ZlIHBhY2thZ2UtcHJvdmlkZWQgaGVhZGVyIGluY2x1ZGVzICgnbWliaW5jbCcgYW5kICd1dGlsX2Z1bmNzJykKICAgdG8gYWZ0ZXIgdGhlIHN5c3RlbSBpbmNsdWRlcy4gIFRoaXMgc2hvdWxkbid0IGFmZmVjdCBtb3N0IHN5c3RlbXMsCiAgIGJ1dCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBXaW5kb3dzIHBvcnQuCiAgIAoyMDAxLTA5LTE0IDA4OjI4ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBQcm9wb2dhdGUgdGVzdCBmb3IgPG5ldGluZXQvaXBfaWNtcC5oPiB0aHJvdWdoIHRvIHRoZSBiaXQgdGhhdCBkb2VzIHRoZSB3b3JrLgogICAKICAgICAoT3VyIGlsbHVzdHJpb3VzIGxlYWRlciBjbGVhcmx5IGhhcyBubyBjb25maWRlbmNlIGluIHRoZSBjb21wZXRhbmNlCiAgICAgIG9mIGhpcyBtaW5pb25zLiAgSSdkIHRha2UgdW1icmFnZSwgaWYgaGUgd2Fzbid0IHJpZ2h0ISkKICAgCjIwMDEtMDktMTQgMDg6MDEgIGR0czEyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW46CgogICBBZGQgdGVzdCBmb3IgPG5ldGluZXQvaXBfaWNtcC5oPgogICAKMjAwMS0wOS0xNCAwNzo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgaXBBZGRyLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYywKICAgdmFyX3JvdXRlLmM6CgogICBXcmFwIHZhcmlvdXMgI2luY2x1ZGVzIHdpdGggYXBwcm9wcmlhdGUgI2lmIEhBVkVfWFhYX0ggZGVjbGFyYXRpb25zCiAgICh3aGVyZSB0aGlzIGhhcyBub3QgYWxyZWFkeSBiZWVuIGRvbmUpLgogICAKMjAwMS0wOS0xMSAxNDo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuYywKICAgbWVtb3J5X2ZyZWVic2QyLmgsIG1lbW9yeV9uZXRic2QxLmMsIG1lbW9yeV9uZXRic2QxLmgsCiAgIG1lbW9yeV9zb2xhcmlzMi5jLCBtZW1vcnlfc29sYXJpczIuaCwgdm1zdGF0LmMsIHZtc3RhdC5oLAogICB2bXN0YXRfYnNkaTQuYywgdm1zdGF0X2JzZGk0LmgsIHZtc3RhdF9mcmVlYnNkMi5jLAogICB2bXN0YXRfbmV0YnNkMS5jLCB2bXN0YXRfc29sYXJpczIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IHRoZSBPSUQgZGVmaW5lcyBhcmUgb25seSBpbiBvbmUgcGxhY2UuIE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgogICAKMjAwMS0wOS0xMSAxNDo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYzoKCiAgIEhlYWRlciByZW9yZGVyaW5nIHRvIGFsbG93IGRtYWxsb2MgdG8gd29yay4KICAgCjIwMDEtMDktMTEgMTQ6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jOgoKICAgRml4IGEgbWlzcGxhY2VzIDsgaW4gYSBsb29wLgogICBUaGFua3MgdG8gTWFsYSBSYW1ha3Jpc2huYW4gPG1hbGFAcm91dGVzY2llbmNlLmNvbT4KICAgYW5kIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciA8anNmQEludGVyRmFjZS1BRy5jb20+CiAgIAoyMDAxLTA5LTEwIDExOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjaGFuZ2UgaW50ZXJmYWNlIGNvdW50aW5nIHRvIGhhcHBlbiBtb3JlIGZyZXF1ZW50bHkgdG8gZGV0ZWN0IG5ldyBjYXJkcy4KICAgICAtIHNlZSBidWcgIzQ1NzI5MAogICAKMjAwMS0wOS0xMCAxMToxMSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC44LCBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1QIHRvIHVzYWdlIGl0IHByaW50cyB0byBzdGRlcnIgKGJ1ZyAjNDU5MzcyKQogICAKMjAwMS0wOS0xMCAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgZml4IHdoaXRlc3BhY2UgcGFyc2luZyBidWcgcmVwb3J0ZWQgaXQgYnVnICM0NTcyNjcuCiAgIAoyMDAxLTA5LTEwIDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGFwcGx5IGZyZWVic2Qgc3BlY2lmaWMgcGF0Y2ggZnJvbSBidWcjNDU1OTI0IHRvIGZpeCB2bXN0YXQncyBzd2FwIHJlcG9ydC4KICAgCjIwMDEtMDktMTAgMTA6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgVXNlIGEgbW9yZSBwb3J0YWJsZSBEQlBSVCBtYWNyby4KICAgCjIwMDEtMDktMTAgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBSb3dTdGF0dXMgdmFsdWUgY2hlY2tzIG1lbnRpb25lZCBpbiBidWcjNDQ5NTAyCiAgIAoyMDAxLTA5LTA0IDA3OjIxICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYWRkIG1pc3NpbmcgYnJlYWs7IGFmdGVyIHByb2Nlc3NpbmcgLVAgb3B0aW9uLCBub3RlZCBieSBCb3RvbmQKICAgICAgIFRhcm5heSAoc2VlIHBhdGNoICM0NTgzMjcpCiAgIAoyMDAxLTA4LTMxIDEzOjE5ICBuYmEKCiAgICogbWlicy86IERJU01BTi1TQ1JJUFQtTUlCLnR4dCwgTWFrZWZpbGUubWliLCBSRUFETUUubWlicywgcmZjbGlzdCwKICAgc21pc3RyaXA6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9uIG9mIERJU01BTi1TQ1JJUFQtTUlCLCBhbmQgYSBmZXcgY29zZXRpYyBjaGFuZ2VzCiAgIHRvIHNtaXN0cmlwIGV0IGFsLgogICAKMjAwMS0wOC0zMSAxMzoxOCAgbmJhCgogICAqIGx0Y29uZmlnOgoKICAgVXBkYXRlIHRvIGxpYnRvb2wgMS40LiBUaGlzIGVuc3VyZXMgdGhhdCBtYWtlIGluc3RhbGwgd2lsbCB3b3JrIGZvciBOZXRCU0QKICAgCjIwMDEtMDgtMzEgMTM6MTcgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIFVwZGF0ZSB0byBsaWJ0b29sIDEuNC4gVGhpcyB3aWwgZW5zdXJlIHRoYXQgbWFrZSBpbnN0YWxsIHdvcmsgb24gTmV0QlNECiAgIAoyMDAxLTA4LTI4IDE1OjA0ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBhIGJhZCBmaXgKICAgCjIwMDEtMDgtMjggMTU6MDMgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmg6CgogICBDKysgYnJhY2tldCB0aGUgaW5zdGFsbGVkIHNnZW50IGhlYWRlcnMKICAgCjIwMDEtMDgtMjggMDc6MzUgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgRml4IGEgbWFsZm9ybWVkIG11bHRpLWxpbmUgc3RyaW5nCiAgIAoyMDAxLTA4LTI4IDAzOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSA8dGNwZC5oPiBpZiB1c2luZyBsaWJ3cmFwLCBub3RlZCBieSBOYXRoYW4KICAgICAgIE5ldWxpbmdlciAocGF0Y2ggIzQ1MzgzMSkuCiAgIAoyMDAxLTA4LTI4IDAyOjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNyAyMjoxNSAgbmJhCgogICAqIG1hbi86IHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIEZpeCBzb21lIHBsYWNlcyB3aGVyZSBhY3R1YWwgbGluZXMgc3RhcnRlZCB3aXRoIGEgcGVyaW9kLgogICAKMjAwMS0wOC0xNyAxNToxMiAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEZpeCBtaXNzcGVsbGVkIG1hbiBwYWdlIG5hbWUgKHNubXBlcnJvciA9PiBzbm1wX3BlcnJvcikKICAgCjIwMDEtMDgtMTcgMTU6MDkgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBtaWJmZXRjaDoKCiAgIElBTkEgaGFzIG1vdmVkIHRoZWlyIG1pYnMgaW50byBhbiBpYW5hLm1pYiBkaXJlY3RvcnkuCiAgIEZpeCBSRkMgbnVtYmVyIGZvciBSTU9OLU1JQi4KICAgTWFrZSAibWFrZSBhbGxtYWlicyIgZXh0cmFjdCBtaWJzIHRvIGFub3RoZXIgZGlyZWN0b3J5LgogICAKMjAwMS0wOC0xNyAxNTowMyAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFlldCBhbm90aGVyIHVwZGF0ZSBmcm9tIGZ0cC5nbnUub3JnCiAgIAoyMDAxLTA4LTE3IDE0OjA5ICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jOgoKICAgQWRkIHNvbWUgbmVlZGVkIGVycm9yIGNoZWNraW5nIHRvIHRoZSB1aWQvZ2lkIHBhcnNpbmcgY29kZS4KICAgQWxsb3cgc3ltYm9saWMgdWlkL2dpZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCiAgIAoyMDAxLTA4LTE3IDE0OjA3ICBuYmEKCiAgICogRkFROgoKICAgQWRkIGEgbWlzc2luZyBhcmd1bWVudCB0byB0aGUgc25tcHRyYXAgZXhhbXBsZXMuCiAgIAoyMDAxLTA4LTA3IDE0OjU1ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvbWliLmM6CgogICBUaW1ldGlja3MgYXJlIHVuc2lnZWQhIFRoYW5rcyB0byBKb3NoIFdpbG1lcyA8am9zaC11Y2RAaGl0Y2hoaWtlci5vcmc+CiAgIAoyMDAxLTA4LTA3IDE0OjQyICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ2hhbmdlcyB0byBhbGxvdyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIG92ZXJyaWRlIHNubXAuY29uZiBzZXR0aW5ncy4KICAgCjIwMDEtMDgtMDcgMTQ6MDIgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBvZiBJQU5BaWZUeXBlLU1JQi4KICAgQWRkIHJmYyAzMTQ0IElOVEVSRkFDRVRPUE4tTUlCIHRvIHJmY2xpc3QuCiAgIAoyMDAxLTA4LTA3IDE0OjAwICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgdmVyc2lvbiBmcm9tIGZ0cC5nbnUub3JnCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfZXJyb3IuMywKICAgbWFuL3NubXBfcGVycm9yLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wY21kLjEsCiAgIG1hbi9zbm1wdHJhcGQuODoKCiAgIEEgYnVuY2ggb2YgbWlub3IgZml4ZXMgdG8gdXNhZ2UgbWVzc2FnZXMgYW5kIG1hbnVhbCBwYWdlcy4KICAgCjIwMDEtMDgtMDcgMTM6NTYgIG5iYQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBGaXggcGFyc2luZyBvZiBvaWQgdmFsdWVzIGZvciBzZXQKICAgCjIwMDEtMDgtMDcgMDc6MDkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggZm9yIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gbG9nZmlsZSBhcmd1bWVudCBoYW5kbGluZywKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyAoYnVnICM0NDgyNDMpLiAgQWxzbyB1c2UgYSBsYXJnZSBlbm91Z2ggYnVmZmVyCiAgICAgICB0byBoYW5kbGUgZmlsZW5hbWVzIG9mIGxlbmd0aCBQQVRIX01BWCAoaWYgcG9zc2libGUpLgogICAKMjAwMS0wNy0yNiAwMTo0MCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBpbml0aWFsaXNlIGJ1ZmZlcnMgdG8gemVybyBpbiBoYW5kbGVfd3JhcF9mbXQsIHRvIGF2b2lkIGdhcmJhZ2UgaW4KICAgICAgIGRpc3BsYXkgb2Ygc2VjdXJpdHkgcGFyYW1ldGVycywgYXMgbm90ZWQgYnkgV2lsbGlhbSBGcmF1ZW5ob2ZlcgogICAgICAgKGJ1ZyAjNDM3MjMxKS4KICAgCjIwMDEtMDctMjMgMTA6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGNhcmVmdWxseSBjb25zdHJ1Y3QgdG1wIGZpbGUgbmFtZXMuCiAgIAoyMDAxLTA3LTIzIDEwOjUzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICB1c2Ugc2V0Z3JvdXBzIHdoZW4gYXZhaWxhYmxlLgogICAKMjAwMS0wNy0xMSAwNzozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmg6CgogICBhZGQgTkVUV09SSy1TRVJWSUNFUy1NSUIgdG8gbWliIHJlcXVpcmUgbGlzdAogICAKMjAwMS0wNy0wOSAxMToxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgZml4IHRyYXBzZXNzIHBhcnNpbmcgc28gYXMgdG86CiAgICAgLSBzZXQgdGhlIGRlZmF1bHQgcG9ydCB0byAxNjIKICAgICAtIGRvbid0IGZyZWUgbWVtb3J5IHBhc3NlZCB0byBzbm1wX3BhcnNlX2FyZ3MoKSBzaW5jZQogICAgICAgc25tcF9wYXJzZV9hcmdzIGlzIGJyb2tlbiBhbmQgbmVlZHMgdG8gY29weSBtZW1vcnkgcmF0aGVyIHRoYW4KICAgICAgIGp1c3QgbWFrZSB1c2Ugb2YgaXQuCiAgIAoyMDAxLTA2LTI3IDE1OjQ4ICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBTaW1wbGUgZml4IHRvIHRyYXBzZXNzIGFyZ3VtZW50IGxpc3QKICAgCjIwMDEtMDYtMjUgMDg6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzdXBwb3J0ICdtaWJzICIiJy4KICAgCjIwMDEtMDYtMjIgMTM6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEFsbG93IGludGVyZmFjZSBzbm1wZC5jb25mIHRva2VucyB0byBjb21wbGV0ZWx5IG92ZXJyaWRlIHN5c3RlbQogICB2YWx1ZXMuICBbYnVnIzQyNjk3NV0KICAgCjIwMDEtMDYtMjIgMTE6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBkZWZpbmUgdWxvbmdfcmV0CiAgIAoyMDAxLTA2LTIyIDAxOjQ0ICBkdHMxMgoKICAgKiBGQVEsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgSW5jbHVkZSBhIHdhcm5pbmcgb2YgdGhlIGV4cGVyaW1lbnRhbCBuYXR1cmUgb2YgQWdlbnRYIGluIHRoZSBtYW4gcGFnZSwKICAgYW5kIHVwZGF0ZSB0aGUgRkFRIHRvIHJlZmxlY3QgdGhlIGZ1bGxlciBpbnRlZ3JhdGlvbiBvZiB0aGlzIHN1cHBvcnQuCiAgIAoyMDAxLTA2LTIxIDE1OjIyICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIEVsaW1pbmF0ZSBsb25nIGxvbmcgdmFyaWFibGVzCiAgIAoyMDAxLTA2LTIxIDE1OjIyICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFdhcm4gYWJvdXQgZGVwcmVjYXRlZCAtYiAtdyBhbmQgLWkgb3B0aW9ucy4KICAgCjIwMDEtMDYtMjEgMTU6MTUgIG5iYQoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZiwgc25tcHNldC4xLCBzbm1wd2Fsay4xOgoKICAgVXBkYXRlIHRpbWUgc3RhbXBzCiAgIAoyMDAxLTA2LTIxIDE1OjA5ICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIEFkZCAtbSBhbmQgLU0gb3B0aW9ucyB0byBoZWFkZXIuIFVwZGF0ZSBTRUUgQUxTTyB0byByZWZlcmVuY2Ugc25tcGNtZAogICBhbmQgUkZDIDI1NzgtODAgaW4gcGxhY2Ugb2YgMTE1NQogICAKMjAwMS0wNi0yMSAxNTowMSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCBwYXJzaW5nIG9mIHh4IC4uLjo6PSB7IHl5IH0KICAgCjIwMDEtMDYtMjEgMTA6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIHR5cG9zIChJT0QgLT4gT0lEKQogICAKMjAwMS0wNi0yMSAxMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIG1lbnRpb24gIm1hc3RlciBhZ2VudHgiCiAgIC0gZml4IGNvbmZpZyBmaWxlIHJlLXJlYWRpbmcgb2lkLgogICAKMjAwMS0wNi0yMSAxMDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgbWFrZSBzeXNjb250YWN0IGFuZCBzeXNsb2NhdGlvbiBhY2NlcHQgIiIgc3RyaW5ncy4KICAgCjIwMDEtMDYtMjEgMDk6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSBBcHBsaWVkIGFyZyBkb2N1bWVudGF0aW9uIHBhdGNoIGZyb20gRGF2aWQgRWlzbmVyCiAgIAoyMDAxLTA2LTE0IDIzOjE5ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgRG9jdW1lbnQgLW4gb3B0aW9uCiAgIAoyMDAxLTA2LTEyIDE1OjE0ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBQcm9wZXJseSBkZXRlY3QgYW5kIGRpYWdub3NlIGJhZCBib29sZWFuIGFuZCBpbnRlZ2VyIGNvbmZpZ3VyYXRpb24gdmFsdWVzCiAgIAoyMDAxLTA2LTEyIDE1OjEyICBuYmEKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICBzbm1wc3RhdHVzLmMsIHNubXB0cmFwLmMsIHNubXB1c20uYywgc25tcHZhY20uYywgc25tcHdhbGsuYzoKCiAgIFByb3Blcmx5IGRpYWdub3NlIGJhZCAtQyBvcHRpb25zCiAgIAoyMDAxLTA2LTEyIDA3OjI0ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXggJ3VucmVnaXN0ZXJfY29uZmlnX2hhbmRsZXInIHRvIGhhbmRsZSB0YWdzIG90aGVyCiAgIHRoYW4gdGhlIGZpcnN0IGluIHRoZSBsaXN0LiAgKFRoYW5rcyB0byBQYXVsIFNlcmljZSkuCiAgIAoyMDAxLTA2LTExIDE1OjQ0ICBuYmEKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMToKCiAgIEFkZCBhbiBvcHRpb25zICgtQ2MpIHRvIHNubXB3YWxrIHRoYXQgd2lsbCB2YWxpZGF0ZSB0aGF0IHRoZSByZXR1cm5lZCBvYmplY3RzCiAgIGFyZSBpbmRlZWQgbGV4aWNvZ3JhcGhpY2FsbHkgaW5jcmVhc2luZy4KICAgCjIwMDEtMDYtMTEgMTU6NDMgIG5iYQoKICAgKiBhcHBzL3NubXBzZXQuYywgbWFuL3NubXBzZXQuMSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWxsb3cgYSBzaW1wbGVyIHNubXBzZXQgbm90YXRpb24gd2hlbiBNSUIgZGF0YSBhcmUgbG9hZGVkOiBVc2luZyAnPScgZm9yCiAgIHR5cGUgdHlwZSB3aWxsIGluZmVyIGl0IGZyb20gdGhlIE1JQi4KICAgCjIwMDEtMDYtMTEgMTU6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBGaXggc29tZSBsb25nIHN0YW5kaW5nIGJ1Z3Mgd2hlbiBzZXZlcmFsIE1JQiBmaWxlcyBkZWZpbmUgdGhlIHNhbWUgb2JqZWN0cwogICB3aXRoIGRpZmZlcmVudCBuYW1lcy4gSG9wZWZ1bGx5IHRoZSByZXN1bHRzIHdpbGwgYmUgY29uc2lzdGVudCBub3cuCiAgIAoyMDAxLTA2LTExIDEyOjEyICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9pbnQ2NC5jOgoKICAgQW5vdGhlciB0cnkgYXQgQ291bnRlcjY0IHByb2JsZW1zLCB0aGFua3MgdG8gSmFzb24gR2xvdWRvbiA8c25tcEBnbG91ZG9uLmNvbT4KICAgCjIwMDEtMDYtMTEgMTE6NTIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBmb3IgYSBtaXNzaW5nIDAtYnl0ZSB0byB0ZXJtaW5hdGUgY29tbXVuaXR5IHN0cmluZy4KICAgVGhhbmtzIHRvICJLVUJPVEEsVGFrYXlhIiA8dGFrYXlhQHBvLm50dHMuY28uanA+LgogICAKMjAwMS0wNi0wNiAyMTozOCAgbmJhCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFVzZSA8dXRtcHguaD4gaWYgYXZhaWxhYmxlICh0byBmaXggY291bnRpbmcgdXNlcnMgZm9yIFNvbGFyaXMpCiAgIAoyMDAxLTA2LTA2IDIxOjMzICBuYmEKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgTWVudGlvbiAtcyBhbmQgLVAgcGlkZmlsZSBhcmd1bWVudHMKICAgCjIwMDEtMDYtMDYgMjE6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeCBzZW5kaW5nIG9mIHRyYXBzIHdpdGhvdXQgdmFyYmluZHMKICAgCjIwMDEtMDYtMDYgMjE6MzEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBNb3JlIG1lYW5pbmdmdWwgYXJndW1lbnRzIHRvIHNldFBlcnJvcnN0YXR1cyAodHJ1ZSBmaWxlIG5hbWVzKQogICAKMjAwMS0wNS0xNyAxMjozNiAgbmJhCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggYSBUcnVseSBTdHVwaWQgQnVnIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFIDxhYmVrYXRzdUBjeXNvbHMuY29tPgogICAKMjAwMS0wNS0wNCAwOTo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgbCBmcm9tICVsbGQgcHJpbnRmIHN5bnRheAogICAKMjAwMS0wNS0wNCAwNzowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnNhbGwgbWliX21vZHVsZV9jb25maWcuaAogICAKMjAwMS0wNS0wMyAxMDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBzbm1wLXRjLmggdG8gaW5zdGFsbCBsaXN0CiAgIAoyMDAxLTA1LTAyIDA3OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQWRkIC1UIGZsYWcgdG8gdXNhZ2Ugb3V0cHV0LgogICAKMjAwMS0wNS0wMSAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEZpeCB1c2Ugb2YgYSAtMSBhc3NpZ25lZCB0byBhIHVfbG9uZyBhcyBhIGZhaWx1cmUgY2hlY2tpbmcgY2FzZS4KICAgCjIwMDEtMDQtMjMgMTc6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IHdhbGsgcHJvYmxlbSBvbmNlIGFuZCBmb3IgYWxsLgogICAKMjAwMS0wNC0xNyAxMjoyOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEdldCBkYXRhIGZvciBoclNXUnVuUGVyZlRhYmxlIGZvciBjeWd3aW4gdW5kZXIgTlQgKG9yIGJldHRlcikKICAgCjIwMDEtMDQtMTcgMTE6MzMgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXBkYXRlIHRvIGEgcmVjZW50IHZlcnNpb24gb2YgY29uZmlnLmd1ZXNzL2NvbmZpZy5zdWIuIFVwZGF0ZSBjb25maWd1cmUKICAgdG8gaGFuZGxlIHRoZSBuZXcgTmV0QlNEIHZhcmlhbnQgdGhhdCBpbmNsdWRlIHRoZSBvYmplY3QgZm9ybWF0LgogICAKMjAwMS0wNC0xMiAwNToxMiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQmV0dGVyIGZpeCBmb3IgYnVnICM0MTQ4NTUgZnJvbSBhcmFqZXNoCiAgIEhhbmRsZXMgbm9uLXJlcGVhdGVycz0wIGFzIHdlbGwsIGFuZCBhdm9pZHMgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0wNC0xMSAwNjowMSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSGFuZGxlIEdldEJ1bGsgcmVxdWVzdHMgd2l0aCBtYXgtcmVwZXRpdGlvbnM9MCBwcm9wZXJseSAoYnVnICM0MTQ4NTUpCiAgIAoyMDAxLTA0LTEwIDA5OjMzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgZml4ZWQgc2VnZmF1bHQgd2hlbiByb3cgaGFzIGhvbGVzLgogICAKMjAwMS0wNC0wNiAxNjoyMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gQWRkZWQgZG9jdW1lbnRvdGlvbiBmb3IgLU90CiAgIAoyMDAxLTA0LTA2IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICB0cmFwcy9pbmZvcm1zIHJldmVyc2VkCiAgIAoyMDAxLTA0LTA1IDA5OjM0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZnJvbSBzbm1wX29pZF9taW5fY29tcGFyZS4KICAgCjIwMDEtMDQtMDUgMDk6MTMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDQtMDUgMDg6MjEgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIG1hbGxvYyB0byBkZWNyZWFzZSBzdGFjayBzaXplIGluIHNubXBkX3BhcnNlX2NvbmZpZ190cmFwc2Vzcy4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgRXh0ZW5kIHJlY2VudCAncGFzcycgY2hhbmdlcyB0byAncGFzc19wZXJzaXN0Jy4gIChUaGFua3MsIE1pa2UhKQogICAKMjAwMS0wNC0wNSAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICAKMjAwMS0wNC0wNCAxNDo1NiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjEgKQogICAKMjAwMS0wNC0wNCAxNDo1NSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICBDaGFuZ2Ugd29yZGluZyB0byBzYXkgNC4yIGxpbmUgaXMgdGhlIGxhc3QgdG8gdXNlIHRoZSB1Y2Qtc25tcCBuYW1lLgogICAKMjAwMS0wNC0wNCAxNDo1MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4yIC0+IFY0LjIuMQoKMjAwMS0wNC0wNCAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgZml4IG1pc3NpbmcgdmFyaWFibGUgb24gc29sYXJpcyAyLjYKICAgCjIwMDEtMDQtMDQgMTQ6MDIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHVzZSBraWxsIC1URVJNIGluc3RlYWQgb2Yga2lsbCAtU0lHVEVSTSBmb3IgcG9ydGFiaWxpdHkgKGJyZWFrcyBvbiBzb2xhcmlzKS4KICAgCjIwMDEtMDQtMDQgMTI6MzkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ2xlYW51cCBkZWJ1ZyBtZXNzYWdlcywgYnVpbGQuCiAgIAoyMDAxLTA0LTA0IDA5OjE4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIEZpeCBuZXR3b3JrIGJ5dGUgb3JkZXIgZm9yIElwQWRkcmVzcyBkaXNwbGF5ZWQuCiAgIAoyMDAxLTA0LTA0IDA4OjUwICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBxdWlldCBleGl0IG9uIFNJR1RFUk0vU0lHSU5ULCBzYW1lIGFzIHNubXBkLgogICAKMjAwMS0wNC0wNCAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaDoKCiAgIGZpeCBmb3IgYXV0b19ubGlzdCBib2d1cyBkZWZpbml0aW9ucyBmb3IgbWFjaGluZXMgd2l0aG91dCBubGlzdC4KICAgCjIwMDEtMDQtMDQgMDg6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICB1cGRhdGUgdG8gd2hlbiBhZ2VudCByZW1vdmVzICJjcmVhdGVVc2VyIiBkaXJlY3RpdmVzLgogICAKMjAwMS0wNC0wNCAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzQxMjA4MDogYWRkIGZyZWVic2Q1IHRvIG1vZHVsZSBpbmNsdWRlIGxpc3QuCiAgIAoyMDAxLTA0LTA0IDA4OjEyICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgRG9jdW1lbnQgaG93IHRvIGVuYWJsZSB0aGUgQWdlbnRYIGZhY2lsaXR5IGluIHRoZSBtYXN0ZXIgYWdlbnQuCiAgIAoyMDAxLTA0LTA0IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCBidWcgIzQxMTkxNzogY2hhbmdlIHdhbGsgZW5kIGNvbmRpdGlvbiBhcyBzdWdnZXN0ZWQgYnkgc3VibWl0dGVyLgogICAKMjAwMS0wNC0wNCAwNzo0MyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDQgMDc6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBGaXggdHlwbyBpbiBjYXN0IChtaXNzaW5nICdzdHJ1Y3QnKQogICAKMjAwMS0wNC0wNCAwNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIGEgbGFyZ2VyIG1hbGxvY2VkIGJ1ZmZlciB3aGVuIGRlY29kaW5nIGEgbGFyZ2UgaW5jb21pbmcgZW5jcnlwdGVkIG1lc3NhZ2UuCiAgIAoyMDAxLTA0LTA0IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIExpbWl0IHNpemUgb2YgaGV4IG1lc3NhZ2VzIHRvIDEvNXRoIGJ1ZmZlciBzaXplICh0byBiZSBzYWZlKS4KICAgCjIwMDEtMDQtMDQgMDc6MjQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAtIGNhbGwgZXh0ZXJuYWwgc2lnbmFsIGhhbmRsZXJzIGJlZm9yZSBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSwKICAgICAgcmF0aGVyIHRoYW4gYWZ0ZXIgY2FsbGluZyBzbm1wX3NlbGVjdF9pbmZvKCkgYnV0IGJlZm9yZSBzZWxlY3QoKS4KICAgICAgVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBwcm9ibGVtIHRoYXQgY291bGQgYXJpc2UgaWYgYSBzaWduYWwgaGFuZGxlcgogICAgICBjbG9zZWQgYSBzZXNzaW9uLCB3aGljaCB3b3VsZCBjYXVzZSBzZWxlY3QoKSB0byByZXR1cm4gLTEgd2l0aAogICAgICBFQkFERiwgYW5kIHRodXMgdGVybWluYXRlIHRoZSBhZ2VudC4KICAgCjIwMDEtMDQtMDQgMDY6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEVuc3VyZSB0aGF0IGNoZWNraW5nIGZvciAnc3RhdHZmcycgaXMgZG9uZSBjb25zaXN0ZW50bHkKICAgCjIwMDEtMDQtMDQgMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIGVuc3VyZSB0aGF0ICdleGVjX2NvbW1hbmQnIGlzIHVzZWQgY29uc2lzdGVudGx5IHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiBleGVjdgogICAKMjAwMS0wNC0wNCAwNjo0NSAgZHRzMTIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAyMjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggbWF4aW11bSBlbmNyeXB0ZWQgcGFja2V0IGxlbmd0aCBzdXBwb3J0IGZvciByZXZlcnNlIGVuY29kZWQgcGFja2V0cy4KICAgCjIwMDEtMDQtMDMgMTg6MDcgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQ6CgogICBmaXggcndjb21tdW5pdHkKICAgCjIwMDEtMDQtMDMgMTY6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL3dlc3Jlc3RhcnQ6CgogICByZW1vdmUgb2xkIHVudXNlZCBzY3JpcHQKICAgCjIwMDEtMDQtMDMgMTY6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL29wZXJhdGlvbjoKCiAgIEFkZCBzbm1wY29uZiBkaXJlY3RpdmUgc3VwcG9ydCBmb3IgdGhlIG5ldyAibWFzdGVyIiB0b2tlbi4KICAgCjIwMDEtMDQtMDMgMTY6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgRml4IGJ1ZyBpbiBtZW51cyBmb3IgY29uZmlndXJhdGlvbiBmaWxlcyBjb250YWluaW5nIG9ubHkgImdyb3VwcyIuCiAgIAoyMDAxLTA0LTAzIDE2OjQwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBDaGFuZ2UgbXkgbmFtZSAtPiBuZXQtc25tcCBkZXZlbG9wZXJzLgogICAKMjAwMS0wNC0wMyAxNTozNiAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIG1lbnRpb24gc25tcGNvbmYKICAgCjIwMDEtMDQtMDMgMTU6MjggIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHVybCBjaGFuZ2VzIG1vc3RseS4KICAgCjIwMDEtMDQtMDMgMTU6MjggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICA0LjIuMSB1cGRhdGUgKHBsZWFzZSBjaGVjaykuCiAgIAoyMDAxLTA0LTAzIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBmdHAgc2l0ZSB1cGRhdGUuCiAgIAoyMDAxLTA0LTAzIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZGVkIGFnZW50eCB0byBkZWZhdWx0IG1vZHVsZXMgdG8gY29tcGlsZSBpbgogICAKMjAwMS0wNC0wMyAxMDoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgYSBjb21tZW50IGF0IHRoZSBlbmQgb2YgdGhlIG1pYjJjIG91dHB1dCBleHBsYWluaW5nIHRoYXQgaXRzCiAgIG1lcmVseSBhIHRlbXBsYXRlLgogICAKMjAwMS0wNC0wMyAwODoyNyAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0LCBGQVEsIFBPUlRJTkcsIFJFQURNRSwgUkVBRE1FLmFnZW50eDoKCiAgIFdlYiBwYWdlL2Z0cCBzaXRlIHVwZGF0ZXMuICBVc2VzIHd3dy5uZXQtc25tcC5vcmcgZXZlcnl3aGVyZSBub3cuCiAgIAoyMDAxLTA0LTAzIDA2OjI0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIEZpeCBzaWduZWQvdW5zaWduZWQgY29tcGFyZS4KICAgCjIwMDEtMDQtMDMgMDY6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgUGx1ZyBmaWxlLWRlc2NyaXB0b3IgbGVhayB3aGVuIHVzaW5nIGNhY2hlZCBkYXRhLiAgKEJ1ZyM0MTIwMDApCiAgIAoyMDAxLTA0LTAyIDIzOjIyICBuYmEKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgRml4IGFuIGluY29tcGxldGVseSBpbml0aWFsaXplZCB2YXJpYWJsZQogICAKMjAwMS0wNC0wMiAyMzoyMSAgbmJhCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgVGhlIGFuc3dlcnMgZm9yIHRoZSAibG9hZCB3aGljaCBmaWxlcyIgbWVudSBhcmUga2VwdCBzZWNyZXQgZnJvbSB0aGUgY29kZQogICB0aGF0IGxvYWRzIHRoZSBmaWxlcyAuLi4uIGZpeGVkLgogICAKMjAwMS0wNC0wMiAyMDowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmYuZGlyL3NubXB0cmFwZC5jb25mL2Zvcm1hdHRpbmcsCiAgIHNubXBjb25mLmRpci9zbm1wdHJhcGQuY29uZi90cmFwaGFuZGxlOgoKICAgQWRkZWQgc25tcHRyYXBkIGNvbmZpZ3VyYXRpb24gZmlsZSBkaXJlY3RpdmVzIHRvIHNubXBjb25mLgogICAKMjAwMS0wNC0wMiAxMDowOCAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzIHRvIHJlZmxlY3QKICAgICAgY3VycmVudCBiZWhhdmlvdXIKICAgCjIwMDEtMDQtMDIgMDk6NTggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCjIwMDEtMDQtMDIgMDg6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFVzZSB0aGUgJ3N0YW5kYXJkJyBjb25maWcgaGFuZGxlciByZWdpc3RyYXRpb24gcm91dGluZSwKICAgYW5kIHJlY29nbmlzZSB0aGUgY29uZmlnIHNldHRpbmcgJ21hc3RlciBhbGwnCiAgIAoyMDAxLTA0LTAyIDA2OjUzICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggc29tZSBtaXNzaW5nIHF1b3Rpbmcgb24gLklQIHBhcmFtZXRlcnMKICAgCjIwMDEtMDMtMzAgMDg6MDUgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLmFnZW50eCwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICBtb3ZlZCBhZ2VudHggUkVBRE1FIHRvIHRvcAogICAKMjAwMS0wMy0zMCAwNzoyMiAgZHRzMTIKCiAgICogRkFROgoKICAgVHlwbyBpbiBBZ2VudFggUkVBRE1FIGZpbGVuYW1lCiAgIAoyMDAxLTAzLTMwIDA3OjIwICBkdHMxMgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgUHJvdmlkZSAnbWFzdGVyJyBjb25maWcgZGlyZWN0aXZlIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgdG8KICAgYWN0aXZhdGUgZXh0ZW5zaWJsZSBzdWJhZ2VudCBzdXBwb3J0LgogICAgIEluaXRpYWxseSByZXN0cmljdGVkIHRvIEFnZW50WCBzdXBwb3J0IG9ubHkuCiAgIAoyMDAxLTAzLTMwIDAzOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIFVwZGF0ZSB0byByZWZsZWN0IHRoZSBpbmNyZWFzZWQgbWF0dXJpdHkgb2YgdGhlIEFnZW50WCBpbXBsZW1lbnRhdGlvbi4KICAgCjIwMDEtMDMtMzAgMDM6MzQgIGR0czEyCgogICAqIEZBUToKCiAgIFR3ZWFrZWQgdmFyaW91cyBlbnRyaWVzLCBhbmQgYWRkZWQgYSBmZXcgbmV3IG9uZXMuICBHZW5lcmFsIFNoaWVsZCBtZWRkbGluZy4KICAgCjIwMDEtMDMtMzAgMDE6MDAgIGR0czEyCgogICAqIFJFQURNRToKCiAgIEFkZCBwcm9taW5lbnQgd2FybmluZyByZWdhcmRpbmcgdWNkLXNubXAgPT4gbmV0LXNubXAgc3dpdGNoLgogICAKMjAwMS0wMy0zMCAwMDo0NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGludGVycHJldGF0aW9uIG9mICJwdXJlIG51bWVyaWMiIHBlZXJuYW1lIHN0cmluZ3MgKGkuZS4gbGlzdGVuIG9uIHRoZQogICAgIHNwZWNpZmllZCBwb3J0IG9uIGFsbCBpbnRlcmZhY2VzKSAtIHByb2JsZW0gaWRlbnRpZmllZCBieSBNYWxhIFJhbWFrcmlzaG5hbi4KICAgCjIwMDEtMDMtMzAgMDA6MDQgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBsYWNlIGF0b2kvYXRvbCB3aXRoIHN0cnRvKHUpbCB3aGljaCBoYXMgYmV0dGVyIG91dC1vZi1yYW5nZSByZXR1cm5zLgogICBUaGlzIGlzIG5vdCBhIHBlcmZlY3Qgc29sdXRpb24sIGJ1dCBpdCBpcyBiZXR0ZXIgLi4uCiAgIAoyMDAxLTAzLTI5IDIxOjQzICBoYXJkYWtlcgoKICAgKiBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMTQ6MzQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBtaW5vciBmb3JtYXR0aW5nLgogICAKMjAwMS0wMy0yOSAxNDozMyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIFVtLCBnb3QgdGhlIHllYXIgcmlnaHQgdGhpcyB0aW1lLgogICAKMjAwMS0wMy0yOSAxNDozMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHVwZGF0ZSBmb3IgMjAwMTogYWRkZWQgbXkgcmVxdWlyZWQgTkFJIEJTRCBjb3B5cmlnaHQuCiAgIAoyMDAxLTAzLTI5IDA4OjIzICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1lcmdlIGNoYW5nZSBmcm9tIG1haW4gYnJhbmNoIChyZXR1cm5fdmFsdWU9MSBzdGF0ZW1lbnQpLgogICAKMjAwMS0wMy0yOSAwODoyMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFkZCB2YWNtX2lzX2NvbmZpZ3VyZWQuCiAgIAoyMDAxLTAzLTI4IDIyOjEyICBuYmEKCiAgICogbWlicy86IHJmY2xpc3QsIHJmY21pYnMuZGlmZjoKCiAgIEFkZCBQcmludGVyLU1JQiB0byB0aGUgcmZjbGlzdCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHBhdGNoLgogICAKMjAwMS0wMy0yOCAxMzowNiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFByb3Blcmx5IGlnbm9yZSBub24tcmVzcG9uc2UgUERVJ3Mgd2hlbiBkb2luZyBhc3luYyB0cmFuc2FjdGlvbi4KICAgCjIwMDEtMDMtMjggMTM6MDQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jOgoKICAgRml4IGluZGV4IGhhbmRsaW5nIHRvIHByb3Blcmx5IGFjY2VwdCBpbmRleGluZyB3aXRoIFRpbWVUaWNrcy4KICAgSW1wbGVtZW50IC1JciB0byBkaXNhYmxlIGluZGV4IGNoZWNrcy4KICAgCjIwMDEtMDMtMjggMDY6MjAgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4xLnByZTIgKQogICAKMjAwMS0wMy0yNyAxMDoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2xvZyB3aXRoICVzIHRvIHByZXZlbnQgJSBleHBhbnNpb24gaW4gb2N0ZXQgc3RyaW5ncyBjb250YWluaW5nIGEgJXMuCiAgIAoyMDAxLTAzLTI3IDA1OjM3ICBkdHMxMgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDI6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVzZXQgY291bnQgb2YgYXV0aG9yaXplZCBwZWVycyBvbiBjbG9zZWRvd24uICAoVGhhbmtzIHRvIFZsYWQgVHVuaWspCiAgIAoyMDAxLTAzLTI2IDE4OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oOgoKICAgRml4ZWQgdmFjbSB0byBkcm9wIHYxL3YyYyBwYWNrZXRzIHByb3Blcmx5IHdoZW4gbm8gY29tMnNlYyBlbnRyaWVzIGFyZSBmb3VuZC4KICAgCjIwMDEtMDMtMjYgMTE6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsL2lwZi1tb2QucGw6CgogICBhZGQgdXNhZ2UgY29tbWVudCBhdCB0b3AKICAgCjIwMDEtMDMtMjIgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBOZXcgTUlCIGluIFJGQyAzMDgzOiBET0NTLUJQSS1NSUIKICAgCjIwMDEtMDMtMjIgMTQ6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgcy9jeWd3aW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jOgoKICAgTWFrZSBtb3N0IG9mIHRoZSBob3N0IHJlc291cmNlcyBtaWIgY29tcGlsZSB1bmRlciBDeWd3aW4uIFdlIGNhbiBub3cgZG8KICAgLS13aXRoLW1pYi1tb2R1bGVzPWhvc3QgLS13aXRoLW91dC1taWItbW9kdWxlcz1ob3N0L2hyX25ldHdvcmsKICAgCjIwMDEtMDMtMjIgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGZpeCBoZWFkZXJfc2ltcGxlX3RhYmxlKCkgZm9yIHRvbyBsb25nIHJlcXVlc3RzCiAgIAoyMDAxLTAzLTIyIDA4OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQmFkIFdlczogZmluZCBhbGwgaW5zdGFuY2VzIG9mIGN1dC1uLXBhc3RlIGVycm9ycyBiZWZvcmUgY29tbWl0dGluZy4KICAgCjIwMDEtMDMtMjIgMDg6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBCYWQgV2VzOiBkb24ndCBjYWxsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlICgpcy4gIChhdCBsZWFzdCBpbiBDKS4KICAgCjIwMDEtMDMtMjIgMDc6NDYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBmb3IgbWlub3IgbWVtb3J5IGxlYWsgd2l0aCB0cmFwLXJlbGF0ZWQgdmFyYmluZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKb2huIFZpbGxhbG92b3MgKGFuZCB0aGUgSW50ZWwgU05NUCB0ZWFtKQogICAKMjAwMS0wMy0yMSAxNzoyMiAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJ1Z2ZpeCBmb3IgY3Jhc2ggYXQgc25tcF9zaHV0ZG93biB0aW1lIHdpdGggT1MncyB0aGF0IGNoZWNrIHBvaW50ZXIKICAgdmFsaWRpdHkgKGUuZy4sIEZyZWVCU0QpCiAgIAoyMDAxLTAzLTIxIDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBqb2luIGJyb2tlbiBzbm1wX2xvZyBsaW5lcwogICAKMjAwMS0wMy0yMSAwODoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCAtRiAoSSB0aGluaykKICAgCjIwMDEtMDMtMjEgMDc6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCB2YXJpYWJsZSB0eXBlcyAoaW50IC0+IHNpemVfdCkKICAgCjIwMDEtMDMtMjAgMDg6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHMvbGludXguaDoKCiAgIEZpeCB0aGUgYXRUYWJsZSBhbmQgaXBOZXRUb3BNZWRpYVRhYmxlIGZvciBMaW51eCB0byByZXR1cm4gdGhlIGlmSW5kZXgKICAgCjIwMDEtMDMtMTkgMTM6MTQgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBtYW4vc25tcGRlbHRhLjE6CgogICBNYWpvciBvcHRpb24gcGFyc2luZyBzdXJnZXJ5IHRvIGNhdGhlciBmb3IgdGhlIGdldG9wdCB1c2luZyB2ZXJzaW9uIG9mCiAgIHNubXBfcGFyc2VfYXJncy4gU2VlbXMgdG8gaGF2ZSBiZWVuIGZvcmdvdHRlbiB3aGVuIHRoZSByZXN0IG9mIHRoZSBhcHBzCiAgIHdlcmUgdXBkYXRlZC4KICAgCjIwMDEtMDMtMTkgMTM6MTMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBSZS1vcmRlciBzeXMvY29uZi5oIGFuZCBzeXMvcGFyYW0uaCB0byBtYWtlIEZyZWVCU0QtNSBoYXBweQogICAKMjAwMS0wMy0xNSAxMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIGZpeGVkIGJ1ZyAjNDA1MDAwOiBkcm9wcGVkIHN1cHBvcnQgZm9yIElQT1VUTk9ST1VURVMsIHNpbmNlIG5vCiAgIGNhbGN1bGF0aW9uIG9mIGl0IHNlZW1zIGNsb3NlIHRvIGNvcnJlY3QuCiAgIAoyMDAxLTAzLTE1IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIGZpeCBwYXJ0IDIgb2YgYnVnIDQwNTUxOSBhZGRpbmcgZnVsbHNvY2sgdG8gdWRwaW5lcnJvcnMKICAgCjIwMDEtMDMtMTUgMTM6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgZml4IGJ1ZyAjNDA4Mzg4IHdoZXJlIG1lbW1vdmUgaXMgY2FsbGVkIHdpdGggdG9vIHNob3J0IGEgbGVuZ3RoLgogICAKMjAwMS0wMy0xNSAxMToyMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjEucHJlMSApCiAgIAoyMDAxLTAzLTE1IDAzOjM0ICBqYnBuCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGtpbGwgLVNJR0tJTEwgaXNuJ3QgbGVnYWwgc3ludGF4IG9uIFNvbGFyaXMgb3IgTGludXg7IGNoYW5nZWQgdG8ga2lsbCAtOQogICB3aGljaCBpcyBsaWtlbHkgc2FmZXIKICAgCiAgIGRvbid0IHNldCByZXR1cm5fdmFsdWUgdG8gMSBhZnRlciBraWxsaW5nIHNubXBkLCB3aGljaCBjYXVzZXMgc3B1cmlvdXMKICAgdGVzdCBmYWlsdXJlcwogICAKMjAwMS0wMy0xNCAxNDozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDogbWFrZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGEgcHVibGljIGZuLgogICAKMjAwMS0wMy0xNCAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBpcG5ldHRvbWVkaWEgaW5kZXhpbmcgb24gc29sYXJpcy4KICAgCjIwMDEtMDMtMTQgMTA6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgVXNlIGNvbmZpZy5oLCBkb24ndCB1c2UgdWNkLXNubXAgZGlyZWN0b3J5IHRvIGJ1aWxkIGluIHRoZSBtaWJncm91cCB0cmVlLgogICAKMjAwMS0wMy0xNCAxMDoxOCAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgcXVpZXQgIndoaWNoIiBvdXRwdXQuICBuZXZlciBlbmRpbmcgc2FnYS4uLgogICAKMjAwMS0wMy0xNCAxMDowOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIHF1aWV0IHVuc2lnbmVkIGxvbmcgY29tcGFyZS4KICAgCjIwMDEtMDMtMTQgMTA6MDAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgR2V0IGEgZGVjbCBvZiBpbl9hZGRyX3QgZnJvbSBuZXRpbmV0L2luLmgsIHdoZXJlIG5lY2Vzc2FyeS4KICAgCjIwMDEtMDMtMTQgMTA6MDAgIHNsaWYKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQXZvaWQgd2FybmluZ3Mgb2Ygc3RydWN0IHRpbWV2YWwgZGVjbCBpbiBzeXN0ZW0uaCBieSBpbmNsdWRpbmcgKnRpbWUuaCouCiAgIAoyMDAxLTAzLTE0IDA5OjQ3ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbAogICAKMjAwMS0wMy0xNCAwOTo0MCAgc2xpZgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgZG9uJ3QgcnVuIHRlc3RzIHdpdGhvdXQgbmVlZGVkIHByb2dyYW1zOiBzbm1wZCwgc25tcGdldCwgc25tcGdldG5leHQuCiAgIAoyMDAxLTAzLTE0IDA4OjI0ICBzbGlmCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUHJvdmlkZSBhbiBlbXB0eSBETExJQlMgdmFsdWUgZm9yIG5vbi1kbG1vZCB1c2VzLgogICAKMjAwMS0wMy0xNCAwNzozNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGNhc3QgdV9sb25nIHRvIHVfY2hhciB3aGVuIHN0b3JpbmcgOC1iaXQgdmFsdWVzLgogICAKMjAwMS0wMy0xNCAwNzozMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHVuc2lnbmVkIGxlbmd0aCBjb21wYXJlcy4KICAgCjIwMDEtMDMtMTQgMDU6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbgpYbgpIaKbmdlcikKICAgCjIwMDEtMDMtMTMgMTM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBjaGVjayBmb3IgTlVMTHMgaW4gREVCVUcgbXNnCiAgIAoyMDAxLTAzLTEyIDE0OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIHN1YmFnZW50LmM6CgogICBGaXggc29tZSBtaW5vciBsZWFrcy4KICAgCjIwMDEtMDMtMTIgMTQ6MDUgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU29tZSBtaW5vciBmaXhlcyB0byBhcmd1bWVudCBwcm9jZXNzaW5nLCBpbmNsdWRpbmcgdGVybWluYXRpbmcgc25tcGQgb24KICAgZXh0cmFuZW91cyBub24tb3B0aW9uIGFyZ3VtZW50cy4KICAgCjIwMDEtMDMtMTAgMDg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBCdWcgIzQwNDk4ODogZG9uJ3QgdXNlIGlwc3RhdC5pcHNfZnJhZ3RpbW91dCBhcyBhIG51bWJlciBvZiBzZWNvbmRzLgogICAKMjAwMS0wMy0wNyAxMDoyNiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAKICAgbmV3IERFTEFZIGZ1bmN0aW9uOyBzdGFydC9zdG9wIGRhZW1vbnMgdXNpbmcgbmV3IFNUQVJUUFJPRy9TVE9QUFJPRyB3aXRoIERFTEFZOwogICBsb2cgY29tbWFuZHMgaXNzdWVkIGFuZCBmaW5hbCByZXN1bHQgdG8gU05NUF9UTVBESVIvaW52b2tlZDsKICAgc3VwcHJlc3MgImtpbGwiIG91dHB1dCB0byBoZWxwIEN5Z3dpbiB1c2VycyBoYXBweS4KICAgCjIwMDEtMDMtMDcgMTA6MjMgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIAogICBhZGQgLVMgcGFyYW1ldGVyIGZvciBERUxBWSBzZWNvbmRzOyBhZGQgdHJhcCBmb3IgaW50ZXJydXB0IGNvbnRyb2w7CiAgIHBhc3MgdGVzdCBudW1iZXIgYW5kIGRpc3BsYXktaGVhZGVyLW9ubHkgdG8gZXZhbF9vbmVzY3JpcHQuc2g7CiAgIGFkZCB3aGljaCB0ZXN0IHRvIHZlcmJvc2UgbG9jYXRpbmcgbWVzc2FnZXMgKEN5Z3dpbiB1c2VzIHR5cGUsIG5vdCB3aGljaCkuCiAgIAoyMDAxLTAzLTA3IDEwOjIwICBzbGlmCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2g6CgogICAKICAgCiAgIEluY29ycG9yYXRlIHRlc3QgbnVtYmVyIGludG8gdGVzdCByZXN1bHRzIGRpciBuYW1lLgogICBQcm92aWRlIGRlZmF1bHQgdmFsdWVzIGZvciB0ZXN0IG51bWJlciBhbmQgZGlzcGxheS1oZWFkZXItb25seSBmbGFnLgogICAKMjAwMS0wMy0wNyAxMDoxOSAgc2xpZgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgCiAgIAogICAibWFrZSBjbGVhbiIgcmVtb3ZlcyBhbnkgdGVzdCByZXN1bHQgZGlycyAiL3RtcC9zbm1wLXRlc3QtKiIuCiAgIAoyMDAxLTAzLTA3IDEwOjE1ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDU0YWdlbnR2MmN0cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIAogICBSZXBsYWNlIHNsZWVwIHdpdGggY29tbWVudGVkIG91dCBERUxBWSA7IGVhY2ggc3RhcnQvc3RvcCBhY3Rpb24gbm93CiAgIGludm9rZXMgREVMQVkuCiAgIAoyMDAxLTAzLTA3IDEwOjE0ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgCiAgIFJlcGxhY2Ugc2xlZXAgd2l0aCBERUxBWS4KICAgCjIwMDEtMDMtMDcgMTA6MTMgIHNsaWYKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAKICAgCiAgIENoYW5nZSBlbGVtZW50IHNlcGFyYXRvciB0byBXaW4zMiAnOycgaW4gREVGQVVMVF9NSUJTCiAgIERlY2xhcmUgV2luMzIgaGFzIGdldHBpZCEuCiAgIAoyMDAxLTAzLTA3IDEwOjEwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgV2luMzIgaW5jbHVkZSBpby5oIHRvIGRlY2xhcmUgbWt0ZW1wLgogICBFeHBhbmQgdGhlIGNvbW1lbnQgbmVhciBta3RlbXAgdXNhZ2UgdG8gZXhwbGFpbiB3aHkgaXQgaXMgbmVlZGVkLgogICAKMjAwMS0wMy0wNyAxMDowOSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIAogICAKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IGlmbmRlZiBXSU4zMi4gIGlmZGVmIFNJR0FMUk0gaXMgc3VmZmljaWVudC4KICAgCjIwMDEtMDMtMDcgMTA6MDcgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIAogICAKICAgV2luMzIgaW5jbHVkZSBwcm9jZXNzLmggdG8gZGVjbGFyZSBnZXRwaWQuCiAgIAoyMDAxLTAzLTA3IDEwOjA2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAKICAgCiAgIFVzZSBwcm9wZXIgZGVmaW5lIHRvIHF1YWxpZnkgaW5jbHVkZS1pbmcgYSBoZWFkZXIuCiAgIAoyMDAxLTAzLTA3IDEwOjA0ICBzbGlmCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgIAogICAKICAgQXBwbHkgdGhlIHRpbWUgZ29vIGNvbnNpc3RlbnRseTogbW92ZSBoZWFkZXIgaW5jbHVkZXMgb3V0IG9mIHN5c3RlbS5oLgogICAKMjAwMS0wMy0wNiAxMDowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBkb24ndCBmb3JjZSBpbmNsdXNpb24gb2YgLWxkbC4KICAgCjIwMDEtMDMtMDUgMDY6MzAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIAogICAKICAgRm9sbG93IG1ldGhvZCB1c2FnZSwgZG9uJ3QgZGVjbGFyZSBnZXRId0FkZHJlc3MgdW5sZXNzIHVzZWQuCiAgIAoyMDAxLTAzLTA1IDA2OjMwICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgUmVtb3ZlIG5lc3RlZCB2YXJpYWJsZSBlcCAtIG9uZSBhbHJlYWR5IGV4aXN0cy4KICAgCjIwMDEtMDMtMDUgMDY6MjggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgCiAgIAogICBDb21tZW50IG91dCBleGFtcGxlIHZhcmlhYmxlcyB0aGF0IGFyZSBub3QgdXNlZC4KICAgCjIwMDEtMDMtMDQgMTc6NDEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9jb25maWcuaCwgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgCiAgIAogICBwYXRjaCB0byBidWlsZCBtb3JlIG1vZHVsZXMsIGluY2x1ZGluZyBhZ2VudFgsIG9uIFdpbjMyIHVzaW5nIE1TLVZDLgogICAKMjAwMS0wMy0wNCAxNzoyNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAKICAgCiAgIHBhdGNoIHRvIGJ1aWxkIG1vcmUgb2YgdGhlIGFnZW50IHVzaW5nIE1TLVZDIG9uIFdpbjMyIHBsYXRmb3JtLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIE1UQS1NSUIudHh0LCBNYWtlZmlsZS5taWIsCiAgIFJFQURNRS5taWJzLCBUVU5ORUwtTUlCLnR4dCwgaWFuYWxpc3QsIG1pYmZldGNoLCByZmNsaXN0LAogICByZmNtaWJzLmRpZmYsIHNtaXN0cmlwOgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQWlmVHlwZS1NSUIsIHBsdXMgYWRkaXRpb24gb2YgUkVBRE1FIGFuZCB0b29scyB0byBnZXQKICAgYSBjb21wbGV0ZSBzZXQgb2YgSUVURiBNSUIgZmlsZXMuCiAgIAoyMDAxLTAzLTAzIDA3OjExICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oOgoKICAgUmVtb3ZlIGFuIHVudXNlZCBwcm90b3R5cGUKICAgCjIwMDEtMDMtMDMgMDY6MzYgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgQWRkIGEgbmV3ICVQIGZvcm1hdHRpbmcgc2VxdWVuY2UgdG8gdXNlciBzcGVjaWZpZWQgbG9nIGZvcm1hdHMuIEl0IHByaW50CiAgIHRoZSBzZWN1cml0eSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBQRFUgKGNvbW11bml0eSwgdXNlciwgY29udGV4dCBhcyBhdmFpbGFibGUpCiAgIEFsc28gbW9kaWZ5IHRoZSBkZWZhdWx0IHRyYXAgb3V0cHV0IHRvIHVzZSBpdC4KICAgCjIwMDEtMDMtMDMgMDY6MjEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEZpeCBzcGVjaWZpZXJzIGxpa2UgJS4zcwogICAKMjAwMS0wMy0wMyAwNjoxMCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCB0aGUgcGFyc2VyIHRvIGRpYWdub3NlIG9pZCBzcGVjcyBsaWtlOjo9IHsgc2luZ2xlIH0KICAgQmUgc2lsZW50IGZvciBpbnRlcm5hbCBsaW5rcyB3aGVuIG1vdmluZyBub2RlcyB0byB0aGUgYWRvcHRpb24gbGlzdC4gVGhpcwogICBzaG91bGQgaGVscCBnaXZpbmcgb25seSBhIHNpbmdsZSBtZXNzYWdlIGZvciBtaXNzaW5nIGltcG9ydHMgb2YgZW50ZXJwcmlzZXMuCiAgIAoyMDAxLTAzLTAyIDEzOjI0ICBzbGlmCgogICAqIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgCiAgIAogICBjbGVhbnVwIGZvciBNUy1WQyBXaW4zMiBidWlsZAogICAKMjAwMS0wMy0wMiAwNzozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgc291cmNlcmZvcmdlIC0+IHNvdXJjZWZvcmdlCiAgIAoyMDAxLTAzLTAyIDA3OjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFBhdGNoIGZyb20gS2FybCBTY2hpbGtlIHRvIGZpeCB0aW1lc3RhbXBzIGluIHN5bmNob25vdXMgY2FzZXMKICAgCjIwMDEtMDMtMDIgMDY6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZnJvbSBzbm1wX29pZF9jb21wYXJlKCkuCiAgIAoyMDAxLTAzLTAxIDE5OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDItMjEgMTU6MzEgIG5iYQoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMToKCiAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcwogICAKMjAwMS0wMi0yMSAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzODA1IGZyb20gYmNvbGxhcjogYWRkIHN5cy90aW1lLmggdG8gdWNkLXNubXAtaW5jbHVkZXMuaAogICAKMjAwMS0wMi0yMSAxNToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9pbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0yMSAxNDozOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVHJ5IGZpeGluZyBpbmNvbnNpc3RlbnQgaW5kZXhpbmcgb24gQlNECiAgIAoyMDAxLTAyLTE5IDA4OjQ2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAKICAgCiAgIC0gcHJveHkuYzogcmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDEtMDItMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIC0gaW5jcmVhc2UgVUNEX1JFR0lTVFJZX09JRF9NQVhfTEVOIHRvIDEyOCBhdCBGcmFuaydzIHJlcXVlc3QKICAgCjIwMDEtMDItMTQgMTg6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGJ1ZyAjMTMwNzQwIHVzaW5nIHN1Z2dlc3RlZCBjbG9zZSgpIHdyYXBwZXIgYXJvdW5kIG1rc3RlbXAoKQogICAKMjAwMS0wMi0wOSAxMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMzogZml4IG1lbW9yeSBsZWFrIGluIHNubXBkIHBvcnQgc3BlY2lmaWNhdGlvbiAtPiBkZWZhdWx0X3N0b3JlLgogICAKMjAwMS0wMi0wOSAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMjogZml4IG1lbW9yeSBsZWFrIGluIG1pYl9tb2R1bGUgaW5pdCBjb2RlCiAgIAoyMDAxLTAyLTA5IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjExOiBmaXggbWVtb3J5IGxlYWsgZm9yIGR1cGxpY2F0ZSBvaWQgcmVnaXN0cmF0aW9ucy4KICAgCjIwMDEtMDItMDkgMTE6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjA0OiBBZGQgc3VwcG9ydCBmb3IgVjEgdHJhcHMgYW5kIGludC9pbnQzMiBkaWZmZXJlbmNlcwogICAKMjAwMS0wMi0wOSAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgcHJveHkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzcwMjogZml4IHN3YXAgcmVwb3J0aW5nIG9uIGZyZWVic2QgNC4yCiAgIAoyMDAxLTAyLTA2IDE0OjI2ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEFkZCBhIGRlcGVuZGVuY3kgZm9yIGxpYnNubXAKICAgCjIwMDEtMDItMDYgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIEltcGxlbWVudCByYXcgaW50ZXJydXB0IGFuZCBjb250ZXh0IHN3aXRjaCBjb3VudGVycwogICAKMjAwMS0wMi0wNiAxNDoyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIE1ha2UgZG1hbGxvYyBoYXBweSBieSBmaXhpbmcgYSBtYWxsb2MgcmVhZCBvdmVycnVuCiAgIAoyMDAxLTAyLTA2IDE0OjE2ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmM6CgogICBCYWNrcG9ydCAtT1Qgb3V0cHV0IHRvIDQtMi1wYXRjaGVzIGJyYW5jaAogICAKMjAwMS0wMi0wNiAwNjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBkb2N1bWVudGF0aW9uIGZpeAogICAKMjAwMS0wMS0zMSAyMzowMiAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCB2YWx1ZSB2YWxpZGF0aW9uIGZvciBzbm1wc2V0L3NubXB0cmFwCiAgIAoyMDAxLTAxLTMxIDIzOjAwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEZpeCBiYWQgcmV0dXJuIG9mIGEgcG9pbnRlciB0byBub24tc3RhdGljIHN0b3JhZ2UKICAgCjIwMDEtMDEtMzEgMTU6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgQmFydGVscyBmb3IgZnJlZWJzZCBmaXhlcwogICAKMjAwMS0wMS0zMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNDE0OiBmaXggZGlzayBpbmZvIGZvciBibG9jayBzaXplcyBvdGhlciB0aGFuIDEwMjQuCiAgIAoyMDAxLTAxLTI5IDEzOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGZpeCBidWcgIzEzMDQxMDogIHNldCB0aGUgd3JpdGVfbWV0aG9kIGluIHZhcl9zbXV4IGJlZm9yZSByZXR1cm5pbmcKICAgTlVMTCB0byBtYWtlIHN1cmUgdGhhdCBzZXRzIGhhcHBlbiBvbiBPSURzIHRoYXQgZG9uJ3QgZXhpc3QgZmlyc3QuCiAgIAoyMDAxLTAxLTI5IDEzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBzdWdnZXN0ZWQgaW4gYnVnICMxMjk5NDg6IGNoZWNrIGZvciAtIGFyZ3VtZW50cyBhdCB0aGUgYmVnZ2lubmluZwogICBvZiB0aGUgY29tbWFuZCBsaW5lIHRva2VuIChkb24ndCBtYXRjaCBtaWItMiwgZWcpLgogICAKMjAwMS0wMS0yOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgZml4IHN1Z2dlc3RlZCBpbiBidWcgIzEyOTg3NjogY2hlY2sgZm9yIGhpbnQgIT0gTlVMTCBiZWZvcmUgZnJlZWluZy4KICAgCjIwMDEtMDEtMjYgMDU6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBGaXggYnVnIG9uIEZyZWVCU0Qgd2hlbiAvZXRjL3ByaW50Y2FwIGlzIGVtcHR5CiAgIAoyMDAxLTAxLTI1IDE0OjM4ICBuYmEKCiAgICogbWlicy9STU9OLU1JQi50eHQ6CgogICBVcGRhdGVkIHRvIFJGQyAyODE5CiAgIAoyMDAxLTAxLTI0IDIxOjM3ICBuYmEKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGxpYnJhcmllcyBiZWZvcmUgYWdlbnQgc28gdGhhdCBsaWJ0b29sIGNhbiByZWxpbmsuCiAgIAoyMDAxLTAxLTIwIDA1OjU0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYywgc25tcGxpYi9pbnQ2NC5jOgoKICAgVHdvIENvdW50ZXI2NCBnbGl0Y2hlcyBkZXRlY3RlZCBieSBKYXNvbiBHbG91ZG9uIDxzbm1wQGdsb3Vkb24uY29tPgogICAKMjAwMS0wMS0yMCAwNTo0NCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBEb250IHNldCB1cCB0aGUgc2VsZWN0IHBhcmFtZXRlcnMgYmVmb3JlIGNhbGxpbmcgaW50ZXJydXB0IGhhbmRsZXJzIQogICBUaGFua3MgdG8gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDEtMDEtMjAgMDU6NDIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZW5jb2Rpbmcgb2YgQklUUyB2YXJpYWJsZSwgdGhhbmtzIHRvIEZyYW5rIFN0cmF1c3MKICAgCjIwMDEtMDEtMjAgMDU6MzcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFJhdyBJTyBjb3VudGVycyBmcm9tIEpvY2hlbiBLbWlldHNjaAogICAKMjAwMS0wMS0yMCAwNTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBQcmVwYXJlIGZvciBtb3JlIHJhdyBjb3VudGVycwogICAKMjAwMS0wMS0xNSAxNToxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICB1bmRvIGEgY2hhbmdlIHRoYXQgc25lYWtlZCBpbiBieSBtaXN0YWtlCiAgIAoyMDAxLTAxLTE1IDE0OjA3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaDoKCiAgIEV4dGVuZCB0aGUgc3lzdGVtU3RhdHMuY3B1UmF3IHNlY3Rpb24gdG8gaW5jbHVkZSBtb3JlIHJhdyBjb3VudGVycyBmb3IgdmFyaW91cwogICBvcGVyYXRpbmcgc3lzdGVtcy4gIEJhc2ljIHRlc3RpbmcgcGVyZm9ybWVkIGZvciBTb2xhcmlzIGFuZCBGcmVlQlNELiBDb2RlCiAgIGd1ZXNzdGltYXRlIGZvciBOZXRCU0QgYW5kIEJTRGkuCiAgIAoyMDAxLTAxLTEyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJpdF9zdHJpbmcgZml4ZXMKICAgLSBtYWtlIHNubXBfYWRkX3ZhciBjYWxsIHNubXBfcGFyc2Vfb2lkKCkgaW5zdGVhZCBvZiByZWFkX29iamlkKCkuCiAgIAoyMDAxLTAxLTEyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNvbW1lbnQgb3V0IHJlYWxseSBvZGQgKGFuZCBicm9rZW4pIGNoZWNrIGZyb20gYXNuX2JpdHN0cmluZ19jaGVjaz8/PwogICAKMjAwMS0wMS0xMiAwNzo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5zdG9yYWdlLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIG5ldyBkYXRhIHR5cGVzICh1aW50MzIsIHVuc2lnbmVkLCBiaXRzKS4KICAgCjIwMDEtMDEtMTAgMjE6NTUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggY2FsbGluZyBvZiBpbml0X2NhbGxiYWNrcyBldmVuIGlmIGluaXRfc25tcCBjYWxsZWQgd2l0aCBOVUxMIHBhcmFtZXRlcgogICAKMjAwMS0wMS0xMCAyMTo1MyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBiYWRseSBhcHBsaWVkIHByZXZpb3VzIHBhdGNoCiAgIAoyMDAxLTAxLTEwIDIxOjUyICBuYmEKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgRml4IHVzYWdlIG1lc3NhZ2UgKC1lIGlzIG5vdyAtQ2UpCiAgIAoyMDAxLTAxLTEwIDIxOjUxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBGaXggYSBiYWQgaXBSb3V0ZVByb3RvY29sIHJldHVybgogICAKMjAwMS0wMS0xMCAyMTo1MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBwcm9ibGVtIHdoZW4gcnVubmluZyAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgZm9yIEZyZWVCU0QuIFRoYW5rcyB0bwogICBCZXJ0IERyaWVodWlzLgogICAKMjAwMS0wMS0xMCAyMTo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFVzZSB0aGUgaWZzcGVlZCBhdHRyaWJ1dGUgZnJvbSBkcml2ZXIgd2hlbiBhdmFpbGFibGUKICAgCjIwMDEtMDEtMDkgMDY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEFwcGx5aW5nIHBhdGNoIGZvdW5kIGluIGJ1ZyAjMTI3Mjk5OgogICAgIC0gc3dpdGNoIGlmQWRtaW4gYW5kIGlmT3BlclN0YXR1cyBtZWFuaW5ncyB0byBtYXRjaCBrZXJuZWwgcGFyYW1ldGVycyBiZXR0ZXIuCiAgIAoyMDAxLTAxLTA5IDA2OjIxICBoYXJkYWtlcgoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBhZGRlZCBnZXRvcHQuYyB0byBsaXN0CiAgIAoyMDAxLTAxLTA4IDA4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBQYXRjaCBmcm9tIEFuZGVycyBFbGxlZnNydWQKICAgICAtIGZpeCBocl9zd3J1biB3aGVuIHByb2dyYW1zIGhhdmUgZXhpdGVkIHNvIHdlIGRvbid0IHRydW5jYXRlCiAgICAgICBnZXRuZXh0IHF1ZXJpZXMuCiAgIAoyMDAxLTAxLTA4IDA4OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggQklUUyBlbmNvZGluZyBsZW5ndGggd2hlbiBtaWIga25vd2xlZGdlIGlzIGF2YWlsYWJsZS4KICAgCjIwMDEtMDEtMDQgMjM6MTggIG5iYQoKICAgKiBhcHBzLzogc25tcHNldC5jLCBzbm1wdHJhcC5jOgoKICAgVHJ5IGZpeGluZyBwcm9ibGVtcyB3aXRoIHNubXBzZXQgb2YgbmVnYXRpdmUgdmFsdWVzCiAgIAoyMDAxLTAxLTA0IDIzOjE1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmM6CgogICBBZGQgdGhlIHJhdyBjcHUgY291dGVycyBmb3IgQlNEaS4gQ291cnRlc3kgQmVydCBEcmllaHVpcy4KICAgCjIwMDEtMDEtMDQgMjM6MTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgU2F2ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKICAgCjIwMDEtMDEtMDQgMjM6MDkgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBBZGQgbWlzc2luZyBkbWFsbG9jIHN1cHBvcnQgZm9yIHNvbWUgZmlsZXMKICAgCjIwMDEtMDEtMDQgMjM6MDQgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSBzb3J0IG9yZGVyIGZvciBjb25maWcuaC5pbgogICAKMjAwMS0wMS0wNCAxMDoyNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggc2VtaS1jb2xvbiBwcm9ibGVtLiAgUGF0Y2ggIzEwMzEwMS4KICAgCjIwMDEtMDEtMDMgMDc6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC9wcm9jLyVkL2NtZGxpbmUgbWF5IGJlIGFuIGVtcHR5IGZpbGUgZm9yIHNvbWUgcHJvY2Vzc2VzLiAgUmV0dXJuICIiIGlmIHNvLgogICAKMjAwMS0wMS0wMiAwOTo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGFkZCBhICIlcyIgZm9ybWF0dGluZyBzdHJpbmcgdG8gdGhlIHN5c2xvZygpIGNhbGwgKHJlZGhhdCBidWcgIzE4MTUzKS4KICAgCjIwMDAtMTItMjkgMTM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgZm9yIGZvcm1hdHRpbmcgb2YgdGhlIC9wcm9jL25ldC9kZXYgZmlsZSB0byBhdm9pZAogICAgICAgbGludXggY29yZSBkdW1wcyB3aGVuIHRoZSBrZXJuZWwgbWlzLWJlaGF2ZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLAogICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQxMTNhZ2VudHh0cmFwOgoKICAgLSB0cmFwIEFQSSB0ZXN0aW5nIHN1aXRlIGVuaGFuY2VkIHRvIHRlc3QgbW9yZSBjYXNlcy4KICAgCjIwMDAtMTItMjcgMTY6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oOgoKICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIHdvcmsgbW9yZSB2aWEgY2FsbGJhY2tzIGFuZCByZW1vdmUgaWZkZWZzIGluCiAgICAgYWdlbnRfdHJhcC5jCiAgIC0gTWFrZSB0aGUgYWdlbnRfdHJhcC5jIGZpbGUgY2hlY2sgZm9yIGNhbGxiYWNrIHJlZ2lzdHJhdGlvbnMgYW5kCiAgICAgaGFuZGxlIGl0IGludGVybmFsbHkgdXNpbmcgdGhlIG9sZCB0cmFwc2luayBzdXBwb3J0IGlmIG5vIGNhbGxiYWNrCiAgICAgaXMgZm91bmQuCiAgIC0gVGhpcyBmaXhlcyB0aGUgcHJvYmxlbSB3aGVuIGluaXRfbWliX21vZHVsZXMoKSBpc24ndCBjYWxsZWQgaW4gc3ViYWdlbnRzLgogICAKMjAwMC0xMi0yNyAxNjo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgbWFrZSB0aGUgZXhhbXBsZSB0cmFwcyBiZSBzZW50IHVzaW5nIGEgZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwIG9mIDk5CiAgIHJhdGhlciB0aGFuIDMuICBXZSBuZWVkIHRvIGRlZmluZSBpdCBpbiB0aGUgbWliIHN0aWxsLgogICAKMjAwMC0xMi0yNyAxNToyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggYnJva2VuIGNvbXBpbGVyIHByZWNlZGVuY2UgYXMgcmVwb3J0ZWQgaW4gc3VwcG9ydCAjMTEwNDczLgogICAKMjAwMC0xMi0yMiAwODo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggY291bnRlcjY0IHJldmVyc2UgZW5jb2RpbmdzLgogICAKMjAwMC0xMi0yMiAwNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggdmlldyBwcm9jZXNzaW5nIHRvIHdhdGNoIGZvciBsZW5ndGggcHJlZml4LiAgVGhlIGxlbmd0aCBwcmVmaXgKICAgcmVhbGx5IHJlYWxseSBzaG91bGRuJ3QgYmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvaWQuICBOaWVscz8KICAgCjIwMDAtMTItMjEgMTQ6NDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBmaXggcHJvYmxlbSB3aXRoIHBvc2l0aW9uYWwgY29tbXVuaXR5IGFyZ3VtZW50IHRvIHNubXBuZXRzdGF0CiAgIAoyMDAwLTEyLTIxIDE0OjM3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IG1ha2Ugc3VyZSBpbml0X21pYl9pbnRlcm5hbHMgaXMgY2FsbGVkIGJlZm9yZSBkb2luZyBhbnl0aGluZwogICAJc2VyaW91cyBpbiBpbml0X21pYgogICAKMjAwMC0xMi0yMSAwODoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIGZpeCBzdXBwb3J0IGZvciBCSVRTCiAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4xLjIgLT4gVjQuMgoKMjAwMC0xMi0wNCAxNTozMCAgaGFyZGFrZXIKCgktIChORVdTLCBSRUFETUUpOiB1cGRhdGVzLgoJCjIwMDAtMTItMDQgMTQ6NDggIG1hcnoKCgllbnN1cmUgbWlibG9hZC50IHVzZXMgY29ycmVjdCBNSUJESVIgZm9yIHRlc3RpbmcKCQoyMDAwLTEyLTA0IDExOjA1ICBoYXJkYWtlcgoKCS0gKEFHRU5ULnR4dCwgRkFRLCBSRUFETUUpOiBjb252ZXJ0IHVybCdzIHRvIHd3dy5uZXRzbm1wLm9yZy4KCQoyMDAwLTEyLTA0IDA4OjQ1ICBoYXJkYWtlcgoKCS0gKE5FV1MpOiBhZ2VudHggbm90ZSBjaGFuZ2VzLgoJCjIwMDAtMTItMDMgMDc6MjkgIG5iYQoKCS0gc25tcHRyYXBkX2xvZy5jOiBmb3ggbWlzc2luZyBsZWFkaW5nIHplcm9lcyBmb3IgJS4yZCBsaWtlIGZvcm1hdHMuCgkJQWRkIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yIHVwLXRpbWUgZGlzcGxheXMuCgkKMjAwMC0xMi0wMiAxODoyMiAgbWFyegoKCWZvdW5kIHRoZSB1bmluaXRpYWxpemVkIGRhdGEgYnVnLi4ubXVzdCBoYXZlIGJlZW4gaW4gdGhlcmUgZG9ybWFudCBmb3IgYSB3aGlsZSwgb3RoZXIgdGVzdCBmaXhlcyAtIGdvb2QgdG8gZ28hCgkKMjAwMC0xMi0wMSAxNjozNiAgaGFyZGFrZXIKCgktIChhZ2VudC9zbm1wZC5jKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MzUgIGhhcmRha2VyCgoJLSAoQUdFTlQudHh0KTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgoJLSAoVE9ETyk6IHJlZmVyZW5jZSBuZXQtc25tcC1jb2RlcnMuCgkKMjAwMC0xMi0wMSAxNjozNCAgaGFyZGFrZXIKCgktIChSRUFETUUpOiB1cGRhdGUuCgkKMjAwMC0xMi0wMSAxNjozMyAgaGFyZGFrZXIKCgktIChidWctcmVwb3J0LCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogcmVtb3ZlIHRoZSBidWcgcmVwb3J0IHNjcmlwdC4KCQoyMDAwLTEyLTAxIDE2OjMxICBoYXJkYWtlcgoKCS0gKFBPUlRJTkcpOiByZWZlcmVuY2Ugc291cmNlZm9yZ2UuCgkKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCgktIChtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBtZW50aW9uIHRoZSBmYWN0IHRoYXQgc25tcHYzIHRyYXBzIGFyZQoJICB0aGUgc2FtZSBhcyBzbm1wdjIgdHJhcHMuCgkKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCgktIChORVdTKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTU6MzEgIGhhcmRha2VyCgoJLSAoUkVBRE1FKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTU6MTYgIGhhcmRha2VyCgoJLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSBmb3IgcHJveHkgc3VwcG9ydC4KCQoyMDAwLTEyLTAxIDE0OjM2ICBoYXJkYWtlcgoKCS0gKEZBUSk6IHVwZGF0ZSBhIGZldyB0aGluZ3MuCgkKMjAwMC0xMi0wMSAxNDoyOCAgbmJhCgoJLSBtaWIuYzogZGlhZ25vc2Ugd3JvbmcgcXVvdGluZyBpbiBpbmRpY2VzCgkKMjAwMC0xMi0wMSAxNDoyMyAgbmJhCgoJLSBwYXJzZS5jOiBhZGQgUkZDLTEyMTMgYXMgYW4gYWxpYXNlIGZvciBSRkMxMjEzLU1JQiAodXNlZCBpbiBtYW55IG1pYnMpCgkKMjAwMC0xMi0wMSAxNDoxOSAgbmJhCgoJLSBzbXV4LmM6IHJlZm9ybWF0IHNvbWUgZGVidWcgbWVzc2FnZXMgZm9yIHJlYWRhYmlsaXR5CgkKMjAwMC0xMi0wMSAxNDoxNyAgbmJhCgoJLSBpbnRlcmZhY2VzLmM6IGZpeCBpZlR5cGUgdmFsdWVzIGZvciBMaW51eAoJCjIwMDAtMTItMDEgMTQ6MTQgIG5iYQoKCS0gc3ViYWdlbnQuYzogc3VwcGx5IGEgbWlzc2luZyByZXR1cm4gdmFsdWUKCQoyMDAwLTEyLTAxIDEwOjA0ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcXVvdGUgdGhpbmdzIHdpdGggc3BhY2VzIGluIHRoZW0uCgkKMjAwMC0xMi0wMSAwOTo0OSAgaGFyZGFrZXIKCgktIChzbm1wY29uZi4xKTogcXVpY2sgbWFuIHBhZ2UgZm9yIHNubXBjb25mLgoJCjIwMDAtMTItMDEgMDk6MTUgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvbW9uaXRvcik6IGNsZWFudXBzLgoJCjIwMDAtMTItMDEgMDk6MTQgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9wYXJzZS5jKTogY2hhbmdlIG5vLXBhcmVudCBsb2cgbWVzc2FnZSBpbnRvIGEgd2FybmluZy4KCQoyMDAwLTEyLTAxIDA5OjExICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4KTogdXBkYXRlIGZyb20gRGF2ZS4KCQoyMDAwLTEyLTAxIDA5OjEwICBoYXJkYWtlcgoKCS0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMi0wMSAwNzo1OSAgaGFyZGFrZXIKCgktIChhZ2VudC9hZ2VudF90cmFwLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgoJICAtIHN1cHBvcnQgdjItPnYxIHRyYXAgY29udmVyc2lvbi4KCQoyMDAwLTEyLTAxIDA3OjU2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdHlwby4KCQoyMDAwLTEyLTAxIDA3OjQyICBtYXJ6CgoJYWRkaXRpb25hbCBmaXhlcyB0byBzdXBwb3J0IHRhcmdldHRlZCBidWlsZHMgb2YgcGVybC9TTk1QIHVzaW5nIC1ORVQtU05NUC1QQVRIIChhbmQgd2hpdGUgc3BhY2UgcmVtb3ZhbCBhcyBteSBlbWFjcyBraW5kbHkgZG9lcyB0aGF0IGZvciBtZT8pCgkKMjAwMC0xMS0zMCAxNDowNiAgbmJhCgoJLSBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6IGV4dGVybiAiQyIgYnJhY2tldGluZwoJCjIwMDAtMTEtMzAgMTQ6MDQgIG5iYQoKCS0gc25tcGQuY29uZi41LmRlZjogZml4IGZvcm1hdHRpbmcgb2Ygc211eHBlZXIgdG9rZW4KCQoyMDAwLTExLTMwIDEwOjMxICBoYXJkYWtlcgoKCS0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMS0zMCAxMDoxOCAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBmaXggYmFkIHNldHMgZm9yIGFnZW50eC4KCQoyMDAwLTExLTMwIDA5OjE5ICBoYXJkYWtlcgoKCS0gKG92L1JFQURNRSk6IG1pbm9yIGNvcnJlY3Rpb25zLCBwcm9iYWJseSBzdGlsbCBpbmNvcnJlY3QuCgkKMjAwMC0xMS0zMCAwOToxOCAgaGFyZGFrZXIKCgktIChsb2NhbC9NYWtlZmlsZS5pbiwgc25tcGNvbmYsIGFjbCwgYmFzaWNfc2V0dXAsIG1vbml0b3IsIG9wZXJhdGlvbiwKCSAgc3lzdGVtLCB0cmFwc2lua3MpOgoJICAtIGdyb3VwaW5nIHN1cHBvcnQuCgkgIC0gc29ydC1vZi1xdWlldCBvdXRwdXQgc3VwcG9ydC4KCSAgLSBvcGVyYXRpb24gbW9kZSBzdXBwb3J0IChzZXR0aW5nIHVzZXIsIGdyb3VwLCBwb3J0cy4uLikKCQoyMDAwLTExLTMwIDA5OjEzICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNhdmUgYSB3YXJuaW5nIGhlYWRlciBhdCB0aGUgdG9wIG9mIHRoZQoJICBwZXJzaXN0ZW50IGRhdGEgZmlsZS4KCQoyMDAwLTExLTMwIDA5OjExICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYyk6IENsZWFudXAgcGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzLgoJCjIwMDAtMTEtMzAgMDk6MTAgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IHNldCBEU19BR0VOVF9OT19ST09UX0FDQ0VTUyBpbiAtSCBoZWxwIG91dHB1dC4KCQoyMDAwLTExLTMwIDA5OjA4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWVudGlvbiB0aGUgVFVOTkVMLU1JQiBzdXBwb3J0LgoJCjIwMDAtMTEtMjkgMTg6MjEgIHNsaWYKCglVcGRhdGUgZS1tYWlsIGFkZHJlc3MgZm9yIFNsaWZjYWsKCQoyMDAwLTExLTI5IDExOjM0ICBtYXJ6CgoJZml4ZWQgb3JkZXIgb2YgZnVuY3Rpb24gY2hlY2tpbmcgc28gdGhhdCB2c25wcmludGYgaXMgbm90IGZvdW5kIGluIGxpYmRiIChCU0QgZGIpIGJ5IG1pc3Rha2UKCQoyMDAwLTExLTI5IDA1OjE4ICBtYXJ6CgoJcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKCQoyMDAwLTExLTI4IDE4OjAwICBtYXJ6CgoJcGFydGlhbCBzdWJtaXQgdG8gZ2V0IHBlcmwvU05NUCB0ZXN0cyB0byBwYXNzIGFuZCB1cGRhdGUgdGhlIGRvY3Mgc29tZXdoYXQgLSBzdGlsbCBnZXR0aW5nIGNvcmVzIGluIG5vdGlmeS50LiBoYWQgdG8gY2hhbmdlIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgdXNlciBpbmNhc2UgMiBzZXNzaW9ucyBhcmUgc3RhcnRlZCB3aXRoIHRoZSBzYW1lIHVzZXIKCQoyMDAwLTExLTI3IDE0OjM3ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL2Jhc2ljX3NldHVwKTogYmFzaWMgc2V0dXAgc2VyaWVzIG9mIHF1ZXN0aW9ucy4KCQoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL2FjbCk6IHR5cG9zLgoJCjIwMDAtMTEtMjcgMTQ6MzYgIGhhcmRha2VyCgoJLSAobG9jYWwvc25tcGNvbmYpOgoJICAtIGFkZCBzdXBwb3J0IGZvciAiZ3JvdXBzIiBvZiBpdGVtcy4KCSAgLSBkb24ndCB1c2UgSU86OkRpciwgYXMgaXRzIG5vdCBpbiB0aGUgc3RhbmRhcmQgcGVybCBtb2R1bGUgZGlzdHJpYnV0aW9ucy4KCQoyMDAwLTExLTI3IDE0OjM0ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgpOiByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGUgcmVmZXJlbmNlLgoJCjIwMDAtMTEtMjcgMTQ6MzMgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBmaXggYXV0by1zZXQgc3VwcG9ydCBmb3IgdGhlIGFnZW50IChhbmQgcGx1ZyBhIG1lbW9yeSBsZWFrKS4KCQoyMDAwLTExLTI3IDEzOjQyICBuYmEKCgktIHNubXAuY29uZi41LmRlZjogZG9jdW1lbnQgdG9rZW5zIGV4dGVuZGVkSW5kZXggYW5kIG5vUmFuZ2VDaGVjawoJCjIwMDAtMTEtMjcgMTM6NDEgIG5iYQoKCS2gcGFyc2UuYzogZml4IGEgQysrIHN0eWxlIGNvbW1lbnQKCQoyMDAwLTExLTI0IDE1OjE0ICBuYmEKCgktIG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXRfbmV0YnNkMS5jOiBtaW5vciBmaXhlcyBmb3IgTmV0QlNEIDEuNSwgT1BlbkJTRCAyLjYKCQoyMDAwLTExLTIyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMpOiBQYXRjaCBmcm9tIFNlYW4gSGFyZGluZzoKCSAgLSBkb24ndCBleHBvcnQgYW4gaW50ZXJuYWwgdmFyaWFibGUuCgkKMjAwMC0xMS0yMSAxNToxNyAgbmJhCgoJLSBtaWIuYzogZml4IHBhcnNpbmcgb2Ygb2lkIGxpa2UgOTkuMTMuXCJndWZcIjgKCQoyMDAwLTExLTE5IDEzOjAzICBuYmEKCgktIFNOTVAueHMsIG1pYjJjLnZhcnR5cGVzLmNvbmY6IFRoZSByZWNlbnQgc3BlY2lhbGlzYXRpb24gb2YgdGhlIEludGVnZXIKCQl0eXBlcyBpbiB0aGUgcGFyc2VyIGNyZWF0ZWQgcHJvYmxlbXMgZm9yIHRoZSBwZXJsIG1vZHVsZSBhbmQgaW4gdHVybgoJCWZvciBtaWIyYy4gU29ycnkgZm9yIG5vdCBjYXRjaGluZyB0aGlzIGJlZm9yZSBwcmUyIDotKAoJCjIwMDAtMTEtMTkgMTI6NTggIG5iYQoKCS0gZml4ZXMgdG8gLi9jb25maWd1cmUgLS13aXRoLWRlZmF1bHRzIC0tZW5hYmxlLW1pbmktYWdlbnQ7IG1ha2UgaW5zdGFsbAoJCWFuZCBydW4gdGhlIHRvb2xzIHVuZGVyIGN5Z3dpbi4gSGF2ZW4ndCB0cmllZCB0aGUgYWdlbnQgeWV0IDotKQoJCjIwMDAtMTEtMTggMDc6MTQgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMiApCgkKMjAwMC0xMS0xOCAwNzoxMiAgaGFyZGFrZXIKCgktIChUMDQ5c25tcHYzaW5mb3JtKTogdjMgaW5mb3JtIHRlc3QgYWRkZWQuCgkKMjAwMC0xMS0xNyAxMTowMSAgbmJhCgoJLSBtaWIuYywgc25tcF9hcGkuYzogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciBiYWQgc25tcHNldCBjYWxscyBhbmQgYmFkCgkJaW5kaWNlcy4gQWxzbyBmaXggYSBidWcgd2l0aCBxdW90ZWQgaW5kaWNlcy4KCQoyMDAwLTExLTE3IDEwOjMyICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QwNTBzbm1wdjN0cmFwKTogdGVzdCBmb3Igc25tcHYzIHRyYXBzLgoJCjIwMDAtMTEtMTcgMTA6MzAgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBmaXggY2FzZXMgd2hlcmUgdGhlIGZvcm1hdCBzdHJpbmdzIGFyZSBzcGVjaWZpZWQuCgkKMjAwMC0xMS0xNyAxMDoyNiAgbmJhCgoJLSBJQU5BaWZUeXBlLU1JQi50eHQ6IHVwZGF0ZSBmcm9tIElBTkEKCQoyMDAwLTExLTE3IDA4OjMyICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgoJICAtIGZpeCBtZW1vcnkgbGVha3MuCgkgIC0gZml4IGFnZW50eCBwcm9ibGVtcyB3aXRoIGJhZCBzZXRzLgoJCjIwMDAtMTEtMTYgMTc6NTUgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9zbm1wdjMuYyk6IGFkZGVkIGEgc3BhY2UgaW4gYSBkZWJ1Z2dpbmcgb3V0cHV0IHN0YXRlbWVudC4KCQoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGFkZGVkLgoJCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2V0IERTX0xJQl9BUFBUWVBFIGlmIGl0IGhhc24ndCBiZWVuIHNldCB5ZXQuCgkKMjAwMC0xMS0xNiAxNzo1MiAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBhZGQgQ09ORklHVFJBUEQuCgkKMjAwMC0xMS0xNiAxNzo1MCAgaGFyZGFrZXIKCgktIChzbm1wbGliL21pYi5jLCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLAoJICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwpOgoJICAtIHN1cHBvcnQgLUlyIGZvciAiZG9udCBjaGVjayByYW5nZS90eXBlIHZhbHVlcyIgKGxldHRlciByIHN1YmplY3QgdG8gZGViYXRlKS4KCQoyMDAwLTExLTE2IDE3OjI1ICBoYXJkYWtlcgoKCS0gKGNhbGxiYWNrLmMpOiBiZXR0ZXIgZGVidWdnaW5nIG91dHB1dCB0byBkaXNwbGF5IGEgY2FsbGJhY2sgY291bnQgd2hlbiBkb25lLgoJCjIwMDAtMTEtMTYgMTY6NTIgIGhhcmRha2VyCgoJLSAoVDExM2FnZW50eHRyYXApOiBBIG5ldyB0ZXN0IHRvIHRlc3QgdHJhcCBzdXBwb3J0IGZyb20gYWdlbnR4IHN1YmFnZW50cy4KCQoyMDAwLTExLTE2IDE2OjUwICBoYXJkYWtlcgoKCS0gKFQwNThhZ2VudGF1dGh0cmFwKTogc2xlZXAgc29tZSBhbmQgb25seSBwZXJmb3JtIG9uZSBnZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDE2OjQ5ICBoYXJkYWtlcgoKCS0gKFQwNTRhZ2VudHYyY3RyYXApOiBzbGVlcCBhIGJpdCBhbmQgb25seSBzZW5kIG9uZSBzbm1wIHNldCByZXF1ZXN0LgoJCjIwMDAtMTEtMTYgMTU6NDcgIG5iYQoKCS0gZ2V0b3B0LmM6IHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCgkKMjAwMC0xMS0xNiAxNTozMSAgbmJhCgoJLSBwYXJzZS5bY2hdLCBtaWIuYywgc25tcF9hcGkuYzogcmVuYW1lIFRZUEVfVUlOVEVHRVIzMiBiYWNrIHRvIFRZUEVfVUlOVEVHRVIKCQoyMDAwLTExLTE2IDE1OjE2ICBuYmEKCgktIHNubXB0cmFwZC5jLCBzbm1wdHJhcGQuY29uZjogbmV3IGNvbmZpZyBkaXJlY3RpdmVzIGZvcm1hdDEgYW5kIGZvcm1hdDIgdG8KCQlzZXQgbG9nIGZvcm1hdHMgZm9yIFRSQVAxIGFuZCBUUkFQMiBwZHVzLgoJCjIwMDAtMTEtMTYgMTM6NTAgIG5iYQoKCS0gc25tcF9hcGkuYzogYWRkIGZ1bmN0aW9uYWxpdHkgdG8gY2hlY2sgdmFsdWUgdHlwZXMgaW4gYWRkaXRpb24gdG8gcmFuZ2VzCgkJZm9yIHNubXBzZXQgYW5kIHNubXB0cmFwLgoJCjIwMDAtMTEtMTYgMTM6NDcgIG5iYQoKCS0gcGFyc2UuYzogRml4IERFRlZBTCBwYXJzaW5nIGZvciAgT0JKRUNUIElERU5USUZJRVIgb3IgQklUUyB2YWx1ZXMKCQkoaS5lLiBERUZWQUwgeyB7IDAgMCB9IH0gZXRjKQoJCjIwMDAtMTEtMTYgMTE6MzkgIGhhcmRha2VyCgoJLSAoVDA1OGFnZW50YXV0aHRyYXApOiBhZGQgYSBncmVhdGVyIHRpbWVvdXQgdG8gdGhlIGdldCByZXF1ZXN0LgoJCjIwMDAtMTEtMTYgMTE6MzUgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jKToKCSAgLSBzZW5kIGEgdjJjIHRyYXAgdXNpbmcgaXRzIG93biBkYXRhLCBub3QgdGhlIHN5c3RlbV9taWIncy4KCSAgLSBtb3JlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgoJCjIwMDAtMTEtMTYgMTE6MzQgIGhhcmRha2VyCgoJLSAoVDA1M2FnZW50djF0cmFwLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU4YWdlbnRhdXRodHJhcCk6CgkgIC0gbmV3IHRlc3RzIGZvciB0cmFwcyBzZW50IGJ5IHRoZSBhZ2VudC4KCQoyMDAwLTExLTE2IDA5OjU2ICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogRG9uJ3QgZGVsZXRlIFJFQURPTkxZIHRyYXAgc2Vzc2lvbnMuCgkKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtKTogdGVzdCBpbmZvcm0gc2VuZGluZy9yZWNlaXZpbmcuCgkKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwLmMsIG1hbi9zbm1wdHJhcC4xKTogc3VwcG9ydCAtQ2kgZm9yIHNlbmRpbmcgaW5mb3Jtcy4KCQoyMDAwLTExLTE1IDE1OjQ4ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZF9sb2cuYyk6IHVzZSBTTk1QX01BWEJVRiBpbnN0ZWFkIG9mIGEgbG9jYWwgbGVuZ3RoIGRlZmluaXRpb24uCgkKMjAwMC0xMS0xNSAxNDoxOCAgbmJhCgoJLSBNYWtlZmlsZS5pbjogZml4IG1ha2UnaW5nIGluIHJlbW90ZSBkaXJlY3RvcnkKCQoyMDAwLTExLTE1IDE0OjExICBuYmEKCgktIG1haW4uYzogdXBkYXRlIHRvIHVzZSBnZXRvcHQgZm9yIGFyZ3VtZW50IHBhcnNpbmcuCgkKMjAwMC0xMS0xNSAxNDoxMCAgbmJhCgoJLSBzbm1wX2FnZW50LmM6IGZpeCBhIGNvbmZ1c2luZyBpbmRlbnRhdGlvbi4KCQoyMDAwLTExLTE1IDE0OjA5ICBuYmEKCgktIGFnZW50X3RyYXAuYzogbWFrZSBzdXJlIGNvbW11bml0eSBpcyBcMC10ZXJtaW5hdGVkIGluIHRhcmdldFBhcmFtc1RhYmxlCgkKMjAwMC0xMS0xNSAxNDowMyAgbmJhCgoJLSBzbm1wdHJhcGRfbG9nOiBmaXggYSBidWZmZXIgdGhhdCBpcyB3YXkgdG9vIHNob3J0IGZvciBhIHRyYXAgd2l0aCBqdXN0IGEKCQlzaW5nbGUgcGFyYW1ldGVyLiBGaXggYSBiYWQgbGltaXQgdGVzdCBpbiBzdHJfYXBwZW5kLgoJCjIwMDAtMTEtMTUgMTQ6MDAgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS5jOiBmaXggYSBzdHVwaWQgcGVycm9yIGZvciBzbm1wX3BlcnJvcgoJCjIwMDAtMTEtMTUgMTM6NTggIG5iYQoKCS0gcGFyc2UuW2NoXSwgbWliLmM6IGVuaGFuY2UgdGhlIHBhcnNlciB0byBkaXN0aW5ndWlzaCBJTlRFR0VSLCBJbnRlZ2VyMzIsCgkJVW5zaWduZWQzMiwgVUludGVnZXIzMi4KCQoyMDAwLTExLTE1IDEzOjU1ICBuYmEKCglzbm1wX2FwaS5jOiByZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCgkKMjAwMC0xMS0xNSAwNzo0OSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuYywgc3ViYWdlbnQuYyk6IFBhdGNoIGZyb20gTGF3cmVuY2UgR3JlZW5maWVsZDoKCSAgLSBEb24ndCBtYWtlIGluaXRfYWdlbnQoKS9zdWJhZ2VudF9wcmVfaW5pdCgpIGV4aXQgYnV0IHJldHVybiBhbgoJICAgIGVycm9yIGNvbmRpdGlvbiBpbnN0ZWFkLgoJCjIwMDAtMTEtMTIgMDg6MDggIGhhcmRha2VyCgoJLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkIE5VTEwgdG8gZW5kIG9mIGRlbW8gc3RyaW5nIGFuZCBjaGVjayBmb3IgbGVuPTAuCgkKMjAwMC0xMS0xMiAwNDo0NSAgbmJhCgoJc25tcF9hcGkuYzogTWFrZSBzdXJlIHRoZSBub1JhbmdlQ2hlY2sgdG9rZW4gaXMgYSBib29sZWFuCgkKMjAwMC0xMS0xMiAwNDo0MSAgbmJhCgoJLSBtaWIuYzogZ2l2ZSB0aGUgdHJlZS10b3AgYSBuYW1lIHRvIHByb3RlY3QgZXJyb3IgbWVzc2FnZSB3aGVuIGxvb2tpbmcgdXAgLmZvbwoJCjIwMDAtMTEtMTIgMDQ6MzYgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS5jOiB1c2UgY29uZmlnX3BlcnJvciBmb3IgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZQoJCjIwMDAtMTEtMTIgMDQ6MzQgIG5iYQoKCS0gcHJveHkuYzogcmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTExLTEyIDA0OjMzICBuYmEKCgktYWdlbnRfdHJhcHMuYzogTW92ZSBhIGNvbmRpdGlvbmFsbHkgdXNlZCB2YXJpYWJsZQoJCjIwMDAtMTEtMTIgMDQ6MzIgIG5iYQoKCUZpeCBhIGJvZ3VzICNpZmRlZgoJCjIwMDAtMTEtMTAgMDk6MTggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhcHBseSBwYXRjaCAjMTAyMjI0IGZyb20gamJwbiBmb3IgY3Jvc3MtY29tcGlsaW5nLgoJCjIwMDAtMTEtMTAgMDg6NTYgIGhhcmRha2VyCgoJLSAodGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCk6CgkgLSBmaXJzdCBwYXNzIGF0IGEgdGVzdGluZyBzY3JpcHQgdG8gdGVzdCB0cmFwIGZ1bmN0aW9uYWxpdHkuCgkgICAtIHdoaWNoIGV2ZW4gdW5jb3ZlcmVkIGEgYnVnLgoJCjIwMDAtMTEtMTAgMDg6NTUgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGQuYyk6CgkgIC0gZm9yayBpZiBmaWxlIGxvZ2dpbmcgb3Igc3lzbG9nZ2luZywgYnV0IG5vdCBwcmludGluZy4KCSAgLSBkb24ndCBjbG9zZSBvcGVuIGZpbGUgZGVzY3JpcHRvcnMuICBUaGVyZSBzaG91bGRuJ3QgYmUgYW55LgoJCjIwMDAtMTEtMTAgMDg6NTMgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGRfbG9nLmMpOiBwcm9wZXJseSBudWxsIHRlcm1pbmF0ZSBsb2cgc3RyaW5ncy4KCQoyMDAwLTExLTA5IDE2OjQwICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZS5pbik6IGF0dGVtcHQgdG8gaW1wbGVtZW50IGEgLS13aXRoLXJzYXJlZiBmbGFnLgoJCjIwMDAtMTEtMDkgMTU6MzIgIGhhcmRha2VyCgoJLSAoUkVBRE1FLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgoJCjIwMDAtMTEtMDkgMTU6MzEgIGhhcmRha2VyCgoJLSAoTkVXUywgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KCQoyMDAwLTExLTA5IDE0OjU2ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGVzL2J1bGt3YWxrLnBsLCB0L2J1bGt3YWxrLnQpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCgkKMjAwMC0xMS0wOSAxNDo1MyAgaGFyZGFrZXIKCgktIChNQU5JRkVTVCwgUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgoJCjIwMDAtMTEtMDggMjM6MzMgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGZpeCAtSCBvdXRwdXQuCgkKMjAwMC0xMS0wOCAyMzowMiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBtYWtlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgY2FsbCBydW5fYWxhcm1zKCkuCgkKMjAwMC0xMS0wOCAyMjo0NSAgaGFyZGFrZXIKCgktIChkaXNraW8uYyk6IGZpeCBPSUQuCgkKMjAwMC0xMS0wOCAxNzowNiAgaGFyZGFrZXIKCgktIChTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBNYXJrIENhdmFnZSBmb3IgZGVmYXVsdCB2YWx1ZSBzdXBwb3J0LgoJCjIwMDAtMTEtMDggMTc6MDMgIGhhcmRha2VyCgoJLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBtaW5pbWFsIERFRlZBTCBwYXJzaW5nIHN1cHBvcnQuCgkKMjAwMC0xMS0wOCAxNjoyMCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGxpYnJzYXJlZiwgZXRjLCBpZiBuZWVkZWQuCgkKMjAwMC0xMS0wNyAxNToxNSAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCgkgIGFnZW50L3NubXBkLmMpOgoJICAtIHVpZC9naWQgY2hhbmdlcy4KCQoyMDAwLTExLTA3IDE1OjEwICBoYXJkYWtlcgoKCS0gKFNOTVAueHMpOiBmaXggVFlQRV9OT1RJRiAtPiBUWVBFX05PVElGVFlQRS4KCQoyMDAwLTExLTA3IDExOjMwICBoYXJkYWtlcgoKCS0gKFNOTVAvU05NUC5wbSwgU05NUC9TTk1QLnhzKTogUGF0Y2ggZnJvbSBKb2UgQ2xhcmtlOgoJICAtIGltcGxlbWVudCBiZXN0LWd1ZXNzICgtSWIpIHBhcnNpbmcuCgkgIC0gYWNjZXNzIHRvIHRyYXAgdmFyYmluZHMuCgkgIC0gcmFuZ2UgYWNjZXNzLgoJCjIwMDAtMTEtMDcgMTE6MDAgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBidWlsZCBjcmVhdGVkIGZpbGVzLgoJCjIwMDAtMTEtMDcgMTA6NTggIGhhcmRha2VyCgoJLSAoUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gaW1wbGVtZW50IGEgZmluaXNoKCkgY2FsbC4KCQoyMDAwLTExLTA3IDEwOjU0ICBoYXJkYWtlcgoKCS0gKFNOTVAvU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIG11bHRpcGxlIGNhbGxiYWNrIHBhdGNoIGZvciBwZXJsL1NOTVAvU05NUC54cy4KCQoyMDAwLTExLTA3IDEwOjQ4ICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgb3B0aW9uYWwgY29uZmlnIGZpbGUgRE5FLgoJCjIwMDAtMTEtMDcgMTA6NDEgIGhhcmRha2VyCgoJLSAoU05NUC5wbSk6IGZpeCBpaWQgcGFyc2luZyB3aXRoIHJlc3BlY3QgdG8gbWliIG5vZGVzIHdpdGggYSAtIGluIGl0LgoJCjIwMDAtMTEtMDcgMTA6MjkgIGhhcmRha2VyCgoJLSAoaWZfZmllbGRzLmgsIGludGVyZmFjZXMuYywgaXBNZWRpYS5jLCBpcFJvdXRlLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLAoJICB1ZHAuYywgdWRwVGFibGUuYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBtaWJKSiBmaXhlcyBbRnJlZUJTRC9vdGhlciBCU0Qnc10uCgkKMjAwMC0xMS0wNyAxMDoxMyAgaGFyZGFrZXIKCgktIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLAoJICBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBpbXBsZW1lbnQgdWlkL2dpZCBjaGFuZ2VzIGFmdGVyIHN0YXJ0dXAgZm9yIHRoZSBhZ2VudC4KCQoyMDAwLTExLTA3IDA4OjMzICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogYSBiZXR0ZXIgc2FuaXR5IGNoZWNrIGZvciBzZXNzaW9uIGRlbGV0aW9uLgoJCjIwMDAtMTEtMDcgMDc6MjQgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmMpOiBQYXRjaCBmcm9tIERhdmUgdG8gc2FuaXR5IGNoZWNrIHBhcmFtLT51cGRhdGVUaW1lLgoJCjIwMDAtMTEtMDYgMTE6MDAgIGhhcmRha2VyCgoJLSAobWQ1LmMpOiBjaGVjayB0byBzZWUgdGhhdCBNRHNpZ24oKSBkYXRhIGxpZXMgb24gYSAzMiBieXRlIGJvdW5kcnkuCgkgIC0gaXRzIHBvc3NpYmxlIHNvbWUgY29tcGlsZXJzIHdpbGwgY2hva2Ugb24gdGhpcyBoYWNrLgoJICAtIGZpeGVzIGJ1ZyAjMTIxNzUuCgkKMjAwMC0xMS0wMyAxNzo1NCAgaGFyZGFrZXIKCgktIChtaWIyYyk6IHNvcnQgT0lEcyBwcm9wZXJseS4KCQoyMDAwLTExLTAzIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZml4IG1pYiByZWdpc3RyYXRpb25zIGZvciBkdXBsaWNhdGUgT0lEcyBiZWluZyB1c2VkIGZvciB0aGUgdHJhcCBleGFtcGxlcy4KCQoyMDAwLTExLTAzIDE1OjMxICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KCSAgLSBVbSwgYXBwbGllZCBjb3JyZWN0bHkgdGhpcyB0aW1lIChJIGhvcGUpLgoJCjIwMDAtMTEtMDMgMTU6MjkgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IHNlY29uZCBwYXRjaCBmcm9tIGRvdWd3YXJ6IGluIGJ1ZyAjMTE3MjczIHRvIGZpeCBzbXV4IHByb2JsZW1zLgoJCjIwMDAtMTEtMDIgMjI6MTkgIG5iYQoKCUNsZWFuIHVwIHNvbWUgdW51c2VkIHZhcmlhYmxlcyBldGMuCgkKMjAwMC0xMS0wMiAyMjoxNiAgbmJhCgoJLSBNYWtlZmlsZS5pbjogZml4IHNvbWUgJChzcmNkaXIpIHJlZmVyZW5jZXMgd2hlbiBydW5uaW5nIG91dHNpZGUgc291cmNlCgkKMjAwMC0xMS0wMiAyMjoxNSAgbmJhCgoJLSBzbm1wdHJhcGQuYzogZml4IHRoZSBmb3JtYXQgc3RyaW5nIGZvciBmb3JtYXRfdHJhcAoJCjIwMDAtMTEtMDIgMjI6MTQgIG5iYQoKCS0gTWFrZWZpbGUuaW46IHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMgZnJvbSBmaWxlIGxpc3RzCgkKMjAwMC0xMS0wMiAyMjoxMiAgbmJhCgoJRG9jdW1lbnQgdGhlIC1PWCBvdXRwdXQgb3B0aW9uCgkKMjAwMC0xMS0wMiAyMjoxMSAgbmJhCgoJRG9jdW1lbnQgdGhlIHN5c3NlcnZpY2VzIHRva2VuCgkKMjAwMC0xMS0wMiAxNjoxNyAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oKTogYWRkIHVjZC1zbm1wL3Byb3h5LgoJCjIwMDAtMTEtMDIgMTY6MTYgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IGNoYW5nZSBjdnMgYXJjaGl2ZSBzaXRlIGFuZCBwYWNrYWdlIG5hbWUuCgkKMjAwMC0xMS0wMiAxMzoyMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCAxMDIyMzkgZnJvbSBkb3Vnd2FyeiB0byBmaXggYSBwcmV2aW91c2x5IGJhZCBzbXV4LmMgcGF0Y2guCgkKMjAwMC0xMS0wMSAxNjozNiAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUxICkKCQoyMDAwLTExLTAxIDE2OjE0ICBoYXJkYWtlcgoKCS0gKFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LCBUMTIycHJveHlzZXRmYWlsKTogcHJveHkgdGVzdCBzdWl0ZS4KCQoyMDAwLTExLTAxIDE2OjA4ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmgpOgoJICAtIG1pbmltYWwgU0VUIHN1cHBvcnQgZm9yIHRoZSBwcm94eSBjb2RlLgoJCjIwMDAtMTEtMDEgMTA6MjIgIGhhcmRha2VyCgoJLSAoVDExMmFnZW50eHNldGZhaWwpOiB0ZXN0IGZvciBhZ2VudHggc2V0cyB0aGF0IHNob3VsZCBmYWlsIHByb3Blcmx5LgoJCjIwMDAtMTAtMzEgMTQ6MzAgIG5iYQoKCS0gdGNwVGFibGUuYzogcmVtb3ZlIGFuIHVubmVzY2Vzc2FyeSAjaW5jbHVkZQoJCjIwMDAtMTAtMzEgMTQ6MjggIG5iYQoKCS0gc211eC5jOiBmaXggd3JvbmcgdmFyaWFibGUgbGVuZ3RoCgkKMjAwMC0xMC0zMSAxNDoyNSAgbmJhCgoJLSBwcm90b2NvbC5jOiBmaXggc29tZSBzdXNwaWNpb3VzIGxvb2tpbmcgY29kZQoJCjIwMDAtMTAtMzEgMTQ6MjEgIG5iYQoKCS0gbWFuL3NubXBkLmNvbmY6IGZpeCBhIHR5cG8KCQoyMDAwLTEwLTMxIDEyOjQxICBuYmEKCgktIG1pYi5jOiBhZGQgLU9YIG91dHB1dCBmb3JtYXQsIGZvciBqdXN0IGFub3RoZXIgd2F5IG9mIHByaW50aW5nIGluZGljZXMKCQoyMDAwLTEwLTMxIDEyOjI3ICBuYmEKCgktIGludGVyZmFjZS5jOiBhZGQgImludGVyZmFjZSIgY29uZmlnIGZvciB1bmd1ZXNzYWJsZSBpbnRlcmZhY2UgdHlwZS9zcGVlZAoJCjIwMDAtMTAtMzEgMTI6MjUgIG5iYQoKCS0gYXBwcy8qOiBtYWtlIHN1cmUgd2UgcmVwb3J0IGFueSBlcnJpbmRleC9lcnJjb2RlIGluIHRoZSByZXNwb25zZQoJCjIwMDAtMTAtMzEgMTI6MDQgIG5iYQoKCS0gcHJvdG9jb2wuYzogY2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTMxIDEwOjEzICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IHBhdGNoICMxIGZyb20gYnVnICMxMTcyNzMgYXBwbGllZCB0byBmaXggc211eCBzb2NrZXQgcHJvYmxlbXMuCgkKMjAwMC0xMC0zMSAwOToyNCAgaGFyZGFrZXIKCgktIChTTk1QLnhzKTogcHJpbnQgY291bnRlcjY0J3MgYXMgdW5zaWduZWQuCgkKMjAwMC0xMC0zMSAwNzo1NCAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc3ViYWdlbnQuYywgc25tcE5vdGlmeVRhYmxlLmMsCgkgIHNubXBOb3RpZnlUYWJsZS5oKTogUGF0Y2ggZnJvbSBEYXZlOgoJICAtIGZpeCBub3RpZmljYXRpb25zIGZyb20gYWdlbnR4IHN1YmFnZW50cy4KCQoyMDAwLTEwLTMwIDIyOjAzICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IGZpeCBidWcgIzExOTc4NjogbWFrZSBzbXV4IHJldXNlIHNvY2tldCBhZGRyZXNzLgoJCjIwMDAtMTAtMzAgMjE6NDIgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCwgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCk6CgkgIC0gZml4IGJ1ZyAjMzgyCgkgIC0gZml4IGFnZW50eCBub24tcm9vdCB0ZXN0cyB0byB1c2UgLXggL3RtcC9ibGFoL2FnZW50eF9zb2NrZXQuCgkKMjAwMC0xMC0zMCAxMzo0NSAgaGFyZGFrZXIKCgktIChzbm1wZC4xLmRlZik6IGZpeCBhIHR5cG8gcG9pbnRlZCBvdXQgYnkgQ2hyaXMgUGVwcGVyLgoJCjIwMDAtMTAtMzAgMTE6NDYgIGhhcmRha2VyCgoJLSAodGVzdHMvVDExMWFnZW50eHNldCk6IHRlc3Qgc2NyaXB0IGZvciBBZ2VudFggc2V0IHN1cHBvcnQuCgkKMjAwMC0xMC0zMCAxMTo0MyAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMTEwYWdlbnR4Z2V0KTogaGVhZGVyIGNoYW5nZWQgdG8gaW5jbHVkZSB0aGUgd29yZCBHRVQuCgkKMjAwMC0xMC0zMCAxMToxMyAgbmJhCgoJLSB1Y2Qtc25tcC92bXN0YXRfKiwgbWVtb3J5X2ZyZWVic2QyLmMsIGRsbW9kLmM6IE1ha2Ugc3NSYXdDcHUgb2JqZWN0cyBDb3VudGVycywKCQlhbmQgYWRkIHN1cHBvcnQgZm9yICpCU0QgKGluY2x1ZGluZyBPcGVuQlNEKQoJCjIwMDAtMTAtMzAgMTE6MDcgIG5iYQoKCS0gQ2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTMwIDExOjA0ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvdGVzdHMvVDEwMWFnZW50eCwgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0KToKCSAgLSByZW5hbWVkIHRoZSBhZ2VudHggdGVzdCBzY3JpcHQuCgkKMjAwMC0xMC0zMCAxMTowMyAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBkb24ndCBhZGQgLWMgQ09ORklHRklMRSBpZiBpdCBkb2Vzbid0IGV4aXN0LgoJCjIwMDAtMTAtMzAgMTA6MzkgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IGVycm9yIHdoZW4gcGFyc2luZyAtWCBmb3Igbm9uLWFnZW50eCBidWlsZHMuCgkKMjAwMC0xMC0yNyAxMToyOSAgaGFyZGFrZXIKCgktIChhcHBzL3NubXB0cmFwZC5jKTogYWRkIC1vIGZsYWcgdG8gbG9nIHRvIGEgcGFydGljdWxhciBmaWxlLgoJCjIwMDAtMTAtMjcgMTA6NDEgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogdXNlIG1rc3RlbXAgaWYgYXZhaWxhYmxlLgoJCjIwMDAtMTAtMjcgMTA6NDAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU2VhcmNoIGZvciBta3N0ZW1wKCkuCgkKMjAwMC0xMC0yNyAxMDowOCAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgbGludXgga2VybmVsIGxpc3QgdG8gaW5jbHVkZSAyLjIuCgkKMjAwMC0xMC0yNiAxNzo1MSAgaGFyZGFrZXIKCgktIChldmFsX3Rvb2xzLnNoKTogbWFrZSBTS0lQSUZOT1QgY2hlY2sgdGhlIG1pYiBtb2R1bGUgbGlzdCB0b28uCgkKMjAwMC0xMC0yNiAxNzo0OCAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMTAxYWdlbnR4KTogQWdlbnRYIHN1YmFnZW50IHRlc3QgZm9yIHNpbXBsZSBnZXQgcmV0cmlldmFsLgoJCjIwMDAtMTAtMjUgMTc6NDQgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IEFkZCAtWCBvcHRpb24gdG8gc25tcGQgdG8gcnVuIGFzIGEgc3ViYWdlbnQuCgkKMjAwMC0xMC0yNSAxNzowNiAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogZml4IGZvciBjYXNlcyB3aGVuZSBkZWJ1Z2dpbmcgaXMgYWx3YXlzIG9mZi4KCQoyMDAwLTEwLTE3IDE1OjMwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciBydW4KCQoyMDAwLTEwLTE2IDAzOjEzICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXIuYyk6IFNwZWNpZnkgdGhlIGxlbmd0aCBvZiB0aGUgKHBzZXVkby0pYW5zd2VyIHRvIGEgcmVxdWVzdC4KCQlUaGlzIGFsbG93cyBpdCB0byBiZSBjYWNoZWQgY29ycmVjdGx5IGZvciBtdWx0aS1wYXNzIFNFVCBoYW5kbGluZy4KCQoyMDAwLTEwLTE2IDAzOjExICBkYXZlcwoKCS0gKGFnZW50eC9zdWJhZ2VudC5jKTogRG9uJ3Qgb3ZlcndyaXRlIHNhdmVkIG1vZGUgaW5mb3JtYXRpb24KCQlUaGlzIHNob3VsZCBoZWxwIHdpdGggKHNvbWUgb2YpIHRoZSBTRVQgaGFuZGxpbmcgcHJvYmxlbXMuCgkKMjAwMC0xMC0xNiAwMTo1NiAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IERvbid0IGZyZWUgY2FsbGJhY2sgZGF0YSBzdHJ1Y3R1cmUuCgkJVGhpcyBob2xkcyBpbmZvcm1hdGlvbiB0aGF0IG5lZWRzIHRvIHBlcnNpc3QgYWNyb3NzIG11bHRpLXBhc3MgcmVxdWVzdHMuCgkJSSByZWFsaXNlIHRoYXQgdGhpcyBpbnRyb2R1Y2VzIGEgbWVtb3J5IGxlYWssIGJ1dCB0aGlzIGlzbid0IHRoZQoJCWNvcnJlY3QgcGxhY2UgdG8gaGFuZGxlIHRoaXMuCgkKMjAwMC0xMC0xMiAxNDo1MiAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogYWRkIC1JIHRvIHRoZSBoZWxwIG91dHB1dC4KCQoyMDAwLTEwLTEyIDE0OjI0ICBoYXJkYWtlcgoKCS0gKGFnZW50L2RsbW9kcy8qKTogcmVtb3ZlIG9ic29sZXRlIHZlcnNpb25zCgkKMjAwMC0xMC0xMiAxNDowOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUpOiB1cGRhdGUuCgkKMjAwMC0xMC0xMiAxNDowMSAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBNYXR0IEJyYWl0aHdhaXRlOgoJICAtIHVkcCBjb25maWd1cmF0aW9uIGNoYW5nZXMgdG8gY2hlY2sgZm9yIG1pc2Mgc3RydWN0dXJlIGRlZmluaXRpb25zLgoJCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgoJLSAoVFVOTkVMLU1JQi50eHQpOiBUVU5ORUwtTUlCIGRlZmluaXRpb24uCgkKMjAwMC0xMC0xMiAxMzo0OCAgaGFyZGFrZXIKCgktICh0dW5uZWwuaCk6IGNvbmZpZ19hZGRfbWliKFRVTk5FTC1NSUIpLgoJCjIwMDAtMTAtMTIgMTM6NDcgIGhhcmRha2VyCgoJLSAodHVubmVsLmgsIHR1bm5lbC5jLCB0dW5uZWwuaCk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBpbXBsZW1lbnQgdGhlIFRVTk5FTC1NSUIuCgkKMjAwMC0xMC0xMCAxNDozMyAgbXNsaWZjYWsKCglGaXggdW5saW5rX3RyZWUgZm9yICJ0b3AgbGV2ZWwiIHRyZWUgbm9kZXMuCgkKMjAwMC0xMC0xMCAxMTowMiAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IHJldmVyc2UgbGlicmFyeSBsaW5rIG9yZGVyaW5nIGFnYWluLi4uCgkKMjAwMC0xMC0xMCAwOTowMyAgbXNsaWZjYWsKCglSZW1vdmUgcmVsYXRpdmUgcGF0aCB0byBpbmNsdWRlIHN5c3RlbS5oLgoJCjIwMDAtMTAtMTAgMDY6NTMgIG1zbGlmY2FrCgoJUmVtb3ZlIHVubmVlZGVkIGRlY2wgb2YgdnNucHJpbnRmIHdpdGhvdXQgc3RkYXJnL3ZhcmFyZ3MgZGVjbCBvZiB2YV9saXN0LgoJCjIwMDAtMTAtMTAgMDU6MTUgIG1zbGlmY2FrCgoJQXBwbHkgcGF0Y2ggZm9yIERFQyBBbHBoYSBFVjYsIHN1cHBsaWVkIGJ5IFNodW1vbiBIdXF1ZTxzaHVxdWVAaXNjLnVwZW5uLmVkdT4KCQoyMDAwLTEwLTA5IDE3OjA2ICBtc2xpZmNhawoKCXBhdGNoIHRvIGZpeCBsZWFkaW5nIHplcm8gZXJyb3IgaW50cm9kdWNlZCBieSBjaGFuZ2VzIGZvciBzaHV0ZG93bl9taWIuCgkKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCgktIChkbG1vZC5jKTogbWlub3IgZGVidWdnaW5nIG91dHB1dCBhZGRpdGlvbnMuCgkKMjAwMC0xMC0wOSAxNTo1MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IG1vdmUgYXV0b19ubGlzdCB0byBsaWJ1Y2RtaWJzLgoJCjIwMDAtMTAtMDkgMTE6NDMgIGhhcmRha2VyCgoJLSAoRkFRLCBSRUFETUUpOiBhZGQgbmV3IG1pcnJvci4KCQoyMDAwLTEwLTA5IDEwOjI2ICBtc2xpZmNhawoKCU1vdmUgY29uZmlnLSBhbmQgc3RvcmUtcmVsYXRlZCBjbGVhbnVwIGZyb20gc2h1dGRvd25fbWliIHRvIHNubXBfc2h1dGRvd24uCgkKMjAwMC0xMC0wOSAwMjozNiAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBRdWFsaWZ5IGFuIGluZGl2aWR1YWwgaW50ZXJmYWNlIHR5cGUgdGVzdCBzeW1ib2wKCQkoUW46IHNob3VsZCBhbnkvYWxsIG9mIHRoZSBvdGhlcnMgYmUgcXVhbGlmaWVkIGFzIHdlbGw/KQoJCjIwMDAtMTAtMDYgMDg6NTYgIG1zbGlmY2FrCgoJU3VwcG9ydCBmb3Igc2h1dGRvd25fbWliIC0gY2xlYXJpbmcgdGhlIE1JQiB0cmVlcyBhbmQgY29uZmlndXJlZCByZWdpc3RyYXRpb25zLgoJCjIwMDAtMTAtMDYgMDU6MzMgIG1zbGlmY2FrCgoJUGx1ZyBtZW1vcnkgbGVhayBmb3IgdWNkLXN1cHBsaWVkIHNldGVudiBvbiBXaW4zMiBwbGF0Zm9ybS4KCQoyMDAwLTEwLTA2IDA0OjU4ICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoJCjIwMDAtMTAtMDUgMjM6NDUgIG5iYQoKCS0gbWliLmM6IGZpeCBzaWxseSBidWcgaW4gbmV3IG9pZCBwYXJzZXIsIHdoZW4gbGVhdmluZyB0aGUgdHJlZSBhbmQgZ29pbmcKCQlpbnRvIHN1Yi1pZHMgd2Uga25vdyBub3RoaW5nIGFib3V0CgkKMjAwMC0xMC0wNSAxNjowMyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jeSBvcmRlci4KCQoyMDAwLTEwLTA0IDE3OjU5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCAiZXh0ZW5kaW5nIiBzbm1wY29uZiBmaWxlLgoJCjIwMDAtMTAtMDQgMTc6NTggIGhhcmRha2VyCgoJLSAoZXh0ZW5kaW5nKTogYWRkIHNubXBjb25mIHN1cHBvcnQgZm9yIGV4dGVuZGluZyB0aGUgYWdlbnQgKHBhc3MsIGV4ZWMsIC4uLikKCQoyMDAwLTEwLTA0IDE3OjU4ICBoYXJkYWtlcgoKCS0gKG1vbml0b3IpOiBtaXNjIHVwZGF0ZXMgYW5kIGFkZCAiZmlsZSIgd2F0Y2hpbmcuCgkKMjAwMC0xMC0wNCAxNzo1NyAgaGFyZGFrZXIKCgktIChhY2wpOiBkb24ndCBzcGVjaWZ5IGxpbmUgc3BlY2lmaWNhdGlvbnMgZm9yIGRlZmF1bHQgc25tcGNvbmYgdXNhZ2UuCgkKMjAwMC0xMC0wNCAxNDo1MCAgbmJhCgoJLSBGQVE6IGZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuICJvbWl0IiBhbmQgImluY2x1ZGUiCgkKMjAwMC0xMC0wNCAxMzoyNSAgaGFyZGFrZXIKCgktIChwYXNzX3BlcnNpc3QuYyk6IG9wYXF1ZXMgaW4gcGFzc19wZXJzaXN0LgoJCjIwMDAtMTAtMDQgMTA6MzUgIGhhcmRha2VyCgoJLSAocGFzcy5jKTogc3VwcG9ydCBvcGFxdWUgcmV0dXJuIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDc6MTUgIG1zbGlmY2FrCgoJRml4IHBhcnNpbmcgcHJvYmxlbSBmb3IgLVBjIG9wdGlvbjsgcmVwb3J0ZWQgYnkgQ2hyaXN0aWFuIE1hdXRuZXIuCgkKMjAwMC0xMC0wNCAwNzowMiAgbXNsaWZjYWsKCglxdWFsaWZ5IG5ldyBpL2YgdHlwZXMuCgkKMjAwMC0xMC0wNCAwNjo1MiAgbXNsaWZjYWsKCglxdWFsaWZ5IHN5bWJvbHMgZm9yIG5ldyBpL2YgdHlwZXMuCgkKMjAwMC0xMC0wNCAwNjo1MSAgbXNsaWZjYWsKCglUZXJtaW5hdGUgbGlzdCB0byBjb21waWxlIChhZGQgYSBjb21tYSkuCgkKMjAwMC0xMC0wNCAwMDoxOCAgbmJhCgoJLSBzbm1wdGFibGUuYzogaW5kZXggY29sdW1udCAoLUNpKSB3aWR0aCBub3QgcHJvcGVybHkgY29tcHV0ZWQgd2hlbiB1c2luZwoJCUdFVEJVTEsKCQoyMDAwLTEwLTAzIDE4OjE5ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGFkZCBhIHBhc3NiYWNrIGFyZ3VtZW50IHRvIHJlZ2lzdGVyX3JlYWRmZCgpIGNhbGxiYWNrcy4KCQoyMDAwLTEwLTAzIDE4OjE3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBtb3ZlIGF1dG9fbmxpc3Quby9sbyB0byBsaWJ1Y2RhZ2VudCBzaW5jZSBzb21lIG1pYi1tb2R1bGVzIG5lZWQgaXQuCgkKMjAwMC0xMC0wMyAxODowNyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvY2hlbiBGcmllZHJpY2g6CgkgIC0gZml4IGdldG5leHQgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgoJCjIwMDAtMTAtMDMgMTc6MjYgIGhhcmRha2VyCgoJLSAobWliSkovaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCgkKMjAwMC0xMC0wMyAxNzoyNCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gYmV0dGVyIGlmdHlwZSBndWVzc2luZy4KCQoyMDAwLTEwLTAzIDE2OjUyICBoYXJkYWtlcgoKCS0gKHNtdXguYyk6IFBhdGNoIGZyb20gRG91ZyBXYXJ6ZWNoYToKCSAgLSBmaXggb2lkIHBhcnNpbmcgaW4gdHJhcHMuCgkKMjAwMC0xMC0wMyAxNjoyMyAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMsIGV4YW1wbGUuaCk6IGV4YW1wbGUgb2YgY29kaW5nIGEgdjIgdHJhcCBmcm9tIHNvbWVvbmUgd2hvCgkgIEkgaGF2ZSB2ZXJ5IHNhZGx5IGZvcmdvdHRlbi4gIEkndmUgYmVlbiBsb29raW5nIGZvciB0aGF0IG1lc3NhZ2UgZm9yCgkgIGEgd2hpbGUgdG8gcHJvcGVybHkgYXR0cmlidXRlIHRoaXMgcGF0Y2guICBTaWdoLgoJCjIwMDAtMTAtMDMgMTY6MjEgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEb3VnbGFzIFdhcnplY2hhOgoJICAtIHNubXBkIHJldHVybnMgd3JvbmcgZXJyb3IgaW5kZXggb24gU05NUHYxIHJlcXVlc3QgKEJVRyMzNzUpLgoJCjIwMDAtMTAtMDMgMDk6MTIgIG1zbGlmY2FrCgoJRml4IG51bGwgZGVyZWYgb2Ygc3MtPmNvbW11bml0eSwgcmVwb3J0ZWQgYnkgSmltIFBpY2tlcmluZy4KCQoyMDAwLTEwLTAzIDA4OjAzICBtc2xpZmNhawoKCUNhc3RpbmcgdG8gZml4IHByb2JsZW1zIGJ1aWxkaW5nIHdpdGggYUNDCglUaGFua3MgdG8gTWFya2t1IExhdWtrYW5lbiA8cGt5QG1vcmVtYWdpYy5jb20+CgkKMjAwMC0xMC0wMyAwNTo1OSAgbXNsaWZjYWsKCglSZW1vdmUgY2hkaXIgdG8gdW5kbyBmaXggZm9yIChCVUcjMjk4KQoJCjIwMDAtMTAtMDIgMjE6NDEgIG5iYQoKCS0gbWliLmM6IEVzY2FwZSAiIGFuZCBcIGluIHRleHQgc3RyaW5ncy4KCQoyMDAwLTEwLTAyIDIxOjM5ICBuYmEKCgktIHNubXBfbG9nZ2luZy5jOiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgoJCjIwMDAtMTAtMDIgMjE6MzggIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBhIG1pc3NpbmcgJChzcmNkaXIpIGR1cmluZyBtYWtlIGluc3RhbGwgb2YgbWliMmMKCQljb25maWd1cmF0aW9uIGZpbGVzCgkKMjAwMC0xMC0wMiAyMTozNyAgbmJhCgoJLSBzbm1wc2V0LmM6IERvIGEgZXhpdCgyKSBmb3IgZmFpbHVyZSBpbiBzZXR0aW5nIHRoZSB2YXJpYWJsZS4KCQoyMDAwLTEwLTAyIDIxOjM2ICBuYmEKCgktIGhyX3N3cnVuLmM6IGFkZCBhIHNhZmVndWFyZCBmb3IgdmVyeSBsb25nIGFyZ3VtZW50IGxpc3RzLgoJCjIwMDAtMTAtMDIgMjE6MzQgIG5iYQoKCS0gaHJfZGlzay5jOiBBZGQgYSBuYW1lIHBhdHRlcm4gdGhhdCBtYXRjaGVzIHg4NiBJREUgZGlza3MgZm9yIFNvbGFyaXMuCgkKMjAwMC0xMC0wMiAyMTozMyAgbmJhCgoJLSBrZXJuZWxfc3Vub3M1LmM6IG1ha2UgdGhlIGJ1ZmZlciBmb3IgU0lPQ0dJRkNPTkYgZHluYW1pYy4KCQoyMDAwLTEwLTAyIDExOjQxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wdXNtLmguCgkKMjAwMC0xMC0wMiAxMDo0OCAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6CgkgIC0gbmV3IG9wdGlvbnMgZm9yIGluc3RhbGxpbmcgY3JlYXRlZCBmaWxlcy4KCSAgLSBtb3JlIGNvbW1lbnRzIGluIHRoZSBjb2RlLgoJICAtIGFsbG93IHJlYWRpbmcgYSAuY29uZiBkaXJlY3RseSB0byB3cml0aW5nIGZvciBhdXRvLWNvbW1lbnRpbmcgLmNvbmYgZmlsZXMuCgkgIC0gbWlzYy4KCQoyMDAwLTEwLTAyIDEwOjQ3ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLWxlc3MuCgkKMjAwMC0xMC0wMiAwOTozNSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBwcm90ZWN0IGFnYWluc3QgMCBieXRlIHN0YXRQIG1hbGxvY3MuCgkKMjAwMC0xMC0wMiAwOToxNCAgaGFyZGFrZXIKCgktIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgoJICAtIGZpeCBpbnRlcmZhY2VzLmMgZm9yIHZhcmlhYmxlIGxlbmd0aCBudW1iZXIgZm9ybWF0dGluZyBpbiAvcHJvYy9uZXQvZGV2LgoJCjIwMDAtMTAtMDEgMTY6NDAgIG1zbGlmY2FrCgoJUGVyIE5pZWxzIHJlY29tbWVuZGF0aW9uLCBjaGRpciB0byBQRVJTSVNURU5UX0RJUkVDVE9SWSAocmU6IGJ1ZyAjMjk4KQoJCjIwMDAtMDktMzAgMDg6NTcgIG1zbGlmY2FrCgoJRml4IERFQlVHTVNHVEwgbm90IGZvdW5kIGVycm9yIGZvciBidWlsZHMgd2l0aG91dCBkbG1vZCBzdXBwb3J0LgoJVGhhbmtzIHRvIHNpbW9uQHppZC50dXdlaW4uYWMuYXQKCQoyMDAwLTA5LTMwIDA4OjUwICBtc2xpZmNhawoKCUZpeCBzb21lIGtlcm5lbCBzeW1ib2xzIC0gdGhhbmtzIHRvIHNpbW9uQHppZC50dXdpZW4uYWMuYXQKCQoyMDAwLTA5LTI5IDE0OjM1ICBoYXJkYWtlcgoKCS0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCArIC5vIC0+IC5sbyBmaXhlcy4KCQoyMDAwLTA5LTI5IDE0OjI3ICBoYXJkYWtlcgoKCS0gKG1ha2VmaWxlaW5kZXBlbmQucGwpOiBza2lwIGVtcHR5IGRlcGVuZCBsaW5lcy4KCQoyMDAwLTA5LTI5IDE0OjA5ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogZHJvcCBkdXBsaWNhdGUgbGluZXMgZnJvbSByZWFkIGluIHNubXBkLmNvbmYgZmlsZXMuCgkKMjAwMC0wOS0yOSAxMzo0NiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNvcnQgdW5rbm93biBkaXJlY3RpdmVzIGJ5IGZpbGV0eXBlICh3aG9vcHMpLgoJCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgoJLSAobW9uaXRvcik6IG1pbm9yIHdvcmRpbmcgYWRqdXN0bWVudHMuCgkKMjAwMC0wOS0yOSAxMzo0MiAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHByaW50IG1vcmUgaW5mb3JtYXRpb24vY29tbWVudHMgdG8gdGhlIHNjcmVlbi4KCQoyMDAwLTA5LTI5IDExOjMxICBoYXJkYWtlcgoKCS0gKHZhcl9zdHJ1Y3QuaCk6IGluY3JlYXNlIHJlZ2lzdHJhdGlvbiBuYW1lIGxlbmd0aCB0byAzMiBmcm9tIDE2IChCdWcgIzE3MikKCQoyMDAwLTA5LTI5IDExOjEyICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBpbmNvcnJlY3QgdmFsIGxlbmd0aCBwYXNzZWQgdG8gcGFyc2VfdW5zaWduZWRfaW50IChCdWcgIzMzOSkuCgkKMjAwMC0wOS0yOSAxMTowMSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogZml4IEJ1ZyMzNTMgZm9yIGhvc3RuYW1lcyB0aGF0IGxvb2sgbGlrZSAiNXciLgoJICAtIGRvbid0IGludGVycHJldGUgdGhlbSBhcyBhbiBpcC1wb3J0LgoJCjIwMDAtMDktMjkgMTA6MzkgIGhhcmRha2VyCgoJLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb206CgkgIC0gVGhlcmUgaXMgYSBwZWN1bGlhcml0eSBpbiB0aGUgc25tcF9hbGFybV91bnJlZ2lzdGVyIGZ1bmN0aW9uIGluCgkgICAgc25tcGxpYi9zbm1wX2FsYXJtLmMgd2hpY2ggY2FuIGNhdXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAoQnVnICMzNjcpCgkKMjAwMC0wOS0yOSAxMDozNCAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IHVzZSBvZiBOVUxMIHRpbWVzdGFtcCBwb2ludGVyIGluIG5ldyByb3cgY3JlYXRpb24gKEJ1ZyAjMzQ2KQoJCjIwMDAtMDktMjggMTQ6MzggIG5iYQoKCS0gbWliX2FwaS4zOiBhZGQgYSBmZXcgZnVuY3Rpb25zIHRvIHRoZSBoZWFkZXIKCQoyMDAwLTA5LTI4IDE0OjE0ICBuYmEKCgktIHNubXB0cmFwLmM6IHJlbW92ZSBhbiBleHRyYW5lb3VzIHNubXBfZnJlZV9wZHUKCQoyMDAwLTA5LTI4IDE0OjEzICBuYmEKCgktIG1hbi86IGFkZCBtYW4gZW50cmllcyBmb3IgbWFueSBsaWJyYXJ5IGZ1bmN0aW9ucyAocG9pbnRpbmcgdG8gc25tcF9hcGkuMykKCQoyMDAwLTA5LTI4IDExOjA5ICBtc2xpZmNhawoKCXJlbW92ZSBzZWNvbmQgY29weSBvZiBzeXMvc29ja2V0LmgKCQoyMDAwLTA5LTI4IDExOjA4ICBtc2xpZmNhawoKCUZvciBidWlsZGluZyBvbiBVbHRyaXggVjQueAoJCjIwMDAtMDktMjcgMTI6NTkgIGhhcmRha2VyCgoJLSAoZGxtb2QuaCk6IGFkZCB0aGUgVUNELURMTU9ELU1JQiB0byB0aGUgZGVmYXVsdCBsb2FkIGxpc3QuCgkKMjAwMC0wOS0yNyAxMjo1NSAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVjZF9zbm1wLmgsIGRsbW9kLmMpOgoJICAtIGluY2x1ZGUgdWNkLXNubXAvZGxtb2QgYnkgZGVmYXVsdC4KCSAgLSBidWlsZCBjb2RlIG9ubHkgaWYgZGxvcGVuIGlzIGZvdW5kLgoJCjIwMDAtMDktMjcgMDg6MzEgIGhhcmRha2VyCgoJLSAoYXV0b19ubGlzdC5jKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBkb24ndCBwcmludCBrZXJuZWwgYmFzZWQgd2FybmluZyBtZXNzYWdlcyB3aGVuIC1yLCBldGMsIGlzIHNwZWNpZmllZC4KCQoyMDAwLTA5LTI2IDE2OjA3ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IG1pbm9yIGJ1ZyBmaXhlcy4KCQoyMDAwLTA5LTI2IDE0OjIxICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSwgbWFuYWdlci5wbSk6CgkgIC0gZGlzcGxhdGFibGUgc3VwcG9ydHMgLW1hcmsvLW9ubWFya2VkLgoJICAtIHVzZXIncyBvbmNhbGwgc2NoZWR1bGUgaXMgbW9kaWZpYWJsZSB2aWEgdGhlIHdlYi4KCQoyMDAwLTA5LTI2IDEzOjE3ICBtc2xpZmNhawoKCUZvciBXaW4zMiBBUEk6IERlY2xhcmUgc3RydG91bCwgdnNucHJpbnRmOyBFbmFibGUgcmV2ZXJzZSBCRVIgZW5jb2RpbmcuCgkKMjAwMC0wOS0yNiAxMzoxNSAgbXNsaWZjYWsKCglJbmNsdWRlIHN5c3RlbS5oICh2c25wcmludGYgZGVjbCkKCQoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKCUZpeCB1bnNpZ25lZCBjb21wYXJpc29uLgoJCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgoJRml4IHVuc2lnbmVkIGNvbXBhcmlzb25zLgoJCjIwMDAtMDktMjYgMTM6MTMgIG1zbGlmY2FrCgoJRml4IHNpZ25lZCBjb21wYXJpc29uOyBSZW1vdmUgdW51c2VkIHZhci4KCQoyMDAwLTA5LTI2IDEzOjEyICBtc2xpZmNhawoKCUluY2x1ZGUgZ2V0b3B0LmggKG9wdGFyZyBkZWNsKTsgUmVtb3ZlIHVudXNlZCB2YXIuCgkKMjAwMC0wOS0yNiAxMzoxMSAgbXNsaWZjYWsKCglNYXRjaCBJbml0aWFsaXNlX1RhYmxlIGFyZ3MgMyw0IGRlY2xhcmF0aW9ucyB3aXRoIGRlZmluaXRpb25zLgoJCjIwMDAtMDktMjYgMTI6NTggIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogbWFrZSB0aGUgYWRtaW5zdGF0dXMgUk9OTFkuCgkKMjAwMC0wOS0yNiAxMDoyMSAgaGFyZGFrZXIKCgktIChtaWIyYyk6IGNob21wKCQxKSBpcyBpbGxlZ2FsLgoJCjIwMDAtMDktMjYgMDM6MDQgIG1zbGlmY2FrCgoJRXhwbGljaXRseSBidWlsZCBwYXRoIHRvIENBQ0hFRklMRSwgYXMgbm90IGFsbCBDIGNvbXBpbGVycyBzdXBwb3J0ICIjIyIuCgkKMjAwMC0wOS0yNSAxNzo0OSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBXZXMgYWN0dWFsbHkgZG9jdW1lbnRlZCBzb21ldGhpbmc/ICB5b3UgbXVzdCBiZSBraWRkaW5nIQoJCjIwMDAtMDktMjUgMTY6NTYgIG1zbGlmY2FrCgoJY2hkaXIganVzdCBiZWZvcmUgc2VuZGluZyBjb2xkc3RhcnQgdHJhcCwgdG8gYWxsb3cgZm9yIHBhdGhzIHRvIGJlCglyZXNvbHZlZC4KCQoyMDAwLTA5LTI1IDE1OjA4ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IG1pbm9yIGdyYXBoaW5nIGNoYW5nZXMKCQoyMDAwLTA5LTI1IDA5OjM1ICBtc2xpZmNhawoKCWNhc2UgaW5zZW5zaXRpdmUgdG9rZW4gc2VhcmNoICh1c2Ugc3RyY2FzZWNtcCkuCgkKMjAwMC0wOS0yMiAwNjowMyAgbmJhCgoJIC1taWJzLzogTUlCIHVwZGF0ZXMKCQoyMDAwLTA5LTIyIDA1OjU1ICBuYmEKCgktIG1pYnMvOiBNSUIgdXBkYXRlcwoJCjIwMDAtMDktMjIgMDU6NTIgIG5iYQoKCS0gc25tcF9hcGkuYzogc3VwcG9ydCBzZXR0aW5nIG9mIEJJVFMgdmFyaWFibGVzCgkKMjAwMC0wOS0yMiAwNTo1MCAgbmJhCgoJLSBzbm1wc3RhdHVzLmM6IHNob3cgZXJyb3Igb2JqZWN0CgkKMjAwMC0wOS0yMiAwNDoyOSAgbmJhCgoJLSBzbm1wdXNtLmM6IGlzc3VlIGVycm9yIG1lc3NhZ2Ugd2l0aCBvYmplY3QKCQoyMDAwLTA5LTIyIDA0OjI4ICBuYmEKCgktIHN5c3RlbS5oOiBwcm92aWRlIHByb3RvdHlwZXMgZm9yIHN0cnRvbCwgc3RydG91bCwgc25wcmludGYsIHZzbnByaW50ZgoJCjIwMDAtMDktMjIgMDQ6MjcgIG5iYQoKCS0gdmFjbV92YXJzLmM6IHByb3RlY3QgYWdhaW5zdCBvdmVycnVuIG9mIHN0cmluZ3MKCQoyMDAwLTA5LTIxIDE2OjE3ICBuYmEKCgktIGFwcHMvOiBkaXNwbGF5IGZhaWxlZCBvYmplY3Qgd2hlbiBvbmUgaXMgaWRlbnRpZmllZCBieSBwZHUtPmVycmluZGV4CgkKMjAwMC0wOS0yMSAxNTo1OSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcGRmLjEpOiBkb2N1bWVudCB0aGUgc25tcGRmIGNvbW1hbmQuCgkKMjAwMC0wOS0yMSAxNTo1MCAgbmJhCgoJLSBzbm1wdGFibGU6IHVzZSBHRVRCVUxLIHRvIGNvbGxlY3QgZGF0YSB3aGVuIHByb3RvY29sIGFsbG93cyBpdC4gQWRkCgkJLUNCIG9wdGlvbnMgdG8gZmFsbCBiYWNrIHRvIEdFVE5FWFQuCgkKMjAwMC0wOS0yMSAxNTozOCAgbmJhCgoJLSBtaWIuYzogcmV3cml0ZSBpbmRleCBoYW5kbGluZyBpbiBvYmplY3QgaWRzLCB0byBhbGxvdyBzeW1ib2xpYyBlbnVtcy4KCQlBZGQgRGF2ZXMgc3VnZ2VzdGVkIC1PdiBvdXRwdXQuIEFsc28gZW5oYWNlIC1UZCBvdXRwdXQgdG8KCQlkZXN0aW5ndWlzaCBPQkpFQ1QtVFlQRSBmcm9tIFRSQVAtVFlQRSwgTU9EVUxFLUlERU5USVRZIGV0Yy4KCQoyMDAwLTA5LTIxIDE1OjMxICBoYXJkYWtlcgoKCS0gKHNubXBkZi5jKTogdXNlIHRoZSBVQ0QtU05NUC1NSUIncyBkc2tUYWJsZSBpZiB0aGUKCSAgSE9TVC1SRVNPVVJDRVMtTUlCIGlzIGVtcHR5IG9yIGlmIC1DdSBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KCQoyMDAwLTA5LTIxIDE1OjI4ICBuYmEKCgktIHBhcnNlLmM6IGFkZCBhYmlsaXR5IHRvIGNvbGxlY3QgVkFSSUFCTEVTL09CSkVDVFMgZm9yIFRSQVAtVFlQRQoJCWFuZCBOT1RJRklDQVRJT04tVFlQRS4gSWdub3JlIGZpbGVzIHRoYXQgZG9lcyBub3QgaGF2ZSBERUZJTklUSU9OUwoJCWFzIHRoZWlyIHNlY29uZCB0b2tlbi4gRW5oYW5jZSAtVGQgb3V0cHV0IGFjY29yZGluZ2x5LgoJCjIwMDAtMDktMjEgMTU6MjIgIG5iYQoKCS0gc25tcGxpYjogYWRkIHNucHJpbnRmLCBzdHJ0b2wsIHN0cnRvdWwgZm9yIHN5c3RlbXMgdGhhdCBkb24ndCBoYXZlIHRoZW0KCQoyMDAwLTA5LTIxIDE1OjEwICBoYXJkYWtlcgoKCS0gKG1pYi5oKTogYWRkIGZha2Ugc3RydWN0IGRlZmluaXRpb24gZm9yIGVudW1zCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzdHJ0b3VsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzdHJ0b2wuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCglmaWxlIHNucHJpbnRmLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAwNjoxNiAgaGFyZGFrZXIKCgktIChtaWIuYywgbWliLmgpOiBtYWtlIHNwcmludCogbm9uLXN0YXRpYyAoYnVnICMxMzIpLgoJCjIwMDAtMDktMjEgMDA6MjUgIGhhcmRha2VyCgoJLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBmaXggYnVnICMzNjAgd2hlcmUgYSBjbGllbnQgbWlnaHQgcmVtb3ZlIGEgYWxhcm0gcmVnaXN0cmF0aW9uCgkgICAgZHVyaW5nIGEgY2FsbCB0byB0aGUgYWxhcm0gZnVuY3Rpb24gYW5kIGludmFsaWRhdGUgdGhlIHBvaW50ZXIKCSAgICBiZWluZyB1c2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgoJCjIwMDAtMDktMjEgMDA6MjIgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLWRpc2FibGUtc2hhcmVkIGJ5IGRlZmF1bHQgaW4gY3ZzIGNoZWNrb3V0cy4KCQoyMDAwLTA5LTIwIDE3OjMxICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc3BhY2UgaW5kZW50IHRva2VucyBpZiAjIHByZXBlbmRlZC4KCQoyMDAwLTA5LTIwIDE3OjMwICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBudWxsIGludGVybmFsIGhlbHAgbGluZXMuCgkKMjAwMC0wOS0yMCAxNzoyOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgbW9uaXRvcik6IGRpc2ssIHByb2MsIGFuZCBsb2FkIGNoZWNrcy4KCQoyMDAwLTA5LTIwIDE3OjI4ICBoYXJkYWtlcgoKCS0gKGF1dGhvcHRzKTogZml4IHZhbGlkIGFuc3dlcnMgZm9yIGF1dGggYW5kIHByaXYgdHlwZXMuCgkKMjAwMC0wOS0yMCAxNzoyNyAgaGFyZGFrZXIKCgktICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jLCBzbm1wdjMuYyk6IE5VTEwgb3V0IGhlbHAgbWVzc2FnZXMgZm9yIC5jb25mCgkgIHRva2VucyB0aGF0IGFyZSBlaXRoZXIgaW50ZXJuYWwgb3Igbm8gbG9uZ2VyIHRoZSBzdGFuZGFyZCB3YXkgb2YKCSAgZG9pbmcgdGhpbmdzLgoJCjIwMDAtMDktMjAgMTc6MjYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBleHBvcnQgU05NUENPTkZQQVRIIHRvIE1ha2VmaWxlcwoJCjIwMDAtMDktMjAgMTc6MjUgIGhhcmRha2VyCgoJLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIGNvcnJlY3Rpb24gb2YgdGFibGUgbmFtZS4gIE1vcmUgZXJyb3JzIGV4aXN0LgoJCjIwMDAtMDktMjAgMTY6NDYgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIGRlYnVnZ2luZywgbWlicywgb3V0cHV0KTogbW9yZSBzbm1wLmNvbmYgc25tcGNvbmYgY29uZmlnIGZpbGVzLgoJCjIwMDAtMDktMjAgMTU6MTcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIGF1dGhvcHRzKTogc25tcC5jb25mIHN1cHBvcnQgZm9yIGJhc2ljIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuCgkKMjAwMC0wOS0yMCAxNDo1NSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6CgkgLSBkb24ndCBmb3JjZSByZWFkaW5nIG9mIC91c3IvbG9jYWwvc2hhcmUvc25tcGQuY29uZi4KCSAtIGRvbid0IHByaW50IHVua25vd24gZGlyZWN0aXZlIGNvbW1lbnQgaGVhZGVycyBpZiB0aGVyZSBhcmVuJ3QgYW55LgoJCjIwMDAtMDktMjAgMTQ6NDUgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzcGFjZSB0aGluZ3Mgb3V0IG9uIHRoZSBzY3JlZW4gYSBiaXQgYmV0dGVyLgoJCjIwMDAtMDktMjAgMTQ6NDQgIGhhcmRha2VyCgoJLSAodHJhcHNpbmtzKTogYWRkIHBvcnQgbnVtYmVyIG9wdGlvbiB0byB0cmFwc2luayBkaXJlY3RpdmVzLgoJCjIwMDAtMDktMjAgMTQ6MzUgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBjb25mKTogaW5zdGFsbCBzbm1wY29uZiBhbmQgaXRzIHZhcmlvdXMgc3VwcG9ydCBmaWxlcy4KCQoyMDAwLTA5LTIwIDE0OjIwICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBkbyByZXZlcnNlIHYzIGhlYWRlciBlbmNvZGluZyB3aXRoIGEgc3RhdGljIGJ1ZmZlci4KCQoyMDAwLTA5LTIwIDExOjM3ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogbWlzYyB1cGRhdGVzIGFuZCBpbXByb3ZlbWVudHMuCgkKMjAwMC0wOS0yMCAwODo1NCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogRml4IGR5bmFtaWMgYXJyYXkgIHByb2JsZW0gcG9pbnRlZCBvdXQgYnkgSm9jaGVuIEttaWV0c2NoLgoJCjIwMDAtMDktMjAgMDI6MDUgIGRhdmVzCgoJLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBEb24ndCBpbmNsdWRlIGNvbnRleHQgc3RyaW5ncyBvbiBQRFVzIHRoYXQgc2hvdWxkbid0IGhhdmUgdGhlbQoJCShUaGFua3MgdG8gUGVkcm8gUGVyZWlyYSBmb3IgaWRlbnRpZnlpbmcgdGhpcykKCQoyMDAwLTA5LTE5IDE3OjA3ICBoYXJkYWtlcgoKCS0gKGFjbCwgc3lzdGVtLCB0cmFwc2lua3MpOiBpbml0aWFsIHNubXBjb25mIGRlc2NyaXB0aW9uIGZpbGVzLgoJCjIwMDAtMDktMTkgMTc6MDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiByZWFkIG9sZGVyIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gYW5kIG1lcmdlIHdpdGggbmV3IHJlc3VsdHMuCgkKMjAwMC0wOS0xOSAxNDo0MCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogcHJpbnQgcGR1IHR5cGUgb24gZGVidWdnaW5nIGR1bXAgb3V0cHV0LgoJCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBzbm1wLmMpOiByZXZlcnNlIGVuY29kaW5nIHN1cHBvcnQgZm9yIHNwZWNpYWxpemVkIG9wYXF1ZQoJICBkYXRhdHlwZXMgKGZsb2F0LCBkb3VibGUsIGV0YykuCgkKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCgktIChhY2xvY2FsLm00KTogZG9jdW1lbnQgbWFjcm9zIGEgYml0IG1vcmUgZm9yIHN1Ym1pc3Npb24gdG8gdGhlCgkgIGF1dG9jb25mIG1hY3JvIGxpYnJhcnkuCgkKMjAwMC0wOS0xOSAwODozMCAgbXNsaWZjYWsKCglGaXggYnVnICMyOTUgcmVwb3J0ZWQgYnkgSm9obiBXaGl0bmV5IGpvaG53QGFpaW5ldC5jb20KCQoyMDAwLTA5LTE4IDE0OjU5ICBoYXJkYWtlcgoKCS0gKHNubXBfdmFycy5oLCBzbm1wZC5oKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBtb3ZlIGdldFN0YXRQdHIgZGVmaW5pdGlvbiB0byBwcm9wZXIgLmggZmlsZS4KCQoyMDAwLTA5LTE4IDE0OjU1ICBtc2xpZmNhawoKCUZpeCBidWcgIzM0NyByZXBvcnRlZCBieSBkYXNfZGVuaXpAeWFob28uY29tOiBtYWtlIHNiaW4gaW5zdGFsbCBkaXIKCQoyMDAwLTA5LTE0IDA5OjA1ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGFkZCBhIHBvcnQgc3BlY2lmaWNhdGlvbiBzbm1wZC5jb25mIHRva2VuLgoJCjIwMDAtMDktMTQgMDg6NTIgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jKTogaWdub3JlIG91dHB1dCBvZiBnZXRob3N0YnluYW1lIGZvciB0cmFwIHNlc3Npb24gYWRkaW5nLgoJCjIwMDAtMDktMTMgMTU6MDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBuZXcgdXRpbGl0eSB0byBnZW5lcmF0ZSAuY29uZiBmaWxlcyBieSBwcm9tcHRpbmcgdGhlCgkgIHVzZXIgd2l0aCBxdWVzdGlvbnMuCgkKMjAwMC0wOS0wOCAxMzowNyAgaGFyZGFrZXIKCgktIChwcm94eS5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246CgkgIC0gZml4IHByb3h5IHN1cHBvcnQgZm9yIG51bGwgbGVuZ3RoIHN0cmluZ3MuCgkKMjAwMC0wOS0wNyAxMDoxMiAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgoJIC0gZml4IG9wZW5zc2wgY2hlY2tzLgoJIC0gcnVuIGF1dG9oZWFkZXIuCgkKMjAwMC0wOS0wNSAxMzozNSAgbXNsaWZjYWsKCglNaW5vciB0b3VjaHVwcyB0byBidWlsZCBvbiBXaW4zMiBwbGF0Zm9ybS4KCQoyMDAwLTA5LTA1IDEzOjM0ICBtc2xpZmNhawoKCVdlbGNvbWUgdGhlIG5ld2VzdCB1Y2Qtc25tcCBhcHBsaWNhdGlvbnMgdG8gdGhlIFdpbjMyIGJ1aWxkcy4KCQoyMDAwLTA5LTA0IDE1OjE5ICBuYmEKCgktIHJlYWRfY29uZmlnLmM6IHJlc3RhcnQgZXJyb3Jjb3VudCB3aGVuIHJlbG9hZGluZyBjb25maWcKCQoyMDAwLTA5LTA0IDE1OjEyICBuYmEKCgktIHNubXBuZXRzdGF0LjE6IGFsaWduIG1hbiBwYWdlIHdpdGggcHJvZ3JhbQoJCjIwMDAtMDktMDQgMTU6MTAgIG5iYQoKCS0gaXBBZGRyLmM6IHJlbW92ZSBhIGJhZCBudG9obCBmb3IgT3BlbkJTRAoJCjIwMDAtMDktMDQgMTU6MDkgIG5iYQoKCS0gbWliaW5jbC5oLCB7dGMsdWR9cHssVGFibGV9LmM6IGVuc3VyZSBqdXN0IG9uZSBpbmNsdWRlIG9mIHNvY2tldC5oCgkJdG8gbWFrZSB1bnByb3RlY3RlZCBpbmNsdWRlIGZpbGUgaW4gVWx0cml4IGhhcHB5CgkKMjAwMC0wOS0wNCAxNTowNSAgbmJhCgoJLSBjb25maWd1cmUuaW46IG1ha2UgLS13aXRob3V0LWxpYndyYXAgd29yawoJCjIwMDAtMDktMDEgMTU6MTQgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CgkgIC0gdXBkYXRlZCBjb2RlLgoJCjIwMDAtMDktMDEgMTE6NTQgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBTY290dCBMaXBjb24gbm90ZWQgdGhhdCBzbm1wdHJhcGQgZG9lc24ndCBzdXBwb3J0IC1ULgoJCjIwMDAtMDgtMzAgMTM6MjggIG5iYQoKCS0gcGFyc2UuYzogZml4IGxvb3AgaW4gc3ludGF4IGVycm9yIGluIERFRlZBTCBjbGF1c2UuIEFsc28gZml4IHJlYWRpbmcKCQlvZiAuaW5kZXggZmlsZSB3aXRoIGZpbGVuYW1lcyBjb250YWluaW5nIGJsYW5rcy4KCQoyMDAwLTA4LTI4IDEzOjQzICBtYXJ6CgoJbWlub3Igc3ludGF4IGdsaXRjaCBpbiBQT0QgZG9jcwoJCjIwMDAtMDgtMjQgMDE6NTUgIGRhdmVzCgoJLSAoYXBwcy9zbm1wdGFibGUuYyk6IEZpeCBidWcgd2l0aCBkaXNwbGF5aW5nIGhlYWRlci1sZXNzIGluZGV4ZWQgdGFibGVzCgkJKFRoYW5rcyB0byBFcm5pZSBNaWxsZXIpCgkKMjAwMC0wOC0xOSAxMToyOSAgbXNsaWZjYWsKCglBcHBseSBwYXRjaCBmcm9tIDxDaHJpc3RvcGguTWFtbWl0enNjaEB0dS1jbGF1c3RoYWwuZGU+Cgl0byBmaXggc2lnbiBpbiBhc25fcmJ1aWxkX3Vuc2lnbmVkX2ludCAuCgkKMjAwMC0wOC0xOCAwNDoxOCAgbXNsaWZjYWsKCglyZXN0b3JlIHByZXZpb3VzIHZlcnNpb247IG9wZW5ic2QsIHNvbGFyaXMsIGxpbnV4IGJ1aWxkIG9rLgoJCjIwMDAtMDgtMTggMDM6NDQgIG1zbGlmY2FrCgoJcmVtb3ZlIHVudXNlZCBwcmludGYgYXJndW1lbnQgcGFzc2VkIHRvIHNubXBfbG9nLgoJCjIwMDAtMDgtMTggMDM6MjAgIG1zbGlmY2FrCgoJZml4IGJ1ZyAyNTMgd2l0aCBwYXRjaCBzdXBwbGllZCBieSBKZWZmcmV5IEhvbmlnIDxqY2hAYnNkaS5jb20+CgkKMjAwMC0wOC0xOCAwMjo1MiAgbXNsaWZjYWsKCglmaXggYnVnIDMxOCAtIHRlc3QgOSBhbmQgMTAgZXhwbGljaXRseSBjcmVhdGUgdGhlIHRlc3QgdXNlci4KCQoyMDAwLTA4LTE3IDEzOjQyICBtc2xpZmNhawoKCVRoZSBiYXR0bGUgdG8gdHJpbSBuZXdsaW5lcyBjb3JyZWN0bHkgY29udGludWVzLi4ucmVkdWNlIGxlbmd0aCBieSBvbmUuCgkKMjAwMC0wOC0xNiAxNTowNCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBmaXggdmFyaW91cyBlbmNyeXB0aW9uL2RlY3J5cHRpb24gcHJvYmxlbXMuCgkKMjAwMC0wOC0xNiAxNTowMyAgaGFyZGFrZXIKCgktIChzY2FwaS5jKTogZml4IHBhZGRpbmcgc2l6ZSBpbiBlbmNyeXB0aW9uLgoJCjIwMDAtMDgtMTYgMTQ6NDggIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IHNldCBwbGFpbnRleHQgbGVuZ3RoIGF0IHRoZSBlbmQgb2Ygc2NfZGVjcnlwdC4KCQoyMDAwLTA4LTE1IDA1OjA4ICBtc2xpZmNhawoKCUZpeCBidWcgMjg0IHdpdGggYSBzaG9ydCBleHBsYW5hdGlvbiBhYm91dCBzbm1wLmNvbmYuCgkKMjAwMC0wOC0xNSAwMzowMCAgbXNsaWZjYWsKCglGaXggYnVnIDI4MyAtIHVtYXNrIDAyMiwgbWFrZSBpbnN0YWxsLiBUaGFua3MgdG8gY3NhYmEudG90aEBzemsuYmtlLmh1CgkKMjAwMC0wOC0xNSAwMDowOSAgbmJhCgoJLSBzbm1wdGVzdC5jOiBvdmVyaGF1bCBpbnB1dF92YXJpYWJsZSwga2lsbCBuZXdsaW5lCgkKMjAwMC0wOC0xNCAyMjowNSAgbmJhCgoJLSBhY2xvY2FsLm00LCBjb25maWd1cmUuaW46IGZpeGVzIGZvciBjb25maWd1cmUgLS1zaWxlbnQKCQoyMDAwLTA4LTE0IDE3OjI3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgoJICAtIC0tZW5hYmxlLXNpbGVudC1saWJ0b29sIHRvIG1ha2UgTmllbHMgc21pbGUuCgkKMjAwMC0wOC0xNCAxNzoxNyAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiBpbXBsZW1lbnQgYSBuZXcgKGRlZmF1bHQpIGVuZ2luZUlEIHR5cGUgYmFzZWQKCSAgb24gYSByYW5kb20gbnVtYmVyLCBhbmQgYSB0aW1lc3RhbXAuCgkgIC0gSSB0aGluayBpdCB3b24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMgKGhlaCkuCgkKMjAwMC0wOC0xNCAxNjo0NyAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKToKCSAgLSBpZiAtRHJlYWRfY29uZmlnLCB0aGVuIHByaW50IGV2ZW4gbm8taGVscCB0b2tlbnMgYW5kIGEgKiBmb3IgUFJFTUlCIG9uZXMuCgkKMjAwMC0wOC0xNCAxNDo1MSAgbmJhCgoJLSAobWFueSk6IHBvcnRhYmlsaXR5IGZpeGVzIGZvciBPcGVuQlNEIDIuNiwgRnJlZUJTRCA0LjEsIFVsdHJpeCA0LjUKCQoyMDAwLTA4LTE0IDExOjMzICBoYXJkYWtlcgoKCS0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIFlpZ2FsIEhvY2hiZXJnOgoJICAtIHJlbW92ZSB1bnVzZWQgY29udGV4dCB2YXJpYWJsZXMuCgkKMjAwMC0wOC0xNCAxMToyOSAgaGFyZGFrZXIKCgktIChzY2FwaS5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKCSAgLSByZW1vdmUgZHVwbGljYXRlIGtleWxlbmd0aCBjaGVjay4KCQoyMDAwLTA4LTExIDEzOjA5ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBvcHRpbWl6ZSByZXZlcnNlIGVuY29kaW5nIG9mIHZhcmJpbmRsaXN0cy4KCQoyMDAwLTA4LTExIDA4OjU1ICBoYXJkYWtlcgoKCS0gKFJFQURNRS5taWIyYyk6IFBhdGNoIGZyb20gSmFuIEFsZnJlZCBTYW5kdmVuOgoJICAtIHR5cG9zLgoJCjIwMDAtMDgtMTEgMDY6MDUgIG5iYQoKCS0gYXBwcy8qOiBzbm1wYXBwIC1WIHNob3VsZCBub3QgZ2l2ZSB0aGUgdXNhZ2UgbWVzc2FnZSB0b28uCgkKMjAwMC0wOC0xMSAwMDo0NCAgbmJhCgoJLSBzbm1wdHJhcGQuODogZml4IHR5cG8uIFRoYW5rcyB0byBHLiBBbGxlbiBNb3JyaXMgSUlJIDxnYW0zQGFjbS5vcmc+CgkKMjAwMC0wOC0xMCAyMzoyMyAgbmJhCgoJLSBwYXJzZS5jOiBwcmVkZWZpbmUgT2JqZWN0U3ludGF4LCBBcHBsaWNhdGlvblN5bnRheCwgU2ltcGxlU3ludGF4IGFuZAoJCU9iamVjdE5hbWUKCQoyMDAwLTA4LTEwIDE2OjIwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBtaWIyYyk6CgkgIC0gbWFrZSBtaWIyYyBsb29rIGluICQoc25tcGxpYmRpcikgZm9yIC5jb25mIGZpbGVzLgoJICAtIGluc3RhbGwgbWliMmMgYW5kIC5jb25mIGZpbGVzLgoJCjIwMDAtMDgtMTAgMTQ6MzMgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jKTogZHluYW1pY2FsbHkgZGVjaWRlIHRvIHJldmVyc2UvZm9yd2FyZCBlbmNvZGUuCgkKMjAwMC0wOC0xMCAxNDozMSAgaGFyZGFrZXIKCgktIChleHRlbnNpYmxlLmMpOiBmaXggQ1IgdGVybWluYXRpb24uCgkKMjAwMC0wOC0xMCAxNDoyNSAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGRlZmluZSByZXZlcnNlIGVuY29kaW5nIG9uIGJ5IGRlZmF1bHQuCgkKMjAwMC0wOC0xMCAxMzowMiAgbXNsaWZjYWsKCglmaXggYnVnIDI1MiBmb3IgY29uZmlndXJlIGFuZCBzeXMvc29ja2V0Lmggb24gQlNEL09TIDQuMgoJCjIwMDAtMDgtMTAgMDk6MDcgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsCgkgIHNubXB1c20uaCwgc25tcHYzLmMpOgoJICAtIGltcGxlbWVudCByZXZlcnNlIGVuY29kZWQgbWVzc2FnZXMuCgkgICAgLSBUT0RPOiBjbGVhbiB1cCwgcnVuLXRpbWUgZGV0ZXJtaW5hdGlvbiBvZiB3ZWF0aGVyIHRvIHVzZSBpdCBvciBub3QuCgkKMjAwMC0wOC0wOSAxNTo0MCAgbXNsaWZjYWsKCglGaXggYnVnIDMzMSB3aXRoIHBhdGNoIGluIHBhcnQgcHJvdmlkZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTA5IDE1OjI3ICBtc2xpZmNhawoKCW5vIC8vIGNvbW1lbnQsIGluIGRlZmVyZW5jZSB0byBub24tQU5TSS1DIGNvbXBpbGVycy4KCQoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCgktIGhyX3N3cnVuLmM6IGZpeCB0aGUgUnVuUGF0aCBmb3Igc3dhcHBlZCBvdXQgTGludXggcHJvY2VzcwoJCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKCS0gaHJfcHJpbnQuYzogZml4IGEgZGVidWcgdG9rZW4KCQoyMDAwLTA4LTA5IDA0OjQ0ICBuYmEKCgktIG1haW4uYzogZml4IHBhcnNpbmcgb2YgLXYKCQoyMDAwLTA4LTA5IDAxOjEzICBkYXZlcwoKCS0gKG1pYkpKL2lwUm91dGUuaCk6IE9taXQgcm91dGVfd3JpdGUgZm9yIG5vdwoJCjIwMDAtMDgtMDkgMDA6NTggIGRhdmVzCgoJLSAobWliSkovKik6IEV4cGVyaW1lbnRhbCByZS13cml0ZSBvZiBtaWJJSQoJCShQaWxvdCBlcnJvciB3aGVuIHRyeWluZyB0byBjb21taXQgdGhlIGNoYW5nZXMgZWFybGllciAtIHNvcnJ5ISkKCQoyMDAwLTA4LTA4IDEwOjA2ICBoYXJkYWtlcgoKCS0gKGV4dGVuc2libGUuYyk6IHN0cmlwIG5ld2xpbmVzLgoJCjIwMDAtMDgtMDggMDg6NTEgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBQYXRjaCBmcm9tIFNjb3R0IExpcGNvbjogc3RhcnQgb3B0aW5kIGF0IDEgbm90IDAuCgkgIC0KCQoyMDAwLTA4LTA4IDA2OjM2ICBtc2xpZmNhawoKCUZpeCBidWcgIzI5NSAoZnJlZSAqc2VjU3RhdGVSZWYgYmVmb3JlIGFsbG9jYXRpbmcgYW5vdGhlciBvbmUpLgoJCjIwMDAtMDgtMDggMDY6MDUgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjMjk4IHJlcG9ydGVkIGFuZCBwYXRjaCBzdXBwbGllZCBieSBDb25yYWQgTGluayA8Y2xpbmtAbWwuY29tPgoJCjIwMDAtMDgtMDggMDQ6NTkgIG5iYQoKCS0gc25tcF9hcGkuYzogZml4IGEgYnVzeSBsb29wIHdoZW4gYWxhcm0gcXVldWUgaXMgYWN0aXZlIHdpdGhvdXQgYW55CgkJb3V0c3RhbmRpbmcgcmVxdWVzdHMKCQoyMDAwLTA4LTA4IDA0OjQ3ICBuYmEKCgktIHNubXBzZXQuMTogY2Fubm90IHNldCBjb3VudGVycwoJCjIwMDAtMDgtMDggMDQ6NDIgIG1zbGlmY2FrCgoJRml4ZWQgKEJVRyMzMzIpIHVzaW5nIHBhdGNoIHN1Ym1pdHRlZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJQWxzbyBjb25zb2xpZGF0ZWQgY29tbWVudHMgYWJvdXQgdGhlIGZvdXIgc2VuZCBQRFUgZnVuY3Rpb25zLgoJCjIwMDAtMDgtMDcgMDY6NTkgIG1zbGlmY2FrCgoJRml4IGxlYWsgaW4gcmVwb3J0YWJsZSBlcnJvcnMgZm91bmQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCglmaWxlIGFkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDA1OjQ4ICBuYmEKCglmaWxlIHJlYWRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBzbm1wX3NldF9taWJfd2FybmluZ3MuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfbW9kdWxlX25vZGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHJlYWRfbW9kdWxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX2FsbF9taWJzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfdmFyaWFibGUuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X3ZhbHVlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfZGVzY3JpcHRpb24uMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgaW5pdF9taWJfaW50ZXJuYWxzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBpbml0X21pYi4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgZ2V0X21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBhZGRfbWliZGlyLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNCAxNzoxMyAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFkZCBpbiB0aGUgbm90aWZpY2F0aW9uIGdyb3VwIGJ5IGRlZmF1bHQuCgkKMjAwMC0wOC0wNCAxNzowOCAgaGFyZGFrZXIKCgktIChub3RpZmljYXRpb24uaCk6IG5vdGlmaWNhdGlvbiBtaWIgd3JhcHBlci4KCQoyMDAwLTA4LTA0IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKToKCSAtIGluaXRpYWxpemUgb3B0aW5kIGJlZm9yZSBjYWxsaW5nIGdldG9wdC4KCSAtIGRlYnVnZ2luZyBvdXRwdXQuCgkKMjAwMC0wOC0wNCAxNjo1NiAgaGFyZGFrZXIKCgktIChwcm94eS5jKTogcHJvcGVybHkgc2V0IHRoZSBmaXJzdCAodW51c2VkKSBhcmd1bWVudCB0byBzbm1wX3BhcnNlX2FyZ3MoKS4KCQoyMDAwLTA4LTA0IDE2OjUzICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYywgc25tcE5vdGlmeVRhYmxlLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKCSAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKCSAgLSBpZiB1c2luZyB0aGUgc25tcE5vdGlmaWNhdGlvblRhYmxlLCBpbnNlcnQgbm9uLXYxIHRyYXAgc2lua3MgaW50byBpdC4KCQoyMDAwLTA4LTA0IDA1OjI2ICBkYXZlcwoKCS0gKG1pYmdyb3VwL21pYkpKLmggbWliZ3JvdXAvbWliSkovKik6IEV4cGVyaW1lbnRhbCByZS13cml0ZSBvZiBtaWJJSQoJCjIwMDAtMDgtMDQgMDU6MjEgIGRhdmVzCgoJLSAobWliZ3JvdXAvdXRpbF9mdW5jcy5bY2hdKTogTmV3ICdjYWNoZWQgdGFibGUnIHJvdXRpbmVzCgkKMjAwMC0wOC0wMyAwODozNyAgbXNsaWZjYWsKCglGaXggYnVnICMzMjUgaWRlbnRpZmllZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSVAtRk9SV0FSRC1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSU5FVC1BRERSRVNTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgoJZmlsZSBJRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSENOVU0tVEMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDIgMDc6MDYgIG1zbGlmY2FrCgoJU2lsZW50IHJ1bm5pbmcgZ3JlcCByZXN1bHRzLgoJCjIwMDAtMDgtMDIgMDY6MTAgIG1zbGlmY2FrCgoJRml4IEJVRyAjMjkxIDogYWxsb3cgIjI1NS4yNTUuMjU1LjI1NSIgZm9yIHRleHQgaW5wdXQgdG8gQVNOX0lQQUREUkVTUwoJCjIwMDAtMDgtMDIgMDU6MjAgIG1zbGlmY2FrCgoJRml4IChCVUcjMzIzKSA6IGZyZWUgUERVIHdoZW4gc25tcF9zZW5kIGZhaWxzLgoJCjIwMDAtMDgtMDIgMDU6MDYgIG1zbGlmY2FrCgoJQWRkIC1wIG9wdGlvbiBvbmNlIHRvIHNubXBkIGFyZ3MuCglGaW5kIE1JQkRJUlMgaW4gc291cmNlIHRyZWUuCglGaXggY29uZGl0aW9uIHRvIHNldCBQQVRILgoJCjIwMDAtMDgtMDEgMjM6MzAgIG5iYQoKCS0gaXAuYzogT25lIG1vcmUgI2lmIHNvbGFyaXMKCQoyMDAwLTA4LTAxIDIzOjE5ICBuYmEKCgktIGlwLmM6IEEgYmFkICNpZiAuLi4gdGhlIHByb3BlciBkZWZpbmUgdG8gdGVzdCBmb3IgU29sYXJpcyBpcyBzb2xhcmlzMgoJCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgdW51c2VkIHVzYWdlKCkgdHlwZWRlZi4KCQoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKCS0gKHByb3h5LmMsIHByb3h5LmgpOiAtV2FsbCB3YXJuaW5nIGZpeGVzLgoJCjIwMDAtMDgtMDEgMTY6MzkgIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiBuZXdlciB2ZXJzaW9ucyBvZiBTb2xhcmlzLgoJCjIwMDAtMDgtMDEgMTY6MzcgIGhhcmRha2VyCgoJLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogcmV2ZXJ0IHRvIG5vbi1jb25maWdlZCBURVNUQ09ORi4KCQoyMDAwLTA4LTAxIDE2OjMxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCk6IG1ha2UgdW4tcXVpZXQuCgkKMjAwMC0wOC0wMSAxMDoyMyAgaGFyZGFrZXIKCgktIChzbm1wLXVjZC5zaCk6IGZpeCBidWcgIzI5NyAoZG9uJ3Qga2lsbCBncmVwIGFuZCBpbml0IHNjcmlwdCBpbnZvY2F0aW9ucykuCgkKMjAwMC0wOC0wMSAwNDo0NSAgbXNsaWZjYWsKCglGaXggYnVnIGZvdW5kIGJ5IFlpZ2FsIEhvY2hiZXJnIDxob2NoYmVyZ0BkbWhzb2Z0d2FyZS5jb20+CgkKMjAwMC0wOC0wMSAwMzozMCAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBidWlsZGluZyBvZiBjb21wbGV0ZSBPSUQKCQkod29yayB3aXRoIHRoZSBuYW1lIG9yaWdpbmFsbHkgcmVnaXN0ZXJlZCwKCQkgbm90IGFueSBzdWJzZXF1ZW50IGRpdmlzaW9uIGJvdW5kYXJpZXMpCgkKMjAwMC0wNy0zMSAyMDowOSAgbXNsaWZjYWsKCglSZW1vdmUgZHVwbGljYXRlIGZvcGVuIGZyb20gc2hlbGxfY29tbWFuZC4KCQoyMDAwLTA3LTMxIDE4OjU4ICBtc2xpZmNhawoKCShURVNUQ09ORi5zaC5pbikgLSBzZXQgTUlCRElSUyB0byBzaWJsaW5nIG9mIHRoZSB0ZXN0aW5nIGRpcmVjdG9yeS4KCShSVU5URVNUUykgLSBhbGxvdyBiaW5hcmllcyB0byBiZSBpbiB0aGUgIi1EIGJpbmRpciIgZGlyZWN0b3J5LgoJCjIwMDAtMDctMzEgMTU6MjUgIG1zbGlmY2FrCgoJRG9udCBhZGp1c3QgUEFUSCBpZiBTTk1QX1BBVEggaXMgc2V0LgoJRG9udCBhZGQgcG9ydCBzcGVjIHRvIFNOTVBfRkxBR1MgaWYgb25lIGlzIGFscmVhZHkgc3BlY2lmaWVkLgoJCjIwMDAtMDctMzEgMTM6NDkgIG1zbGlmY2FrCgoJUmVtb3ZlIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHNraXBwZWQgdGVzdHMuCglLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIGZhaWxlZCB0ZXN0cy4KCUtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgcGFzc2VkIHRlc3RzIHdoZW4gIlJVTlRFU1RTIC1zIiBpcyBzcGVjaWZpZWQuCglTZWFyY2ggY29uZmlnLmggYXQgdGhlIHJvb3Qgb2YgdGhlIGJ1aWxkIHRyZWUuCgkKMjAwMC0wNy0zMSAxMTozMiAgbXNsaWZjYWsKCglNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAsIENyYXktVDMsIFNYLTQsIFNYLTUKCQoyMDAwLTA3LTMxIDExOjMxICBtc2xpZmNhawoKCU1lcmdlIGZyb20gYXV0b21ha2UtMS40OiBBZGQgZm9yIFJoYXBzb2R5LCBPcGVuU3RlcAoJCjIwMDAtMDctMzAgMTc6MzggIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOgoJICAtIGltcGxlbWVudCB1bnRlc3RlZCBmaWx0ZXJpbmcgZnVuY3Rpb24gY2FsbGJhY2sgZm9yIHRhcmdldCBzZWFyY2hlcy4KCSAgLSBkZWxldGUgdW51c2VkIGZ1bmN0aW9uLgoJICAtIG1pc2Mgd2FybmluZyBmaXhlcy4KCQoyMDAwLTA3LTMwIDE3OjA3ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLAoJICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgpOgoJICAtIG1vcmUgbm90aWZpY2F0aW9uIHRhYmxlIGltcGxlbWVudGF0aW9ucyBmb3IgZmlsdGVyaW5nLgoJICAgIC0gRnJhbWV3b3JrIGNvbXBsZXRlLCBmdW5jdGlvbmFsaXR5IGlzIG5vdC4KCQoyMDAwLTA3LTMwIDE3OjA1ICBoYXJkYWtlcgoKCS0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOgoJICAtIGhhbmRsZSBpbXBsaWVkIG9iamVjdHMuCgkgIC0gaW1wbGVtZW50IGhlYWRlcl9jb21wbGV4X2dldCgpIGZvciBzaW1wbGUgZGF0YSByZXRyaWV2YWxzLgoJCjIwMDAtMDctMjggMDY6MTUgIG1zbGlmY2FrCgoJQ2xlYW51cCBpbmNsdWRlIGhlYWRlcnMgdG8gZml4IGJ1ZyAjMzA3LiBUaGFua3MgdG8gc2FuZHZlbkByZXNlYXJjaC5hdHQuY29tLgoJCjIwMDAtMDctMjcgMTU6MTkgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFZpbmF5IE1vaHRhOgoJICAtIGFjY2Vzc19ob3N0cygpIHJlcXVpcmVzIGFuIGFyZ3VtZW50IHNvIGZha2Ugb25lLgoJCjIwMDAtMDctMjcgMTU6MDAgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXR0aWFzIEJhcnRoZWw6CgkgIC0gZml4IGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gYXR0YWNoZWQgSVAgYWRkcmVzcy4KCQoyMDAwLTA3LTI3IDE0OjU1ICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgoJICAtIHN1cHBvcnQgcmF3IHZhbHVlcy4KCQoyMDAwLTA3LTI3IDA4OjI1ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYyk6IHByaW50IGVycm9ycyB0byBzdGRlcnIuCgkKMjAwMC0wNy0yNyAwNjoyMCAgbmJhCgoJLSBwYXJzZS5jOiBGaXggYSBtaXNzaW5nIGluaXRpemF0aW9uIHdoZW4gb25lIE1JQiBob2xkcyBNT0RVTEUtQ09NUExJQU5DRQoJCWZvciBhbm90aGVyCgkKMjAwMC0wNy0yNyAwMTozNSAgbmJhCgoJLSBzbm1wX2FwaS5jOiBGaXggcGR1LT5jb21tdW5pdHkgYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCBzZXNzaW9uLT5jb21tdW5pdHkKCQlUaGFua3MgdG8gRGFuYSBQLiBDb29rIDxkY29va0BjYWJsZXRyb24uY29tPgoJCjIwMDAtMDctMjYgMjI6MjggIG1zbGlmY2FrCgoJVXBkYXRlIGZvciB3aW4zMiBidWlsZDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIHVucHVibGlzaGVkIG1ldGhvZC4KCQoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKCS0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IG1pc2MgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgoJLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gdHJhbnNsYXRlT2JqIGhhY2suCgkKMjAwMC0wNy0yNiAwODo0OSAgaGFyZGFrZXIKCgktICh0a21pYik6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSByZW1vdmUgYmVnaW5uaW5nIG5ld2xpbmUgaW4gZGVzY3JpcHRpb24gY2xhdXNlcy4KCQoyMDAwLTA3LTIxIDE0OjAwICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNubXB0b3NxbCk6IG9ubHkgZGVsZXRlIGhpc3Rvcnkgcm93cyBvbmNlIGV2ZXJ5IGhvdXIgb3Igc28uCgkgIC0gdG9vIENQVSBpbnRlbnNpdmUgZm9yIGxhcmdlIHRhYmxlcy4KCQoyMDAwLTA3LTIxIDEyOjU5ICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNubXB0b3NxbCk6IHJlY29yZCBhbmQgZGlzcGxheSBzeXNVcFRpbWUgYW5kIG90aGVycy4KCQoyMDAwLTA3LTIxIDEyOjU3ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBncmFwaGluZyB3b3JrcyBhZ2Fpbi4KCQoyMDAwLTA3LTIxIDEyOjU3ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IGNvbW1lbnRzLCBsZWdlbmRzLCBhbmQgbWF4L21pbiB3b3JrIGFnYWluLgoJCjIwMDAtMDctMTcgMTE6MDAgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmgpOiBjb25maWdfcmVxdWlyZSBrZXJuZWxfc3Vub3M1LgoJCjIwMDAtMDctMTIgMDk6MjkgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBjb3B5IGtleSBsZW5ndGggYXMgd2VsbCBhcyB0aGUga2V5IHdoZW4gdXNpbmcgdGhlIHNhbWUKCSAgcHJpdmFjeSBrZXkgYXMgdGhlIGF1dGgga2V5LgoJCjIwMDAtMDctMTEgMTM6MzQgIG1hcnoKCglhZGRlZCByYW5nZXMgZmllbGQgdG8gU05NUDo6TUlCIGhhc2gKCQoyMDAwLTA3LTExIDEwOjA1ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gbWFrZSBudWxsIFBSRUZJWCB2YXJpYWJsZSBwb3NzaWJsZSBzbyBub24tZG90LWxlYWRpbmcgb2lkcyBhcmUgYWNjZXB0ZWQuCgkKMjAwMC0wNy0xMSAwOToyMiAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CgkgIC0gbWFrZSB0aGUgc2Vzc2lvbiBwb2ludGVycyBpbmRpY2F0ZSB3ZWF0aGVyIG9yIG5vdCB0aGV5IGFyZQoJICAgICJhdXRob3JpdGF0aXZlIiwgbWVhbmluZyB3ZWF0aGVyIHRoZXkgc2hvdWxkIGJlIGxlYXJuaW5nIGVuZ2luZUlEcwoJICAgIG9yIHJlcG9ydGluZyBvbiB0aGVtLgoJICAtIHBhc3MgdGhlIHJlY2VpdmVkLXBhY2tldCBzZXNzaW9uIHBvaW50ZXIgaW50byBzbm1wdjNfcGFyc2UgYW5kCgkgICAgdXNtX3Byb2NjZXNzX2luX21zZygpIHRvIHVzZSB0aGlzIGZsYWcuCgkgIC0gc2V0IGlzQXV0aG9yYXRhdGl2ZSA9IHRydWUgaW4gdGhlIGFnZW50LCBhbmQgdW5rbm93biBpbiB0aGUgc25tcHRyYXBkLgoJCjIwMDAtMDctMTEgMDg6MzIgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBtYWtlIHRoZSBjcmVhdGVVc2VyIHRva2VuIGFjY2VwdCBhbiBlbmdpbmVpZCAoLWUgQVJHKSB0byB1c2UuCgkKMjAwMC0wNy0wNyAwMTozNyAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBSZWNvZ25pc2UgVG9rZW4gUmluZyBpbnRlcmZhY2VzIHVuZGVyIExpbnV4CgkKMjAwMC0wNy0wNiAxNzoxOSAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogcHJpbnQgZ2VuZXJpYyBzdHJpbmdzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQoJICB3aGVyZSBwb3NzaWJsZS4gIChJRSwgY2hlY2sgZm9yIHByaW50YWJsZSBjaGFyYWN0ZXJzIGJlZm9yZSBwcmludGluZyBoZXgpLgoJCjIwMDAtMDctMDYgMTc6MDUgIGhhcmRha2VyCgoJLSAoVEVTVENPTkYuc2gsIFRFU1RDT05GLnNoLmluKTogbW92ZWQgVEVTVENPTkYuc2ggdG8gVEVTVENPTkYuc2guaW4KCSAgYW5kIGhhdmUgdGhlIE1JQlMgcGF0aCB2YXJpYWJsZSBidWlsdCBieSBjb25maWd1cmUgc2luY2UgaXQga25vd3MKCSAgd2hlcmUgdGhlIHJvb3QgbGV2ZWwgc291cmNlIGRpcmVjdG9yeSBpcy4KCQoyMDAwLTA3LTA2IDE3OjA0ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBoZWFkZXJfY29tcGxleC5jLCBzbm1wTm90aWZ5VGFibGUuYywKCSAgYXNuMS5oLCBzbm1wX2FwaS5jKToKCSAgLSBpbXBsZW1lbnQgSU1QTElFRCBpbmRleCBoYW5kbGluZy4KCSAgLSBtYWtlIHRoZSBjcmVhdGVkIFVTTSBlbnRyaWVzIHNldCB0aGUgc3RvcmFnZVR5cGUgYW5kIFJvd1N0YXR1cwoJICAgIGFwcHJvcHJpYXRlbHkuCgkKMjAwMC0wNy0wNiAxNzowMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5oKTogYmV0dGVyIGNvbW1lbnRzIG9uIGEgY291cGxlIG9mIGZ1bmN0aW9uIGRlZmluaXRpb25zLgoJCjIwMDAtMDctMDUgMDc6NTAgIG1zbGlmY2FrCgoJZml4IChCVUcjMjkwKSBncmFjZWZ1bGx5IGhhbmRsZSBzb21lIFBEVXMgdGhhdCBoYXZlIG5vIHZhcmlhYmxlcy4KCQoyMDAwLTA3LTA1IDA2OjQ2ICBtc2xpZmNhawoKCVtubyBsb2cgbWVzc2FnZV0KCQoyMDAwLTA3LTA0IDEwOjIxICBoYXJkYWtlcgoKCS0gKHNubXBfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgoJICAtIHJlbW92ZSBsYXN0IHJlbW5hbnRzIG9mIHRoZSAiaW5pdGlhbCIgdXNlci4KCSAgLSBtYWtlIGVuZ2luZWlkIHJlcG9ydHMgZnJvbSB0aGUgdXNtIGhhcHBlbiBiYXNlZCBvbiB0aGUgcmVwb3J0IGZsYWcKCSAgICBpbiB0aGUgbWVzc2FnZSBmbGFnLgoJICAgIC0gTm90ZTogdGhpcyBpcyBhIGJpZyBpc3N1ZSB3aXRoIHRoZSBTTk1QdjMgcHJvdG9jb2wgc3BlY3MuICBUaGUKCSAgICAgIHNwZWNpZmljYXRpb25zIG5vdGUgdGhhdCB5b3Ugc2VuZCBhIHJlcG9ydCBpZiB5b3UgYXJlCgkgICAgICAiYXV0aG9yaXRhdGl2ZSIsIGJ1dCBkb24ndCBkZXNjcmliZSBob3cgdG8ga25vdyBpZiB5b3UgYXJlCgkgICAgICBhdXRob3JpdGF0aXZlIG9yIG5vdC4gIEZvciBzaXR1YXRpb25zIGxpa2UgcHJveGllcyBhbmQKCSAgICAgIG5vdGlmaWNhdGlvbiByZWNlaXZlcnMsIHdoZXJlIHlvdSBhcmUgc29tZXRpbWVzIGF1dGhvcml0YXRpdmUKCSAgICAgIGFuZCBvdGhlciB0aW1lcyB5b3UncmUgbm90LCB0aGlzIGlzIHByb2JsZW1hdGljLiAgVGhlIFNOTVB2MwoJICAgICAgQVNJcyBkbyBub3QgcGFzcyBpbiBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lIHRoaXMgYW5kIHRoZQoJICAgICAgV0cgaGFzIHByb2NsYWltZWQgdGhhdCB0aGUgQVNJcyBhcmUgbm90IG1lYW50IHRvIGJlIHVzZWQgYXMgYW4KCSAgICAgIEFQSSwgYnV0IHRoZSBpbml0aWFsIHdvcmsgZG9uZSBieSBOQUkgYW5kIFRJU0xhYnMgYXR0ZW1wdGVkIHRvCgkgICAgICBpbXBsZW1lbnQgdGhlIFVTTSBzdWNoIHRoYXQgaXQgd291bGQgYmUgYSAicmVmZXJlbmNlIiByZWxlYXNlCgkgICAgICBhbmQgaGVuY2Ugd2UgZm9sbG93ZWQgdGhlIHNwZWNpZmljYXRpb25zIHRvIHRoZSBsZXR0ZXIgYW5kIHVzZWQKCSAgICAgIHRoZSBBU0lzIGFzIEFQSXMganVzdCB0byBzZWUgaWYgd2UgY291bGQuICBXZSBjb3VsZCBwcmV2aW91c2x5CgkgICAgICBvbmx5IGJlY2F1c2Ugd2Ugd2VyZSBhbHdheXMgZWl0aGVyIGF1dGhvcml0YXRpdmUgb3IKCSAgICAgIG5vbi1hdXRob3JpdGF0aXZlLiAgU2luY2UgYmVnaW5uaW5nIHRvIHdvcmsgb24gcHJveHkgYW5kIHRoZQoJICAgICAgbm90aWZpY2F0aW9uIG1pYiwgdGhpcyBpcyBubyBsb25nZXIgcG9zc2libGUuICBGb3IgdGhlIHJlY29yZCwgSQoJICAgICAgYW0gaGVyZWJ5IGNoYW5naW5nIHRoZSBpbml0aWFsIHJlZmVyZW5jZSByZWxlYXNlIGluIHN1Y2ggYQoJICAgICAgbWFubmVyIGFzIGl0IG5vIGxvbmdlciBjb25mb3JtcyBleGFjdGx5IHRvIHRoZSBTTk1QdjMgQVNJcy4gIFNvCgkgICAgICBhcyBub3QgdG8gY29uZnVzZSBhbnlvbmUsIHRoaXMgaXMgYW4gZW50aXJlbHkgdGhlb3JldGljYWwgaXNzdWUKCSAgICAgIHdpdGggcmVzcGVjdCB0byB0aGUgU05NUHYzIHNwZWNpZmljYXRpb24gYW5kIGlzIHBlcmZlY3RseSBsZWdhbAoJICAgICAgdG8gZG8uICBUaG91Z2ggSSBjb3VsZCBlYXNpbHkgZ28gb24sIEknbGwgc3RlcCBvZmYgbXkgc29hcCBib3ggbm93LgoJCjIwMDAtMDctMDMgMTA6MTAgIGhhcmRha2VyCgoJLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wTm90aWZ5VGFibGUuYywKCSAgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgdGFyZ2V0LmMpOgoJICAtIEFkZCBhIG5ldyBjYWxsYmFjayBmb3Igc2VuZGluZyB0cmFwcy4KCSAgICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgdXNlIGl0LgoJICAtIG1ha2UgdGhlIHRhcmdldCBtaWIgZ2VuZXJhdGUgbW9yZSBwZXJzaXN0ZW50IHNlc3Npb25zLgoJICAtIE1ha2UgdGhlIG5vdGlmaWNhdGlvbiBtaWIgYWx3YXlzIGFzayB0aGUgdGFyZ2V0IG1pYiBmb3IgYSBzZXNzaW9uCgkgICAgbGlzdCwgd2hpY2ggaXMgbm93IGNhY2hlZCBkaXJlY3RseSBieSB0aGUgdGFyZ2V0IG1pYi4KCQoyMDAwLTA3LTAzIDA4OjM4ICBtc2xpZmNhawoKCWZpeCAoQlVHIzI2MikgLSAoc29tZSkgc3RhdGVtZW50cyB0aGF0IGNhbm5vdCBiZSByZWFjaGVkLgoJCjIwMDAtMDctMDMgMDc6NTUgIG1zbGlmY2FrCgoJZml4IChCVUcjMjg3KQoJCjIwMDAtMDctMDMgMDY6MTEgIG1zbGlmY2FrCgoJZml4IGJ1ZyAjIDI4OQoJCjIwMDAtMDYtMzAgMDQ6NDUgIG1zbGlmY2FrCgoJc2ltcGxpZnkgbWVtb3J5IGFsbG9jYXRpb24gaW4gcmVhZF9jb25maWdfcmVhZF97b2N0ZXRfc3RyaW5nLCBvYmppZH0KCQoyMDAwLTA2LTMwIDAwOjQ3ICBuYmEKCgktIHJlYWRfY29uZmlnLmM6IEZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gZm9yIGtleXdvcmRzIHdpdGhvdXQgaGVscAoJCjIwMDAtMDYtMjggMjM6MzcgIG5iYQoKCS0gSUYtTUlCLnR4dDogdXBncmFkZSB0byBSRkMgMjg2MwoJCjIwMDAtMDYtMjggMDA6NTggIG5iYQoKCS0gaW50ZXJmYWNlcy5jLCBjb25maWd1cmU6IElyaXggNi41IGhhcyBpZmlfYmF1ZHJhdGUuaWZzX3ZhbHVlCgkKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgoJLSBtYWluLmM6IGJldHRlciBvcHRpb24gcGFyc2luZy4KCQoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCgktIHNubXB2My5jOiBkbyBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIG9wdGlvbiB2YWx1ZXMuCgkKMjAwMC0wNi0yNyAwMDozMyAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLjE6IGRvY3VtZW50IHRoYXQgLXcgaXMgYWxzbyBmb3IgLVRkCgkKMjAwMC0wNi0yNyAwMDozMCAgbmJhCgoJLSB2YXJpb3VzIG1hbiBwYWdlIG5pdC1waWNraW5nCgkKMjAwMC0wNi0yNyAwMDoyOCAgbmJhCgoJLSBzbm1wdGFibGUuYzogZml4ZXMgYW5kIHVzYWdlIG1lc3NhZ2UgZm9yIC1DaCBhbmQgLUNICgkKMjAwMC0wNi0yNiAyMzo0MyAgbmJhCgoJLSBNYWtlZmlsZS5pbiwgKk1JQi50eHQ6IHVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9uCgkKMjAwMC0wNi0yNiAyMzo0MiAgbmJhCgoJLSBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDogdG9vbHMgdG8gZXh0cmFjdCBNSUJzIGZyb20gUkZDCgkJZG9jdW1lbnRzLgoJCjIwMDAtMDYtMjYgMjM6NDAgIG5iYQoKCS0gcGFyc2UuYywgbWliLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWRkIHBhcnNpbmcgb2YgQ0hPSUNFIGFuZCBjaGVja3MgZm9yCgkJT0JKRUNULUdST1VQIGFuZCBBR0VOVC1DQVBBQklMSVRJRVMuIFRoaXMgYWxsb3dzIHVzIHRvIHBhcnNlCgkJY29tcGxldGUgTUlCIGV4dHJhY3RzIGZyb20gUkZDIGRvY3VtZW50cy4KCQoyMDAwLTA2LTI2IDIzOjM4ICBuYmEKCgktIE1ha2VmaWxlLnRvcDogbWFrZSBsaWJ0b29sIHNpbGVudCwgc28gd2UgY2FuIHNlZSB0aG9zZSB3YXJuaW5ncwoJCjIwMDAtMDYtMjYgMjM6MzcgIG5iYQoKCS0gc25tcFRhcmdldEFkZHJFbnRyeS5jOiBkbyBhIGNhc3QgdG8ga2lsbCBhIHdhcm5pbmcKCQoyMDAwLTA2LTI2IDIzOjMyICBuYmEKCgktIGFnZW50X3RyYXAuYzogRml4IGEgbGVhayB3aGVuIHJlcXVlc3QgaXMgYmxvY2tlZCBieSBWQUNNIGFuZCBubyB0cmFwCgkJaXMgc2VudC4KCQoyMDAwLTA2LTI2IDExOjU2ICBtc2xpZmNhawoKCWZpeCAoQlVHIzIzMykKCQoyMDAwLTA2LTIzIDA2OjQyICBtc2xpZmNhawoKCXJlcGxhY2UgbWFsbG9jL21lbXNldCAwIHdpdGggY2FsbG9jLgoJCjIwMDAtMDYtMjMgMDE6MDggIGRhdmVzCgoJLSAobWliSUkva2VybmVsX2xpbnV4LltjaF0sIG1pYklJL2lwLmMpOiBBZGRlZCBzdXBwb3J0IGZvciBpcFJvdXRpbmdEaXNjYXJkcwoJCShUaGFua3MgdG8gQnJ5YW4gQmxhY2ttYW4pCgkKMjAwMC0wNi0yMiAxNzowOSAgbXNsaWZjYWsKCglyZW1vdmUgZXh0cmEgaW5jbHVkZSBlcnJvcm1pYi5oCgkKMjAwMC0wNi0yMiAxNjo1MCAgbXNsaWZjYWsKCglGaXggYnVnICMyNzYgLSBjbG9zZSBtb3N0IGZpbGUgZGVzY3JpcHRvcnMgYmVmb3JlIGV4ZWMnaW5nIGNvbW1hbmQuCgkKMjAwMC0wNi0yMiAxNTo1OSAgbXNsaWZjYWsKCglmZ2V0czogdXNlIHNpemVvZihidWYpIGluIGxpZXUgb2YgY29tcGlsZXIgY29uc3RhbnQgU1RSTUFYLgoJCjIwMDAtMDYtMjIgMTU6NTMgIG1zbGlmY2FrCgoJVXNlIGZld2VyIGxhcmdlIHN0YXRpYyBidWZmZXJzLiAgcGFzc19wZXJzaXN0IHVzZXMgYmlnZ2VyIGJ1ZmZlcnMgbm93LgoJCjIwMDAtMDYtMjEgMTQ6NTkgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSwgc25tcHRvc3FsKTogcmVjb3JkIGFuZCByZXBvcnQgc3lzVXBUaW1lLgoJCjIwMDAtMDYtMjEgMTQ6MzEgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogbWlub3Igc3FsIGNhY2hpbmcgc3BlZWQgb3B0aW1pemF0aW9ucy4KCQoyMDAwLTA2LTIxIDEzOjMzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IEFjay4gIERvbid0IGRlbGV0ZSBzdHVmZiBmcm9tIHRoZSBoaXN0b3J5IHRhYmxlIHRoYXQgZnJlcXVlbnRseS4KCQoyMDAwLTA2LTIxIDEyOjUxICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGJldHRlciBlcnJvciBkZXNjcmlwdGlvbiBzdXBwb3J0LgoJCjIwMDAtMDYtMjEgMTI6NDYgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSwgc25tcHRvc3FsKTogY29sbGVjdCBzeXNEZXNjciwgc3lzT2JqZWN0SWQsICYgdmVyc2lvblRhZy4KCQoyMDAwLTA2LTIxIDEyOjQ2ICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IGFkZCAtc2VsZWN0b3JkZXIuCgkKMjAwMC0wNi0yMSAxMjoyNSAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5VGFibGUuYyk6IFVoLCBvbmx5IGlmIG5vdCBkZWxldGVkLgoJCjIwMDAtMDYtMjEgMTI6MjMgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBjaGFuZ2UgY3JlYXRlQW5kR28vY3JlYXRlQW5kV2FpdCBzdGF0ZXMgdG8gYWN0aXZlL05JUy4KCQoyMDAwLTA2LTIwIDIwOjAxICBtc2xpZmNhawoKCURlY2xhcmUgdG9wX2J1aWxkZGlyIHRvIGF2b2lkIGFubm95aW5nIC9saWJ0b29sIG5vdCBmb3VuZCBtZXNzYWdlLgoJCjIwMDAtMDYtMjAgMTc6MzAgIG1zbGlmY2FrCgoJRG9udCBhc3N1bWUgQU5TSSBDLXByZXByb2Nlc3NvciAocmVwbGFjZSAiIyMiIGNvbmNhdGVuYXRpb24gd2l0aCBzcHJpbnRmKS4KCQoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKCVdpbjMyIE1TLVZDKysgYnVpbGQgZml4dXBzLgoJCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgoJRW5jYXBzdWxhdGUgbG9jYWwgdmFyaWFibGUgIngiIHRvIHRoZSBzY29wZSB3aGVyZSBuZWVkZWQuCgkKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhciAibmV3dmFyIi4KCQoyMDAwLTA2LTIwIDE1OjM2ICBtc2xpZmNhawoKCVVzZSBpbnQgdnMgdWxvbmcgZm9yIGFycmF5IGluZGV4aW5nIHZhcmlhYmxlcyB0byBhdm9pZCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2guCgkKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcnMgc3RydWN0IHRtLCB0aW1lX3QuCgkKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhciAiaW5pdGxpc3QiLgoJCjIwMDAtMDYtMjAgMTU6MzMgIG1zbGlmY2FrCgoJRGVjbGFyZSBzdHJuY2FzZWNtcCBpbiBzeXN0ZW0uaCA7IFJlbW92ZSB1bnVzZWQgdmFyICJzdGF0dXMiLgoJCjIwMDAtMDYtMjAgMTU6MzEgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJzLgoJCjIwMDAtMDYtMjAgMTU6MzAgIG1zbGlmY2FrCgoJRGVjbGFyZSBvcHRhcmcgaW4gZ2V0b3B0LmguCgkKMjAwMC0wNi0yMCAxNDowMCAgaGFyZGFrZXIKCgktIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIG1pbm9yIGNoYW5nZXMuCgkKMjAwMC0wNi0yMCAxMzo1OSAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlLCBzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgpOgoJICAtIFNOTVAtTk9USUZJQ0FUSU9OLU1JQidzIHNubXBOb3RpZnlUYWJsZSBpbXBsZW1lbnRlZDoKCSAgICAtIHVzZXMgdGhlIFNOTVAtVEFSR0VULU1JQiB0byBnZXQgaXRzIGFkZHJlc3NlcyBmcm9tLgoJICAgIC0gdXNlcyBoZWFkZXJfY29tcGxleCB0byBoYW5kbGUgdGhlIGRhdGEuCgkgICAgLSBtdWNoIHRvZG86CgkgICAgICAtIGR5bmFtaWMgdGFyZ2V0L25vdGlmaWNhdGlvbiBtaWIgdXBkYXRpbmcgd2l0aG91dCBraWxsIC1IVVAgbmVlZGVkLgoJICAgICAgICAtIHRoaXMgd2lsbCBiZSBhIHJlYWwgcGFpbi4KCSAgICAgIC0gZml4IHYzIHJlbGF0ZWQgdHJhcHMgc3RpbGwgKHNhbWUgdXNtIGJ1ZyBJJ3ZlIGJlZW4gbWVhbmluZyB0byBmaXgpLgoJICAgICAgLSB0aGUgcmVzdCBvZiB0aGUgU05NUC1OT1RJRklDQVRJT04tTUlCIHRhYmxlcy4KCQoyMDAwLTA2LTIwIDEzOjUzICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgoJLSBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCgktIG1pc2Mgb3RoZXIgbWlub3IgZml4ZXMuCgkKMjAwMC0wNi0yMCAxMzo1MSAgaGFyZGFrZXIKCgktICh0YXJnZXQuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKTogZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgoJICBiYXNlZCBvbiBlbnRyaWVzIGluIHRoZSBTTk1QLVRBUkdFVC1NSUIgdGFibGUuCgkKMjAwMC0wNi0yMCAxMzo1MCAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jKTogcmVtb3ZlIE1pY2hhZWwncyBob3JyaWJsZWx5IHdyb25nICJmaXhlcyIuCgkKMjAwMC0wNi0yMCAxMzo0OCAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6IGFkZCByZW1vdmVfdHJhcF9zZXNzaW9uKCkuCgkKMjAwMC0wNi0yMCAxMzo0NiAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogZGVhbCB3aXRoIDAtbGVuZ3RoIHBlcnNpc3RlbnQgc3RyaW5ncyBiZXR0ZXIuCgkKMjAwMC0wNi0xOSAxMjozMiAgbXNsaWZjYWsKCglDaGVjayBtb3JlIGFsbG9jIGZhaWx1cmVzLgoJCjIwMDAtMDYtMTkgMTI6MTUgIG1zbGlmY2FrCgoJKHByb3RvY29sLmMpIFVzZSBzaXplb2Yob2lkKSwgbm90IDQhCgkoY2xpZW50LmMpIEFkZCBfYWxsXyBvZiBPSUQgdmFsdWUgZm9yIGFnZW50eF9yZWdpc3RlciBhbmQgYWdlbnR4X3VucmVnaXN0ZXIuCgkKMjAwMC0wNi0xOSAxMTo0MSAgbXNsaWZjYWsKCgkgUmVtb3ZlZCBzaXplb2YodV9jaGFyKSBhbmQgdW5uZWNlc3NhcnkgKHVuc2lnbmVkKSBjYXN0cyB0byBtYWxsb2MgcGFyYW1zLgoJCjIwMDAtMDYtMTkgMDM6MDQgIG5iYQoKCVByb3RvdHlwZSBmaXh1cC4KCQoyMDAwLTA2LTE5IDAzOjAxICBuYmEKCglzL2NvbmlmZy9jb25maWcvIC4uLi4gSHJycm1tbXBmCgkKMjAwMC0wNi0xOSAwMjo1OCAgbmJhCgoJLSBtYWtlbm9zeXNkZXBlbmQucGwgTWFrZWZpbGUuaW46IG9iamVjdCBmaWxlcyBhcmUgbm93IG5hbWVkIC5sbyAuLi4KCQoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuaCk6IGFkZCB0aGUgU05NUHYyLVRNIG1pYiB0byB0aGUgZGVmYXVsdCBsaXN0LgoJCjIwMDAtMDYtMTYgMTY6MDEgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6IGZpeCBpbmNvcnJlY3QgT0lEcy4KCQoyMDAwLTA2LTE1IDA2OjQ1ICBtYXJ6CgoJZmF0IGZpbmdlcnMKCQoyMDAwLTA2LTE1IDA2OjQyICBtYXJ6CgoJYWRkIGRlZmF1bHRzIHRvIGRhZW1vbiBzZWFyY2ggcGF0aC4uLnJlY2FsYyB0L3NubXB0ZXN0LmNtZCBldmVyeXRpbWUgcGVyIG1ha2VmaWxlLlBMIGlzIHJ1bgoJCjIwMDAtMDYtMTQgMTY6MTUgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGZpeCB1c2VyIHByZWZlcmVuY2VzLiAgQ29sdW1ucyBhcmUgb3B0aW9uYWxseQoJICBkaXNwbGF5YWJsZSBhZ2Fpbi4KCQoyMDAwLTA2LTE0IDE2OjE1ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGZpeCBoaXN0b3J5IGRlbGV0aW9uLgoJCjIwMDAtMDYtMTIgMTY6NDMgIGhhcmRha2VyCgoJLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRyYXBzZXNzLgoJCjIwMDAtMDYtMTIgMTY6MzkgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOgoJICAtIG5ldyBzbm1wZC5jb25mIHRva2VuIGZvciB0cmFwIHNlc3Npb25zOiAidHJhcHNlc3MiLgoJICAgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3Mgc28gYW55IHR5cGUgb2YgdHJhcCBjYW4gYmUgc2VudCB3aXRoIGl0CgkgICAgICBtb2RpZmllZCBieSBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgZG9jdW1lbnRlZCBpbiBzbm1wY21kKDEpLgoJICAgIC0gdjMgdHJhcHMgZG9uJ3Qgd29yayBkdWUgdG8gdGhlIHNhbWUgVVNNIHByb2JsZW1zIGZvdW5kIGluIHRoZQoJICAgICAgcmVjZW50IHByb3h5IHN1Ym1pc3Npb25zIChteSBuZXh0IHRhcmdldCkuCgkgICAgLSAtQ2kgaW4gdGhlIGFyZ3VtZW50IHNwZWNpZmllcyBpbmZvcm1zIHNob3VsZCBiZSB1c2VkLgoJCjIwMDAtMDYtMTIgMTY6MTggIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IHJlLWVuYWJsZSBmcmVlaW5nIG9mIG1hc3RlciByZXF1ZXN0LgoJCjIwMDAtMDYtMTIgMTY6MTcgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzYXZlIGV4ZWMgZGF0YSB0byAvdmFyL3VjZC1zbm1wLgoJICAtIGNvdWxkIGNhdXNlIHByb2JsZW1zIGZvciBub24tcm9vdCBydW5zLiAgVW50ZXN0ZWQuCgkKMjAwMC0wNi0xMiAxNDoxMiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGRfbG9nLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CgkgIC0gcmVtb3ZlIGVuZGluZyBjb21tYXMgaW4gZW51bSBsaXN0LgoJCjIwMDAtMDYtMTIgMTA6MzYgIGhhcmRha2VyCgoJLSAoc2V0dXBkYiwgc2V0dXB1c2VyLCBzbm1wdG9zcWwpOiB1c2UgIlRhYmxlInMgaW5zdGVhZCBvZiAiRW50cnkicy4KCQoyMDAwLTA2LTEyIDEwOjMzICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIGRpc3BsYXkgcHVycG9zZXMgKGFnYWluKS4KCQoyMDAwLTA2LTEyIDEwOjI5ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCgkKMjAwMC0wNi0xMiAxMDoyNyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogcHJvcGVybHkgc29ydCBkaXNwbGF5ZWQgdGFibGUgY29sdW1ucyBhZ2Fpbi4KCQoyMDAwLTA2LTA3IDEzOjIzICBoYXJkYWtlcgoKCS0gKHNubXBfY29uZmlnLjUuZGVmLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKCSAgLSB0aGUgVFlQRS5jb25mIHBhcnNlciBub3cgYWNjZXB0cyB0b2tlbnMgZnJvbSBhIGRpZmZlcmVudCAuY29uZgoJICAgIGZpbGUgVFlQRSBpZiBhIHNwZWNpYWwgIltUWVBFXSIga2V5d29yZCBpcyBpbnNlcnRlZCBpbnRvIHRoZQoJICAgIC5jb25mIGZpbGUuICBTZWUgc25tcF9jb25maWcoNSkgZm9yIGEgYmV0dGVyIGRlc2NyaXB0aW9uLgoJCjIwMDAtMDYtMDcgMTM6MjIgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAgLSBtYXAgc3RydG91bCB0byBhdG9pIGlmIHRoZSBmdW5jdGlvbiBpc24ndCBmb3VuZC4KCQoyMDAwLTA2LTA2IDE0OjI2ICBoYXJkYWtlcgoKCS0gKElOU1RBTEwsIGdyZWVuLmdpZiwgbWFuYWdlci5wbSwgcmVkLmdpZiwgc2V0dXBhdXRoLCBzZXR1cGRiLAoJICBzZXR1cG5ld2hvc3QsIHNldHVwdXNlciwgc25tcHRvc3FsLCBzbm1wdG9zcWx0YWJsZSwgc3FsdG9odG1sKToKCSAgLSBtYW5hZ2VtZW50IGNsZWFudXAgYW5kIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgd3JpdHRlbi4KCSAgLSBzaG91bGQgYmUgbW9zdGx5IGNvbXBsZXRlIChpZSwgYmFyZWx5IGZ1bmN0aW9uYWwpIGZvciB0aGUgYWxwaGEgdGVzdGVycy4KCQoyMDAwLTA2LTA2IDA4OjAzICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGhvc3QgbmFtZSBjaGFuZ2VzIC0+IHZhcmNoYXIoNjQpCgkKMjAwMC0wNi0wNiAwODowMiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogbWFueSBtaW5vciBmaXhlcyBhbmQgY2hhbmdlcy4KCQoyMDAwLTA2LTA2IDA4OjAyICBoYXJkYWtlcgoKCS0gKGRpc3BsYXl0YWJsZS5wbSk6IGFsbG93IHRhYmxlIHRpdGxlIHNldHRpbmcuCgkKMjAwMC0wNi0wMiAxMTo0MSAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogYWRkICoubWFkZS4KCQoyMDAwLTA2LTAyIDExOjQwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBmaXhwcm9jLCBpcGYtbW9kLnBsLCBtaWIyYywgdGttaWIpOgoJICAtIG1ha2UgKGFuZCBpbnN0YWxsKSBwZXJsIHNjcmlwdHMgZGlmZmVyZW50bHksIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBvcmlnLgoJCjIwMDAtMDYtMDEgMTY6NDcgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogdHlwb3MuCgkKMjAwMC0wNi0wMSAxNjo0NCAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOgoJICAtIGRlYnVnZ2luZyB0byBTVERFUlIuCgkgIC0gYXV0byBkZWxldGlvbiBvZiBvbGQgaGlzdG9yaWNhbCBkYXRhLgoJCjIwMDAtMDYtMDEgMTY6NDQgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGJlZ2lubmluZ3Mgb2YgYSBuaWNlciByZWFsIGludGVyZmFjZS4KCQoyMDAwLTA2LTAxIDE2OjQzICBoYXJkYWtlcgoKCS0gKGdldFZhbHVlcy5wbSk6IHNvbWUgdmFyaWFibGVzIHdlcmUgZ2xvYmFsIGFuZCBoZW5jZSBwZXJzaXN0ZW50IGFuZAoJICB3ZXJlIG1lc3NpbmcgdGhpbmdzIHVwLgoJCjIwMDAtMDYtMDEgMTQ6NDggIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBpbW1lZGlhdGVseSBhZnRlciBpbml0J2luZyB0bwoJICBlbnN1cmUgd2UgdXBkYXRlIGNvdW50ZXJzIGFuZCBzdHVmZiB0aGF0IG11c3QgY2hhbmdlIChlZywgZW5naW5lQm9vdHMpLgoJCjIwMDAtMDUtMzEgMTY6MjIgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBkZXNjcmliZSAtSS4KCQoyMDAwLTA1LTMxIDE1OjUyICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wZC5jKToKCSAgLSBuZXcgLUkgc3dpdGNoIHRvIHNubXBkIHRvIGRvIGR5bmFtaWMgZGV0ZXJtaW5hdG9uIG9mIHdoaWNoIG1pYgoJICAgIG1vZHVsZXMgdG8gaW5pdGlhbGl6ZSAoYW5kIGhlbmNlIHdoaWNoIG1pYiB0cmVlIHNlY3Rpb25zIHRvIHN1cHBvcnQpLgoJCjIwMDAtMDUtMzEgMTU6NTAgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOiBkZWZhdWx0IHN0b3JlIHJvdXRpbmVzIGZvciB2b2lkIHBvaW50ZXJzLgoJIC0gd2hpY2ggSSBpbW1lZGlhdGVseSBkZWNpZGVkIHRvIGRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZm9yIHdoYXQgSQoJICAgb3JpZ2luYWxseSBpbXBsZW1lbnRlZCBpdCBmb3IsIHNvIGl0cyBub3QgYmVpbmcgdXNlZCB5ZXQuCgkKMjAwMC0wNS0zMSAwNTo1OSAgZGF2ZXMKCgktIChtaWJJSS9pcC5bY2hdKTogQWxsb3cgSVAgc3VwcG9ydCB3aXRob3V0IHRoZSBBdC9pcE5ldFRvTWVkaWEgbW9kdWxlCgkKMjAwMC0wNS0zMCAxNzoxMSAgaGFyZGFrZXIKCgktIChwcm94eS5jLCBwcm94eS5oKTogc2ltcGxlIHByb3h5IHN1cHBvcnQuCgkgIC0gbWFwcyBvbmUgb2lkIGluc2lkZSB0aGUgYWdlbnQgdG8gYSBwb3NzaWJseS1kaWZmZXJlbnQgb2lkIG9uIGEgdGFyZ2V0LgoJICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzKCkgc28gaXQgdGFrZXMgc3RhbmRhcmQgY29tbWFuZCBsaW5lIGNvbmZpZyBvcHRpb25zLgoJICAtIG5vIHNldCBzdXBwb3J0LgoJICAtIG5vIGtpbGwgLUhVUCBzdXBwb3J0LgoJICAtIG5vIFNOTVB2MyBzdXBwb3J0IChzaWdoKS4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIElBTkEtTEFOR1VBR0UtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgRElTTUFOLVNDSEVEVUxFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBBR0VOVFgtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDA3OjQ3ICBtc2xpZmNhawoKCUZpeCBwcm9ibGVtIGlkZW50aWZpZWQgYnkgVi4gR3JlbmV0IDogbmV3IG1ldGhvZCBzbm1wX29pZF9taW5fY29tcGFyZQoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgbWliZmV0Y2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBzbWlzdHJpcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIE1ha2VmaWxlLm1pYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTI2IDA5OjI0ICBkYXZlcwoKCS0gKG1pYklJL3N5c09SVGFibGUuYyBtaWJJSS9zeXN0ZW1fbWliLmMpOgoJICAtIFVzZSBuZXcgdGltZSB1dGlsaXR5IHJvdXRpbmVzIHRvIHNpbXBsaWZ5IHByb2Nlc3NpbmcKCSAgLSBVcGRhdGUgc3lzT1JMYXN0Q2hhbmdlIHdoZW4gYWRkaW5nL3JlbW92aW5nIGVudHJpZXMKCQoyMDAwLTA1LTI2IDA5OjIzICBkYXZlcwoKCS0gKHV0aWxfZnVuY3MuW2NoXSk6IE5ldyB0aW1lLWRpZmYgdXRpbGl0eSByb3V0aW5lcwoJCjIwMDAtMDUtMjYgMDg6NDYgIGRhdmVzCgoJLSAoc25tcGQuYyBzbm1wX2FnZW50LmMgbWliSUkvdmFyX3JvdXRlLmMpOiBVc2UgJ21pYmluY2wuaCcgaGVhZGVyCgkKMjAwMC0wNS0yNiAwNzo0OCAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXQoJICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOgoJICAgLSBTdXBwb3J0IGZvciBNSUIgcmVnaW9uIHRpbWVvdXRzCgkKMjAwMC0wNS0yNiAwNzo0NiAgZGF2ZXMKCgktIChzbm1wLmggc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogU3VwcG9ydCBmb3IgcGVyLXJlcXVlc3QgdGltZW91dCBoYW5kbGluZwoJCjIwMDAtMDUtMjYgMDc6NDUgIGRhdmVzCgoJLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBNaW5vciBlcnJvciBpbiBBZ2VudFggcGFja2V0IGR1bXAKCQoyMDAwLTA1LTI1IDEwOjA3ICBoYXJkYWtlcgoKCS0gKG1lbW9yeS5jKTogUGF0Y2ggZnJvbSBSYWduYXIgS2rgpYbgpIbgpJByc3RhZDoKCSAgLSBmaXhlZCBsaW51eCBwcm9ibGVtOiB3cm9uZyBwYXJhbXMgZ2V0dGluZyByZXR1cm5lZC4KCQoyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawoKCUZpeCB1c2Ugb2YgYmluMmFzYyB0byBub3QgYWx3YXlzIHNob3cgInN0cmluZyI7IHVzZSBzbm1wX29pZF9jb21wYXJlLCB0b28uCglTZWUgYnVnICMyMzQgZm9yIGRldGFpbHMuCgkKMjAwMC0wNS0yNSAwMzozOSAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb25zb2xpZGF0ZSBoZWFkZXIgaGFuZGxpbmcuCgkKMjAwMC0wNS0yNSAwMzozMSAgZGF2ZXMKCgktIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb3JyZWN0IGNvbmZ1c2luZyBjb21tZW50CgkKMjAwMC0wNS0yNSAwMTo1MyAgZGF2ZXMKCgktIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogUmVwbGFjZSB1c2Ugb2YgJ2N1dCcgd2l0aCBlcXVpdmFsZW50ICdzZWQnIGNhbGxzCgkKMjAwMC0wNS0yNSAwMTozMCAgZGF2ZXMKCgktIChjb25maWd1cmUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUpOgoJICAtIERpcmVjdCBjZXJ0YWluIGNoZWNrcyB0byB0aGUgYXBwcm9wcmlhdGUgZmlsZSBkZXNjcmlwdG9yIChzZWUgQlVHIzI0NykKCQoyMDAwLTA1LTIyIDE2OjIyICBoYXJkYWtlcgoKCS0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZCBtb3JlIHN0dWZmIHRvIGlnbm9yZS4KCQoyMDAwLTA1LTIyIDE2OjIxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrZ2V0LmMsCgkgIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAoJICBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywKCSAgc25tcF9wYXJzZV9hcmdzLmgpOgoJICAtIG1vdmVkIHNubXBfcGFyc2VfYXJncyB0byB0aGUgbGlicmFyeSwgYXMgSSBwcm9taXNlZCB0byBkbyBhZ2VzIGFnby4KCSAgICAtIG5vIGxvbmdlciBjYWxscyB1c2FnZSgpIGRpcmVjdGx5LCBidXQgcmV0dXJucyAtMSBpZiB5b3Ugc2hvdWxkLgoJCjIwMDAtMDUtMjIgMDU6NDcgIGRhdmVzCgoJLSAoc25tcGxpYi90b29scy5bY2hdKTogUm91dGluZSBmb3IgY29tcGFyaW5nIHR3byBtYXJrZXJzLgoJCjIwMDAtMDUtMjIgMDU6NDIgIGRhdmVzCgoJLSAobG9jYWwvbWliMmMpOiBHZW5lcmF0ZSBtdWx0aXBsZSB0YWJsZXMgaW4gb25lIGNvZGUgZmlsZQoJCjIwMDAtMDUtMTcgMTA6MjggIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSB3cml0YWJsZSB2YWNtIG1pYiBzdXBwb3J0LgoJICAtIG90aGVyIG1pc2MgdmFjbSBmaXhlcy4KCQoyMDAwLTA1LTE3IDEwOjI2ICBoYXJkYWtlcgoKCS0gKHNubXB1c20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKCSAgLSBEb24ndCBzZWdmYXVsdCBvbiBhbiB1bmtub3duIGNvbW1hbmQsIGluc3RlYWQgcHJpbnQgYSB3YXJuaW5nLi4KCQoyMDAwLTA1LTE3IDEwOjI1ICBoYXJkYWtlcgoKCS0gKHNubXB2YWNtLmMpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CgkgIC0gYWRkZWQgYSBuZXcgY29tbWFuZDogc25tcHZhY20uCgkKMjAwMC0wNS0xNyAwOToyNSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogbWVudGlvbiB0aGUgcG9ydCBudW1iZXIgb24gdGhlIHRyYXBzaW5rIGhlbHAgbGluZS4KCQoyMDAwLTA1LTE3IDA5OjIwICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogdXNlIHN0YW5kYXJkaXplZCBidWZmZXIgc2l6ZXMKCQoyMDAwLTA1LTE3IDA5OjEzICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2xvZy5jLCBzbm1wdHJhcGQuOCk6IFBhdGNoIGZyb20KCSAgSmVmZiBDb3VyczoKCSAgLSBjdXN0b21pemVkIGZvcm1hdHRpbmcgb2YgdHJhcCBvdXRwdXQuCgkKMjAwMC0wNS0xNyAwOToxMSAgaGFyZGFrZXIKCgktIChSRUFETUUpOiBhZGQgSmVmZiBhbmQgQXJuZS4KCQoyMDAwLTA1LTE3IDA4OjE1ICBoYXJkYWtlcgoKCS0gKG1pYi5jKTogKmNvcnJlY3RseSogYXNzb2NpYXRlIGVzY2FwZVF1b3RlcyB3aXRoIHRoZSByaWdodCBkZWZhdWx0X3N0b3JlIGJvb2wuCgkKMjAwMC0wNS0xNyAwODoxMSAgaGFyZGFrZXIKCgktIChzbm1wLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBlc2NhcGVRdW90ZXMuCgkKMjAwMC0wNS0xNyAwODowOSAgaGFyZGFrZXIKCgktIChzbm1wY21kLjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBuZXcgb3B0aW9uIC1PRToKCSAgLSBzaGVsbCBiYWNrc2xhc2ggZXNjYXBlIHF1b3RhdGlvbnMgbWFya3MgZm9yIGN1dHRpbmcgYW5kIHBhc3RpbmcKCSAgICBvbnRvIGFub3RoZXIgc25tcCBjb21tYW5kIGxpbmUuCgkKMjAwMC0wNS0xNSAwOToyNCAgZGF2ZXMKCgktIChtaWJJSS97aXAsaWNtcCx0Y3AsdWRwLGtlcm5lbF9saW51eH0uW2NoXSk6CgkgIC0gIFB1bGwgTGludXggTUlCLUlJIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGludG8gYSBzaW5nbGUgcm91dGluZS4KCSAgLSAgQ2FjaGUgTUlCLUlJIHN0YXRpc3RpY3Mgb24gYWxsIGFyY2hpdGVjdHVyZXMuCgkKMjAwMC0wNS0xNSAwODo1MyAgaGFyZGFrZXIKCgktICh1Y2Rfc25tcC5oLCB2bXN0YXRfYnNkaTQuYywgdm1zdGF0X2JzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gdm1zdGF0IHN1cHBvcnQgZm9yIGJzZGk0LgoJCjIwMDAtMDUtMTUgMDM6MDYgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKCQkoSXQgcmVhcHBlYXJlZCBkdXJpbmcgYSByZWNlbnQgY2hhbmdlKQoJCjIwMDAtMDUtMTUgMDM6MDAgIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBJbXBsZW1lbnQgbWlzc2luZyByb3V0aW5lICd1bnJlZ2lzdGVyX21pYl9jb250ZXh0JwoJCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50X2luZGV4LltjaF0pOiBNb3ZlICdmZCcgcmVnaXN0cnkgaGFuZGxpbmcgYmFjayB0byBhZ2VudF9yZWdpc3RyeQoJCgktIChhZ2VudHgvY2xpZW50LmMpOiBSZWNvZ25pc2UgbmV3IGNvZGUgZmlsZSBmb3IgaW5kZXggaGFuZGxpbmcKCQoyMDAwLTA1LTEyIDEwOjE1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IFVtLCBkZWZhdWx0IHRvIHBvcnQgMTYxLiAgT3Bwcy4KCQoyMDAwLTA1LTEyIDA5OjAwICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gdmFyX3N0cnVjdC5oIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gUHJlcGFyYXRpb24gZm9yIHBlci1NSUIgcmVnaW9uIHRpbWVvdXQsIGFuZCBjb250ZXh0IHN1cHBvcnQKCQoyMDAwLTA1LTEyIDA4OjQ1ICBkYXZlcwoKCS0gKGtlcm5lbF9zdW5vczUuYyk6IFJlY29nbmlzZSBTb2xhcmlzIEFUTSBMQU4gRW11bGF0aW9uIGludGVyZmFjZXMKCQlUaGFua3MgdG8gSmF5IFlvdW5nCgkKMjAwMC0wNS0xMiAwODoxMyAgZGF2ZXMKCgktIChhZ2VudF9pbmRleC5bY2hdIGFnZW50X3JlZ2lzdHJ5LltjaF0gTWFrZWZpbGUuaW4gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKCSAgLSBTcGxpdCBpbmRleCBoYW5kbGluZyBvdXQgZnJvbSB0aGUgTUlCIHJlZ2lzdHJ5LgoJCjIwMDAtMDUtMTIgMDc6MDIgIGRhdmVzCgoJLSAoa2VybmVsX3N1bm9zNS5jKTogQWRkIHN1cHBvcnQgZm9yIHJlY29nbmlzaW5nIFF1YWRGYXN0RXRoZXIgaW50ZXJmYWNlCgkKMjAwMC0wNS0xMiAwNjo1NyAgZGF2ZXMKCgktIChhcHBzL3NubXB0YWJsZS5jKTogRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nIHNlcGFyYXRvciAod2l0aCAtQ2kgLUNmKQoJCVRoYW5rcyB0byBYYXZpZXIgRk9VUk5FVAoJCjIwMDAtMDUtMTIgMDQ6MDIgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlIHJlZHVuZGFudCBQRFUgY2xvbmUKCQlJJ20gc3VyZSB0aGlzIHdhcyBwdXQgaW4gZm9yIGEgcmVhc29uLCBidXQgSSBjYW4ndCByZW1lbWJlciB3aGF0LgoJCUl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgbm93LCBhbmQganVzdCBsZWFrcyBtZW1vcnkuCgkJSGVyZSdzIGhvcGluZy4uLi4uCgkKMjAwMC0wNS0xMiAwMzoxMSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wZC5jKTogQ2F0Y2ggKGFuZCBpZ25vcmUpIFNJR1BJUEUgc2lnbmFscy4KCQlEaXNhcHBlYXJpbmcgc3ViYWdlbnRzIHRoZXJlZm9yIGFwcGVhciBhcyBub3JtYWwgSS9PIGZhaWx1cmVzCgkKMjAwMC0wNS0xMiAwMjoyNCAgZGF2ZXMKCgktIChhZ2VudHgvcHJvdG9jb2wuYyk6CgkgIC0gSW1wbGVtZW50IG9wYXF1ZS1lbmNvZGVkIGZsb2F0ICYgZG91YmxlIHR5cGVzCgkgIC0gQnJpbmcgcGFja2V0IGR1bXAgaW4gbGluZSB3aXRoIHRoZSBtYWluIGxpYnJhcnkgc3R5bGUKCSAgLSBBZGQgcGFja2V0IGR1bXAgY2FwYWJpbGl0eSBmb3Igb3V0Z29pbmcgUERVcwoJCjIwMDAtMDUtMTAgMTY6NTIgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtcC4KCQoyMDAwLTA1LTEwIDE2OjQzICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgdHJhbnNwb3J0IG1hcHBpbmcsIG5vdCB0aGUgbGFzdCBvbmUuCgkKMjAwMC0wNS0xMCAxNjoyNSAgaGFyZGFrZXIKCgktIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbXBsZW1lbnQgbXVsdGlwbGUgdHJhbnNwb3J0CgkgIG1hcHBpbmdzIHZpYSAtcCBbdHJhbnNwb3J0Ol1wb3J0W0BhZGRyZXNzXS4KCQoyMDAwLTA1LTEwIDExOjA4ICBtc2xpZmNhawoKCWZpeCB1ZHBzdGF0IC0tPiB0Y3BzdGF0CgkKMjAwMC0wNS0xMCAwNzo1OSAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QsIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gSGFuZGxlIHN1YmFnZW50IGRpc2FwcGVhcmluZyB3aXRob3V0IHdhcm5pbmcKCQoyMDAwLTA1LTEwIDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyBzbm1wbGliL3NubXBfYXBpLmgpOgoJICAtIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIGFzeW5jaHJvbm91cyBzZW5kIGZhaWx1cmVzLgoJCjIwMDAtMDUtMTAgMDY6MTMgIGRhdmVzCgoJLSAoc25tcF9hcGkuaCk6IExvZ2ljYWwgTk9UPyBCaXR3aXNlIE5PVD8gV2hvJ2xsIG5vdGljZSB0aGUgZGlmZmVyZW5jZSBhbnl3YXkhCgkKMjAwMC0wNS0xMCAwNTozNCAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEhhbmRsZSBub24tcmVzcG9uc2l2ZSBzdWJhZ2VudHMKCQoyMDAwLTA1LTEwIDA1OjMzICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMgbWliSUkvc3lzT1JUYWJsZS5jKTogRG9uJ3QgYXNzdW1lIHN1YnNlc3Npb24gbGluayBpcyB2YWxpZAoJCjIwMDAtMDUtMTAgMDU6MjkgIGRhdmVzCgoJLSAoc25tcF9hcGkuaCk6IERlZmluaXRpb25zIGZvciBzZXNzaW9uIGNsb3NlZG93biBoYW5kbGluZwoJCjIwMDAtMDUtMDkgMTQ6NDIgIG1zbGlmY2FrCgoJYWxzbyBjbGVhbiBXaW4zMiBiaW5hcnkgb2JqZWN0cywgYW5kIGNvcmUgZmlsZXMuCgkKMjAwMC0wNS0wOSAxNDozNCAgbXNsaWZjYWsKCgl0b3VjaCB1cCB0aGUgImNsZWFuIiBydWxlLgoJCjIwMDAtMDUtMDkgMTE6MzIgIG1zbGlmY2FrCgoJdW50aWwgRGF2ZSdzIHZlcnNpb24gd2lucywgbmVlZCBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIGJ1aWxkIFdpbjMyIGFnZW50LgoJCjIwMDAtMDUtMDkgMTE6MzEgIG1zbGlmY2FrCgoJZml4IHNvbWUgV2luMzIgYnVpbGRzIChzaWduYWxzPyB3ZSBkb24ndCBuZWVkIG5vIHN0ZWVua2luZyBzaWduYWxzISkKCQoyMDAwLTA1LTA5IDExOjMwICBtc2xpZmNhawoKCVJlbW92ZSB0cmFpbGluZyBDUiBbMHgwZF0gZnJvbSBvbmUgbGluZS4KCQoyMDAwLTA1LTA5IDA4OjUwICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwoJICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgoJCjIwMDAtMDUtMDkgMDg6NDcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBmaXggbGluayB0aW1lIHByb2JsZW1zCgkgIHdpdGggYUNDIChvciBhbnkgb3RoZXIgdW5rbm93biBjb21waWxlcikuCgkKMjAwMC0wNS0wOSAwNzo0MyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IFNlbmQgb3V0IHJlLWRlbGVnYXRlZCByZXF1ZXN0cwoJCShhbmQgZml4IGEgcHJvYmxlbSB3aXRoIHNwZWNpZnlpbmcgdGhlIGVuZC1vZi1yYW5nZSB2YWx1ZSkKCQoyMDAwLTA1LTA5IDA3OjQwICBkYXZlcwoKCS0gKGFnZW50eC9zdWJhZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIGVycm9yIHJlc3BvbnNlIGdlbmVyYXRpb24KCQkoYnkgYW5hbG9neSB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIHNubXBfYWdlbnQuYykKCQoyMDAwLTA1LTA5IDA3OjM0ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IEhhbmRsZSBBZ2VudFggImVuZC1vZi1yYW5nZSIgaW5kaWNhdGlvbi4KCQkoVGhpcyBpcyBub3QgdGhlIGNsZWFuZXN0IHdheSBvZiBkb2luZyB0aGluZ3MsCgkJIGJ1dCB3b3JrcyBmb3Igbm93LiAgV2UgY2FuIHRpZHkgdXAgbGF0ZXIpLgoJCjIwMDAtMDUtMDkgMDc6MTYgIGRhdmVzCgoJLSAoc25tcF92YXJzLmMpOiBVc2UgTUlCIHJlZ2lzdHJ5ICdzdGFydCcgdmFsdWVzCgkJKHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBuYW1lIHJlZ2lzdGVyZWQpCgkJVGhpcyBoYW5kbGVzIHN1YnNlcXVlbnQgcGFydCBvZiAnc3BsaXQnIHJhbmdlcyBwcm9wZXJseS4KCQoyMDAwLTA1LTA4IDExOjA4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogSSBjYW4ndCBiZWxpZXZlIHRoZSBsYXN0IGNoZWNraW4gZXZlbiBjb21waWxlZCAobHVjaykuCgkKMjAwMC0wNS0wOCAxMTowMyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCBsaWJyYXJ5IGxpc3QuCgkKMjAwMC0wNS0wNSAwOTo1NiAgaGFyZGFrZXIKCgktIChkaXNraW8uYyk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKCSAgLSBkaXNrIGlvIHN1cHBvcnQgZm9yIEJTRC9PUy4KCQoyMDAwLTA1LTA1IDA5OjU0ICBoYXJkYWtlcgoKCS0gKGF0LmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gZml4IGEgemVybyBieXRlIG1hbGxvYyBidWcgKG1vc3RseSBub3RpY2VkIHdpdGggLWxlZmVuY2UpLgoJCjIwMDAtMDUtMDUgMDk6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CgkgIC0gLS13aXRoLWxpYndyYXAgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDUtMDUgMDk6MDAgIGRhdmVzCgoJLSAoYWdlbnR4L3N1YmFnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOgoJICAtIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBBZ2VudFggcHJvY2Vzc2luZwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNSAwODo1OCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLltjaF0gc25tcGxpYi9zbm1wX2NsaWVudC5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSk6CgkgIC0gTWlub3IgY2hhbmdlcyB0byBhc3Npc3Qgd2l0aCBBZ2VudFggZGV2ZWxvcG1lbnQKCQkoVGhlc2UgbWF5IG5vdCBiZSBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwgYnV0IHRoZXkgZ2V0IHRoaW5ncyB3b3JraW5nIGFnYWluISkKCQoyMDAwLTA1LTA0IDE2OjIxICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWlub3IgdW5pbXBvcnRhbnQgLS13aXRob3V0LW9wZW5zc2wgZml4LgoJCjIwMDAtMDUtMDQgMTY6MTkgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBhbGxvdyAtLXdpdGhvdXQtb3BlbnNzbCB0byB3b3JrLgoJCjIwMDAtMDUtMDQgMTY6MTUgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBhZGQgdGhlIERJU01BTi1TQ1JJUFQtTUlCLnR4dAoJCjIwMDAtMDUtMDQgMTY6MDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CgkgIC0gaW5zdGFsbCBVQ0QtRElTS0lPLU1JQi50eHQuCgkKMjAwMC0wNS0wNCAxNToyMSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0sIG1hbmFnZXIucG0pOiBtYWtlIHB1cmR5IGdyYXBocyB3aXRoIGhpc3RvcnkgdGFibGVzLgoJCjIwMDAtMDUtMDQgMDg6MjYgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2NsaWVudC5bY2hdKTogTmV3IHJvdXRpbmUgJ3NubXBfY2xvbmVfdmFyYmluZCgpJwoJCQkoRnJvbSBhIHN1Z2dlc3Rpb24gYnkgUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwODoyNCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBWYXJpb3VzIG1pbm9yIGZpeGVzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDAxOjI5ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuW2NoXSk6IEhhbmRsZSBpbmRleC9zdGF0dXMgaW5mb3JtYXRpb24gc2VwYXJhdGVseSBmcm9tIFBEVS4KCQlBbHNvIG1lYW5zIHRoYXQgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgYWNjZXNzIHRvIHZhcmlhYmxlIGluZGV4ZXMKCQkJKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBmcm9tIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDE6MDAgIGRhdmVzCgoJLSAodWNkLXNubXAvcHJvYy5jKTogSW5pdGlhbGl6ZSBuZXdseSBtYWxsb2NlZCBzdHJ1Y3R1cmUKCQkoVGhhbmtzIHRvIEplZmYgV2lsc29uIC0gc2VlIEJVRyAjMjMxKQoJCjIwMDAtMDUtMDMgMDk6MDYgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gQ2xvbmUgUERVIHdpdGhpbiBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KCSAgICBOZXcgcm91dGluZSAnZnJlZV9hZ2VudF9zbm1wX3Nlc3Npb24nCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTAzIDA4OjE3ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IFdoZW4gcmV0dXJuaW5nIGFuIGVycm9yIHJlc3BvbnNlLAoJCXVzZSBhIGNsZWFuIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgUERVLgoJCjIwMDAtMDUtMDMgMDg6MTQgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5bY2hdKTogUm91dGluZSB0byBoYW5kbGUgdmFyaWFibGVzIGluZGl2aWR1YWxseQoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wMyAwNDozNyAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBDaGVjayBhY2Nlc3NpYmlsaXR5IG9mIGV4YWN0IHJlcXVlc3RzIGJlZm9yZSBwcm9jZXNzaW5nCgkJKGFuZCByZW1vdmUgcmVkdW5kYW50ICdnZW5lcmljJyBTRVQgaGFuZGxpbmcpCgkKMjAwMC0wNS0wMiAwOTo1NiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogbG90cyBvZiBzbWFsbCBjaGFuZ2VzLgoJCjIwMDAtMDUtMDEgMTE6MzQgIG5iYQoKCS0gbWliLmM6IGZpeCBwcmludGluZyBvZiBCSVRTIHZhcmlhYmxlcwoJCjIwMDAtMDUtMDEgMDY6NTUgIG1hcnoKCgkgYXBwbGllZCBwYXRjaCBmcm9tIFN0ZXZlIFBoZXJhbiBTbm9kZ3Jhc3MgdG8gZml4IGluY29tcGF0aWJpbGl0eSB3aXRoIHBlcmw1LjYgcmVmIHN0cmluZ2lmaWNhdGlvbgoJCjIwMDAtMDQtMjkgMDc6NDYgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnRfcmVnaXN0cnkuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSB1c2Ugc2lnYWN0aW9uIHdoZW4gYXZhaWxhYmxlLgoJCjIwMDAtMDQtMjggMTY6MjIgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogZml4IC1tLy1NIHRoZSB3cm9uZyB3YXkuCgkKMjAwMC0wNC0yOCAxNjoxNSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOgoJIC0gZG8gaGlzdG9yeSBzYXZpbmcgYmV0dGVyIChkaWZmZXJlbnQgdGFibGUpLgoJIC0gLW0vLU0gbWliIGxvYWRpbmcgb3B0aW9ucyAod2hpY2ggZG9uJ3QgYXBwZWFyIHRvIGJlIHdvcmtpbmcgcmlnaHQgeWV0KS4KCQoyMDAwLTA0LTI4IDA3OjM2ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gZml4IHNpZ25hbCBoYW5kbGluZy4KCQoyMDAwLTA0LTI3IDE0OjU4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wZGYuYyk6IGltcGxlbWVudCBhIHJlbW90ZSBkZiBjb21tYW5kIHZpYSBzbm1wCgkgIC0gKG5lZWRzIHRoZSBob3N0IHJlc291cmNlcyBtaWIgd29ya2luZyBvbiB0aGUgcmVtb3RlIHN5c3RlbSkuCgkKMjAwMC0wNC0yNyAxMDo1NyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJwbSBpcyBub3cKCSAgcmVxdWlyaW5nIHlldCBhbm90aGVyIGxpYnJhcnk6IGxpYnBvcHQuCgkKMjAwMC0wNC0yNiAxNToyMCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3ApOiBydW4gbGlidG9vbCAtLWZpbmlzaCB3aXRob3V0IC1uIChnbyBhaGVhZCBhbmQgZG8gdGhlIGNtZHMpCgkKMjAwMC0wNC0yNiAxNToxOSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6CgkgIC0gbW9yZSBsaWJ0b29sIGZpeGVzICguc28gdmVyc2lvbmluZywgcHJvcGVybHkgaW5zdGFsbC4uLikKCQoyMDAwLTA0LTI2IDE0OjE4ICBoYXJkYWtlcgoKCS0gKCovLmN2c2lnbm9yZSwgKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCgkgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CgkgIC0gdXNlIGxpYnRvb2wgZm9yIGJ1aWxkaW5nLgoJICAgIC0gQ2VydGFpbmx5LCBJIG11c3QgaGF2ZSBicm9rZSBzb21ldGhpbmcgaW4gdGhlIHByb2Nlc3MuIChtYWtlIGRlcGVuZCwgZWcpCgkKMjAwMC0wNC0yNiAxNDoxNSAgaGFyZGFrZXIKCgktICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAoJICBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gpOgoJICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KCSAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQoJCjIwMDAtMDQtMjYgMDg6MTEgIGhhcmRha2VyCgoJLSAoRkFRKTogbmV3IHNlY29uZGFyeSBzbG9nYW4uCgkKMjAwMC0wNC0yNiAwNzoyMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBBdHRlbXB0IHRvIHBhcnNlIHRoZSBQRFUgd2hlbiBhIHJlcG9ydCBpcwoJICBiZWluZyBzZW50IHNvIHRoYXQgdGhlIHJlcXVlc3RpZCBjYW4gYmUgdXNlZCBpbiB0aGUgb3V0Z29pbmcgcmVwb3J0LgoJICBUaGlzIHNob3VsZCBmaXggYSBwcm9ibGVtIHdoZXJlIFNOTVAgUmVzZWFyY2gncyBFbWFudGUgYWdlbnQgaXMKCSAgZG9pbmcgZW5naW5lSUQgZGlzY292ZXJ5IHByb2JlcyBiYXNlZCBvbiB0aGUgcmVxdWVzdF9pZCAod2hpY2ggaXMgYQoJICBmYWlybHkgcG9vciBjaG9pY2UgYXMgdGhlIG1lc3NhZ2VfaWQgd291bGQgYmUgYSBiZXR0ZXIgb25lIHRvIG1hdGNoCgkgIG9uIGluIGdlbmVyYWwgYW5kIGlzIHRoZSBvbmx5IHBvc3NpYmxlIHRoaW5nIHRvIHVzZSBpbiBjYXNlcyB3aGVyZQoJICB0aGUgcmVwb3J0IGlzIGVuY3J5cHRlZCkuCgkKMjAwMC0wNC0yNSAxMzowOCAgaGFyZGFrZXIKCgktIChGQVEpOiBtZW50aW9uIHRoYXQgdGhlIHBlcmwgbW9kdWxlIGlzIGluY2x1ZGVkIHdpdGggdGhlIHNvdXJjZS4KCQoyMDAwLTA0LTI1IDA4OjI0ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiBtaXNjIC1EZHVtcCBmaXhlcy4KCQoyMDAwLTA0LTI1IDA4OjAyICBoYXJkYWtlcgoKCS0gKHNubXB0YWJsZS5jKTogY2hlY2sgZm9yIGVuZCBvZiBtaWIgdmlldyBleGNlcHRpb25zICh2MmMsIHYzKS4KCQoyMDAwLTA0LTI0IDExOjI3ICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMpOiAtRCBzdXBwb3J0IGZvciB0aG9zZSAib2xkZXIiIHByb3RvY29scyB0aGF0IHNob3VsZG4ndAoJICBiZSB1c2VkIGFueW1vcmUgKHYxLCB2MmMpLgoJCjIwMDAtMDQtMjQgMTA6MzYgIGhhcmRha2VyCgoJLSAoYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAoJICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKCSAgLSB0aW1lc3RhbXBzIGNhbiBiZSBwcmludGVkIGFzIGEgbnVtZXJpYyBudW1iZXIgb25seSAoLU90KS4KCSAgLSBtb3JlIGNvbmZpZ3VyYWJsZSBwYWNrZXQgZHVtcGluZyBjb2RlIGZvciBib3RoIHNlbmQgYW5kIHJlY2VpdmUuCgkgICAgLSB1c2VzIG5ldyAtRCB0b2tlbnM6IGR1bXBoIChoZWFkZXJzKSwgZHVtcHggKGhleCksIGR1bXB2CgkgICAgICAodmFsdWVzKS4gIGR1bXB4XyBhbmQgZHVtcHZfIChub3RlIHRoZSBfcykgbWFrZSBpdCBlYXQgc3BhY2UKCSAgICAgIChhbmQgbmV3bGluZSkgYmVmb3JlIHRoZSBzZWdtZW50IGluIHF1ZXN0aW9uLiAgVHJ5IC1EZHVtcCB0aGVuCgkgICAgICAtRGR1bXBoLGR1bXB2XyB0byBzZWUgZXhhbXBsZXMuCgkgICAgLSB0b2RvOgoJICAgICAgLSBiZXR0ZXIgaG9yaXpvbnRhbGx5IGZvcm1hdGVkIGluZm9ybWF0aW9uIChwcm9iYWJseSB1c2luZyAiJU5VTXMiKS4KCSAgICAgIC0gVVNNIGlzIGNhbGxlZCBhZnRlciBwZHUgYnVpbGRpbmcgKG1ha2VzIHNlbnNlIGJ1dCBpcyBiYWNrd2FyZHMKCSAgICAgICAgdmlzdWFsbHkgaW4gdGhlIGR1bXBlZCBwYWNrZXQpLgoJICAgICAgLSBvcHRpb24gdG8gc3RyaXAgZGF0YXR5cGUgdG9rZW4gKGllIEludGVnZXI6KS4KCQoyMDAwLTA0LTI0IDA5OjM3ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTAgKQoJCjIwMDAtMDQtMjQgMDk6MTMgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFWFQuNC4yLnByZTAgKQoJCjIwMDAtMDQtMjEgMTQ6MTMgIGhhcmRha2VyCgoJLSAoc25tcHdhbGsuYyk6IGZpeCBHRVQgY2FsbCBmb3IgYW4gc25tcHdhbGsuICh3YXMgdXNpbmcgYSBHRVRORVhUIFBEVSwgYWNrKS4KCQoyMDAwLTA0LTIxIDEwOjQxICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogbW9yZSB1X2xvbmcgLT4gc2l6ZV90IGZvciBlbmdpbmVJRCBsZW4uCgkKMjAwMC0wNC0yMSAwODoxOCAgaGFyZGFrZXIKCgktIChtaWIuYyk6IGZpeCBmcHJpbnRfZGVzY3JpcHRpb24gdG8gY2hlY2sgZm9yIG51bGwgc3VidHJlZXMuCgkKMjAwMC0wNC0yMSAwODoxNyAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiB1c2Ugc2l6ZV90IGZvciBlbmdpbmVpZCBsZW5ndGhzLgoJCjIwMDAtMDQtMTkgMTE6MDIgIG1hcnoKCgljaGFuZ2VkIG1vZGVfdCB0eXBlZGVmIHRvIGFncmVlIHdpdGggd2hhdCBBY3RpdmVTdGF0ZSBwZXJsIHVzZXMgKGFueW9uZSBoYXZlIGEgcHJvYmxlbSB3aXRoIHRoaXM/KQoJCjIwMDAtMDQtMTkgMTA6NTkgIG1hcnoKCglhZGRlZCBNYXJjIExlaG1hbiBwYXRjaCB0byBlbnN1cmUgYWxsb2MvZGVhbGxvYyB1c2Ugc2FtZSBtZWNoYW5pc20gKHBlcmwgdnMuIHN5c3RlbSBkZWZhdWx0KQoJCjIwMDAtMDQtMTkgMDg6MjYgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBhbHdheXMgYmxvY2sgaWYgY2FsbGVyIHJlcXVlc3RlZCBpdC4KCQoyMDAwLTA0LTE5IDA0OjM0ICBtc2xpZmNhawoKCW1vdmUgc3RhdGljIGRlY2wgdG8gLmM7bWlub3IgY2FzdGluZyBhYm91dCB0byBzdXBwb3J0IGFDQwoJCjIwMDAtMDQtMTggMTE6MTEgIG1zbGlmY2FrCgoJU3luY2ggZGV2ZWwgYnJhbmNoIHdpdGggcGF0Y2hlcyBicmFuY2guCgkKMjAwMC0wNC0xOCAxMTowNyAgbXNsaWZjYWsKCglEZWZpbmUgb3B0YXJnIGZvciBhcHBzIHVzZTsgRGVmaW5lIHZhY21faXNfY29uZmlndXJlZCBmb3IgYWdlbnQgdXNlLgoJCjIwMDAtMDQtMTggMDc6NTcgIGhhcmRha2VyCgoJLSAodm1zdGF0LmMsIHZtc3RhdC5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaXp1a2kgSG9uZGE6CgkgIC0gaW1wbGVtZW50IHJhdyBjcHUgdXNhZ2UgbnVtYmVycy4KCQoyMDAwLTA0LTE4IDAzOjE4ICBkYXZlcwoKCS0gKG1hbi9zbm1wdGFibGUuMSBhcHBzL3NubXB0YWJsZS5jKToKCSAgLSBDb21tYW5kLXNwZWNpZmljICctQycgb3B0aW9ucyBmb3Igc25tcHRhYmxlCgkKMjAwMC0wNC0xOCAwMjowMSAgZGF2ZXMKCgktIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogSGFuZGxlIHByZXZpb3VzIGZvcm0gb2YgLVogb3B0aW9uIGFzIHdlbGwKCQoyMDAwLTA0LTE3IDE1OjM2ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogZml4IC1aIGlmIGFyZ3MgYXJlIHdyb25nLgoJCjIwMDAtMDQtMTcgMTU6MzIgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IGZpeCAtWiB0byB1c2UgYSAnLCcuCgkKMjAwMC0wNC0xNyAxNTowNiAgaGFyZGFrZXIKCgktIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBQYXRjaCBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgoJICAtIHVwZGF0ZSBvbiB0aGUgc2VuZG1haWwgbW9kdWxlLgoJCjIwMDAtMDQtMTcgMTU6MDAgIGhhcmRha2VyCgoJLSAodm1zdGF0LmMpOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBmaXggc3NDcHVTeXN0ZW0sIHNzQ3B1VXNlciwgc3NDcHVJZGxlLgoJCjIwMDAtMDQtMTcgMTQ6MTggIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBNYWtlZmlsZS5pbik6IHByb3Blcmx5IHVzZSBMTl9TIGZvciBsaW5raW5nIHNubXBpbmZvcm0uCgkKMjAwMC0wNC0xNyAxMzo0NSAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6IGVuZ2luZUlEIGNoYW5nZXMgZm9yIGJldHRlciBhQ0Mgc3VwcG9ydC4KCQoyMDAwLTA0LTE3IDEzOjQ0ICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgc25tcGluZm9ybS4KCQoyMDAwLTA0LTE3IDA5OjU4ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGZpeCByb3cgY3JlYXRpb24uCgkKMjAwMC0wNC0xNyAwNzoyNSAgZGF2ZXMKCgktIChhdXRvX25saXN0LmMgc25tcGQuYyBhZ2VudHgvbWFzdGVyLmMpOiBEb24ndCBleGl0IG9uIGZhaWx1cmUgd2l0aCAnLXInCgkKMjAwMC0wNC0xNCAxNTowNyAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHN0YXR1cy5jLCBzbm1wY21kLjEsIHNubXBnZXQuMSwgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CgkgIC0gbW92ZSAtSWYgdG8gLUNmIGFuZCBpbnZlcnQgYmVoYXZpb3VyLgoJCjIwMDAtMDQtMTQgMTU6MDYgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgZGVidWdnaW5nIG91dHB1dCAob3BwcykuCgkKMjAwMC0wNC0xNCAwOTowMyAgaGFyZGFrZXIKCgktICh2ZXJzaW9pbmZvLmMpOiBhbHJpZ2h0LiAgV2hvIG1hZGUgdmVyc2lvbkNsZWFyQ2FjaGUgUk9OTFk/CgkKMjAwMC0wNC0xMyAwNTo0OSAgbmJhCgoJLSBzbm1wdHJhbnNsYXRlLjE6IGRlY3VtZW50IHRoZSAtdyB3aWR0aCBvcHRpb24KCQoyMDAwLTA0LTEyIDEyOjA1ICBtc2xpZmNhawoKCWhpZGUgdXNlcidzIGhvc3RuYW1lOyBwcm9tcHQgYmVmb3JlIHNlbmRpbmcgZS1tYWlsOyBwcm9tcHQgdG8gc2F2ZSBhcyBmaWxlLgoJCjIwMDAtMDQtMTIgMTE6MjIgIG1zbGlmY2FrCgoJZml4ICVmKCVzKQoJCjIwMDAtMDQtMTIgMDk6MjkgIGhhcmRha2VyCgoJLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUlmLgoJCjIwMDAtMDQtMTIgMDk6MTcgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwdXQgKysgYmFjayBpbiB0aGF0IGFjY2lkZW50aWNhbGx5IGdvdCBjaGVja2VkIGluLgoJCjIwMDAtMDQtMTIgMDk6MTYgIGhhcmRha2VyCgoJLSAoc25tcHNldC5jKTogcHV0IHNwYWNlIGJhY2sgaW4gdXNhZ2UgbGluZS4KCQoyMDAwLTA0LTEyIDA5OjEyICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAoJICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CgkgIC0gQWRkIGEgbmV3IG9wdGlvbiAtSWYgdG8gc3BlY2lmeSBmaXhpbmcgb2YgUERVcy4KCSAgICAtIEFueW9uZSBrbm93IGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGlzIG9wdGlvbj8KCSAgLSBBcHBsaWNhdGlvbnMgZG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IGFueW1vcmUsIGFuZCB5b3UgY2FuJ3QgaW4gc25tcHNldC4KCQoyMDAwLTA0LTEyIDA3OjM4ICBoYXJkYWtlcgoKCS0gKHZhY21fdmFycy5jLCB2YWNtLmMsIHZhY20uaCk6IGZpeCB0byBhbGxvdyBubyB2MS92MmMgcmVxdWVzdHMgd2hlbgoJICBjb25maWd1cmVkIGZvciBqdXN0IHYzLgoJCjIwMDAtMDQtMTIgMDY6NTAgIG1zbGlmY2FrCgoJZml4IE1TVkMgYnVpbGQgZm9yIGVuY29kZV9rZXljaGFuZ2UsIGFuZCBhZGQgbW9yZSBzeW1ib2xzIGZvciByZWxlYXNlIGJ1aWxkcwoJCjIwMDAtMDQtMTIgMDU6MzIgIG5iYQoKCS0gcGFyc2UuYzogY29ycmVjdCBwYXJzaW5nIG9mIHN1Yi10eXBlcyB0ZXh0dWFsIGNvbnZlbnRpb25zLiBBbGxvdyBwYXJzaW5nCgkJb2YgTUFDUk8gaW52b2NhdGlvbnMgZm9yIHN0YW5kYXJkIHN5bWJvbHMKCQoyMDAwLTA0LTEyIDA1OjMxICBuYmEKCgktIHBhcnNlLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiB3aXRoIGZvciAtVHAKCQoyMDAwLTA0LTEyIDA1OjMwICBuYmEKCgktIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dDogYWxpZ24gd2l0aCBwdWJsaXNoZWQKCQlSRkMgMjc5MAoJCjIwMDAtMDQtMTEgMTU6MzMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtYWtlIGNvbmZpZ19hZGRfbWliKCkgYWN0dWFsbHkgbG9vayBmb3IKCSAgdGhlIG1pYiBpbiAkc3JjZGlyL21pYnMvYmxhaCBhbmQgaW5zdGFsbCBpdCBpZiBmb3VuZC4KCQoyMDAwLTA0LTExIDE1OjIxICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IG1ha2UgbWFjYWRkciBlbmdpbmVpZCBzZXR1cCBub3QgbGludXgKCSAgc3BlY2lmaWMsIGJ1dCAjZGVmaW5lcyBhcmUgY2hlY2tlZCBpbnN0ZWFkLgoJCjIwMDAtMDQtMTEgMTU6MjAgIGhhcmRha2VyCgoJLSAoc25tcF9sb2dnaW5nLmgpOiByZW1vdmUgb2xkIGNhbGxiYWNrIHR5cGVkZWYgbm8gbG9uZ2VyIG5lZWRlZC4KCQoyMDAwLTA0LTExIDE0OjM4ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jLCBzbm1wdjMuaCk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgoJICAtIGVuYWJsZSBlbmdpbmVJRCB0byBiZSBzZXQgZnJvbSBNQUNBZGRyLgoJCjIwMDAtMDQtMTEgMDk6NTEgIGhhcmRha2VyCgoJLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogTmV3IG1vZHVsZSBmcm9tIENocmlzdG9waCBNYW1taXR6c2NoOgoJICAtIGltcGxlbWVudHMgdGhlIE1UQS1NSUIgZm9yIG1vbml0b3Jpbmcgc2VuZG1haWwuCgkKMjAwMC0wNC0xMSAwOTo1MCAgaGFyZGFrZXIKCgktIChNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0KTogbmV3IG1pYnMgZm9yIG5ldyBtb2R1bGVzLgoJCjIwMDAtMDQtMTEgMDM6MjUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogU2F2ZS9yZXN0b3JlIG9yaWdpbmFsIHN0YXRQIHZhbHVlIGZvciBTRVQgaGFuZGxpbmcuCgkKMjAwMC0wNC0xMSAwMjozNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXBvcnQgZmFpbHVyZXMgZnJvbSBBQ1RJT04gcGhhc2Ugb2YgU0VUIGNvcnJlY3RseS4KCQoyMDAwLTA0LTExIDAxOjU3ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRHluYW1pY2FsbHkgcmVzaXplIHN1YmFnZW50IHJlcXVlc3RzCgkJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA0LTEwIDA1OjA4ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBtdWx0aS1zdWJhZ2VudCByZXF1ZXN0cwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNC0wNyAxMjoyNSAgaGFyZGFrZXIKCgktIChzbm1wdHJhcC5jLCBzbm1wdXNtLmMpOgoJICAtIGZpeCBzbm1wdjMgdHJhcHMgdG8gYmUgYXV0aG9yaXRhdGl2ZSBmcm9tIHRoZSBjbGllbnQgc2lkZSwgbm90IHRoZQoJICAgIHJlY2VpdmVyIHNpZGUuICBzbm1wdjMgaW5mb3JtcyBzdGF5IGFzIGlzLiAgVW5mb3J0dW5hdGVseSwgZm9yCgkgICAgY29tbWFuZCBsaW5lIGFwcHMgdGhpcyBkb2Vzbid0IG1ha2UgYSB3aG9sZSBsb3Qgb2Ygc2Vuc2UgYnV0IGlzCgkgICAgcmlnaHQgaW4gdGVybXMgb2YgaG93IHRoZSBwcm90b2NvbCB3b3JrcyBhbmQgdGhpcyBpcyBoZW5jZQoJICAgIHNvbWV3aGF0IG9mIGEgaGFjay4KCQoyMDAwLTA0LTA3IDA3OjUwICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEhhbmRsZSB2MiBleGNlcHRpb24gdHlwZXMgaW4gdjEgcXVlcmllcwoJCjIwMDAtMDQtMDcgMDc6MTYgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMsIHJlYWRfY29uZmlnLmMsIHNubXB2My5jKToKCSAgLSBhbGxvdyBOVUxMIGhlbHAgbGluZXMgZm9yIGNvbmZpZyBkaXJlY3RpdmVzIGFuZCB1c2UgaXQgdG8gaGlkZQoJICAgIGludGVybmFsIGRpcmVjdGl2ZXMgdXNlZCBmb3IgcGVyc2lzdGVudCBzdG9yYWdlLgoJCjIwMDAtMDQtMDYgMTU6MzEgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CgkgIC0gdHVybiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYWNyb3MgYmFjayBpbnRvIGZ1bmN0aW9ucyBzbwoJICAgIGRlZmF1bHRfc3RvcmUuaCBkZXBlbmRlbmNpZXMgZ28gYXdheSBhZ2Fpbi4KCSAgLSBjcmVhdGUgYSBmbGFnIHRvIG5vdCBwcm9iZSBmb3IgZW5naW5lSURzIGR1cm5pbmcgc2Vzc19vcGVuKCkuCgkKMjAwMC0wNC0wNiAwNzoyMCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBGaXggbWlzaGFuZGxlZCBDb3VudGVyNjQgcGFyc2luZwoJCjIwMDAtMDQtMDYgMDM6MzYgIGRhdmVzCgoJLSAoYWdlbnQvc25tcGQuYyk6IEZpeCB1c2FnZSBtZXNzYWdlIGFsaWdubWVudC4KCQoyMDAwLTA0LTA2IDAzOjMxICBkYXZlcwoKCS0gKG1hbi9zbm1wZC4xLmRlZik6IERvY3VtZW50IHRoZSBBZ2VudFggc29ja2V0IGNvbW1hbmQtbGluZSBvcHRpb24KCQoyMDAwLTA0LTA1IDA4OjQxICBoYXJkYWtlcgoKCS0gKEZBUTJIVE1MKTogaXQncyBiZWVuIHNpdHRpbmcgaW4gbXkgcGVyc29uYWwgc3JjIHRyZWUgZm9yID4gMiB5ZWFycy4KCQoyMDAwLTA0LTA1IDA4OjM4ICBoYXJkYWtlcgoKCS0gKG1pYmluY2wuaCwgdXNtVXNlci5jLCBzbm1wdHJhcGQuYywgbGNkX3RpbWUuYywgc2NhcGkuYywgc25tcF9hcGkuYywKCSAgc25tcHVzbS5jLCBzbm1wdXNtLmgsIHNubXB2My5jKToKCSAgLSBtYWtlIHNubXB0cmFwZCBoYW5kbGUgdjMgdXNlcnMgcHJvcGVybHksIChhbmQgc2h1dGRvd24gcHJvcGVybHkgYXMgd2VsbCkuCgkgIC0gYSBtb3JlIGdlbmVyaWMgdXNlciBzdG9yYWdlIHJvdXRpbmUgYWRkZWQgdG8gc25tcHVzbS5jIGFuZCB1c2VkIGluCgkgICAgdXNtVXNlci5jIHdpdGggYSBzaWRlIGVmZmVjdCBvZiBuZWVkaW5nIGNhbGxiYWNrLmggYWJvdmUgc25tcHVzbS5oLgoJCjIwMDAtMDQtMDUgMDg6MjcgIGhhcmRha2VyCgoJLSAocnNubXApOiAtPiAvdXNyL2Jpbi9wZXJsCgkKMjAwMC0wNC0wNSAwODoyNCAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogbWlzYyBtaW5vciBhZGRpdGlvbnMgdG8gLwoJCjIwMDAtMDQtMDQgMTE6MDMgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIHVuaW1wbGVtZW50ZWQgb2JqZWN0cyByZXR1cm4gJ25vU3VjaE9iamVjdCcKCQoyMDAwLTA0LTAzIDE0OjU3ICBtc2xpZmNhawoKCUluaXRpYWxpemUgc3RhdFAuCgkKMjAwMC0wNC0wMyAwOToxMiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgYSB2MSBTRVQgcmV0dXJucyBhIHYxIGVycm9yIHN0YXR1cy4KCQoyMDAwLTA0LTAzIDA4OjMyICBoYXJkYWtlcgoKCS0gKENoYW5nZUxvZyk6IFllYXIgd2FzICIxMDAiIGZvciAyMDAwIChub3RpY2VkIGJ5IEpheSBSaWRkZWxsKToKCQoyMDAwLTA0LTAzIDA3OjUzICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSBTRVRzIGZhaWwgaWYgb25lIHZhcmJpbmQgZG9lcy4KCQoyMDAwLTAzLTMxIDA3OjI1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IHRvIHJlcG9ydCAnbm9TdWNoT2JqZWN0JyBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMKCQoyMDAwLTAzLTMxIDA3OjEzICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERvbid0IHJlcGVhdCB0aGUgZmlyc3QgZm91ciBieXRlcyBpbiBhIFBEVSBkdW1wCgkKMjAwMC0wMy0zMSAwNzowNCAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfbG9nZ2luZy5jKTogSGFuZGxlIGxvZ2dpbmcgZW1wdHkgc3RyaW5ncyAoZS5nLiBhIG51bGwgaW5kZW50KQoJCjIwMDAtMDMtMzAgMDA6MTUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogSW5pdGlhbGlzZSB0aW1lb3V0IHN0cnVjdHVyZSBwcm9wZXJseQoJCShUaGFua3MgdG8gYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDMtMjcgMTA6MzIgIG1zbGlmY2FrCgoJcmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUgZnJvbSBoclNXUnVuTmFtZSB2YWx1ZXMuCgkKMjAwMC0wMy0yNCAwOTowOSAgbXNsaWZjYWsKCgl0byBzeW5jIHdpdGggcGF0Y2hlcyBicmFuY2guCgkKMjAwMC0wMy0yNCAwNTowNyAgbmJhCgoJLSBzbm1wdHJhcGQuYzogY29ycmVjdGx5IGZyZWUgdGhlIHJlcG9uc2UgaWYgc2VuZGluZyBpdCBmYWlscwoJCjIwMDAtMDMtMjQgMDQ6MjIgIG1zbGlmY2FrCgoJeHhfc3luY2hfcmVzcG9uc2U6IGF2b2lkIGZyZWVpbmcgUERVIHR3aWNlLgoJCjIwMDAtMDMtMjMgMjM6MjkgIG5iYQoKCS0gc25tcGNtZC4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcC5jLCBNYWtlZmlsZS5pbjogSW5zdGFsbCBhbmQgZG9jdW1lbnQKCQlzbm1waW5mb3JtLgoJCjIwMDAtMDMtMjMgMDk6NTggIG1zbGlmY2FrCgoJRW5xdWV1ZSBvbmx5IGNvbXBsZXRlIHJlcXVlc3RfbGlzdCBlbnRyeTsgUmVkdWNlIHNjb3Bpbmcgb2YgY2FsbGJhY2sgdmFycy4KCQoyMDAwLTAzLTIzIDAzOjAyICBuYmEKCglmaWxlIHNubXBpbmZvcm0uMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTAzLTIyIDA4OjEzICBtc2xpZmNhawoKCXByaW50ZiA/CgkKMjAwMC0wMy0yMSAxMToxMiAgbXNsaWZjYWsKCgltb2RpZnkgRi4gU3RyYXVzcycgcGF0Y2ggcGVyIE4uIEJhZ2dlc2VuJ3Mgc3VnZ2VzdGlvbjogcmVtb3ZlIGV4cG9ydC1keW5hbWljLgoJCjIwMDAtMDMtMjEgMDk6MTQgIG1zbGlmY2FrCgoJbW9yZSBzbW9vdGggc2FpbGluZyB3aXRoIFdpbjMyIC5ETEwgLiBETExFWFBPUlQsIGFueW9uZSA/CgkKMjAwMC0wMy0yMSAwOTowNyAgbXNsaWZjYWsKCgl3aW4zMiBidWlsZCBjaGVjazogbm8gc2lnYWN0aW9uLCBTSUdDTEQgZGVmaW5lZC4KCQoyMDAwLTAzLTIxIDA4OjQ3ICBkYXZlcwoKCS0gKGRzX2FnZW50Lmggc25tcGQuYyBtaWJncm91cC9hZ2VudHgve21hc3RlcixzdWJhZ2VudH0uYyk6CgkgIC0gIENvbW1hbmQtbGluZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgQWdlbnRYIHBvcnQKCSAgICAgKGJhc2VkIG9uIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcykKCQoyMDAwLTAzLTIxIDA4OjM4ICBkYXZlcwoKCS0gKHNubXBfYXBpLmMpOiBTdXBwb3J0ICdob3N0OnBvcnQnIHJlcHJlc2VudGF0aW9uIG9mIHBlZXJuYW1lcwoJCjIwMDAtMDMtMjEgMDQ6MDUgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogTWlzc2luZyBuZXctbGluZSBvbiBkZWJ1ZyBvdXRwdXQKCQoyMDAwLTAzLTIxIDAyOjUyICBkYXZlcwoKCS0gKG1pYklJL3t0Y3AsdWRwLGlwLGljbXB9KikgQ29udGludWluZyBtaWJJSSBjb2RlIGNsZWFudXAKCQoyMDAwLTAzLTIwIDExOjE0ICBtc2xpZmNhawoKCUNvbW1lbnQgLUMgLS0gZG8gbm90IHVzZSB0aGlzIGZsYWcuCgkKMjAwMC0wMy0xNyAxNTozMiAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jKTogc2l6ZW9mKHgpKihsZW4rMSkgbm90IHNpemVvZih4KSpsZW4rMQoJCjIwMDAtMDMtMTYgMDA6MTAgIG5iYQoKCS0gY29uZmlndXJlLCBocl9wcmludC5jOiBkZXRlY3Qgc3lzdGVtIHByaW50ZXJzIChTeXNWL2xwc3RhdCwgKkJTRC9jZ2V0bmV4dCwKCQlMaW51eC9wcmludGNhcCkKCQoyMDAwLTAzLTE1IDE4OjMwICBtc2xpZmNhawoKCVNlY29uZCBwYXJ0IDogYWxsIG1lbWJlcnMgb2Ygc3RydWN0IHNubXBfaW5kZXggYXJlIHBvaW50ZXJzLgoJCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgoJRml4IG1lbW9yeSBsZWFrIHdpdGggdW5yZWdpc3Rlcl9pbmRleC4KCQoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKCUZpeCBtZW1vcnkgbGVhayB3aGVuIGNsZWFuaW5nIHVwIHRyYXAgdmFyaWFibGVzLgoJCjIwMDAtMDMtMTUgMDg6NDggIGRhdmVzCgoJLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogSW5pdGlhbGlzZSB2YXJiaW5kIGRhdGEgaG9vayBlbHNld2hlcmUgYXMgd2VsbC4KCQoyMDAwLTAzLTE1IDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGluZmluaXRlIGxvb3AgcHJvYmxlbSB3aGVuIHdhbGtpbmcgc3ViYWdlbnQuCgkKMjAwMC0wMy0xNSAwNjowOSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBBdm9pZCBjYWxsaW5nIHJlYWQgcm91dGluZSBmb3IgZWFjaCBTRVQgaGFuZGxpbmcgcGFzcy4KCQlOLkI6ICBUaGlzIGhhc24ndCBiZWVuIHRlc3RlZCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgeWV0CgkKMjAwMC0wMy0xNSAwNjowNyAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBQcm92aWRlIGhvb2sgZm9yIGludGVybmFsIHZhcmJpbmQtcmVsYXRlZCBkYXRhCgkKMjAwMC0wMy0xNSAwNToyMiAgZGF2ZXMKCgktIChhZ2VudC92YXJfc3RydWN0LmgpOiBVc2UgYSBzaW5nbGUgbWFnaWMgbnVtYmVyIGZvciBNSUIgcmVnaXN0cnkgbmFtZSBsZW5ndGhzLgoJCjIwMDAtMDMtMTUgMDE6NTEgIGRhdmVzCgoJLSAoc25tcGxpYi9zeXN0ZW0uaCk6IERvbid0IGRlY2xhcmUgZ2V0dGltZW9mZGF5KCkgaWYgdGhlIHN5c3RlbSBwcm92aWRlcyBpdC4KCQkoRml4IHByb3ZpZGVkIGJ5IFJvbiBNZXZpc3NlbikKCQoyMDAwLTAzLTE0IDA3OjU3ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBzdGF0dXMgd2hlbiBjaGVja2luZyBhY2Nlc3MuCgkKMjAwMC0wMy0xNCAwNzo1MiAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBSZXR1cm4gYSByZXNwb25zZSwgZXZlbiBpZiB0aGUgcmVxdWVzdCBmYWlsZWQuCgkKMjAwMC0wMy0xMyAxNTozMiAgbmJhCgoJLSBpcGZ3YWNjLmg6IGZpeCB0aGUgTUlCIG5hbWUKCQoyMDAwLTAzLTEwIDEyOjQ4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSk6IGF1dG9jb25mIHJ1bgoJCjIwMDAtMDMtMTAgMTE6MDkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuZGxtb2QpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gZGxtb2QgYnVpbGQgTWFrZWZpbGUgZXhhbXBsZS4gIE5lZWRzIGluY29ycGVyYXRpb24gd2l0aCBtYWluIGNvbmZpZ3VyZS4KCQoyMDAwLTAzLTEwIDExOjAyICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBiZXR0ZXIgc2lnbmFsIGNoZWNrIGZyb20gTWljaGFlbCBTbGlmY2FrCgkKMjAwMC0wMy0xMCAxMDo1OSAgaGFyZGFrZXIKCgktIChVQ0QtRExNT0QtTUlCLnR4dCk6IHR5cG8gZm91bmQgYnkgTWljaGFlbCBTbGlmY2FrLgoJCjIwMDAtMDMtMTAgMTA6NTQgIGhhcmRha2VyCgoJLSAoZGxtb2QuYywgZGxtb2QuaCwgc25tcGQuY29uZi41LmRlZiwgVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tCgkgIEZyYW5rIFN0cmF1c3M6CgkgIC0gUmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGxtb2QgbWliIG1vZHVsZToKCSAgICBvIG1pYmdyb3VwL21pc2MvZGxtb2QgKyBkbG1vZHMvZGxtb2RfbWliIC0+IG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kCgkgICAgbyBmaXhlZCByZWdpc3RyYXRpb24gKHVjZGF2aXMudWNkRXhwZXJpbWVudGFsLjE0IGluc3RlYWQgb2YgdWNkYXZpcy4xNCkKCSAgICBvIGFkZGVkIGNvbmZpZ3VyZSBzdHVmZiBmb3IgSEFWRV9TTlBSSU5URiwgd2hpY2ggd2FzIHVzZWQgYnkgZGxtb2QuYwoJICAgIG8gcmVtb3ZlZCBgX2R5bmFtaWNfJyBwcmVmaXhlcyBmcm9tIGluaXQvZGVpbml0IGZ1bmN0aW9ucwoJICAgIG8gbWFkZSBkbG1vZEluZGV4IG5vdC1hY2Nlc3NpYmxlIChvbmx5IGltcGxlbWVudGF0aW9uLCBub3QgZGVmaW5pdGlvbikKCSAgICBvIHJlbW92ZWQgdGhlIGFzbl9wYXJzZV9YWFggc3R1ZmYKCSAgICBvIG1hZGUgZW50cmllcyB3aXRoIHN0YXRlIGBlcnJvcicgYWJsZSB0byBhY2NlcHQgc3RhdGUgYGxvYWQnCgkgICAgbyBtYWRlIHRoZSB3b21iYXQgZXhhbXBsZSB1c2FibGUgYXMgc3RhdGljIGFuZCBkeW5hbWljIG1vZHVsZQoJICAgIG8gYWRkZWQgc2ltcGxlIGNvbmZpZ19wYXJzZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSB3b21iYXQgZXhhbXBsZQoJCjIwMDAtMDMtMTAgMTA6NTIgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBzaWduYWwgcmVnaXN0cnkgc3lzdGVtIGltcGxlbWVudGVkIChuZWVkcyB0byBiZSByZWRvbmUgYWxsb3dpbmcKCSAgICBtdWx0aXBsZSBjYWxsYmFja3MgYW5kIGhhbmRsZXJzIGZvciBhbGwgc2lnbmFscykuCgkgIC0gYXJiaXRyYXJ5IGZpbGUgZGVzY3JpcHRvci9zb2NrZXQgcmVnaXN0cmF0aW9uLgoJICAgIC0gdGhpcyBpcyBub3QgdGhlIHdheSBpdCBzaG91bGQgYmUgZG9uZSAodXNlIHNlc3Npb25zIGluc3RlYWQpLgoJCjIwMDAtMDMtMTAgMTA6NDQgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKCSAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKCSAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGNsZWFuIHVwIHNoYXJlZCBsaWJyYXJ5IHVzYWdlLgoJCjIwMDAtMDMtMTAgMTA6MTYgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJlLWFycmFuZ2VkIHNvbWUgc3R1ZmYuCgkKMjAwMC0wMy0wNyAxMTo1OCAgbXNsaWZjYWsKCgltb3JlIHRvdWNodXBzIHRvIGFsbG93IFVuaXhXYXJlIGJ1aWxkIHRvIGNvbXBsZXRlLgoJCjIwMDAtMDMtMDcgMTE6MjEgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oKTogbWFrZSBNQVhfU1VCSURTIGxhcmdlciBhbmQgYSBtdWx0aXBsZSBvZiA4LgoJCjIwMDAtMDMtMDcgMTA6MTMgIG1zbGlmY2FrCgoJSW50cm9kdWNlIC0tZW5hYmxlLW1pbmktYWdlbnQgdG8gY29uZmlndXJlIGFnZW50IChzbm1wdjMsIG5vIG1pYklJIGludGVyZmFjZXMpLgoJCjIwMDAtMDMtMDcgMDk6MDMgIG1zbGlmY2FrCgoJYXNzdW1lICJzbm1wYXBwIiBpZiBubyBhcmcgcGFzc2VkIHRvIGluaXRfc25tcHYzLgoJCjIwMDAtMDMtMDcgMDg6NTggIG1zbGlmY2FrCgoJcmVtb3ZlIGluaXRfbWliKCkgY2FsbCAtIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgoJCjIwMDAtMDMtMDcgMDg6MzUgIG1zbGlmY2FrCgoJTGV0IHRoZSBhaXg0IHBhdGNoIHdvcmsuCgkKMjAwMC0wMy0wNyAwNzowOCAgbXNsaWZjYWsKCgl0cmltIGZhdCBmcm9tIHJlY2VudCBjaGVjay1pbnMuCgkKMjAwMC0wMy0wNiAyMDowMSAgbXNsaWZjYWsKCgljbGVhbmVkIHVwIFNDTyBVbml4V2FyZSBidWlsZC4KCQoyMDAwLTAzLTA2IDE2OjQwICBtc2xpZmNhawoKCXN0YXJ0IHN1cHBvcnQgZm9yIFNDTyBVbml4V2FyZSA1IGFzIHN2cjUuCgkKMjAwMC0wMy0wNiAxMDo1NiAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSBkb24ndCBjaGVjayByYW5nZXMgaWYgbm90IHJlcXVlc3RlZC4KCQoyMDAwLTAzLTA2IDEwOjU1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gZml4IGV4aXQoKWluZyBiZWhhdmlvdXIgaW4gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgkKMjAwMC0wMy0wNiAxMDozNiAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIC1uIHByaW50cyBudW1lcmljIElQIGFkZHJzLgoJCjIwMDAtMDMtMDYgMTA6MjUgIGhhcmRha2VyCgoJLSAoY2FsbGJhY2suaCwgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogSWRlYSBmcm9tIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbToKCSAgLSBjYWxsYmFjayBmdW5jdGlvbiAodXNpbmcgY2FsbGJhY2suaCkgYWRkZWQgZm9yIGV4dGVybmFsIGxvZ2dpbmcuCgkKMjAwMC0wMy0wNSAwNToyNSAgbWFyegoKCWZpeCB0byBwcmVzZXJ2ZSB0cmFpbGluZyBtdWx0aSBjb21wb25lbnQgaW5zdGFuY2UgaWQncyBhdCB0aGUgZW5kIG9mCglzeW1ib2xpYyBtaWIgbmFtZXMoZS5nLiwgZm9vLjYuNykgd2hlbiBkb2luZyB0cmFuc2xhdGVPYmouCgkKMjAwMC0wMy0wNCAxMTozNCAgbmJhCgoJLSBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZTogc3VwcG9ydCAtLXdpdGhvdXQtb3BlbnNzbCwgZXZlbiBpZiBPcGVuU1NMCgkJaXMgYXZhaWxhYmxlCgkKMjAwMC0wMy0wNCAxMTozMCAgbmJhCgoJLSBhZ2VudC8odmFyaW91cyk6IGdsb2JhbGl6ZSB0aGUga3ZtX3QgKmtkIHZhcmlhYmxlCgkKMjAwMC0wMy0wNCAxMToyNiAgbmJhCgoJLSBtaWJfbW9kdWxlcy5jLCBocl9zdG9yYWdlLmM6IHByZS1wcm9jZXNzb3IgIyBzaG91bGQgYmUgaW4gY29sdW1uIDEKCQoyMDAwLTAzLTA0IDExOjE3ICBuYmEKCgktIGluZXQuYywgaW5ldDYuYzogc3Vydml2ZSAtdiAyYyBleGNlcHRpb24gcmVwbGllcwoJCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKCS0gc25tcF9hcGkuYzogcmVtb3ZlIGEgc3VwZXJmbHVvdXMgJiBpbiBmcm9udCBvZiBhbiBhcnJheQoJCjIwMDAtMDMtMDQgMTE6MTUgIG5iYQoKCS0gdWNkX3NubXAuaCwge21lbW9yeSx2bXN0YXR9X25ldGJzZDEuW2NoXTogc3VwcG9ydCBmb3IgTmV0QlNECgkKMjAwMC0wMy0wNCAxMToxNCAgbmJhCgoJLSBocl9kaXNrLmM6IGZpeGVzIGZvciBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjEwICBuYmEKCgktIHZlcnNpb25pbmZvLmM6IGRvbid0IHJldHVybiB0aGUgdHJhaWxpbmcgbmV3bGluZQoJCjIwMDAtMDMtMDQgMTE6MDggIG5iYQoKCS0gaHJfc3dydW4uYzogZml4IHByb2Nlc3Mgc2l6ZSBmb3IgRnJlZUJTRCAzIGFuZCBOZXRCU0QKCQoyMDAwLTAzLTA0IDExOjA1ICBuYmEKCgktIGFnZW50X3RyYXAuaDogZml4IGEgd3JvbmcgcHJvdG90eXBlCgkKMjAwMC0wMy0wNCAxMTowNCAgbmJhCgoJLSBzbm1wdGFibGUuYzogZml4IHByb2JsZW1zIHByaW50aW5nIHRhYmxlIG5hbWUgYW5kIGhlYWRlcnMgd2hlbiB1c2luZwoJCS1PUyBmb3JtYXQKCQoyMDAwLTAzLTAyIDExOjUwICBuYmEKCgktIHNubXBfYXBpLmM6IGZpeCBhZGRyZXNzIGxlbmd0aCBpbmZvIGZvciB0Y3AgY29ubmVjdAoJCjIwMDAtMDMtMDIgMTE6NDggIG5iYQoKCS0gbG9hZGF2ZS5jOiBmaXggZm9yIEFJWCA0CgkKMjAwMC0wMy0wMiAwODozMCAgZGF2ZXMKCgktIChtaWIyL2lwLltjaF0gbWliMi9pcEFkZHIuW2NoXSk6IEZpcnN0IHN0YWIgYXQgdGlkeWluZyB1cCBtaWIyIHN1cHBvcnQuCgkKMjAwMC0wMy0wMSAxMzoyMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggZHluYW1pYyB0YWJsZSB0ZXN0aW5nIGZvciBjcmVhdGlvbiBuZWVkZWQuCgkKMjAwMC0wMy0wMSAxMzoyMiAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtLCB1Y2Qtc25tcC5wbSk6IE9wcHMuICBXcm9uZyBuYW1lLiAgdWNkLXNubXAucG0gLT4gbWFuYWdlci5wbS4KCQoyMDAwLTAzLTAxIDEzOjIxICBoYXJkYWtlcgoKCS0gKHVjZC1zbm1wLnBtKTogdHVybmVkIHNxbHRvaHRtbCBpbnRvIGFuIGFwYWNoZSBtb2R1bGUuIDJ4IHNwZWVkIGltcHJvdmVtZW50LgoJCjIwMDAtMDMtMDEgMDg6MzIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAxODAgZm9yIGN5Z3dpbiBidWlsZCB3aXRoIF9SRUVOVFJBTlQ7IHBlciBhc2hpcG1hbkBlcmdncm91cC5jb20KCQoyMDAwLTAyLTI5IDE0OjMwICBtc2xpZmNhawoKCUludm9rZSBzbm1wX3Nlc3Nfc2VuZCBmcm9tIHdpdGhpbiBzbm1wX3JlYWQgdG8gYXZvaWQgbXV0ZXggZGVhZGxvY2tzLgoJCjIwMDAtMDItMjggMTQ6MjUgIG5iYQoKCS0gc25tcGQuaCwgc211eC5jOiBkb24ndCBpbml0aWFsaXplIHNtdXggbWFzdGVyIGluIHN1YiBhZ2VudAoJCjIwMDAtMDItMjggMTQ6MTYgIG5iYQoKCS0gc25tcF92YXJzLmM6IHVzZSBTVUJfQUdFTlQgc3ltYm9sCgkKMjAwMC0wMi0yOCAxNDoxMiAgbmJhCgoJLSBtaWIuYzogc3ByaW50X2J5X3R5cGUgc2hvdWxkIGhhbmRsZSBBU05fQklUX1NUUgoJCjIwMDAtMDItMjggMTQ6MTAgIG5iYQoKCS0gc25tcF9wYXJzZV9hcmdzLmM6IGNvcnJlY3RseSBjYWxsIHRoZSAtSSBvcHRpb25zIGlucHV0IG9wdGlvbnMKCQoyMDAwLTAyLTI4IDEwOjQ3ICBtc2xpZmNhawoKCWZpeCBidWcgIzE3NiAoQUlYIDQgLSB1c2Uga25saXN0IGluIGxpZXUgb2Ygbmxpc3QpCgkKMjAwMC0wMi0yNCAxNzoxNyAgbXNsaWZjYWsKCglhcHBseSBwYXRjaCB0byBmaXggYnVnIG5vLiAxNzcuCgkKMjAwMC0wMi0yNCAxMzozMSAgaGFyZGFrZXIKCgktIChkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBuZXcgc25tcC5jb25mIGtleXdvcmQKCSAgdG8gZm9yY2UgdGhlIHBhcnNlciB0byBpZ25vcmUgdW5rbm93biB0b2tlbnMuCgkKMjAwMC0wMi0yNCAwMzo1OSAgbXNsaWZjYWsKCglkb2N1bWVudCBVTlNJR05FRDMyIGFuZCBDT1VOVEVSMzIgKCd1JyBhbmQgJ2MnKSBpbiBzbm1wc2V0IChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQoJCjIwMDAtMDItMjQgMDM6NTYgIG1zbGlmY2FrCgoJYWRkIHN1cHBvcnQgZm9yIENPVU5URVIzMiB0byBzbm1wX2FkZF92YXI7IGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMgoJKCd1JyBhbmQgJ2MnKSBpbiBzbm1wdHJhcCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKCQoyMDAwLTAyLTIzIDIzOjA2ICBuYmEKCgktIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGZpeCBzZXR0aW5nIG9mIG9jdGV0IHN0cmluZ3MuCgkKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgoJLSBtdF9zdXBwb3J0Lmg6IGEgYmFkIDsgaW4gdGhlIEMrKyBicmFja2V0aW5nCgkKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgoJLSBzeXN0ZW0uYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgaW5kaXJlY3Rpb25zIGluIHN0cmNhc2VjbXAKCQoyMDAwLTAyLTIzIDAyOjA3ICBuYmEKCgktIHZtc3RhdF9zb2xhcmlzLmM6IG1ha2Ugc3VyZSB3ZSBhZ3JlZSB3aXRoIHRoZSBwcm90b3R5cGUgb2YgZ2V0cGFnZXNpemUhCgkKMjAwMC0wMi0yMiAxNTozMSAgbmJhCgoJLSBwYXNzX3BlcnNpc3QuaDogZGVjbGFyZSBpbml0X3Bhc3NfcGVyc2lzdAoJCjIwMDAtMDItMjIgMDk6NTcgIG1zbGlmY2FrCgoJcHJ1bmUgdHdvIG1vcmUgc3ltYm9scyBub3QgdXNlZCBieSBhdXRvX25saXN0IGZvciBTb2xhcmlzLWJ1aWx0IE1JQiBtb2R1bGVzLgoJCjIwMDAtMDItMjEgMTY6MTcgIG1zbGlmY2FrCgoJQXBwbHkgUi4gU3RvcnkncyBwYXRjaCBmb3IgbWtkaXJoaWVyIGFuZCBzdHJuY2FzZWNtcCBvbiB3aW4zMgoJCjIwMDAtMDItMjEgMDc6MzkgIG1zbGlmY2FrCgoJZml4IGJ1ZyAxNzEgKHRoYW5rcyB0byBMYXJyeSBQYXJtZWxlZSkuCgkKMjAwMC0wMi0yMSAwNTo1NiAgbXNsaWZjYWsKCglyZW1vdmUgZnJlZSBhZnRlciBzbm1wX2Nsb3NlIChkb24ndCBmcmVlIHR3aWNlISkKCQoyMDAwLTAyLTIxIDA0OjU4ICBtc2xpZmNhawoKCUFkZGVkIGRlc2NyaXB0aW9uIGluIFNIX05BTUUgZm9yIHNldmVyYWwgbWFuLXBhZ2VzIChjL28gcmFnbmFyaykKCQoyMDAwLTAyLTE4IDEyOjE0ICBtc2xpZmNhawoKCXJlZmVyIHRoZSAuc28gbWFjcm8gdG8gbWFuMzsgYWRqdXN0IE1ha2VmaWxlLmluIHRvIHVzZSB0aGUgcmVuYW1lZCBmaWxlLgoJCjIwMDAtMDItMTcgMDU6MTcgIG1zbGlmY2FrCgoJaW5jbHVkZSBwYXNzX3BlcnNpc3QgaW4gdGhlIHJlcXVpcmVkIGxpc3QuCgkKMjAwMC0wMi0xNyAwMjowMCAgZGF2ZXMKCgktIChjb25maWd1cmUqIHVjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jKToKCSAgLSBQcm92aWRlIG1pc3NpbmcgJ2dldHBhZ2VzaXplJyByb3V0aW5lIGZvciBTb2xhcmlzIDIuNAoJICAgIChUaGFua3MgdG8gUmFnbmFyIEtq4KWG4KSG4KSQcnN0YWQpCgkKMjAwMC0wMi0xNiAyMDoxNyAgbXNsaWZjYWsKCglpbmNsdWRlIG1pYmluY2wuaCBpbiBocl9zeXN0ZW0uYyB0byBmaXggYnVnICMxNTkuCgkKMjAwMC0wMi0xNiAxNjozNSAgbXNsaWZjYWsKCglyZW1vdmUgYXV0b19ubGlzdCBvZiB1bnVzZWQgInN3YXBsaXN0IiBzeW1ib2wuCgkKMjAwMC0wMi0xNiAxNToxNyAgbXNsaWZjYWsKCglwYXRjaCBzdWdnZXN0ZWQgYnkgUmljayBCZWFtYW4gPGJlYW1hbkBtZWRpYW9uZS5uZXQ+CgkKMjAwMC0wMi0xNiAxNDo1OCAgbXNsaWZjYWsKCglyZW1vdmUgdW51c2VkIHZhcnMKCQoyMDAwLTAyLTE2IDE0OjU3ICBtc2xpZmNhawoKCXRlc3QgbGVuZ3RocyBiZWZvcmUgYWxsb2NhdGluZyBtZW1vcnk7IHVzZSBuZXcgVkFDTVNUUklOR0xFTiBjb25zdGFudC4KCQoyMDAwLTAyLTE2IDA4OjE4ICBtc2xpZmNhawoKCWluY2x1ZGUgdGltZS5oIG9uY2UKCQoyMDAwLTAyLTE2IDA4OjAyICBtc2xpZmNhawoKCXJlc3RvcmUgI2lmIEhBVkUuLi5JTl9QQ0JfSAoJCjIwMDAtMDItMTUgMjM6NDcgIG5iYQoKCS0gY29uZmlndXJlLmluLCBpcGNoLltjaF06IGluaXRpYWwgc3RhYnMgYXQgTGludXggaXB2NiBzdXBwb3J0LiBBIGxvdCBpcwoJCWxhY2tpbmcgaW4gdGhlIGtlcm5lbCBzdGF0aXN0aWNzIHRob3VnaC4KCQoyMDAwLTAyLTE1IDIzOjQwICBuYmEKCgktIChtYW55KTogY29uZmlndXJlIGNoZWNrIGZvciBuZXRpbmV0L2lwNi5oCgkKMjAwMC0wMi0xNSAyMzozNCAgbmJhCgoJLSBocl9maWxlc3lzLmM6IE1OVFRZUEUgZGVmaW5lcyBmb3IgRnJlZUJTRC0zIGFuZCBCU0RJLTQsIGFuZCBtb3ZpbmcgdGhlCgkJcmV0dXJuIHZhbHVlIGZvciBFeHQyRlMgdG8gdGhlIG5ld2x5IGRlZmluZWQgT0lELgoJCjIwMDAtMDItMTUgMjM6MjQgIG5iYQoKCS0gZnJlZWJzZDMuaDogc29tZSBrZXJuZWwgc3ltYm9scyBub3QgdG8gYmUgdXNlZCBmb3IgRnJlZUJTRCAzCgkKMjAwMC0wMi0xNSAyMzoyMyAgbmJhCgoJLSBzbm1wdGFibGUuYzogZ2l2ZSBhIHNlbnNpYmxlIG91dHB1dCBmb3IgYW4gZW1wdHkgdGFibGUuCgkKMjAwMC0wMi0xNSAyMzoyMiAgbmJhCgoJLSB2YWNtKjogYnVmZmVyIGxlbmd0aCBjaGVja2luZyEKCQoyMDAwLTAyLTE1IDIzOjIwICBuYmEKCgktIGhyX3N0b3JhZ2UuYzogcmV0dXJuIG1lbW9yeSBzaXplIGluIHBhZ2VzLgoJCjIwMDAtMDItMTUgMjM6MTcgIG5iYQoKCS0gdWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmg6IG1ha2UgaXQgd29yayBmb3IgRnJlZUJTRC0zIHRvbwoJCjIwMDAtMDItMTUgMjM6MTYgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBvbmUgbW9yZSBwbGFjZSB0byBzZW5kIGEgQVVUSEZBSUwgdHJhcAoJCjIwMDAtMDItMTUgMjM6MTUgIG5iYQoKCS0gYWdlbnRfcmVnaXN0cnkuYzogZml4IGEgcmV0dXJuIGZvciBTTk1QdjEvQ291bnRlcjY0IGNhc2UKCQoyMDAwLTAyLTE1IDAyOjEyICBkYXZlcwoKCS0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOiBPbWl0IGRlcHJlY2F0ZWQgb3B0aW9ucyBmcm9tIG9wdGFyZyBoYW5kbGluZy4KCQoyMDAwLTAyLTExIDE1OjQ4ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIvKik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6NDcgIGhhcmRha2VyCgoJLSAobWFrZWRlcGVuZC5pbik6IC91c3IvbG9jYWwvYmluL3BlcmwgLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDItMTEgMTU6MzggIGhhcmRha2VyCgoJLSAocnNubXApOiBwZXJsNSAtPiBwZXJsCgkKMjAwMC0wMi0xMSAxNToxNyAgaGFyZGFrZXIKCgktIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfdHJhcF9hcGkuMwoJCjIwMDAtMDItMTEgMTQ6MjAgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBsYXN0IG1pbnV0ZSBtYWtlZmlsZSB0b3VjaHVwCgkKMjAwMC0wMi0xMSAxNDowMyAgaGFyZGFrZXIKCgktIChORVdTKTogdXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6NDcgIGhhcmRha2VyCgoJLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciA0LjEuMQoJCjIwMDAtMDItMTEgMTM6MjkgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCgkKMjAwMC0wMi0xMSAxMjo1MyAgaGFyZGFrZXIKCgktIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KCQoyMDAwLTAyLTExIDEyOjQ5ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawoJCjIwMDAtMDItMTEgMTI6NDQgIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCQoyMDAwLTAyLTExIDEyOjMwICBoYXJkYWtlcgoKCS0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CgkgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCgkKMjAwMC0wMi0xMSAxMjoyOSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgoJICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgoJICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCQoyMDAwLTAyLTExIDEyOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KCQoyMDAwLTAyLTExIDA2OjU4ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9udCBkZWZpbmUgUFJPQ0ZJWENNRCBhbmQgRVhFQ0ZJWENNRCBieSBkZWZhdWx0LgoJCjIwMDAtMDItMTAgMTE6MTQgIG1zbGlmY2FrCgoJZml4IGZvciBvbGRlciBwbGF0Zm9ybXMgdG8gdXNlIHBhc3NfcGVyc2lzdDsgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQuCgkKMjAwMC0wMi0xMCAxMDozMyAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wMi0xMCAxMDozMiAgaGFyZGFrZXIKCgktIChocl9zd2luc3QuYyk6IG1pbm9yIGZpeGVzIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwuCgkKMjAwMC0wMi0xMCAxMDoyOCAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGZpeCBzZXR1cCBlbmdpbmVJRCBidWZmZXIgb3ZlcmZsb3cgZm91bmQgYnkgTWlrZSBCYWVyLgoJCjIwMDAtMDItMTAgMDg6MzkgIG5iYQoKCS0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCQoyMDAwLTAyLTEwIDA4OjEzICBtc2xpZmNhawoKCWZpeCB2YXJhcmdzIGRlY2wvZGVmbiBvZiBzbm1wX2xvZwoJCjIwMDAtMDItMTAgMDg6MDAgIG1zbGlmY2FrCgoJdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoJCjIwMDAtMDItMTAgMDc6NTQgIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCgkKMjAwMC0wMi0xMCAwNzoxNCAgZGF2ZXMKCgktIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKCQoyMDAwLTAyLTEwIDA0OjQxICBkYXZlcwoKCS0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CgkgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgoJCjIwMDAtMDItMDkgMTM6NTMgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgoJICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCgkKMjAwMC0wMi0wOSAxMzo1MSAgbXNsaWZjYWsKCglpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoJCjIwMDAtMDItMDkgMTM6MzggIGhhcmRha2VyCgoJLSAoU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CgkgIC0gbWFrZSBTSEEgdGVzdHMgYWN0dWFsbHkgd29yay4KCQoyMDAwLTAyLTA5IDEzOjMyICBoYXJkYWtlcgoKCS0gKFN2M2NvbmZpZ3NoYSk6IHNoYSBjb25maWcgc3VwcG9ydAoJCjIwMDAtMDItMDkgMTM6MzEgIGhhcmRha2VyCgoJLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKCSAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoJCjIwMDAtMDItMDkgMTM6MzAgIG1zbGlmY2FrCgoJRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCQoyMDAwLTAyLTA5IDEzOjMwICBoYXJkYWtlcgoKCS0gKFQwMjRzbm1wdjNnZXRTSEExIFQwMjVzbm1wdjNnZXRTSEFERVMpOiBuZXcgdGVzdHMKCQoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKCS0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCgkKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCgktIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKCSAgc25tcF9hZ2VudC5jLCB2YWNtX3ZhcnMuYyk6CgkgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgoJCjIwMDAtMDItMDkgMTE6MzggIGhhcmRha2VyCgoJLSAoaHJfc3dpbnN0LmMpOiBwYXRjaCBmcm9tIHJlZGhhdCBmb3IgYmV0dGVyIFJQTSBzdXBwb3J0LgoJCjIwMDAtMDItMDkgMTA6NDMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgkKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCQoyMDAwLTAyLTA5IDEwOjQxICBoYXJkYWtlcgoKCS0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CgkgIC0gU29sYXJpcyBwYXRjaGVzLgoJCjIwMDAtMDItMDkgMTA6MzcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOgoJICAtIGZpeCByc25tcC5tYWRlLgoJICAtIHVzZSAkKE1BS0UpLgoJCjIwMDAtMDItMDkgMDg6NDEgIGhhcmRha2VyCgoJLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogVXBkYXRlIGZyb20gSm9jaGVuIEttaWV0c2NoCgkKMjAwMC0wMi0wNyAxMTo0OSAgbWFyegoKCW9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgkKMjAwMC0wMi0wNyAxMToxOCAgbXNsaWZjYWsKCglVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwoJdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoJCjIwMDAtMDItMDcgMTA6NDMgIG1zbGlmY2FrCgoJS2VlcCBjdXN0b21lcidzIG5vZGVuYW1lIG91dCBvZiB0aGUgcHVibGlzaGVkICd1bmFtZScgaW5mb3JtYXRpb24uCgkKMjAwMC0wMi0wNyAwNzoyMCAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgoJCjIwMDAtMDItMDYgMDY6MTEgIG5iYQoKCS0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgkKMjAwMC0wMi0wNSAxNzozOSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgoJCjIwMDAtMDItMDUgMDg6MzcgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBmaXggd3JhcHBlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiB1c2FnZSBtZXNzYWdlLgoJCjIwMDAtMDItMDUgMDY6NTYgIG1hcnoKCglmaXggdmVyc2lvbiAgbnVtYmVyCgkKMjAwMC0wMi0wNCAxODo1NSAgbWFyegoKCXdlaXJkIGRlbGF5IGluIGNyZWF0aW9uIG9mIHBpZCBmaWxlcwoJCjIwMDAtMDItMDQgMTg6MjEgIG1hcnoKCglicmFpbi1vCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMSAtPiBWNC4xLjEKCm1hcnogIDUgRmViIDAwIDA2OjU2OjQzCiAgICBmaXggdmVyc2lvbiAgbnVtYmVyCgpoYXJkYWtlciAgNSBGZWIgMDAgMDg6Mzc6MjcKICAgIC0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KCmhhcmRha2VyICA1IEZlYiAwMCAxNzozOTo1NAogICAgLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KCm5iYSAgNiBGZWIgMDAgMDY6MTE6NTkKICAgIC0gcmVhZF9jb25maWcuYzogRml4IG9uZSBmaW5hbCAnOicgdG8gRU5WX1NFUEFSQVRPUl9DSEFSCgpoYXJkYWtlciAgNyBGZWIgMDAgMDc6MjA6MjQKICAgIC0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCgptc2xpZmNhayAgNyBGZWIgMDAgMTA6NDM6MjkKICAgIEtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgoKbXNsaWZjYWsgIDcgRmViIDAwIDExOjE4OjI2CiAgICBVbmRvIGxhc3QgY2hhbmdlOyBvbiBTdW4sIGFkZGl0aW9uYWwgcGxhdGZvcm0gaW5mbyB3YXMgbm90IG9idGFpbmVkOwogICAgdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgoKbWFyeiAgNyBGZWIgMDAgMTE6NDk6MDEKICAgIG9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCgpoYXJkYWtlciAgOSBGZWIgMDAgMDg6NDE6MTEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjM3OjAwCiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHJzbm1wLm1hZGUuCiAgICAgIC0gdXNlICQoTUFLRSkuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDE6MTQKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgIC0gU29sYXJpcyBwYXRjaGVzLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQxOjQ0CiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MzowNQogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlIG1vZGUgdG8gYXV0b2NvbmYuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTE6Mzg6NDIKICAgIC0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjoxNwogICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgICAgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgogICAgICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzoxNjo1OAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24gYSBuZXcgdWNkRXhwZXJpbWVudGFsIHJlZ2lzdHJhdGlvbiAod2F2bGFuKS4KCm1zbGlmY2FrICA5IEZlYiAwMCAxMzozMTowMQogICAgRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzozMToyNAogICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgoKbXNsaWZjYWsgIDkgRmViIDAwIDEzOjUxOjEyCiAgICBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGdldCBQQVRIX01BWCBvbiBGcmVlQlNELgoKaGFyZGFrZXIgIDkgRmViIDAwIDEzOjUzOjM3CiAgICAtIChldmFsX3Rvb2xzLnNoLCBUMDIzc25tcHYzZ2V0TUQ1REVTLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgIC0gc2tpcCBzc2wgdGVzdHMgd2UgY2FuJ3QgcGVyZm9ybS4KCmRhdmVzIDEwIEZlYiAwMCAwNDo0MToxMAogICAgLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKICAgICAgLSAgQ29tbWVudCB1bnVzZWQgY29kZSBtb3JlIGluZm9ybWF0aXZlbHkgYXMgdG8gd2h5IGl0IGlzIG9taXR0ZWQuCgpkYXZlcyAxMCBGZWIgMDAgMDc6MTQ6NTEKICAgIC0gKEZBUSk6IEV4cGxpY2l0IGV4YW1wbGVzIG9mIHNlbmRpbmcgdHJhcHMgYnkgaGFuZAoKaGFyZGFrZXIgMTAgRmViIDAwIDA3OjU0OjQ2CiAgICAtIChGQVEpOiBtZW50aW9uIHRoZSB0dXRvcmlhbC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAwODowMDoyNgogICAgdHlwZWRlZiBpbnQgc3NpemVfdCAob25lIGxpbmUgYWRkZWQpIGZvciBidWlsZCBvbiBTdW5PUyA0LgoKbXNsaWZjYWsgMTAgRmViIDAwIDA4OjEzOjE0CiAgICBmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKCm5iYSAxMCBGZWIgMDAgMDg6NDA6MDQKICAgIC0gbWFuLyo6IHNldCB0aGUgZGF0ZXMgb24gdGhlIHBhZ2VzIHRvIHJlZmxlY3QgdGhlIHJldmlzaW9uIGRhdGUKCmhhcmRha2VyIDEwIEZlYiAwMCAxMDoyODoyMQogICAgLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KCmhhcmRha2VyIDEwIEZlYiAwMCAxMDozMjowOAogICAgLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgoKbXNsaWZjYWsgMTAgRmViIDAwIDEwOjMzOjQ3CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAxMCBGZWIgMDAgMTE6MTQ6NTgKICAgIGZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMTEgRmViIDAwIDA2OjU4OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjoyMjoxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjaGFuZ2UgcGVybCBwYXRoIHRvIC91c3IvYmluLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjI5OjM3CiAgICAtIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIGRvbid0IHNlbmQgYXV0aGVycm9yIHJlc3BvbnNlcyBmb3IgdjJjLgogICAgICAtIHNlbmQgYXV0aEZhaWx1cmUgdHJhcC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjozMDowMgogICAgLSAoc3lzT1JUYWJsZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjb21waWxlciB3YXJuaW5nIGZpeC4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0NDoyMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBmaXggZm9yIHNlcGVyYXRlIGJ1aWxkIHBhdGgKCmhhcmRha2VyIDExIEZlYiAwMCAxMjo0OTowMwogICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NTM6MTUKICAgIC0gKFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCk6IHVwZGF0ZSBmb3IgVGltZW91dCBmb3IgdjJjLgoKaGFyZGFrZXIgMTEgRmViIDAwIDEzOjI5OjI5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS4xICkKCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMC4xIC0+IFY0LjEKCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE3OjEzOjI1CiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMC4xCgpoYXJkYWtlciAyNCBBdWcgOTkgMTc6MTQ6NTAKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLjEgKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE3OjM5OjU0CiAgICAtKFJVTlRFU1RTKSBleHBvcnQgUEFUSCBiZWZvcmUgdXNlCgptc2xpZmNhayAyNCBBdWcgOTkgMTc6NDM6MDQKICAgIC0odGVzdGluZy9NYWtlZmlsZS5pbikgbm8gbmVlZCB0byBidWlsZCB0YXJnZXRzIGluIHRlc3QgcnVsZS4KCm1zbGlmY2FrIDI2IEF1ZyA5OSAxMzoxODozMQogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBpbXByb3ZlZCBQQVRIIHNldAoKbXNsaWZjYWsgMjYgQXVnIDk5IDEzOjQwOjEzCiAgICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIGRvbid0IGJ1aWx0IHRhcmdldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQKCm1zbGlmY2FrIDI3IEF1ZyA5OSAwNzozNToxMAogICAgLShjb25maWd1cmUqLCBzZWRzY3JpcHQqKSBjaGFuZ2UgLi4uRVhURU5JUy4uLiAgdG8gLi4uRVhURU5TSS4uLgoKbXNsaWZjYWsgMjcgQXVnIDk5IDA4OjAzOjQ2CiAgICBIb3dhcmQgU3BpbmRlbCBzdWdnZXN0cyBhbiBBUEkgZm9yIHRyYXBzIHdpdGggcGFzc19wZXJzaXN0LgoKaGFyZGFrZXIgMjcgQXVnIDk5IDA5OjE3OjA4CiAgICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gU3VzYW5uZSBPc3RlZCBwb2ludGVkIG91dCBhIGxhY2sgb2YgI2lmIEhBVkVfU1lTX1BBUkFNX0guCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6MTk6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX2FsYXJtLjMuCgpoYXJkYWtlciAyOCBBdWcgOTkgMDc6Mjk6NDgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWRkIC9ldGMvc25tcCB0byBkZWZhdWx0IGNvbmYgZmlsZSBwYXRoIHRvIG1ha2UgUmVkSGF0IGhhcHB5LgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjMzOjQxCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICAgICBhZ2VudF90cmFwLmgsIGRzX2FnZW50LmgsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywKICAgICAgc25tcGQuYywgdXRpbF9mdW5jcy5jLCBzeXNPUlRhYmxlLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gcmVzdHJ1Y3R1cmUgdGhlIGFnZW50IGludG8gdHdvIHBpZWNlczogYSBsaWJyYXJ5IGFuZCBhIGFwcGxpY2F0aW9uLgogICAgICAgIC0gbmVlZHMgbXVjaCBtb3JlIHdvcmsuCiAgICAgICAgLSBtYW55IHBhcmFtZXRlcnMgYXJlIG5vdyBjb250cm9sbGVkIGJ5IG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzCiAgICAgICAgICB0byBoZWxwIHJlbGlldmUgY29tcGlsZSB0aW1lIGJpbmRpbmdzLgogICAgICAtIG1lcmdlIGluaXRfc25tcCBhbmQgdGhlIGN1c3RvbSB2ZXJzaW9uIGNhbGxlZCBpbnNpZGUgdGhlIGFnZW50LgogICAgICAtIGFkZCBhIG5ldyBwbGFjZSBmb3IgdHJhcCBzcGVjaWZpYyBhZ2VudCBjb2RlIChhZ2VudF90cmFwLltjaF0pLgogICAgICAtIHByb2JhYmx5IG90aGVyIHRoaW5ncyBJJ3ZlIGZvcmdvdHRlbiB0aGF0IEkgZGlkLgoKaGFyZGFrZXIgMzAgQXVnIDk5IDA5OjM4OjE4CiAgICAtIChjbGllbnQuYywgbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAgICAtIHVzZSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncyBpbnN0ZWFkIG9mIGV4dGVybmFsIHZhcmlhYmxlcy4KCmhhcmRha2VyIDMwIEF1ZyA5OSAxMDozMDo1NgogICAgLSAobWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMpOiB5ZXQgbW9yZSBkZWJ1Z2dpbmcuCgpuYmEgMzAgQXVnIDk5IDEzOjAyOjE4CiAgICAtIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBkb2N1bWVudCBzbXV4cGVlciBkaXJlY3RpdmUKCm5iYSAzMCBBdWcgOTkgMTM6MDM6NDAKICAgIC0gYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzogcHJvcGVybHkgaGFuZGxlIE1JQjpvaWQgY29uc3RydWN0CgpuYmEgMzAgQXVnIDk5IDEzOjA1OjAyCiAgICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwYXJzZXIKCm5iYSAzMSBBdWcgOTkgMDA6MDg6NDUKICAgIC0gYWdlbnQvc25tcGQuYzogZG9uJ3QgdHJ5IHRvIHBhcnNlIGEgcGFja2V0IHdoZW4gdGhlcmUgaXMgYW4gZXJyb3IgaW4KICAgIAlyZWN2ZnJvbQoKbXNsaWZjYWsgMzEgQXVnIDk5IDA4OjE3OjI0CiAgICAtKGFnZW50X3RyYXAuYykgZml4IHJlY2VudCBtZW1vcnkgbGVhaywgYW5kIHNpemVvZihvYmppZF9zbm1wdHJhcCkgYnVnLgoKbXNsaWZjYWsgMzEgQXVnIDk5IDA5OjI2OjE0CiAgICAtKGFnZW50X3RyYXAuYykgYWx3YXlzIGZyZWUgUERVIGFmdGVyIHNubXBfc2VuZC4KCmRhdmVzICAyIFNlcCA5OSAwNjozODoxNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgpOiBGaXggTUlCIGxvY2F0aW9uIG9mIGlwZndhY2MgbW9kdWxlCgpkYXZlcyAgMiBTZXAgOTkgMDY6Mzg6NTMKICAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQoKaGFyZGFrZXIgIDIgU2VwIDk5IDA3OjA3OjA0CiAgICAtIChzdWJhZ2VudC5jKTogc2h1dGRvd25fc3ViYWdlbnQgLT4gc3ViYWdlbnRfc2h1dGRvd24gc28gY29uZmlndXJlCiAgICAgIGRvZXNuJ3QgZmluZCBpdC4KCmhhcmRha2VyICAyIFNlcCA5OSAwODo1Mjo0OAogICAgLSAoc3ViYWdlbnQuYyk6IG9wcHMuICBGb3Jnb3QgYSBzaHV0ZG93biBuYW1lIGNoYW5nZSBpbnN0YW5jZS4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNToxNQogICAgLSAoaGlzdG9yeS5jLCBoaXN0b3J5LmgsIHNubXBfdmFycy5saW51eC5oKTogcmVtb3ZlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoxNTozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGFnZW50IGhlYWRlciBmaWxlcy4KCmhhcmRha2VyICAzIFNlcCA5OSAxMzoyNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGluc3RhbGwgbGliYWdlbnQuYS4KICAgICAgLSBta2RpcmhlaXIgb24gbmVlZGVkIG5ldyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MzA6MzYKICAgIC0gKHNubXBsaWIvTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1vcmUgbGlicmFyeSBoZWFkZXJzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE0OjI4OjQ2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IGZhbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCB0cmVlLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDE1OjAxOjM5CiAgICAtIChGQVEpOiBtb3JlIEJTREkgc3lzdGVtIHZlcnNpb25zIGxpc3RlZC4KCm5iYSAgNiBTZXAgOTkgMjM6NTM6MDcKICAgIC0gKG1hbi9zbm1wX2FwaS4zIHNubXBsaWIvc25tcF9hcGkuYyBhZ2VudC9zbm1wZC5jIGFwcHMvc25tcHRyYXAuYyk6CiAgICAJZml4IG1lbW9yeSBsZWFrIHdoZW4gYWdlbnQgc2VuZHMgdHJhcHMgYnkgaW1wbGVtZW50aW5nIHRoZSBtaXNzaW5nCiAgICAJZnJlZSBvZiBUUkFQIHBkdSBpbiBzbm1wX3NlbmQuCgpuYmEgIDYgU2VwIDk5IDIzOjU1OjM4CiAgICAtIGlmLmM6IGNvcnJlY3QgY2FsbHMgb2Ygc25tcF9maXhfcGR1IHRvIHVzZSBHRVRORVhUCgptc2xpZmNhayAgNyBTZXAgOTkgMTQ6NDc6MTgKICAgIC0ocGFyc2UuKikgZml4IHNtYWxsIG1lbW9yeSBsZWFrczsgYWxsb3cgSU5ERVh7SU5URUdFUi4uLn0gY2xhdXNlczsKICAgICAgICAgICAgICAgYWxsb3cgbGFyZ2VyIERFU0NSSVBUSU9OIGNsYXVzZXMgW21heCA4MTkyXS4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMjoxNAogICAgc25tcHYzLmMgLSBzaWxlbmNlIHR5cGUgd2FybmluZyBmcm9tIE1TVkMrKy4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMzowMgogICAgKGRlZmF1bHRfc3RvcmUuKikgLSBtYWtlIDNyZCBwYXJhbSB0byBkc19zZXRfc3RyaW5nIHR5cGUgb2YgY29uc3QgY2hhciAqLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjIzOjUxCiAgICAod2luMzIvY29uZmlnLmgpIC0gc2V0IFNOTVBDT05GUEFUSCB0byBzdWNjZWVkIGNvbXBpbGU7CiAgICAod2luMzIqbGlic25tcC5kZWYpIC0gYWRkIG5ldyBzbm1wX2dldF90b2tlbiB0byBsaXN0LgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjMyOjAwCiAgICAtKHNubXBfYXBpLmgpIHN0cnVjdCBwZHUgYW5kIHNubXBfc2Vzc2lvbiBhZ3JlZTogbG9uZyB0eXBlIGZvciB2ZXJzaW9uIG1lbWJlci4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTozMjo1OQogICAgLShwYXJzZS5jKSByZW1vdmUgdW5uZWVkZWQgc3RyZHVwIHRvIEZpbGUgdmFyaWFibGUgZnJvbSBpbml0X21pYl9pbnRlcm5hbHMuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6NTc6MTMKICAgIC0ocGFyc2UuYykgZml4IFVubGlua2VkIE9JRCBwcmludCB3aGVuIG9iamVjdCBpZGVudGlmaWVyIGhhcyBubyBwYXJlbnQuCgptc2xpZmNhayAgNyBTZXAgOTkgMjA6MTI6NTcKICAgIC0oYWdlbnRfdHJhcC5jLHNubXB0cmFwLmMsc25tcF9hcGkuWzNjXSkgLSBzbm1wX2ZyZWVfcGR1IGZpeCBCdWcgIzU0IHBlciBOaWVscyBCLgogICAgLShzbm1wbmV0c3RhdC9pZi5jKSAtIGZpeCBmb3IgR0VUTkVYVCBwZXIgTmllbHMgQi4KCm1zbGlmY2FrICA3IFNlcCA5OSAyMDoxOTo1MgogICAgc25tcHRyYXAuYyAtIHJld29yayBmaXggYnVnICM1NCAobWlzc2VkIGVsc2UpLgoKbXNsaWZjYWsgIDggU2VwIDk5IDA1OjE2OjM0CiAgICBpbmNsdWRlIHJlYWRfY29uZmlnLmgKCm5iYSAgOCBTZXAgOTkgMDc6NDU6NTQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgbG9hZGF2ZS5jKTogU29sYXJpcyAyLjcgaGFzIGdldGxvYWRhdmcgcHJvdG90eXBlCgpuYmEgIDggU2VwIDk5IDA3OjQ2OjUxCiAgICAtIHNubXBfYXBpLmg6IG1vdmUgaW5jbHVzaW9uIHByb3RlY3Rpb24gdG8gdGhlIHJlYWwgYmVnaW5uaW5nL2VuZCBvZiB0aGUgZmlsZQoKbmJhICA4IFNlcCA5OSAwNzo0ODowMwogICAgLSB2YXJfc3RydWN0Lmg6IHRoZSBBZ2VudHggY29kZSB1c2VzIHVuc2lnbmVkIHZhbHVlcyBmb3IgdGhlIHZhcmlhYmxlIHR5cGUuCgpuYmEgIDggU2VwIDk5IDA3OjUwOjM3CiAgICAtICh2YXJpb3VzKTogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgpuYmEgIDggU2VwIDk5IDA3OjUxOjI2CiAgICAtIHNubXBkLjEuZGVmOiBmaXggYSBmb3JtYXR0aW5nIHByb2JsZW0KCm5iYSAgOCBTZXAgOTkgMDc6NTI6MjMKICAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHByb2Nlc3NpbmcgKC1sZCBhbmQgc2ltaWxhcikKCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowMDo0MAogICAgLSh0ZXN0aW5nL1JVTlRFU1RTKSBwcmVmaXggUEFUSCB3aXRoIC4gYW5kIC4uICwgYXMgdGhlIHNjcmlwdCBjaGFuZ2VzIGRpci4KCm1zbGlmY2FrICA4IFNlcCA5OSAxMzowNDo1NQogICAgLShzbm1wbGliL3NubXBfY2xpZW50LiopIGFkZCBzbm1wX3NwbGl0X3BkdSwgc25tcF92YXJiaW5kX2xlbiBtZXRob2RzLgoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjAyOjM3CiAgICBtaWJpbmNsLmgsIG1pYmdyb3VwL21pYklJLyogLSBmaXh1cCBmb3IgQ3lnV2luMzIgYnVpbGQKCm1zbGlmY2FrICA4IFNlcCA5OSAxNzo0OToxMwogICAgLShjb25maWcqLHdpbjMyLyosc25tcGxpYi8qKSByZXNvdXJjZSBsb2NraW5nIG9yaWdpbmFsbHkgZnJvbSBNYXJra3UgTGF1a2thbmVuCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6NTI6NDcKICAgIC0obXRfc3VwcG9ydC4qKSBPcmlnaW5hbCBieSBNYXJra3UgTGF1a2thbmVuLCBjaGFuZ2VzIGJ5IE0uIFNsaWZjYWsKCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozMDoyOQogICAgLShzbXV4LmMpIHZhcl9zbXV4X3dyaXRlIGZpeGVkIHBlciBNaWtlIE1pY2hhdWQgYW5kIE5pY2sgQW1hdG8KCm1zbGlmY2FrICA4IFNlcCA5OSAyMjozNDozNwogICAgLShtaWJpbmNsLmgpIGNvbW1lbnQgb3V0IGR1cGxpY2F0ZSAjaW5jbHVkZSBoZWFkZXIgbGluZXMuCgpkYXZlcyAgOSBTZXAgOTkgMDE6MzI6MTUKICAgIC0gKG1pYnMvU05NUHYyLUNPTkYudHh0KTogT21pdCB1bm5lY2Vzc2FyeSBpbXBvcnQgY2xhdXNlCgptc2xpZmNhayAgOSBTZXAgOTkgMDI6MjE6NTAKICAgIC0od2luc3R1Yi5jKSBIYWNrIHRvIGFsbG93IHNubXBuZXRzdGF0IC1hIHRvIHdvcmsgb24gQUlYNCAoc2ljKS4KCm1zbGlmY2FrICA5IFNlcCA5OSAwMjozMToyNgogICAgLSgqY29uZmlnKikgdHVybiBvbiByZXNvdXJjZSBsb2NraW5nIHdpdGggLS1lbmFibGUtcmVlbnRyYW50LgoKbXNsaWZjYWsgIDkgU2VwIDk5IDEzOjU5OjI2CiAgICAtKG1pYi5jLCBwYXJzZS5jKSBtaWIuYyBwcmludF90cmVlX25vZGUgdGVzdCBkaXNwbGF5IG51bGwgdHlwZSB3aXRoIHJhbmdlCiAgICAgICAgICAgICAgICAgICAgICBwYXJzZS5jIHdvcmsgYXJvdW5kIGNvcmUgZHVtcCBmcmVlaW5nIFRDcyB0aGF0IHNwZWNpZnkgcmFuZ2VzLgoKbmJhIDEyIFNlcCA5OSAyMTo1MDoyMwogICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCgpuYmEgMTIgU2VwIDk5IDIxOjU3OjE4CiAgICAtIGFnZW50LyosIHNubXBsaWIvKjogbWFsbG9jIGZpeGVzLCBzb21lIHByb3Zva2VkIGJ5IHRoZSBjb3JyZWN0ZWQKICAgIAlzbm1wX3NlbmQgc2VtYW50aWNzLgoKbmJhIDEyIFNlcCA5OSAyMTo1ODoxNwogICAgLSBURVNUQ09ORi5zaDogZml4IHNvbWUgZXhwb3J0cyB0byBleHBvcnQgdGhlIHJpZ2h0IHZhcmlhYmxlLgoKbmJhIDEyIFNlcCA5OSAyMTo1OTozNAogICAgLSBwcm90b2NvbC5jOiBhZGQgYSBtaXNzaW5nIGluY2x1ZGUgZmlsZS4KCm5iYSAxMiBTZXAgOTkgMjI6MDA6MzMKICAgIC0gc25tcF9pbXBsLmg6IHJlbW92ZWQgc29tZSB1bnVzZWQvdW5uZWVkZWQgZGVmaW5lcy9zdHJ1Y3RzCgpuYmEgMTMgU2VwIDk5IDA0OjM1OjE4CiAgICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKCm5iYSAxMyBTZXAgOTkgMTM6MzI6MDcKICAgIC0gc25tcGQuYzogZml4IGEgYnVmZmVyIG92ZXJmbG93CgpoYXJkYWtlciAxMyBTZXAgOTkgMTU6MDE6NTQKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICAgICBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzdWJhZ2VudC5jLAogICAgICBzdWJhZ2VudC5oLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gZnVydGhlciBzZXBhcmF0aW9uIG9mIGFnZW50IGNodXJjaCBhbmQgc3RhdGU6CiAgICAgICAgLSB1c2UgY2FsbGJhY2tzIGV2ZXJ5d2hlcmUgbmVlZGVkIHRvIG5vdCBjYWxsIG1pYiBtb2R1bGUgY29kZSBkaXJlY3RseS4KICAgICAgICAtIGdldCByaWQgb2YgYWxsIGluc3RhbmNlcyBvZiBVU0lOR18gaW4gbGliYWdlbnQgY29kZS4KCm1zbGlmY2FrIDEzIFNlcCA5OSAyMDoyMDo1NAogICAgLShzbm1wX2FwaS5jKSByZS1hc3NlcnQgTmllbHMnIHBhdGNoIHRvIHNubXBfc2VuZCB0byBmcmVlIHYyL3YxIFRyYXAtUERVcwoKbXNsaWZjYWsgMTQgU2VwIDk5IDA5OjU0OjA1CiAgICAtKEZBUSwgbWFuL3NubXBjbWQuMSwgc25tcGxpYi9wYXJzZS4qKSBhZGQgcmVwbGFjZSBNSUIgY2FwYWJpbGl0eShleHBlcmltZW50YWwpCgptYXJ6IDE0IFNlcCA5OSAxMzowMDoxMgogICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogZml4IHNwdXJpb3VzIGVycm9yIG1lc3NhZ2Ugd2hlbiBzbm1wX3BhcnNlX29pZCBmYWlscwoKbXNsaWZjYWsgMTQgU2VwIDk5IDEzOjIyOjM5CiAgICBwYXJzZS5jIC0gYW5vdGhlciBmaXggZm9yIG5vZGU6IGNvbnNpZGVyIE5VTEwgbmFtZSBvciBOVUxMIHBhcmVudAoKbXNsaWZjYWsgMTUgU2VwIDk5IDA2OjA4OjMyCiAgICBpbmNsdWRlIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaCBmb3IgYmVuZWZpdCBvZiBtaWJfbW9kdWxlX2RvdF9jb25mLmgKCmhhcmRha2VyIDE1IFNlcCA5OSAwOTo0NTozNQogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfY2xvc2UuMywgc25tcF9mcmVlX3BkdS4zLCBzbm1wX29wZW4uMywKICAgICAgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMywgc25tcF9zZW5kLjMsCiAgICAgIHNubXBfc2Vzc19hc3luY19zZW5kLjMsIHNubXBfc2Vzc19jbG9zZS4zLCBzbm1wX3Nlc3NfZXJyb3IuMywKICAgICAgc25tcF9zZXNzX2luaXQuMywgc25tcF9zZXNzX29wZW4uMywgc25tcF9zZXNzX3JlYWQuMywKICAgICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywKICAgICAgc25tcF9zZXNzX3Nlc3Npb24uMywgc25tcF90aW1lb3V0LjMpOiBQYXRjaCBmcm9tIE1hcmsgSC4gV29vZDoKICAgICAgLSBjcmVhdGUgc29tZSBmYWtlIHNvdXJjaW5nIG1hbiBwYWdlcyBmb3IgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMTUgU2VwIDk5IDExOjMwOjU4CiAgICBmaW5lIHR1bmluZyBtdCBzdXBwb3J0Cgptc2xpZmNhayAxNiBTZXAgOTkgMTQ6MTY6MzgKICAgIC1wZXIgYWdyZWVtZW50IHdpdGggTWFya2t1LCBubyBzdXBwb3J0IG5lZWRlZCBmb3IgU29sYXJpcy1zcGVjaWZpYyB0aHJlYWRzLgoKaGFyZGFrZXIgMTcgU2VwIDk5IDA3OjE3OjIxCiAgICAtIChzbm1wX2FwaS4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgIC0gZml4IGNvbW1lbnRzLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjE5OjQyCiAgICAtKHBhcnNlLmMpIC0gcmVtb3ZlIHVubmVlZGVkIHVzZSBvZiBzdGF0aWMgdmFyICJsYXN0IgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjI0OjQ4CiAgICAtcmVtb3ZlIG9sZC1zdHlsZSBpbml0IGZvciByZXBsYWNlIG1pYiBmZWF0dXJlLgoKbXNsaWZjYWsgMTcgU2VwIDk5IDExOjQyOjE3CiAgICBtYWtlIG1vZHVsZV9tYXAqIGFuZCB0b2tlbnMgc3RydWN0dXJlcyBzdGF0aWMgKG9ubHkgdXNlZCBpbiBwYXJzZS5jID8pCgpoYXJkYWtlciAxNyBTZXAgOTkgMTU6Mzc6NDEKICAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZSB0byAyLjEzLgoKZGF2ZXMgMjEgU2VwIDk5IDA5OjIxOjU5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBoYW5kbGUgYWRkaW5nICdlcnJvcicgdHlwZSB2YXJpYWJsZXMgdG8gYSBQRFUKCmRhdmVzIDIxIFNlcCA5OSAwOToyNToyNQogICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMpOiBIYW5kbGUgcGFyc2luZyBudWxsLWxlbmd0aCB2YXJpYWJsZXMKCmRhdmVzIDIxIFNlcCA5OSAwOTozMjoyNwogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wZC5jKTogU2ltcGxlIHJ1bi10aW1lIGR1bXAgb2YgcmVnaXN0ZXJlZCBNSUJzCgptc2xpZmNhayAyMSBTZXAgOTkgMTA6NDA6NDMKICAgIC0obWliLmMpIHVuZG8gZXJyb25lb3VzIGNoYW5nZSB0byBpbml0X21pYiAodGhhbmtzIE5CISkKCmRhdmVzIDIyIFNlcCA5OSAwOToyNzozNwogICAgLSAoYWdlbnQvc25tcGQuYyk6IHN0dXBpZCB0eXBvCgpkYXZlcyAyMiBTZXAgOTkgMDk6MzE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMpOiBzdHVwaWQgdHlwbwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjMzOjUxCiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlkZSBtZXRob2QgZm9yIHByaW9yaXRpc2VkIHJlZ2lzdHJhdGlvbgoKZGF2ZXMgMjIgU2VwIDk5IDA5OjM1OjA5CiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIEVuc3VyZSBsb2NhbCBzeXNPUlRhYmxlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBzdWJhZ2VudCB2ZXJzaW9ucwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU0OjAyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHZhcl9zdHJ1Y3QuaCk6CiAgICAgIENoYW5nZSB0aGUgd2F5IHRoZSBNSUIgcmVnaXN0cnkgaGFuZGxlcyByZWdpc3RlcmVkIHJhbmdlcy4KICAgICAgVGhpcyBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IChhcyB3ZWxsIGFzIGJlaW5nIHJhdGhlciBzaW1wbGVyLCBJTUhPKQoKZGF2ZXMgMjIgU2VwIDk5IDA5OjU4OjEyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogcmVtb3ZlIHJlZHVuZGFudCByb3V0aW5lcwoKZGF2ZXMgMjIgU2VwIDk5IDEwOjAwOjU2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRW5zdXJlIHJlZ2lzdHJ5IGlzIGluaXRpYWxpc2VkIGNvcnJlY3RseSBvbiBzdWJhZ2VudHMKCmRhdmVzIDIyIFNlcCA5OSAxMDowMTo0NQogICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBJbXByb3ZlZCBBZ2VudFggcmVzcG9uc2UgaGFuZGxpbmcKCm1zbGlmY2FrIDIyIFNlcCA5OSAxMjo1MTowMAogICAgLShzbm1wX2FwaS5jKSAtIEltcHJvdmVkIGVycm9yIHN0YXR1cyBhZ2dyZWdhdGlvbi4KCmhhcmRha2VyIDI3IFNlcCA5OSAxNjoyMjoyMAogICAgLSAocmVhZF9jb25maWcuYyk6IE9wcHM6IERTX0xJQl9ET05UX1JFQURfQ09ORklHUyBuZWVkZWQgYW4gIS4KCmhhcmRha2VyIDI4IFNlcCA5OSAxNjo1MjowNAogICAgLSAoTWFrZWZpbGUuaW4sIG1pYl9tb2R1bGVzLmMsIG1pYl9tb2R1bGVzLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBtYWtlIGxpYnVjZGFnZW50IGFuZCBsaWJ1Y2RtaWJzIGFzIHNlcGVyYXRlIGxpYnJhcmllcy4gIEluIHRoZW9yeSwKICAgICAgICB5b3Ugc2hvdWxkbid0IG5lZWQgbGlidWNkbWlicyB0byB1c2UgbGlidWNkYWdlbnQuCgpkYXZlcyAyOSBTZXAgOTkgMTE6MTQ6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHByb3RlY3Qgc25tcF9jbG9zZSgpIGFnYWluc3QgYSBudWxsIFNlc3Npb25zIGxpc3QKCmRhdmVzIDI5IFNlcCA5OSAxMToxNzowMQogICAgLSAobXRfc3VwcG9ydC5oIHNubXBfYXBpLltjaF0pOiBTdXBwb3J0IGZvciBzZXNzaW9uIGFuZCBpbmNvbWluZyB0cmFuc2FjdGlvbiBJRHMKCmRhdmVzIDI5IFNlcCA5OSAxMToyMzo0MAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IENvcnJlY3QgdmFsdWUgb2YgZGVmYXVsdCByZWdpc3RyYXRpb24gcHJpb3JpdHkKCmRhdmVzIDI5IFNlcCA5OSAxMTozNjo0MwogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gSW1wcm92ZSByZWdpc3RyeSBlcnJvciBoYW5kbGluZwogICAgICAtIENvcnJlY3RseSBoYW5kbGUgdW5yZWdpc3RlcmluZyBNSUIgcmVnaW9ucwoKZGF2ZXMgMjkgU2VwIDk5IDExOjM4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKToKICAgICAgLSAnQ2hpbGRyZW4nIG5vZGVzIG5vdyBoYXZlIGEgZGlmZmVyZW50IHN0YXR1cywgYW5kIHNob3VsZG4ndCBiZSBmcmVlZC4gT29wcyEKCmRhdmVzIDI5IFNlcCA5OSAxMTo0MzowMAogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3Zpc2lvbiB0byB1bnJlZ2lzdGVyIE1JQnMgYnkgc2Vzc2lvbgoKZGF2ZXMgMjkgU2VwIDk5IDExOjQ2OjAyCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6CiAgICAgIC0gTW92ZSBzZXR0aW5nIGFnZW50IHN0YXJ0IHRpbWUgdG8gZWFybGllciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UKICAgICAgICAoc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiBzdWJhZ2VudHMgd2l0aCB0aGUgbWFzdGVyJ3MgdmFsdWUpCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDg6NTUKICAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6IENoYW5nZSBpbiBNSUIgcmVnaXN0cmF0aW9uIGludGVyZmFjZQoKZGF2ZXMgMjkgU2VwIDk5IDEyOjE5OjU2CiAgICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvKik6ICBBc3NvcnRlZCBpbXByb3ZlbWVudHMhCgptc2xpZmNhayAyOSBTZXAgOTkgMTQ6MzE6NDgKICAgIFJvYnVzdCBjb3B5IG9mIGluZm9ybWF0aW9uIHRvIHRyZWUsIGltcG9ydF9saXN0LCBkaXNwbGF5IGhpbnRzLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM1OjQzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGZpeCBSQU5MSUIgdGVzdGluZyBmb3IgLS1lbmFibGUtc2hhcmVkLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM2OjA3CiAgICAtIChSRUFETUUpOiBhZGRlZCBNaWtlIE1pY2hhdWQgdG8gdGhlIHRoYW5rIHlvdSBsaXN0LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM4OjM0CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAgLSBuZXcgZXh0cmFjdGlvbiBhbmQgZnJlZWluZyBmdW5jdGlvbnMuCiAgICAgIC0gYnVnIGZpeCwgbWlzc2luZyBhIG1hbGxvYyBzaXplIGJ5IG9uZSAoZWxlY3RyaWMgZmVuY2UgaXMgdmVyeSBjb29sKS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozODo1OQogICAgLSAoY2xpZW50LmMpOiB0aGF0cyAidGltZXZhbCIgbm90ICJ0aW1ldmFsZSIgRGF2ZSAoaGVoZSkuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzk6MjEKICAgIC0gKGNsaWVudC5oKTogZGVmaW5lIERFRkFVTFRfTUlCX1BSSU9SSVRZIHRvIDI1NS4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozOTo0MgogICAgLSAobWFzdGVyX2FkbWluLmMpOiAtV2FsbCBmaXhlcyBhbmQgZm91bmQgYSBtaXNzaW5nIH0uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6NDA6MDgKICAgIC0gKHBhc3MuYyk6IHJ1biBudG9obCBvbiBpcCBhZGRyZXNzZXMgc3RvcmVkIGluIGEgbG9uZy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjo0MDozMAogICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZWQgZXh0cmEgXG4uCgpoYXJkYWtlciAyOSBTZXAgOTkgMTc6MDE6MjgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgpOiBmaXggYnVncy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNzowMTo1MAogICAgLSAobWliX21vZHVsZXMuYyk6IGluY2x1ZGUgbmV0aW5ldC9pbi5oCgptc2xpZmNhayAyOSBTZXAgOTkgMjM6NDI6NDkKICAgIFJlbW92ZSB1bnVzZWQgZmlsZS4uIHNubXBsaWIvaHB1eC5jCgpkYXZlcyAzMCBTZXAgOTkgMDE6MDk6MjUKICAgIC0gKG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMpOgogICAgICAtIHByb3RlY3QgYWdhaW5zdCBOVUxMIHV0bXAgZmlsZSAoZnJvbSBGYWJyaWNlIER1cHJlKQoKZGF2ZXMgIDEgT2N0IDk5IDA5OjQ4OjIwCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IEZpeCBpbmNvbXBhdGFiaWxpdHkgaW4gYWdlbnQgbGlicmFyeSBuYW1lcwoKZGF2ZXMgIDIgT2N0IDk5IDE0OjI4OjIwCiAgICAtIChtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIEZpeCBhIHByb2JsZW0gd2l0aCByZS11c2VkIFBEVSBzdHJ1Y3R1cmVzIGJlaW5nIGZyZWVkIHR3aWNlLgoKZGF2ZXMgIDQgT2N0IDk5IDAzOjU4OjIyCiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCk6CiAgICAgIC0gY29uc29saWRhdGUgZGVmaW5pdGlvbnMgb2YgZGVmYXVsdCBNSUIgcmVnaXN0cmF0aW9uIHByaW9yaXR5CgpkYXZlcyAgNCBPY3QgOTkgMDk6NTM6NDgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gc25tcF92YXJzLmggbWliSUkvc3lzT1JUYWJsZS5jCiAgICAgICBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgIC0gSGFuZGxlIE1JQiByYW5nZSByZWdpc3RyYXRpb24sIGFuZCBjbGVhbiB1cCB3cmFwcGVyIGludGVyZmFjZXMKCmRhdmVzICA0IE9jdCA5OSAwOTo1ODoyNgogICAgLSAobWliX21vZHVsZXMuYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuW2NoXSk6CiAgICAgIC0gRW5zdXJlIHN1YmFnZW50IGlzIGluaXRpYWxpc2VkIGVhcmx5IChwcmlvciB0byBNSUIgcmVnaXN0cmF0aW9uLCBldGMpCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTU6MzgKICAgIC0gKHNubXBsaWIvY2FsbGJhY2suaCk6IEluY3JlYXNlIG51bWJlciBvZiBhcHBsaWNhdGlvbiBjYWxsYmFja3Mgc3VwcG9ydGVkCgpkYXZlcyAgNCBPY3QgOTkgMTA6MTc6NTMKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLltjaF0KICAgICAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgICAtIENvbXBsZXRlIHN1YmFnZW50IGhhbmRsaW5nIG9mIEFnZW50IENhcGFiaWxpdGllcyAvIHN5c09SVGFibGUKCmRhdmVzICA0IE9jdCA5OSAxMDoyMjoyNQogICAgLSAoYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IFRyaXZpYWwgJ3BpbmcnIGltcGxlbWVudGF0aW9uCgpuYmEgIDQgT2N0IDk5IDExOjQ4OjUxCiAgICAtIChzbm1wX2FwaT8sIGludDY0Lj8gc25tcHRyYXAuYyk6IGFkZCBzb21lIGVycm9yIGNoZWNraW5nIGZvciB2YXJpYWJsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTA6NTAKICAgIC0gTWFrZWZpbGUuaW46CWFsd2F5cyB1c2UgJChNQUtFKSBmb3IgbWFrZSBpbiBNYWtlZmlsZXMKCm5iYSAgNCBPY3QgOTkgMTE6NTI6MjUKICAgIC0gY29uZmlndXJlLmluOglyZW1vdmUgLXBlZGFudGljIGZyb20gLS13aXRoLWRldmVsb3BlciwgYW5kIHRoZSBzeXN0ZW0gaGVhZGVycwogICAgCWFyZSBub3QgcHJlcGFyZWQgZm9yIGl0IChhdCBsZWFzdCBvbiBMaW51eCBhbmQgTmV0QlNEKQoKbmJhICA0IE9jdCA5OSAxMzozODoxOQogICAgLSB2YXJpb3VzOiBpbmNsdWRlIGFkZGl0aW9ucyBhbmQgZml4ZXMgdG8ga2lsbCB3YXJuaW5ncwoKaGFyZGFrZXIgIDQgT2N0IDk5IDEzOjUxOjUxCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c1NlcnZpY2VzIGNvbmZpZ3VyYWJsZS4KCm5iYSAgNCBPY3QgOTkgMTM6NTI6MjAKICAgIC0gc3ViYWdlbnQuaCwgc3ViYWdlbnQuYywgbWliX21vZHVsZXMuYzogcHJlX2luaXRfc3ViYWdlbnQgY29uZnVzZXMKICAgIAljb25maWd1cmUgaW50byBiZWxpZXZpbmcgdGhlcmUgaXMgYSBpbml0X3N1YmFnZW50IGZ1bmN0aW9uLgogICAgCVJlbmFtZSB0byBzdWJhZ2VudF9wcmVfaW5pdAoKaGFyZGFrZXIgIDQgT2N0IDk5IDE2OjMyOjE5CiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogYWRkZWQgaGVhZGVyX2NvbXBsZXhfZmluZF9lbnRyeSgpLgoKZGF2ZXMgIDUgT2N0IDk5IDA3OjIzOjQ1CiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6IFdvcmtpbmcgU0VUIHN1cHBvcnQKCm5iYSAgNSBPY3QgOTkgMjE6NDk6MjIKICAgIC0gc25tcF9kZWJ1Zy5oOiBtYWtlIHRoZSBERUJVRyogbWFjcm9zIHNhZmUgZm9yIHVzZSBpbiBjb21wb3VuZCBzdGF0ZW1lbnRzCgpuYmEgIDUgT2N0IDk5IDIyOjE4OjQ2CiAgICAtIHNubXBfcGFyc2VfYXJncy5jOiBmaXhlcyB0byByZXBvcnQgaW52YWxpZCBlbmdpbmVJZAoKbmJhICA1IE9jdCA5OSAyMjoyMjo1NAogICAgLSBzdWJhZ2VudC5jOiBpbmNsdWRlIHN5c3RlbS5oIGZvciBwcm90b3R5cGUgZm9yIGNhbGN1bGF0ZV90aW1lX2RpZmYKCmhhcmRha2VyICA2IE9jdCA5OSAwODo1Nzo0MgogICAgLSAoZml4cHJvYyk6IG5ldyBjb21tZW50ZWQgdmVyc2lvbi4KCmhhcmRha2VyICA2IE9jdCA5OSAxNjozMTo1MwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgICAtIFNhdmUgYW5kIHBhcnNlIG9sZGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBmaWxlcyB0byBtYWtlIHN1cmUgZGF0YSBpcwogICAgICAgIG5vdCBsb3N0IGR1cmluZyBzdG9yYWdlIGNyYXNoZXMuCiAgICAgIC0gRml4IFNOTVB2MyBlbmdpbmVJRCBwcm9iZXM6IFBEVSdzIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBOVUxMIHZhcmJpbmRsaXN0LgoKZGF2ZXMgIDcgT2N0IDk5IDA3OjI2OjIwCiAgICAtIChhZ2VudF90cmFwLmMgYWdlbnRfdHJhcC5oIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcGQuaCk6CiAgICAgIC0gIFJlLXdyaXRlIG9mIGFnZW50IHRyYXAgaGFuZGxpbmc6CiAgICAJUHJvdmlzaW9uIGZvciB2MSB0cmFwcyB3aXRoIHZhcmJpbmRzCiAgICAJQ29uc29saWRhdGUgdjEgYW5kIHYyIHRyYXAgc2luayBsaXN0cwogICAgCVByZWxpbWluYXJ5IElORk9STSBzdXBwb3J0CgpkYXZlcyAgNyBPY3QgOTkgMDg6NDI6MTUKICAgIC0gKGFnZW50X3RyYXAuW2NoXSk6IEltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc3ViYWdlbnRzCgpkYXZlcyAgNyBPY3QgOTkgMDk6MDE6MjUKICAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6IE5vdGlmaWNhdGlvbiBzdXBwb3J0Cgptc2xpZmNhayAxMiBPY3QgOTkgMDU6NTg6MjgKICAgIG1pYi5jIDogcXVpY2tfcHJpbnQgaXMgZXhwb3NlZCBmb3IgQ01VX0NPTVBBVElCTEUgYnVpbGRzLgogICAgbGNkX3RpbWUuYyA6IGNvbW1lbnRlZCB1bnVzZWQgZHVtcF9ldGltZWxpc3RfZW50cnkgdW5kZXIgU05NUF9URVNUSU5HX0NPREUuCgptc2xpZmNhayAxMiBPY3QgOTkgMDY6MDc6NDQKICAgIERlZmluZSBhZGRyZXNzIGxlbmd0aCBmb3IgRnJlZUJTRCBwbGF0Zm9ybS4KCm1zbGlmY2FrIDEzIE9jdCA5OSAwMzo1NDowMgogICAgYWRkIG1pc3NpbmcgcHJvdG8gZm9yIHNhdmVfcGVyc2lzdGVudC4KCm5iYSAxMyBPY3QgOTkgMDc6MDk6MzYKICAgIC0gbWFzdGVyX2FkbWluLmMsIHN5c3RlbV9taWIuaDogaW5jbHVkZXMgZm9yIHByb3RvdHlwZXMKCm1zbGlmY2FrIDE1IE9jdCA5OSAwNzowOToxNAogICAgLShkZWZhdWx0X3N0b3JlLmMsIGNhbGxiYWNrLmMpIGZpeAogICAgYnVnIGluIGFycmF5LWJvdW5kYXJ5IGNoZWNrIGluIHNubXBsaWIvY2FsbGJhY2suYwogICAgcmVwb3J0ZWQgYnkgQmVydCBIb2xzdGVpbiAxNSBPY3QgMTk5OS4KCmhhcmRha2VyIDIwIE9jdCA5OSAxNzoyNjo1OQogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHBhcnNlZCBzdHJpbmdzIGZyb20gb2lkJ3MgaW5jbHVkZSBudWxsIHRlcm1pbmF0b3JzLgoKaGFyZGFrZXIgMjAgT2N0IDk5IDE4OjA4OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBvaWQgcGFyc2VyIHRvIGhhbmRsZSBzaW1wbGUgZW1iZWRkZWQgc3RyaW5ncyBpbiBvaWRzCiAgICAgIGFuZCB0byB0cmFuc2xhdGUgdGhlbSBpbnRvIG9pZCBzZWdtZW50cy4KICAgICAgRUc6IC4xLjMuXCJoZWxsb1wiLlwnaGlcJyAtPiAuMS4zLjUuMTA0LjEwMS4xMDguMTA4LjExMS4xMDQuMTA1CgpoYXJkYWtlciAyMSBPY3QgOTkgMTA6MDc6MDAKICAgIC0gKG1pYi5jKTogZW5hYmxlIG9pZG5hbWUuImhpIi4ndGhlcmUnIGluIGdldF9tb2R1bGVfbm9kZSgpIGFzIHdlbGwuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjA6MTUKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciB3aXRob3V0IHNwZWNpZnlpbmcgc25tcF9lcnJubyBfb3V0c2lkZV8gdGhlIGxpYnJhcnkuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6MjY6MjkKICAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciBmcm9tIHdpdGhpbiB0aGUgbGlicmFyeS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDozNzo0OQogICAgbWliLmMgLSByZXN0b3JlIGxpbmUgc3RvbXBlZCBpbiBteSBsYXN0IHVwZGF0ZS4KICAgIHJlYWRfY29uZmlnLmMgLSBkcm9wIHVudXNlZCB2YXJpYWJsZS4KICAgIHNubXBfYXBpLmMgLSBuZXcgbWV0aG9kIHNubXBfb3Blbl9leCByZXBsYWNlcyBzZXQgaW50ZXJuYWwgaG9vayBmdW5jdGlvbnMuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6Mzk6MDkKICAgIEZpeHVwcyBmb3IgYnVpbGRpbmcgd2l0aCBNU1ZDKysuIChubyBocHV4LmMsIHN1cHBseSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTKS4KCm1zbGlmY2FrIDIxIE9jdCA5OSAxMDo0MTozOAogICAgcmVtaW5kZXJzIGZvciBzbm1wX3Nlc3NfcGVycm9yIHVzYWdlIGFmdGVyIG9wZW4uCiAgICBzbm1wdGFibGUuYyAtIG9wZW4vY2xvc2Ugc2Vzc2lvbiBmcm9tIG1haW4oKS4KICAgIG5ldHN0YXQvbWFpbi5jIC0gdXNlIHNubXBfc2Vzc19wZXJyb3IuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6NDI6MjgKICAgIHVzZSBzbm1wX29wZW5fZXguCgptc2xpZmNhayAyMSBPY3QgOTkgMTI6MDk6NTEKICAgIEZpeCBCVUcjNzgKCm1zbGlmY2FrIDIxIE9jdCA5OSAxMjozMToyOAogICAgc21hbGwgcGF0Y2ggZnJvbSBNLiBMYXVra2FuZW4gdG8gZml4IEhQIGFDQyBidWlsZC4KCm5iYSAyMSBPY3QgOTkgMTI6NTI6MjYKICAgIC0gbWVtb3J5X3NvbGFyaXMuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCgpuYmEgMjEgT2N0IDk5IDEyOjU0OjQxCiAgICAtIG1lbW9yeV9zb2xhcmlzMi5jOiByZW9yZGVyIGNvbXB1dGF0aW9ucyB0byBhdm9pZCBvdmVyZmxvdy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOToxNgogICAgSW4gZml4aW5nIGJ1ZyAjODMgb24gNC4wIGJyYW5jaCwgZGlzY292ZXJlZCB0aGF0IDMuNiBicmFuY2gKICAgIGRpZCBub3QgaGF2ZSAib2N0ZXQiIHRva2VuIHN1cHBvcnQuICBBZGRlZC4KCm1zbGlmY2FrIDIyIE9jdCA5OSAwNjoyOTo1MgogICAgRml4IEJVRyAjODMuCgptc2xpZmNhayAyMiBPY3QgOTkgMDc6Mzk6MDEKICAgIFJlbW92ZWQgZHVwbGljYXRlZCB2YXJpYWJsZSBpbiBhIG5lc3RlZCBibG9jay4gQVJnIQoKaGFyZGFrZXIgMjIgT2N0IDk5IDA5OjU5OjM5CiAgICAtIChtaWIuYyk6IGVuYWJsZSBoZXggc3RyaW5ncyBpbnNpZGUgb2lkcy4KCm1zbGlmY2FrIDIyIE9jdCA5OSAxMDoxMjoyNgogICAgRGlzcGxheSBfc29tZV8gb2N0ZXQgc3RyaW5nIGluZGljZXMgb2Ygb2JqZWN0IGlkZW50aWZpZXJzIGFzIHF1b3RlZCBwcmludGFibGUuCiAgICBTaG91bGQgYmUgZXhwYW5kZWQgdG8gaGFuZGxlIG90aGVyIElOREVYIHR5cGVzLgoKaGFyZGFrZXIgMjIgT2N0IDk5IDE1OjI4OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGtleXRvb2xzLmMsCiAgICAgIGtleXRvb2xzLmgsIHNjYXBpLmMpOgogICAgICAtIHVzZSBvcGVuc3NsIGZvciBtZDUvc2hhIHN1cHBvcnQgKGZyb20gT2xhZnVyIEd1ZG11bmRzc29uKS4KCmhhcmRha2VyIDIyIE9jdCA5OSAxNToyOTozOAogICAgLSAobWliLmMpOiBwcmludCBzdHJpbmcgYmFzZWQgT0lEcyBiZXR0ZXIuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjQ6MDIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU05NUENPTkZQQVRIIHVzZXMgc3lzY29uZmRpciBub3QgZGF0YWRpci4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNDoyMQogICAgLSAoUkVBRE1FLnNubXB2Myk6IHR5cG8uCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjU6MzUKICAgIC0gKG1pYi5jKTogZml4ICJtaWJzIiBhbmQgIm1pYmRpcnMiIC5jb25mIGRpcmVjdGl2ZXMgdG8gcHJvcGVybHkKICAgICAgaGFuZGxlIG11bHRpcGxlIGNhbGxzIChhZGRpdGl2ZSkgYW5kICcrJ3MgYW5kIHRoaW5ncy4KCmhhcmRha2VyIDI0IE9jdCA5OSAwODoyNzoyOAogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gcHJlbWliIGRpcmVjdGl2ZXMgd2VyZW4ndCBnZXR0aW5nIHJlYWQgZHVlIHRvIGEgbWlzc2luZyBuZWdhdGlvbiAoISkuCiAgICAgIC0gbW9yZSBwYXJzaW5nIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGFkZGVkLgoKbXNsaWZjYWsgMjUgT2N0IDk5IDA4OjA2OjMyCiAgICBtaW5vciByZXdvcmsgdG8gY2xhcmlmeSBzaWduZWQgY29tcGFyZXMgYW5kIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDI1IE9jdCA5OSAxMzozOToyNwogICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBhIG1lbW9yeSBsZWFrIGluIHRoZSBMaW51eCBwYXJ0CgpuYmEgMjUgT2N0IDk5IDEzOjQxOjAxCiAgICAtIGNvbmZpZ3VyZS5pbiwgcHJvYy5jOiBzdXBwb3J0IGZvciBGcmVlQlNEIDIuMSB3aGVyZSBwcyBkb2Vzbid0IGhhdmUgYyBmbGFnCgpuYmEgMjUgT2N0IDk5IDEzOjUxOjIyCiAgICAtIGhyX3N5c3RlbS5jOiBwbGF5IGl0IHNhZmUgd2hlbiBubyB1dG1wIGZpbGUgZXhpc3RzCgpuYmEgMjUgT2N0IDk5IDEzOjUzOjI2CiAgICAtIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzogc3VwcG9ydCBmb3IgdHJhcGhhbmRsZSBERUZBVUxUCgpuYmEgMjUgT2N0IDk5IDEzOjU2OjI2CiAgICAtIFJVTlRFU1RTLCBURVNUQ09ORi5zaCBldmFsX29uZXNjcmlwdC5zaCBldmFsX3Rvb2xzLnNoOiBzdXBwb3J0IG5vbi1iYXNoCiAgICAJc2hlbGxzIChlY2hvIC1uIHZzIGVjaG8gXFxjKS4gRG9uJ3QgcmVxdWlyZSAuIGluIFBBVEgKCm5iYSAyNSBPY3QgOTkgMTM6NTg6MDMKICAgIC0gc25tcHRyYW5zbGF0ZS5jOiBsZXQgJzonIGluIE9JRCBkbyAidGhlIHJpZ2h0IHRoaW5nIgoKbmJhIDI1IE9jdCA5OSAxMzo1OTowNQogICAgLSBwYXNzLmM6IGRvIGFuIGh0b25sIHdoZW4gcGFzc2luZyBpcCBhZGRyZXNzCgpuYmEgMjUgT2N0IDk5IDE0OjA3OjExCiAgICAtIHNubXBkZWx0YS5jOiBDT1VOVEVSNjQgd2lsbCBkZXJlZmVyZW5jZSBmcmVlZCBwb2ludGVyCgpuYmEgMjUgT2N0IDk5IDE0OjA4OjI1CiAgICAtIHNubXBkLmNvbmYuNS5kZWY6IG1pbm9yIHF1aXJrCgpuYmEgMjUgT2N0IDk5IDE0OjEzOjU3CiAgICAtICo6IGNvbmZpZ3VyZSBzdXBwb3J0IGZvciBkbWFsbG9jIG1hbGxvYyBkZWJ1Z2dlciAod3d3LmRtYWxsb2MuY29tKQoKaGFyZGFrZXIgMjUgT2N0IDk5IDE0OjM1OjUxCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBlbmFibGUgLXAgcHJpbnRpbmcgb2Ygb25seSBhIHNlY3Rpb24gb2YgdGhlIG1pYiB0cmVlLgoKaGFyZGFrZXIgMjUgT2N0IDk5IDE2OjA1OjAzCiAgICAtIChzbm1wdHJhbnNsYXRlLmMsIHBhcnNlLmMpOiBoYWNrIHRvIGRvIHdpbGQgY2FyZCBzZWFyY2hlcyBmb3IgYSBtaWIgbm9kZS4KCm1zbGlmY2FrIDI2IE9jdCA5OSAxMDozNDo0MAogICAgQWxsb3cgdW5zaWduZWQgcmFuZ2UgZm9yIGNvdW50ZXIvZ2F1Z2UvdGltZXRpY2tzIChmaXggQlVHIzg0IHBlciBTYW5kZXIgU3RlZmZhbm4pLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjMzOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IGZpeCB1cCB1Y2Qtc25tcC1jb25maWcuaCBidWlsZGluZy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNDoxMAogICAgLSAoc25tcF9hZ2VudC5oKTogcHJvdG90eXBlIGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzQ6NTUKICAgIC0gKE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgYSBoZWFkZXIgZmlsZSB0bwogICAgICB3cmFwIGFyb3VuZCB0aGUgdmFyaW91cyBhZ2VudCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM1OjI3CiAgICAtIChtYXN0ZXJfYWRtaW4uYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc28geW91IGNhbiB3YXRjaCBzdHVmZiByZWdpc3Rlci4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjoyMQogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMywgZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgICAgZGVmYXVsdF9zdG9yZS4zLmgsIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjMpOgogICAgICAtIG5ldyBtYW51YWwgcGFnZXM6IGRlZmF1bHRfc3RvcmUuMywgc25tcF9hZ2VudF9hcGkuMy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNjo1NQogICAgLSAoZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBtYXJrIHJlZ2lvbnMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRlZmF1bHRfc3RvcmUuMyBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNzo0OQogICAgLSAobGNkX3RpbWUuaCk6IGRlZmluZSBhbmQgY29tbWVudCBMQ0RfVElNRV9TWU5DX09QVCBiZXR0ZXIuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6Mzg6MDYKICAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGQgZGVmYXVsdF9zdG9yZS5oIGFuZCBzbm1wX2xvZ2dpbmcuaAoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjAxCiAgICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkZWQgbW9yZSBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjEyOjU5CiAgICAtIChtaWIuYyk6IGJhaWwgaWYgd2UgY2FuJ3QgZmluZCBhbiBpbmRleCBpbiB0aGUgbWliIHRyZWUgdG8gdXNlIGZvcgogICAgICBicmVha2luZyBhbiBvaWQgYXBhcnQuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTc6MzA6MjUKICAgIC0gKHZhY21fdmFycy5jKTogd2F0Y2ggZm9yIG51bGwgY29tbXVuaXRpZXMgd2hlbiBwcmludGluZyBkZWJ1ZyBzdGF0ZW1lbnRzLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA0OjU1OjUyCiAgICBEYXZlJ3MgY29tbWVudCBhYm91dCBwcmVfcGFyc2UgZXRjLiB3YXMgdG9vIGdvb2QgdG8gbG9zZSBpbiBlLW1haWwuCgptc2xpZmNhayAyOCBPY3QgOTkgMDU6MjM6MDUKICAgIHVfaW50OC8xNi8zMl90IHR5cGVzIG5vIGxvbmdlciBuZWVkZWQgZm9yIFdJTjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNToyNTowMgogICAgT29wcyEgcmVzdG9yZSB2ZXJzaW9uIHIxLjEzMS4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNjo0OTowMwogICAgcmVwaHJhc2Ugc3VidHJlZSBub3QgZm91bmQgY29kZSBpbiBfZ2V0X3N5bWJvbC4KCmhhcmRha2VyIDI4IE9jdCA5OSAxMzo0Nzo1NwogICAgLSAoc25tcHRvc3FsKTogZGVidWdnaW5nIGFuZCBlcnJvciBjaGVja2luZy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwODo1ODoxNwogICAgLSAobWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IFBhdGNoIGZyb20gS2VpdGggVHVzb246CiAgICAgIC0gbWlzYyBmaXhlcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODoxMQogICAgLSAoRkFRKTogYWRkZWQgcmVmZXJlbmNlIHRvIGFuIGFib3ZlIHF1ZXN0aW9uIGZvciBwZXJsIGluc3RhbGxhdGlvbi4KCmhhcmRha2VyIDI5IE9jdCA5OSAwOToyODo0MwogICAgLSAodWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIHZhcl9zdHJ1Y3QuaCBhbmQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjkgT2N0IDk5IDA5OjUyOjE4CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogdHdvIG5ldyBwcmludGluZyBvcHRpb25zOgogICAgICAtIHByaW50TnVtZXJpY09pZHMKICAgICAgLSBwcmludE51bWVyaWNFbnVtcwoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjA2OjAzCiAgICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBzbm1wIG92ZXIgVENQIG9wdGlvbnM6IC1UIFRDUC4KICAgICAgLSBuZXcgcXVpY2sgcHJpbnQgb3B0aW9uczogLXFvIC1xZSBmb3IgbnVtZXJpYyBvaWRzIGFuZCBlbnVtcy4KCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxMzo0NAogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLVQgYW5kIC1xW29lXQoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjAxCiAgICAtKGRlZmF1bHRfc3RvcmUuM3ssLmh9KTogcmVtb3ZlZCBmcm9tIENWUyBzaW5jZSB0aGV5IGFyZSBidWlsdAoKaGFyZGFrZXIgMjkgT2N0IDk5IDEwOjE1OjQzCiAgICAtICguY3ZzaWdub3JlKTogaWdub3JlIGRlZmF1bHRfc3RvcmUuM3ssLmh9CgpoYXJkYWtlciAyOSBPY3QgOTkgMTY6NTg6MDcKICAgIC0gKHRrbWliKTogbWFrZSBpdCBkbyBzbm1wdjMuICBBZGRlZCBtYW55IHRoaW5ncyB0byB0aGUgb3B0aW9ucyBtZW51LgoKbWFyeiAyOSBPY3QgOTkgMTk6NTQ6MTAKICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgc2V0dXAgY29uZGl0aW9uYWwgb24gYXBwIHR5cGUgdG8gcHJldmVudCBhcHBzIGZyb20gZWFzaWx5IGVuZGluZyB1cCB3aXRoIHRoZSBzYW1lIGVuZ2luZUlEIGFzIGFnZW50IG9uIHNhbWUgaG9zdAoKaGFyZGFrZXIgIDEgTm92IDk5IDEzOjE4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcF9hbGFybS5jKToKICAgICAgLSBkb24ndCBicmVhayBvaWRzIGludG8gcGllY2VzIGlmIHF1aWNrX3ByaW50IGlzIHR1cm5lZCBvbi4KICAgICAgLSBkaXR0byBpZiB0aGUgbmV3IGRlZmF1bHRfc3RvcmUgb3B0aW9uIGlzIHR1cm5lZCBvbi4KICAgICAgLSBtYWRlIGEgZGVmYXVsdF9zdG9yZSBvcHRpb24gdG8gbm90IHVzZSBzaWdhbHJtIGZvciBzbm1wX2FsYXJtcy4KCmhhcmRha2VyICAyIE5vdiA5OSAwOTo1NzozMQogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG90aGVyIGhlYWRlciBmaWxlcyBuZWVkZWQgYnkgU05NUC5wbS4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTozNzowNQogICAgVXNlIEhBVkVfU1REQVJHX0ggd2hlbiBkZWNpZGluZyB0byB1c2UgdmFyYXJncyB2cyBBTlNJLUMgcHJvdG90eXBlcy4KCm1zbGlmY2FrICAyIE5vdiA5OSAxNTo0NjowOAogICAgSW5zdGFsbCBzbm1wX2FnZW50X2FwaS4zCgptc2xpZmNhayAgMyBOb3YgOTkgMDY6MTE6MDMKICAgIGRlY2xhcmUgZmluZF9iZXN0X3RyZWVfbm9kZSBmb3IgTVNWQyBidWlsZC4KCm1zbGlmY2FrICAzIE5vdiA5OSAwNjo0OTozMAogICAgTmVhciBsaW5lIDY2MyA6IGNsb3NlKGZkKSBiZWZvcmUgaW52b2tpbmcgd2FpdF9vbl9leGVjCgptc2xpZmNhayAgMyBOb3YgOTkgMTM6MTg6NTkKICAgIEZvbGxvd2luZyBjYWxsIHRvIGZkb3BlbiAobmVhciBnZXRfZXhlY19vdXRwdXQpLCBkbyBub3QgY2xvc2UoZmQpLgoKbXNsaWZjYWsgIDMgTm92IDk5IDEzOjIwOjE2CiAgICBGaXggYnVpbGQgcHJvYmxlbSBvbiBMaW51eCBSZWRIYXQgNi4wIDoga2V5IG9mZiBHTlVfTElCUkFSWSB2YWx1ZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwMjo0MjoxNQogICAgUGF0Y2ggdG8gYnVpbGQgQlNEL09TIDQuMC4xOyBmcm9tIEJlcnQgRHJpZWh1aXMgLS0gZHJpZWh1aXNAcGxheWJlaW5nLm9yZwoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjE0OjI4CiAgICBNb3JlIFNURENfSEVBREVSUyBjbGVhbnVwOiB1c2UgSEFWRV9TVFJJTkdfSCwgSEFWRV9TVERMSUJfSCBpbnN0ZWFkLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA0OjMzOjMyCiAgICBDaGFuZ2UgZXhhbXBsZSBhd2F5IGZyb20gU1REQ19IRUFERVJTLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA1OjA4OjMxCiAgICBFdmVyeSAjZGVmaW5lIGlzIGdpdmVuIGEgdmFsdWU7IHNldCB0byAxIGlmIG5vIHZhbHVlIHdhcyBzcGVjaWZpZWQuCgptc2xpZmNhayAgNCBOb3YgOTkgMDU6MTM6MDUKICAgIEZpcnN0IHBhc3Mgc3VwcG9ydCBmb3IgRnJlZUJTRCA0LjAgW3Byb2JsZW1zIHdpdGggcHJvYyB0YWJsZSBsb29rdXBzXS4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNjoxMTo0OAogICAgVXNlIHN5c2N0bChDVExfVk0uLikgdG8gZ2V0IHZpcnR1YWwgbWVtb3J5IHN0YXRzLgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjAzOjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYyk6CiAgICAgIC0gZGVmaW5lIElOX1VDRF9TTk1QX1NPVVJDRSBpbiBjb25maWcuaCBidXQgbm90IGluIHVjZC1zbm1wLWNvbmZpZy5oLgogICAgICAtIG1vdmUgdWNkLXNubXAtY29uZmlnLmggdXAgaW4gdGhlIGJ1aWxkIG9yZGVyIGJlZm9yZSBzdWJkaXJzLgogICAgICAtIE1ha2UgZGVmYXVsdCBNSUJESVJTIHNlYXJjaCBwYXRoIGluY2x1ZGUgJEhPTUUvLnNubXAvbWlicy4KICAgICAgLSBNYWtlIE1JQkRJUlMgcGFyc2luZyBoYW5kbGUgJEhPTUUgdmFyaWFibGVzIGluIGl0LgoKaGFyZGFrZXIgIDQgTm92IDk5IDEwOjA0OjQyCiAgICAtIChtaWIyYy5jb25mKTogaW5jbHVkZSBoZWFkZXJzIGZvciBjb21waWxhdGlvbiBmb3IgYm90aCBpbnRlcm5hbCBhbmQKICAgICAgZXh0ZXJuYWwgdG8gdGhlIHVjZC1zbm1wIHNvdXJjZS4KCm1zbGlmY2FrICA0IE5vdiA5OSAxMDoxOTozNQogICAgUmVkbyBGcmVlQlNEIDQuMDogZGVmaW5lIGZyZWVic2QzIGluIHMvZnJlZWJzZDQuaDsgcmVkdWNlICJkZWZpbmUiIHRocmFzaGluZy4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDoyODo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBjbWQuMSk6IG1vdmUgLXEgZmxhZ3MgdG8gLU8uCgptc2xpZmNhayAgNCBOb3YgOTkgMTM6NDM6NDAKICAgIFNwZWVkIHVwIHNwcmludF92YXJpYWJsZTogaGFsdmUgdGhlIG51bWJlciBvZiBjYWxscyB0byBnZXRfc3ltYm9sLgoKbXNsaWZjYWsgIDUgTm92IDk5IDA2OjIyOjUyCiAgICBTYXkgZ29vZGJ5ZSB0byBTTk1QX01BTExPQywgbWFsbG9jX3plcm8sIHhjYWxsb2MsIHhtYWxsb2MsIGFuZCB4c3RyZHVwLgogICAgUmVzcGVjdGl2ZWx5IHJlcGxhY2VkIHdpdGggY2FsbG9jLCBjYWxsb2MsIGNhbGxvYywgbWFsbG9jLCBhbmQgc3RyZHVwLgoKbmJhICA5IE5vdiA5OSAwMTo1MDowOQogICAgLSBtaWIuYyxwYXJzZS5jOiBtYWtlIGVycm9yIHJlcG9ydGluZyBpbiBwYXJzZXIgd29yayBhY2NvcmRpbmcgdG8gc3BlYyAoLVBlKQogICAgCXNob3cgZGVmaW5pbmcgbW9kdWxlcyBpbiBzbm1wdHJhbnNsYXRlIC1kCiAgICAJdXNlIGRzX3RvZ2dsZV9ib29sZWFuCgpuYmEgIDkgTm92IDk5IDEyOjU5OjUyCiAgICAtIHNubXB0cmFwZC5jLHNubXB0cmFwZF9oYW5kbGVycy5jOiBtYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrIDUuMAogICAgCShidXQgbm8gaGFuZGxlcnMgKHlldCkpCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6MTcKICAgIC0gKHNubXBkLmMpOiBmaXggLUguCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDI6NDEKICAgIC0gKHVjZF9zbm1wLmgpOiByZXF1aXJlIHRoZSBERU1PLU1JQiAoanVzdCBmb3IgdHV0b3JpYWwgcHVycG9zZXMpLgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjA5OjIxCiAgICAtICh2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOiBzaW1wbGUgbmV3IC5jb25mIHRva2Vuczogcm9jb21tdW5pdHksIHJ3Y29tbWl0eS4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowOTo0MAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBERU1PLU1JQi4KCm5iYSAgOSBOb3YgOTkgMTU6MTY6MDMKICAgIC0gdmFyaW91czogYWRhcHQgdG9vbHMgdG8gdXNlIGdldG9wdCAoYW5kIHB1dCBvbmUgaW4gZm9yIFdpbjMyKQoKbmJhICA5IE5vdiA5OSAyMjoyMDo1MgogICAgLiBzbm1wX3BhcnNlX2FyZ3MuYzogYSBnbGl0Y2ggaW4gdGhlIGNvbnZlcnNpb24gdG8gZ2V0b3B0ICh0aGFua3MgdG8KICAgIAlkcmllaHVpc0BwbGF5YmVpbmcub3JnKQoKbmJhICA5IE5vdiA5OSAyMzozMDowMwogICAgLSBnZXRvcHQuaDogYXJndW1lbnRzIHRvIGdldG9wdCBkaWQgbm90IG1hdGNoIHRob3NlIGluIGdldG9wdC5jCgpuYmEgMTAgTm92IDk5IDA4OjMwOjEzCiAgICAtIHdpbjMyLyo6IGZpeGVzIHRvIHRoZSBWQysrIGJ1aWxkIHByb2plY3RzCgpuYmEgMTAgTm92IDk5IDA4OjMyOjAwCiAgICAtIHdpbjMyLyo6IFZDKysgcHJvamVjdCB1cGRhdGVzCgpkYXZlcyAxMCBOb3YgOTkgMDg6NTc6MDAKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMpOiBPbmx5IHNldCB1cCB0cmFwIHNpbmtzIG9uIHRoZSBtYXN0ZXIgYWdlbnQKCmRhdmVzIDEwIE5vdiA5OSAwODo1ODozOAogICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5bY2hdKTogbWlub3IgcmUtc3RydWN0dXJlIHRvIGFsbG93IHN1YmFnZW50IHRyYXAgInNpbmtzIgoKZGF2ZXMgMTAgTm92IDk5IDA4OjU5OjQ1CiAgICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBBZ2VudFggbm90aWZ5IHN1cHBvcnQKCm5iYSAxMCBOb3YgOTkgMTI6MjA6NDcKICAgIC0gd2luMzIvKi5kc3A6IHlldCBhbm90aGVyIHJvdW5kIG9mIG1ha2luZyB0aGlzIGNyYXAgd29yawoKbmJhIDEwIE5vdiA5OSAxNToyOToxOAogICAgLSBhcHBzLyo6IGNoYW5nZXMgZm9yIGdldG9wdCB1c2FnZSwgYW5kIHJld29ya2luZyBvZiBzbm1wX3BhcnNlX2FyZ3MKCm5iYSAxMCBOb3YgOTkgMjI6MTI6MDgKICAgIC0gd2luMzIvKjogY2xlYW4gdXAgcmVwb3NpdG9yeSBmaWxlcywgYW5kIGFkZCBwcm9wZXIgLmN2c2lnbm9yZSBmaWxlcwoKZGF2ZXMgMTEgTm92IDk5IDAzOjM3OjU5CiAgICAtIChhZ2VudHgvY2xpZW50LmMpOiBTaWxseSB0eXBvIGluIHN0YXJ0IHRpbWUgc3luY2hyb25pc2F0aW9uCgpuYmEgMTEgTm92IDk5IDIyOjE0OjI3CiAgICAtIHNubXBjbWQuMTogdXBkYXRlIG1hbiBwYWdlIHRvIGNvcnJlc3BvbmQgdG8gdGhlIG5ldyBnZXRvcHQgc2l0dWF0aW9uCiAgICAJTm90ZTogZXZlbiB0aG91Z2ggc29tZSBvcHRpb25zIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhpcwogICAgCXBhZ2UsIHRoZXkgc3RpbGwgd29yayEKCm5iYSAxMSBOb3YgOTkgMjI6NTA6MDAKICAgIC0gc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jOiBhbGlnbm1lbnQgb2Ygb3B0aW9uIGNvZGUuCiAgICAJU29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIHNubXB0cmFuc2xhdGUgLWQgb3V0cHV0LgoKZGF2ZXMgMTIgTm92IDk5IDA4OjQ2OjMzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBQcm92aWRlIGEgdW5pcXVlIElEIGZvciBhbGwgaW5jb21pbmcgUERVcwoKbWFyeiAxMiBOb3YgOTkgMTM6MDE6MDgKICAgICAobGNkX3RpbWUuW2NoXSwgc25tcHVzbS5jKTogZml4IGVuZ2luZXRpbWUgdXBkYXRlIGFsZ29yaXRobSB0byBjb25mb3JtIHRvIHNwZWMgcmZjMjU3NCAzLjIuNy5iLjEKCm5iYSAxNCBOb3YgOTkgMDE6NDg6NTEKICAgIC0gc25tcHRhYmxlLCBzbm1wX3BhcnNlX2FyZ3M6IGFsbG93IHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBvcHRpb25zIHRvCgpuYmEgMTQgTm92IDk5IDAxOjUxOjU3CiAgICAtIHNubXB0YWJsZTogYWRkIGluIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBzbm1wdGFibGUgb3B0aW9ucyBiZXR3ZWVuCiAgICAJdGhlIG5vcm1hbCBvcHRpb25zLgoKbmJhIDE0IE5vdiA5OSAwMTo1MzoxNgogICAgLSBzbm1wYnVsa2dldDogbmV3IHRvb2wgdG8gaXNzdWUgYSBzaW5nbGUgR0VUQlVMSyByZXF1ZXN0CgpuYmEgMTQgTm92IDk5IDAxOjU0OjE3CiAgICAtIHNubXBfcGFyc2VfYXJnczogY2hhbmdlcyB0byBzdXBwb3J0IG11bHRpLXZhbHVlZCBvcHRpb25zCgpuYmEgMTQgTm92IDk5IDAxOjU5OjIwCiAgICAtIG1pYnMvKiwgdmFjbV92YXJzLmg6IHVwZGF0ZSB0aGUgbWliIGZpbGVzIHRvIHJmYyAyNTcxLTI1NzUuIEFsc28gYWRkCiAgICAJU05NUF9DT01NVU5JVFlfTUlCIGZyb20gdGhlIGNvZXggZHJhZnQuCgpuYmEgMTQgTm92IDk5IDAyOjAwOjAwCiAgICAtIHZhY21fdmFycy5jOiBraWxsIGEgd2FybmluZwoKbmJhIDE0IE5vdiA5OSAwMjowMTozNwogICAgLSBwYXNzLmMsIHNubXBkLmNvbmYuNS5kZWY6IGFkZCBhbiBVTlNJR05FRCByZXR1cm4gdHlwZQoKbmJhIDE0IE5vdiA5OSAwMjowNDo0NgogICAgLSBtaWIuYywgc25tcHRyYW5zbGF0ZS5jOiBtb3ZlIHRoZSBNSUI6aWQgaGFuZGxpbmcgaW5zaWRlIHJlYWRfb2JqaWQgZm9yCiAgICAJY29uc2lzdGVuY3kuIEFsc28gZml4ZXMgYSBidWZmZXIgb3ZlcnJ1biBpbiBtaWIuYwoKbmJhIDE0IE5vdiA5OSAwMjo0MjozOAogICAgLSBTTk1QdjItQ09ORi50eHQ6IGNvbW1lbnQgb3V0IHRoZSBJTVBPUlQgY2xhdXNlCgpuYmEgMTQgTm92IDk5IDA2OjEyOjAzCiAgICAtIHNubXB0cmFwZC5jOiBhZGQgdGhlIG5ldyBjb21tb24gLU8gb3B0aW9uIHNldAoKbmJhIDE0IE5vdiA5OSAwNjoxNTowMQogICAgLSBzbm1wdHJhcGQuODogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKCm5iYSAxNCBOb3YgOTkgMDY6MzI6MjUKICAgIC0gaXBjNjogQWRkIHRoZSBJUHY2IGNvZGUgZnJvbSB0aGUgS2FtZSBwcm9qZWN0LiBJIGhhdmUgb25seSBtYXNzYWdlZAogICAgCWl0IHNvIG11Y2ggYXMgdG8gc3RpbGwgY29tcGlsZSBvbiBub24tSVB2NiBzeXN0ZW1zLCBhbmQgZGV0ZWN0CiAgICAJTGludXgsIElOUklBLCBTb2xhcmlzIElQdjYuIE5vIGNvZGUgZm9yIHRoZW0geWV0LiBPcmlnaW5hbAogICAgCWF1dGhvcjogaXRvanVuQGlpamxhYi5uZXQKCmRhdmVzIDE1IE5vdiA5OSAwNzo1NjowNgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggaGFuZGxpbmcgb2YgZmFpbGVkIEdFVC9TRVQgcmVxdWVzdHMKCm1zbGlmY2FrIDE1IE5vdiA5OSAwODoyOTowNgogICAgRml4IGRlc2NyaXB0aW9uIG9mIHJlYWRfb2JqaWQgcmV0dXJuIHZhbHVlLgoKbmJhIDE1IE5vdiA5OSAxNDowMDoyMAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZnVydGhlciBlcnJvciBjaGVja2luZywgY291cnRlc3kgbXNsaWZjYWsKICAgICAgc25tcGJ1bGtnZXQuYzogbmVlZHMgI2luY2x1ZGUgPGdldG9wdC5oPiAoVGhhbmtzIHRvIFJvYmVydCBTdG9yeSkKCm5iYSAxNSBOb3YgOTkgMTQ6MDM6MzYKICAgIC0gbWlicy86IHJlcGxhY2UgUkZDMTI3MS1NSU4udHh0IHdpdGggUk1PTi1NSUIudHh0IChSRkMgMTc1NyB2ZXJzaW9uKQoKbmJhIDE1IE5vdiA5OSAxNDowNTo1NwogICAgLSBwYXJzZS5jOiBmaXggYSBzcGVsbGluZyBlcnJvciBpbiB0aGUgTUlCIHJlcGxhY2VtZW50IHRhYmxlLgoKbmJhIDE1IE5vdiA5OSAxNDowOToyOQogICAgLSAuY3ZzaWdub3JlOiB1cGRhdGVzIHRvIGtlZXAgY3ZzIHNpbGVudCBhYm91dCBnZW5lcmF0ZWQgZmlsZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTg6NDYKICAgIC0gKEZBUSwgUkVBRE1FKTogbmV3IG1pcnJvciBpbiBBdXN0cmFsaWEuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTk6MjIKICAgIC0gKG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jKTogbW92ZSBzdWJhZ2VudF9wcmVfaW5pdCgpIHRvIGluaXRfYWdlbnQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToxOTo0NwogICAgLSAoVE9ETyk6IG1lbW9yeSBpbnQgLT4gdWludC4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMDoxMAogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNldCB0byAnXDAnIGluc3RlYWQgb2YgTlVMTCBmb3IgLVdhbGwuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6MDcKICAgIC0gKG1pYjJjLCB0a21pYik6IHJlbW92ZSAtdy4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMToyOAogICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IGRvbid0IGNhbGwgc3ViYWdlbnRfcHJlX2luaXQoKS4KCmhhcmRha2VyIDE1IE5vdiA5OSAxNToyMTo1NwogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZGVidWdnaW5nIHN0YXRlbWVudHMgaW5zZXJ0ZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjI6MjQKICAgIC0gKGFzbjEuYywgYXNuMS5oKTogbmV3IGZ1bmN0aW9uOiBhc25fY2hlY2tfcGFja2V0KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MzY6MjYKICAgIC0gKHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYyk6CiAgICAgIC0gYWRkIGRlZmF1bHRfc3RvcmUuaAoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjM4OjI1CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbW92ZSBtb3JlIG9wdGlvbnMgdG8gdGhlIGRzXyogcm91dGluZXMuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6NDE6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAgICAtIGltcGxlbWVudCBzdXBwb3J0IGZvciBUQ1AgYnJva2VuIFNOTVAgcGFja2V0cyBieSBzdG9yaW5nIGJ1ZmZlcnMKICAgICAgICBhbmQgZGVhbGluZyB3aXRoIHBpZWNlcyBvZiBpbmNvbWluZyBkYXRhIHRpbGwgd2UgaGF2ZSBhIGZ1bGwgcGFja2V0LgoKbXNsaWZjYWsgMTUgTm92IDk5IDE2OjQzOjI1CiAgICBEb24ndCBhZGQgTlVMTCB2YXJiaW5kIHdoZW4gRU5ET0ZNSUJWSUVXIGlzIHJlYWNoZWQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTc6NDE6MTAKICAgIC0gKHNubXBfYWdlbnQuYywgbWFzdGVyLmMsIHByb3RvY29sLmMsIHByb3RvY29sLmgsIHN1YmFnZW50LmMsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1ha2UgVENQIHN1cHBvcnQgYmV0dGVyIGZvciBhZ2VudHguICBTdGlsbCBoYXMgYSBwcm9ibGVtIChJIGJyb2tlIGFnZW50eCkuCgptc2xpZmNhayAxNSBOb3YgOTkgMjE6NTc6MzYKICAgIEZpeCBidWcjNzU6IGJ1aWxkIC0td2l0aG91dC1vcGFxdWUtdHlwZXMKCm1zbGlmY2FrIDE2IE5vdiA5OSAwMzozNjowOQogICAgRml4IHNwZWxsaW5nIG1pc3RlYWsuCgpuYmEgMTYgTm92IDk5IDA2OjIxOjI1CiAgICAtIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jOiByZWRvIHRoZSBzbm1wdHJhbnNsYXRlIG9wdGlvbnMKICAgIAl0byBmb2xsb3cgdGhlIGNvbW1vbiBvcHRpb24gc2V0LiBJc3N1ZSB3YXJuaW5ncyB3aGVuIHNvbWVvbmUKICAgIAl1c2VzIHRoZSBvbGQgZm9ybSwgYWR2aXNpbmcgYWJvdXQgdGhlIG5ldy4KCm1zbGlmY2FrIDE2IE5vdiA5OSAwODo0ODozMQogICAgRW1icmFjZSBhbGwgSFAtOTAwMC82eHgsN3h4LCA4eHggc2VyaWVzIHBsYXRmb3Jtcywgd2l0aG91dCByZWdyZXRzLgoKZGF2ZXMgMTYgTm92IDk5IDA5OjEzOjU5CiAgICAtIChzbm1wbGliL2FzbjEuYyk6IEZpeCBlbmNvZGluZyBvZiByb290IE9JRHMuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjQ6NTkKICAgIC0gKHByb3RvY29sLmMpOiBhZGQgdGhlIGhlYWRlciBsZW5ndGggdG8gdGhlIHBhY2tldCBsZW5ndGggZXN0aW1hdGUuCgpoYXJkYWtlciAxNiBOb3YgOTkgMTA6MjY6MDIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHRoZSBUOiBmbGFnIGZvciAtVCB0byBnZXRvcHQKCm1zbGlmY2FrIDE2IE5vdiA5OSAxNDo0MTo1MAogICAgTVNWQyB0b3VjaHVwczoKICAgIEFkZGVkIHNubXB0cmFwZCBwcm9qZWN0IC5EU1AgZmlsZTsgQWxsIC5EU1tQV10gZmlsZXMgQ1ItTEYgbGluZSB0ZXJtaW5hdGVkOwogICAgRml4IHdhcm5pbmdzIGluIGFzbjEuYyBhbmQgc25tcF9hcGkuYzsgUmVtb3ZlIHVudXNlZCB2YXIgaW4gc25tcHRyYW5zbGF0ZS5jLgoKbXNsaWZjYWsgMTYgTm92IDk5IDE0OjU2OjU5CiAgICBCdWlsZCB3aXRoIGdldG9wdC4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNTo1OToxNQogICAgUmVwbGFjZSB1X2ludDE2X3Qgd2l0aCBtb3JlIHVuaXZlcnNhbGx5IHN1cHBvcnRlZCB1X3Nob3J0LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM1OjAzCiAgICBQcm9qZWN0IGZpbGUgZm9yIGJ1aWxkaW5nIHNubXBidWxrZ2V0IHVzaW5nIE1TVkMrKyBncmF0aXMgUm9iZXJ0IFN0b3J5LgoKbXNsaWZjYWsgMTcgTm92IDk5IDA3OjM2OjU4CiAgICBBZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBzIHRvIGJ1aWxkLgoKaGFyZGFrZXIgMTcgTm92IDk5IDExOjU1OjQxCiAgICAtIChkc19hZ2VudC5oLCBrZXJuZWwuYywgc25tcGQuYywgc25tcGQuMS5kZWYpOgogICAgICAtIHJ1biB0aW1lIHJvb3RsZXNzIHJ1bm5pbmcgc3VwcG9ydCBmb3Igc25tcGQsIGJ5IHJlcWVzdCBvZiBKb2UuICgtcikKCmhhcmRha2VyIDE3IE5vdiA5OSAxMjoyMToyNgogICAgLSAoc25tcHRvc3FsKToKICAgICAgLSBtb3ZlIHRvIE5ldDo6U01UUC4KICAgICAgLSBNYWtlIG5ldyBhdXRoZ3JvdXAgYW5kIGF1dGhob3N0IHRhYmxlcyB0byBjb250YWluIFNOTVA6OlNlc3Npb24gZGVmYXVsdHMuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDU6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHVwZGF0ZSB0aGUgc28gTEQgZm9yIGxpbnV4IHRvICQoQ0MpLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA4OjE3CiAgICAtIChjb25maWd1cmUpOiB1cGRhdGUuCgpoYXJkYWtlciAxNyBOb3YgOTkgMTM6MDk6MTQKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IHVwZGF0ZS4gIERlYWxzIHdpdGggUm93U3RhdHVzIG9iamVjdHMgYmV0dGVyLgoKbmJhIDE3IE5vdiA5OSAyMTo1MToxOQogICAgLSBkZWZhdWx0X3N0b3JlLmM6IGRzX3RvZ2dsZV9ib29sZWFuIG1pc3NlZCBhIG1hc2sKCm1zbGlmY2FrIDE4IE5vdiA5OSAxNzo1ODo0NwogICAgQ2hlY2staW4gYWdlbnQgY2hhbmdlcyB0byBzdXBwb3J0IFdpbjMyIGFnZW50IGJ1aWx0IHdpdGggTVNWQysrLgogICAgVGhhbmtzIHRvIFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoxNDo1OAogICAgTW9yZSB0b3VjaHVwIHBlciBNU1ZDKysgV2luMzIgYWdlbnQgd29yay4KCm1zbGlmY2FrIDE4IE5vdiA5OSAxODoyMDo0NQogICAgTW9yZSBNU1ZDKysgV2luMzIgYWdlbnQgZmlsZXMsIGdyYXRpcyBSb2JlcnQgU3RvcnkuCgpkYXZlcyAxOSBOb3YgOTkgMTE6MDY6MjYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBQcm92aWRlIG1pc3NpbmcgaW5kZXggYWxsb2NhdGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTkgTm92IDk5IDEzOjQ3OjAxCiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBmaXggbWliMmMuc3RvcmFnZS5jb25mLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE0OjIwOjI1CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBtYWtlIHNubXBfc2VsZWN0X2luZm8gcG9zc2libHkgaGFuZGxlIGFsYXJtIHRpbWVycy4KICAgICAgLSBtYWtlIHNubXBkIHVzZSB0aGVtIGFuZCBjYWxsIHNubXBfcnVuX2FsYXJtcygpLgoKaGFyZGFrZXIgMTkgTm92IDk5IDE1OjI0OjE1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICAgZGlzay5jLCBkaXNrLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAgLSBtb25pdG9yIGRpc2sgaW5vZGUgcGVyY2VudGFnZXMuCgpuYmEgMjIgTm92IDk5IDA1OjI3OjE1CiAgICAtIGNvbmZpZ3VyZS5pbjogY29uZmlndXJlIHRlc3QgZm9yIG5ldGluZXQvaXAuaAoKbmJhIDIyIE5vdiA5OSAwNToyODowOQogICAgIHNubXBfbG9nZ2luZy5jOiBvbmx5IHRpbWVzdGFtcCBlZnRlciBhIG5ld2xpbmUKCm5iYSAyMiBOb3YgOTkgMDU6Mjg6NDUKICAgIC0gc25tcGQuYzogcmVpbnN0YXRlIHNubXBkIC1hIGZ1bmN0aW9uYWxpdHkKCm5iYSAyMiBOb3YgOTkgMDU6Mjk6MzcKICAgIC0gcGFzcy5jOiByZW1vdmUgYSBjb25zdCBjYXN0aW5nIHdhcm5pbmcKCm5iYSAyMiBOb3YgOTkgMDU6MzI6MDUKICAgIC0gSVBWNi1UQ1AtTUlCLCBJUFY2LVVEUC1NSUIsIGlwdjYuYywgdGNwLmM6IG1vdmUgdGhlIElQdjYgdGNwIGFuZCB1ZHAKICAgIAl0YWJsZXMgdG8gdGhlaXIgcHJvcGVyIHBvc2l0aW9uIGluIHRoZSB0cmVlLCBhY2NvcmRpbmcgdG8gdGhlIFJGQy4KCm5iYSAyMiBOb3YgOTkgMDY6NTk6NDYKICAgIC0gaXB2Ni5jOiB1cGdyYWRlIHRvIHRoZSBjdXJyZW50IEthbWUgcGF0Y2gKCm5iYSAyMiBOb3YgOTkgMDc6MTY6NTkKICAgIC0gaXB2Ni5jOiBzb21lIG1vcmUgQU5TSSBwcm90b3R5cGVzCgpkYXZlcyAyMiBOb3YgOTkgMDc6MzA6MDYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgIEluZGV4IGRlLWFsbG9jYXRpb24sIGFuZCBBZ2VudFggaW5kZXggc3VwcG9ydC4KCm1zbGlmY2FrIDIyIE5vdiA5OSAwODoyMDoyOQogICAgUmV0cnkgYWRkIE1TVkMrKyBwcm9qZWN0IGZpbGUuCgptc2xpZmNhayAyMiBOb3YgOTkgMDg6MjE6NTgKICAgIEFkZCBDVlMgaWdub3JlIGxpc3QgZm9yIHdpbjMyL2xpYmFnZW50LgoKaGFyZGFrZXIgMjIgTm92IDk5IDA4OjI5OjMzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgICAtIEFkZGVkIGFiaWxpdHkgdG8gdXNlIE1JQiB0byBxdWVyeSB0YWJsZXMgd2l0aCBub24tc2VxdWVudGlhbCBjb2x1bW4gT0lEcy4KICAgICAgLSBBZGRlZCBjb2RlIHRvIGhhbmRsZSBzcGFyc2UgdGFibGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjAwOjQ1CiAgICAtICh1c21Vc2VyLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjA3OjM0CiAgICAtIChSRUFETUUpOiBhZGRlZCBtb3JlIHBlb3BsZSB0byB0aGUgdGhhbmtzIGxpc3QuCgpoYXJkYWtlciAyMiBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBob3N0X3Jlcy5oLCBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGJzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgIC0gYnNkaSBzdXBwb3J0IGZvciB0aGUgaG9zdCByZXNvdXJjZXMgbWliLgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjI0OjUxCiAgICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgdGVzdHMgZm9yIG5ldwogICAgICBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxMjozMDowNQogICAgLSAodm1zdGF0LmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogdXNlIGhlYWRlcl9nZW5lcmljIG5vdCBoZWFkZXJfc2ltcGxlX3RhYmxlCgpoYXJkYWtlciAyMiBOb3YgOTkgMTI6NDk6MjEKICAgIC0gKHZhY21fdmFycy5jLCBwYXNzLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMuCgpuYmEgMjIgTm92IDk5IDEyOjU0OjA4CiAgICAtICo6IGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zIHRvIGEKICAgIAljb25zdCBzdHJpbmcKCmhhcmRha2VyIDIyIE5vdiA5OSAxMzowNTowNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB0Y3AuYyk6IFBhdGNoCiAgICAgIGZyb20gR2FycmV0dCBXb2xsbWFuOgogICAgICAtIEZyZWVCU0QgNC54IGZpeGVzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE2OjQ4OjU0CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZSBjcmVhdGlvbiBvZiBpbml0aWFsIGFuZCB0ZW1wbGF0ZSogdXNlcnMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTY6NTA6MjUKICAgIC0gKHZhY21fdmFycy5jLCB1c21Vc2VyLmMpOiBuZXcgY29uZmlnIHRva2VucyBhbGxvd2luZyBlYXN5IHVzZXIgYW5kCiAgICAgIHZhY20vdXNlciBjb25maWd1cmF0aW9uIGFuZCBzZXR1cC4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNzowMjoxMQogICAgLSAoc2NhcGkuYyk6IGZpeCBsZW5ndGggY2hlY2sgb2Yga2V5IHNwYWNlLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE3OjUyOjM2CiAgICAtIChSRUFETUUuc25tcHYzKTogdXBkYXRlIHRvIHJlZmxlY3QgbmV3IGFuZCBlYXNpZXIgLmNvbmYgbWVjaGFuaXNtcy4KCm5iYSAyMyBOb3YgOTkgMDE6MjM6MTYKICAgIC0gaXB2Ni5oOiByZW1vdmUgYW4gX19QIHRoYXQgaGFkIHNuZWFrZWQgaW4KCm5iYSAyMyBOb3YgOTkgMDE6MjQ6MzcKICAgIC0gSVBTRUMtTUlCLnR4dDogY2hhbmdlIHNvbWUgdW5kZXJsaW5lcyBpbnRvIGRhc2hlcywgYW5kIHJlcGFpciB0aGUKICAgIAk6Oj0gKG1heWJlIEkgc2hvdWxkIGhhdmUgbG9va2VkIGF0IHRoaXMgZmlsZSBiZWZvcmUgYWRkaW5nIGl0IDotKSkKCm5iYSAyMyBOb3YgOTkgMDE6MjY6MjYKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGFyZ3VtZW50cyAoaW50ID0+IHNpemVfdCkuIFRoYW5rcyB0bwogICAgCUFudGhvbnkgU2hpcG1hbiA8YXNoaXBtYW5AZXJnZ3JvdXAuY29tPgoKZGF2ZXMgMjMgTm92IDk5IDAxOjM3OjI5CiAgICAtIChob3N0L2hyX3N3cnVuLmMpOiBGaXggbGludXggcHJvY2VzcyBtZW1vcnkgdXNhZ2UgZmlndXJlcy4KICAgIAkoUmVwb3J0ZWQgYnkgTWl0Y2ggU2hpZWxkcykKCmRhdmVzIDIzIE5vdiA5OSAwMjoxMTo0MwogICAgLSAoaG9zdC9ocl9zdG9yYWdlLmMgaG9zdC9ocl9zd3J1bi5jKTogR3VhcmQgYWdhaW5zdCBjYWxjdWxhdGlvbiBvdmVyZmxvdwoKbmJhIDIzIE5vdiA5OSAwMjoyMDoxMwogICAgLSBzbm1wX2FnZW50LmM6ICNpbmNsdWRlIDx1bmlzdGQuaD4gZm9yIHNlbGVjdCBwcm90b3R5cGUKCmRhdmVzIDIzIE5vdiA5OSAwNToyMTo1OAogICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9zdWJhZ2VudC5jKToKICAgICAgIE1ha2UgbWFpbiBzZXNzaW9uIHN0cnVjdHVyZSB2aXNpYmxlIHRocm91Z2hvdXQgdGhlIGFnZW50LAogICAgICAgYW5kIHVzZSB0aGlzIGZvciBBZ2VudFggc3ViYWdlbnQgYXMgd2VsbC4KCmRhdmVzIDIzIE5vdiA5OSAwNTo0MDowOQogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgIC0gTWFrZSBpbmRleCByZWdpc3RyYXRpb24gQVBJIG1vcmUgaW1tZWRpYXRlbHkgY29udmVuaWVudAogICAgICAtIEFzc29jaWF0ZSBzdWNoIHJlZ2lzdHJhdGlvbnMgd2l0aCB0aGUgbWFpbiBzZXNzaW9uCiAgICAgIC0gbmV3IHJvdXRpbmUgdG8gdW5yZWdpc3RlciBhbGwgaW5kZXhlcyBmb3IgYSBnaXZlbiBzZXNzaW9uCiAgICAgIC0gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIEFOWSBpbmRleCBhbmQgTkVXIGluZGV4CiAgICAgIC0gY2xlYW4gdXAgYXNzb3J0ZWQgY29tcGlsZXIgd2FybmluZ3MKCmhhcmRha2VyIDIzIE5vdiA5OSAxNzo1MTo0NAogICAgLSAoc25tcHRvc3FsKTogZml4IGZyb20gYWRkcmVzcyBsaW5lLCBvdGhlciBtaXNjIGZpeGVzLgoKZGF2ZXMgMjQgTm92IDk5IDA5OjAzOjAwCiAgICAtIChhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBSZWxlYXNlIGFsbG9jYXRlZCBpbmRleGVzIG9uIHN1YmFnZW50IHNodXRkb3duLgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjA5OjA4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVzbVVzZXIuYywKICAgICAga2V5dG9vbHMuYywga2V5dG9vbHMuaCwgbGNkX3RpbWUuYywgc2NhcGkuaCwgdG9vbHMuYywKICAgICAga2V5bWFuYWdldGVzdC5jLCBzY2FwaXRlc3QuYywgY29uZmlnLmgpOgogICAgICAtIGZvcmNlIC0tZW5hYmxlLWRldmVsb3BlciBmb3IgQ1ZTIGNoZWNrb3V0cy4KICAgICAgLSByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gS01ULgoKaGFyZGFrZXIgMjQgTm92IDk5IDA5OjE2OjAyCiAgICAtIChJTlNUQUxMKTogY2hhbmdlIGVkaXRpbmcgb2YgY29uZmlnLmggbm90ZS4KCmhhcmRha2VyIDI0IE5vdiA5OSAxMDo0MzowOAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgIC0gYWxsb3cgc2VwZXJhdGlvbiBvZiBtYXNrIHdpdGggYm90aCAuIGFuZCA6LgoKbXNsaWZjYWsgMjQgTm92IDk5IDExOjA3OjA1CiAgICBGaXggQlVHIzU3IHVzaW5nIG1vZGlmaWVkIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgptc2xpZmNhayAyNCBOb3YgOTkgMTE6MDc6NDkKICAgIEZpeCBCVUcjNTcgdXNpbmcgMi8zIG9mIHBhdGNoIHN1cHBsaWVkIGJ5IHphbnlAdHJpcS5uZXQuCgpuYmEgMjUgTm92IDk5IDE0OjMyOjQ3CiAgICAtIHNubXBfYXBpLmMsIGFnZW50X3RyYXAuYywgc25tcF9hZ2VudC5jLCBzbm1wX21pYi5oLCBzbm1wX21pYi5jOgogICAgCWZpeCBtaXNhbGlnbm1lbnQgb2Ygc3RhdGlzdGljcyBjb3VudGVycwoKbmJhIDI1IE5vdiA5OSAxNDozMzoxNQogICAgLSBzbm1wX21pYi5oOiBmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKCm5iYSAyNSBOb3YgOTkgMTQ6NTI6NTcKICAgIC0gdXNtVXNlci5jOiBuZXcgdXNlciBpcyBub3QgYWRkZWQgdW5sZXNzIGJvdGggYXV0aCBhbmQgcHJpdiBpcyBzcGVjaWZpZWQKICAgIAlvbiBjcmVhdGVVc2VyIGRpcmVjdGl2ZQoKbmJhIDI1IE5vdiA5OSAxNDo1NjoxMgogICAgLSBkZWZhdWx0c19zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wX3BhcnNlX2FyZ3MuYzogYWRkIGRlZkNvbW11bml0eQogICAgCWRpcmVjdGl2ZQogICAgLSBzbm1wX2FwaS5oLCBzbm1wX2FwaS5jOiBhZGQgZXJyb3Jjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQoKbmJhIDI1IE5vdiA5OSAxNDo1Nzo1NwogICAgLSBtaWIuYzoga2lsbCB5ZXQgYW5vdGhlciBzaWxseSB3YXJuaW5nIGZyb20gZ2NjCgpuYmEgMjYgTm92IDk5IDExOjE4OjIzCiAgICAtIGRlZmF1bHRfc3RvcmUuYzogYWx0aG91Z2ggcmVhZF9jb25maWcgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgZHNfaGFuZGxlX2NvbmZpZwogICAgCXdhcyBub3QuIEF0IHRoZSBzYW1lIHRpbWUgaXQgZmFpbGVkIHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0aGF0CiAgICAJaXQgd2FzIGNhbGxlZCBidXQgZGlkbid0IGtub3cgd2hhdCB0byBkby4KCm1hcnogMjcgTm92IDk5IDA2OjMxOjExCiAgICAgKGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBmaXggLXIgc3dpdGNoIHRvIHN1cHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgZmFpbGVkIGtlcm5lbCBhbmQgYWRkIC1yIHRvIGRlZmF1bHQgdGVzdGluZyBjb2RlIHNvICdtYWtlIHRlc3QgY2FuIGJlIHJ1biBieSB1c2VyCgpoYXJkYWtlciAyNyBOb3YgOTkgMDk6MTg6MTUKICAgIC0gKHZhY21fdmFycy5jKTogcmVkbyByd3VzZXIvcm91c2VyIHRvIGFsbG93IHNwZWNpZmljYXRpb24gb2YgYXV0aCB0eXBlLgoKbXNsaWZjYWsgMjkgTm92IDk5IDA1OjUwOjI3CiAgICBNb3JlIEhQLVVYIGFDQyBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjMwOjUxCiAgICBVc2UgbnRvaHMgbWFjcm8gdG8gY2FyZWZ1bGx5IG9idGFpbiB0aGUgZGVmYXVsdCBzZXJ2aWNlIHBvcnQuCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzM6NDUKICAgIEZpeCByZWZlcmVuY2UgdG8gc25tcGxpYi4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozNjo0MwogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgREVCVUdfTUFMTE9DX0lOQyBmcmFnbWVudHMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTE6NTg6MzcKICAgIEZyZWUgU1RSRUFNIHBhY2tldCBidWZmZXIgd2hlbiBzZXNzaW9uIGlzIGNsb3NlZDsKICAgIFRlc3QgZm9yIGNsb3NlIGluIHByb2dyZXNzIGZvciByZWFkLCB3cml0ZSwgc2VsZWN0LCBhbmQgdGltZW91dCBmdW5jdGlvbnMuCgptc2xpZmNhayAyOSBOb3YgOTkgMTI6NDM6MzQKICAgIFVzZSBzaXplX3QgZm9yIG5hbWVfbGVuIG1lbWJlci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjowOAogICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogaW1wbGVtZW50IHN0cmNhc2VzdHIgKGZyb20gTWljaGFlbCBTbGlmY2FrKS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMjo1MAogICAgLSAocGFyc2UuYyk6IG1ha2UgYmVzdCBtYXRjaGluZyAoLWIpIHVzZSByZWdleCB3aGVuIGF2YWlsYWJsZS4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowMzo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBmb3IgcmVnZXguaCwgcmVnY29tcCwgc3RyY2FzZXN0ci4KCmhhcmRha2VyIDI5IE5vdiA5OSAxNDowNDowOQogICAgLSAoUkVBRE1FKTogYW5vdGhlciBuYW1lLgoKbmJhIDMwIE5vdiA5OSAwMzowMTozNAogICAgLSBzbm1wX2FwaS5oLCBzbm1wX21pYi5bY2hdOiBBIGNvdXBsZSBhZGRpdGlvbmFsIFNOTVAgc3RhdGlzdGljcyBwb2ludHMKCmRhdmVzIDMwIE5vdiA5OSAwNzowNzowMQogICAgLSAoYWdlbnR4L21hc3Rlci5jKTogUmVtb3ZlIHJlZHVuZGVudCByb3V0aW5lLgoKZGF2ZXMgMzAgTm92IDk5IDA3OjA4OjQzCiAgICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBoYW5kbGluZyBvZiBtdWx0aS12YXJpYWJsZSByZXF1ZXN0cyB0byBzdWJhZ2VudHMuCgptc2xpZmNhayAzMCBOb3YgOTkgMTM6MTA6NDAKICAgIEZpeCAtVGQgdXNhZ2UgZGVzY3JpcHRpb247IHVzZSBzd2l0Y2ggd2hlbiBjdXJyZW50X25hbWUgaXMgTlVMTC4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxMzoxMToxNAogICAgSW5jbHVkZSBjdHlwZS5oCgpoYXJkYWtlciAzMCBOb3YgOTkgMTQ6MzA6MzIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMpOiBpbXBsZW1lbnQgcmVnZXggbWF0Y2hpbmcKICAgICAgZXZlcnl3aGVyZS4KCm1zbGlmY2FrIDMwIE5vdiA5OSAxNDo0NzozNgogICAgVXNlIFdlcycgY29vbCBuZXcgZ2V0X3dpbGRfbm9kZSBtYXRjaCBtZXRob2QuCgptc2xpZmNhayAzMCBOb3YgOTkgMTY6NTA6NDEKICAgIEFkZCBtdWx0aXBsZSBtYXRjaCBjYXBhYmlsaXR5IHRvIGZpbmRfYmVzdF90cmVlX25vZGUsIGFuZCB1c2UgaXQgaW4KICAgIHNubXB0cmFuc2xhdGUgKG5ldyAtQiBvcHRpb24pLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDA2OjQwOjA3CiAgICBFcnJvciBjaGVjayBhbmQgZnJlZSByZXNvdXJjZXMgZHVyaW5nIHJlZ2V4IHByb2Nlc3NpbmcuCgptc2xpZmNhayAgMSBEZWMgOTkgMTA6Mzg6MTgKICAgIFByZXZlbnQgb3ZlcmZsb3cgb2Ygb2JqZWN0IElEIGluIGdldF9tb2R1bGVfbm9kZS4KICAgIEluIGZpbmRfYmVzdF90cmVlX25vZGUsIHRyZWF0IHJlc3VsdCBmcm9tIHJlY3Vyc2VkIGNhbGwgc2FtZSBmb3IgbWF0Y2ggPSAwLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDE1OjU1OjU2CiAgICBGaXggYnVnICMxMTIgYW5kIGZpbmlzaCBwYXRjaCBzdXBwbGllZCBieSBBbnRob255IFNoaXBtYW4uCgptc2xpZmNhayAgMSBEZWMgOTkgMTY6MzI6MTQKICAgIFVzZSBTTk1QX01BWEJVRiB3aGVuIGRlZmluaW5nIGxhcmdlIHN0YXRpYyBidWZmZXIgc3RvcmFnZS4KCm5iYSAgMiBEZWMgOTkgMDQ6NDE6NTUKICAgIC0gbWliLmM6IGFjY2Vzc2luZyBhbmQgZnJlZWVpbmcgZW52X3ZhciBtaXNwbGFjZXMgYXJvdW5kIE5VTEwgdGVzdAoKbmJhICAyIERlYyA5OSAwNDo0Mjo1NwogICAgLSBzbm1wdHJhcGQuYzogZml4IHNubXBfY2xvbmVfcGR1MiBieSB1c2luZyB0aGUgc25tcGxpYiB2ZXJzaW9uCgpuYmEgIDIgRGVjIDk5IDA1OjA2OjU1CiAgICAtIHVzbVVzZXIuYyBzbm1wdjMuW2NoXTogbW92ZSB1c21fcGFyc2VfY3JlYXRlX3VzbVVzZXIgZnJvbSB0aGUgYWdlbnQKICAgICAJdG8gdGhlIGxpYnJhcnksIHNvIHRoYXQgc25tcHRyYXBkIGNhbiB1c2UgaXQuCgptc2xpZmNhayAgMiBEZWMgOTkgMDk6MjE6NDUKICAgIEZpeCBidWcgIzgxIC0gY29udGludWUgaW5zdGFsbCBhZnRlciBlcnJvciBjcmVhdGluZyBwZXJzaXN0ZW50IGRpcmVjdG9yeS4KCmhhcmRha2VyICAyIERlYyA5OSAxNjo1OTo1NQogICAgLSAocGFyc2UuYyk6IHR1cm4gb24gUkVHRVhfRVhURU5ERUQuCgpuYmEgIDMgRGVjIDk5IDE1OjAzOjQ4CiAgICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0IGhhbmRsaW5nIG9mIFNJR0hVUCB0cCByZWNvbmZpZ3VyZS4KCm5iYSAgMyBEZWMgOTkgMTU6MDQ6MTYKICAgIC0gc25tcHRyYXBkX2hhbmRsZXJzLmM6IGEgbGl0dGxlIG5pY2VyIGVycm9yIG1lc3NhZ2UKCm5iYSAgMyBEZWMgOTkgMTU6MDU6MTMKICAgIC0gcGFyc2UuYzogcmVtZW1iZXIgdG8gTlVMTCBhIGZyZWVkIHBvaW50ZXIKCmhhcmRha2VyICAzIERlYyA5OSAxNjo1MTo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzd2l0Y2ggdG8gUElDIGZyb20gcGljLgoKaGFyZGFrZXIgIDMgRGVjIDk5IDE2OjUyOjE2CiAgICAtIChNYWtlZmlsZS5pbik6IHVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZS4KCmhhcmRha2VyICAzIERlYyA5OSAxNjo1Mjo1MQogICAgLSAodm1zdGF0LmMpOiByZW1vdmUgZHVwbGljYXRlIGxpbWl0cy5oIGluY2x1ZGUuCgpuYmEgIDUgRGVjIDk5IDIxOjQ5OjUwCiAgICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGVuc3VyZSBwcm9wZXIgYnl0ZSBvcmRlcmluZyB3aGVuIHBhc3MnaW5nCiAgICAJaXBhZGRyZXNzLgoKbXNsaWZjYWsgIDYgRGVjIDk5IDA5OjE5OjA4CiAgICBTaG93IGFsbCBub24tcHJpbnRhYmxlIHN1YmlkcyBpbiBkdW1wX29pZF90b19zdHJpbmcuCiAgICBSZWN1cnNlIGNsZWFyX3RyZWVfZmxhZ3Mgb25seSBpZiBuZWNlc3NhcnkuCgpoYXJkYWtlciAgNiBEZWMgOTkgMTM6NDc6NDEKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZGVmYXVsdCBzcGVjaWZpY2F0aW9ucyBmb3IgYXV0aC9wcml2IHR5cGVzLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDEzOjUxOjM0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHByaW50IGVycm9yIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ2VuZXJhdGVfS3UoKS4KCm5iYSAgNiBEZWMgOTkgMTQ6MzI6MjIKICAgIC0gLmN2c2lnbm9yZTogTWFrZSBDVlMgc2lsZW50IGFib3V0IGluc3RhbGxhdGlvbiBmaWxlcwoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjQ4OjA4CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIG1ha2Ugc25tcHVzbSB1c2FibGUgYWdhaW4sIGNoYW5naW5nIGFyZ3VtZW50cyBzbGlnaHRseS4KICAgICAgLSBtYWtlIGl0IGFsc28gdXNlIGRlZmF1bHRzIGZvciBwYXNzcGhyYXNlcywgdXNlciwgZXRjLgoKaGFyZGFrZXIgIDYgRGVjIDk5IDE0OjU2OjIxCiAgICAtIChTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiBtYWtlIHYzIHRlc3Rpbmcgd29yayBhZ2Fpbi4KCmhhcmRha2VyICA2IERlYyA5OSAxNDo1ODoyOAogICAgLSAoc25tcHVzbS5jKTogZml4IHVzYWdlIGZvciBuZXcgYXJncy4KCm1zbGlmY2FrICA2IERlYyA5OSAxNTowOTo1MwogICAgQ29udmVydCBVU01fRVJSKiB0byBTTk1QRVJSX1VTTSouCgpuYmEgIDYgRGVjIDk5IDE1OjEzOjIxCiAgICAtIHN5c3RlbS5jLCBjb25maWcuaCwgd2luMzIuZHN3LCAqLmRzcCwgbGlic25tcC5kZWY6IGNsZWFuaW5nIHVwIGZvciBWQyBidWlsZHMKCm1zbGlmY2FrICA2IERlYyA5OSAxNjozMToyNgogICAgTW9yZSBmdW4gdXBkYXRpbmcgTVMgVkMgYnVpbGQgb2YgYXBwcyBhbmQgbGlicmFyeS4KCm1zbGlmY2FrICA3IERlYyA5OSAwODowMzowNgogICAgVXNlIGFyZ3ZbMF0gc2luY2UgdGhlIGFwcCB3b250IGJlIHNubXBnZXRuZXh0LCBwcm9iYWJseS4KCmRhdmVzICA3IERlYyA5OSAwODoyOTo1NQogICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXSBhZ2VudC9zbm1wZC5bY2hdCiAgICAgICBzbm1wbGliL3JlYWRfY29uZmlnLltjaF0gc25tcGxpYi9zbm1wX2FwaS5jKToKICAgICAgIC0gIFVzZSB0aGUgc2F2ZWQgYXBwbGljYXRpb24gbmFtZSBmb3IgcmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXJzCiAgICAJKE4uQjogVGhpcyBjaGFuZ2Ugd2lsbCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gTUlCIG1vZHVsZXMgYXMgd2VsbCkKCmhhcmRha2VyICA3IERlYyA5OSAwOToxNDozMAogICAgLSAoaHJfb3RoZXIuYyk6IHNob3J0ZW4gY3B1IGRlc2NyaXB0aW9uIGxlbmd0aC4KCmhhcmRha2VyICA3IERlYyA5OSAwOToxNzo0MQogICAgLSAoc3lzT1JUYWJsZS5jKTogbWFrZSBzeXNPckluZGV4IG5vdC1hY2Nlc3NpYmxlLCBhcyBpdCBzaG91bGQgYmUuCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MzI6MDIKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjb252ZXJ0IHRvIFNNSXYyIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjQ1OjU5CiAgICAtIChzbm1wd2Fsay5jKToKICAgICAgLSBOZXcgYWJpbGl0eSB0byBwZWZvcm0gYSBnZXQgb24gdGhlIHJlcXVlc3RlZCBPSUQgd2hlbiBlaXRoZXIgbm8KICAgICAgICByZXN1bHRzIGFyZSByZXR1cm5lZCBvciB3aGVuIHRoZSB1c2VyIHJlcXVlc3RzIGFuIGluY2x1c2l2ZSBvcHRpb24uCiAgICAgIC0gTmV3IGFiaWxpdHkgdG8gcHJpbnQgbnVtYmVyIG9mIHZhcmlhYmxlcyBmb3VuZCBhdCB0aGUgZW5kLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDEzOjU0OjExCiAgICAtIChzbm1wd2Fsay4xKTogZG9jdW1lbnQgLUNpIGFuZCAtQ3AgKGJhZGx5KS4KCm1zbGlmY2FrICA3IERlYyA5OSAxNToyMzo0NAogICAgRWxpbWluYXRlIG11bHRpcGx5aW5nIGJ5IHNpemVvZihjaGFyKSBvciBzaXplb2YodW5zaWduZWQgY2hhcik7CiAgICBhZ2VudHgvY2xpZW50LmMgLSBzbm1wX2ZyZWVfdmFyYmluZCByZXBsYWNlcyBmcmVlIGluIGZvdXIgcGxhY2VzOwogICAgc25tcHYzL3VzbVVzZXIuYyAtIHVzbV9mcmVlX3VzZXIgcmVwbGFjZXMgZnJlZSBpbiBvbmUgcGxhY2UuCgpoYXJkYWtlciAgOCBEZWMgOTkgMDk6MTk6MDgKICAgIC0gKG1pYi5jKTogcmVnaXN0ZXIgYSBjb25maWcgdG9rZW4gZm9yIHN1ZmZpeCBwcmludGluZy4KCmhhcmRha2VyICA4IERlYyA5OSAxNDowODoyMAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgbXJJbmRleCBJTVBMSUVEIHNpbmNlIGl0IGlzIGluIHRoZSBjb2RlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE0OjQxOjUzCiAgICAtIChtaWIuYyk6IGZpeCAtT3MgYW5kIGluZGV4IGJhc2VkIG9pZCBwcmludGluZyB0byB3b3JrIGFnYWluLgoKbXNsaWZjYWsgIDggRGVjIDk5IDE1OjAxOjIwCiAgICBJbmNsdWRlIGdldG9wdC5oIHRvIGRlZmluZSBvcHRhcmcuCgptc2xpZmNhayAgOCBEZWMgOTkgMTU6MDQ6NTQKICAgIEFkZCBtaXNzaW5nIGRza1BlcmNlbnROb2RlIHRvIERza0VudHJ5ICh0aGFua3MgdG8KICAgICAgICAgICAgIE1pY2hhZWwgS2lya2hhbSA8c3VwcG9ydEBpd2wuY29tPikuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjM6MDcKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSByZW1lbWJlcmVkIElNUExJRUQgaW5kZXhlcy4KICAgICAgLSBwcm9wZXJseSBwcmludCBPSURzIHdpdGggbGVuZ3RoIHByZWZpeGVzIG9uIHBhcnNlZCBPSURzIHNvCiAgICAgICAgY3V0dGluZy9wYXN0aW5nIG9mIHRoZW0gd29ya3MuCiAgICAgIC0gcHJvcGVybHkgcHJpbnQgc3RyaW5ncyBhbmQgb2lkcyB0aGF0IGFyZSBJTVBMSUVELgogICAgICAtIHByaW50IHN0cmluZ3MgaW4gZWl0aGVyICcgb3IgIiBxdW90ZXMgZGVwZW5kaW5nIG9uIGlmIHRoZWlyIElNUExJRUQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6MjY6NTEKICAgIC0gKFJFQURNRSk6IGFkZCBKdWVyZ2VuLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI4OjU0CiAgICAtICgqLi5NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI5OjUyCiAgICAtIChzbm1wZC5jKTogbW92ZSBzeXMvcGFyYW0gb3V0IG9mIGlmZGVmIEZEX1NFVC4KCmhhcmRha2VyICA4IERlYyA5OSAxNTo0NzowMgogICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBBIHJlYWwgbWFrZSBkZXBlbmQgd2l0aCBubyBzc2wgZGVwZW5kYW5jaWVzLCBldGMuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6NDk6MzIKICAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzKToKICAgICAgLSBtb3ZlIHRoZSBtYWtlIGRlcGVuZCBwZXJsIHNjcmlwdHMgdG8gdGhlIHRvcCBsZXZlbCB3aGVyZSB0aGV5IG9ubHkKICAgICAgICBuZWVkIHRvIGJlIGVkaXRlZCBvbmNlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE3OjEzOjE3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgbWFzdGVyLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgIC0gaW1wbGVtZW50IG1rZGlyaGllcigpIGFuZCB1c2UgaXQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgYWdlbnR4CiAgICAgICAgc29ja2V0IGZpbGUgY3JlYXRpb24uCgpkYXZlcyAgOSBEZWMgOTkgMDc6MzQ6MDMKICAgIC0gKG1hbi9zbm1wX3RyYXBfYXBpLjMpOiBJbml0aWFsIGRvY3VtZW50YXRpb24gZm9yIGFnZW50IHRyYXAgZ2VuZXJhdGlvbi4KCm5iYSAgOSBEZWMgOTkgMDc6MzQ6MDgKICAgIC0gbWliLmM6IGltcGxlbWVudCBNSUI6OmxhYmVsCgpuYmEgIDkgRGVjIDk5IDA3OjQ5OjM0CiAgICAtIHNubXBjbWQuMTogc3VwcG9ydCBNSUI6OmxhYmVsCgptc2xpZmNhayAgOSBEZWMgOTkgMDg6MTQ6NTkKICAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSnVlcmdlbiBTY2hvZW53YWVsZGVyLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDEwOjA4OjI2CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeGVkIC0tZW5hYmxlLXNoYXJlZCAoYXQgbGVhc3Qgb24gbGludXgpLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE1OjI2OjIzCiAgICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBMZW9uYXJkIEdvbWVsc2t5OgogICAgICAtIGdlbmVyYXRlX0t1KCkgc3BlZWQgaW1wcm92ZW1lbnRzLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjE2OjQwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCBhbGwgaW5zdGFuY2VzIG9mIGtiIHRvIGtCLgoKaGFyZGFrZXIgIDkgRGVjIDk5IDE2OjUzOjE0CiAgICAtIChzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkCgpoYXJkYWtlciAgOSBEZWMgOTkgMTc6MDk6MjMKICAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6IGZpeCBmb3IgLS1lbmFibGUtc2hhcmVkIG9uIGhwdXgKCm5iYSAxMCBEZWMgOTkgMDM6MDY6MTgKICAgIC0gbWFzdGVyLmM6IGFkZCBhIG1pc3NpbmcgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gKGF0IGxlYXN0IGZvciBTb2xhcmlzKS4KCm5iYSAxMCBEZWMgOTkgMDM6MDc6MDYKICAgIC0gcGFzcy5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KCm5iYSAxMCBEZWMgOTkgMDM6MDk6MzMKICAgIC0gcGFzc19wZXJzaXN0LmM6IGZpeCBzb21lIGJ1Zi9idWYyIGNvbmZ1c2lvbgoKbmJhIDEwIERlYyA5OSAwMzoxMDozMAogICAgLSByZWFkX2NvbmZpZy5jOiBhZGQgc29tZSBtaXNzaW5nIGNvbnN0IHNwZWNpZmllcnMKCm5iYSAxMCBEZWMgOTkgMDM6MjA6MTAKICAgIC0gKHZhcmlvdXMpOiBjaGFuZ2VzIHRvIGNvbXBpbGUgc25tcGQgd2l0aCBWQysrIDUuMCAoUmVsZWFzZSBtb2RlKQoKbXNsaWZjYWsgMTAgRGVjIDk5IDA3OjI4OjMzCiAgICBGaXggdG8gYnVpbGQgZXhlY3V0YWJsZSBhZ2VudCBvbiBIUC1VWC4KCm1zbGlmY2FrIDEwIERlYyA5OSAxMDoyMzozNgogICAgQXBwbHkgRGF2ZSdzIHBhdGNoIHRvIGZpeCBtYXggdmFyYmluZHMgdGVzdGluZyBvbiBHRVRCVUxLLgoKbWFyeiAxMCBEZWMgOTkgMTA6NDQ6MjkKICAgICAoc25tbGliL3NubXBfYXBpLmMpOiBmaXggYnVnIGluIF9zZXNzX2NvcHkgd2hlcmUgcG9pbnRlcnMgdGhhdCB3ZXJlIG5vdCBvd25lZCBieSBuZXdseSBjcmVhdGVkIHNlc3Npb24gY291bGQgZ2V0IG1pc3Rha2VubHkgZnJlZWQgaWYgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZHVyaW5nIHNlc3Npb24gY29weSAtIGFsc28gZWxpbWluYXRlIHNvbWUgcmVkdW5kYW50IGNvcHlpbmcgb2Ygc2VjdXJpdHl7QXV0aHxQcml2fUtleSBkYXRhCgptc2xpZmNhayAxMCBEZWMgOTkgMTM6MDM6NTgKICAgIEZpeCBIUC1VWCBwcm9ibGVtIHdpdGggaXBEZWZhdWx0VFRMLgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE3OjQxCiAgICAtIChhZ2VudF9yZWdpc3RyeS5jKTogSGFuZGxlIGRlbGVnYXRlZCBNSUIgcmVnaW9ucyBwcm9wZXJseSB3aGVuIHNwbGl0LgoKZGF2ZXMgMTMgRGVjIDk5IDAzOjE4OjM4CiAgICAtIChhZ2VudF90cmFwLmMpOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGVudGVycHJpc2UgT0lEIHdoZW4gc2VuZGluZyB0cmFwcwoKZGF2ZXMgMTMgRGVjIDk5IDA0OjQzOjE0CiAgICAtIChhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5bY2hdKToKICAgICAgLSBQYXRjaCB0byBnZXQgU01VWCBzdXBwb3J0IHdvcmtpbmcgd2l0aCB0aGUgbmV3IGFnZW50IGFyY2hpdGVjdHVyZS4KICAgICAgICBUaGlzIGlzIHByb2JhYmx5IG5vdCBUaGUgUmlnaHQgV2F5IFRvIERvIFRoaW5ncyBOb3csIGJ1dCBpdCB3b3Jrcy4KICAgICAgICBUaGFua3MgdG8gTmljayBBbWF0byBhbmQgTWlrZSBNaWNoYXVkLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDA5OjQ5OjI4CiAgICBBZGRlZCBwYXRjaCBmcm9tIE0uTWljaGF1ZCB0byB1c2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycy4KCmhhcmRha2VyIDEzIERlYyA5OSAwOTo1NzozNwogICAgLSAoRExNT0QtTUlCLnR4dCwgVUNELURMTU9ELU1JQi5pbmMsIFVDRC1ETE1PRC1NSUIudHh0KToKICAgICAgLSBKdWVyZ2VucyBwYXRjaCB0byBtb3ZlIERMTU9ELU1JQiAtPiBVQ0QtRExNT0QtTUlCIGFuZCAtPiBTTUl2Mi4KICAgICAgLSBtb3ZlZCB0byB0aGUgZXhwZXJpbWVudGFsIHRyZWUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTI6MDQ6MTUKICAgIENsZWFuIGFsc28gcmVtb3ZlcyBnZW5lcmF0ZWQgZGVmYXVsdF9zdG9yZS4zLmggLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDEzOjU0OjI3CiAgICBTYW5pdHkgY2hlY2tzIGFkZGVkIHRvIF9nZXRfc3ltYm9sLgoKaGFyZGFrZXIgMTMgRGVjIDk5IDE0OjIwOjEwCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLXdpdGgtZWZlbmNlIGltcGxlbWVudGVkLgogICAgICAtIChmb3JjZWQgY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWRldmVsb3BlciBhbmQgQ1ZTIGNoZWNrb3V0cykKCm1zbGlmY2FrIDEzIERlYyA5OSAxNDo1NDozMQogICAgRml4IHByb2JsZW0gcHJpbnRpbmcgSU1QTElFRCBpbmRpY2VzIG9mIE9CSkVDVElEIHR5cGUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTU6MTI6MDEKICAgIEZpbmlzaCBzeW1ib2wgY29udmVyc2lvbiB3aXRoIG51bWVyaWMgd2hlbiBzdWJ0cmVlIGlzIGxlYWYgbm9kZS4KCm1zbGlmY2FrIDEzIERlYyA5OSAxNjowMzowMAogICAgQWxsb3cgc3ByaW50X3ZhcmlhYmxlIHRvIHdvcmsgZXZlbiBpZiBubyBNSUIgZmlsZXMgd2VyZSByZWFkLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDA4OjA4OjAwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZGVmYXVsdF9zdG9yZS5oLAogICAgICBtaWIuYywgbWliLmgpOgogICAgICAtIGFyZ3VtZW50IHNodWZmbGluZy4uLgogICAgICAgIC1JIGZvciBpbnB1dCBhcmdzIGNyZWF0ZWQsIGFuZCAtT1IgbW92ZWQgdGhlcmUuCiAgICAgICAgLUliIGNyZWF0ZWQuCiAgICAgICAgLVRCIGNyZWF0ZWQgZm9yIHNubXB0cmFuc2xhdGUgKHdhcyAtQikuCgpoYXJkYWtlciAxNCBEZWMgOTkgMDg6NDE6NDEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHVwZGF0ZXMuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTQ6NTQ6MDkKICAgIC0gKGtleXRvb2xzLmMpOiByZXZlcnNlIGdlbmVyYXRlX0t1IG9wdGltaXphdGlvbnMsIGFzIHRoZXkgZG9uJ3Qgd29yay4KCmhhcmRha2VyIDE0IERlYyA5OSAxNToxOTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBETE1PRCAtPiBVQ0QtRExNT0QKCmhhcmRha2VyIDE0IERlYyA5OSAxNjowNTowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBtb3ZlIC1sZWZlbmNlIGNoZWNrIHVwIHRvIGZyb250IChsYXN0IGluIGxpbmspLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE2OjA1OjM3CiAgICAtIChoZWFkZXJfY29tcGxleC5jKTogZ2V0IG5leHQgaW4gbGluayBsaXN0IGJlZm9yZSBkZWxldGluZyByb290LgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA0OjIxOjI3CiAgICBJc29sYXRlIGFuZCByZXRvdWNoIGRlcHJlY2F0ZWQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgptc2xpZmNhayAxNSBEZWMgOTkgMDU6NTE6MDAKICAgIFNoYXJlIGtzdGF0IGZkIGlmZiB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIgaXMgYWxzbyBjb25maWd1cmVkLgoKaGFyZGFrZXIgMTUgRGVjIDk5IDA5OjE3OjAzCiAgICAtIChFdGhlckxpa2UtTUlCLnR4dCwgSVBGSUxURVIudHh0LCBVQ0QtSVBGSUxURVItTUlCLmluYywKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBFdmVuIG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDE1IERlYyA5OSAwOToxOToxNAogICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQgU05NUHYyLU0yTS1NSUIudHh0ICk6IHJlbW92ZWQuCgptc2xpZmNhayAxNSBEZWMgOTkgMDk6NDI6NDQKICAgIFJlbW92ZSBzbm1wX2xvZ19zeXNsb2csIHNubXBfbG9nX2ZpbGVsb2csIHNubXBfbG9nX3N0ZGVycmxvZzsKICAgIFNpbXBsaWZ5IHNubXBfbG9nX3N0cmluZy4KCm1zbGlmY2FrIDE1IERlYyA5OSAwOTo1NjoyNAogICAgQWRkIHRpbWUgbWFya2VyIGNyZWF0ZSwgc2V0LCBhbmQgZGVsdGEgdGltZSBjaGVjayBtZXRob2RzLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDExOjA4OjE5CiAgICBSZXBsYWNlIGtjIGZyb20gbWVtb3J5X3NvbGFyaXMyLmMgd2l0aCBrc3RhdF9mZCwgZGVmaW5lZCBpbiBrZXJuZWxfc3Vub3M1LmMuCgpuYmEgMTYgRGVjIDk5IDIzOjA1OjQ3CiAgICAtIGtlcm5lbC5jOiBvdXRwdXQgZXJyb3Igc3RyaW5nLCBub3QgbnVtYmVyCgpuYmEgMTYgRGVjIDk5IDIzOjA2OjU4CiAgICAtIHNubXBkLmM6IFxuIHRlcm1pbmF0ZSBzb21lIGxvZyBtZXNzYWdlcwoKbmJhIDE2IERlYyA5OSAyMzowODowMgogICAgLSBzbXV4LltjaF06IGZpeCBzb21lIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzLgoKbmJhIDE2IERlYyA5OSAyMzowODo1NAogICAgLSBzbm1wdHJhbnNsYXRlLmM6IGJlIGV4cGxpY2l0IGluIHRoZSAtdCB3YXJuaW5nCgpuYmEgMTYgRGVjIDk5IDIzOjA5OjQyCiAgICAtIG1pYi5jOiBmaXggYSB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiBwcm9ibGVtIHByaW50aW5nIG9pZHMKCm5iYSAxNiBEZWMgOTkgMjM6MTA6MzEKICAgIC0gc25tcHYzLmM6IGEgbW9yZSBzcGV2aWZpYyBoZWxwIG1lc3NhZ2UgZm9yIGRlZlZlcnNpb24KCm5iYSAxNyBEZWMgOTkgMDI6MDg6MTcKICAgIC0gbWliLmM6IGtpbGwgdGhhdCB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiwgaXQganVzdCBhZGRzIHRvbyBtYW55CiAgICAJY29uZGl0aW9uYWxzLiBQcm9wZXJseSBvdXRwdXQgYW4gZW1wdHkgc3RyaW5nIGluZGV4LgoKbmJhIDE3IERlYyA5OSAwMjowOToxOAogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgdXNhZ2UoKSBjYWxscy4KCm5iYSAxNyBEZWMgOTkgMDI6MTQ6MTgKICAgIC0gc25tcHRhYmxlLmM6IGNsZWFudXAgb2YgdGhlICJuZXciIG1pYiB3YWxrIHRvIGRldGVybWluZSBmaWVsZHMuIE1ha2UgaXQKICAgIAlkZWZhdWx0IChkb24ndCBldmVuIGRvY3VtZW50IHRoZSAtQyBjb21wYXRpYmlsaXR5IG9wdGlvbikuIElnbm9yZQogICAgCW5vdC1hY2Nlc3NpYmxlIGZpZWxkcyBpbiB0aGUgd2Fsay4KCm5iYSAxNyBEZWMgOTkgMDI6MTg6MzAKICAgIC0gc25tcHRyYXBkLmM6IG1ha2UgdGhlIG9pZHMgZ2l2ZW4gdG8gdHJhcGQgaGFuZGxlcnMgcHJvcGVybHkgLjAgdGVybWluYXRlZC4KICAgIAlBZGQgYSBTTk1QLUNPTU1VTklUWS1NSUI6OnNubXBUcmFwQWRkcmVzcy4wCiAgICAJQWRkIHN5c2xvZyBvZiB2MiB0cmFwcyBhbmQgaW5mb3JtcwoKbmJhIDE3IERlYyA5OSAwMzoyMjozOQogICAgLSBsaWJzbm1wLmRlZjogYWRkIHNvbWUgZnVuY3Rpb24gbmFtZXMKCmhhcmRha2VyIDE3IERlYyA5OSAwNzowMzowOQogICAgLSAoc25tcGNtZC4xKTogZG9jdW1lbnQgLUkgYW5kIC1PIGZsYWdzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjA1OjA4CiAgICAtIChzbm1wY21kLjEpOiBtZW50aW9uIHRoYXQgLUlSIGFuZCAtSWIgYXJlIGFjdHVhbGx5IHVzZWQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoxMzowMwogICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgYSBidW5jaCBvZiBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDA3OjI2OjA1CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgcm9jb21tdW5pdHksIHJ3Y29tbXVuaXR5LCByb3VzZXIsIHJ3dXNlci4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoyODozNAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSBmaWxlIGRpcmVjdGl2ZS4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzo0MDo0MwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGNyZWF0ZVVzZXIuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTA6NDIKICAgIC0gKE5FV1MpOiBmaXJzdCBwYXNzIGF0IGNoYW5nZXMuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTE6MDIKICAgIC0gKHNlZHNjcmlwdC5pbik6IFBFUlNJU1RFTlRfRElSRUNUT1JZIHRva2VuIGFkZGVkLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjExOjM0CiAgICAtIChzbm1wZC5jKTogcmVvcmRlciBpbml0KCkgcm91dGluZXMgZm9yIC1IIHRvIHByZXZlbnQgc2VnZmF1bHRpbmcuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTY6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogcHV0IHNubXBkLm8gaW50byB0aGUgb2JqZWN0IGxpc3QsIGFuZCByZW1vdmUgaXQgZnJvbQogICAgICBkaXJlY3QgY29tcGlsYXRpb24gaW4gdGhlIENDIGxpbmsgbGluZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzowNQogICAgLSAodXNtVXNlci5jKTogY2hhbmdlZCBoZWxwIGxpbmUgb2YgY3JlYXRlVXNlciB0byBzZXBlcmF0ZSBERVMgdG9rZW4KICAgICAgZnJvbSB0aGUgcGFzc3BocmFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxNzoyOAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmVkIC1SIGZyb20gdGhlIC1oIG91dHB1dC4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxODoyNAogICAgLSAoTkVXUyk6IHNlY29uZCBwYXNzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE4OjQyCiAgICAtIChzbm1wX2FnZW50X2FwaS4zKTogcmUtc3RydWN0dXJlIGJhc2VkIG9uIHJlY2VudCBjaGFuZ2VzLgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE0OjIzOjI1CiAgICBGaXhlZCBhIGZldyBzcGVsaWxuZyBlcnJvcnMuCgptc2xpZmNhayAxNyBEZWMgOTkgMTU6MjE6MzkKICAgIEFkZCBCaWxsIEZ1bWVyb2xhJ3MgcGF0Y2ggZm9yIEZyZWVCU0QgNC54IHRvIHVzZSBzd2FwaW5mby4KICAgIEluY2x1ZGUgRnJlZUJTRCA0Lnggc3BlY2lmaWMgbWVtb3J5IGFuZCB2bXN0YXQgd2hlbiBidWlsZGluZyB0aGF0IGFnZW50LgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE1OjQxOjE0CiAgICBObyBkdW1teSB2YWx1ZXMgZm9yIEZyZWVCU0QsIHBsZWFzZS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo0NjowOAogICAgLSAoc25tcF9hbGFybS5jKTogbWlzc2luZyAhIG9wZXJhdGVyIG9uIHNpZ25hbCB0ZXN0LgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU1OjQ4CiAgICAtIChORVdTKTogbWVudGlvbiAtSS4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NjoyNwogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMpOgogICAgICAtIGluY2x1ZGUgInNubXBfYWxhcm0uaCIgZm9yIG1pYiBtb2R1bGVzIHRoYXQgbmVlZCB0aGUgY2FsbGJhY2sgZGVmLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDE1OjU3OjEwCiAgICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogY29tcGxldGVseSByZXN0cnVjdHVyZWQuCiAgICAgIC0gZHJhc3RpY2x5IHJlZHVjZXMgbWVtb3J5IHVzYWdlIGZvciBsYXJnZSBkYXRhIHNldHMgKDEvMykuCgpkYXZlcyAyMCBEZWMgOTkgMDM6MDE6NDkKICAgIC0gKGFnZW50eC9SRUFETUUuYWdlbnR4KTogVXBkYXRlZCB0byBkZXNjcmliZSBjdXJyZW50IHN0YXR1cy4KCmRhdmVzIDIwIERlYyA5OSAwNDoxNTo1NQogICAgLSAoYWdlbnRfdHJhcC5jIHNubXBfdmFycy5jIG1pYklJLltjaF0gbWliSUkvKi5jIG1pYklJL3N5c09SVGFibGUuaCk6CiAgICAgIC0gVXNlIFNOTVBfT0lEIHByZWZpeCBkZWZpbml0aW9ucyBpbiBPSUQgc3BlY2lmaWNhdGlvbnMuCiAgICAgIC0gUmVnaXN0ZXIgdGhlIHZhcmlvdXMgTUlCLTIgbW9kdWxlcyBzZXBhcmF0ZWx5IGluIHN5c09SVGFibGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMDY6NDM6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogRm9yY2Ugc2V0IHRvIDEgZm9yIC1EIHNvIG11bHRpcGxlIHN3aXRjaGVzIGNhbgogICAgICBiZSBnaXZlbiAoaWUsIGRvbid0IHRvZ2dsZSB0aGUgdmFsdWUpLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDA2OjQ4OjI0CiAgICAtIChNYWtlZmlsZS5pbik6IG1vdmVkIGtlcm5lbC5vIGludG8gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjM6MjUKICAgIC0gKElQU0VDLU1JQi50eHQpOiByZW1vdmVkCgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjU6MTUKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRvIFVDRC1JUEZXQUNDLU1JQi50eHQKCmhhcmRha2VyIDIwIERlYyA5OSAxMzoyNjowOQogICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIGFuZCB1cGRhdGVkIGZyb20gSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MzA6MDYKICAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjMwOjM2CiAgICAtIChpcGZ3YWNjLmMpOiBtb3ZlZCB0YWJsZSB0byBvbmUgbGV2ZWwgZGVlcGVyIHVuZGVyIG1pYiBub2RlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE1OjM4OjM0CiAgICAtIChNYWtlZmlsZS5pbik6IElQRldBQ0MtTUlCLnR4dCAtPiBVQ0QtSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MTk6MTgKICAgIC0gKGFnZW50X3RyYXAuYyk6IG1ha2UgdXB0aW1lIGEgbG9uZyBmb3IgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzoyMDoxNQogICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBtYWtlIGEgdGhpbmdzIHNpemVfdCBpbnN0ZWFkIG9mIHVfaW50IChmb3IgNjRiaXQgY29kZSkuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MjA6NTUKICAgIC0gKHNubXBfYXBpLmMpOiBEaWdpdGFsIFVuaXggaGFjayBmb3IgYmFkIHJlY3Zmcm9tIGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjMxOjQ1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3Igbm90ZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjoyMwogICAgLSAoTkVXUyk6IG1lbnRpb24gU01JdjIgdXBkYXRlcy4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMjozNwogICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3RyYXAuaAoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjM0OjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUxICkKCm5iYSAyMSBEZWMgOTkgMDI6Mzc6MTkKICAgIC0gc25tcGQuYywgc211eC5jLCBzbm1wX2FwaS5jOiB0YWtlIGF3YXkgc29tZSB1bnVzZWQgdmFyaWFibGVzLgoKbmJhIDIyIERlYyA5OSAwMjo0MTo0MgogICAgLSBtZW1vcnlfZnJlZWJzZDIuYzogbWFrZSBpdCB3b3JrIChhZ2FpbikgZm9yIEZyZWVCU0QtMiA6LSkKCm5iYSAyMiBEZWMgOTkgMDI6NDM6MTUKICAgIC0gaHJfc3RvcmFnZS5jOiBraWxsIGEgZHVtbXkgdmFsdWUKCm5iYSAyMiBEZWMgOTkgMDU6NDY6MjEKICAgIC0gc3lzdGVtLmM6IG5hdWdodHksIG5hdWdodHkgTmllbHMsIGp1c3QgcmVpbmRlbnRpbmcgLi4uCgpuYmEgMjIgRGVjIDk5IDA1OjQ3OjExCiAgICAtIHN5c3RlbV9taWIuYzogdXNlIHNvbWUgI2RlZmluZXMgaSBwbGFjZSBvZiBudW1iZXJzCgpuYmEgMjIgRGVjIDk5IDA1OjU4OjE4CiAgICAtIHZhY20gcm91dGluZXM6IGFsaWdubWVudCB3aXRoIFJGQyBtaWJzLCBwcmVwYXJpbmcgZm9yIHRyYXAgZ2VuZXJhdGlvbgogICAgCWFuZCBhIGJldHRlciBpbnRlZ3JhdGlvbiB3aXRoIHZhcmlhYmxlIHRyZWUgd2Fsa2luZwoKaGFyZGFrZXIgMjIgRGVjIDk5IDE1OjEyOjI2CiAgICAtIChtYXN0ZXIuYyk6IHVzZSBzbm1wX3Nlc3Nfb3BlbiBmb3IgdGhlIHNlY29uZCB0cnkgYXQgb3BlbmluZyB0aGUKICAgICAgbWFzdGVyIHBvcnQuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTU6MTM6MDUKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiBpbmNyZWFzZSBtYXggdmFycyB0byA2NCAod2FzIDE2KS4gIEkgaGF2ZSBhCiAgICAgIHRhYmxlIHdpdGggbW9yZSB0aGFuIHRoYXQgbnVtYmVyIGluIGNvbHVtbnMsIHdoaWNoIGJyZWFrcyBzbm1wdGFibGUuCgpoYXJkYWtlciAyMiBEZWMgOTkgMTY6MzA6MDEKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgICAtIGZpcnN0IHBhc3MgYXQgdm1zdGF0IHN1cHBvcnQgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAyMyBEZWMgOTkgMDg6MjE6MzcKICAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgIC0gbm9uIDgwLWNvbHVtbiB3cmFwcGVkIHZlcnNpb24uCgpoYXJkYWtlciAyOCBEZWMgOTkgMTU6NDI6MDgKICAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZW1vdmUgdGhlICEgaW4gZnJvbnQgb2YgaW5fYV92aWV3LCB3aGljaCBjaGFuZ2VkLgoKaGFyZGFrZXIgMzAgRGVjIDk5IDA3OjUxOjM2CiAgICAtIChzbm1wZC5jKTogdXNhZ2UgbGluZSBvcmRlciBtZXNzZWQgdXAsIGFzIHBvaW50ZWQgb3V0IGJ5IFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDMwIERlYyA5OSAxMjowMDo1OAogICAgRml4IGNvbXBpbGUgZXJyb3JzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDA5OjMxOjEyCiAgICBGaXggYnVnICMgMTIyCgptc2xpZmNhayAzMSBEZWMgOTkgMDk6MzI6NTgKICAgIEFwcGx5IHBhdGNoIHByb3ZpZGVkIGJ5IFNlcmcgVHJ1c2huaWtvdiA8c2F0QHptYWlsLnJ1PiBmb3IgQUlYIDQuMi4xIGtubGlzdAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjExOjEyCiAgICBGaXggYnVnICMxMjUgLSBpbnNlcnQgdW5kZXJzY29yZSBpbnRvIHN0cnVjdCBzbm1wX2lwYWRkciBtZW1iZXIgbmFtZXMuCgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzM6MTYKICAgIEF1dG9jb25mIHBhdGNoIGMvbyBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+Cgptc2xpZmNhayAzMSBEZWMgOTkgMTA6MzY6NDYKICAgIEZpeCB3YXJuaW5ncyBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlcy4KCm1zbGlmY2FrIDMxIERlYyA5OSAxMjo0Mzo1MAogICAgRml4IGJ1ZyAjNDggOiBubyBzdHJjYXNlY21wL3N0cm5jYXNlY21wIGZvciBTaW5peAoKbXNsaWZjYWsgMzEgRGVjIDk5IDEzOjI3OjQ0CiAgICBBcHBseSBzb21lIE5ldEJTRCAxLjMueCwgMS40IHBhdGNoZXMgYy9vIEdyZWEgQS4gV29vZHMgPHdvb2RzQHBsYW5peC5jb20+CgpuYmEgIDMgSmFuIDAwIDE1OjIzOjIxCiAgICAtIEVYQU1QTEUuY29uZi5kZWY6IGFkYXB0IHRvIGNoYW5nZXMgaW4gdmFsaWQgdmFjbSBzeW50YXgKCm5iYSAgMyBKYW4gMDAgMTU6MjY6MDcKICAgIC0gc25tcF92YXJzLmM6IGluY2x1ZGUgYWdlbnRfcmVnaXN0cnkuaCBvbmx5IG9uY2UKCm5iYSAgMyBKYW4gMDAgMTU6MjY6NTEKICAgIC0gc25tcGQuYzogYWRkIGEgbWlzc2luZyBjb25zdCBzcGVjaWZpZXIKCm5iYSAgMyBKYW4gMDAgMTU6Mjc6MjkKICAgIC0gbWliSUkuaDogYWRkIHByb3RvdHlwZSBmb3IgaW5pdF9taWJJSQoKbmJhICAzIEphbiAwMCAxNToyODoyNAogICAgLSB3b21iYXQuW2NoXTogY29ycmVjdCBwcm90b3R5cGUgZm9yIHdvbWJhdF9wYXJzZV9jb25maWcKCm5iYSAgMyBKYW4gMDAgMTU6MzA6MjYKICAgIC0gc3lzdGVtLmg6IGFkZCBwcm90b3R5cGUgZm9yIHN0cmNhc2VjbXAKCm5iYSAgMyBKYW4gMDAgMTU6MzI6NTkKICAgIC0gcGFyc2UuYzogZml4IEZpbGUgdmFyaWFibGUgYmVpbmcgbGVmdCBwb2ludGluZyBpbnRvIHRoZSBzdGFjay4KICAgIAlJZ25vcmUgLmluZGV4IGZpbGUgb24gV0lOMzIgcGxhdGZvcm0KCm5iYSAgMyBKYW4gMDAgMTU6MzQ6MjIKICAgIC0gbWliLmM6IGFsc28gbm90ZSBURVhUVUFMIENPTlZFTlRJT04gaW4gLVRkIG91dHB1dAoKbmJhICAzIEphbiAwMCAxNTozOTo0MAogICAgLSBzbm1wY21kLjE6IGFkZCBzbm1wYnVsa2dldCB0byBsaXN0IG9mIGFwcGxpY2F0aW9ucwogICAgLSBzbm1wdHJhbnNsYXRlLjE6IGV4cGxhaW4gLVQgb3V0cHV0cwogICAgLSBzbm1wdHJhcGQuY29uZi41LmRlZjogZGVmYWx0IHRyYXBoYW5kbGVyIGlzIGltcGxlbWVudGVkCgpoYXJkYWtlciAgNCBKYW4gMDAgMDg6NTg6MjQKICAgIC0gKFJFQURNRSwgRkFRKTogSmFwYW4gbWlycm9yIGxvY2F0aW9uIGNoYW5nZS4KCmhhcmRha2VyICA0IEphbiAwMCAxMDozMzo1NAogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHN0cnVjdC5oCgpoYXJkYWtlciAgNCBKYW4gMDAgMTA6MzU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYWwgd2l0aCBibG9ja2luZyBiZXR0ZXIgaW4gc25tcF9hZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgoKaGFyZGFrZXIgIDQgSmFuIDAwIDE2OjI3OjQ1CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNhbmRlciBTdGVmZmFubjoKICAgICAgLSBBZGQgLUkvdXNyL2luY2x1ZGUvcnBtIGJlY2F1c2Ugb2YgYmFkbHkgd3JpdHRlbiBycG0gaGVhZGVyIGZpbGVzLgoKbmJhICA0IEphbiAwMCAyMjoxMjoxMAogICAgLSBFWEFNUExFLmNvbmYuZGVmLCBGQVEsIHNubXBkLmNvbmYuNS5kZWY6IHJlbW92ZSBhbGwgdHJhY2VzIG9mIHNlY3VyaXR5CiAgICAJbW9kZWwgImFueSIgaW4gImdyb3VwIiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKCm5iYSAgNCBKYW4gMDAgMjM6NTA6MjcKICAgIC0gcGFyc2UuYzogI2lmZGVmIHNvbWUgdmFyaWFibGVzIG5vdCB1c2VkIHVuZGVyIHdpbjMyCgpuYmEgIDQgSmFuIDAwIDIzOjUxOjExCiAgICAtIHNubXB0cmFwZC5jOiBpbXBsZW1lbnQgdHJhbmQgaGFuZGxlcnMgZm9yIHdpbjMyCgpkYXZlcyAgNiBKYW4gMDAgMDE6NTg6NTYKICAgIC0gKG1pYmdyb3VwL21pYklJLmMpOiBSZW1vdmUgcmVkdW5kYW50IGZpbGUKCmhhcmRha2VyICA2IEphbiAwMCAwODo1NzozMQogICAgLSAodXRpbF9mdW5jcy5oKTogcHJvcGVybHkgd3JhcCBzdHJ1Y3QuaCBpbmNsdWRlIGRpcmVjdGl2ZSBmb3IKICAgICAgbm9uLXNvdXJjZS1kaXJlY3RvcnkgaW5jbHVkZS4KCm1hcnogIDYgSmFuIDAwIDEyOjU2OjUwCiAgICB1cGRhdGUgc3ludGF4IChleGFjdCkKCm1hcnogIDYgSmFuIDAwIDEzOjA3OjAzCiAgICB3ZSBzaG91bGQgbm90IHByaW50IHRvIHN0ZGVyciBpZiBzdGRlcnIgbG9nZ2luZyBpcyBkaWFibGVkIC0gdGhpcyB0aG93cyBvZmYgdGhlIGFsaWdubWVudCBvZiB0ZXN0IG91dHB1dCBmb3IgJ21ha2UgdGVzdCcgaW4gYm90aCB1Y2Qtc25tcCBhbmQgUGVybC9TTk1QCgptYXJ6ICA2IEphbiAwMCAxMzoxNDoxMAogICAgdXBkYXRlIGNvbmZpZyBhY2Nlc3Mgc3ludGF4IChleGFjdCkKCmhhcmRha2VyICA2IEphbiAwMCAxNTowODoyOAogICAgLSAoQ09QWUlORyk6IHkyayBidWcuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDg6NDgKICAgIC0gKG1pYjJjKTogcmVtb3ZlZCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQuCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDk6MjAKICAgIC0gKG1pYjJjLmNvbmYpOiB1bnF1b3RlZCBxdW90ZXMgcXVvdGVkLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDA5OjI5OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBiZXR0ZXIgaGFuZGxpbmcgb2Ygd3JpdGUgZmFpbHVyZXMuCgpoYXJkYWtlciAgNyBKYW4gMDAgMTA6Mzg6NDgKICAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiB1cGRhdGUgdG8gdjQgQVBJIHNldCBjb2RlLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDExOjIyOjQwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgdHJhbnNsYXRlZCBPSURzLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDE2OjIxOjUwCiAgICAtICh2YWNtX3ZhcnMuYyk6IHByb3Blcmx5IGdyb3VwIHJ3L3JvdXNlcnMgaW50byB1c20gbm90IHYxL3YyYy4KCm5iYSAgNyBKYW4gMDAgMjM6NDM6MTAKICAgIC0gY29uZmlndXJlLmluOiBzb21lIG1pc3NpbmcgIngiIGluIHRlc3RzIGZvciAtLXdpdGgtb3BlbnNzbCBhbmQKICAgIAktLWRpc2FibGUtZGV2ZWxvcGVyCgpuYmEgIDggSmFuIDAwIDAwOjU2OjMwCiAgICAtIGNvbmZpZ3VyZS5pbjogYnVnZml4IGZvciBhIGJ1Z2ZpeCBidWcKCm1zbGlmY2FrICA4IEphbiAwMCAxMTo0NDo1OAogICAgRml4IGJ1aWxkIGZvciBMaW51eCBSZWRIYXQgNi4xIChjYW50IGxpbmsgbGlid3JhcCB3aXRob3V0IGxpYm5zbCkuCgptc2xpZmNhayAgOCBKYW4gMDAgMTI6MDc6NDQKICAgIFVzZSBrbmxpc3QgaWZmIGFpeDQgYW5kIEhBVkVfS05MSVNUIFtub3QgY29tcGxldGUgdy9vIGNvbmZpZ3VyZSBtb2RzXQoKZGF2ZXMgMTAgSmFuIDAwIDAxOjM3OjMyCiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS5oKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUuCgpkYXZlcyAxMCBKYW4gMDAgMDI6MzE6MzkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IERpZmZlcmVudGlhdGUgbWF4LXJlcGV0aXRpb24gYW5kIG5vbi1yZXBlYXRlciBlcnJvcnMuCgpkYXZlcyAxMCBKYW4gMDAgMDM6MDY6NDIKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IENvdW50IG51bWJlcnMgb2YgdmFyaWFibGVzIHJlcXVlc3RlZC9zZXQKCmRhdmVzIDEwIEphbiAwMCAwNjoxMjo0MAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFJlLXN0cnVjdHVyZSBnZXRfdXB0aW1lKCkgdG8gY2FjaGUgYm9vdCB0aW1lLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjE0OjAzCiAgICBBbGxvdyBNU1ZDKysgNS54IHVzZXJzIHRvIGJ1aWxkIHVzaW5nIHRoaXMgd29ya3NwYWNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDEzOjIxOjMwCiAgICBRdWFsaWZ5IHVzZSBvZiB3aXRodmFsIHRvIGRlZmluZSBsaWJyYXJ5IGFuZCBpbmNsdWRlIHNlYXJjaCBwYXRocy4KCm1hcnogMTAgSmFuIDAwIDE0OjIxOjE0CiAgICBDaGVja2luZyBpbiBTTk1QLTMuMS4wYjEKCm1hcnogMTAgSmFuIDAwIDE0OjM0OjUwCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDEwIEphbiAwMCAxNDo0MDowNAogICAgYWRkIG1pYmxvYWQKCmhhcmRha2VyIDEwIEphbiAwMCAxNTozNjoxOAogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzdGRsaWIuaCBhbmQgbWFsbG9jLmguCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6MzY6NDAKICAgIC0gKFN2M2NvbmZpZyk6IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UuCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6Mzg6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbWFrZSAtLXdpdGhvdXQtZWZlbmNlIHdvcmsuCiAgICAgIC0gY2hlY2sgZm9yIC1sbnNsIG1vcmUgZXhwbGljaXRseS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMDo1MQogICAgdWNkRGVtb1B1YmxpYy5jIC0gcmVtb3ZlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGZyb20gd3JpdGUgbWV0aG9kLgogICAgc25tcF92YXJzLmMgICAgIC0gcHJvcGVyIG9pZCBjb21wYXJlOyBubyBjb3B5IGZyb20gc2F2ZSBpZiBvaWRzIGV4YWN0IG1hdGNoCiAgICBzbm1wZC5jICAgICAgICAgLSB0ZXJtaW5hdGUgc3RhdGVtZW50LgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMxOjE2CiAgICBzbm1wdHJhbnNsYXRlLjEgICAtIHJlbW92ZSBqdW5rIGxpbmUuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzE6MzgKICAgIHNubXB0cmFuc2xhdGUuYyAgLSBzaW1wbGUgZGVmYXVsdCBjYXNlLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMyOjA4CiAgICBzbm1wX2FwaS5jICAgIC0gYmV0dGVyIGNvbW1lbnQgZm9yIHNubXBfb2lkX2NvbXBhcmUuCiAgICByZWFkX2NvbmZpZy5jIC0gcmVtb3ZlIHNpemVvZih1X2NoYXIpIGZyb20gbWFsbG9jIHNpemUgY2FsYy4KICAgIHNjYXBpLmggICAgICAgLSBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDExIEphbiAwMCAwMTozMzo0NQogICAgVHJvbGxpbmcgZm9yIG1hbGxvYyBlcnJvcnM7IG1vcmUgZ3JhY2VmdWwgZGVncmFkYXRpb24uCgptc2xpZmNhayAxMSBKYW4gMDAgMDE6NTM6MDgKICAgIEdsZWFuIHJlZnMgdG8gbWliSUkubyBmcm9tIHRoaXMgbWFrZWZpbGUuCgptc2xpZmNhayAxMSBKYW4gMDAgMDc6NDQ6NTAKICAgIEFkZCBJTl9VQ0RfU05NUF9TT1VSQ0UgdG8gbm90IGJyZWFrIFdpbjMyIGJ1aWxkcy4KCm1zbGlmY2FrIDExIEphbiAwMCAwNzo1OToyMwogICAgS2VlcCB3aW4zMiByZWxlYXNlIGJ1aWxkIGZyb20gYnJlYWtpbmcuCgptc2xpZmNhayAxMSBKYW4gMDAgMDg6MTA6MTAKICAgIEluaXQgZmlsZSBjb3VudCBhdCB6ZXJvLCBub3QgYnkgaW5jcmVtZW50aW5nIHJhbmRvbSB2YWx1ZS4KCm1zbGlmY2FrIDExIEphbiAwMCAwOToxMzozOAogICAgUmVzdG9yZSBtZW1kdXAgdXNhZ2UgdG8gaXRzIGZvcm1lciBsdXN0ZXIuCgptYXJ6IDExIEphbiAwMCAxMDozNzoyMQogICAgcmVtb3ZlIGJhZCBzZXNzaW9uIHRlc3QgLSBzZXNzaW9uLnQgaGFzIGl0IGFscmVhZHkgLSBub3RlIHRoZSBjYWxsIHRvIGdldGhvc3RieW5hbWUgY2FuIGhhbmcgZm9yIHNvbWUgdGltZSBpZiBETlMgaXMgbm90IHNldHVwIGNvcnJlY3RseSAtIGFueW9uZSBrbm93IGEgd2F5IGFycm91bmQgdGhpcz8KCm1zbGlmY2FrIDExIEphbiAwMCAxNTowNTowOQogICAgVXNlIENGTEFHUyB3aGVuIGxpbmtpbmcgKGNvdWxkIGhhdmUgcHJvZmlsZSBzd2l0Y2gsIGV0YykuCgpoYXJkYWtlciAxMiBKYW4gMDAgMTE6MTY6MjcKICAgIC0gKHNubXB2My5jKTogY2FzdCBtYWxsb2MgcmV0dXJucy4KCm1zbGlmY2FrIDEyIEphbiAwMCAyMTowOTo0NwogICAgVXNlIERFQlVHTVNHT0lEIGxpYmVyYWxseSwgcmVwbGFjaW5nIHNwcmludF9vYmppZDsgc21hbGwgc3BlZWR1cC4KCmRhdmVzIDEzIEphbiAwMCAwMjo0Njo0NwogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBSZW1vdmUgZXh0cmFuZW91cyBicmFja2V0LgoKbXNsaWZjYWsgMTMgSmFuIDAwIDA1OjM2OjIxCiAgICBObyBnZXRfYm9vdHRpbWUgc3VwcG9ydCBmb3IgY3lnd2luICh5ZXQpLiBIb3BlZnVsbHkgYSB0ZW1wb3JhcnkgY29uZGl0aW9uLgoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMxOjQ0CiAgICAtIChzbm1wbGliL3BhcnNlLltjaF0pOiBVbmxvYWQgTUlCIG1vZHVsZQogICAgCShOLkI6IFNvbWV3aGF0IHNpbXBsaXN0aWMgd2l0aCByZWdhcmQgdG8gbXVsdGlwbHktbG9hZGVkIG5vZGVzKQoKZGF2ZXMgMTMgSmFuIDAwIDA2OjMzOjQwCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5nIG9mIHVubG9hZGluZyBNSUIgbW9kdWxlcy4KCm1zbGlmY2FrIDE0IEphbiAwMCAwOTozMzozOQogICAgU21hbGwgY29tcGlsZSBmaXggYW5kIGRlYnVnIG1lc3NhZ2UgcmVzdG9yYXRpb24uCgpoYXJkYWtlciAxNCBKYW4gMDAgMTE6MzQ6MjUKICAgIC0gKGJ1Zy1yZXBvcnQpOiBncmVwIGZvciBjb25maWd1cmUgZmxhZ3MKCmhhcmRha2VyIDE0IEphbiAwMCAxNjowOTowOQogICAgLSAoc2NhcGkuYyk6IGltcGxlbWVudCBERVMgZW5jcnlwdGlvbi4KCmhhcmRha2VyIDE0IEphbiAwMCAxNjoxMDoyOQogICAgLSAoTkVXUyk6IHJlbW92ZSBleHBvcnQgY29udHJvbCBub3RlIGFib3V0IERFUy4KCmRhdmVzIDE3IEphbiAwMCAwNjoxMzozOQogICAgLSAobWFuL3NubXB0cmFwZC44KTogRGVzY3JpYmUgZGVmYXVsdCBsb2dnaW5nIGJlaGF2aW91ci4KCmRhdmVzIDE3IEphbiAwMCAwOTowMjozMgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBEaXNjYXJkICJ0b28tbGF0ZSIgcmVzcG9uc2VzIGZyb20gb3ZlcmxhcHBlZCByZWdpb25zLgoKbWFyeiAxNyBKYW4gMDAgMTI6NDc6NTgKICAgIGFkZGVkIHYyIHRyYXAKCm1hcnogMTggSmFuIDAwIDA3OjAwOjI2CiAgICBtb2RpZmllZCBmb3IgdjItdHJhcC4KCm1hcnogMTggSmFuIDAwIDA3OjU0OjEyCiAgICBmaXggZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiB2YWxzIGZvciB0cmFwIGZ1bmNzLCBjbGVhbiB1cCBwZHUKCm1zbGlmY2FrIDE4IEphbiAwMCAwODoxNDo0MgogICAgUHJldmVudCBhcnJheSBib3VuZHMgZXJyb3Igd2hlbiBjcmVhdGluZyBzcGVjaWZpYyB0cmFwIG9pZC4KCm1zbGlmY2FrIDE4IEphbiAwMCAxNDoyMzo0NAogICAgTGF0ZXN0IHZtc3RhdF9zb2xhcmlzMiBmcm9tIHRoZSBhdXRob3IgSm9jaGVuIEttaWV0c2NoLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjIyOjA2CiAgICBDbGVhbnVwIGFyb3VuZCBpcDZfdmFycy5oIGluY2x1ZGUgKG5vICNpZiAwKQoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjI1OjUzCiAgICBSZW1vdmUgY29tbWVudGVkIG91dCBvYmplY3RzIHRoYXQgYXJlIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUuCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6Mjk6MDEKICAgIDEuTWFrZSBzbm1wX2dldF9kb19sb2dnaW5nIHZpc2libGUgZnJvbSBETEwKICAgIDIuQXBwbHkgV2luMzIgcGF0Y2ggZnJvbSBSLlN0b3J5IHRvIGFjdGl2YXRlIG1pYiBzdGF0cyBtb2R1bGUgKHNubXBfbWliKS4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMTozNzowMgogICAgQ29uc2lzdGVudCBnZXRwYWdlc2l6ZSAoZmlyc3QgZGl2aWRlIGJ5IDEwMjQpLgoKZGF2ZXMgMjAgSmFuIDAwIDA0OjI1OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTdXBwb3J0IHNlbGVjdGl2ZSBiaW5kaW5nIG9mIHNlcnZlciBhZGRyZXNzZXMuCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDY6MDQKICAgIFJlbW92ZSBwYXJ0eSBjcnVkOyBzcGVsbCBjaGVjay4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0Njo0MQogICAgQWRkIGNvbnN0IHRvIGNsZWFudXAgYSBmZXcgc2lnbmF0dXJlcy4KCm1zbGlmY2FrIDIxIEphbiAwMCAwMTo0OTozNQogICAgTWluaW1pemUgZGF0YSBoYW5kbGluZyBhbmQgdXNlIHJlZ2lzdGVyIHZhcmlhYmllcyBpbgogICAgc25tcF9vaWRfY29tcGFyZSBhbmQgY29tcGFyZV90cmVlLgoKbWFyeiAyMSBKYW4gMDAgMDc6Mjc6MTMKICAgIGFkZGVkIHYzIGluZm9ybQoKbWFyeiAyMSBKYW4gMDAgMDg6MDA6MjcKICAgIGluZm9ybS4KCm1hcnogMjEgSmFuIDAwIDA4OjEzOjI1CiAgICBpbmZvcm0KCm1hcnogMjEgSmFuIDAwIDEwOjQ3OjI0CiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyMSBKYW4gMDAgMTE6MTk6MDkKICAgIGNvbmZpZ19hcmNoX3JlcXVpcmUgc29sYXJpczIgdmVyc2lvbiBvZiB2bXN0YXQuCgpuYmEgMjMgSmFuIDAwIDA4OjUxOjM5CiAgICAtIHBhcnNlLmM6IGFkZCBzb21lIG1vcmUgZXJyb3IgY2hlY2tpbmcgdG8gZ2V0b2lkCgpuYmEgMjMgSmFuIDAwIDEyOjQyOjExCiAgICAtIHBhcnNlLmM6IGZpeCBtZXJnaW5nIG9mIGFub255bW91cyBub2RlcyB3aGVuIHRoZXkgYXJlIG5hbWVkCgpuYmEgMjMgSmFuIDAwIDEyOjQzOjU0CiAgICAtIHBhcnNlLmM6IGVycmVub3VzID0+IGVycm9uZW91cwoKbWFyeiAyMyBKYW4gMDAgMTY6NDE6MDYKICAgIGhhbmRsZSBhZGRpbmcgT1BBUVVFIHZhcnMgZm9yIHNldHRpbmcgYW5kIHRyYXBzIGV0Yy4KCmRhdmVzIDI0IEphbiAwMCAwNzoyMTozNAogICAgLSAoZXhhbXBsZXMve2V4YW1wbGUsd29tYmF0fS5bY2hdKToKICAgICAgLSBDb25zb2xpZGF0ZWQgZXhhbXBsZSBtb2R1bGVzIGludG8gb25lLCBpbmNsdWRpbmcgY29uZmlnIGFuZCBTRVQgc3VwcG9ydC4KCm1hcnogMjQgSmFuIDAwIDA4OjU5OjMyCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptc2xpZmNhayAyNCBKYW4gMDAgMDk6NDQ6NDUKICAgIE1ha2Ugc3VyZSBrc3RhdF9mZCBpcyBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAwOTo1NTozMgogICAgRml4IEJ1ZyAjMTQ0IGl0ZW1zIDEsMyw0IDogY2FzZSBpbnNlbnNpdGl2ZSBjaGVjayBmb3IgImFsbCIga2V5d29yZC4KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDowNToxMgogICAgSXRvanVuJ3MgbmV0YnNkIEVMRiBwYXRjaCArIHJlbW92ZSB3b21iYXQgW0RhdmUncyBleGFtcGxlIGZpeF0KCm1zbGlmY2FrIDI0IEphbiAwMCAxMDoxNDo1NgogICAgRml4IHByaW50aW5nIElNUExJRUQgaW5kZXggKGZyb20gYXNzb2NpYXRlIG9mIEouIEttaWV0c2NoKSBtb2RpZmllZCBhbmQgYXBwbGllZC4KCm1hcnogMjQgSmFuIDAwIDEwOjM2OjQzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDI1IEphbiAwMCAwNjo0OTo0MwogICAgc3ludGF4IGZvciB3aW4zMiBidWlsZAoKbWFyeiAyNSBKYW4gMDAgMTE6NDc6MTIKICAgIGFkZCBtaXNzaW5nIHN5bmJvbHMgZm9yIHBlcmwvU05NUCBtb2R1bGUKCm1hcnogMjUgSmFuIDAwIDEyOjA1OjU5CiAgICBhZGRpdGlvbmFsIHdpbjMyIGluc3RhbGwgbm90ZXMKCm5iYSAyNSBKYW4gMDAgMTM6NTI6NDIKICAgIC0gcGFyc2UuYzogZml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBvZiB0Y19pbmRleAoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU1OjMzCiAgICAtICh2ZXN0aW50ZXJuZXR0L2Rpc2tpby5bY2hdKTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKaGFyZGFrZXIgMjUgSmFuIDAwIDEzOjU2OjAyCiAgICAtIChWRVNULUlOVEVSTkVUVC1NSUIudHh0KTogUmFnbmFyIEtqcnN0YWQncyBkaXNraW8gbWliLgoKbmJhIDI1IEphbiAwMCAxNDoxMjo1OAogICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIE1ha2VmaWxlLmluOgogICAgCVVwZGF0ZSB0byB0aGUgY3VycmVudCBkcmFmdCBIT1NULVJFU09VUkNFUyAoZHJhZnQtb3BzLWhvc3RtaWItMDEpCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZSk6IGhlbHAgdXBkYXRlCgpoYXJkYWtlciAyNSBKYW4gMDAgMTQ6NTA6NTYKICAgIC0gKHNubXBfYWxhcm0uMywgc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGZpeCByZWdpc3RyYXRpb24gZnVuY3Rpb24gdG8gZG8gd2hhdCBpdCBzYXlzIGl0IHNob3VsZCBkby4KCm1zbGlmY2FrIDI1IEphbiAwMCAxOTozMDo1MQogICAgTGFyZ2VyIGJ1ZmZlciBmb3IgcHJpbnRfbW9kdWxlX25hbWU7IEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmIGluIGdldF90Yy4KCm1zbGlmY2FrIDI1IEphbiAwMCAyMTo0NjoxNAogICAgbWliLmM6cHJpbnRfdHJlZV9ub2RlIC0gc2hvdyBtb2R1bGUgbmFtZSBvbmNlIGluIC0tIEZST007CiAgICBwYXJzZS5jOiBzaG93ICJDYW5ub3QgZmluZCBtb2R1bGUiIG9uY2UgcGVyIG1pc3NpbmcgbW9kdWxlLgoKbXNsaWZjYWsgMjYgSmFuIDAwIDA3OjE0OjUwCiAgICBmaXggY29tcGlsZSBlcnJvciB3aGVuIC0td2l0aG91dC1yb290LWFjY2VzcyBpcyB1c2VkIChzdHJhdXNzQGlici5jcy50dS1icy5kZSkKCm1zbGlmY2FrIDI2IEphbiAwMCAwNzoyNjoyMgogICAgQWNrbm93bGVkZ2UgbW9yZSBjb250cmlidXRvcnMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTA6MjQ6MjEKICAgIC0gKGdldFZhbHVlcy5wbSkgZ2V0VmFsdWVzLnBtIHdhcyBub3RlZCBtaXNzaW5nCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6Mjk6NTQKICAgIC0gKFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LCBWRVNULUlOVEVSTkVUVC1NSUIudHh0KToKICAgICAgUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gZml4IHRoZSBkaXNraW8gbWliLCBjb252ZXJ0IHRvIFNNSXYyLCBhbmQgbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzA6NDIKICAgIC0gKFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gcHJlZml4IG9pZCB3aXRoICJ1Y2QiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMxOjAwCiAgICAtIChVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHByZWZpeCBvaWRzIHdpdGggInVjZCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzI6MjUKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBjbGVhbiB1cCBhbmQgcmVmb3JtYXQgc3ViLXJlZ2lzdHJhdGlvbiBjb21tZW50cy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozNDoyMAogICAgLSAoVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNvcnJlY3QgdWNkLXNubXAtY29kZXJzIGVtYWlsIGFkZHJlc3MgdG8gcmVwbGFjZSAiZWNlIiB3aXRoICJ1Y2Qtc25tcCIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6MDY6MzEKICAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGFkZCBhYmlsaXR5IHRvIGFsbG93IHNlbmRpbmcgdHJhcHMgdG8gcG9ydHMgb3RoZXIgdGhhbiAxNjIuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6Mjg6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDI2IEphbiAwMCAxNjo1Mzo0MQogICAgLSAoc25tcHYzLmMpOiBmaXggcHJpdiBrZXkgbGVuZ3RoIGV4dHJhcG9sYXRpb24uICBTaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseT8uCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6NTQ6NDMKICAgIC0gKFN2M0RFU2NvbmZpZywgVDAyM3NubXB2M2dldE1ENURFUyk6IGZpeCBERVMgdGVzdCBzbyBpdCB3b3Jrcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxNTowNwogICAgLSAoc25tcGNtZC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwgc25tcHVzbS4xKToKICAgICAtIGJhZGx5IGRvbmUgdXBkYXRlcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxNzoxODoxNwogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMiApCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MzI6NDEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYWxsb3cgJywnIHNlcGVyYXRlZCAtLXdpdGgtKi1tb2R1bGVzIGZsYWcgdmFsdWVzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE5OjIyOjUzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNvbW1hLCBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYS1jaGFtZWxlb24uCgpoYXJkYWtlciAyNyBKYW4gMDAgMDg6MzM6NDMKICAgIC0gKGRlZmF1bHRfc3RvcmUuYyk6IG1ha2UgY29uZmlnIHBhcnNlciBoYW5kbGUgIiIgKG51bGwpIHBhcnNlZCBzdHJpbmdzLgoKbWFyeiAyNyBKYW4gMDAgMTE6MTQ6MDkKICAgIHJlbW92ZSBuby1vcCBzbm1wX3N5bmNoX3NldHVwCgptc2xpZmNhayAyNyBKYW4gMDAgMTQ6NTE6MzkKICAgICAxLiBGaXggbWVtb3J5IGxlYWsgd2hlbiBhbm9ueW1vdXNseSBuYW1lZCBub2RlcyBhcmUgdXNlZC4KICAgICAyLiBIYWNrIGFyb3VuZCBzbWljbmcncyAiU01JICIgc3RhdGVtZW50cyB0byBwcmV2ZW50IG90aGVyIG1lbW9yeSBsZWFrcy4KCm1zbGlmY2FrIDI3IEphbiAwMCAxNjoxMzo1OAogICAgUmVtb3ZlIGhhY2sgYXJvdW5kICJTTUkiIHRva2VuOyBrZWVwIHRoZSBnb29kIHBhcnQgb2YgdGhlIHByZXZpb3VzIHBhdGNoLgoKbXNsaWZjYWsgMjggSmFuIDAwIDA3OjE4OjA5CiAgICBTb21lIHZhcmlhYmxlIHJlbmFtaW5nIGZvciBjb25zaXN0ZW5jeSwgZXJyb3IgY2hlY2tpbmcKICAgIGltcHJvdmVkLCBtaXNzaW5nIHN0cmluZy5oIGluY2x1ZGVkLiAgUGF0Y2ggc3VwcGxpZWQgYnkgYXV0aG9yLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjMwOjIwCiAgICBGaXggc3BlbGwgTElUVExFX0VORElBTi4gVGhhbmtzIHRvIHRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjM4OjIyCiAgICBDaGFuZ2UgYWdlbnR4X3tidWlsZCxwYXJzZX1fc2hvcnQgLiBUaGFua3MgdG8gR2VyYXJkIFRhbG1hbkBoaXR0Lm5sLgoKbXNsaWZjYWsgMjggSmFuIDAwIDEyOjUyOjI1CiAgICBUaGlzIHdpdGggcHJldmlvdXMgdHdvIGNoYW5nZXMgY29tcGxldGVzIGEgcGF0Y2ggZm9yIGl0ZW1zIDIsMyw0CiAgICBmb3IgYnVnICMxNDkuCgpuYmEgMzAgSmFuIDAwIDAzOjAxOjUyCiAgICAtIGhvc3QuaDogY29uZmlnX3JlcXVpcmVfbWliKEhPU1QtUkVTT1VSQ0VTLVRZUEVTKQoKbmJhIDMwIEphbiAwMCAwMzowNDoyMgogICAgLSBocl9kaXNrLmM6IGNvbnZlcnQgdG8gMWsgYmxvY2tzCgpuYmEgMzAgSmFuIDAwIDAzOjA5OjM4CiAgICAtIGhyX3N0b3JhZ2UuYzogY29udmVydCBmcm9tIHBhZ2VzIHRvIDFrIGJsb2NrcwoKbmJhIDMwIEphbiAwMCAwMzoxMToyOAogICAgLSBpZi5jOiBkZWZlbnNpdmUgdGVzdCBmb3IgbWlzc2luZyBvYmplY3RzIChpdCBtaWdodCBmYWlsIHRvIHNob3cKICAgIAlkb3duIHN0YXR1cyBwcm9wZXJseSkKCm1hcnogMzAgSmFuIDAwIDA4OjE5OjM0CiAgICBjcmVhdGUgVjMgdXNlciBlbnRyeSwgY2xlYW51cAoKbWFyeiAzMCBKYW4gMDAgMTA6NDI6MzYKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMKICAgIAogICAgTm90ZTogS05PV04gQlVHUwogICAgdGhlIG5ldyBxdW90ZWQgT0NURVRTVFIgaW5zdGFuY2UgaWRlbnRpZmllcnMgcmV0dXJuZWQgYnkgZ2V0X3N5bWJvbAogICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKCm1hcnogMzAgSmFuIDAwIDEwOjQ0OjM3CiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgICAKICAgIE5vdGU6IEtOT1dOIEJVR1MKICAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgICAKICAgIG5vdCBzdXJlIHRoYXQgdGhpcyBldmVyIHdvcmtlZCAtIHdpbGwgaGF2ZSB0byBsb29rIGF0IG9sZCBPQ1RFVFNUUgogICAgYmVoYXZpb3VyIGFuZCBzZWUgaG93IHRvIHJlY3JlYXRlIGl0CgptYXJ6IDMwIEphbiAwMCAxMDo1ODowMgogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCgpkYXZlcyAzMSBKYW4gMDAgMDE6MDU6MTYKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBMb2cgZmFpbGVkIE1JQiByZWdpc3RyYXRpb25zLgoKZGF2ZXMgMzEgSmFuIDAwIDAxOjQ1OjE1CiAgICAtIChhZ2VudC9hZ2VudF90cmFwLmMpOiBJbmNsdWRlIGluc3RhbmNlIHN1YmlkZW50aWZpZXIgaW4gc25tcFRyYXBPSUQgYW5kCiAgICAJc25tcFRyYXBFbnRlcnByaXNlIE9JRCBkZWZpbml0aW9ucy4gIChUaGFua3MgdG8gR2VyYXJkIFRhbG1hbikKCmRhdmVzIDMxIEphbiAwMCAwMjo0MDowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUmVzdG9yZSB0cmFkaXRpb25hbCBzb2NrZXQgZmllbGQgbmFtZXMuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MDA6MTYKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIElyaXggc29ja2V0IGhhbmRsaW5nLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjAzOjE1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIEF0dGVtcHQgdG8gZGV0ZWN0IG5vbi10cmFkaXRpb25hbCBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgKG9uIElyaXggNi54KS4KCmRhdmVzIDMxIEphbiAwMCAwMzoxNDo1MAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogSW5pdGlhbGl6ZSBhZGRybGVuIGluIF9zZXNzX3JlYWQoKS4gIChGcmFuayBTdHJhdXNzKQoKZGF2ZXMgMzEgSmFuIDAwIDAzOjQxOjA4CiAgICAtIChBR0VOVC50eHQpOiBSZXZpc2VkIGFuZCB1cGRhdGVkIHZlcnNpb24uCgpkYXZlcyAzMSBKYW4gMDAgMDc6NDk6NTAKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gSW1wcm92ZWQgY2hlY2tpbmcgZm9yIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUxOjU0CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBdHRlbXB0IHRvIG1pbWljIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjUzOjUyCiAgICAtIChzbm1wbGliL2FzbjEuYyBzbm1wbGliL3NubXAuYyBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdXNtLmMpOgogICAgICAtIERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU1OjA2CiAgICAtIChzbm1wbGliL3NubXB2My5bY2hdKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCiAgICAgIC0gTi5COiBUaGlzIGNoYW5nZXMgdGhlIGludGVyZmFjZSBvZiBzbm1wdjNfZ2VuZXJhdGVfZW5naW5lSUQoKSBzbGlnaHRseS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1NjozOAogICAgLSAoYXBwcy9zbm1wdGVzdC5jKTogRG9uJ3QgYXNzdW1lIHNpemVfdCBpcyBzaWduZWQgKFBla2thIEt5dG9sYWFrc28pCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTc6NTYKICAgIC0gKG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuW2NoXSk6CiAgICAgIC0gUHJvdmlkZSBhbiBleGFtcGxlIGZvciBob3cgdG8gdHJpZ2dlciBhIHRyYXAuCgptYXJ6IDMxIEphbiAwMCAxMDo0MToxNgogICAgc2V0IERTX0xJQl9ET05UX0JSRUFLRE9XTl9PSURTIHRvIGdldCBwcmV2aW91bHN5IHJlbGVhc2VkIGJlaGF2aW91ciBvZiBnZXRfc3ltYm9sIHdydCBvY3RldCBiYXNlZCBpbnN0YW5jZSBpZHMgKGkuZS4sIG5vIGRvdWJsZS1xdW90aW5nKQoKZGF2ZXMgIDEgRmViIDAwIDAxOjQ5OjU1CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUgc25tcGxpYi9zbm1wX2FwaS5oKToKICAgICAgLSBGaXggYnJva2VuIHNldHRpbmcgb2Ygc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIGNob2ljZS4KCmRhdmVzICAxIEZlYiAwMCAwMzozNzoyNQogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggc2Vzc2lvbiBJRCBoYW5kbGluZyB3aGVuIGRlbGVnYXRpbmcgcmVxdWVzdHMuCgpkYXZlcyAgMSBGZWIgMDAgMDQ6MTk6MTYKICAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDYXRjaCBjb21tb24gaW52YWxpZCBjb25maWd1cmUgb3B0aW9ucy4KCmRhdmVzICAxIEZlYiAwMCAwNToyNzowMwogICAgLSAoRkFRKTogRXhwYW5kIHRoZSBkZXNjcmlwdGlvbiBvZiBnZW5lcmF0aW5nIHRyYXBzIGZyb20gdGhlIGFnZW50IHNsaWdodGx5LgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjMyOjAzCiAgICAtIChkaXNraW8uKik6IG1vdmVkIHRvIHRoZSB1Y2Qtc25tcCBkaXJlY3RvcnkKCmhhcmRha2VyICAxIEZlYiAwMCAwODozNDowOQogICAgLSAoZGlza2lvLmgpOiBsb2FkIHRoZSBtaWIuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzQ6MjQKICAgIC0gKGRpc2tpby5jKTogbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuMTUuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDM6MDMKICAgIC0gKE5FV1MpOiB1cGRhdGUgKGFnYWluKS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0NTo0MQogICAgLSAoc25tcGNtZC4xKTogLlBQIC0+IC5JUCBmb3IgLU9iLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQ2OjA3CiAgICAtIChzbm1wdXNtLjEpOiBjaGFuZ2VkIGNvbnRleHQgc3RyaW5nIGluIGV4YW1wbGVzIHRvICIiLgoKbXNsaWZjYWsgIDEgRmViIDAwIDExOjI2OjM2CiAgICBGaXh1cCBtb3JlIHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29ucy4KCmRhdmVzICAyIEZlYiAwMCAwMToxMjozNwogICAgLSAoaG9zdC9ocl9kaXNrLmMpOiBGaXggc29sYXJpcyBpbml0aWFsaXNhdGlvbiwgcGx1cyBleHRyYSBkZWJ1Z2dpbmcgaW5mby4KCm1zbGlmY2FrICAyIEZlYiAwMCAwNDo0NDoyMwogICAgUmVtb3ZlIGRlcGVuZGVuY2llcyBvbiAobW92ZWQpIHZlc3RpbnRlcm5ldHQvZGlza2lvCgpuYmEgIDIgRmViIDAwIDA2OjQ0OjMxCiAgICAtIHNvbGFyaXMyLjguaDogU29sYXJpcyA4IHNlZW1zIGNsb3NlIHRvIFNvbGFyaXMgNwoKbmJhICAyIEZlYiAwMCAwNjo0NToyNQogICAgLSBocl9kaXNrLmM6IGFkZCBOZXRCU0Qgc3VwcG9ydAoKaGFyZGFrZXIgIDIgRmViIDAwIDA3OjE3OjI4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwCgpkYXZlcyAgMiBGZWIgMDAgMDg6MDI6NDYKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogQ29ycmVjdGx5IGhhbmRsZSBpbmRpdmlkdWFsbHkgZXhjbHVkZWQgaW5zdGFuY2VzCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NDI6MTcKICAgIEFsbG93IC1DbyB0byBhZmZlY3QgdGhlIG91dGNvbWUuCgptc2xpZmNhayAgMiBGZWIgMDAgMDg6NTI6NDMKICAgIGZpeCB0aGUgZmF0LWZpbmdlcmluZyBwYXRjaCBJIGp1c3QgbWFkZS4gZmVoLgoKaGFyZGFrZXIgIDIgRmViIDAwIDEwOjUyOjMzCiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIFJvYmVydCBNaWxlczoKICAgICAgLSB2YXJpb3VzIGZpeGVzOgogICAgICAgIDEpIFRoZSBmaXJzdCByZWdpc3RyYXRpb24gcmVxdWVzdCBjb3VsZCBiZSBsb3N0LgogICAgICAgIDIpIFJlZ2lzdHJhdGlvbiBkZWxldGUgcmVxdWVzdHMgbmV2ZXIgcmVjZWl2ZWQgYSByZXNwb25zZS4KICAgICAgICAzKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIHdlcmUgbm90IGZpbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiB3aGVuIHRoZQogICAgICAgICAgIGRlbGV0ZSdzIHByaW9yaXR5IHdhcyBzZXQgdG8gLTEuCiAgICAgICAgNCkgTm9uLXplcm8gdmFsdWVzIHdlcmUgbm90IGJlaW5nIGVuY29kZWQgcHJvcGVybHkgaW4gcmVnaXN0cmF0aW9uCiAgICAgICAgICAgcmVzcG9uc2VzLgoKbWFyeiAgMiBGZWIgMDAgMTQ6MTg6MDkKICAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwoKbXNsaWZjYWsgIDIgRmViIDAwIDE0OjE4OjIyCiAgICBMZXQgaHJQcm9jZXNzb3JMb2FkIG91dCBvZiB0aGUgZ2VuaWUncyBib3R0bGUuCgptc2xpZmNhayAgMiBGZWIgMDAgMTY6MjQ6MTUKICAgIFRvdWNodXAgZm9yIGJ1aWxkaW5nIG1vcmUgTUlCIG1vZHVsZXMgaW4gV2luMzIgKE1TVkMpLgoKbXNsaWZjYWsgIDIgRmViIDAwIDE2OjM2OjIxCiAgICBUb3VjaHVwIHRvIGJ1aWxkIG1vcmUgTUlCIG1vZHVsZXMgb24gV2luMzIuCgpkYXZlcyAgMyBGZWIgMDAgMDE6MzU6MTIKICAgIC0gKEZBUSk6IERvY3VtZW50IGNoYW5nZXMgdG8gYWNjZXNzIGNvbnRyb2wgc3R1ZmYuCgptc2xpZmNhayAgMyBGZWIgMDAgMDQ6MTI6NTcKICAgIFVuZG8gdW5pbmZvcm1lZCBjaGFuZ2UgOiBsb2FkIGF2ZXJhZ2UgIT0gYXZlcmFnZSB0aW1lIHRoYXQgQ1BVIGlzIGlkbGUuCgptc2xpZmNhayAgMyBGZWIgMDAgMDY6NDM6MTAKICAgIGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCB0byBtYWtlIHRoZSBVU0lOR18gY29uc3RhbnRzIHZpc2libGUuCgptYXJ6ICAzIEZlYiAwMCAwOTo0NDozNwogICAgdXBkYXRlIG15IGVtYWlsCgptc2xpZmNhayAgMyBGZWIgMDAgMDk6NTY6NDgKICAgIEluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaCBmcm9tIG1pYmluY2wuaCwgbm90IHRvcCBsZXZlbCBjb25maWcuaC4KCm1hcnogIDMgRmViIDAwIDEwOjQ4OjM3CiAgICBhZGQgLXUgUElERklMRSB0byBzbm1wdHJhcGQsIG5vdyB3ZSBuZWVkIC1jIC1DIDopLCBidHcgaXMgdGhlIHZhbHVlIG9mIG9wdGFyZyByZWxpYWJsZSBhZnRlciBnZXRvcHQgaGFzIGJlZW4gY2FsbGVkIGFnYWluLi4uaXQgc2VlbXMgdG8gd29yawoKbXNsaWZjYWsgIDMgRmViIDAwIDEyOjU3OjIwCiAgICBSZW1vdmUgRE9TLXN0eWxlIGxpbmUgdGVybWluYXRpb24gKENSLUxGIC0tPiBMRikuCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSB1bm5lZWRlZCBjb21tZW50IGFib3V0IG9ic29sZXRlIHYycGFydHkuCgptc2xpZmNhayAgMyBGZWIgMDAgMTI6NTg6MjcKICAgIE5vdGUgdGhlIHdvbWJhdCBpcyByZXBsYWNlZCBieSBleGFtcGxlIGluIG1vcmUgcGxhY2VzLgoKbXNsaWZjYWsgIDMgRmViIDAwIDEzOjI4OjMxCiAgICBGb2xsb3cgY29uZGl0aW9uIEhBVkVfR0VUUElEIGZvciBwaWRfZmlsZSBvYmplY3QuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6Mjk6MTkKICAgIC0gKGR1bW15LyopOiByZW1vdmVkLCB1c2UgZXhhbXBsZSBpbnN0ZWFkLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ0OjMzCiAgICAtIChzdWJhZ2VudC5jKTogaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjQ2OjEwCiAgICAtIChzdWJhZ2VudC5jKTogcHJvdGVjdCBzeXNPUlRhYmxlIGNhbGxiYWNrcyB3aXRoICNpZmRlZnMuCgpoYXJkYWtlciAgMyBGZWIgMDAgMTQ6NTE6NDAKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBkdW1teSByZWZlcmVuY2UuCgpuYmEgIDMgRmViIDAwIDIzOjU3OjQ5CiAgICAtIGFnZW50L3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywgY2xpZW50LmM6IGNoYW5nZSBzb21lIHR5cGUgY2FzdHMgZnJvbQogICAgCShjaGFyICopIHRvICh1X2NoYXIgKikgdG9wIHNpbGVuY2Ugc29tZSB3YXJuaW5ncy4KCm5iYSAgMyBGZWIgMDAgMjM6NTk6NTcKICAgIC0gbXRfc3VwcG9ydC5oOiBhbm90aGVyIHdheSBvZiBkb2luZyBub3RoaW5nLCBub3QgZ2l2aW5nIGEgIm51bGwgZWZmZWN0IgogICAgCXdhcm5pbmcgZnJvbSBnY2MuCgpuYmEgIDQgRmViIDAwIDAwOjE2OjAxCiAgICAtIHJlYWRfY29uZmlnLmMsIG1pYi5jOiBmaXggc29tZSBQQVRIIHNlcGFyYXRvcnMgZnJvbSBjb25zdGFudCA6IHRvCiAgICAJRU5WX1NFUEFSQVRPUntfQ0hBUn0KCm5iYSAgNCBGZWIgMDAgMDA6MTc6NDgKICAgIC0gaHJfZGlzay5jOiBBIGxpdHRsZSBjbGVhbnVwIG9mIHRoZSBkaXNrIGRldmljZSBkZWZpbml0aW9ucywgYWxzbyBhZGRpbmcKICAgIAlTQ1NJIHRvIEZyZWVCU0QgMwoKbmJhICA0IEZlYiAwMCAwMToyMDo1NQogICAgLSB2YWNtX3ZhcnMuYzogc2xpZ2h0IHJld29yZGluZyBvZiB3YXJuaW5nIG1lc3NhZ2UKCm5iYSAgNCBGZWIgMDAgMDQ6MDA6MjcKICAgIC0gaHJfZGlzay5jOiByZWFsbHkgZG8gdGhhdCBGcmVCU0Qgc2NzaSB0aGluZwoKbWFyeiAgNCBGZWIgMDAgMDY6NDQ6MjQKICAgICBoYXZlIG1pYiBsb2FkaW5nIGFwaSByZXR1cm4gcmVzdWx0IGNvZGVzCgptYXJ6ICA0IEZlYiAwMCAwODo1NTo0MgogICAgYWRkIGRlZmF1bHRzIGZvciB2MiB0cmFwIHBhcmFtcwoKaGFyZGFrZXIgIDQgRmViIDAwIDEyOjAxOjMyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBmaW5kLCBsb2NhdGUsIGFuZCB1c2UgcGVybCBpZiBmb3VuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMjo0NzoyNgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMpOiBwcm92aWRlIHYzIGRlZmF1bHRzLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjEyOjE4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogZG9uJ3QgcHJpbnQgZmFpbGVkIGFjY2VzcyBlcnJvcnMgKEVBQ0NFUykuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6MTU6NTEKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1MDoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGRvbid0IHJlYWQgdGhlIG9wdCBjb25maWcgZmlsZSBvciBjYWxsCiAgICAgIHBvc3RfY29uZmlnIGNhbGxiYWNrcywgc2luY2UgdGhlIGxpYnJhcnkgdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KCm1hcnogIDQgRmViIDAwIDEzOjUyOjA4CiAgICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKCmhhcmRha2VyICA0IEZlYiAwMCAxMzo1NjoxOQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIGltcGxlbWVudCAtYyBhbmQgLUMgZmxhZ3MgZm9yIEpvZS4KICAgICAgLSByZWRpZCB0aGUgaW5pdCBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBsb29rIG1vcmUgbGlrZSB0aGUgY3VycmVudCBhZ2VudC4KCmhhcmRha2VyICA0IEZlYiAwMCAxNDowMTozMAogICAgLSAoc25tcHRyYXBkLjgpOiBkb2N1bWVudCAtYyBhbmQgLUMuCgptYXJ6ICA0IEZlYiAwMCAxNToyMTo0MQogICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCgptYXJ6ICA0IEZlYiAwMCAxNTo0NDo0NAogICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNC4wIC0+IFY0LjAuMQoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjQ0OjI3CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGhlIHNubXB1c20uMSBtYW51YWwgcGFnZS4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNDo0NDo0NwogICAgQ2xlYW4gQ1JzIGZyb20gcmVhZF9jb25maWcsc25tcF9sb2dnaW5nOyBjb21tZW50IGRlZmluZSBVU0VfQVNOX1NIT1JUX0xFTi4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNToxMToxMwogICAgUmVtb3ZlIEFTTl9TSE9SVF9MRU4gaGFjayAtIGtub3duIHRvIGR1bXAgY29yZSBpbiBhZ2VudC4KCm1zbGlmY2FrIDI0IEF1ZyA5OSAwNjoxOTo0OQogICAgQWRkICIuIiB0byBQQVRIIGZvciBSVU5URVNUUzsgRHJvcCBvcHRyZXNldCB0byBidWlsZCBtb3N0IHBsYXRmb3JtcwoKbXNsaWZjYWsgMjQgQXVnIDk5IDEwOjI1OjUzCiAgICAtKHRlc3RpbmcvZXZhbF90b29scykgLSBsZXQgc29tZSAoQUlYKSBhZ2VudHMgc2V0dGxlIGJlZm9yZSBmaXJpbmcgcmVxdWVzdHMuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTI6NDg6MjEKICAgIC0gKHZhY21fdmFycy5jKTogY29ycmVjdCBzeXNPUlRhYmxlIGVudHJ5LgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM2OjM1CiAgICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjM3OjMxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYyk6CiAgICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEzOjQxOjE4CiAgICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0IDotKQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjA1OjM5CiAgICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNDoxNTo0MAogICAgLSAoYWxsX3N5c3RlbS5oKTogcmVtb3ZlLiAgYWdhaW4uCgptc2xpZmNhayAyNCBBdWcgOTkgMTQ6MTc6MzMKICAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCgptc2xpZmNhayAyNCBBdWcgOTkgMTU6MTQ6MTgKICAgIC0oc211eC5jKSBhcHBseSBOaWNrIEFtYXRvJ3MgcGF0Y2g6IHByZXZlbnQgU01VWCBjbG9zZSBvbiBwYXJzZSBvciBlcnJvci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNTo1OTo0MgogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB2ZXJzaW9uIHNldHRpbmcgaW4gc25tcF9hcGkuYy4gIE5vdCBuZWVkZWQgdGhlcmUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTY6MDE6NTUKICAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNjowNToxNQogICAgLShjb25maWd1cmUuKikgbW92ZSBzdGF0ZW1lbnQgYWJvdXQgdWNkRGVtb1B1YmxpYyBpbnRvIGNvbW1lbnQgZmllbGQuCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6NDk6MjIKICAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgICB0aGUgYnVpbGQgdHJlZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSB0cmVlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNi4yIC0+IFY0LjAKCmhhcmRha2VyIDE0IFNlcCA5OCAwOToxMTo1NwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2UgdGhlIFBFUlNJU1RFTlRGSUxFIGRlZmluZSB0byBQRVJTSVNURU5URElSLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjE3OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wZC5oLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBwZXJzaXN0ZW50IGNhY2hlIGNhcGFiaWxpdHkgaW50byB0aGUgbGlicmFyeSBmcm9tIHRoZQogICAgICAgIGFnZW50LiAoc25tcHRyYXBkLCBhbmQgb3RoZXJzIHdpbGwgbmVlZCB0aGlzIGFzIHdlbGwpLgogICAgICAtIGltcGxlbWVudCBzb21lIG5ldyBmdW5jdGlvbnM6IGluaXRfc25tcHYzKCksIHNubXB2M19zaHV0ZG93bigpLAogICAgICAgIHNubXB2M19nZXRfZW5naW5lX2Jvb3RzKCksIGV0Yy4KICAgICAgLSBhZ2VudEJvb3RzIC0+IGVuZ2luZUJvb3RzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjIxOjA1CiAgICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIHBlcnNpc3RlbnQgY2FjaGUgY2FwYWJpbGl0eSBpbnRvIHRoZSBsaWJyYXJ5IGZyb20gdGhlCiAgICAgICAgYWdlbnQuIChzbm1wdHJhcGQsIGFuZCBvdGhlcnMgd2lsbCBuZWVkIHRoaXMgYXMgd2VsbCkuCiAgICAgIC0gaW1wbGVtZW50IHNvbWUgbmV3IGZ1bmN0aW9uczogaW5pdF9zbm1wdjMoKSwgc25tcHYzX3NodXRkb3duKCksCiAgICAgICAgc25tcHYzX2dldF9lbmdpbmVfYm9vdHMoKSwgZXRjLgogICAgICAtIGFnZW50Qm9vdHMgLT4gZW5naW5lQm9vdHMuCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MjM6MDkKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICAgICBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gcGFzcyBhcHAgbmFtZSB0byBzbm1wX3BhcnNlX2FyZ3MsIHNvIGl0IGNhbiBwYXNzIGl0IHRvCiAgICAgICAgaW5pdF9zbm1wKCksIHdoaWNoIG5vdyBuZWVkcyBpdCBmb3IgcGVyc2lzdGVudCBjYWNoZSByZWFkaW5nLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjI1OjEzCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gQmVnaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFNOTVAtRlJBTUVXT1JLLU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0MzoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgRU5URVJQUklTRV9OVU1CRVIgdG8gMjAyMS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0Mzo1MAogICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IHNubXBFbmdpbmVJRCBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0NDowNgogICAgLSAoc25tcEVuZ2luZS5jKTogcmVwb3J0IHNubXBFbmdpbmVJRCBwcm9wZXJseS4KCmhhcmRha2VyIDE0IFNlcCA5OCAxNzo0OToxNQogICAgLSAoc25tcHYzbWlicy5oKTogaGlnaC1sZXZlbCBtb2R1bGUgY3JlYXRlZCB0byBpbXBvcnQgdjMgcmVsZWF0ZWQgbWlicy4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMTowOTo0MQogICAgLSAodXRpbF9mdW5jcy5bY2hdLCBzbm1wRW5naW5lLmMsIHNubXB2My5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gbW92ZSBzbm1wRW5naW5lVGltZSBjYWxjdWxhdGlvbiB0byBzbm1wbGliL3NubXB2My5jLgogICAgICAtIG1vdmUgY2FsY3VsYXRlX3RpbWVfZGlmZigpIHRvIHN5c3RlbS5jIGZyb20gdXRpbF9mdW5jcy5jLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjI5OjU1CiAgICAtIChzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgpOgogICAgIC0gaW1wbGVtZW50IFNOTVAtTVBELU1JQi4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjozMDoxMAogICAgLSAoc25tcHYzbWlicy5oKTogYWRkIHNubXBNUERTdGF0cyBtb2R1bGUuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6NDA6MjQKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcE1QRFN0YXRzLmMpOiByZWdpc3RlciB0aGUgbW9kdWxlcyBpbiBzeXNPUlRhYmxlLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA0OjExCiAgICAtIChzbm1wTVBEU3RhdHMuYyk6IGRvdWJsZSBibGFuayAtPiBzaW5nbGUuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDQ6NTgKICAgIC0gKHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgpOiBpbXBsZW1lbnQgdGhlIHVzbVN0YXRzIHBvcnRpb24gb2YgdGhlCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIuCgpoYXJkYWtlciAxNiBTZXAgOTggMDc6MDU6NDMKICAgIC0gKHNubXB2M21pYnMuaCk6IGFkZCB1c21TdGF0cyB0byByZXF1aXJlIGxpc3QuCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTQ6MDgKICAgIC0gKHNubXBfYXBpLmMpOiBjaGFuZ2Ugc3ByaW50Zl9vaWQgYnVmIGxlbmd0aCBpbiBERUJVR1BPSUQgdG8gNDA5Ni4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1NTowNwogICAgLSAoc25tcGQuYyk6IGluaXRfc25tcHYzIG5lZWRzIHRvIGdvIGFib3ZlIGluaXRfYWdlbnQgZm9yIGVuZ2luZUlEIGNyZWF0aW9uLgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU5OjIwCiAgICAtIChzbm1wdjNtaWJzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBNYWtlZmlsZS5pbiwgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gYmFzaWMgdXNtVXNlciBzdHJ1Y3R1cmUgY3JlYXRlZCBmb3IgdGhlIGxpYnJheSB3aXRoIHN1cHBvcnQKICAgICAgICBmdW5jdGlvbnM6CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2dldF91c2VyKCplbmdpbmVJRCwgIGVuZ2luZUlETGVuLCAgKm5hbWUsICp1c2VyTGlzdCk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2FkZF91c2VyKCp1c2VyLCAqdXNlckxpc3QpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9mcmVlX3VzZXIoKnVzZXIpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9jbG9uZV91c2VyKCpmcm9tKTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpOwogICAgICAtIGZpcnN0IHBhc3MgYXQgYmFzaWMgVVNNIG1vZHVsZSBzdXBwb3J0IGFkZGVkIHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMjo0Mjo0NgogICAgLSAoc25tcC10Yy5oKTogY3JlYXRlIGEgbmV3IC5oIGZpbGUgdG8gc3RvcmUgY29tbW9uIHRleHR1YWwgY29udmVudGlvbiBkZWZpbmVzLgoKaGFyZGFrZXIgMTggU2VwIDk4IDEyOjQ2OjM4CiAgICAtICh1c21Vc2VyLmMsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBzdG9yYWdlVHlwZS91c2VyU3RhdHVzIGluIHRoZSB1c21Vc2VyIHN0cnVjdHVyZS4KICAgICAgLSBmaXggdGhlIGF1dGgvcHJpdiBwcm90b2NvbCBwb2ludGVyIGluaXRpYWxpemF0aW9ucyBmb3IgdGhlICJpbml0aWFsIiB1c2VyLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ2OjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc25tcHVzbS5oIGFuZCBzbm1wdjMuaC4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NzoxNwogICAgLSAoc25tcF9hZ2VudC5jKTogaWYgYSBtaWIgbW9kdWxlIHJldHVybnMgYW4gZXJyb3IgPiBTTk1QX0dFTl9FUlIsCiAgICAgIHRyYW5zbGF0ZSB0aGUgZXJyb3IgdG8gU05NUF9HRU5fRVJSIGZvciB2MSByZXF1ZXN0cy4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0OTowNAogICAgLSAobWliMmMpOgogICAgICAtIGZwcmludGYgLT4gREVCVUdQLgogICAgICAtIF9fUCAtPiBBTlNJLgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjUyOjA4CiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gZ2V0TmV4dCBidWcgZml4ZXMuCiAgICAgIC0gbWFrZSB1c21QdWJsaWMgdHJ1ZWx5IHdyaXRhYmxlLgogICAgICAtIGltcGxlbWVudCB1c21fcGFyc2Vfb2lkKCkgdG8gcGFyc2UgYW4gb2lkIGludG8gZW5naW5lSUQvbmFtZS4KICAgICAgLSBpbXBsZW1lbnQgdGhlIHVzbVVzZXJTcGluTG9jay4KICAgICAgLSBtaXNjIG90aGVyIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMjo0OQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0MDowNAogICAgLSAoU05NUHYyLVRDLnR4dCk6IHJlanVzdGlmeSBhIHRhYmxlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ1OjEzCiAgICAtICh1c21Vc2VyLmMpOgogICAgICAtIE1ha2UgdXNtVXNlclN0YXR1cyBhY3R1YWxseSB3cml0YWJsZSBhbmQgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgcm93cy4KICAgICAgLSBCZWdpbiAoYnJva2VuKSBjbG9uZUZyb20gc2V0dGluZy4KICAgICAgLSBGaXhlczoKICAgICAgICAtIHByb3Blcmx5IG1hbGxvYyBzcGFjZS4KICAgICAgICAtIHByb3Blcmx5IHVzZSBkb3VibGUgY2hhciBuYW1lIGFuZCBlbmdpbmVJRCBwb2ludGVycy4KICAgICAgICAtIGRvIHByb3BlciBvaWQgY29tcGFyaXNvbnMgZm9yIGdldE5leHRzLgogICAgICAgIC0gY2hlY2sgdG8gc2VlIHRoYXQgdXB0ciBpcyBkZWZpbmVkIGJlZm9yZSB1c2luZyBpdCB0byByZXRyaWV2ZSBkYXRhLgogICAgICAgIC0gY2xvbmVGcm9tIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBaZXJvRG90WmVybyBPSUQuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDY6MzUKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gZml4IHVzbV9hZGRfdXNlcigpIGZyb20gYWx3YXlzIGFkZGluZyB0aGUgdXNlciBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICAgICAtIHNldCBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0aC9wcml2IHByb3RvY29scyBvbiBuZXcgdXNlcnMuCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDc6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9kdXBsaWNhdGVfb2JqaWQoKSB0byBtYWxsb2MgYSBuZXcgb2lkLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEyOjE1OjExCiAgICAtIChJU1NVRVMpOiB1cGRhdGUKCmhhcmRha2VyIDIzIFNlcCA5OCAxMjoyNDowNAogICAgLSAoSVNTVUVTKTogdG9vayBvbmUuCgpoYXJkYWtlciAyMyBTZXAgOTggMTc6NTg6NDkKICAgIC0gKElTU1VFUyk6IGNsb25pbmcvbWFsbG9jIGlzc3VlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE3OjU5OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IGNyZWF0ZWQgdXNtX2Nsb25lRnJvbV91c2VyKCkgdG8gY2xvbmUgc2VjIGluZm8uCgpoYXJkYWtlciAyMyBTZXAgOTggMTg6MDA6MjEKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtQ2xvbmVGcm9tIGFjdHVhbGx5IHdvcmsgKGlzIHNldGFibGUpLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE1OjU3CiAgICAtIChJU1NVRVMpOiBzdG9yYWdlIHR5cGUgaXNzdWVzLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjE2OjI0CiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbVVzZXJBdXRoUHJvdG9jb2wgYW5kIHVzbVVzZXJQcml2UHJvdG9jb2wgd3JpdGFibGUuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTA6MDUKICAgIC0gKElTU1VFUyk6IFJvd1N0YXR1cyBxdWVzdGlvbiBhZGRlZC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MDo0NQogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBjcmVhdGUgdXNtX3JlbW92ZV91c2VyKCkgdG8gcmVtb3ZlIGEgdXNlcgogICAgICBmcm9tIGEgbGlzdC4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDo1MTo0NgogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21Vc2VyU3RhdHVzIGRlc3Ryb3kncyBhY3R1YWxseSByZW1vdmUgYSB1c2VyLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjUzOjUzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU1OjA5CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIG5ldyBzdXBwb3J0IGZ1bmN0aW9ucyBmb3Igc2F2aW5nIHVzZXJzIHRvIHRoZSBwZXJzaXN0ZW50IGNhY2hlLgoKaGFyZGFrZXIgMjcgU2VwIDk4IDIyOjU3OjAwCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCk6CiAgICAgIC0gYnVnIGZpeGVzLgogICAgICAtIHVzbVVzZXJTdGF0dXMgaXMgc2V0YWJsZSAodG8gZWl0aGVyIHZvbGF0aWxlIG9yIG5vblZvbGF0aWxlKS4KICAgICAgLSB1c2VycyBjcmVhdGVkIGJ5IHNldCdzIGFyZSBzYXZlZCAoaWYgc2V0IHRvIG5vblZvbGF0aWxlKSBvbiBhZ2VudCBzaHV0ZG93bi4KCmhhcmRha2VyIDI5IFNlcCA5OCAyMDoxMToyMAogICAgLSAoSVNTVUVTKTogZXJyb3IgbWFwcGluZyAoY29leCB3b3JrKS4KCm1hcnogIDEgT2N0IDk4IDEyOjU4OjQyCiAgICAtIChzbm1wLmgsIHNubXB1c20uW2NoXSwgc25tcF9hcGkuW2NoXSk6IGFkZGVkIFVTTSBhcGkgYW5kIHNubXB2M19idWlsZCwgc29tZSB0d2Vha3MgdG8gcGFyc2UgaW4gcHJlcCBmb3Igc25tcHYzX3BhcnNlCgptYXJ6ICAxIE9jdCA5OCAxNDowNTo0NQogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVzIHRvIHNubXB2M19wYXJzZQoKbWFyeiAgNCBPY3QgOTggMTc6MjA6MzAKICAgICAtIChzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMpOiBhZGRlZCBzbm1wdjMgcGFyc2luZyByb3V0aW5lcwoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA1OjAzCiAgICAtIChJU1NVRVMpOiBtb3JlIHN0dWZmLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIwOjA2OjU3CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogYnJlYWtkb3duIG9mIHNubXB2M19idWlsZCgpIGludG8gc3ViLWZ1bmN0aW9ucy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMTo1OToyNgogICAgLSAoc25tcHVzbS5jKTogbWFrZSBnZW5lcmF0ZVJlcXVlc3RNc2cgZG8gc29tZXRoaW5nIGdlbmVyaWMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6MDA6MjIKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IHJldHVybiBhIHVfY2hhciAqIGluc3RlYWQgb2YgYSBjaGFyICogZm9yIGVuZ2luZUlEcy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjowMTowNAogICAgLSAoc25tcF9hcGkuYyk6IG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjUwOjEwCiAgICAtIChzbm1wX2FwaS5jKTogbGFzdCBvZiBrbm93biBidWdzIGluIHNubXB2M19idWlsZCBmaXhlZCAoYSBwb2ludGVyCiAgICAgIHdhcyBiZWluZyB1c2VkIHR3aWNlIGluIG92ZXJsYXBwaW5nIG5lZWRlZCB0aW1lIHBlcmlvZHMpLgoKbWFyeiAgNyBPY3QgOTggMTM6MDI6NDAKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHYzIHN1cHBvcnQKCm1hcnogIDcgT2N0IDk4IDEzOjA2OjQxCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wdXNtLltjaF0sIHNubXB2My5jKTogYWRkZWQgcGR1IGZpZWxkIHRvIGhvbGQgc2VjIHN0YXRlIHJlZiwgZml4ZWQgdXNtIHByb3RvdHlwZXMsIGFkZGVkIGNoZWNrIGZvciBudWxsIGhlbnQgcmV0dXJuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MDUKICAgIC0gKHNubXB1c20uYyk6IGZsdXNoIG91dCBhIGdlbmVyaWMgcHJvY2Vzc0luY29taW5nTXNnKCkuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6MzY6MzYKICAgIC0gKHNubXBfaW1wbC5oKTogYWRkIHNlY3VyaXR5TmFtZSB0byB0aGUgYWdlbnQncyBwYWNrZXRfaW5mbyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAgNyBPY3QgOTggMTU6Mzg6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBtYW55IG1hbnkgYnVnIGZpeGVzIHRvIHYzIHBhcnNlL2J1aWxkIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM5OjE3CiAgICAtICh2YWNtX3ZhcnMuYyk6IHJlY29nbml6ZSB0aGUgc2VjdXJpdHlOYW1lIHdoZW4gVVNNIG1vZGVsIGlzIGluIHVzZS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzoxNzoxMAogICAgLSAoc25tcF9hZ2VudC5jKTogaW5pdGlhbCBwYXNzIGF0IHYzLiAgV2lsbCBmYWlsIG9uIHNlbmRpbmcgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6NDU6MjIKICAgIC0gKHNubXBfYXBpLmMpOiBwYXNzIGluIHRoZSBzZWNfcGFybXMgbGVuZ3RoIHRvIHByb2Nlc3NJbmNvbWluZ01zZwoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjQ2OjA0CiAgICAtIChzbm1wX2FnZW50LmMpOiBidWcgZml4OiB1c2luZyBhbiBhcnJheSBhcyBhIHBvaW50ZXIgKHVzZWQgdG8gYmUgb25lKS4KCmhhcmRha2VyICA3IE9jdCA5OCAyMjo0MDo0MwogICAgLSAoc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBkZWZhdWx0IHNubXB2MyBwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBzbm1wLmNvbmYgZmlsZS4KCmhhcmRha2VyICA4IE9jdCA5OCAxMDoxMzoyMwogICAgLSAoSVNTVUVTKTogZXZlcnlvbmUgbG92ZXMgaXNzdWVzIQoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjAzOjU3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpkcmVlZGVyICA5IE9jdCA5OCAxMzo1OToxMgogICAgLSAoSVNTVUVTKTogTmVlZCBhIHBhc3MgZm9yIHRyYWRpdGlvbmFsIFVOKlggc3lzdGVtIHByb2dyYW1taW5nIGhvbGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjIzOjI3CiAgICAtIChzbm1wdXNtLmMpOiBnZW5lcmF0ZVJlcXVlc3RNc2coKSBkb2Vzbid0IEFTTiBlbmNvZGUgdGhlIHNlY19wYXJhbXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMTg6MjQ6MDIKICAgIC0gKHNubXBfYXBpLmMpOiByZXN0cnVjdHVyZSB0aGUgcGFja2V0IGJ1aWxkaW5nIHRvIHVzZSBsZXNzIG1lbWNweSdzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjI0OjI2CiAgICAtIChzbm1wX2FnZW50LmMpOiB1c2Ugc25tcF9idWlsZF9wYWNrZXQoKSB0byBjb25zdHJ1Y3QgYWxsIHYzIGRhdGEuCgpkcmVlZGVyIDEyIE9jdCA5OCAwNzoxODo1NgogICAgLSAoSVNTVUVTKTogcHJvb2YgbWVtb3J5IGludm9jYXRpb24vZGlzcG9zYWw7IHB1dCB0aW1lIHN0YW1wcyBpbiBsb2cgZmlsZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6MTk6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KICAgICAgLSBidWcgZml4ZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDI6MjgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBidWcgZml4ZXMgd2l0aCBjb3VudGVycyAocmV0dXJucyB1X2ludCwgRUcpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQ0OjU1CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIG1ha2UgdjMgY29kZSByZXR1cm4gZXJyb3JzIHByb3Blcmx5LgogICAgICAtIGJ1ZyBmaXhlcy4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0NToxMQogICAgLSAoc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oLCB1c21TdGF0cy5jLCB1c21TdGF0cy5oKToKICAgICAgLSB1c2UgdGhlIG5ldyBzdGF0cyBjb3VudGVyIEFQSS4KCm1hcnogMTIgT2N0IDk4IDA3OjU2OjMwCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IG1lcmdlZCBoZXggdG8gYmluIGZ1bmNzIC0gVGhlcmUgY2FuIGJlIG9ubHkgT25lCgptYXJ6IDEyIE9jdCA5OCAwODoxMTo0NgogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcHVzbS5bY2hdKTogbWVyZ2VkIGhleCB0byBiaW4gZnVuY3MsIGZpeGVkIE1QL1VTTSBhcGksIGltcGxlbWVudGVkIG5vQXV0aE5vUHJpdiBVU00sIGltcGxlbWVudGVkIGVuZ2luZSBwcm9iZSBhbGdvcml0aG0KCmhhcmRha2VyIDEyIE9jdCA5OCAwOToyMzo0OQogICAgLSAoSVNTVUVTKTogbm90ZSBvbiBEYXZpZCdzIGlzc3VlLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDEyOjI2OjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxvb2sgZm9yIC9kZXYvcmFuZG9tIGFuZCBkZWZpbmUgSEFWRV9ERVZfUkFORE9NLgogICAgICAtIGxvb2sgZm9yIGxpYmttdCBhbmQgbGliY3J5cHRvIGFuZCBkZWZpbmUgSEFWRV9MSUJYWFguCgptYXJ6IDEyIE9jdCA5OCAxNTo0NjozNgogICAgLSAoc25tcHVzbS5jKTogZml4ZWQgaGVhZGVyIHNpemUgaXNzdWVzIChkaWZmZXJlbmNlIGJldHdlZW4gYXNuX2J1aWxkX2hlYWRlciBhbmQgYXNuX2J1aWxkX3NlcXVlbmNlKQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIxOjU2OjQyCiAgICAtIChzeXN0ZW0uYywgc3lzdGVtLmgpOiBtYWtlIGNhbGN1bGF0ZV90aW1lX2RpZmYgdGFrZSBhIHBvaW50ZXIuCgpoYXJkYWtlciAxMiBPY3QgOTggMjE6NTk6NTMKICAgIC0gKHNubXB2My5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MDQ6MDYKICAgIC0gKHNubXBfY2xpZW50LmMpOiBidWcgZml4ZXM6CiAgICAgIC0gc25tcF9zeW5jaF9pbnB1dCgpIG5lZWRzIHRvIGNsb25lIGEgcmVwb3J0IHBkdSB0b28uCiAgICAgIC0gc25tcF9jbG9uZV9wZHUoKSBuZWVkcyB0byBjb3B5IGNvbnRleHRFbmdpbmVJRCwgY29udGV4dE5hbWUsIGFuZAogICAgICAgIHNlY3VyaXR5TmFtZQoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjEyOjUwCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtYWtlIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYygpIHJldHVybiB0aGUgY2hhbmdlZCB2YWx1ZS4KICAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uOiBzbm1wX2ZyZWVfdmFyYmluZCgpIHRvIGZyZWUgYSBsaXN0LgogICAgICAtIFxuJ3MgdG8gdGhlIGVuZCBvZiB0aGUgbmV3IGRlYnVnZ2luZyBtZXNzYWdlcyBmb3IgZW5naW5lSUQgZGlzY292ZXJ5LgogICAgICAtIE1lcmdlIHJlc3BvbnNlL3JlcG9ydCBoYW5kbGluZyB0byBtYWtlIHJlcG9ydCdzIGNhbGwgdGhlaXIKICAgICAgICBjYWxsYmFjayBhcyB3ZWxsIChlbmdpbmVJRCBkaXNjb3Zlcnkgd2FzIG5ldmVyIHJldHVybmluZykuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MTk6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGluY29ycmVjdCBjb21tZW50LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjIyOjM2CiAgICAtIChJU1NVRVMpOiB3aWVyZCBtZW1vcnkgcXVlc3Rpb24uCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjM6MTYKICAgIC0gKHN5c3RlbS5jKTogdXNlIG5ldyBjYWxjdWxhdGVfdGltZV9kaWZmKCkuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6MjU6MDYKICAgIC0gKHNubXBfYWdlbnQuYyk6IGhhbmRsZSBlbmdpbmVJRCBkaXNjb3ZlcnkgcmVxdWVzdHMuCgpoYXJkYWtlciAxMiBPY3QgOTggMjI6NTg6MjYKICAgIC0gKHVzbVVzZXIuYyk6IG5ldyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHVzZXJMaXN0LgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU4OjU1CiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG5ldyBmdW5jdGlvbiB1c21fY2hlY2tfc2VjTGV2ZWwoaW50LCBzdHJ1Y3QgKnVzbVVzZXIpOwoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU5OjM2CiAgICAtIChzbm1wX2FnZW50LmMpOiBoYW5kbGUgdW5rbm93blNlY3VyaXR5TmFtZSBhbmQgdW5zdXBwb3J0ZWRTZWN1cml0eUxldmVsLgoKaGFyZGFrZXIgMTMgT2N0IDk4IDEzOjI3OjE0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBvcHRpb25zOiAtLWRpc2FibGUtcHJpdmFjeSwgLS1lbmFibGUtdjJwLW1kNS4KCmhhcmRha2VyIDEzIE9jdCA5OCAxMzozMToyMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBjb21tZW50IGZvcm1hdHRpbmcuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfYWRkX3ZhciBzZXQgdGhlIHNpemUgb2YgdGhlIG9pZCBidWZmZXIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6Mjk6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbW92ZWQgdGhlIGRlZmF1bHQgdXNlckxpc3QgaW50byB0aGUgbGlicmFyeS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMToyOQogICAgLSAodXNtVXNlci5jKTogdXNlIHRoZSBuZXcgbGlicmFyeSBkZWZhdWx0IHVzZXIgbGlzdC4KCmhhcmRha2VyIDE0IE9jdCA5OCAxMzozMjo1OAogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSB1c2UgdGhlIG5ldyBsaWJyYXJ5IGRlZmF1bHQgdXNlciBsaXN0LgogICAgICAtIGRvbid0IGZyZWUgYSBub25leGlzdGVudCBwZHUgKGl0IG9ubHkgZXhpc3RzIGZvciB2MyByZXF1ZXN0cykuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6NDc6NTYKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2Ugc3VyZSBwZHUtPnNlY3VyaXR5TmFtZSBpcyBudWxsIHRlcm1pbmF0ZWQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTc6NTI6MjMKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gbmV3IGFyZ3VtZW50cyB0byBjb25maWd1cmUgdG8gc2V0IENGTEFHUyBhbmQgTElCUzoKICAgICAgICAtIC0td2l0aC1LTVQ9cGF0aAogICAgICAgIC0gLS13aXRoLVNTTGVheT1wYXRoCiAgICAgIC0gZml4IHRvIGFnZW50L21pYmdyb3VwL01ha2VmaWxlIHRvIGtlZXAgdGhlIGFib3ZlIGZyb20gZ2V0dGluZyB0aGUKICAgICAgICB3cm9uZyBhc24xLmggZnJvbSB0aGUgU1NMZWF5IHBhY2thZ2UuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDE6MDcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIGttdC5oCiAgICAgIC0gcmUtb3JkZXIgQ1BQRkxBR1MgdG8gcHV0IC1JIGZsYWdzIGxhc3QuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDU6NTEKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gbW92ZSB1c21fcGFyc2VfY29uZmlnX3VzbVVzZXIgdG8gdGhlIGxpYnJhcnkuCgpoYXJkYWtlciAxNCBPY3QgOTggMjA6NDc6NDgKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBpbmNsdWRlIHNubXB1c20uaAoKZHJlZWRlciAxNSBPY3QgOTggMTI6MDI6NDAKICAgIC0gQmFzZSBmb3IgU0NBUEkgKyBzb21lIGZvcm1hdHRpbmcgb24gdGhlIHBhdGggdG8gc25tcHYzIHN0YXJ0dXAgYW5kIHNodXRkb3duLgogICAgLSBTaHVmZmxpbmcgaW4gaGVhZGVyIGZpbGVzIHRvIGRlZmVhdCB3YXJuaW5ncyBvZiAjZGVmaW5lIHJlZHVuZGFuY2llczoKICAgIAlub3RhYmx5LCBzL2ZyZWVic2QqLmggYW5kIHNubXBsaWIvc3lzdGVtLmgKICAgIC0gRGVidWcgJiB0aW5pIHRvb2xiYWcgaW4gc25tcGxpYi97ZGVidWcsdG9vbHN9LioKICAgIC0gQ2hhbmdlZCBjb25maWd1cmUgb3B0aW9uIC0tZW5hYmxlLXYycC1tZDUgdG8gLS1lbmFibGUtaW50ZXJuYWwtbWQ1LgogICAgLSBDb25zb2xpZGF0ZWQgbGlicmFyeSBzeXN0ZW0gYW5kIGxvY2FsIGhlYWRlciBpbmNsdWRlIHNlcXVlbmNlcyBpbnRvCiAgICAJc25tcGxpYi9hbGxfKi5oIGZpbGVzLiAgUG9zc2libHkgYmV0dGVyIHNvbHV0aW9ucyBmb3IgdGhpcy4uLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI0OjUyCiAgICAtICh1c21Vc2VyLmMpOiByZW1vdmVkIHVzbV9wYXJzZV9jb25maWdfdXNtVXNlciB0aGF0IERhdmlkIHB1dCBiYWNrIGJ5CiAgICAgIGFjY2lkZW50IHdoZW4gZG9pbmcgZm9ybWF0aW5nLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjE3CiAgICAtIChrZXl0b29scy5jLCBrZXl0b29scy5oKTogYWRkZWQgbGVuZ3RoIHRvIGVuZ2luZUlELgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI1OjU4CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogbWFrZSBjb3B5X3dvcmQgcmV0dXJuIGEgcG9pbnRlci4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNjoyMQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCk6IG1vdmUgI2luY2x1ZGVzIGZyb20gLmggdG8gLmMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6Mjc6MDMKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogbmV3IGNvbmZpZyBvcHRpb25zIHRvIGNoYW5nZSBrZXlzLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI3OjU4CiAgICAtIChzbm1wdjMuYyk6IGRvbid0IGNhbGwgaW5pdF9rbXQoKSB1bmxlc3MgSEFWRV9MSUJLTVQgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0MjowMAogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCk6IG1vdmUgI2luY2x1ZGUgZnJvbSAuaCB0byAuYy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjo0Nzo1NgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIHVzZSBkb19rZXljaGFuZ2UoKSB0byBpbXBsZW1lbnQgdGhlIGtleSBjaGFuZ2Ugd3JpdGUgbWV0aG9kcy4KICAgICAgLSBhIGJpdCBvZiAtV2FsbCBjbGVhbnVwLgoKZHJlZWRlciAxNiBPY3QgOTggMTE6Mjg6MTIKICAgIC0gVXBkYXRlZCBTQ0FQSSBjcnlwdGluZyBmdW5jdGlvbnMgdG8gaWRlbnRpZnkgdHJhbnNmb3JtcyBPSURzIG5vdCAjZGVmaW5lJ3MuCiAgICAtIE1vdmVkICJnbG9iYWwiIGRlZmluaXRpb25zIG9mIE9JRCB0cmFuc2Zvcm1zIHRvIHNubXB1c20uaCwgYW5kIG91dCBvZgogICAgCXVzbVVzZXIuYyBhbmQgc25tcHVzbS5jLgogICAgLSBzY19nZW5lcmF0ZV9rZXllZF9oYXNoKCkgc3RhbmRzIGFzIGEgZ29vZCBleGFtcGxlIG9mIHdoYXQgb3RoZXIgZnVuY3Rpb25zCiAgICAJd2lsbCBsb29rIGxpa2UuCgpkcmVlZGVyIDE2IE9jdCA5OCAxMTo1MDowOQogICAgLSAoc2NhcGkuYywgc2NhcGkuaCkgT3V0cHV0IGJ1ZmZlciBhcmd1bWVudHMgZm9yIChlbnxkZSljcnlwdGluZyBhcmUKICAgIAlzaW5nbGUtcG9pbnRlcnMuCgpsZXdpcyAxNiBPY3QgOTggMTM6MTU6MTYKICAgIC0gLSAoc25tcHVzbS5oKToKICAgICAgLSBBZGRlZCBVU01fRVJSIHN5bWJvbHMgdXNlZCBieSB1c21fZ2VuZXJhdGVfb3V0X21zZwoKbGV3aXMgMTYgT2N0IDk4IDEzOjIwOjA3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBSZXdyb3RlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnLCByZW5hbWluZyBvbGQgaW1wbGVtZW50YXRpb24gdG8KICAgICAgICB1c21fZ2VuZXJhdGVfb3V0X21zZ19OVUxMCiAgICAgIC0gVGhpcyBjb2RlIGNvbXBpbGVkIG9uIEZyZWVCU0QsIG5vdCB0ZXN0ZWQgZm9yIGxpbmtpbmcgb3IgcnVubmluZwogICAgICAtIEFkZGVkIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgaW5kaWNpZXMgKGFzbl9wcmVkaWN0X2ludF9sZW5ndGgsCiAgICAgICAgYXNuX3ByZWRpY3RfbGVuZ3RoLCB1c21fY2FsY19vZmZzZXRzKSBhbmQgdG8gbWFrZSB0aGUgQ0JDLURFUwogICAgICAgIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXNtX3NldF9zYWx0KS4KCmRyZWVkZXIgMTggT2N0IDk4IDIxOjE0OjA5CiAgICAtIFNDQVBJIGNvZGUgY29tcGxldGUsIGJ1dCBub3QgY29tcGxldGVseSB0ZXN0ZWQuCiAgICAJQWRkZWQgdGVzdGluZy8gZGlyZWN0b3J5LgogICAgCVZlcmlmaWVkIHRoYXQgRWQncyByZWNlbnQgY2hhbmdlcyBjb21waWxlIGNsZWFubHkuCiAgICAJVHJpZWQgdG8gcGF0Y2ggdXAgImNyaXRpY2FsIiAtV2FsbCB3YXJuaW5ncy4KCmhhcmRha2VyIDE5IE9jdCA5OCAwNzoxMDoyNwogICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlIC1XYWxsIHJlcXVpcmVtZW50LgoKZHJlZWRlciAxOSBPY3QgOTggMTU6MTI6NTcKICAgIC0gQ29yZSBTQ0FQSSByb3V0aW5lcyBhcHBlYXIgc291bmQuICB0ZXN0aW5nLyBkaXJlY3RvcnkgaXMgbm8gbG9uZ2VyCiAgICAJY29tbWVudGVkIG91dC4gIFNOTVB2MyBzdHlsZSBrZXkgbWFuaXB1bGF0aW9ucyB1bnRlc3RlZCB5ZXQuCiAgICAJQ3JlYXRlZCAoPykgYSBzbGV3IG9mIG5ldyB3YXJuaW5ncyBmcm9tIGZpbGVzIGVhcmx5IGluIGNvbXBpbGUgc2VxdWVuY2UuCgpkcmVlZGVyIDIwIE9jdCA5OCAxMTozODo0MgogICAgLSBUZXN0cyBmb3IgZ2VuZXJhdGVfS3UgYW5kIGdlbmVyYXRlX2t1bC4gICh0ZXN0aW5nL2t0ZXN0IC1oIGZvciBoZWxwLikKICAgIAlDbGVhbmVkIHVwIG5ldyBzZXQgb2YgImNyaXRpY2FsIiB3YXJuaW5ncyAtLSBtb3N0bHkgYWRkaW5nICNpbmNsdWRlJ3MuCiAgICAJRml4ZWQgS01UL2FwcHMvcmFuZHRlc3QuYyBzbyBpdCBjb21waWxlcyB1bmRlciBMaW51eC4KCm1hcnogMjEgT2N0IDk4IDA4OjE4OjAzCiAgICAgLShzbm1wX2FwaS5bY2hdKTogYWRkIGZpZWxkcyBmb3IgYXV0aEtleSBhbmQgcHJpdktleQoKbGV3aXMgMjEgT2N0IDk4IDEyOjA3OjE2CiAgICAtIC0gKHNubXAuaCkKICAgICAgLSBBZGRlZCBTTk1QX0VSUl8gZXJyb3Igc3ltYm9saWMgY29uc3RhbnRzIGZvciB0aGUgYXV0aC9wcml2IChVU00pIG1vZHVsZQogICAgICAgIHJlcG9ydGVkIGVycm9ycy4KICAgICAgLSBVc2VkIHZhbHVlcyAxOS0yNywgdXBkYXRlZCBNQVhfU05NUF9FUlIgdG8gMjcuCgpsZXdpcyAyMSBPY3QgOTggMTI6MDg6MjQKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHN5bWJvbGljIGNvbnN0YW50cyBmb3IgZXJyb3JzIGZvdW5kIHByb2Nlc3NpbmcgaW5jb21pbmcgbWVzc2FnZXMuCiAgICAgIC0gRXF1YXRlZCB0aGUgc3ltYm9scyB3aXRoIHRob3NlIGFkZGVkIHRvIHNubXAuaAoKaGFyZGFrZXIgMjEgT2N0IDk4IDEyOjEwOjAzCiAgICAtIChzbm1wX2FwaS5oKTogYWRkZWQgQVNOL1NOTVAgY291bnRlcnMgdG8gdGhlIGNvdW50ZXIgbGlzdC4KCm1hcnogMjEgT2N0IDk4IDEyOjUwOjI0CiAgICAgLShzbm1wX2FwaS5bY2hdKTogY29ycmVjdGx5IGFkZCAjZGVmaW5lIHNpemVzIGZvciBhdXRoS2V5IGFuZCBwcml2S2V5CgptYXJ6IDIxIE9jdCA5OCAxMzozODo1NwogICAgIC0oc25tcF9hcGkuW2NoXSk6IGFkZGVkIGF1dGgvcHJpdiBwcm90b2NvbCB0eXBlIGZpZWxkcyB0byBzZXNzaW9uCgptYXJ6IDIxIE9jdCA5OCAxMzo0OToxMQogICAgIC0oc25tcF9hcGkuYyk6IGFkZGVkIGNhc3QgZm9yIGludGVybmFsIHBkdSAoaW50ZXJuYWwgcGR1IHNob3VsZCBiZSBlbGltaWFudGVkIHNvbWVkYXkpCgpoYXJkYWtlciAyMSBPY3QgOTggMTM6NTM6MzgKICAgIC0gKHNubXBfYXBpLmgpOiBTVEFUX01BWF9TVEFUUyAtPiBNQVhfU1RBVFMuCgpoYXJkYWtlciAyMSBPY3QgOTggMTc6NTQ6MDgKICAgIC0gKHNubXB2My5jKTogcmVtb3ZlIHNubXBfcGVycm9yKCkgZGVmaW5lZCBhcyBwZXJyb3IoKS4gIEl0J3MgYSByZWFsIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjU4OjA4CiAgICAtIChhc24xLmMpOiBhc25fYnVpbGRfc3RyaW5nOiBhbGxvdyBhIG51bGwgc3RyaW5nIHRvIGJ1aWxkIGEgMDAgcGFkZGVkIHN0cmluZy4KCmhhcmRha2VyIDIxIE9jdCA5OCAxODowMDowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZW5naW5lSUQgZGlzY292ZXJ5IGRlYnVnZ2luZyBtZXNzYWdlcy4KICAgICAgLSB6ZXJvIGxlbmd0aCBjb250ZXh0TmFtZXMgb2suCiAgICAgIC0gc2V0IG1heCBsZW5ndGggYmVmb3JlIHVzbV9nZW5lcmF0ZV9vdXRfbXNnKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTk6MDQ6MzUKICAgIC0gKHNubXBfYXBpLmMpOiBtb3ZlIHRoZSBlbmdpbmVJRCBkaXNjb3ZlcnkgdG8gc25tcF9zZXNzX29wZW4oKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAxOTowNToxMgogICAgLSAoc25tcF9hcGkuaCk6IHN5bmNoIHNubXBfcGR1IGFuZCBpbnRlcm5hbF9zbm1wX3BkdS4KCmRyZWVkZXIgMjEgT2N0IDk4IDE5OjU1OjE1CiAgICAtIFNob29rIHRoZSBidWdzIG91dCBvZiBrZXkgbWFuaXB1bGF0aW9uIHJvdXRpbmVzIChnZW5lcmF0ZV9rdWwsIGdlbmVyYXRlX0t1KS4KICAgIAlDb21wbGV0ZWQgYW5kIHRlc3RlZCBLZXlDaGFuZ2UgVEMgY29kZSAoe2VuY29kZSxkZWNvZGV9X2tleWNoYW5nZSkuCiAgICAJQ3JlYXRlZCBpbml0aWFsIGVsZW1lbnRzIG9mIGFuIGF1dG9tYXRlZCB0ZXN0IGhhcm5lc3MgaW4gdGVzdGluZy8uCiAgICAJQ3JlYXRlZCBkYXRhIGZpbGVzIGFuZCB0ZXN0IHNjcmlwdHMgdG8gZGVtb25zdHJhdGUgY29tcGxpYW5jZS4KICAgIAlNaXNjZWxsYW5lb3VzIGFkZGl0aW9ucyB0byBzbm1wbGliL3Rvb2xzLj8sIHNvbWUgdGVtcG9yYXJ5L3RyYW5zaXRpb25hbC4KCm1hcnogMjEgT2N0IDk4IDE5OjU4OjExCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhdXRoL3ByaXYgcHJvdG8gZmxhZ3MsIGFkZCBhdXRoIHByaXYga2V5IGZsYWdzCgptYXJ6IDIxIE9jdCA5OCAyMDoxOTowOAogICAgLSAoc25tcF9hcGkuW2NoXSk6IHVwZGF0ZWQgYXV0aC9wcml2IHByb3QgYW5kIGtleSBmaWxlZHMgaW4gc2Vzc2lvbiwgYWRkZWQgc3Vwb3J0IGluIHNubXBfc2Vzc19vcGVuIGFuZCBjbG9zZSAoeWFua2VkIGZpZWxkcyBmcm9tIFBEVSAtIGRpZCBJIGRvIHRoYXQ/KQoKaGFyZGFrZXIgMjEgT2N0IDk4IDIxOjIxOjQxCiAgICAtIChsY2RfdGltZS5jKTogbWlub3Igd2FybmluZyBmaXhlcy4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMToyMjowNwogICAgLSAodG9vbHMuYywgdG9vbHMuaCk6IG5ldyB0b29sOiBtZW1kdXAoKS4KCmhhcmRha2VyIDIxIE9jdCA5OCAyMjowODowNwogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gZ2VuZXJhdGUgYSB1c20gdXNlciBmcm9tIHNlc3Npb24gZGF0YSBpZiBuZWVkZWQuCiAgICAgIC0gY2hlY2sgdGhlIHJlc3VsdCBmcm9tIHRoZSB1c20gYW5kIGZhaWwgaWYgaXQgZG9lcy4KCm1hcnogMjIgT2N0IDk4IDA4OjAyOjExCiAgICAgLShzbm1wX2FwaS5jKTogYWRkZWQgREVCVUdQIGNvZGUgdG8gdHJhY2UgbWVzc2FnZSB2ZXJzaW9uIGFuZCBzZWNMZXZlbCBmb3IgZGVtbwoKbGV3aXMgMjIgT2N0IDk4IDEzOjM3OjM0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3QgYSB3b3JraW5nL3Rlc3RlZCB2ZXJzaW9uLCBidXQgaXQgY29tcGlsZXMuCiAgICAgIC0gRml4ZWQgb25lIGJ1ZyAtICImIiB0byAiPT0iIGluIGFuIGlmKCkKICAgICAgLSBEaWQgbm90IGFsdGVyIGNvZGUgdG8gZGVueSBudWxsIGVuZ2luZSBpZCB1c2VycwogICAgICAtIEFkZGVkIG11Y2ggY29kZSBpbiBwcm9jZXNzIGluY29taW5nIG1lc3NhZ2UKICAgICAgLSBOZXcgdXNlIG9mIGVycm9ycyBhbmQgREVCVUdQCiAgICAgIC0gU3RpbGwgd2FpdGluZyBvbiB1cGRhdGVzIHRvIGxjZF90aW1lLmggdG8gaW1wbGVtZW50CiAgICAgICAgc3RlcCAjMyBvZiBSRkMgMjI3NCwgczMuMi4KCmRyZWVkZXIgMjMgT2N0IDk4IDA5OjQ1OjQ3CiAgICAtIExDRCBUaW1lIEFQSSBwcm90b3R5cGVzIGFyZSBjb21wbGV0ZS4gIDkwJSBzdGFibGUuCiAgICAJRHJhZnQgb2YgYXV0b21hdGVkIHRlc3RpbmcgaGFybmVzcyBpbiB0ZXN0aW5nLy4KICAgIAkJVXNlIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaCB0byBydW4gYWxsIGN1cnJlbnQgdGVzdHMuCgpsZXdpcyAyMyBPY3QgOTggMTE6Mzg6MjUKICAgIC0gLSAobGNkX3RpbWUuaCkKICAgICAgLSBhZGRlZCBkZWZpbml0aW9ucyBmb3IgVFJVRSBhbmQgRkFMU0UgKGlmIG5vdCBwcmV2aW91c2x5IGRlZmluZWQpCiAgICAgIC0gZml4ZWQgYSBjb21waWxhdGlvbiBidWcgaW4gdGhlIGVuc3VyZSBlbnRyeSBtYWNybwoKbGV3aXMgMjMgT2N0IDk4IDExOjQ3OjM3CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBBZGRlZCB0aGUgc3RlcCAzIGNvZGUgdG8gcHJvY2VzcyBvdXRnb2luZyBtZXNzYWdlcyBmdW5jdGlvbgogICAgICAtIFN0aWxsIHVuLXJ1bgoKZHJlZWRlciAyMyBPY3QgOTggMTU6Mzk6MDIKICAgIC0gQ29tcGxldGUgY29kZSBmb3IgTENEIHRpbWUgQVBJLiAgQXdhaXRpbmcgc2VyaW91cyB0ZXN0cy4KICAgIAlDaGFuZ2VkIHNubXB2M19nZXRfZW5naW5le1RpbWUsQm9vdHN9IHRvIHNubXB2M19sb2NhbF9zbm1wRW5naW5lKgoKZHJlZWRlciAyNCBPY3QgOTggMjM6MDc6NTQKICAgIC0gU2hvb2sgYnVncyBvdXQgb2YgTENEIHRvIG1hbmFnZSBlbmdpbmUgSURzL3RpbWUgKCJ0ZXN0aW5nL2V0ZXN0IC1hIikuCiAgICAJQWRkZWQgYSBmdW5jdGlvbiBkdW1wX3NubXBFbmdpbmVJRCAoInRlc3RpbmcvbWlzY3Rlc3QgLTEiKS4KICAgIAkJTWFkZSBzcHJpbnRfaGV4c3RyaW5nIG5vdC1zdGF0aWMuLi4gKHRlbXBvcmFyeSBjaGFuZ2UgSSB0aGluaykuCiAgICAJQWRkZWQgY29tbWVudHMvcXVlc3Rpb25zIGFib3V0IGJ1aWxkaW5nIHNubXBFbmdpbmVJRC4gIChzbm1wdjMuYykKICAgIAlBZGRlZCBUUlVFL0ZBTFNFIGRlZmluZXMgdG8gc25tcHVzbS5jLiAgKFRoZXNlIHNob3VsZCBiZSBzdGFuZGFyZGl6ZWQuKQogICAgCUFkZGVkIFNOTVBfTUFYQlVGX1NNQUxMLiAgKHRvb2xzLmgpCiAgICAJQ2xlYW5lZCB1cCAoY2xhcmlmaWVkPykgdGVzdCBoYXJuZXNzIGRlc2NyaXB0aW9uLgoKbWFyeiAyNSBPY3QgOTggMTQ6NDg6MDYKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogbW92ZSBrZXkgZ2VuZXJhdGlvbiAoZ2VuZXJhdGVfS3UpIGFmdGVyIGluaXRfc25tcAoKaGFyZGFrZXIgMjUgT2N0IDk4IDIwOjU5OjMzCiAgICAtIChzbm1wX2FnZW50LmMpOiBkZWJ1Z2dpbmcgcGFyc2UvYnVpbGQgc3RhdGVtZW50cyBhbmQgZXJybm8gZml4ZXMuCgpoYXJkYWtlciAyNSBPY3QgOTggMjE6MDA6MTUKICAgIC0gKHN5c3RlbS5oKTogY3JlYXRlZCBERUJVR1BMIHRvIGRvIERFQlVHUCB3aXRoIGZpbGUvbGluZSBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjAwCiAgICAtICh0b29scy5jKTogY2hlY2sgbWVtZHVwKCkgZm9yIE5VTEwgcGFzc2VkIGluLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAxOjU4CiAgICAtIChyZWFkX2NvbmZpZy5jKTogYnVnIGZpeGVzOiBtaXNjIE5VTEwgY2hlY2tzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAyOjQwCiAgICAtIChzbm1wX2NsaWVudC5jKTogZGVmYXVsdCB0byBzZXR0aW5nIHNlY05hbWVMZW4gYW5kIGNvbnRleHROYW1lTGVuIHRvIC0xLgoKZHJlZWRlciAyNSBPY3QgOTggMjI6Mjg6MTgKICAgIC0gTW9zdGx5IHNodWZmbGluZyBwcmUtZXhpc3RpbmcgdGhpbmdzIGFib3V0IC0tCiAgICAgICAgICAgIFVzZWQgVVNFX0lOVEVSTkFMX01ENSBwdXQga210X2hhc2ggcGFyYWxsZWwgd2l0aCB2MnAgTUQ1IGhhc2guCiAgICAgICAgICAgIHNjX2VuY3J5cHQvc2NfZGVjcnlwdCBub3cgYWxzbyByZXR1cm46IFNOTVBFUlJfU0NfTk9UX0NPTkZJR1VSRUQuCiAgICAgICAgICAgIFRlc3RlZCBhbmQgImZpeGVkIiBidWlsZCB3aXRoIG9uJm9mZiBzZXR0aW5ncyBvZjoKICAgICAgICAgICAgICAgICAgICBVU0VfVjJQQVJUWV9QUk9UT0NPTCwgU0NBUElfQVVUSFBSSVYsIFVTRV9JTlRFUk5BTF9NRDUuCiAgICAgICAgICAgIEdyZWF0ZXN0IGRhbWFnZSBkb25lIGluIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLgogICAgICAgICAgICBSZXBhaXJlZCB1c2Ugb2Yga2V5IG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgaW4gc25tcHVzbS5jLgogICAgICAgICAgICAgICAgICAgIChDb3VsZCB1c2UgcGVlciByZXZpZXcgYXMgbXkgZXhwZWN0YXRpb25zIG9mIHVzZSBtYXkgZGlmZmVyLikKICAgICAgICAgICAgQWRkZWQgKGFuZCByZW1vdmVkIDEpIHNvbWUgWFhYJ3MgaW4gcGFydHkgY29kZS4uLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM0OjAzCiAgICAtIChzbm1wdXNtLmMpOiBlbmFibGUgTlVMTCBlbmdpbmVJRHMgaW4gdXNlciBzdG9yYWdlLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDEzOjM3OjAzCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBjcmVhdGluZyB1c2VycyBmcm9tIGEgc2Vzc2lvbjogIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbigpLgogICAgICAtIG1ha2UgcHJvYmluZyB1c2UgdGhlIGFib3ZlIHR3aWNlIChvbmNlIGZvciBOVUxMIGVuZ2luZUlEIGFuZCBvbmNlCiAgICAgICAgZm9yIHByb2JlZCBlbmdpbmVJRCkuCiAgICAgIC0gYnVnIGZpeDogIHNubXAgdmVyc2lvbiBwcmludGVkIGluIGRlYnVnZ2luZyB3YXMgb2ZmIGJ5IC0xLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIwOjQxOjE5CiAgICAtIChzbm1wX2FnZW50LmMpOiBzZXQgY29udGV4dCBuYW1lIG9uIGVuZ2luZUlEIHJlcG9ydC4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMDo0MjowNgogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgImluaXRpYWwiIHVzZXIgZm9yIGVuZ2luZUlEOm51bGwuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTI6MTcKICAgIC0gKGtleXRvb2xzLmMpOiBjaGVjayBmb3IgTlVMTCBwb2ludGVyLCBub3QgKnBvaW50ZXIuCgpoYXJkYWtlciAyNiBPY3QgOTggMjI6MTU6MDEKICAgIC0gKHNubXB1c20uYyk6IG1hbGxvYyBrdWwgc3BhY2UgaW4gdXNtX3NldF9wYXNzd29yZCgpLgoKZHJlZWRlciAyOCBPY3QgOTggMDk6Mzk6NTcKICAgIC0gZ2V0X2VuZ2luZXRpbWUoKSBub3cgcmV0dXJucyA8MCwwPiB0dXBsZSBmb3IgTlVMTC8iIi9sZW49MCBlbmdpbmVJRHMuCiAgICAJc2Nfe2NoZWNrLGdlbmVyYXRlfV9rZXllZF9oYXNoKCkgcHJvY2VzcyBoYXNoZXMgPD0gaGFzaCBvdXRwdXQgbGVuLgogICAgCQkoU3RhYmxlLCBidXQgZXhwZWN0IGFuIGV4cGFuZGVkIHRlc3QgaW4gc2NhcGl0ZXN0LmMgc29vbi4pCiAgICAJTWlzYzogUHV0IE1ENV9IQVNIU0laRV9CWVRFUyBpbiBwYXJ0eS5oOyBTTk1QX1pFUk8gaW4gdG9vbHMuaAoKbGV3aXMgMjggT2N0IDk4IDEzOjE2OjU0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBEZWJ1Z2dlZCBydW5uaW5nIG9mIHVzbV9nZW5lcmF0ZS4uLiBmdW5jdGlvbiBzbyB0aGF0IGl0IHJ1bnMgd2l0aCBubwogICAgICAgIGF1dGhlbnRpY2F0aW9uIC8gbm8gcHJpdmFjeSBvcHRpb25zLiAgKERvbid0IGhhdmUgYSB3YXkgeWV0IHRvIHRlc3QKICAgICAgICB3aXRoIHRoZSBmYW5jeSBzZWN1cml0eS4pCiAgICAgIC0gQWRkZWQgYSBsaW5lIGZvciBkZWJ1Z2dpbmcgd2hpY2ggc2V0cyBhbGwgYnl0ZXMgb2YgdGhlIHNlY3VyaXR5IGhlYWRlcgogICAgICAgIGFuZCB0aGUgUERVJ3MgcmVzdGluZyBwbGFjZSB0byBGRiAtIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seS4gIFRoaXMKICAgICAgICBsZXRzIG1lIHNlZSB3aGF0IGJ5dGVzIHJlbWFpbiB0byBiZSBwdW5jaGVkIGluLiAgVGhpcyBsaW5lIGlzIGZsdXNoIGxlZnQKICAgICAgICBpbiB0aGUgZmlsZSwgaW5kaWNhdGluZyB0aGF0IGl0IGlzIHRvIGJlIGN1dCBvdXQgaWYgd2UgcmVhY2ggcmVsZWFzZS4KICAgICAgLSBBZGRlZCAiZW1lcmdlbmN5X3ByaW50LCIgYW4gdW5jYWxsZWQgcm91dGluZSBJIGxpa2UgdG8gaGF2ZSB3aGVuIHJ1bm5pbmcKICAgICAgICBpbiBnZGIuICBJdCBkdW1wcyBhIGZpZWxkIG9mIHggYnl0ZXMgaW4gaGV4LCAyNSB2YWx1ZXMgdG8gYSBsaW5lLgoKZHJlZWRlciAyOCBPY3QgOTggMTQ6MTk6NTIKICAgIC0gQm91bmRlZCBLTVQgY29kZSB3aXRoICNkZWZpbmUncyBmb3IgSEFWRV9MSUJLTVQKICAgIAktIFdpbGwgbm90IGNvbXBpbGUgd2l0aG91dCBlaXRoZXIgSEFWRV9MSUJLTVQgLW9yLSBVU0VfSU5URVJOQUxfTUQ1LgogICAgCS0gQWRkZWQgbmV3IGVycm9yIGNvZGU6IFNOTVBFUlJfS1RfTk9UX0FWQUlMQUJMRS4KICAgIAktIEFkZGVkIGEgdGVzdCBmb3IgcHJldmlvdXMgY2hhbmdlcyB0byBzY18qX2tleWVkX2hhc2goKSBmdW5jdGlvbnMuCiAgICAJCShBdWdtZW50ZWQgdGVzdF9kb2tleWVkaGFzaCgpIGluIGtleW1hbmFnZW1lbnQuYy4pCgpsZXdpcyAyOSBPY3QgOTggMDk6NTY6MDgKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIE1hZGUgZml4ZXMgdG8gcHJvY2VzcyBpbmNvbWluZwogICAgICAtIEJlZ2FuIHRvIGFkZCBjb2RlIGZvciB0aGUgc2VjdXJpdHkgc3RhdGUgcmVmZXJlbmNlCgpsZXdpcyAyOSBPY3QgOTggMTA6Mjc6MzcKICAgIC0gLSAoc25tcHVzbS5oKQogICAgICAtIEFkZGVkIHByb3RvdHlwZSBmb3Igc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQKCmxld2lzIDI5IE9jdCA5OCAxMDoyOToxNgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgc29tZSBvZiBXZXMnIHJlcG9ydGVkIHByb2JsZW1zLgogICAgICAtIEFkZGVkIGNvZGUgdG8gc3RvcmUgc2VjU3RhdGVSZWYKICAgICAgLSBTdGlsbCBuZWVkIHRvIHVzZSBpdCBpbiBnZW5lcmF0ZV9vdXRnb2luZwoKbGV3aXMgMjkgT2N0IDk4IDE0OjMwOjE4CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBOb3cgbWFrZXMgdXNlIG9mIHRoZSBzdG9yZWQgc2VjU3RhdGVSZWYgaW4gZ2VuZXJhdGUgb3V0Z29pbmcKICAgICAgLSBJIGhvcGUgLSBJIHN0aWxsIGhhdmVuJ3QgYmVlbiBhYmxlIHRvIGdldCBtZXNzYWdlIGJhY2sgYW5kIGZvcnRoLAogICAgICAgIGl0J3MgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBydW4gdGhlIHNubXBkIHN0dWZmIEkgZ3Vlc3MuCgptYXJ6IDI5IE9jdCA5OCAxNTowNjo0OQogICAgYWRkICNpZGVmIGdhdXJkcyBmb3Iga210LmggYW5kIGttdF9hbGdzLmggZGVwZW5kZW50IG9uIGV4aXN0ZW5jZSBvZiBoZWFkZXJzIHJhdGhlciB0aGFuIGxpYmttdAoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ1OjI0CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBhIHN0YXRlIHJlZmVyZW5jZSBmcmVlIHJvdXRpbmUKICAgICAgLSBDaGFuZ2VkIG5hbWUgb2YgdGhlIHJvdXRpbmUgdG8gc2V0IHRoZSByZXBvcnQtb24tZXJyb3IgZmxhZyBzbyB0aGF0IGl0CiAgICAgICAgYmVnaW5zIHdpdGggInVzbV8iLgoKbGV3aXMgMzAgT2N0IDk4IDA2OjQ2OjUyCiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBNb2RpZmllZCB0aGUgZnJlZSBzdGF0ZSByZWYgcm91dGluZSB0byB0YWtlIGEgdm9pZCAqIGluc3RlYWQgb2YgYQogICAgICAgIHN0cnVjdCB3aGF0ZXZlciAqLCB0aGlzIHBsdXMgYWRkaW5nIGl0IHRvIHRoZSAuaCBmaWxlIG1ha2VzIGlzIHVzZWFibGUKICAgICAgICBieSB0aGUgTWVzc2FnZSBQcm9jZXNzb3IuCgpsZXdpcyAzMCBPY3QgOTggMDc6MzQ6MjYKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIFJlbW92ZWQgYSBwb3RlbnRpYWwgbWVtb3J5IGhvbGUgKHJldHVybmluZyBvbiBlcnJvciBmcm9tIHRoZSBwcm9jZXNzCiAgICAgICAgaW5jb21pbmcgcm91dGluZSB3aXRob3V0IGZyZWVpbmcgdGhlIHNlY3VyaXR5IHN0YXRlIHJlZmVyZW5jZSkuCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6Mzg6NTMKICAgIC0gKHNubXB2My5jKTogc25tcF9wZXJyb3IoKSAtPiBwZXJyb3IoKSBbIm1hbGxvYyJdLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjQzOjUyCiAgICAtIChzbm1wZC5jKToKICAgICAgLSBNYWtlIC1EIGEgdG9nZ2xlLgogICAgICAtIHVzZSB1c21fc2V0X3JlcG9ydEVycm9yT25Vbmtub3duSUQoKS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODo0NTowOQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIE1ha2UgLUQgYSB0b2dnbGUuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NDQ6NDMKICAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2UgdGhlIGFnZW50IHdhdGNoIHRoZSBlcnJvciBzdGF0dXMgZnJvbSBwYWNrZXQKICAgICAgcGFyc2luZyBpbnN0ZWFkIG9mIGRvaW5nIGNoZWNrcyBpdHNlbGYuCgpoYXJkYWtlciAzMCBPY3QgOTggMTY6NTI6MDMKICAgIC0gKHNubXB1c20uYyk6IHVzbV9nZXRfdXNlcigpOiBhbGxvdyBhIG51bGwgbGVuZ3RoIChidXQgbm9uIG51bGwKICAgICAgcG9pbnRlcikgZW5naW5lSUQuCgptYXJ6ICAxIE5vdiA5OCAxNTo1NToxMQogICAgIC0oYXNuMS5jLCBsY2RfdGltZS5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMsIHNubXB2My5jKTogcmVtb3ZlIGludGVybmFsIHBkdS92YXJsaXN0LCBwZHVfZnJlZSB1cGRhdGUsIGhhbmRsZSBpbml0aWFsIHVzZXIgYXMgZGlzY3Vzc2VkLCByZW1vdmUgaW5pdGlhbCB1c2VyIGhhY2ssIHJlbW92ZSBlbmdpbmVJRCBwcm9iZS9SZXBvcnQgaGFjaywgaGFuZGxlIHNlY3VyaXR5U3RhdGVSZWYgYXMgZGlzY3Vzc2VkLCBoYW5kbGUgemVyby1sZW5ndGggY29udGV4dCwgbm9ybWFsaXplIF9lbmdpbmV0aW1lIGFyZyBvcmRlciwgaW5jbHVkZSB3ZXMncyBwYXRjaGVzIGZvciBudWxsIGVuZ2luZWlkIGFuZCBzZWNOYW1lTGVuKysKCmhhcmRha2VyICAxIE5vdiA5OCAxOTozMjo0MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsCiAgICAgIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICAgICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jKToKICAgICAgLSB1c2UgInNubXBhcHAiIGFzIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM2OjU5CiAgICAtIChzbm1wX2FwaS5jKTogZ2VuZXJhdGUgdXNlci0+S3VsIGZyb20gc2Vzc2lvbi0+S3UuCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6Mzg6MjkKICAgIC0gKHNubXBfYWdlbnQuYyk6IGdlbmVyYXRlIGFsbCBzb3J0cyBvZiBuZXcgU05NUCByZXBvcnRzIHdoZW4gbmVlZGVkLgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM5OjI5CiAgICAtIChzbm1wZC5jKTogdXNlIHNubXBfcGVycm9yKCkgaWYgc25tcF9hZ2VudF9wYXJzZSgpIHJldHVybnMgMC4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowMDoyNQogICAgLSAodmFjbS5jKTogYWxsb3cgYSBzZWN1cml0eSBsZXZlbCA+PSwgbm90ID09LgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjAxOjA3CiAgICAtIChzbm1wdjMuYyk6IHJlbW92ZSB1c21fY3JlYXRlX2luaXRpYWwoKSBhbmQgc2V0X2VuZ2luZXRpbWUoKS4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowNjowNAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIG5ldyBmdW5jdGlvbjogaW5pdF91c21fcG9zdF9jb25maWcodm9pZCk7CiAgICAgIC0gbWFrZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0KCkgaGFuZGxlIGEgYm9ndXMgaW5pdGlhbCB1c2VyIGZsYWcuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDk6MzUKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBpbml0X3VzbV9wb3N0X2NvbmZpZygpOwogICAgICAtIHVzZSB1c21fZ2V0X3VzZXJfZnJvbV9saXN0IHRvIGFzayBub3QgdG8gcmV0dXJuIHRoZSBkZWZhdWx0IGluaXRpYWwgdXNlci4KICAgICAgLSBmaXggc25tcF92YXJfYWRkX3ZhcmlhYmxlKCkgdG8gYWxsb3cgY291bnRlcnMuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MTA6MTUKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdHlwbyBvbiBkZXMga2V5IGluaXRpYWxpemF0aW9uLCBmb3Jnb3QgdGhlICdYJy4KCmhhcmRha2VyICAyIE5vdiA5OCAwOToxMzozNgogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBmaXggcmVwb3J0IE9JRHMgdG8gYmUgY29ycmVjdC4KICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IHdoZW4gc2VuZGluZyBhIHJlcG9ydC4KICAgICAgLSBhZGRlZCB1bnN1cHBvcnRlZCBzZWN1cml0eSBsZXZlbCByZXBvcnQuCiAgICAgIC0gc2VuZCBhIGNvdW50ZXIgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLgoKaGFyZGFrZXIgIDIgTm92IDk4IDE2OjAxOjI0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGdlbmVyYXRlIEt1IGZvciBwcml2IHByb3RvY29sIHVzaW5nIGF1dGggcHJvdG9jb2wgaGFzaC4KCmhhcmRha2VyICAzIE5vdiA5OCAwOTozNzowMwogICAgLSAobGNkX3RpbWUuYyk6IGZpcnN0IGJ5dGU9PTAgZW5naW5lIElEJ3MgYXJlIHZhbGlkLgoKbGV3aXMgIDQgTm92IDk4IDExOjM1OjI5CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBCZXR0ZXIgaGFuZGxpbmcgb2YgbnVsbCBhbmQgdW5rbm93biBlbmdpbmUgSURzLgoKZHJlZWRlciAgNCBOb3YgOTggMTE6NDU6MDgKICAgIC0gKGxjZF90aW1lLmMpIFNwZWNpYWwgY2FzZXMgZm9yIE5VTEwgb3IgMCBsZW5ndGggZW5naW5lSURzLgoKaGFyZGFrZXIgIDQgTm92IDk4IDIxOjUzOjMyCiAgICAtIChzbm1wX2FnZW50LmMpOiBjaGVjayBlbmdpbmVJRCB0byBtYWtlIHN1cmUgaXRzIHVzLgoKbGV3aXMgIDUgTm92IDk4IDA5OjUyOjM1CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBjYWxsIHRvIHByZWRpY3QgaW50ZWdlciBsZW5ndGggcm91dGluZSB0byBnaXZlIGl0IHRoZSAqd2hvbGUqCiAgICAgICAgbnVtYmVyLCBub3QganVzdCBvbmUgKGZpcnN0L2xhc3QgZGVwZW5kcyBvbiBlbmRpYW4pIG9mIHRoZSBudW1iZXIuCiAgICAgICAgRG9oISBzY2FsZSByYXRpbmcgOS4KICAgICAgLSBBbHRlcmVkIHRoYXQgcm91dGluZSB0byBiZSBtb3JlIGxpa2UgdGhlIGFzbl9idWlsZF9pbnQgLi4uIGkuZS4sIG5vCiAgICAgICAgbG9uZ2VyIGFzc3VtZXMgdGhlIGxlbmd0aCBvZiB0aGUgbGVuZ3RoIGlzIDEuICBEb2ghIHJhdGluZyBhIDEuCgpsZXdpcyAgNSBOb3YgOTggMTE6MDM6MjQKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIHNvbWUgREVCVUdQIGNhbGxzIHRvIHNob3cgdGhlIHJpZ2h0IGZ1bmN0aW9uLCBwZXJoYXBzIHRoZXNlIHdpbGwKICAgICAgICBiZWNvbWUgREVCVUdQTCBpbiB0aGUgZnV0dXJlLgoKZHJlZWRlciAgNSBOb3YgOTggMTU6Mzc6MjkKICAgIC0gTW9zdGx5IGZ1bmN0aW9uIGhlYWRlciBjb21tZW50cyBpbiByZWFkX2NvbmZpZy5jLCB1dGlsX2Z1bmNzLmMsIHNubXB2My5jLgogICAgICAJKFBsZWFzZSBmZWVsIGZyZWUgdG8gY2hlY2sgZm9yIGFjY3VyYWN5Li4uKQogICAgICBDaGVjayBmb3IgTlVMTCBpbiByZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpLgogICAgICBBZGRlZCBsZW5ndGggYXJndW1lbnQgdG8gc25tcHYzX2dldF9lbmdpbmVJRCgpLgogICAgICBDaGVjayBmb3IgbGVuZ3RoKFApPFVTTV9MRU5HVEhfUF9NSU4gaW4gZ2VuZXJhdGVfS3UoKS4KICAgICAgTm90ZTogImV0ZXN0IC1hIiBoYXMgYSBuZXcgZmFpbHVyZTsgdG8gYmUgZml4ZWQgd2hlbiBUaW1lIExDRCByZS1zdGFiaWxpemVzLgoKbWFyeiAgNiBOb3YgOTggMTY6MTM6MzcKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgUmVwb3J0cyB0byB0cmlnZ2VyIHJlc2VuZCwgZXhjZXB0IGZvciB1bmtub3duRW5naW5lSUQsIHBhc3Mgc2VjU3RhdGVSZWYgdG8gcmVjZWl2ZSBzZWN1cml0eVN0YXRlIGZyb20gVVNNICpXQVJOSU5HKiBnZXR0aW5nIGF1dGhvcml6YXRpb24gZmFpbHVyZSBpbiBVU00qIHBsZWFzZSBoZWxwIC0gdGhpcyB3YXMgbm90IGhhcHBlbmluZyBiZWZvcmUgc28gZG91YnRsZXNzIGl0IGlzIG15IGZhdWx0PwoKbWFyeiAgNyBOb3YgOTggMTI6MzM6NDkKICAgICAtKHNubXBfYXBpLmMsIGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGNsZWFuIHVwIHByb2JsZW1zIGNhdXNlZCB3aGVuIHdlIGJlZ2FuIHVzaW5nIHNlY1N0YXRlUmVmLCBvdGhlciBVU00gZXJyb3JzLCBpbXBsZW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgb3B0aW1pemF0aW9uCgptYXJ6ICA3IE5vdiA5OCAxMjozNzoyMQogICAgIC0oc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogY2xlYW4gdXAgcHJvYmxlbXMgY2F1c2VkIHdoZW4gd2UgYmVnYW4gdXNpbmcgc2VjU3RhdGVSZWYsIHNldF9lbmdpbmV0aW1lIGluIExDRCBwb3N0IGNvbmZpZyByZWFkLCBMQ0RfVElNRV9TWU5DX09QVCB0aW1lIGxlcm5pbmcgb3B0aW1pemF0aW9uLCBpbmNsdWRlIGZpbGUgZm9yIGxjZF90aW1lIGFkZGVkLCBtb3ZlZCBtYWtlX3JlcG9ydCB0byBzbm1wbGliIC0gcmVwb3J0IGdlbmVyYXRpb24gaXMgc3RpbGwgaW4gYWdlbnQKCmhhcmRha2VyICA5IE5vdiA5OCAxMzoyOToxOQogICAgLSAoc25tcF9hcGkuYyk6IGdlbmVyYXRlX2t1bCBzaG91bGQgdXNlIGF1dGhwcm90b2NvbC4KCm1hcnogMTEgTm92IDk4IDA3OjUxOjQzCiAgICAgLShsY2RfdGltZS5jLCBzbm1wdXNtLmMpOiBmaXhlcyB0byBoYW5kbGUgbnVsbCBlbmdpbmUgSUQgLSB0b2xlcmF0ZWQgd2hlbiBzZW5kaW5nLCB1bmtub3duIHdoZW4gcmVjZWl2aW5nCgptYXJ6IDExIE5vdiA5OCAwODowMzoyNAogICAgIC0oc25tcF9hZ2VudC5jKTogcmVtb3ZlIHdvcmthcm91bmQgdG8gZGV0ZWN0IHVua25vd25FbmdpbmVJRCBlcnJvciAtIG5vdyBkb2VuIGluIFVTTSBhcyBzcGVjJ2QKCmhhcmRha2VyIDExIE5vdiA5OCAxMjozNzo0NwogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBtb3ZlIGluaXRpYWwgc2V0X2VuZ2luZXRpbWUoKSBmcm9tIGFnZW50IHRvIHNubXB2My5jLgogICAgICAtIG5ldyBzbm1wLmNvbmYgY29uZmlndXJlIGZpbGUgdG9rZW5zOiBkZWZBdXRoVHlwZSwgZGVmUHJpdlR5cGUsCiAgICAgICAgZGVmUGFzc3BocmFzZSwgZGVmQXV0aFBhc3NwaHJhc2UsIGRlZlByaXZQYXNzcGhyYXNlLgogICAgICAtIG1pbmltdW0gYm9vdHMgdXNlZCBpcyAxLCBub3QgMC4KCmhhcmRha2VyIDExIE5vdiA5OCAxMzowOToyNgogICAgLSAoc25tcGQuYyk6IGFkZGVkIG5lZWRlZCBpbml0XygpIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTEgTm92IDk4IDEzOjExOjAyCiAgICAtIChzbm1wdjMuYyk6IGRvbid0IHByaW50IG9pZHMgdG8gJXMncy4KCmhhcmRha2VyIDEzIE5vdiA5OCAwNzo1OTowNAogICAgLSAoc25tcGQuYyk6IGNyZWF0ZSB0aGUgY29ycmVjdCBpbml0aWFsIHVzZXIgYWZ0ZXIgZW5naW5lSUQgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyIDEzIE5vdiA5OCAwODowMzo0NQogICAgLSAodXNtVXNlci5jKTogZG9uJ3QgaW5pdGlhbGl6ZSB1c2VyIGhlcmUuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MDQ6NDIKICAgIC0gKHNubXB2My5jKTogbWFrZSBlbmdpbmVJRCBjb25maWd1cmF0aW9uIGxpbmVzIGdldCBwYXJzZWQgZWFybHkuCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MTQ6MDQKICAgIC0gKHNubXB1c20uYyk6CiAgICAgIC0gbW9yZSBhcHByb3ByaWF0ZSBlbmdpbmVJRCBjaGVja2luZyBmb3IgdXNlcnMgKHdhcyBhIGJ1ZykuCiAgICAgIC0gdXNtX2FkZF91c2VyKCk6IGRvbid0IGR1cGxpY2F0ZSB1c2VycyB3aXRoIHRoZSBzYW1lIG5hbWUvZW5naW5lSUQuCgpoYXJkYWtlciAxNSBOb3YgOTggMTA6MTk6NTUKICAgIC0gKHNubXBkLmMpOiBtb3ZlIHBvc3RfY29uZmlnIGluaXQgcm91dGluZXMgdG8gYmV5b25kIHBlcnNpc3RlbnQgcmVhZGluZy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxMjo1NTozOAogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIG5ldyBtYWtlIHRhcmdldDogdGVzdAogICAgICAtIG1ha2UgYWxsIGRvZXNuJ3QgY29tcGlsZSB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDA6NDEKICAgIC0gKHVzbVVzZXIuYywgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIHVzbV9yZW1vdmVfdXNlcigpOgogICAgICAgIC0gcHJvcGVybHkgdXBkYXRlcyB0aGUgbGlzdCBwb2ludGVyLgogICAgICAgICAgLSByZXF1aXJlcyBhICoqIHBvaW50ZXIgdG8gdGhlIGxpc3QgdG8gZG8gdGhpcy4KICAgICAgICAtIGNoZWNrIGFnYWluc3QgYSBOVUxMIGxpc3QgcG9pbnRlci4KICAgICAgLSB1c21fY2xvbmVGcm9tX3VzZXIoKToKICAgICAgICAtIHRoZSBrZXlzIHdlcmUgbm90IGJlaW5nIHByb3Blcmx5IGR1cGxpY2F0ZWQuCiAgICAgIC0gdXNtX2Nsb25lX3VzZXIoKTogZGVsZXRlZC4KICAgICAgLSB1c21fY3JlYXRlX3VzZXIoKTogY3JlYXRlZCwgYW5kIHVzZWQgaW4gcGxhY2Ugb2YgdXNtX2Nsb25lX3VzZXIoTlVMTCkuCgpoYXJkYWtlciAxNSBOb3YgOTggMTM6MDE6MjcKICAgIC0gKGV0aW1ldGVzdC5jKTogZml4IGNhbGxzIHRvIHNldC9nZXRfZW5naW5ldGltZSgpLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE0OjE0OjA3CiAgICAtIChJU1NVRVMpOiBmaW5pc2hlZCBhIGNvdXBsZSBvZiB0aGluZ3MuCgpoYXJkYWtlciAxNSBOb3YgOTggMTQ6MTk6MjEKICAgIC0gKElTU1VFUywgc25tcF9hZ2VudC5jKTogZml4IHBkdSBmcmVlaW5nIHByb2JsZW0sIHRoYW5rcyB0byBKb2UncwogICAgICBtZXJnZSBvZiB0aGUgcGR1IHN0cnVjdHVyZXMuCgpoYXJkYWtlciAxNSBOb3YgOTggMTU6NTA6MzMKICAgIC0gKElTU1VFUyk6IG1pc2MgZGF0ZSBjaGFuZ2VzIGFuZCBtYXJrIHRoYXQgSSdtIHdvcmtpbmcgb24gc29tZXRoaW5nLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE1OjUzOjI0CiAgICAtIChzbm1wZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBjcmVhdGUvY2FsbCBzbm1wX3NodXRkb3duKCkuCiAgICAgIC0gcmVtb3ZlIHRoZSAicGVyc2lzdGVudC4iIHBhcnQgb2YgdGhlIHBlcnNpc3RlbnQgLmNvbmYgbmFtZS4KICAgICAgLSByZW5hbWUgaW5zdGVhZCBvZiB1bmxpbmsgb2xkIHBlcnNpc3RlbnQgLmNvbmYgZmlsZS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNzozNzowMAogICAgLSAoSVNTVUVTLCBzbm1wdjMuYyk6IHdoZW4gZW5naW5lSUQgY2hhbmdlcyBmcm9tIHRoZSBwcmV2aW91cyBydW4sCiAgICAgIHJlc2V0IGVuZ2luZUJvb3RzIHRvIDEuICAocmVxdWlyZXMgc3RvcmluZyB0aGUgbGFzdCBlbmdpbmVJRCB1c2VkKS4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMDoxMDoxOQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX21pYi5jLCBzbm1wX21pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oKToKICAgICAgLSB1c2UgbmV3IGxpYnJhcnkgYmFzZWQgc3RhdGlzdGljcyBjb3VudGVyIGV2ZXJ5d2hlcmUuCgpoYXJkYWtlciAxNiBOb3YgOTggMjA6MTc6MDEKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBpbnRlcmZhY2VzLmMsIHN5c3RlbS5jLCByZWdpc3RyeS5jKToKICAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMgaW4gYSBmZXcgbW9yZSBwbGFjZXMuCiAgICAgIC0gc3RhbmRhcmRpemUgdGhlIE1BVENIX0ZBSUxFRCBhbmQgTUFUQ0hfU1VDQ0VFREVEIGRlZmluaXRpb25zLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI0OjU2CiAgICAtIChzbm1wdXNtLmMpOiB1c21fY3JlYXRlX2luaXRpYWxfdXNlcigpIGFjY2VwdHMgbmFtZSAmIGF1dGgvcHJpdiB0eXBlcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNTo1MgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gbG9nIFBJRCB0byBmaWxlIHVzaW5nIC1QLgogICAgICAtIGNyZWF0ZSB0ZW1wbGF0ZSB1c2VyczogIHRlbXBsYXRlTUQ1ICYgdGVtcGxhdGVTSEEuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjY6MzAKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IG5ldyBmbGFnOiAtcSA9IHF1aWV0LgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI3OjEyCiAgICAtIChkZW1vKTogc2NyaXB0IHRvIHJ1biBsaXN0IG9mIGNvbW1hbmRzIHJlcXVpcmVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyODo1OAogICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSB0ZXN0aW5nIHRhcmdldHMuCgpoYXJkYWtlciAyMiBOb3YgOTggMTQ6MzY6NTMKICAgIC0gKGRlbW8pOiBxdW90ZSB0aGUgcGFzcyBwaHJhc2UuCgpoYXJkYWtlciAyMiBOb3YgOTggMjI6MTY6NDQKICAgIC0gKGRlbW8pOgogICAgICAtIHBhc3MvZmFpbCB0eXBlIG91dHB1dC4KICAgICAgLSBob3N0cyBvdGhlciB0aGFuIGxvY2FsaG9zdC4KICAgICAgLSBjYXBhYmlsaXR5IHRvIGxvb2sgZm9yIHN0dWZmIGluIG91dHB1dCBvZiBjb21tYW5kcy4KCmhhcmRha2VyIDIyIE5vdiA5OCAyMjoyNjoyOAogICAgLSAoZGVtbyk6IHR1cm4gZW5jcnlwdGlvbiBvbiBmb3IgdGVzdHMgdGhhdCBuZWVkIGl0LgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjE0OjA1CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBwcmludCBNRDUvU0hBIGJlZm9yZSB0aGUga2V5Y2hhbmdlIHN0cmluZy4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzoxNjowMQogICAgLSAoZGVtbyk6IGZpeCB0aGUga2V5IGNoYW5nZSBzdHJpbmcgZXh0cmFjdGlvbiB0byBsb29rIGZvciB0aGUgTUQ1IHZlcnNpb24uCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6Mzg6NDQKICAgIC0gKGtleW1hbmFnZXRlc3QuYyk6IGJlcXVpZXQgc2hvdWxkIGJlIDAgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDIzIE5vdiA5OCAwODowNjozNAogICAgLSAoZGVtbyk6IGJ1ZyBmaXhlcy4KCmRyZWVkZXIgMjQgTm92IDk4IDE2OjQzOjUwCiAgICBGaXhlZCBidWcgaW4gVVNNIHByZXZlbnRpbmcgZXhjaGFuZ2Ugb2YgY3J5cHRlZCBwYWNrZXRzLiAgQ29kZSBhZGRlZAogICAgCXRvIHByb3Blcmx5IGVzdGltYXRlIHNpemUgb2YgY3J5cHRlZCB0ZXh0IGdpdmVuIHVuLXBhZGRlZCBwbGFpbnRleHQuCiAgICAJRm91bmQvZml4ZWQgS01UIHByb3RvdHlwZSBjb25mbGljdCB0aGF0IGNhdXNlZCB0aGUgZ2l2ZW4gSVYgdG8gYmUKICAgIAlpZ25vcmVkIGF0IGNyeXB0L2RlY3J5cHQgdGltZS4KICAgIHNldHVwX2VuZ2luZUlEKCkgaGFzIGEgbmV3IGFyZ3VtZW50IHRvIGFsbG93IElEIHN0cmluZ3MgdG8gYmUgcmV0dXJuZWQKICAgIAl0byBjYWxsZXIuCiAgICBOZXcgZmlsZSBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmggdG8gcHV0IHN0YXRpYyBkZWNsYXJhdGlvbnMgaW4gYSBzaW5nbGUKICAgIAlwbGFjZS4uLgogICAgRmFpbHVyZSBvZiBzdGF0IGluY3JlbWVudHMgaW4gVVNNIG5vIGxvbmdlciBjYXVzZSBmYWlsdXJlIGluIHRoZSBjYWxsaW5nCiAgICAJZnVuY3Rpb24uCiAgICBBZGRlZCB1dGlsaXR5IGFwcHMvZW5jb2RlX2tleWNoYW5nZS4gICgtaCBmb3IgdXNhZ2UuKQogICAgRElGRlRJTUUgbWFjcm8gdG8gcmVwbGFjZSBvZnQgcmVwZWF0ZWQgY29kZS4KICAgIFNob3J0ZW5lZCBzb21lIFZBQ00gZGVidWdnaW5nIG91dHB1dCB0byBhIHNpbmdsZSBsaW5lIGZyb20gbWFueS4KICAgIE1vcmUgY29tbWVudHMuICBNb3JlIHRyb3VibGUgc3BvdHMgbWFya2VkIFhYWC4KICAgIENvbnZlcnRlZCBvZnQgdXNlZCBtYWdpYyBudW1iZXJzIHRvIHN5bWJvbGljIGNvbnN0YW50cyAoc29tZSBwcmUtZXhpc3RpbmcpLgogICAgQ2xlYW5lZCB1cCBzb21lIHNpbXBseSBmaXhlZCBidWlsZCB3YXJuaW5ncy4KICAgIFVwZGF0ZWQgbm9uZXhwb3J0L2NyeXB0by9SRUFETUUuICBTdGlsbCBuZWVkcyB3b3JrLgoKbWFyeiAyNSBOb3YgOTggMDc6NDQ6MjgKICAgICAtKHNubXBfcGFyc2VfYXJncy5jKTogYWRkZWQgLVQgPGJvb3RzPiA8dGltZT4gdG8gc2V0IGFuIGluaXRpYWwgKGF1dGhlbnRpY2F0ZWQpIHRpbWUgdmFsdWUgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmdpbmVJRHMgYm9vdHMvdGltZSkKCm1hcnogMjUgTm92IDk4IDA3OjQ4OjQ5CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wLmgsIHNubXBfY2xpZW50LmMpOiBoYW5kbGUgaW5jb21pbmcgUmVwb3J0cyAtIHByb3BhZ2F0ZSBTVEFUX0VSUk9SIHRvIGFwcHMgd2l0aCBhcHByb3AuIGVycm9yIG1lc3NhZ2UsIGhhbmRsZSByZWNvdmVyYWJsZSBlcnJvciBub3RJblRpbWVXaW5kb3cgYW5kIGVuZ2luZUlkIGRpc2NvdmVyeSwgc2VuZCByZXBvcnRzIHdpdGggc2VjTGV2ZWw9PW5vQXV0aE5vUHJpdiBleGNlcHQgbm90SW5UaW1lV2luZG93CgptYXJ6IDI1IE5vdiA5OCAwNzo1MTo1MAogICAgIC0odG9vbHMuYyk6IG9vcHMgYmFjayBvdXQgbGl0dGxlIGNvbXBpbGUgd29ya2Fyb3VuZCBJIGRpZCBub3QgbWVhbiB0byBjb21taXQKCm1hcnogMjUgTm92IDk4IDA3OjU0OjAxCiAgICAgLShzbm1wZC5jLCBzbm1wX2FnZW50LmMpOiBpbml0aWFsaXplIHBpZF9kaWxlLCBvbmx5IGFsbG9jYXRlIGVuZ2luZUlEIG1lbSBmb3IgUmVwb3J0cyB3aGVuIHNlbmRpbmcgUmVwb3J0LCBmaXggdmVyc2lvbiBpbmZvIGluIGRlYnVnIG1lc3NhZ2UKCmhhcmRha2VyIDI1IE5vdiA5OCAwNzo1NjozMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wTVBEU3RhdHMuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIEFkZGVkIGEgY291cGxlIG9mIERFVUJHUCBzdGF0ZW1lbnRzIGFuZCBhIGNvdXBsZSBvZiBjb21tZW50IGNsYWlyaWZpY2F0aW9ucy4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjozOTowMQogICAgLSAoc25tcHVzbS5jKTogY2hhbmdlcyBpbiBjb21tZW50cyBmb3IgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjo0MDozNQogICAgLSAoc25tcHYzLmMpOiBjaGFuZ2VzIGluIGNvbW1lbnRzIGZvciBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEyOjU0OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiB2ZXJzaW9uIGNoZWNrcyBhZ2FpbnN0IHYyYy92MnAgLT4gIXYxLgoKaGFyZGFrZXIgMjUgTm92IDk4IDEzOjA0OjAyCiAgICAtIChzbm1wZC5jKTogY29tbWVudCBjbGFyaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjUgTm92IDk4IDE3OjEyOjAyCiAgICAtIChkZW1vKToKICAgICAgLSBlbmNvZGVfa2V5Y2hhbmdlIHVzYWdlLgogICAgICAtIG1vdmUgY2xvc2VyIHRvIDQyLCBidXQgbGVhdmUgcm9vbSBmb3IgYSBmZXcgbW9yZSB0aGluZ3MuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTg6NDMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciB0Y2dldGF0dHIuCgpoYXJkYWtlciAyNSBOb3YgOTggMjI6NTk6NTYKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGNyZWF0ZSBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzQW5kVGltZSgpLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIzOjAwOjQ3CiAgICAtICh0b29scy5jKTogZHVtcF9lbmdpbmVJRCBzaG91bGQgKm5ldmVyIGV2ZXIqIG1vZGlmeSB0aGUgcGFzc2VkIGxlbmd0aCBwYXJhbS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowMjo0OQogICAgLSAoZGVtbyk6CiAgICAgIC0gLXM6IDEgc2VjIHNsZWVwIGluc3RlYWQgb2Yga2V5cHJlc3MuCiAgICAgIC0gZG8gdGltZSB0ZXN0cy4KICAgICAgLSB1c2UgZW5jb2RlX2tleWNoYW5nZS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowNDoxMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIFNoaGhoaC4uLi4uICBib290cyBhbmQgdGltZSBhcmUgd3JpdGFibGUuLi4gIERvbid0IHRlbGwgYW55b25lLi4uIFNoaGguLi4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzoxNTowNQogICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKToKICAgICAgLSB1c2UgdV9jaGFyJ3Mgd2hlcmUgYXBwcm9wcmlhdGUuCiAgICAgIC0gc29tZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzozMjo1MQogICAgLSAodXNtVXNlci5jKToKICAgICAgLSBrZXljaGFuZ2UgbmVlZHMgYSB0ZW1wIGJ1ZmZlci4KICAgICAgLSBhIGZldyBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDoyMDo0NQogICAgLSAoc25tcHVzbS5jKTogdXNtX3NldF9zYWx0KCkgYWNjZXB0cyBhIGtleSB3aGljaCBpcyB0b28gbG9uZyAoU0hBIGZvciBERVMpLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjIzOjAzCiAgICAtIChzbm1wX2FwaS5jKTogc25tcHYzX3NlbmRfcmVwb3J0KCkgcmVtb3ZlcyB0aGUgc2VjU3RhdGVSZWZlcmVuY2UKICAgICAgZnJvbSB0aGUgcGR1IGlzIHRoZXJlIGlzIG9uZS4gIEl0IHNob3VsZG4ndCBiZSB1c2VkIGZvciByZXBvcnRzLgoKaGFyZGFrZXIgMjcgTm92IDk4IDEwOjMxOjEyCiAgICAtIChkZW1vKTogZmluYWwgZml4ZXMgZm9yIGFsbCBjdXJyZW50IHRlc3RzIHRvIHdvcmsuCgpoYXJkYWtlciAyNyBOb3YgOTggMTU6MTU6MjUKICAgIC0gKGRlbW8pOgogICAgICAtIC1UOiBwYXVzZSBhZnRlciB0ZXN0IGNvbXBsZXRpb25zLgogICAgICAtICoqKiogNDIvNDIgdGVzdHMgcGFzc2VkCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTU6MTUKICAgIC0gKHNubXBwYXNzLmMpOiBiZWdpbm5pbmdzIG9mIGEgc25tcCBwYXNzd29yZCBjaGFuZ2VyOgogICAgICAtIHN0b2xlIG1vc3QgY29kZSBmcm9tIHNubXBzZXQuYyBhbmQgZW5jb2RlX2tleWNoYW5nZS5jLgogICAgICAtIG5lZWQgdG8gZml4OiBtdXN0IHNwZWNpZnkgbW9zdCBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUgKGllLAogICAgICAgIC5jb25mIGZpbGUgdG9rZW5zIGRvbid0IHdvcmsgaGVyZSkuCiAgICAgIC0gdmVyeSB1bmNsZWFuIGFuZCBhIHF1aWNrIGhhY2suCiAgICAgIC0gZGlmZmVycyBmcm9tIGVuY29kZV9rZXljaGFuZ2UsIGluIHRoYXQgaXQgYWN0dWFsbHkgcHJlZm9ybXMgdGhlIHNldC4KCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1NToyMwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgc25tcHBhc3MuYwoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU2OjQ3CiAgICAtICguY3ZzaWdub3JlKTogc25tcHBhc3MgYW5kIGVuY29kZV9rZXljaGFuZ2UKCmhhcmRha2VyIDI4IE5vdiA5OCAxMTo0MTowMgogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIG1lcmdlIHdyaXRlXyBrZXlDaGFuZ2UgYW5kIG93bktleUNoYW5nZSBmdW5jdGlvbnMgaW50byBvbmUuICBTaW5jZQogICAgICAgIHRoZSB1c2VyIG5hbWUgaXMgbm90IHBhc3NlZCBpbiwgdGhlIGNhbGxpbmcgbW9kdWxlIHdpbGwgaGF2ZSB0bwogICAgICAgIGNoZWNrIGZvciBpdCB1bnRpbCB3ZSdyZSB3aWxsaW5nIHRvIGNoYW5nZSB0aGUgQVBJIG9yIHRoZSBWQUNNIGlzCiAgICAgICAgZml4ZWQgYW5kIHRoZSBvd25LZXlDaG5hZ2Ugb2JqZWN0cyBjYW4gYmUgb2Jzb2xldGVkLgoKaGFyZGFrZXIgMjggTm92IDk4IDExOjQxOjM2CiAgICAtIChzbm1wcGFzcy5jKTogLW86IHVzZSB0aGUgb3duS2V5Q2hhbmdlIG9iamVjdC4KCm1hcnogMjkgTm92IDk4IDE5OjMyOjIxCiAgICAgKGRlbW8pOiBmaXggdGltZSBzeW5jIHRlc3QgdG8gdGVzdCBmb3IgdGltZW91dCBhcyBleHBlY3RlZCB3aGVuIGFwcCBjbG9jayBpcyBzZXQgYWhlYWQKCm1hcnogMjkgTm92IDk4IDE5OjM0OjQxCiAgICAgLShzbm1wX2FwaS5jKTogbW92ZSBjb21tYW5kbGluZSBiYXNlZCBib290cy90aW1lIHNldHRpbmcgY29kZSBhZnRlciBlbmdpbmVJRCBkaXNjb3ZlcnkgaW4gY2FzZSBlbmdpbmVJRCB3YXMgbm90IHN1cHBsaWVkIG9uIGNvbW1hbmQgbGluZSBhcyB3ZWxsCgpoYXJkYWtlciAzMCBOb3YgOTggMjI6MDA6MjMKICAgIC0gKGRlbW8pOiBiZXR0ZXIgZG9jdW1lbnQgdGhlIHJlcXVpcmVkIC5jb25mIGZpbGUgcGllY2VzLgoKaGFyZGFrZXIgMzAgTm92IDk4IDIyOjEyOjEwCiAgICAtIChkZW1vKTogZW5hYmxlIC1DOiBhdXRvLWNvbmZpZ3VyZSB0aGUgYWdlbnQuCgp3YmFic29uICAxIERlYyA5OCAwNzo1Njo1NQogICAgRml4ZWQgYSBsaWJyYXJ5IHNlYXJjaCBvcmRlciBidWcgd2hpY2ggaGFkIC91c3IvbG9jYWwvc3NsL2xpYiBhbmQgL3Vzci9sb2NhbC9saWIKICAgIHNlYXJjaGVkIGJlZm9yZSAuLi9zbm1wbGliLiBUaGlzIGNhdXNlZCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgd2hlbiB0cnlpbmcgdG8KICAgIGxpbmsgc25tcGQgYW5kIHRoZSBhcHBsaWNhdGlvbnMuIFRvIGRvIHRoaXMgTE9DQUxfTElCUyB3YXMgY3JlYXRlZCBhbmQgLi4vc25tcGxpYgogICAgd2FzIHJlbW92ZWQgZnJvbSBMSUJTIGFuZCBwbGFjZWQgdGhlcmUuIFRoZW4gTE9DQUxfTElCUyB3YXMgYWRkZWQgYmVmb3JlCiAgICBMREZMQUdTIGluIHRoZSBsaW5rIGNvbW1hbmRzLiBhZ2VudC9NYWtlZmlsZS5pbiBhbmQgYXBwcy9NYWtlZmlsZS5pbiB3ZXJlIG1vZGlmaWVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NToyOAogICAgLSAodG9vbHMuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NDkKICAgIC0gKHVzbVVzZXIuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6NTUKICAgIC0gKHNubXBwYXNzLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKbWFyeiAgMiBEZWMgOTggMDg6MzI6MjkKICAgICAtKGRlbW8uYyk6IHRlc3QgIzM4IHdpbGwgc2hvdyB0aGUgNiBtZXNzYWdlIGV4Y2hhbmdlIHNpbmNlIGl0IGlzIGluaXRpYWxpemVkIHdpdGggYSBzaW11bGF0ZWQgYXV0aGVudGljIG9vdHMvdGltZSB3aGljaCBkZWZlYXRzIHRoZSBMQ0RfVElORV9TWU5DX09QVAoKaGFyZGFrZXIgIDIgRGVjIDk4IDE0OjI2OjA4CiAgICAtIChzbm1wX2FnZW50LmMpOiBhZnRlciBkZXRlY3Rpb24gb2Ygc25tcCB2ZXJzaW9uLCBlcnJvciBjb2RlcyB3ZXJlIHJldmVyc2VkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE1OjE4OjUzCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogYWRkZWQgdjMgc3BlY2lmaWMgdG9rZW4gbm90ZXMuCgpoYXJkYWtlciAgMiBEZWMgOTggMTU6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wLmNvbmYuNS5kZWYpOiBjcmVhdGVkIGEgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE3OjAzOjI3CiAgICAtICguY3ZzaWdub3JlKTogc25tcC5jb25mLjUgaWdub3JlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxNzowMzo0OAogICAgLSAoc25tcC5jb25mLjUuZGVmKTogbWliZGlycywgbWlicywgYW5kIG1pYmZpbGVzIGRvY3VtZW50ZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTk6Mzg6MTIKICAgIC0gKGxjZF90aW1lLmMpOiBjb21tZW50IGNsYWlyaWZpY2F0aW9uLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjIyCiAgICAtIChtaWIuYyk6IHVubmVlZGVkIFhYWCByZW1vdmVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM5OjQ3CiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSBza2lwIGFoZWFkIG9mIHNwYWNlIG9uIHJldHVybmVkIHBvaW50ZXIuCgpkcmVlZGVyICAzIERlYyA5OCAxODo0NDo0OQogICAgQ28tY2hlY2tpbiB3aXRoIG5ldyB2ZXJzaW9uIG9mIEtNVCAobG9jYXRlZCBpbiBub25leHBvcnQvS01ULXNubXApLgogICAga210X3JhbmRvbSgpIHNpZ25hdHVyZSBjaGFuZ2VkIGluIHNjX3JhbmRvbSgpLgogICAgU2Vjb25kIHZlcnNvbiB0ZXN0aW5nL2RlbW8gYXQgdGVzdGluZy9kZW1vMiogLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIwOjA2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG5ldyBmbGFnIGFuZCBkZWZpbmUgLS1lbmFibGUtdGVzdGluZy1jb2RlIC0+IFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIyOjU5CiAgICAtIChrZXl0b29scy5jKTogdXNlIFNOTVBfVEVTVElOR19DT0RFIGRlZiB0byBwcm90ZWN0IHNvbWUgc2VjdGlvbnMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjM6NDgKICAgIC0gKHNjYXBpLmMpOiB0ZXN0aW5nIERFQlVHUCBmb3IgcHJpbnRpbmcgb3V0IGtleXMuCgpoYXJkYWtlciAgMyBEZWMgOTggMjI6MjY6NDAKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBwcm90ZWN0IHNlY3Rpb25zIHdpdGggU05NUF9URVNUSU5HX0NPREUuCiAgICAgIC0gYWxsb3cgKidzIGluIGZpZWxkcyBmb3IgZW5naW5lSURzIGZvciBrZXkgc2V0dGluZyAuY29uZiBlbnRyaWVzLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjMyOjIwCiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBFbmdpbmUuaCk6CiAgICAgIC0gb25seSBtYWtlIHRpbWUvYm9vdHMgc2V0YWJsZSB3aGVuIFNOTVBfVEVTVElOR19DT0RFIGlzIGRlZmluZWQuCgpoYXJkYWtlciAgMyBEZWMgOTggMjM6MTc6MTcKICAgIC0gKGRlbW8pOiByZW1vdmVkLgoKbWFyeiAgNCBEZWMgOTggMDg6MDU6NTkKICAgICAtKHNubXBjbWQuMSk6IHVwZGF0ZSBtYW4gcGFnZSBmb3IgbmV3IFYzIHBhcnNlIGFyZ3MKCmhhcmRha2VyICA0IERlYyA5OCAxMTowMzoxNAogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBwYXNzLmMsIHNubXB1c20uYyk6CiAgICAgIC0gZGVsZXRlIHNubXBwYXNzLgogICAgICAtIGNyZWF0ZSBmaXJzdCBwYXNzIHNubXB1c20uYy4KCmhhcmRha2VyICA0IERlYyA5OCAxMTowNDowOQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSAqIGZvciBlbmdpbmVJRCBmZWF0dXJlLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ1OjQzCiAgICAtIChVQ0QtREVNTy1NSUIudHh0KTogZGVtbyBtaWIgb2JqZWN0cy4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0NjowOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1lbnRpb24vcmVzZXJ2ZSB0aGUgZGVtbyBvYmplY3QgZ3JvdXAgaW4gYSBjb21tZW50LgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjQ5OjIxCiAgICAtICguY3ZzaWdub3JlKTogLmdkYiBzdHVmZgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjA0CiAgICAtICh1Y2REZW1vUHVibGljLmMsIHVjZERlbW9QdWJsaWMuaCk6CiAgICAgIC0gZXhhbXBsZXMvdWNkRGVtb1B1YmxpYyBtb2R1bGU6ICBzaW1wbGUgb2JqZWN0cyBmb3IgZG9pbmcgZGVtb3MsCiAgICAgICAgaW5jbHVkaW5nIHJlbW90ZSByZXNldHRpbmcgb2Yga2V5cyB0byBhIGtub3duIHBhc3N3b3JkcyBmb3IgYSBsaXN0CiAgICAgICAgb2YgdXNlcnMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NTA6MjgKICAgIC0gKHVjZERlbW9QdWJsaWMuY21kcyk6IGNvbW1hbmRzIHRvIHJ1biB0byBzZXQgdXAgZm9yIHRoZSBkZW1vLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjM4CiAgICAtICh1Y2REZW1vUHVibGljLmNvbmYpOiBjb25maWd1cmF0aW9uIGZpbGUgbGluZXMgbmVlZGVkIGZvciB0aGUgZGVtby4KCmhhcmRha2VyICA0IERlYyA5OCAxODozODowNQogICAgLSAodmVyc2lvbi5oLCBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQpOiA0LjAucHJlMSB0YWcKCmRyZWVkZXIgIDUgRGVjIDk4IDE2OjUyOjQ5CiAgICBFeHRlbmRlZCBkZW1vMiBpbnRvIGRlbW8ucmVtb3RlIHRvIGFsbG93IHRlc3RpbmcgYmV0d2VlbiA8aGVyZT4gYW5kCiAgICB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCm1hcnogMTMgRGVjIDk4IDE0OjU3OjAyCiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jKTogYWRkIHN1cHBvcnQgZm9yIG1zZ0lEIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHJlcWlkIGFuZCB3aGljaCBpbmNyZW1lbnRzIHdpdGggZWFjaCByZXRyeS4gTm90ZTogbGF0ZSBSZXNwb25zZXMgd2lsbCBiZSBkcm9wcGVkIGlmIHRoZXkgYXJyaXZlIGFmdGVyIHRpbWVvdXQgLSB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIHYxIGJlaGF2aW91ciB3aGVyZSBhIGxhdGUgUmVzcG9uc2UgdG8gdGhlIGluaXRpYWwgdHJ5IHdpbGwgYmUgYWNjZXB0ZWQgdXAgdG8gdGhlIHRpbWUgd2hlcmUgdGhlIGxhc3QgcmV0cnkgdGltZXMgb3V0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6Mzk6MDIKICAgIC0gKG1pYjJjKTogbWlub3IgdXBkYXRlIChuZWVkcyBtb3JlKSBmb3IgbmV3ZXIgc25tcCBwZXJsIG1vZC4KCmhhcmRha2VyIDEzIERlYyA5OCAxODozOTo0NAogICAgLSAoLmN2c2lnbm9yZSk6IC5nZGIuYXV0by5pbml0CgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NDE6MTEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6IHJlbW92ZWQgdW5uZWVkZWQgbGludXggaWZkZWYuCgpoYXJkYWtlciAxNyBEZWMgOTggMTU6NTk6MTAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiB3cmFwIGNvbmZpZyBsaW5lIHByaW50J3MgaW4gU05NUF9URVNUSU5HX0NPREUgY2hlY2tzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIxOjU1OjA0CiAgICAtIChqdXN0IGFib3V0IGFsbCBmaWxlcyk6IG1lcmdlIG9mIFYzLWIxIGNoYW5nZXMgaW50byBWMy1iMiBicmFuY2guCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mjc6NTQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHVzbVVzZXIuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHJlYWRfY29uZmlnLmgsIHNubXBfYXBpLmMsIHNubXB1c20uYywgc25tcHYzLmMsIHRvb2xzLmgpOgogICAgICAtIGZpbmFsIGNoYW5nZXM/IHRvIFYzLWIyIG1lcmdlLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjI5OjUyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSB0aGF0IDI4IGVycm9ycyBmcm9tIHdoaXRlc3BhY2UgY2hhbmdlcy4KCmhhcmRha2VyICAyIERlYyA5OCAyMjozNzowOAogICAgLSAoc25tcGQuYyk6IGNhbGwgaW5pdF9zbm1wdjMgYmVmb3JlIC1IIHVzYWdlIGluZm8uCgpoYXJkYWtlciAxMyBEZWMgOTggMTA6MzM6NDUKICAgIC0gKCopOiBtZXJnZTEgdG8gVjMtYjMuCgpoYXJkYWtlciAxMyBEZWMgOTggMTg6NTY6MTgKICAgIC0gKCopOiBtZXJnZTIgdG8gVjMtYjMuCgpkcmVlZGVyIDE3IERlYyA5OCAwODowNTowNAogICAgQ3JlYXR1cmUgY29tZm9ydDogL2V0YyBzY3JpcHQgdG8gKHJlKXN0YXJ0IGFuZCBzdG9wIHNubXBkIGFuZCBzbm1wdHJhcGQKICAgIGFuZCBrZWVwIChjb21wcmVzc2VkKSBjb3BpZXMgb2YgcHJldmlvdXMgbG9nZmlsZXMuICBJbnRlbmRlZCB0byBiZSB1bml2ZXJzYWwKICAgIHRvIExpbnV4LCBTb2xhcmlzLCBGcmVlQlNELCAuLi4gLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjM2OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IGlmIEtNVCBpc24ndCBhdmFpbGFibGUuCgpoYXJkYWtlciAyMSBEZWMgOTggMTc6NDk6MzgKICAgIC0gKGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgbWQ1LmMsIG1kNS5oLCBzY2FwaS5jLAogICAgICBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgdG9vbHMuYyk6CiAgICAgIC0gaW50ZXJuYWwgTUQ1IHN1cHBvcnQgZG9uZS4KICAgICAgICAtIHRlc3RlZCB3aXRoIGFuZCB3aXRob3V0IGttdCB0byBvcHBvc2l0ZSBhbmQgc2FtZSBzaWRlIGFwcHMvYWdlbnRzLgogICAgICAgIC0gdGVzdGVkIGFnYWluc3Qgb2xkZXIgNC4wLnByZTEgYWdlbnQgb24gYmFuZGl0IGFzIHdlbGwuCiAgICAgICAgLSBhbGwgYnV0IG9uZSB0ZXN0aW5nLyogdGVzdCBwYXNzZXMgKHdoaWNoIHdhcyBmYWlsaW5nIGJlZm9yZSBhbnl3YXkpLgogICAgICAgIC0gdGhlIG9sZGVyIGRlbW8gc2NyaXB0IHBhc3NlcyBhcyB3ZWxsLgogICAgICAtIE1vZGlmaWVkIG1hbnkgb3RoZXIgcm91dGluZXMuICBFdmVyeXRoaW5nIHNob3VsZCB1c2UgU0NBUEkgbm93IGFuZAogICAgICAgIEtNVCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGRpcmVjdGx5IG91dHNpZGUgdGhlIHNjYXBpLmMgYW5kCiAgICAgICAga2V5dG9vbHMuYyBmaWxlcy4KICAgICAgICAtIG5ldyBzY2FwaSByb3V0aW5lOiAgc2NfaGFzaCgpLgogICAgICAtIENvdWxkLCBhcyBhbHdheXMsIHVzZSBhIGJpdCBtb3JlIGNsZWFuIHVwLCBidXQgSSBuZWVkZWQgdG8gY2hlY2sKICAgICAgICBzb21ldGhpbmcgaW4gdGhhdCB3b3JrZWQgYmVmb3JlIEkgYnJlYWsgaXQgYWdhaW4gKGFoZW0pLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjUzOjEwCiAgICAtIChzbm1wZ2V0LmMsIHNubXB1c20uYyk6IHVubmVlZGVkIEtNVCBpbmNsdWRlcyByZW1vdmVkLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU0OjM4CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBzdXJyb3VuZCBhIGZldyBLTVQgc3BlY2lmaWMgaXRlbXMgd2l0aCAjaWZkZWZzLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjU2OjU2CiAgICAtIChzbm1wX2FnZW50LmMpOiByZW1vdmUgdW5uZWVkZWQgS01UIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQwOjEyCiAgICAtIChrZXl0b29scy5jKTogZGVjb2RlX2tleWNoYW5nZSgpIHdhc24ndCBzZXR0aW5nIHRoZSByZXR1cm5lZCBidWZmZXIgbGVuZ3RoLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDE5OjQzOjUwCiAgICAtIChzbm1wX2FwaS5jKTogREVCVUdQIG9mIHByb2JlZCBlbmdpbmVJRCBwcmludGVkIDAwJ3MgYXMgMCdzLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjA5OjM4CiAgICAtIChzbm1wX2FnZW50LmMsIHVzbVN0YXRzLmMsIHVzbVN0YXRzLmgsIHVzbVVzZXIuaCwKICAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQpOgogICAgICAtIHVwZGF0ZWQgVVNNIG1pYiwgaW5jbHVkaW5nIHRoZSBtb3ZlIGZyb20gc25tcE1vZHVsZXMuMTIgdG8gLjE1LgogICAgICAtIG1ha2UgcmVwb3J0cyBnZW5lcmF0ZWQgaW5jbHVkZSB0aGUgLjAgc3VmZml4IGZvciB0aGUgaW5zdGFuY2Ugc3BlY2lmaWVyLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjEwOjI4CiAgICAtICh0b29scy5jKTogd3JhcCBkdW1wX2VuZ2luZUlEIGluICNpZmRlZiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToxNzoyNQogICAgLSAobGNkX3RpbWUuYyk6IHdyYXAgZHVtcF9ldGltZWxpc3QoKSBpbiAjaWZkZWYgU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MjA6MzEKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6CiAgICAgIC0gZG9uJ3QgdXNlIGR1bXBfc25tcEVuZ2luZUlEKCkgdW5sZXNzIHRlc3RpbmcuCiAgICAgIC0gTm90ZTogdGhpcyB1dGlsaXR5IGlzIG5vdCByZWFsbHkgbmVlZGVkIGFueW1vcmUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjI6MTI6MzIKICAgIC0gKFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0KTogdHlwbyAoY3V0IGFuZCBwYXN0ZSBtaXNzZWQgYSBsaW5lKS4KCmhhcmRha2VyIDIzIERlYyA5OCAyMTowNzozMwogICAgLSAoc25tcHVzbS5jKTogbXNnU2VjdXJpdHlQYXJhbXMgc2hvdWxkIGNvbnRhaW4gdGhlICpzYWx0Kiwgbm90IHRoZSBJViwKICAgICAgYXMgZGVmaW5lZCBieSB0aGUgVVNNIGRvY3VtZW50LCBzZWN0aW9uIDguMS4xLjEgKGFuZCBjb21tb24gc2Vuc2UpLgoKaGFyZGFrZXIgMjMgRGVjIDk4IDIxOjQ3OjQ0CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSBTZW5kIG9ubHkgYXV0aE5vUHJpdiByZXBvcnRzIGZvciBub3RJblRpbWVXaW5kb3cgcmVwb3J0cy4KICAgICAgLSByZXBvcnQgbGVuZ3RoIGNoZWNrIGluY3JlYXNlZCBieSBvbmUgdG8gYWNjb21vZGF0ZSBmb3IgdGhlIC4wIHN1ZmZpeC4KCmhhcmRha2VyIDIzIERlYyA5OCAyMjowNjoyNQogICAgLSAoc25tcHVzbS5jKTogYWxsb3cgZ2VuZXJhdGVfb3V0X21zZygpIHRvIHVzZSB1bmtub3duIHNlY3VyaXR5IG5hbWVzCiAgICAgIGZvciBzZWNMZXZlbCA9IG5vQXV0aE5vUHJpdi4KICAgICAgLSB0aGlzIGlzIHJlcXVpcmVkIHNpbmNlIHVua25vd25Vc2VyIHJlcG9ydHMgbmVlZCB0byBnbyBvdXQgd2l0aCB0aGUKICAgICAgICBzYW1lIHVzZXIgbmFtZSBhcyB0aGUgYmFkIHJlcXVlc3QgdGhhdCBjYW1lIGluLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjAxOjI0CiAgICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgICB0cmVlLiAgVGhlIHZpZXdzIGFscmVhZHkgZXhpc3RlZCwgYnV0IHdlcmVuJ3QgY2hlY2tlZCBhbmQgb25seSB0aGUKICAgICAgZmlyc3QgdmlldyB3YXMgZm91bmQuCiAgICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICAgc2hvdWxkIGJlIHJld3JpdHRlbiB3aXRoIHN1Yi1waWVjZXMgdG8gZG8gaXQgcHJvcGVybHkgd2l0aCBncmVhdGVyCiAgICAgICAgc3BlZWQuCgpoYXJkYWtlciAyOSBEZWMgOTggMTc6Mjg6MzEKICAgIC0gKGNvbmZpZyopOiBkZWZpbmUgdV9pbnR7OCwxNiwzMn1fdCBmb3IgS01UIGhlYWRlcnMuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTU6MzkKICAgIC0gKHNubXB1c20uYyk6IFVTTSBvaWQncyB3ZXJlIHdyb25nCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NTg6MTkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTIgKQoKaGFyZGFrZXIgIDYgSmFuIDk5IDA3OjQ2OjAyCiAgICAtIChzbm1wdXNtLmMpOiB1c21fc2V0X3NhbHQoKSB3YXMgdXNpbmcgYSBob3N0IHNwZWNpZmljIGJ5dGUgb3JkZXJpbmcKICAgICAgZm9yIGdlbmVyYXRpbmcgdGhlIHNhbHQgZnJvbSB0aGUgZW5pZ2luZUJvb3RzIHZhbHVlIGFuZCBmcm9tIHRoZQogICAgICBhcmJpdHJhcnkgaW50ZWdlci4gIFRoaXMgdGVjaG5pY2FsbHkgc2hvdWxkbid0IG1hdHRlciwgYnV0IHNpbmNlCiAgICAgIHdlJ3JlIHNob290aW5nIHRvIGJlIGEgcmVmZXJlbmNlIHBsYXRmb3JtLi4uCgpoYXJkYWtlciAxOSBKYW4gOTkgMTk6MjA6MDcKICAgIC0gKElTU1VFUyk6IG5lZWQgcmFuZG9tIGludCBmb3IgSVYuCgp3YmFic29uIDI2IEphbiA5OSAwNTo1MjoxOQogICAgIENoYW5nZWQgTUlOKCkgbWFjcm8gdG8gU05NUF9NSU4oKSBiZWNhdXNlIHdlIGV4cGxpY2l0bHkKICAgICBkZWZpbmUgdGhhdCBpbiB0b29scy5oLi4uIFRoaXMgd2FzIG5lZWRlZCB0byBhbGxvdyBzdWNjZXNzZnVsCiAgICAgbGlua2FnZSBpbiBTb2xhcmlzIDIuNgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjM3OjU2CiAgICAtIChTTk1QLVRBUkdFVC1NSUIudHh0KTogdGFyZ2V0IG1pYiB3YXMgaW1wcm9wZXJseSBsb2NhdGVkIGF0IC4xNSBub3QgLjEyLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIwOjUxOjEyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFjY2VwdCBzZWN1cml0eSBsZXZlbCBhYmJyZXZpYXRpb25zLgoKaGFyZGFrZXIgMjcgSmFuIDk5IDIxOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIGNyZWF0ZSAtLXdpdGgtcGVyc2lzdGVudC1kaXJlY3RvcnkgY29uZmlndXJlIHNjcmlwdCBmbGFnLgoKZHJlZWRlciAyOSBKYW4gOTkgMTU6MjA6NTEKICAgIFJlcGFpcmVkIHRlc3RzIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiB0aGUgY29kZWJhc2UuCgptYXJ6IDMxIEphbiA5OSAxMzo1NzoxMwogICAgIC0oc25tcF9hcGkuYyk6IHplcm8gbGVuZ2h0IHVzZXIgbmFtZSBmb3IgZW5pbmVJRCBkaXNjb3ZlcnkKCmRyZWVkZXIgIDIgRmViIDk5IDE0OjA0OjQ4CiAgICBSZXNvbHZlIE9JRCBjb2xsaXNpb25zOiAxKSBiZXR3ZWVuIGRlbW8gTUlCIGFuZCBVQ0QgZW50ZXJwcmlzZSBNSUI7IDIpCiAgICBpbnNpZGUgZGVtbyBNSUIuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDQ6MzgKICAgIC0gKHNubXB0cmFwZC5jKTogc3VwcG9ydCAtSC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxMzo0MQogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gYWxsb3cgZW52IHZhcmlhYmxlIFNOTVBfUEVSU0lTVEVOVF9GSUxFIHRvIG92ZXJyaWRlIHBlcnNpc3RlbnQKICAgICAgICBzdG9yYWdlIGxvY2FjdGlvbi4KICAgICAgLSBtZXJnZSBpbiBNaWtlJ3MgY2hhbmdlcyB0byBjb3B5X3dvcmQoKS4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjoxNDo0NgogICAgLSAodGFyZ2V0LmgpOiBtZXJnZSBtaWtlJ3MgdGFyZ2V0IG1pYmdyb3VwIGludG8gdGhlIDQuMCBsaW5lLgoKbWFyeiAgNiBGZWIgOTkgMTU6MDQ6MTMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9wYXJzZV9hcmdzLmMsc25tcHYzLltjaF0sc25tcHVzbS5jLHNubXBjbWQuMSk6IGFsbG93IGNvbnRleHRFbmdpbmVJRCBhbmQgc2VjdXJpdHlFbmdpbmVJRCB0byBiZSBkaWZmZXJlbnQsIGFkZGVkIC1FLy1lIHRvIHBhcnNlX2FyZ3MsIGZpeGVkIGVuZ2luZUlEIGRpc2NvdmVyeSB3aGljaCBicm9rZSBhZnRlciBuYW1lIHVzZWQgaW4gcHJvYmUgc3dpdGNoZWQgdG8gemVybyBsZW5ndGggc3RyaW5nCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDM6MTUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAtV2FsbCBmaXguCgpoYXJkYWtlciAgNyBGZWIgOTkgMjA6NDU6MTcKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGEgZmV3IC1XYWxsIGZpeGVzOgogICAgICAtIHByb3RveXBlIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKHZvaWQpLgogICAgICAtIHJlbW92ZSB1bm5lZWRlZCB2YXJpYWJsZXMuCiAgICAgIC0gZG9uJ3QgY29tcGlsZSBpbiBzZXRfZW5naW5lQm9vdHNBbmRUaW1lIGludGVyZmFjZSBmdW5jdGlvbiBpZiBub3QgbmVlZGVkLgoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQ3OjU5CiAgICAtIChzbm1wMnAuYywgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgc25tcGQuYywgc25tcGQuaCwgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGltcGxlbWVudCBhZ2VudCB1c2luZyBsaWJyYXJpZXMgcGFyc2luZyBhbmQgaGFuZGxpbmcgcm91dGluZXMKICAgICAgICBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LgoKaGFyZGFrZXIgIDggRmViIDk5IDAwOjExOjU5CiAgICAtIChzbm1wX2FnZW50LmMsIHV0aWxfZnVuY3MuYywgdWNkRGVtb1B1YmxpYy5jLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgc25tcEVuZ2luZS5jLCB1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLAogICAgICBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSBtb2RpZmllZCB0byB3b3JrIHdpdGggbmV3IHdyaXRlIHZhcmlhYmxlIGFwaS4KICAgICAgLSBmaXhlZCBhIG1pc3NpbmcgZmVhdHVyZSBpbiBEYXZlJ3MgY29kZTogY3JlYXRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTI6MjI6MTMKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkuCgp3YmFic29uICA4IEZlYiA5OSAxMzozNDozOQogICAgQ2hhbmdlZCB0aGUgZnVuY3Rpb24gcHJvdG90eXBlIGZvciBzbm1wdjNfc2V0X2VuZ2luZUJvb3RzYW5kIFRpbWUKICAgIGZyb20gaW50IGYoKTsgdG8gdm9pZCBmKCk7IHRvIG1hdGNoIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGkKICAgIHNubXB2My5jIC4KCndiYWJzb24gIDggRmViIDk5IDEzOjQwOjI3CiAgICBmaXhlZCBjYXN0aW5nIGVycm9yLi4uICoobG9uZykgY2hhbmdlZCB0byAqKGxvbmcgKikKCmRyZWVkZXIgMTcgRmViIDk5IDE2OjIzOjQzCiAgICBSYW5kb20gSVY7IGZpeGVkIHNhbHQgY29uc3RydWN0aW9uLgogICAgRml4ZWQgTlVMTCBkZXJlZmVyZW5jZSBzaG93LXN0b3BwZXIgaW50cm9kdWNlZCBieSBtZXJnZSBvZiBELiBTaGVsZCdzIGNoYW5nZXMuCiAgICBjb25maWd1cmUuaW4rTWFrZWZpbGUuaW4gYXV0b21hdGljYWxseSBjcmVhdGUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkuCiAgICBNaW5vciBjb21waWxlIHdhcm5pbmdzLCBvdXQtb2YtZGF0ZSBjb21tZW50cyBmaXhlZCwgY2xhcmlmaWVkIGRlYnVnIG91dG91dCwKICAgIAljbGFyaWZpZWQgcHJlLWNvbXBpbGUgY29kZSBpbiBzY2FwaS5jLgogICAgRGlzY292ZXJlZCB3aGVyZSBwZHUtPnNlY3VyaXR5RW5naW5lSUQgd2FzIGJlaW5nIG11bHRpcGx5IGZyZWUnZCwgYnV0IG5vdAogICAgCXRoZSAqZmlyc3QqIHRpbWUuLi4gKG9wZW4gcHJvYmxlbSkKCmhhcmRha2VyIDE3IEZlYiA5OSAyMDo1OToyOQogICAgLSAoc25tcGQuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjA3CiAgICAtIChzbm1wX2FnZW50LmMpOgogICAgICAtIGZpeCBnZXRidWxrcy4KICAgICAgLSBmaXggc25tcHNldCdzIHRvIGFsbG93IGNyZWF0aW9uLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjIyCiAgICAtIChkbG1vZF9taWIuYyk6IGRvbid0IGRlZmluZSBNQVRDSF9TVUNDRUVERUQgYXQgYWxsLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAwOjM2CiAgICAtICh1dGlsX2Z1bmNzLmMpOiAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDo1OAogICAgLSAocm91dGVfd3JpdGUuYywgc25tcF9taWIuYywgc3lzdGVtLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjAxOjM2CiAgICAtICh1c21Vc2VyLmMsIGV4dGVuc2libGUuYywgcGFzcy5jLCBwcm9jLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtIC1XYWxsIHZhcmlhYmxlIHJlbW92aW5nLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjA1OjI4CiAgICAtIChrZXl0b29scy5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCiAgICAgIHNubXBfY2xpZW50LmMsIHNubXB1c20uYywgdHJhbnNmb3JtX29pZHMuaCk6CiAgICAgIC0gLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6Mjg6NTcKICAgIC0gKGtleXRvb2xzLmMpOiBvcHBzLiAgRGVsZXRlZCBhIHZhcmlhYmxlIEkgc2hvdWxkbid0IGhhdmUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MzA6MTEKICAgIC0gKHNubXBfYWdlbnQuYyk6IFlvdSBjYW4ndCBhc3NpZ24gYSBOVUxMIHRvIGEgdW5pb24sIG9ubHkgdG8gYSBzdWItdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTo0NToyMwogICAgLSAodGVzdGluZy9NYWtlZmlsZS5pbik6IHJlbW92ZSByZWZlcmVuY2VzIHRvIHN1YmRpcnMgc2luY2UgdGhlcmUgYXJlCiAgICAgIG5vbmUgYW5kIGl0IGJyZWFrcyBzaW1wbGllciB2ZXJzaW9ucyBvZiBzaCB3aGVuIG5vIGFyZ3VtZW50cyB0bwogICAgICBmb3JlYWNoIGV4aXN0LgoKbWFyeiAyNCBGZWIgOTkgMDk6MzE6MjkKICAgICAtKHNubXBsaWIvc25tcF9hcGkuW2NoXSxzbm1wbGliL3NubXAuaCxhZ2VudC9zbm1wZC5oLGFnZW50L3NubXBfYWdlbnQuaCk6IG1vdmVkIFJlcG9ydHMgaW50byBzbm1wbGliLCBjb25mb3JtIHRvIHNwZWMgb24gY3JpdGVycmlhIGZvciBzZW5kaW5nIFJlcG9ydHMsIGxheSBncm91bmQgd29yayBmb3IgbWF4TXNnU2l6ZSwgZGVmYXVsdCBjb250ZXh0RW5naW5lSUQgdG8gc2VjdXJpdHlFbmdpbmVJRCB3aGVuIG5vdCBleHBsaWNpdGx5IHNldCBpdHNlbGYKCm1hcnogMjUgRmViIDk5IDE0OjA0OjA1CiAgICAgLShzbm1wX2FwaS5jLHNubXBfY2xpZW50LmMpOiBmaXhlZCBidWcgaW4gc25tcF9jbG9uZV9wZHUgKG5vdCBjbG9uaW5nIHNlY3VyaXR5RW5pZ2luZUlEKSwgdW5jb21tZW50ZWQgX3NubXBfZnJlZQoKd2JhYnNvbiAgOSBNYXIgOTkgMDg6NTQ6MTIKICAgIEZpcnN0IGN1dCBhdCBzbm1wdHJhcGQgbW9kaWZpY2F0aW9uLiBSZWNlaXZlcyBhdXRoUHJpdiBhbmQgbG93ZXIgc2VjdXJpdHkKICAgIGxldmVsIHRyYXBzLgoKd2JhYnNvbiAgOSBNYXIgOTkgMDk6MDI6MDcKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IHRvIGdldCBzZWN1cml0eU5hbWUgZnJvbSBQRFUgcmF0aGVyIHRoYW4gc2Vzc2lvbgogICAgYXMgc2Vzc2lvbiB3YXMgbm90IHlldCBpbml0aWFsaXplZCBkdXJpbmcgZW5naW5lIElEIGRpc2NvdmVyeSBhbmQgdGhlIE5VTEwKICAgIHZhbHVlIGNhdXNlZCBhIHNlZ21lbnRhaW9uIGZhdWx0LgoKbWFyeiAxMCBNYXIgOTkgMDg6MDQ6NDcKICAgICAtKHNubXBfYXBpLmMpOiBmaXggZW5naW5lSWQgZGlzY292ZXJ5IHdoZW4gY29udGV4dCBlbmdpbmVJRCBpcyBzcGVjaWZpZWQgKG5lZWRlZCB0byBkaXNjb3ZlciBwcm94eSBlbmdpbmVJRCBpZiBhbGwgeW91IGtub3cgaXMgcHJveGllZCBhZ2VudCdzIGVuZ2luZUlEKQoKd2JhYnNvbiAxNyBNYXIgOTkgMTM6Mjc6NTkKICAgIENoYW5nZWQgREVCVUdQKCkgc3RhdGVtZW50IGFib3V0IEJ1aWxkaW5nIHRoZSBTTk1QIG1lc3NhZ2Ugc28gdGhhdAogICAgZXZlbiBpZiBzZWN1cml0eU5hbWUgaXMgdW5pbml0aWFsaXplZCAoTlVMTCksIHByb2dyYW0gd2lsbCBjb250aW51ZQogICAgd2l0aG91dCBjb3JlIGR1bXBpbmcuIExhdGVyLCBzb21lb25lIHNob3VsZCBzZWUgYWJvdXQgZml4aW5nIHRoZSBsb2dpYwogICAgc28gdGhhdCBzZWN1cml0eU5hbWUgd2lsbCBub3QgYmUgYSBOVUxMIHBvaW50ZXIgaGVyZSwgb3IKICAgIHJlcGFpciB0aGUgZGVidWdnaW5nIHNjaGVtZSwgaWYgdGhhdCdzIHZhbGlkLgoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMwOjEyCiAgICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfcmVhZF9jb25maWcuaAoKaGFyZGFrZXIgMjQgTWFyIDk5IDIwOjMyOjQ0CiAgICAtICh0ZXN0aW5nL01ha2VmaWxlLmluKTogcmVtb3ZlIHN1YmRpcnMuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MDM6MDQKICAgIC0gKHZhY21fdmFycy5oKTogcmVsb2NhdGUgVkFDTSBub2RlIHdoZXJlIGl0IHNob3VsZCBiZSAoMTMtPjE2KS4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjoxNjozOAogICAgLSAocmVhZF9jb25maWcuYyk6IHNraXAgc3BhY2UgYWZ0ZXIgY29weWluZyBhIHdvcmQgaW4gY29weV93b3JkKCkKCmhhcmRha2VyIDMwIE1hciA5OSAwOTo1MToyMQogICAgLSAodWNkRGVtb1B1YmxpYy5jKTogYWRkZWQgaGVscCBzdHJpbmdzIHRvIGNvbmYgcGFyc2Vycy4KCmhhcmRha2VyICA2IEFwciA5OSAxNToyNzoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiByZW1vdmUgYWNjaWRlbnRpYWxseSBjb21pdHRlZCBjb25mbGljdC4KCmhhcmRha2VyIDE1IEFwciA5OSAwNzoyNTo0OAogICAgLSAoa2V5dG9vbHMuYyk6IEFsbG93IHNob3J0IHBhc3NwaHJhc2VzIHdoZW4gU05NUF9URVNUSU5HX0NPREUgaXMgc2V0LgoKbWFyeiAxOSBBcHIgOTkgMTQ6MTQ6MjMKICAgICAtKHNubXBfYXBpLltjaF0sc25tcF9jbGllbnQuYyk6IGZpeGVkIGJ1ZyB3aGVyZSBtc2dJZCBhbmQgcmVxSWQgd2VyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHkgaW4gcmVzcG9uc2VzIGlmIG9yZ2luYWwgcmVxdWVzdCBoYXBwZW5lZCB0byBoYXZlIG1zZ0lkIG9yIHJlcUlkIGVxdWFsIHRvIGFyYml0cmFyeSBkZWZhdWx0KDApCgptYXJ6IDE5IE1heSA5OSAwNzoxNDo0NAogICAgCiAgICBhZGRpbmcgdjMgcGFja2V0IGdlbmVyYXRvciBwZXJsNSBzY3JpcHQgKHJlcXVpcmVzIENvbnZlcnQ6OkJFUikKICAgIC4KCm1hcnogMTkgTWF5IDk5IDA3OjE2OjQxCiAgICAKICAgIGV4YW1wbGUgZGF0YSBmaWxlIHRvIGdlbmVyYXRlIGEgVjMgcGFja2V0IHdpdGggcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAwODowMjoyNAogICAgUkVBRE1FIGZvciBwa3RnZW4ucGwKCm1hcnogMTkgTWF5IDk5IDA4OjQ0OjAzCiAgICAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCgptYXJ6IDE5IE1heSA5OSAwODo0NToxNQogICAgcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAxMDozMToxNAogICAgcmVtb3ZlIGxhc3Qgc3VibWl0CgptYXJ6IDIwIE1heSA5OSAxMjozNTowMwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAyMyBNYXkgOTkgMDg6MDQ6MDMKICAgIGhhbmRsZSBzZXFfb2YgdG8gYWxsb3cgYXJiaXRyYXJ5IG51bWJlciBvZiB2YXJiaW5kcywgYnVnIGZpeGVzLCBzZW5kL3JlY2VpdmUsIHByZXR0eSBwcmludCBkZWJ1Z2dpbmcgcGFja2V0IGR1bXAKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxODo0MgogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MjA6MDQKICAgIC0gKHZtc3RhdC5jKTogaW5jbHVkZSBsaW1pdHMuaC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDozMgogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODo0NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjExCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MzM6MDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGhyX2ZpbGVzeXMuYywgaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMpOgogICAgICBQYXRjaCBmcm9tIERlcmVrIEouIEJhbGxpbmc6CiAgICAgIC0gZnJlZWJzZDIgZml4ZXMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTI6NTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5UCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTQ6MjIKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBzeXMvcXVldWUuaC4KCm1hcnogIDEgSnVuIDk5IDA3OjI1OjU1CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogYWRkZWQgYXV0aGVudGljYXRpb24gc3VwcG9ydCAobWQ1IGFuZCBzaGExKQoKZGF2ZXMgIDEgSnVuIDk5IDA4OjM3OjQ3CiAgICAtIChhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jKTogRGV0ZXJtaW5lIHR5cGUgb2YgUlBNIHBhY2thZ2VzCgptYXJ6IDE2IEp1biA5OSAwOTozMDo1NQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGFkZGVkIGVuY3J5cHRpb24vcHJpdmFjdCBzdXBwb3J0IChkZXMtY2JjKQoKbWFyeiAxNiBKdW4gOTkgMTI6NTA6MjkKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBsYXRlc3QgYXR0ZW1wdCB0byBmaXggcHJpdmFjeS9lbmNyeXB0aW9uCgptYXJ6IDIzIEp1biA5OSAwODoxODo1OQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGxhdGVzdCBhdHRlbXB0IHRvIGZpeCBwcml2YWN5L2VuY3J5cHRpb24od29ya2luZyB3aXRoIENyeXB0OjpERVMvQ3J5cHQ6OkNCQytwYXRjaCkKCmhhcmRha2VyICA2IEFwciA5OSAxNToxMzo0MAogICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KCmhhcmRha2VyICA2IEFwciA5OSAxNTozODo0NQogICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KCm1zbGlmY2FrICA2IEFwciA5OSAyMToyNDoyMgogICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTM6NTkKICAgIC0gKHZhY21fdmFycy5jKSAtIHNldCBnbG9iYWwgcHRycyA9IDAuCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTQ6NDMKICAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAoKbXNsaWZjYWsgIDcgQXByIDk5IDA2OjE3OjI4CiAgICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQyOjEwCiAgICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgIE1ha2VmaWxlLmluLCBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBrZXl0b29scy5jLCBrZXl0b29scy5oLAogICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgIC0gbWlzYyBtZXJnaW5nLCBpbmNsdWRpbmcgZml4ZXMgYW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY2hhbmdlcyB0bwogICAgICAgIG5ld2VyIG1vZGVsLgogICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQ4OjA3CiAgICAtIChzbm1wX21pYi5jKTogcmVtb3ZlZCB1bm5uZWVkZWQgaGVhZGVyX3NubXAoKS4KCmhhcmRha2VyICA3IEFwciA5OSAxMToyODowMgogICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICAgdXNtVXNlci5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KCm1zbGlmY2FrICA3IEFwciA5OSAxMjowMDoyMAogICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgICBhZ2VudC92aWV3X3BhcnNlLmMgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KCm1zbGlmY2FrICA3IEFwciA5OSAxMjoxNzoyMwogICAgLShpcGZ3Y2hhaW5zLmMpIHJlbW92ZSBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBNQVRDSF9GQUlMRUQKCm1zbGlmY2FrICA3IEFwciA5OSAxNTowMDozOQogICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE0OjMxCiAgICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTU6MzkKICAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTY6NDUKICAgIC0gKHRrbWliKTogbWFrZSBkaXNwbGF5ZWQgbWliIG5vZGUgaW5mbyBpbnRvIHR3byBjb2x1bW5zIGluc3RlYWQgb2Ygb25lLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjI1OjA5CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgIHZhcmxpc3QgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgdG8gaXQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MTk6MjAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgIC0gZml4IGxpYndyYXAgdG8gb25seSBhZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjIwOjAwCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c0Rlc2NyIHJlYWQtb25seS4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozMjoyMwogICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgICAtIGFkZCBjYXBhYmlsaXR5IGZvciBiaW5hcnkgb2N0ZXQgc3RyaW5ncyBpbiBwYXNzIHNjcmlwdHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzY6MzEKICAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTQ6NDgKICAgIC0gKGZyZWVic2QuaCwgZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZWJzZCB1dG1wIGNsZWFudXBzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU2OjUzCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBsb2cgd2l0aCB0aW1lc3RhbXAgYXQgc2h1dGRvd24uCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTc6MjQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjAyCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHN1cHBvcnQgLVAuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MjcKICAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY2xlYW4gdXAgc21hbGwgYnVncy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMDo0OQogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmljZXIgcGFyc2VyIG1lc3NhZ2VzIChpbmNsdWRlIGZpbGUgbmFtZXMpLiBDb3JyZWN0IGhlbHAgZm9yIC1QYy4KICAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMzoyOQogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNToyOTo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6MzA6MzQKICAgIC0gKHBhcnNlLmMpIEZpbGUgcG9pbnRlciBpbml0aWFsaXplZCB0byAiIiBiZWZvcmUgZmlyc3QgdXNlLgoKaGFyZGFrZXIgMTQgQXByIDk5IDE1OjUyOjM1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBpbml0X3NubXAoInNubXBhcHAiKS4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNjozMTo1NQogICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKCm1zbGlmY2FrIDE0IEFwciA5OSAxNjo1NjozNwogICAgLSBhcHBzIHRoYXQgdXNlIHNubXBfZml4X3BkdSBtdXN0IGNsZWFuIHVwIHRoZSByZXNwb25zZSBQRFUgIQoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjMwOjI5CiAgICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjU0OjIyCiAgICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAoKbXNsaWZjYWsgMTYgQXByIDk5IDA4OjMzOjE2CiAgICAtIChtaWIuYykgIi1tIiBvciBNSUJTIDogY2FuIHNwZWNpZnkgTUlCIG1vZHVsZSBieSBmaWxlIG5hbWUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTA6MDYKICAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMTo0OAogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNToxNAogICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTY6MTYKICAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzowNgogICAgLSAoTkVXUyk6IHVwZGF0ZWQKCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzo0MQogICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjM0OjQ5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKCm1zbGlmY2FrIDE4IEFwciA5OSAwNjo1NDoyNgogICAgLSAoaXBmd2FjYy5oKSBzdWJkaXIgY2hhbmdlIHBlciBKb2UgUHJ1ZXR0dCA6IDkgLT4gMTAKCmhhcmRha2VyIDE5IEFwciA5OSAyMTowMToxNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIHJld3JvdGUgbWliMmMgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gLmNvbmYgZmlsZXMuICBUaGUgbWFpbiAuY29uZgogICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjA5OjI3CiAgICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxMjoxNwogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgIC0gY2xlYW5lZCB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UgcGFyc2luZyByb3V0aW5lcy4KICAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTQ6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoKS4KCmhhcmRha2VyIDIwIEFwciA5OSAxMToyODoxNAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTU6MzE6MzUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICAgdGhlIG1pYjJjIHByb2dyYW0uICBUaGlzIHNob3VsZCBlbnRpdGxlIG1pYjJjIHRvIGJlIHVzZWQgbW9yZQogICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICAgYWJsZSB0byBwcm9kdWNlIEMgY29kZSBmb3IgYSBub24tdWNkLXNubXAgYWdlbnQsIG9yIGV2ZW4gYmV0dGVyLAogICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAgLSBUaGUgZG93biBzaWRlLCBpcyB0aGF0IHRoZSBjdXJyZW50IC5jb25mIGZpbGVzIGFyZSBub3cgYW1iaWd1b3VzCiAgICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgICBpdCB1cCBmb3IgbWUgbGlrZSBoZSBkaWQgbGFzdCB0aW1lLiAgSGEgaGEuICBJIHdvbmRlciBpZiBoZSdsbAogICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MDQ6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdmFyaWFibGUgbmFtZSBjb252ZXJzaW9uczoKICAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgICAtIGNuYW1lIC0+IE5BTUUKCmhhcmRha2VyIDIwIEFwciA5OSAxNjoxMDo0NAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhIGxpdHRsZSBtb3JlIGNsZWFuIHVwLgoKaGFyZGFrZXIgMjAgQXByIDk5IDIxOjM4OjQyCiAgICAtIChtaWIyYy5jb25mKTogY2xlYW4gdXAgc2tpcGlmIHJlZ2V4cHMgYSBiaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTQ6NDQKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTY6MDMKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYWxsb3cgTm9BY2Nlc3MgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgdXNlIHNraXBpZjoKICAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAxMDo1MTozMAogICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KCm1zbGlmY2FrIDI2IEFwciA5OSAwOToyMTowNgogICAgLSAoc25tcGxpYi5jKSAtIHVzZSByZXF1ZXN0IGNhbGxiYWNrJ3MgZGF0YSBpZiByZXF1ZXN0IHNwZWNpZmllcyBhIGNhbGxiYWNrLgoKbmJhIDI2IEFwciA5OSAxMToyMToxMAogICAgCiAgICAocGFyc2UuaCkgU2lsbHkgc3BlbGluZyBtaXN0ZWFrIChBQ0NFU1NfQ1JBRVRFKQoKbmJhIDI2IEFwciA5OSAxMTo0ODo1NwogICAgCiAgICAKICAgIC0gc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IG5ldyBtaWIgcHJpbnRlcjogbWliX3ByaW50X3RyZWUKICAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgICAtIHNubXBsaWIvc25tcF9hcGkuYzogc29tZSBsZWZ0IG92ZXIgX19QIG1hY3JvcwoKbmJhIDI2IEFwciA5OSAxMjowMzo0NwogICAgCiAgICAoaWYuYykgbWFrZSB0aGUgd2lkdGggb2Ygc25tcG5ldCAtaSAoYW5kIC1vKSBhZGFwdCB0byB0aGUgbGVuZ3RoIG9mIHJldHVybmVkCiAgICAJc3RyaW5ncwoKbmJhIDI2IEFwciA5OSAxMjowOTozNQogICAgCiAgICAKICAgIGFwcHMvKi5jOiB1c2Ugc25tcF9wZXJyb3IgdG8gcmVwb3J0IGVycm9ycyBmcm9tIHJlYWRfb2JqaWQgYW5kIGZyaWVuZHMKICAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCgpuYmEgMjYgQXByIDk5IDEyOjEzOjUwCiAgICAKICAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAgCWZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI2IEFwciA5OSAxMjozNzowOQogICAgLSAoc25tcF9hcGkuYykgLSBmaXggb3RoZXIgdXNlIG9mIHJlcXVlc3QncyBjYWxsYmFjayBkYXRhCgptc2xpZmNhayAyNyBBcHIgOTkgMDk6NTE6MzUKICAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozMjozOQogICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6Mzk6NDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSB1c2UgdGhlIGNhbGxiYWNrIG1lY2hhbmlzbSBmb3IgcG9zdC1jb25maWcgc3R1ZmYuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MDc6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbm1wdHJhcGQuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MTM6MzEKICAgIC0gKHNubXBkLmMpOiBmaXggLUEgZmxhZywgd2hpY2ggZ290IGJyb2tlbiBkdXJpbmcgc29tZW9uZXMgY2hhbmdlcy4KCmhhcmRha2VyICAzIE1heSA5OSAxMjo1ODoxOQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgICBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICAgZXRpbWV0ZXN0LmMsIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmMpOgogICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCgpuYmEgIDMgTWF5IDk5IDE1OjQwOjExCiAgICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgIAl3aXRoIGdjYyAtV2FsbCAtcGVkYW50aWMgLVd3cml0ZS1zdHJpbmdzIC1XY2FzdC1xdWFsKQoKbmJhICA0IE1heSA5OSAwMDo0Nzo0NAogICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCm5iYSAgNCBNYXkgOTkgMDA6NTE6MTYKICAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwoKaGFyZGFrZXIgIDQgTWF5IDk5IDExOjA4OjU1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEFkZGVkIC0tZW5hYmxlLWRldmVsb3BlciBmbGFnLgoKbXNsaWZjYWsgIDYgTWF5IDk5IDA5OjIwOjMwCiAgICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCgpuYmEgMTAgTWF5IDk5IDE0OjQ3OjIyCiAgICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCgpuYmEgMTAgTWF5IDk5IDE0OjQ5OjQ5CiAgICBzbm1wbGliL3NubXBfYXBpLmM6IE1peC11cCBvZiBWMV9JTl9WMi9WMl9JTl9WMSBlcnJvciBjb2RlIHdoZW4gR0VUQlVMSwogICAgCWluc2lkZSBWMSBzZXNzaW9uLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAyOjQ4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAzOjI1CiAgICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MTE6NDAKICAgIC0gKGhwdXguYywgaHB1eC5oKTogaW50IC0+IHNpemVfdCBjb252ZXJzaW9ucy4KCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo1MzoyMwogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyMjoxNgogICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTI6MTkKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA5OjE4CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCm1zbGlmY2FrIDE0IE1heSA5OSAwNjo1NDo1MQogICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCgptc2xpZmNhayAxNCBNYXkgOTkgMDk6NDc6MTAKICAgIC0gKGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiAgICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDEzOjU5OjM3CiAgICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDo1MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgpkYXZlcyAxNyBNYXkgOTkgMDQ6MzQ6NTUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDQ6Mzg6MDAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA3OjE4OjAyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oIGFnZW50L3NubXBkLmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSBhIHNpbmdsZSBhZGRyZXNzIGZpZWxkIHdpdGhpbiB0aGUgUERVIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQoKZGF2ZXMgMTggTWF5IDk5IDA2OjI2OjE2CiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCgptc2xpZmNhayAxOCBNYXkgOTkgMDk6MDE6NDYKICAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCgpkYXZlcyAxOCBNYXkgOTkgMDk6MjM6NTAKICAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB2My5jIHNubXBsaWIvc3lzdGVtLmMKICAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRhYmxlLmMgYXBwcy9zbm1wdGVzdC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICAoICNpZiBIQVZFX1dJTlNPQ0tfSCAvICNlbHNlIC8gI2VuZGlmICkKCmRhdmVzIDE5IE1heSA5OSAwMjozMzowNwogICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCgpkYXZlcyAxOSBNYXkgOTkgMDU6MTE6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKCm1zbGlmY2FrIDE5IE1heSA5OSAxODowMjo1NQogICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1Cgptc2xpZmNhayAxOSBNYXkgOTkgMTg6NTA6MTIKICAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKCmRhdmVzIDIwIE1heSA5OSAwMzo0NjoyNAogICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKCm1zbGlmY2FrIDIxIE1heSA5OSAwNToyNDoyMwogICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgoKZGF2ZXMgMjEgTWF5IDk5IDA1OjU0OjIyCiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgICAtICBOZXcgQVBJIGNhbGwgdG8gY2xvc2UgZG93biBhbGwgb3BlbiBzZXNzaW9ucwogICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCgpoYXJkYWtlciAyMSBNYXkgOTkgMTE6MTA6NDQKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgIC0gY29udmVydCB0byBzaXplX3Qgc3RvcmFnZXMuCiAgICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCgptc2xpZmNhayAyMSBNYXkgOTkgMTU6Mjk6NDYKICAgIC0gbGlicmFyeSBjaGFuZ2VzIHRvIGJ1aWxkIG9uIFdpbjMyLgoKbXNsaWZjYWsgMjQgTWF5IDk5IDA1OjM2OjEzCiAgICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTk6MDMKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE0OjU1CiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE4OjA0CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MjA6MzIKICAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1NjowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6NDA6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgoKbXNsaWZjYWsgMjcgTWF5IDk5IDA1OjE2OjI1CiAgICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjAzCiAgICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MTUKICAgIC0gKHNubXB0cmFwZC5jKTogbmVlZCBhbiBpbml0X21pYigpLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjA2CiAgICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MzIKICAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCgpkYXZlcyAyOCBNYXkgOTkgMDc6MDI6MDEKICAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCgpkYXZlcyAyOCBNYXkgOTkgMDg6MTQ6MDUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNhdmUgbG9jYWwgc29ja2V0IGFkZHJlc3MgaW4gaW50ZXJuYWwgc2Vzc2lvbiBzdHJ1Y3R1cmUKCmRhdmVzIDI4IE1heSA5OSAwODo1NzoxOQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAoKZGF2ZXMgMjggTWF5IDk5IDA5OjEyOjIwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCgptc2xpZmNhayAyOCBNYXkgOTkgMDk6MjQ6NTYKICAgIC0oc25tcF9hcGkuYykgLWNhdGNoIG9uZSBtb3JlIGVycm9yIGNsb3NlIGZyb20gc25tcF9zZXNzX2NvcHkKCmhhcmRha2VyIDI4IE1heSA5OSAxNjoxNzoxMwogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBzYXZlIGFuZCB1c2UgaW5kZXggY2xhdXNlcy4KCmhhcmRha2VyIDI4IE1heSA5OSAxNjo0NDo0MgogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBjcmVhdGVkIGdlbmVyaWMgZGVmYXVsdCB2YWx1ZSBzdG9yYWdlIHNwYWNlIGFuZCBwYXJzZXJzIHRvIHJlZHVjZQogICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgIGxpYnJhcnkuCgpkYXZlcyAgMSBKdW4gOTkgMDI6MTc6MjcKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgVHJhZGl0aW9uYWwgU0FQSSBzZXNzaW9ucwoKZGF2ZXMgIDEgSnVuIDk5IDAyOjMyOjEzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCgpkYXZlcyAgMSBKdW4gOTkgMDc6MzA6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwoKaGFyZGFrZXIgIDEgSnVuIDk5IDE3OjIxOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICAgd2hpY2ggaXMgbmV4dCBhbmQgY2FsbGluZyBhbGFybSgpIGFuZCBzaWduYWwoKSBhcHByb3ByaWF0ZWx5LgoKbXNsaWZjYWsgIDQgSnVuIDk5IDA5OjUxOjEzCiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDQ6MDYKICAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCgptc2xpZmNhayAgNyBKdW4gOTkgMTM6MDQ6MjEKICAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKbXNsaWZjYWsgIDggSnVuIDk5IDA3OjQzOjEwCiAgICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KCmRhdmVzICA4IEp1biA5OSAwODo0Mzo1OQogICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oCiAgICAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmgpOgogICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKCm1zbGlmY2FrICA4IEp1biA5OSAwOTozMjo0OAogICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKCmRhdmVzICA5IEp1biA5OSAwNjozMjowMgogICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKCmhhcmRha2VyICA5IEp1biA5OSAxODozMTo0MgogICAgLSAoKik6IG1lcmdlZCAzLjYuMiBjaGFuZ2VzIGludG8gbWFpbiBicmFuY2guCgpkYXZlcyAxNSBKdW4gOTkgMDM6NTk6MjMKICAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKCmRhdmVzIDE1IEp1biA5OSAwODoyODowMAogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6CiAgICAgIC0gTW92ZSBwcm9jZXNzaW5nIGZyb20gJ2hhbmRsZV9uZXh0X3Bhc3MoKScgdG8gJ2hhbmRsZV9zbm1wX3BhY2tldCgpJwoKaGFyZGFrZXIgMTUgSnVuIDk5IDE2OjI1OjU3CiAgICAtIChzbm1wX2FwaS5jKTogZml4IGFsbG93ZWQgemVyb2xlbmd0aCBwZHUtPnNlY3VyaXR5TmFtZSBwcm9ibGVtIGZvcgogICAgICB2MyBlbmdpbmVJRCBkaXNjb3ZlcnkgcHJvYmVzLgoKZGF2ZXMgMTYgSnVuIDk5IDA1OjExOjQ4CiAgICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCgpkYXZlcyAxNiBKdW4gOTkgMDU6NDk6MzgKICAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKCmRhdmVzIDE2IEp1biA5OSAwNjo1NjoxNAogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogSG9va3MgZm9yIGJ1aWxkaW5nL3BhcnNpbmcgbm9uLVNOTVAgcGFja2V0cwoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjI0OjU4CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHBhcnNlLmMpOgogICAgICAtIGZpcnN0IHVzYWdlIG9mIHRoZSBkZWZhdWx0X3N0b3JlKCkgcm91dGluZXM6IG1vdmUgYWxsIHRoZSBtaWIKICAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAgLSBwcmVtaWIgYXV0by1yZWdpc3RyYXRpb24gb2YgZGVmYXVsdF9zdG9yZSBuZWVkcyBjbGVhbmluZyB1cC4uLiAgc2lnaC4uLgoKaGFyZGFrZXIgMTYgSnVuIDk5IDE2OjUxOjExCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgIC0gMiBuZXcgc25tcC5jb25mIHRva2VuczogZG9EZWJ1Z2dpbmcsIGRlYnVnVG9rZW5zLgoKaGFyZGFrZXIgMTcgSnVuIDk5IDA3OjM5OjAxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCAtLWhlbHAuCgptc2xpZmNhayAxNyBKdW4gOTkgMTM6MTg6MzUKICAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCgptc2xpZmNhayAxOCBKdW4gOTkgMDU6MDE6NTQKICAgIGFwcGxpZWQgZml4ZXMgZnJvbSBNLiBMYXVra2FuZW4KCmRhdmVzIDE4IEp1biA5OSAwNjo1ODo1MwogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IG5ldyByb3V0aW5lIGZvciByZW1vdmluZyBzeXNPUlRhYmxlIGVudHJpZXMKCmRhdmVzIDE4IEp1biA5OSAwNzo1Njo0NgogICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBkaXN0aW5ndWlzaCBiZXR3ZWVuIFNOTVAgcHJvdG9jb2wgJiBQRFUgaGFuZGxpbmcgZmxhZ3MKCmRhdmVzIDE4IEp1biA5OSAwODowMDozNAogICAgLSAoc25tcF9jbGllbnQuYyk6IEVuYWJsZSBhY2Nlc3MgdG8gImVtcHR5IiByZXNwb25zZSBQRFVzIChpLmUuIGhlYWRlciBvbmx5KS4KICAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKCmRhdmVzIDE4IEp1biA5OSAwODowNDoyMgogICAgLSAoYXNuMS5oIHNubXBfYXBpLmMpOiBOZXcgcHJpdmF0ZSB0eXBlcyBmb3IgT0lEIHJhbmdlcwoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ0OjExCiAgICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQoKZGF2ZXMgMTggSnVuIDk5IDA4OjQ3OjM4CiAgICAtIChzbm1wX2FwaS5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbm9uLXJlc3BvbnNlIGhhbmRsaW5nIGluICdzbm1wX3Nlc3NfcmVhZCcKCmRhdmVzIDE4IEp1biA5OSAwODo0OTo1MgogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gYWNjb21vZGF0ZSBzZXJ2ZXJzIHRoYXQgcmVxdWlyZSBhbiBhY2Nlc3NpYmxlIGNsaWVudC1lbmQgdW5peCBzdHJlYW0gc29ja2V0CiAgICAgICAgICAgICAgICAgIChpbiBwYXJ0aWN1bGFyLCB0aGUgQ01VIEFnZW50WCBtYXN0ZXIgYWdlbnQpCgpkYXZlcyAxOCBKdW4gOTkgMDg6NTU6MzIKICAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAgLSBiYXNpYyBBZ2VudFggcHJvdG9jb2wgaGFuZGxpbmcKCmRhdmVzIDE4IEp1biA5OSAwOTowMDoxNgogICAgLSAoc25tcF92YXJzLmMpOiBwcm90b2NvbC1pbmRlcGVuZGVudCBtZWFucyBvZiBieXBhc3NpbmcgVkFDTSBjaGVja3MKCmRhdmVzIDE4IEp1biA5OSAwOToxNDo1OAogICAgLSAoc25tcGQuYyBzbm1wZC5oIHNubXBfdmFycy5jIHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgKICAgICAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgoKbXNsaWZjYWsgMTggSnVuIDk5IDEwOjAyOjAzCiAgICAtKHN5c09SVGFibGUuYykgZml4IHB0ciB0ZXN0Cgptc2xpZmNhayAyMiBKdW4gOTkgMDU6MjE6MDMKICAgICBpbnZva2Ugc25tcF9zZXNzX2luaXQgYmVmb3JlIGFueSBNSUIgcHJvY2Vzc2luZyAoZml4ZXMgbWFzdGVyIGFnZW50KS4KCm5iYSAyMiBKdW4gOTkgMDU6MjU6MTMKICAgIFRPRE86CW5lZWQgZm9yIENvdW50ZXI2NCBzdXBwb3J0IGluIHNubXBkZWx0YQoKZGF2ZXMgMjggSnVuIDk5IDAzOjA4OjQyCiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogbWFrZSBTTk1QIHBhY2tldCBoYW5kbGluZyByb3V0aW5lIHJlLWVudHJhbnQuCgpkYXZlcyAyOCBKdW4gOTkgMDQ6MDc6MzYKICAgIC0ge01ha2VmaWxlLmluIGFnZW50X3JlYWRfY29uZmlnLmMgc25tcF92YXJzLmMgYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gQ29uc29saWRhdGUgYWxsIHJlZ2lzdHJ5IGhhbmRsaW5nIGludG8gb25lIGZpbGUKCmRhdmVzIDI4IEp1biA5OSAwOTo1MjowOAogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgICAtIE5vbi1yZWN1cnNpdmUgTUlCIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uCgpoYXJkYWtlciAyOCBKdW4gOTkgMTQ6NTk6NDEKICAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KCmhhcmRha2VyIDI4IEp1biA5OSAxNTowMToxNAogICAgLSAoc25tcHRyYXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKTsKCmRhdmVzIDMwIEp1biA5OSAwMTozNzoxMQogICAgLSAoc3lzT1JUYWJsZS5jIHN5c09SVGFibGUuaCk6IEluZGljYXRlIHN1Y2Nlc3MvZmFpbHVyZSBvZiB7dW59cmVnaXN0cmF0aW9uCgpkYXZlcyAzMCBKdW4gOTkgMDE6NDU6MjYKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgoKZGF2ZXMgMzAgSnVuIDk5IDAxOjQ4OjM0CiAgICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQoKZGF2ZXMgMzAgSnVuIDk5IDAyOjMyOjAzCiAgICAtIChzbm1wX2FwaS5jKTogQ29ycmVjdCB0aGUgc2V0dXAgb2Ygc3RyZWFtLWJhc2VkIGFjY2VwdGVkIGludGVybmFsIHNlc3Npb25zCgpkYXZlcyAzMCBKdW4gOTkgMDM6MjA6NDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKCmRhdmVzIDMwIEp1biA5OSAwNTowNTo0NAogICAgLSAoc25tcF9hcGkuYyk6IFByb3ZpZGUgdGhlIGNvcnJlY3Qgc2l6ZSBvZiBzb2NrZXQgYWRkcmVzc2VzCgpkYXZlcyAzMCBKdW4gOTkgMDU6MDY6NTIKICAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKCmRhdmVzIDMwIEp1biA5OSAwNTo0ODo0MAogICAgLSAoc25tcF9hcGkuYyk6IE1pc3NlZCBvbmUgJ3NlbmR0bycgY2FsbAoKaGFyZGFrZXIgMzAgSnVuIDk5IDE5OjM3OjM2CiAgICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIG1pYi5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGNvbnZlcnQgbW9yZSBzdHVmZiB0byB0aGUgZGVmYXVsdF9zdG9yZSBzcGFjZS4KCmRhdmVzICAyIEp1bCA5OSAwMjozOTo0MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeCB0aGF0IGxhc3QgJ3NlbmR0bycgY2FzZSAqY29ycmVjdGx5KiB0aGlzIHRpbWUKCmRhdmVzICAyIEp1bCA5OSAwNToxMzo0MgogICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAgLSBpbXBsZW1lbnQgYW4gaW50ZXJmYWNlIGZvciBkZWxlZ2F0aW5nIHJlcXVlc3RzIHRvIHN1YmFnZW50cwoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE1OjU2CiAgICAtICh2YXJfc3RydWN0LmggYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gbWFwIGJldHdlZW4gTUlCIHJlZ2lzdHJhdGlvbnMgYW5kIHRoZSBzdXBwb3J0aW5nIChzdWJhZ2VudCkgc2Vzc2lvbgoKZGF2ZXMgIDIgSnVsIDk5IDA1OjE2OjQxCiAgICAtIChzbm1wX2FwaS5oKTogc3VwcG9ydCBsaXN0cyBvZiBzZXNzaW9ucyAoYW5kIHN1YnNlc3Npb25zKQoKaGFyZGFrZXIgIDIgSnVsIDk5IDA4OjI3OjMwCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiByZWdpc3RlciBkZWJ1Z2dpbmcgdG9rZW5zIHdpdGggLUQKCmRhdmVzICA2IEp1bCA5OSAwMjoyMDo1NwogICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCgpkYXZlcyAgNyBKdWwgOTkgMDY6NTQ6NTMKICAgIC0gKGFzbjEuYyBhc24xLmggc25tcC5jIHNubXAuaCBzbm1wX2FwaS5jIHNubXBfYXBpLmgKICAgICAgIHNubXBfYXV0aC5jIHNubXBfaW1wbC5oIGFnZW50eC5jKToKICAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQoKZGF2ZXMgIDggSnVsIDk5IDAyOjE2OjE1CiAgICAtIChzbm1wX2FwaS5jKTogUmV0YWluIGNvbW11bml0eSBzdHJpbmcgaW4gcmVzcG9uc2VzCgpkYXZlcyAgOCBKdWwgOTkgMDY6MjU6MDcKICAgIC0gKG1pYklJL3N5c3RlbV9taWIuYyBtaWJJSS9zbm1wX21pYi5jKToKICAgICAgLSBVcGRhdGUgJ3dyaXRlJyByb3V0aW5lcyBmb3IgVjQgYXJjaGl0ZWN0dXJlLAogICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KCmhhcmRha2VyICA4IEp1bCA5OSAxNDoyOTozNQogICAgLSAoY29uZmlnLmgpOiBjb21tZW50IGNoYW5nZSBmb3IgaW50ZXJuYWwgbWQ1LgoKaGFyZGFrZXIgIDggSnVsIDk5IDE0OjMwOjQ3CiAgICAtIChhc24xLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OSAxNDozNjo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgdmlld19wYXJzZS5jLCB2YWNtX3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywgbWFpbi5jLCBNYWtlZmlsZS5pbiwgYWNsLmMsCiAgICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICAgbGlic25tcC5oLCBwYXJ0eS5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCB2aWV3LmMsIHZpZXcuaCk6CiAgICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKCmhhcmRha2VyICA4IEp1bCA5OSAxNDo0OTowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCgpoYXJkYWtlciAgOCBKdWwgOTkgMTU6MTY6MzUKICAgIC0gKHNubXBkZWx0YS5jLCBpbnQ2NC5jLCBpbnQ2NC5oKTogbWluaW1hbCBjNjQgc3VwcG9ydCBmb3Igc25tcGRlbHRhLiBVbnRlc3RlZC4KCmhhcmRha2VyICA4IEp1bCA5OSAxNjowMjo1OAogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq4KWG4KSG4KSQcnN0YWQ6CiAgICAgIC0gQWRkIG9wdGlvbnMgZm9yIHN3aXRjaGluZyB0byBhIGdpdmVuIHVpZCBhbmQgZ2lkLgoKZGF2ZXMgIDkgSnVsIDk5IDAxOjQ5OjQ5CiAgICAtIChzbm1wZC5jKTogQ2xlYW4gdXAgZ2lkL3VpZCBjaGFuZ2UgbG9nZ2luZwoKZGF2ZXMgIDkgSnVsIDk5IDA4OjI3OjM5CiAgICAtICgqL01ha2VmaWxlLmluIHNubXBsaWIvc25tcF9hcGkuYwogICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0KICAgICAgIGFnZW50L3NubXBkLltjaF0gYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgIC0gTW92ZSBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQoKbXNsaWZjYWsgIDkgSnVsIDk5IDEyOjEyOjUwCiAgICAtKHNubXBfY2xpZW50LiopIHJlbW92ZSBzbm1wX3N5bmNoX3NldHVwLCBzbm1wX3N5bmNoX3Jlc2V0Cgptc2xpZmNhayAgOSBKdWwgOTkgMTQ6MjA6MjMKICAgIC0od2luMzIsc25tcGxpYixhcHBzLGFnZW50KSBhZGQgc25tcF9zb2NrZXRfbGVuZ3RoIHRvIGhpZGUgc29ja2FkZHJfdW47IFdpbjMyIHRvdWNodXBzCgptc2xpZmNhayAxMSBKdWwgOTkgMTg6MzY6MjQKICAgIFJlZHVjZSB1c2Ugb2Ygc25tcF9lcnJubyAtIGZpeCBtZW1vcnkgbGVhaywgdW51c2VkIHZhcnMsIGFuZCB1bnNldCB2YXIuCgpkYXZlcyAxMiBKdWwgOTkgMDc6MTQ6MzYKICAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogcmVtb3ZlIGRlcGVuZGVuY3kgb24gc25tcGxpYi9hZ2VudHguaAoKZGF2ZXMgMTIgSnVsIDk5IDA4OjMyOjI3CiAgICAtIChtaWJncm91cC9ob3N0LyopOiBEeW5hbWljYWxseSByZWdpc3RlciBhbGwgSG9zdCBSZXNvdXJjZSBtb2R1bGVzCgptc2xpZmNhayAxNCBKdWwgOTkgMTM6MTQ6MzAKICAgIC0oc25tcF9hcGkuYykgLSBzbm1wX2FkZF92YXIgcmV0dXJucyBTTk1QRVJSOyBNQVkgc2V0IHNubXBfZXJybm8KCm1zbGlmY2FrIDE0IEp1bCA5OSAxMzo0Njo1MwogICAgLShzbm1wbGliL21pYi5jKSAtIGNvbmRpdGlvbmFsbHkgYWxsb3cgZm9yIG5vdCBzZXR0aW5nIHNubXBfZXJybm8KCmhhcmRha2VyIDE1IEp1bCA5OSAwODo0NjowMAogICAgLSAoYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgpOgogICAgICAtIGJlZ2lubmluZyBvZiBhIC1EZHVtcCB2ZXJzaW9uIG9mIHBhY2tldCBkdW1waW5nLgogICAgICAtIG5lZWRzIGEgbG90IG1vcmUgd29yayBhbmQgY2xlYW4gdXAuCiAgICAgIC0gSSBuZWVkIGNvbW1lbnRzLi4uICBUZWxsIG1lIHdoYXQgeW91IHRoaW5rLi4uCgpoYXJkYWtlciAyMCBKdWwgOTkgMTQ6MDI6MjYKICAgIC0gKGF1dG9fbmxpc3QuYywgaGlzdG9yeS5jLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgICBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmgsIHV0aWxfZnVuY3MuYywgaXBmd2NoYWlucy5jLAogICAgICBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLAogICAgICB2YWNtX3ZhcnMuYywgdmFyX3JvdXRlLmMsIGRsbW9kLmMsIHNtdXguYywgZGlzay5jLCBleHRlbnNpYmxlLmMsCiAgICAgIGxvYWRhdmUuYywgbWVtb3J5X3NvbGFyaXMyLmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsIHByb2MuYywKICAgICAgdmVyc2lvbmluZm8uYywgYWxhcm0uYywgZXZlbnQuYywgTWFrZWZpbGUuaW4sIHBhcnNlLmMsIHNubXAuYywKICAgICAgc25tcF9kZWJ1Zy5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBQYXRjaCBmcm9tIFJhZ25hcgogICAgICBLauClhuCkhuCkkHJzdGFkOgogICAgICAtIGRvIGZpbGUsIHN0ZGVyciwgYW5kIHN5c2xvZyBzdXBwb3J0LgoKaGFyZGFrZXIgMjAgSnVsIDk5IDE3OjA2OjUzCiAgICAtIChhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywKICAgICAgaXBmd2NoYWlucy5jLCBpbnRlcmZhY2VzLmMsIGRsbW9kLmMsIHNtdXguYywgdmVyc2lvbmluZm8uYywKICAgICAgYWxhcm0uYyk6CiAgICAgIC0gY29udmVydCBzbm1wX2xvZyhMT0dfREVCVUcpIHRvIERFQlVHTVNHVEwoKS4KCm1zbGlmY2FrIDIwIEp1bCA5OSAxODoxMTo1MAogICAgLW1pbm9yIGNoYW5nZXMgdG8gYnVpbGQgV2luMzIgcGxhdGZvcm1zIHVzaW5nIEN5Z1dpbi1lZ2NzIGFuZCBNU1ZDIGNvbXBpbGVycy4KCm1zbGlmY2FrIDIwIEp1bCA5OSAxOTozMzoyNgogICAgLSBubyBwcmludGYgaW4gYXNjaWlfdG9fYmluYXJ5CgpoYXJkYWtlciAyMSBKdWwgOTkgMTY6MDY6NTIKICAgIC0gKHRrbWliLCBtaWIyYyk6IHVkcGF0ZSB0byB1c2UgaW5kZXhlcyAocmVxdWlyZXMgYSBwZXJsIHBhdGNoLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEwOjM2OjU0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGxvZyB0byBzdGRlcnIuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTA6NDQ6MTcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywga2VybmVsX3N1bm9zNS5jLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywKICAgICAgaW50ZXJmYWNlcy5oLCBzeXN0ZW1fbWliLmMsIHZhcl9yb3V0ZS5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wdHJhcGQuYywgSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgICAgSUFOQWlmVHlwZS1NSUIudHh0LCBJRi1NSUIudHh0LCBJUC1NSUIudHh0LCBUQ1AtTUlCLnR4dCwKICAgICAgVURQLU1JQi50eHQsIHBhcnNlLmMsIHNubXBfYWxhcm0uYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAgLSBtZXJnZSBmcm9tIFYzLWxpbmUgcG9zdCAzLjYuMiB0byBjdXJyZW50LgogICAgICAtIG1pc2MgYnVnIGZpeGVzLgogICAgICAtIG1ha2UgYXBwcyB0dXJuIG9uIHN0ZGVyciBsb2dnaW5nIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTg6MjMKICAgIC0gKHNubXBkLmMpOiBtb3JlIHNubXBfbG9nIGNvbnZlcnNpb25zLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE4OjQ0CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBjaGFuZ2UgbWFsbG9jIHNpemUoKS4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxOToyMAogICAgLSAoYXNuMS5jKTogbnVsbCB0ZXJtaW5hdGUgcGFyc2VkIHN0cmluZ3MsIGp1c3QgaW4gY2FzZS4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoyMDowMgogICAgLSAoc25tcC5jKTogeGR1bXAgZml4ZXMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MjA6MzMKICAgIC0gKGtleXRvb2xzLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOiBzbm1wX2xvZyBjb252ZXJzaW9ucy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNDoxOTozOQogICAgLSAoYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAgLSByZXZlcnQgdG8gbm9uLWRwYXJzZSB2ZXJzaW9ucyBvZiBhc24gZGVjb2RpbmcuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTQ6MjY6NTcKICAgIC0gKHNubXBkLmMpOiBpbml0IGRlYnVnZ2luZy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxNToyMjowMgogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHVzbS5jLCBzbm1wd2Fsay5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLAogICAgICBzbm1wX2NsaWVudC5jKToKICAgICAgLSBtYWtlIGFuZCB1c2Ugc25tcF9zZXNzX3BlcnJvcihzdHIsIHNlc3MpIGZvciBlcnJvciBwcmludGluZy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzoxMTozMAogICAgLShhc24xLmMpIC0gZml4IGNvbXBhcmUgZXJyb3IgYXQgbGluZSAzODY7IHJlbW92ZSB1bnVzZWQgdmFycyBlbHNld2hlcmUKCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzoxODoxMwogICAgLShsaWJzbm1wLmRlZikgLSBhZGQgZGVjbHMgZm9yIG5ldyBlcnJvciBsb2dnaW5nIGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwNzo0NTo1OQogICAgLShzbm1wX2NsaWVudC5jKSAtIHVzZSBTRVRfU05NUF9FUlJPUiBmb3IgcmVzdG9yZWQgc25tcF9lcnJubyBzZXRzLgoKbXNsaWZjYWsgMjQgSnVsIDk5IDA4OjExOjA1CiAgICAtKG1kNS5jKSAtIHdyYXAgdW51c2VkIE1ENXByaW50IHdpdGggU05NUF9URVNUSU5HX0NPREUgaWZkZWYKCmhhcmRha2VyIDI2IEp1bCA5OSAwNzozNzowOQogICAgLSAoU05NUHYyLUNPTkYudHh0KTogcmVtb3ZlZCBib2d1cyBJTVBPUlRTIGNsYXVzZQoKaGFyZGFrZXIgMjYgSnVsIDk5IDA5OjA0OjA5CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyIDI2IEp1bCA5OSAwOToxNDoyNAogICAgLSAoTkVXUyk6IHVwZGF0ZWQgYSBiaXQKCmhhcmRha2VyIDI2IEp1bCA5OSAxMTo1MToyMgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNCApCgpoYXJkYWtlciAyNiBKdWwgOTkgMTQ6MzI6MTcKICAgIC0gKG1pYi5jKTogQklUX3N0cmluZzogLT4gQklUUzoKCm1zbGlmY2FrIDI2IEp1bCA5OSAxNToxMjo0NQogICAgLShhc24xLmMsYXNuMS5oLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jLHNubXB1c20uYykgbW9yZSBkZXRhaWxlZCBwYXJzZSBlcnJvciBtZXNzYWdlcy4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNTo1OToxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDY6MDMKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSB2YXJpYWJsZSBuYW1pbmcgY2hhbmdlLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA2OjQ3CiAgICAtIChocHV4LmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gZGVmaW5lIGhwdXgKCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNzozMQogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywgc2NhcGkuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBzaXplX3QgY2hhbmdlcy4KCm1zbGlmY2FrIDI3IEp1bCA5OSAwNDoyNDowOAogICAgYWRkIGluY2x1ZGUgbmV0L2lmX2RsLmggc3VnZ2VzdGVkIGJ5IFRvbSBJdmFyIEhlbGJla2ttbwoKZGF2ZXMgMjcgSnVsIDk5IDA2OjM4OjA5CiAgICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC8qLmMpOiB0d2VhayByZWdpc3RyeSBsYWJlbHMKCm1zbGlmY2FrIDI3IEp1bCA5OSAwNzo1MjozNwogICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywKICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyxhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyxhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgIHNubXBsaWIvYXNuMS5jLHNubXBsaWIvc2NhcGkuYyxzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgICBzbm1wbGliL3NubXBfY2xpZW50LmgpICBFUlJPUl9NU0csIHByaW50ZiAtLT4gREVCVUdNU0dUTAoKbXNsaWZjYWsgMjcgSnVsIDk5IDA5OjMzOjQzCiAgICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L3NubXBkLmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyxhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgICBhcHBzL3NubXBidWxrd2Fsay5jLGFwcHMvc25tcGRlbHRhLmMsYXBwcy9zbm1wZ2V0LmMsCiAgICBhcHBzL3NubXBnZXRuZXh0LmMsYXBwcy9zbm1wc2V0LmMsYXBwcy9zbm1wc3RhdHVzLmMsCiAgICBhcHBzL3NubXB0YWJsZS5jLGFwcHMvc25tcHRlc3QuYyxhcHBzL3NubXB0cmFwLmMsCiAgICBhcHBzL3NubXB0cmFwZC5jLGFwcHMvc25tcHVzbS5jLGFwcHMvc25tcHdhbGsuYywKICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLHNubXBsaWIvcGFyc2UuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICBzbm1wbGliL3NubXB2My5jKSBmaXggc25tcF9zZXNzX3BlcnJvciB1c2U7IHVzZSBsb2dfcGVycm9yIGZvciBwZXJyb3IKCm1zbGlmY2FrIDI3IEp1bCA5OSAxMjowMDozNwogICAgLShlbmNvZGVfa2V5Y2hhbmdlLmRzcCxzbm1wdXNtLmRzcCkgLWJ1aWxkIHVzaW5nIGNvbW1vbiBXaW4zMiBjb21waWxlcgoKbXNsaWZjYWsgMjcgSnVsIDk5IDEyOjI0OjAzCiAgICAtKGFwcHM6ZW5jb2RlX2tleWNoYW5nZS5jLHNubXBkZWx0YS5jLHNubXB0YWJsZS5jLCBzbm1wdXNtLmM7CiAgICBzbm1wbGliOnJlYWRfY29uZmlnLmMsc25tcHYzLmM7IHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKSAtCiAgICAgYWRqdXN0IGhlYWRlcnMsIGJ1aWxkIFdpbjMyIHNubXB1c20rZW5jb2RlX2tleWNoYW5nZQoKbXNsaWZjYWsgMjcgSnVsIDk5IDE2OjA2OjM1CiAgICAtKGludGVyZmFjZXMuYykgLSBmaXggZXJyb3Igc2V0dGluZyBpZl9pYnl0ZXMgZm9yIExpbnV4IDIuMAoKaGFyZGFrZXIgMjcgSnVsIDk5IDE2OjE0OjI4CiAgICAtIChhc24xLmMsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CiAgICAgIC0gY2xlYW5lZCB1cCBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCiAgICAgIC0gYWRkZWQgbW9yZSBkdW1wIHBhcnNlIGhlYWRlcnMgZm9yIHYzIGR1bXBzLgoKaGFyZGFrZXIgMjcgSnVsIDk5IDE2OjIwOjQ2CiAgICAtIChhc24xLmMpOiBmaXggaGVhZGVyIGR1bXAuCgptc2xpZmNhayAyNyBKdWwgOTkgMTc6MTU6MDEKICAgIGluY2x1ZGluZyBtaWIuaCByZXF1aXJlcyBzdGRpby5oIHRvIGRlZmluZSBGSUxFICouCgptc2xpZmNhayAyNyBKdWwgOTkgMTk6MDI6MzEKICAgIC0oc25tcF9wYXJzZV9hcmdzKSBpbiBzbm1wX3BhcnNlX29pZCwgdHJ5IGdldF9ub2RlIGlmIHJlYWRfb2JqaWQgZmFpbHMuCgptc2xpZmNhayAyNyBKdWwgOTkgMTk6MDY6MDgKICAgIC0obWliLmMpIGZpeCB3YWxraW5nIE9JRCBsZW5ndGggcG9pbnRlciwgbnVtZXJpYyBzdWItaWQgbm90IGZvdW5kCiAgICBpbiByZWFkX29iamlkIGFuZCBwYXJzZV9zdWJ0cmVlLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDIzOjM0OjU5CiAgICAtKHNubXBkLmMpIGludm9rZSBsb2cgZnVuY3Rpb25zIGZyb20gY2hpbGQgKGNvcnJlY3QgcHJvY2VzcyBJRCBpbiBzeXNsb2cpCgptc2xpZmNhayAyNyBKdWwgOTkgMjM6NTg6NTEKICAgIC0oa2V5dG9vbHMuYyxtZDUuYyxtZDUuaCxzY2FwaS5jLHNubXAuYyxzbm1wX2FwaS5jLHNubXBfYXV0aC5jKSBjYXRjaCBNRDUgZXJyb3JzCgptc2xpZmNhayAyOCBKdWwgOTkgMDI6NDI6MzIKICAgIGhyX3N3cnVuIC0gcmVzZXQgcG9pbnRlciBpbiBtb2R1bGUgaW5pdCAoaGVscCBIUC9VWCA5KQogICAgc25tcF9sb2dnaW5nIC0gdXNlIHZzcHJpbnRmIGZvciBIUC9VWC05CgpoYXJkYWtlciAyOCBKdWwgOTkgMDY6NDU6MTkKICAgIC0gKGJ1Zy1yZXBvcnQpOiBjaGFuZ2UgbWFpbCBhZGRyIHRvIHVjZC1zbm1wLWJ1Z3MKCmRhdmVzIDI5IEp1bCA5OSAwMzoyOTo0MAogICAgLSAobWliSUkvdmFjbV92YXJzLmMpOiBDYXRjaCB1c2Ugb2YgdW5jb25maWd1cmVkIEVYQU1QTEUuY29uZiBmaWxlcwoKbXNsaWZjYWsgMjkgSnVsIDk5IDA4OjM0OjU5CiAgICBtZW1vcnlfc29sYXJpczIgOiBoYW5kbGUgbWFsbG9jIGVycm9ycwogICAga2VybmVsX3N1bm9zNSA6IHNoYXJlIGtzdGF0IGZpbGRlcyBbU0hBUkVfS1NUQVRfRkRdCgptc2xpZmNhayAyOSBKdWwgOTkgMTM6Mjg6MzYKICAgIC0oYXBwcy9NYWtlZmlsZS5pbikgLSBjb21tZW50IHVubmVlZGVkIFRSQVBTUEVDSUFMIGxpbmUKCm1zbGlmY2FrIDI5IEp1bCA5OSAxMzo1OTowMgogICAgLShhZ2VudC9zbm1wZC5jKSAtIGxvZyBzdGFuZGFyZCBlcnJvciB1bnRpbCBpbml0IGlzIGNvbXBsZXRlZC4KCm1zbGlmY2FrIDI5IEp1bCA5OSAxNTowNDo0OQogICAgYXV0b19ubGlzdCwga2VybmVsIDogcGxhY2UgbG9nX3BlcnJvciB0byBjYXRjaCBlcnJubyB2YWx1ZSBpbiByZXBvcnQuCgpoYXJkYWtlciAyOSBKdWwgOTkgMTc6MDM6MjUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IHJlbW92ZSB0cmFwX3NwZWNpYWwgc3R1ZmYuCgpoYXJkYWtlciAyOSBKdWwgOTkgMTc6MDY6NTYKICAgIC0gKG1pYmdyb3VwL3YycGFydHkpOiByZW1vdmVkIGZpbGVzLgoKbXNsaWZjYWsgMzAgSnVsIDk5IDAzOjUxOjMxCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBIQVZFX0dFVD8/P0JZTkFNRTsgUmVtb3ZlZCB1bnVzZWQgX0NSVElNUAoKbXNsaWZjYWsgMzAgSnVsIDk5IDAzOjU3OjIzCiAgICBSZW1vdmVkIGhpbnQgb2YgdjJwYXJ0eSBmcm9tIGNvbW1lbnQuCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6MDA6MjgKICAgIC0oYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyxhZ2VudC9oaXN0b3J5LmMsYWdlbnQvc25tcF92YXJzLmMsCiAgICBhZ2VudC9zbm1wZC5jLHNubXBsaWIvcmVhZF9jb25maWcuYyxzbm1wbGliL3NubXBfYWxhcm0uYywKICAgIHNubXBsaWIvc25tcF9hcGkuYyxzbm1wbGliL3NubXBfbG9nZ2luZy5jLHNubXBsaWIvc25tcHYzLmMsCiAgICBzbm1wbGliL3N5c3RlbS5jKSAtIHBzb3MgZGlmZnMgb2ZmZXJlZCBieSBBbnRob255IFN5bW9ucwoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjM3OjIwCiAgICByZW5hbWUgbG9jYWwgdmFyICdsYXN0JyB0byAnbGFzdF9pcGNoJyAtIGF2b2lkIHNoYWRvdyBnbG9iYWwgZGVjbAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjM5OjM4CiAgICBkZWNsIGxvZ19wZXJyb3IKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDo0Mjo0OAogICAgcmVuYW1lIHNkIHRvIGlmc2QgLSBhdm9pZCBnbG9iYWwgc2hhZG93IGRlY2wKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNTo0MjozNAogICAgaHJfc3RvcmFnZS5jIC0gYXV0b19ubGlzdCBmb3IgSFJfU1RPUkVfU0laRQogICAgaHJfc3dydW4uYyAtIGZpeCBnbG9iYWwgc2hhZG93IGRlY2wKICAgIHNubXBfbG9nZ2luZy5jIC0gY2hhbmdlIGZpbHRlciBmb3Igb3BlbmxvZyBwZXIgQS4gU3ltb25zIHBhdGNoCgpkYXZlcyAzMCBKdWwgOTkgMDY6MDE6MDgKICAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jCiAgICAgICBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCk6CiAgICAgICAtICBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIHYycCBzdXBwb3J0CgpkYXZlcyAzMCBKdWwgOTkgMDY6MjM6MDYKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMgYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnNfbTJtLmgpOgogICAgICAtIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2Ygb2Jzb2xldGUgdjJwYXJ0eSBNYW5hZ2VyLXRvLU1hbmFnZXIgc3VwcG9ydAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjMwOjMwCiAgICBzeXN0ZW0gLSB1c2Ugc2l6ZW9mCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6MzA6NTkKICAgIHdpbjMyL2NvbmZpZy5oIC0gZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjo0NjoyMgogICAgdXNlIHRyYWRpdGlvbmFsIEsmUiBjb21tZW50aW5nOyBub3QgYWxsICJDIiBjb21waWxlcnMgYWNjZXB0ICIvLyIgY29tbWVudHMuCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6NTg6MDgKICAgIHJlbW92ZSByZWZlcmVuY2VzIHRvIG5vbi1leGlzdGVudCBzbm1wX3ZhcnNfbTJtLmgKCmRhdmVzIDMwIEp1bCA5OSAwNzowMTo0NgogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQoKZGF2ZXMgMzAgSnVsIDk5IDA3OjMxOjU2CiAgICAtIChhY2NvbmZpZy5oKTogQ2hlY2sgZm9yIGxpYmRiL2xpYmRiMSAmIGxpYnJwbSBzZXBhcmF0ZWx5Cgptc2xpZmNhayAzMCBKdWwgOTkgMDg6MDE6MTgKICAgIGFkZCB2c25wcmludGYgY2hlY2sgYW5kIEhBVkVfVlNOUFJJTlRGIGNvbnN0YW50Cgptc2xpZmNhayAzMCBKdWwgOTkgMDg6MzI6MjgKICAgIG5vIHN0cnVjdCBzb2NrYWRkcl9kbCBpbiBBSVggMy4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxMDowNQogICAgLSAoY29uZmlnLmguaW4pOiBhdXRvaGVhZGVyIHJ1bi4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxMDozMAogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIC92YXIvdWNkLXNubXAgZXhpc3QuICBXZSBzaG91bGQgZG8gYSBwZXJtaXNzaW9uCiAgICAgIHNldCBhcyB3ZWxsLgoKaGFyZGFrZXIgMzAgSnVsIDk5IDE0OjE4OjU1CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxOToyMQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNSApCgptc2xpZmNhayAgMiBBdWcgOTkgMDQ6Mjk6MzUKICAgIGFzbjEsIHBhcnNlKSBmaXhlcyBzdXBwbGllZCBieSBNYXJra3UgTGF1a2thbmVuIChNSlMtdXNlIHhjYWxsb2MgaW4gcGFyc2UpCgptc2xpZmNhayAgMiBBdWcgOTkgMDQ6Mzc6NDYKICAgIHBhcnNlIC0gc2hhbWUgb24gbWUgZm9yIG5vdCBjb21waWxlIHRlc3RpbmcgZmlyc3QhCgptc2xpZmNhayAgMiBBdWcgOTkgMjI6Mjk6MzcKICAgIHNubXBfZGVidWcgLSBERUJVR01TRyBtYWNyb3MgY2FsbCBzbm1wX2dldF9kb19kZWJ1Z2dpbmcgYmVmb3JlIGludm9raW5nIGRlYnVnbXNnKiBmdW5jdGlvbnMuCgptc2xpZmNhayAgMyBBdWcgOTkgMDQ6NDY6NDEKICAgIHNubXBfYXBpLmMgLSByZW1vdmUgIkJZIiBmcm9tIEhBVkVfR0VUSE9TVEJZTkFNRSAoU29sYXJpcyAyLjUuMSB3cm9uZyEpCgptc2xpZmNhayAgMyBBdWcgOTkgMDY6NTk6NTAKICAgIGFzbjEuYyAtIGZpeCBvdXQtb2YtYm91bmQgYXJyYXkgd3JpdGUgYW5kIG1lbW9yeSBsZWFrIGluIHBhcnNpbmcgc3RyaW5ncy4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzowMDoxNgogICAgc25tcF9kZWJ1Zy5jIC0gcmVtb3ZlIHRyYWNlIG1lc3NhZ2VzIGZyb20gZGVidWdtc2dfaGV4dGxpLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA3OjAzOjE0CiAgICBzbm1wX2RlYnVnLmggLSBtb3ZlIERFQlVHVFJBQ0UgZnJvbSBkZWJ1Z21zZ19oZXh0bGkgdG8gREVCVUdEVU1QU0VUVVAKCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzo1ODo0OQogICAgdmFjbV92YXJzLmMgLSBjb3B5IGNvbW11bml0eSBzdHJpbmcsIG51bGwgdGVybWluYXRlLCB0aGVuIGRlYnVnIHByaW50Cgptc2xpZmNhayAgMyBBdWcgOTkgMTI6NTM6MzIKICAgIHNubXBfZGVidWcuaCAtIGZpeCAid2FybmluZzogQU5TSSBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciB3aXRoIG9ubHkgb25lIHZvaWQgc2lkZSIuCgptc2xpZmNhayAgMyBBdWcgOTkgMTQ6MDY6MzMKICAgIHNubXBfZGVidWcuYyAtIHNpZ25lZCBjb21wYXJpc29uIGZvciBsZW4gaW4gZGVidWdtc2dfaGV4dGxpLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDAzOjQ4OjAyCiAgICAtKHNtdXguYykgLSBwYXRjaCBzdXBwbGllZCBieSBOaWNrIEFtYXRvIHRvIGZpeCBBU05fSVBBRERSRVNTIHBhcnNlLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDA1OjAzOjExCiAgICB1bmRvIHBhdGNoIGFyb3VuZCBTb2xhcmlzJyBjb25maWd1cmUgZmFpbHVyZSB0byByZWdpc3RlciBIQVZFX0dFVEhPU1RCWU5BTUUuCgptc2xpZmNhayAgNCBBdWcgOTkgMDk6MTc6MTgKICAgIC0oY29uZmlndXJlKikgLSBLZW4gSG9ybnN0ZWluOiBmaXggdGVzdCB4eGdldGhvc3RieW5hbWUsIHh4Z2V0c2VydmJ5bmFtZS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAxMjozMzo1NgogICAgc25tcF9hcGkuYyAtIGR1bW15IGZ1bmN0aW9ucyBzbm1wX3N5bmNoX3tzZXR1cCxyZXNldH0gYW5kIHNubXBfZ2V0X2Vycm5vLgoKbXNsaWZjYWsgIDUgQXVnIDk5IDAzOjI1OjU1CiAgICBjb25maWcuc3ViIC0gcGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuIHRvIHN1cHBvcnQgSFBVWCAxMQoKbXNsaWZjYWsgIDUgQXVnIDk5IDExOjExOjUzCiAgICBzbm1wX2FwaS4zIC0gZGVzY3JpYmUgc25tcF9lcnJvcigpLCByZXBsYWNlcyBzbm1wX2Vycm5vIGFuZCBzbm1wX2dldF9lcnJubygpCgpkYXZlcyAgNiBBdWcgOTkgMDU6NTk6NDYKICAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6CiAgICAgIC0gY29uZmlndXJlLXRpbWUgZmxhZyB0byBjb250cm9sIHByb3Zpc2lvbiBvZiAiZHVtbXkiIHZhbHVlcwoKZGF2ZXMgIDYgQXVnIDk5IDA2OjAyOjE1CiAgICAtIChtaWJJSS8qLmMgaG9zdC8qLmMpOiBEb24ndCBwcm92aWRlICJkdW1teSIgdmFsdWVzICh1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkKQoKbmJhICA5IEF1ZyA5OSAwMDoyNDozNwogICAgcGFyc2UuYzoJcGFyc2UgYWdlbnQgY2FwYWJpbGl0aWVzCgpkYXZlcyAgOSBBdWcgOTkgMDE6MDI6MTUKICAgIC0gKEZBUSk6IE5pbmUgbmV3IHF1ZXN0aW9ucywgcGx1cyBhc3NvcnRlZCB0d2Vha3MgZm9yIHRoZSBuZXcgcmVsZWFzZS4KCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo0ODo0NwogICAgbWliLiosIHBhcnNlLiogLSBtb3ZlIHByaW50X29pZF9yZXBvcnQgYW5kIG1pbmlvbnMgd2hvbGx5IGludG8gbWliLmMKCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo1MDozNgogICAgIHNubXBkZWx0YSwgdHJhbnNsYXRlLCB0cmFwZCkgLSBsaXN0IGFsbCBvcHRpb25zIGluIHVzYWdlOyByZW1vdmUgZGlzYWJsZXMgZm9yIHByaW50X29pZF9yZXBvcnQgaW4gdHJhbnNsYXRlLgoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjUyOjQ3CiAgICBzbm1wZC5jIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZQoKbXNsaWZjYWsgIDkgQXVnIDk5IDA2OjU0OjAxCiAgICBsaWJzbm1wLmRlZiAtIHJlbW92ZSBwcmludF9vaWRfcmVwb3J0IGRpc2FibGUgb3B0aW9ucwoKbXNsaWZjYWsgIDkgQXVnIDk5IDA5OjQ1OjE1CiAgICAtKHNubXAuYykgZml4IGJ1ZmZlciBvdmVyZmxvdyBpbiB4ZHVtcCwgb2YgYWxsIHBsYWNlcyAoNzcgcy9iIDc4OyB1c2luZyA4MCkKCm5iYSAgOSBBdWcgOTkgMTA6NDM6MjgKICAgIChtYW55KToJbnVrZSB2YXJpb3VzIHByb3RvdHlwZSB3YXJuaW5ncwoKbXNsaWZjYWsgIDkgQXVnIDk5IDExOjQwOjI1CiAgICAtKG1kNS5jKSBmaXggcmVhZCBwYXN0IGVuZCBwcm9ibGVtCiAgICAtKHNubXBfYXBpLmMpIGZpeCBsb3NpbmcgY29tbXVuaXR5IHN0cmluZyBwcm9ibGVtCgpoYXJkYWtlciAgOSBBdWcgOTkgMTM6MTI6MzUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSAvZGV2L3JhbmRvbSB0ZXN0LgoKbXNsaWZjYWsgIDkgQXVnIDk5IDE1OjA3OjI0CiAgICBzbm1wdXNtLmMgLSBhbHdheXMgY2xlYXIgZmllbGRfbGVuIGlmIHJlZiBpcyB2YWxpZCBwdHI7CiAgICBzbm1wX2FwaS5jIC0gZG9uJ3Qgb3ZlcndyaXRlIGNvbW11bml0eSBwb2ludGVyIHdpdGggc2VjdXJpdHlBdXRoUHJvdG8gcG9pbnRlcgoKbmJhIDEwIEF1ZyA5OSAwNDo0NToxNwogICAgY29uZmlndXJlLmluIGNvbmZpZy5oLmluIGNvbmZpZ3VyZSBzL25ldGJzZCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKICAgIAlzdXBwb3J0IGZvciBOZXRCU0Qvc3BhcmMgYW5kIE5ldEJTRCAxLjQKCm5iYSAxMCBBdWcgOTkgMDQ6NDY6MzUKICAgIHNubXBsaWIvbWliLmM6CWZpeCBoYW5kbGluZyBvZiBudW1lcmljIG9pZHMgYW5kIHJlcG9ydGluZyBlcnJvcnMKCm5iYSAxMCBBdWcgOTkgMDQ6NDc6MjIKICAgIGFnZW50L2tlcm5lbC5jOglhYm9ydCBvbiBrdm1fb3BlbiBmYWlsdXJlcwoKbmJhIDEwIEF1ZyA5OSAwNDo0ODo0MQogICAgc25tcG5ldHN0YXQvaWYuYzoJZml4ZXMgZm9yIHNubXBuZXRzdGF0IC1pIG9uIHZpcnR1YWwgaW50ZXJmYWNlcwoKbmJhIDEwIEF1ZyA5OSAwNDo1MDo1MgogICAgaW50ZXJmYWNlcy5jIHZhcl9yb3V0ZS5jIHNubXBfbG9nZ2luZy5jOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCm1zbGlmY2FrIDEwIEF1ZyA5OSAwOToxOToxMAogICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUixXQVJOSU5HKQoKbXNsaWZjYWsgMTAgQXVnIDk5IDEwOjA0OjQwCiAgICBGaXggZm9yIGJ1aWxkIChubyBwYWdlc2l6ZSB2YXIgZGVmaW5lZCBmb3IgbGludXgpLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDExOjA1OjM4CiAgICAtIChzbm1wZC5jKTogbG9nIHZlcnNpb24gbnVtYmVyIGFmdGVyIHN0ZGVyciBpcyBvcHRpb25hbGx5IGNsb3NlZC4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNDoyNjozMwogICAgLSAoc25tcF92YXJzLmMpOiBwcm90ZWN0IGFnYWluc3QgZXZpbCBtaWIgbW9kdWxlcyBmcm9tIG1vZGlmeWluZwogICAgICBtZW1vcnkgdGhleSBzaG91bGRuJ3QgYmUgbW9kaWZ5aW5nIHlldC4KICAgICAgLSAoaWZkZWYnZWQgZm9yIHNwZWVkIHByb2ZpbGluZyBsYXRlcikuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTU6NTQ6MzMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogZm9yY2UgdjMgZW5naW5lSUQgc2V0dGluZyB0byBzb21ldGhpbmcgYm9ndXMgdG8KICAgICAgZ2V0IGFyb3VuZCBsb2NhbCBjb25maWd1cmF0aW9uIGRhdGEgc3RvcmUgdGltZSBzeW5jaHJvbml6YXRpb24gY29uZmxpY3RzLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE3OjIzOjU5CiAgICAtIChzbm1wZC5jKTogcHJpbnQgLUggdXNhZ2UgdG8gc3RkZXJyLgoKaGFyZGFrZXIgMTEgQXVnIDk5IDEzOjA0OjUwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgIC0gTWFrZSBwZXJzaXN0ZW50IGNhY2hlIGNvbmZvcm0gdG8gYSBtb3JlIHNlY3VyZSB1bWFzay4KCm5iYSAxMSBBdWcgOTkgMjE6NTI6MjYKICAgIGhyX3N0b3JhZ2UuYzoJcmVtb3ZlIHRvIGZvcmdvdHRlbiBkZWJ1ZyBsaW5lcy4KCm5iYSAxMSBBdWcgOTkgMjE6NTM6MzEKICAgIHNubXBuZXRzdGF0L2lmLmM6CWhhbmRsZSBub24tY29udGlndW91cyBpZlRhYmxlLiBBbHNvIG1ha2UgdGhlCiAgICAJY291bnRlcnMgdW5zaWduZWQuCgpoYXJkYWtlciAxMiBBdWcgOTkgMTY6MTY6MDEKICAgIC0gKHNubXAuY29uZi41LmRlZik6IHVwZGF0ZWQgd2l0aCB0aGUgbmV3ZXIgdG9rZW4gbGlzdC4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjo0MToyMgogICAgLSAoRkFRLCBzbm1wY21kLjEsIHNubXB0cmFwLjEpOiBtaW5vciBkb2MgdXBkYXRlcy4KCmhhcmRha2VyIDEyIEF1ZyA5OSAxNjo0NjozNAogICAgLSAoTkVXUywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KCmRhdmVzIDEzIEF1ZyA5OSAwMjo0NzowMAogICAgLSAoZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5bY2hdCiAgICAgICBpcGZ3Y2hhaW5zL2lwZndjaGFpbnMuW2NoXSBtaXNjL2lwZndhY2MuW2NoXQogICAgICAgdGFyZ2V0L3NubXBUYXJnZXR7QWRkcixQYXJhbXN9RW50cnkuW2NoXQogICAgICAgc211eC9zbm1wXyouW2NoXSk6CiAgICAgICAtIFJlZ2lzdGVyIG1vZHVsZXMgZHluYW1pY2FsbHkgYXQgcnVuLXRpbWUKCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxMTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiAibWFrZSB0ZXN0IiBpbiB0b3AgbGV2ZWwgTWFrZWZpbGUuCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTI6MTgKICAgIC0gKE5FV1MsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjE2OjUxCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA5OjMzOjQwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IHVzZSBOT19EVU1NWV9WQUxVRVMgYnkgZGVmYXVsdC4KCm1zbGlmY2FrIDEzIEF1ZyA5OSAxMToxNDozOQogICAgKGhvc3QvaHJfZGV2aWNlLmMsaG9zdC9ocl9wcmludC5jLCBob3N0L2hyX3Byb2MuYyxob3N0L2hyX3N0b3JhZ2UuYywKICAgIGhvc3QvaHJfc3dpbnN0LmMsaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLG1pYklJL2F0LmMsCiAgICBtaWJJSS9pbnRlcmZhY2VzLmMsbWliSUkvaXAuYywgbWliSUkvc3lzdGVtX21pYi5jLG1pYklJL3RjcC5jLAogICAgbWliSUkvdWRwLmMsbWliSUkvdmFyX3JvdXRlLmMpIC0gI2lmIE5PX0RVTU1ZX1ZBTFVFUyAoaGVscCBvdXQgY29uZmlndXJlKQoKaGFyZGFrZXIgMTMgQXVnIDk5IDExOjU1OjMxCiAgICAtICh2YXJfcm91dGUuYyk6IGRvbid0IGRvIGNhY2hpbmcgZm9yIE5PX0RVTU1ZX1ZBTFVFUy4KCm1zbGlmY2FrIDEzIEF1ZyA5OSAxMjoxODoxNwogICAgdmFyX3JvdXRlLmMgLSAjaWZkZWYgTk9fRFVNTVkgLS0+ICNpZiBOT19EVU1NWSAobGlrZSB0aGUgb3RoZXIgdXNlcykuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTI6NDk6MzUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcHJvcGVybHkgZG8gd2hhdCAtLXdpdGhvdXQtZHVtbXktdmFsdWVzCiAgICAgIHNob3VsZCBkby4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNToyMjo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgY29uZmlnX2xvYWRfbWliIHBhcnNpbmcuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTU6MzU6NTQKICAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgcmVtb3ZlIG1pYl9tb2R1bGVfbG9hZHMuaC4KCmhhcmRha2VyIDEzIEF1ZyA5OSAxNjowNTo0MgogICAgLSAocmVtb3ZlLWZpbGVzKTogcmVtb3ZlIHRoZSBJU1NVRVMgZmlsZSBmb3IgcmVsZWFzZXMuCgpoYXJkYWtlciAxMyBBdWcgOTkgMTY6MDY6NTEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTYgKQoKbmJhIDE2IEF1ZyA5OSAxNDo1ODo0MAogICAgc25tcG5ldHN0YXQvaWYuYzogYWxsb3cgLWkgYW5kIC1vIG91dHB1dHMgZXZlbiB3aXRoIGluY29tcGxldGUgcmVzcG9uc2VzCiAgICAJZnJvbSBzbm1wZCAoc3VjaCBhcyBMaW51eCB0aGF0IGRvZXMgbm90IHJldHVybiBpZkluTlVDYXN0UGt0cwogICAgCXdpdGggdGhlIG5ldyBEVU1NWSBzZXR1cCkKCm5iYSAxNiBBdWcgOTkgMTQ6NTk6MjkKICAgIHNubXBuZXRzdGF0L21haW4uYzogZW5hYmxlX3N0ZGVycmxvZygpIHNvIHRoYXQgd2UgZ2V0IGFuIGVycm9yIG1lc3NhZ2UKICAgIAlmb3IgYmFkIGhvc3QgbmFtZXMuCgpuYmEgMTggQXVnIDk5IDAyOjQwOjQ4CiAgICBhZ2VudC9zbm1wZC5jOgltb3ZlIHRoZSB0ZXJtaW5hdGlvbiBwcm9jZXNzaW5nIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCiAgICAJdG8gYWZ0ZXIgdGhlIG1haW4gbG9vcCBoYXMgdGVybWluYXRlZC4KCm5iYSAxOCBBdWcgOTkgMDI6NTE6NTcKICAgIC0gc25tcGQuYywgYWdlbnRfcmVhZF9jb25maWcuPywgdmVyc2lvbmluZm8uYzogbW92ZSB0aGUgcmVjb25maWd1cmF0aW9uCiAgICAJb3V0c2lkZSB0aGUgc2lnbmFsIGhhbmRsZXIuCgpuYmEgMTggQXVnIDk5IDA5OjI2OjM1CiAgICAtIGludGVyZmFjZXMuPzogdXBkYXRlcyBmb3IgTGludXggdG8gaGFuZGxlIGxhcmdlIGNvdW50ZXJzIGFuZCB2aXJ0dWFsCiAgICAJaW50ZXJmYWNlcy4KCm5iYSAxOCBBdWcgOTkgMDk6MzE6MDYKICAgIC0gKG1hbnkpOgljaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBsb2dnaW5nIGZ1bmN0aW9ucyB0byBiZSBzbm1wXyoKICAgIAlkZWZhdWx0IGRvX3N0ZGVycl9sb2dnaW5nIHRvIDEuCgpuYmEgMTkgQXVnIDk5IDAyOjMzOjU2CiAgICAtIGludGVyZmFjZXMuYzogcmVtb3ZlIHNvbWUgbGVmdCBvdmVyIGRlYnVnIG91dHB1dAoKbmJhIDE5IEF1ZyA5OSAwMjozNToxMAogICAgLSBzbm1wX2xvZ2dpbmcuYywgYWdlbnQvdmFyaW91czogcmVpbnN0YXRlIC1hIGFuZCAtViBsb2dnaW5nIChhbG1vc3QpLgogICAgCXRpbWVzdGFtcCBmaWxlIGFuZCBzdGRlcnIgbG9nZ2luZy4KCm5iYSAxOSBBdWcgOTkgMTA6Mzg6MDIKICAgIC0gc25tcF9hcGkuYzoJY29ycmVjbHkgY2FsbCBwcmUtcGFyc2UgaG9vaywgYWxzbyB3aGVuIG5vdCBkZWJ1Z2dpbmcKICAgIAkodGhpcyBraWxsZWQgdGhlIGxpYndyYXAgY2hlY2sgaW4gc25tcGQpCgpuYmEgMTkgQXVnIDk5IDEwOjM4OjQ4CiAgICAtIHNtdXguYzogcmVtb3ZlIHNvbWUgZXh0cmFuZW91cyBcbiBmcm9tIHNubXBfbG9nX3BlcnJvciBjYWxscy4KCm5iYSAxOSBBdWcgOTkgMTA6NDA6MjIKICAgIC0gc25tcGQuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgOiBmcm9tIHNubXBfbG9nX3BlcnJvci4KICAgIAlMb2cgd2hlbiBzbm1wZCByZWNvbmZpZ3VyZXMgZm9sbG93aW5nIGEgU0lHSFVQCgpuYmEgMTkgQXVnIDk5IDE0OjA5OjI1CiAgICAtIHNubXBfYXBpLj8sIHNubXBkLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jOiByZWluc3RhdGUgYWdlbnRfYWRkciBpbgogICAgCXRoZSBwZHUgc3RydWN0dXJlICh1c2VkIGZvciB2MSB0cmFwcykuCgpoYXJkYWtlciAxOSBBdWcgOTkgMTY6MDk6NTQKICAgIC0gKHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jKTogUGF0Y2ggZnJvbSBkbGVuZ2VsQGhvbWUuY29tOgogICAgICAtIGNoZWNrIGFyZ3VtZW50IGNvdW50IGZvciBtaW5pbXVtIG51bWJlci4KCm5iYSAyMCBBdWcgOTkgMDM6NDM6MzcKICAgIC0gYWdlbnR4Lyo6IHZhcmlvdXMgcHJvdG90eXBlIGZpeGVzLCB0byBrZWVwIG51bWJlciBvZiB3YXJuaW5ncyBkb3duCgpoYXJkYWtlciAyMCBBdWcgOTkgMTM6NDM6NTYKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKToKICAgICAgLSBtYWtlIGxvZ2dpbmcgb2YgdGltZXN0YW1wcyBvcHRpb25hbCBieSBhIHNubXAuY29uZiBkaXJlY3RpdmUuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTM6NTY6NTcKICAgIC0gKHNubXAuY29uZi41LmRlZiwgZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2xvZ2dpbmcuYyk6CiAgICAgIC0gdHVybiBvZmYgdGltZSBzdGFtcCBsb2dnaW5nIGJ5IGRlZmF1bHQuICBJdCBtdXN0IGJlIGV4cGxpY2l0bHkKICAgICAgICByZXF1ZXN0ZWQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRvIHR1cm4gaXQgb24uCiAgICAgICAgKHRoZSByZWFzb24gaXMgdGhhdCBhIGxvdCBvZiBsb2dnaW5nIGlzIGluY3JlbWVudGFsIGluIG5hdHVyZSBhbmQKICAgICAgICBpcyBub3QgbGluZSBidWZmZXJlZCBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgbG9nZ2luZyByb3V0aW5lcy4KICAgICAgICBUaGUgb3RoZXIgc29sdXRpb24gaXMgdG8gaGF2ZSB0aGUgbG9nZ2luZyByb3V0aW5lcyBkZXRlY3Qgd2hlbiB0bwogICAgICAgIHByaW50IHRpbWVzdGFtcHMgYnkgd2F0Y2hpbmcgb3V0IGZvciBcbidzLiAgQnV0LCBub3QgdGhpcyByb3VuZC4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxNjozOToyMQogICAgLSAoc25tcF9hcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oLCBhc24xLmMpOiA2NGJpdCBjbGVhbnVwLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDE3OjA4OjE3CiAgICAtIChORVdTKTogbGFzdCBtaW51dGUgY2hhbmdlcwoKaGFyZGFrZXIgMjAgQXVnIDk5IDE3OjEwOjI2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU3ICkKCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzozMzowMAogICAgLSAoaXBmY2hhaW5zKTogcmVtb3ZlZCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5ld2VyIG9uZSBpbiBmdHAncyBjb250cmliIGRpci4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NDo1NwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIC0td2l0aG91dC1kdW1teS12YWx1ZXMgaXMgZGVmYXVsdCBhZ2Fpbi4KICAgICAgLSBjbGVhbnVwIG9mIC0taGVscCBzdHVmZi4KICAgICAgLSBmaXggb2YgcGVyaXN0ZW50IGRpcmVjdG9yeSBjcmVhdGlvbi4KCmhhcmRha2VyIDIyIEF1ZyA5OSAxNzo1NjoyNwogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMiBBdWcgOTkgMTc6NTc6MjcKICAgIC0gKHNubXBfYXBpLmgpOiB2ZXJzaW9uIC0+IHVfbG9uZy4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAwNjoxNDozOQogICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgY29uZmlnX2xvYWRfbWliCgpoYXJkYWtlciAyMyBBdWcgOTkgMDc6MDI6NDMKICAgIC0gKE5FV1MpOiBhbnNpIG1lbnRpb25lZC4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAwOTowMDo1OQogICAgV2luMzIgYnVpbGQgZml4ZXMKCm5iYSAyMyBBdWcgOTkgMTM6NTQ6MzIKICAgIC0gYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcF92YXJzLmM6IG1vdmUgc29tZSAtdiBsb2dnaW5nIHRvIGEgbW9yZSByYXRpb25hbAogICAgCXBsYWNlLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDE0OjAyOjUxCiAgICBEZXNjcmliZSBVU0VfQVNOX1NIT1JUX0xFTiBpbiBGQVEsIGFuZCBpbXBsZW1lbnQgaW4gX3NubXBfYnVpbGQuCgptc2xpZmNhayAyMyBBdWcgOTkgMTU6MzI6MjEKICAgIEhBQ0shIGZpeHVwIHNob3J0IGxlbmd0aCAoZmlyc3QgcHV0IGNvcnJlY3QgY29tbXVuaXR5IHN0cmluZyBpbiBwZHUtPiApLgoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjE0OjAwCiAgICAtIChUMDI4c25tcHYzZ2V0ZmFpbCk6IHNubXB2MyBnZXQgZmFpbHVyZSB0ZXN0LgoKaGFyZGFrZXIgMjMgQXVnIDk5IDE2OjE0OjAwCiAgICAtIChJTlNUQUxMKTogcmVtb3ZlIHZlcnNpb24gc3BlY2lmaWMgaW5mb3JtYXRpb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjYuMSAtPiBWMy42LjIKCmhhcmRha2VyIDE2IE1hciA5OSAwODoxNToxOAogICAgLSAoZGxtb2QuYyk6IHJlbW92ZWQgYSBib2d1cyBuZXctbGluZS4KCmhhcmRha2VyIDE2IE1hciA5OSAxMDozNDowMwogICAgLSAoaHJfc3dydW4uYyk6IGZpeCBmaWxlIGRlc2NyaXB0b3IgbGVhayBvbiBmcmVlYnNkLgoKbXNsaWZjYWsgMTYgTWFyIDk5IDExOjIzOjMwCiAgICAtKHNubXBfYXBpLmMpIGNvbnNpc3RlbnQgZXJyb3IgcmV0dXJuLgoKbXNsaWZjYWsgMTYgTWFyIDk5IDExOjMzOjUyCiAgICAtIG1vdmUgTUFUQ0hfRkFJTEVEL01BVENIX1NVQ0NFRURFRCBmcm9tIHV0aWxfZnVuY3MuaCB0byBtaWJpbmNsLmgKCm1zbGlmY2FrIDE3IE1hciA5OSAxMzo1Mzo0OAogICAgLShocl9zd3J1bi5jKSAtIHByZXZlbnQgU3VuT1MgNC4xIGNvcmUgKHN1bm9zNCBzdGlsbCBwcmltaXRpdmUpCgptc2xpZmNhayAxOCBNYXIgOTkgMDg6Mzc6NDUKICAgIC0gKG1pYklJL2lwLmMpIGZpeCBNSUJfSVBDT1VOVEVSX1NZTUJPTCB1c2FnZQoKaGFyZGFrZXIgMTkgTWFyIDk5IDA5OjIzOjM4CiAgICAtIChzbm1wZ2V0LmMsIHNubXB3YWxrLmMpOiBmaXhlZCBpbml0aWFsaXphdGlvbiBhbmQgdXNhZ2Ugb2YgImZhaWx1cmVzIi4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDowOTo0NwogICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgbW9yZSB0YXJnZXRzLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjEwOjExCiAgICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSByZXR1cm4gdGhlIG5leHQgdG9rZW4sIG5vdCB0aGUKICAgICAgbmV4dCBzcGFjZS4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoxMTowMwogICAgLSAobWliZGVmcy5oLCBzdHJ1Y3QuaCwgZXh0ZW5zaWJsZS5jLCBleHRlbnNpYmxlLmgsIHByb2MuYywgcHJvYy5oLAogICAgICBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBwZXItcHJvY2Vzcy9leGVjIGZpeCBzY3JpcHRzIGNyZWF0ZWQuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MjM6MjEKICAgIC0gKHZlcnNpb250YWcpOiByZWdleHAgZml4LgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjExOjMyCiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKTogcmVsb2NhdGUgdG8KICAgICAgc25tcE1vZHVsZXMuMTIsIHdoZXJlIHRoZXkgc2hvdWxkIGJlLgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjE3OjI0CiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSB3aGVuIHVzaW5nIGNvcHlfd29yZCgpIGRvbid0IHNraXAgc3BhY2VzLCBzaW5jZSBpdCBkb2VzIHRoYXQuCgptc2xpZmNhayAgMSBBcHIgOTkgMTM6MTA6NDcKICAgIC0gKGxpYnNubXAuaCkgQXN5bXB0b3RpY2FsbHkgY2xvc2VyIHRvIHN1cHBvcnRpbmcgQ01VIGNvbnN0YW50cy4KCm1zbGlmY2FrICA1IEFwciA5OSAxMTowNjoyNwogICAgLSAoc25tcF9hcGkuYywgbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYykgSm9lIE1hcnpvdCdzIGZpeCB0byBjb3B5IGV2ZW4gYW4gZW1wdHkgY29tbXVuaXR5IG5hbWUuCgptc2xpZmNhayAgNSBBcHIgOTkgMTQ6MTA6MTQKICAgIC0gYnVpbGQgc25tcG5ldHN0YXQgd2l0aCBDeWdXaW4zMgoKbXNsaWZjYWsgIDUgQXByIDk5IDE0OjIyOjQzCiAgICAtIEJ1aWxkIHdpdGggQ3lnV2luMzIKCm1zbGlmY2FrICA1IEFwciA5OSAxNTo1OToyMAogICAgLSBCdWlsZCB1c2luZyBDeWdXaW4zMiAoaW5jbHVkZXMgTmllbHMgQi4ncyBzbm1wX3ZhcnMuYyBwYXRjaCkuCgpoYXJkYWtlciAgNiBBcHIgOTkgMDk6MjM6MTYKICAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlnLnN1Yik6IG5ldyB2ZXJzaW9ucyBmcm9tIGF1dG9jb25mIDIuMTMuCgptc2xpZmNhayAgNiBBcHIgOTkgMTA6NTk6MDUKICAgIC0gKGV4dGVuc2libGUuYykgcXVlbGwgd2FybmluZyBhYm91dCBjb21wYXJpbmcgcG9pbnRlciB3aXRoIG5vbi1wb2ludGVyLgoKbXNsaWZjYWsgIDYgQXByIDk5IDExOjMzOjU0CiAgICAtIGFub3RoZXIgcm91bmQgb2YgQU5TSS1meWluZyB0aGUgYWdlbnQgY29tcGxldGVkLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjEzOjQwCiAgICAtICgqKTogTWVyZ2VkIHRoZSA0LjAgbGluZSBpbnRvIHRoZSAzLjYuMSBsaW5lLgoKaGFyZGFrZXIgIDYgQXByIDk5IDE1OjM4OjQ1CiAgICAtIChtaWJpbmNsLmgsIHVjZERlbW9QdWJsaWMuYywgdmFjbV92YXJzLmgsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLAogICAgICBNYWtlZmlsZS5pbik6IGZpbmFsIG1lcmdlIHBpZWNlcyBvZiByZWNlbnQgdjMgbGluZSBjaGFuZ2VzLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIxOjI0OjIyCiAgICAtIGNoYW5nZXMgZm9yIEFOU0kgaGVhZGVyczsgUE9TSVgoaW5kZXggdnMgc3RyY2hyKTsgbWlub3IgZml4ZXMKCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxMzo1OQogICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KCm1zbGlmY2FrICA2IEFwciA5OSAyMjoxNDo0MwogICAgLSAoc25tcF92YXJzLmMpIG1vcmUgdjJwYXJ0eSByZXdvcmsgbmVlZGVkCgptc2xpZmNhayAgNyBBcHIgOTkgMDY6MTc6MjgKICAgIC0gKCkgbW9yZSBBTlNJIGhlYWRlciBmaXh1cHM7IHRvdWNodXAgZm9yIE0kIFdpbjMyIGJ1aWxkCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDI6MTAKICAgIC0gKGNvbmZpZy5oLmluLCBzbm1wX3ZhcnMuYywgZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdHJhcGQuYywKICAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgIGxjZF90aW1lLmMsIG1kNS5jLCByZWFkX2NvbmZpZy5jLCBzY2FwaS5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB2My5jLCB0b29scy5jLCB0b29scy5oKToKICAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICAgbmV3ZXIgbW9kZWwuCiAgICAgIC0gYSBmZXcgLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTA6NDg6MDcKICAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgoKaGFyZGFrZXIgIDcgQXByIDk5IDExOjI4OjAyCiAgICAtICh1Y2REZW1vUHVibGljLmMsIHN5c09SVGFibGUuYywgdmFjbV92YXJzLmMsIHNtdXguYywgc25tcEVuZ2luZS5jLAogICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgICAtIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY29udmVyc2lvbgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjAwOjIwCiAgICAtIChhZ2VudC9zbm1wMnAuYyBhZ2VudC9zbm1wX2FnZW50LmMgYWdlbnQvc25tcF92YXJzLmgKICAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYyBhcHBzL3NubXBkZWx0YS5jCiAgICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgIHNubXBsaWIvc25tcF9hdXRoLmMgc25tcGxpYi9zbm1wX2ltcGwuaCBzbm1wbGliL3ZhY20uaAogICAgc25tcGxpYi92aWV3LmgpICBmZ2V0cyB1c2Ugc2l6ZW9mIG1vc3RseSwgb2lkIGJhc2Ugc2l6ZSBpcyBNQVhfT0lEX0xFTgoKbXNsaWZjYWsgIDcgQXByIDk5IDEyOjE3OjIzCiAgICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAoKbXNsaWZjYWsgIDcgQXByIDk5IDE1OjAwOjM5CiAgICAtKHVzbVVzZXIuYyxzeXN0ZW0uYykgcGx1ZyBtZW0gbGVhazsgKHNubXBfYXBpLmMpIGVuZm9yY2UgYXJyYXkgbGltaXQuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTQ6MzEKICAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3lzL3RpbWUuaC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNTozOQogICAgLSAoaHJfdXRpbHMuaCk6IHJlbW92ZSB2YXJpYWJsZSBuYW1lcyBmcm9tIHByb3RvdHlwZXMgKHdhcyBjYXVzaW5nIHByb2JsZW1zKS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNjo0NQogICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MjU6MDkKICAgIC0gKHNubXBfYXBpLmMpOiBtYWtlIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gcG9zc2libGUgY3JlYXRlIGEKICAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToxOToyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYW5pZWwgSGFnZXJ0eToKICAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MjA6MDAKICAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjMyOjIzCiAgICAtIChwYXNzLmMpOiBQYXRjaCBmcm9tIEppbSBNYXI6CiAgICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozNjozMQogICAgLSAoU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LAogICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBtb2R1bGUgbG9jYXRpb25zIGZvciBicm9rZW4gbWlicy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NDo0OAogICAgLSAoZnJlZWJzZC5oLCBmcmVlYnNkMi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlYnNkIHV0bXAgY2xlYW51cHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTY6NTMKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1NzoyNAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGJldHRlciBjaGVja2luZyBvZiAuY29uZiBmaWxlIHBhcnNpbmcgbGluZSByZXF1aXJlbWVudHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MDIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCAtUC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODoyNwogICAgLSAoc25tcF9jb25maWcuNS5kZWYsIHNubXB0cmFwLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAwOjQ5CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgICAtIEFkZCBGUkFNRS1SRUxBWS1EVEUtTUlCIGFzIHJlcGxhY2VtZW50IGZvciBSRkMtMTMxNQoKaGFyZGFrZXIgMTMgQXByIDk5IDE2OjAzOjI5CiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHRyYXBkIG9wdGlvbiB0byBpZ25vcmUgYXV0aCB0cmFwcywgYWRkIC1TIG9wdGlvbiwgbG9nIHRlcm1pbmF0aW9uLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjI5OjU4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpIGluaXRfc25tcCB0YWtlcyBhcmd1bWVudDsgIiIgdXNlZC4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNTozMDozNAogICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCgpoYXJkYWtlciAxNCBBcHIgOTkgMTU6NTI6MzUKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjMxOjU1CiAgICAtIChzbm1wX2FnZW50LGMsIHNubXBfYXBpLltjaF0sIHNubXBfY2xpZW50LltjaF0pIGZpeCB2YXJpYWJsZV9saXN0IHdpdGggYnVpbHQtaW4gc3RvcmFnZQoKbXNsaWZjYWsgMTQgQXByIDk5IDE2OjU2OjM3CiAgICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6MzA6MjkKICAgIC0gKElQRldBQ0MtTUlCLnR4dCkgY2hhbmdlIG1vZHVsZSBuYW1lIGZyb20gSVBGV0FETS1NSUIgdG8gSVBGV0FDQy1NSUIuCgptc2xpZmNhayAxNiBBcHIgOTkgMDc6NTQ6MjIKICAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCkgaXBmd0NoYWluVGFibGUge2lwZncgMX0gZml4Cgptc2xpZmNhayAxNiBBcHIgOTkgMDg6MzM6MTYKICAgIC0gKG1pYi5jKSAiLW0iIG9yIE1JQlMgOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMDowNgogICAgLSAoUkVBRE1FKTogQWRkZWQgdjMgdGVhbSBtZW1iZXJzLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjExOjQ4CiAgICAtIChjb25maWd1cmUuaW4pOiBjaGFuZ2VkIGRlZmF1bHQgc3RvcmUgbG9jYXRpb24gdG8gL3Zhci91Y2Qtc25tcAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE1OjE0CiAgICAtIChzbm1wLmgpOiBTTk1QQURNSU5MRU5HVEggZGVmaW5pdGlvbi4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNjoxNgogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmVkIGZpeCBub3RlLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjA2CiAgICAtIChORVdTKTogdXBkYXRlZAoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjI3OjQxCiAgICAtIChzbm1wdHJhcGQuOCk6IG1hbiBwYXRjaCBmcm9tIE5pZWxzCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MzQ6NDkKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTMgKQoKbXNsaWZjYWsgMTggQXByIDk5IDA2OjU0OjI2CiAgICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0IDogOSAtPiAxMAoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjAxOjE1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICAgZmlsZSBub3cgY29udGFpbnMgdGhlIGNvZGUgaXRzZWxmLgogICAgICAtIG5lZWQgdG8gd3JpdGUgYSBmb3JlYWNoKG1pYm5vZGUpIHR5cGUgcGFyc2VyIG5leHQuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDk6MjcKICAgIC0gKG1pYmluY2wuaCk6IGFkZCByZWFkX2NvbmZpZy5oLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjEyOjE3CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGVkIGEgbW9yZSBjb252ZW5pZW50IHJlYWRfY29uZmlnX3JlYWRfZGF0YSgpIGZ1bmN0aW9uIHRvCiAgICAgICAgZ2VuZXJpY2FsbHkgcmVhZCBhIHRva2VuIGludG8gYSBnaXZlbiB2YXJpYWJsZS4KICAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgICAtIHVzZSBwcmV2aW91c2x5IG1hbGxvY2VkIHNwYWNlIGluIHNvbWUgcm91dGluZXMsIG9yIG1hbGxvYyBpdCBmb3IKICAgICAgICB0aGVtIGlmIHRoZSBzdG9yYWdlIGFyZWEgaXMgTlVMTC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxNDoyOAogICAgLSAoc25tcF9hcGkuYyk6IERvbid0IHNubXBfc2V0X3Zhcl9vYmppZCBpZiBuYW1lIGlzIE5VTEwgaW4KICAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDExOjI4OjE0CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDIwIEFwciA5OSAxNTozMTozNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIGNvbXBsZXRlbHkgcmUtaGFja2VkOgogICAgICAgIC0gZW50aXJlIGNvZGUgYmFzZSBpcyBub3cgcHV0IGludG8gdGhlIC5jb25mIGZpbGVzIHJhdGhlciB0aGFuIGluCiAgICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgICBnZW5lcmljYWxseSwgYW5kIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHR5cGVzIG9mIGNvZGUgdGVtcGxhdGVzCiAgICAgICAgICBiYXNlZCBvbiB0aGUgLmNvbmYgZmlsZSBpdCBpcyBnaXZlbi4gIEluIHRoZW9yeSwgaXQgc2hvdWxkIGJlCiAgICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgICBhbnkgdHlwZSBvZiBjb2RlIChub3QganVzdCBDKSBmb3Igc29tZXRoaW5nIGVsc2UgYmFzZWQgb24gbWliCiAgICAgICAgICBpbmZvcm1hdGlvbi4KICAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgIGFnYWluIGFuZCBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZCB3aXRob3V0IGJlaW5nLCB3ZWxsLCBtZS4gIFRoZQogICAgICAgICAgdXAgc2lkZSBpcyB0aGF0IEknbSBzdXJlIERhdmUgU2hpZWxkIHdpbGwgZ28gdGhyb3VnaCBhbmQgY2xlYW4KICAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgICByZWFkIHRoaXM/IChJZiBzbywgc2VlIG1lIGZpcnN0KS4KCmhhcmRha2VyIDIwIEFwciA5OSAxNjowNDoxNwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgICAtIHZhcmlhYmxlVHlwZXMgLT4gdmFyaWFibGVzCiAgICAgIC0gY25hbWUgLT4gTkFNRQoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjEwOjQ0CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCgpoYXJkYWtlciAyMCBBcHIgOTkgMjE6Mzg6NDIKICAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NDo0NAogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGNyZWF0ZWQgKnJlYWRfY29uZmlnX3N0b3JlX2RhdGEoKTsKCmhhcmRha2VyIDIyIEFwciA5OSAwNzo1NjowMwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgICBkaXJlY3RpdmVzIHdoZXJlIG5lZWRlZCBiZWNhdXNlIG9mIGl0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDEwOjUxOjMwCiAgICAtIChzbm1wX2NsaWVudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBrZXl0b29scy5jKTogQW5vdGhlciB2MyBicmFuY2ggdXBkYXRlLgoKbXNsaWZjYWsgMjYgQXByIDk5IDA5OjIxOjA2CiAgICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCgpuYmEgMjYgQXByIDk5IDExOjIxOjEwCiAgICAKICAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCgpuYmEgMjYgQXByIDk5IDExOjQ4OjU3CiAgICAKICAgIAogICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgICBpbnNwaXJlZCBieSBhIHJlZmVyZW5jZSB0byBzbm14IGluIGNvbXAucHJvdG9jb2xzLnNubXAKICAgIC0gYXBwcy9zbm1wdHJhbnNsYXRlOiBsZXQgdGhlIC1wIG9wdGlvbiBjYWxsIHRoaXMgbmV3IHByaW50ZXIKICAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCgpuYmEgMjYgQXByIDk5IDEyOjAzOjQ3CiAgICAKICAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgIAlzdHJpbmdzCgpuYmEgMjYgQXByIDk5IDEyOjA5OjM1CiAgICAKICAgIAogICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICAgYXBwcy9zbm1wdHJhcGQuYzogZml4IGEgYnVzIGVycm9yIHdoZW4gdXNpbmcgLVMgYW5kIHJlY2VpdmluZyBhbgogICAgCWVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcC4KCm5iYSAyNiBBcHIgOTkgMTI6MTM6NTAKICAgIAogICAgKi8qOiByZXBsYWNlIGhvcnJpYmxlIChjaGFyICopInN0cmluZyIgd2l0aCBjb25zdCBzcGVjaWZpZXJzIGluIHJlbGV2YW50CiAgICAJZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjYgQXByIDk5IDEyOjM3OjA5CiAgICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKCm1zbGlmY2FrIDI3IEFwciA5OSAwOTo1MTozNQogICAgLSAoaW50ZXJmYWNlcy5jKSBhZGQgaWZfdHlwZV9mcm9tX25hbWUgdG8gY29udmVydCBpbnRlcmZhY2UgbmFtZSB0byB0eXBlLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjMyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaCk6IGNhbGxiYWNrIEFQSS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozOTo0NQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KCmhhcmRha2VyICAzIE1heSA5OSAwNzowNzoxNQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgdXNtVXNlci5jLCB1c21Vc2VyLmgsIHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgICBzY2FwaS5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIHNodXRkb3duIGFuZCBzdG9yZSBjYWxsYmFjayB1c2FnZS4KCmhhcmRha2VyICAzIE1heSA5OSAwNzoxMzozMQogICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDEyOjU4OjE5CiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgTWFrZWZpbGUuaW4sIGhlYWRlcl9jb21wbGV4LmMsCiAgICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgYWxsX2dlbmVyYWxfbG9jYWwuaCwgYWxsX3N5c3RlbS5oLCBrZXl0b29scy5jLCBsY2RfdGltZS5jLCBzY2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcHVzbS5jLCB0b29scy5jLCB0b29scy5oLCBNYWtlZmlsZS5pbiwgVC5jLAogICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgIC0gbnVrZWQgYWxsX2dlbmVyYWxfbG9jYWwuaCBhbmQgYWxsX3N5c3RlbS5oLgogICAgICAtIG1ha2VmaWxlaW5kZXBlbmQgYXMgd2VsbC4KCm5iYSAgMyBNYXkgOTkgMTU6NDA6MTEKICAgICgqLltjaF0pOglwYXRjaGVzIHRvIHR5cGVzIHRvIHdpcGUgd2FybmluZ3MgZnJvbSBjb21waWxlcnMKICAgIAl3aXRoIG1vcmUgc3RyaWN0IG5vaXNlIGxldmVscy4gKGFsc28gZ29vZCB3aGVuIGNvbXBpbGluZwogICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCgpuYmEgIDQgTWF5IDk5IDAwOjQ3OjQ0CiAgICAobWliLmMpOglGaXggcHJvYmxlbSAoY29yZSBkdW1wKSB3aXRoIE1JQkZJTEVTIGVudmlyb25tZW50IHZhcmlhYmxlLgoKbmJhICA0IE1heSA5OSAwMDo1MToxNgogICAgKG1hbnkpOglyZW1vdmUgY29uc3Qgc3BlYyBmcm9tIEZpbmRWYXJNZXRob2QuIFRoYXQgd2FzIHdyb25nCgpoYXJkYWtlciAgNCBNYXkgOTkgMTE6MDg6NTUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCgptc2xpZmNhayAgNiBNYXkgOTkgMDk6MjA6MzAKICAgIC0gKHVjZC1zbm1wL3Ztc3RhdC5jKSAtIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW1pdHMuaCBwZXIgRWR1YXJkIEtvdWNreS4KCm5iYSAxMCBNYXkgOTkgMTQ6NDc6MjIKICAgIEZpeGluZyBzb21lIG1vcmUgcHJvdG90eXBlcy4gUG9pbnRlZCBvdXQgYnkgTWFya2t1IExhdWtrYW5lbi4KCm5iYSAxMCBNYXkgOTkgMTQ6NDk6NDkKICAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgICAJaW5zaWRlIFYxIHNlc3Npb24uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDI6NDgKICAgIC0gKHV0aWxfZnVuY3MuYyk6IHJlYWQgcmV0dXJucyBzc2l6ZV90IG5vdCBzaXplX3QuCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MDM6MjUKICAgIC0gKG1lbW9yeS5oKTogcmVtb3ZlIGV4dGVybi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDoxMTo0MAogICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgoKbXNsaWZjYWsgMTIgTWF5IDk5IDEwOjUzOjIzCiAgICAtIChzbm1wX2FwaS5jIHNubXBfY2xpZW50LmMpIGNhbGwgc25tcF9zeW5jaF9yZXNldCBmcm9tIHNubXBfc2Vzc19jbG9zZQoKbXNsaWZjYWsgMTIgTWF5IDk5IDExOjIyOjE2CiAgICAtKHBhcnNlLmMgcGFydHlfcGFyc2UuYyByZWFkX2NvbmZpZy5jKSBubyBleGl0KCkgZnJvbSBsaWJyYXJ5OyByZXR1cm4gZXJyb3IKCmRhdmVzIDEzIE1heSA5OSAwMzo1MjoxOQogICAgLSAoaXAuYyk6IFByb3Blcmx5IHJlZ2lzdGVyIElQIG1vZHVsZSBncm91cCBvbiBGcmVlLUJTRCBzeXN0ZW1zCiAgICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDk6MTgKICAgIC0gKHZhY21fdmFycy5jKTogU2V0IHBvaW50ZXJzIHRvIE5VTEwgYWZ0ZXIgZnJlZWluZyB0aGVtLgoKbXNsaWZjYWsgMTQgTWF5IDk5IDA2OjU0OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYwogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgc25tcGxpYi9zbm1wX2F1dGguYykgbW9yZSBzaXplX3QgZml4ZXMKCm1zbGlmY2FrIDE0IE1heSA5OSAwOTo0NzoxMAogICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgICBzbm1wbGliL3BhcnNlLmMpIG1vcmUgQU5TSS1DIHRvdWNodXBzCgptc2xpZmNhayAxNCBNYXkgOTkgMTM6NTk6MzcKICAgIC0oYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIHNubXBsaWIvc25tcHVzbS5jKSBmaXhlcyB0byBidWlsZCBIUCAmIEFJWAoKZGF2ZXMgMTcgTWF5IDk5IDAzOjIwOjUzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKCmRhdmVzIDE3IE1heSA5OSAwNDozNDo1NQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3NlcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNDozODowMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYyBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgdGhlIGdlbmVyaWMgc29ja2V0IGFkZHJlc3MgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDc6MTg6MDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgICAob2Jzb2xldGluZyAnYWdlbnRfYWRkcicpCgpkYXZlcyAxOCBNYXkgOTkgMDY6MjY6MTYKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IE1vcmUgZ2VuZXJhbCBoYW5kbGluZyBvZiBQRFUgZmxhZ3MKCm1zbGlmY2FrIDE4IE1heSA5OSAwOTowMTo0NgogICAgLSAoeHgvTWFrZWZpbGUuaW4pIHJlbW92ZSByZWZlcmVuY2VzIHRvIGFzIHlldCBtaXNzaW5nIGRpc21hbiBmaWxlcy4KCmRhdmVzIDE4IE1heSA5OSAwOToyMzo1MAogICAgLSAoY29uZmlndXJlLmluIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXBidWxrd2Fsay5jIGFwcHMvc25tcGRlbHRhLmMKICAgICAgIGFwcHMvc25tcGdldC5jIGFwcHMvc25tcGdldG5leHQuYyBhcHBzL3NubXBzZXQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB1c20uYyBhcHBzL3NubXB3YWxrLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyk6CiAgICAgICAtICBDbGVhbiB1cCBjb25kaXRpb25hbHMgcHJvdGVjdGluZyBpbmNsdWRlIGZpbGVzCiAgICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQoKZGF2ZXMgMTkgTWF5IDk5IDAyOjMzOjA3CiAgICAtIChjb25maWcuaC5pbik6IEFkZGl0aW9uYWwgaW5jbHVkZSBwcm90ZWN0aW9uIGVudHJpZXMKCmRhdmVzIDE5IE1heSA5OSAwNToxMTozNwogICAgLSAoc25tcF9hcGkuYyk6IE1vcmUgZ2VuZXJhbGlzZWQgaGFuZGxpbmcgb2Ygc29ja2V0IGFkZHJlc3NlcwoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAyOjU1CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo1MDoxMgogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKZGF2ZXMgMjAgTWF5IDk5IDAzOjQ2OjI0CiAgICAtIChzbm1wX2FwaS5oKTogVGVtcG9yYXJ5IGZpeCB0byBzb2NrZXQgYWRkcmVzcyBwcm9ibGVtcwoKbXNsaWZjYWsgMjEgTWF5IDk5IDA1OjI0OjIzCiAgICAtKHJlYWRfY29uZmlnLmMpIGNhc3QgZml4IHBlciBNYXJra3UgTGF1a2thbmVuCgpkYXZlcyAyMSBNYXkgOTkgMDU6NTQ6MjIKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6CiAgICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgIChhbHNvIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93bikKCmhhcmRha2VyIDIxIE1heSA5OSAxMToxMDo0NAogICAgLSAobWliMmMuY29uZiwgbWliMmMuc3RvcmFnZS5jb25mKToKICAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAgLSBtaXNjIGV2YWwgZml4ZXMuCiAgICAgIC0gbW9yZSBjbGVhbnVwIG9mIHRoZSBzdG9yYWdlIGRlZi4KCm1zbGlmY2FrIDIxIE1heSA5OSAxNToyOTo0NgogICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCgptc2xpZmNhayAyNCBNYXkgOTkgMDU6MzY6MTMKICAgIC1jb25maWd1cmUgLSBzYXZlIG9uZSB3aGljaCBsb29rcyBmb3IgbmV0ZGIvc29ja2V0IGhlYWRlcnMKCmhhcmRha2VyIDI2IE1heSA5OSAxMToxOTowMwogICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTQ6NTUKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTg6MDQKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToyMDozMgogICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjU2OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzo0MDoyOAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgptc2xpZmNhayAyNyBNYXkgOTkgMDU6MTY6MjUKICAgIC0oZW5jb2RlX2tleWNoYW5nZSwgcmVhZF9jb25maWcsIHNubXB1c20pIGFDQyBmaXhlcyBieSBQS1kgKE1hcmtrdSBMYXVra2FuZW4pCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MDMKICAgIC0gKHNubXB0cmFwZF9oYW5kbGVycy5jKTogaW1wbGVtZW50IHRoZSBkZWZhdWx0IHRyYXAgaGFuZGxlci4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDoxNQogICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MDYKICAgIC0gKHNubXB0cmFwZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZC4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzozMgogICAgLSAoc25tcHRyYXBkLmMpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkIGluIGhlbHAgbGluZS4KCmRhdmVzIDI4IE1heSA5OSAwNzowMjowMQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4gYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggcHJvYmxlbSB3aXRoIG51bGwgbWFjcm8KCmRhdmVzIDI4IE1heSA5OSAwODoxNDowNQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQoKZGF2ZXMgMjggTWF5IDk5IDA4OjU3OjE5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBVbml4IGRvbWFpbiAoZGF0YWdyYW0pIHNvY2tldCBzdXBwb3J0CgpkYXZlcyAyOCBNYXkgOTkgMDk6MTI6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFNlcGFyYXRlIG91dCBjb3B5aW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIG5ldyBvbmUKCm1zbGlmY2FrIDI4IE1heSA5OSAwOToyNDo1NgogICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjE3OjEzCiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgoKaGFyZGFrZXIgMjggTWF5IDk5IDE2OjQ0OjQyCiAgICAtIChNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgpOgogICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICAgdGhlIG51bWJlciBvZiBmdW5jdGlvbnMvZXRjIGNyZWF0ZWQgZm9yIHZhbHVlcyB3aGljaCBjb25maWd1cmUgdGhlCiAgICAgICAgbGlicmFyeS4KCmRhdmVzICAxIEp1biA5OSAwMjoxNzoyNwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCgpkYXZlcyAgMSBKdW4gOTkgMDI6MzI6MTMKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdlbmVyYWxpc2UgaGFuZGxpbmcgb2YgYWRkcmVzc2VzICh3LnIudCBzZW50by9yZWN2ZnJvbSkKCmRhdmVzICAxIEp1biA5OSAwNzozMDo0MgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCk6IFN1cHBvcnQgZm9yIHN0cmVhbS1iYXNlZCBzb2NrZXRzCgpoYXJkYWtlciAgMSBKdW4gOTkgMTc6MjE6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgIC0gaW1wbGVtZW50ZWQgYSBnZW5lcmljIGFsYXJtIGhhbmRsZXIgdG8gcmVnaXN0ZXIgYWxhcm0gZnVuY3Rpb25zIHRvCiAgICAgICAgYmUgY2FsbGVkIGJhY2sgYWZ0ZXIgWCBwZXJpb2Qgb2YgdGltZSBhbmQgaXQgaGFuZGxlcyBmaWd1cmluZyBvdXQKICAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6NTE6MTMKICAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYyxmcmVlYnNkMy5oKSBmaXggRnJlZUJTRDMuMSBpbmNsIEtlbiBLZXkncyB0Y3AvdWRwIHBhdGNoZXMKCm1zbGlmY2FrICA3IEp1biA5OSAwNzo0NDowNgogICAgLShpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgaXAuYykgY2xvbmUgZml4ZXMgZnJvbSAzLjYgbGluZSAoRnJlZUJTRDMuMSkKCm1zbGlmY2FrICA3IEp1biA5OSAxMzowNDoyMQogICAgLShpZi5jKSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCgptc2xpZmNhayAxMSBNYXkgOTkgMTQ6Mzk6NTgKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgYWdlbnQvc25tcF92YXJzLmMgYWdlbnQvc25tcGQuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCBhcHBzL3NubXB0cmFuc2xhdGUuYwogICAgICAgYXBwcy9zbm1wdHJhcGQuYyBsb2NhbC9taWIyYyBsb2NhbC90a21pYiBtYW4vc25tcF9jb25maWcuNS5kZWYKICAgICAgIG1hbi9zbm1wZC4xLmRlZiBtYW4vc25tcHRyYXAuMSBtYW4vc25tcHRyYXBkLjgKICAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQKICAgICAgIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0IG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dAogICAgICAgbWlicy9TTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQgcy9mcmVlYnNkLmggcy9mcmVlYnNkMi5oCiAgICAgICBzbm1wbGliL21pYi5jIHNubXBsaWIvcGFyc2UuYyBzbm1wbGliL3BhcnNlLmgKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3ZhY20uYykgLSBjaGFuZ2VzIGMvbyBOaWVscyBCYWdnZXNlbgoKbXNsaWZjYWsgMTEgTWF5IDk5IDE4OjU4OjM3CiAgICAtKGN5Z3dpbi5oKSAtIHVzZSB0byBidWlsZCBvbiBDeWdXaW4gcGxhdGZvcm0uCgptc2xpZmNhayAxMSBNYXkgOTkgMTk6NTQ6MDQKICAgIC0oYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF92YXJzLmggYWdlbnQvdmlld19wYXJzZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaAogICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5oIHNubXBsaWIvYWNsX3BhcnNlLmMKICAgICAgIHNubXBsaWIvY29udGV4dC5oIHNubXBsaWIvY29udGV4dF9wYXJzZS5jIHNubXBsaWIvcGFydHkuaAogICAgICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMpCiAgICAgIFBvcnQgc29tZSBvZiB0aGUgZml4ZXMgZnJvbSB0aGUgY3VycmVudCBkZXZlbG9wbWVudCBicmFuY2gKCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo0NTowNQogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyODowNwogICAgLShtaWIuYyBwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6Mzg6MDMKICAgIAogICAgKG1pYi5jKTogRml4ZWQgbWlub3IgdHlwbwoKZGF2ZXMgMTMgTWF5IDk5IDAzOjU1OjA2CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowNzoxMwogICAgLSAodm1zdGF0LmMpOiBpbmNsdWRlIGxpbWl0cy5oLgoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA3OjM5CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCmhhcmRha2VyIDEzIE1heSA5OSAxNTo0Mjo0OAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMiApCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6MTAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjAxOjQ4CiAgICAtKG1pYklJL3Zhcl9yb3V0ZS5jKSAtIGZpeCBMaW51eCBSb3V0ZU1hc2sgYy9vICJOYW5jeSIgbmFtQGNzLmNtdS5lZHUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODo0OToyNQogICAgLSAoaG9zdF9yZXMuaCkgZml4IEhBVkVfTkVUX0lGX1ZBUl9IIGRlZmluZSAod2FzIEhBVkVfTkVUX0lOX1ZBUl9IKQoKaGFyZGFrZXIgMjUgTWF5IDk5IDIwOjIwOjMxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4yLnByZTEgKQoKbmJhIDI2IE1heSA5OSAwNzo1Nzo0MgogICAgCiAgICAgIFRhZzogVjMtbGluZQogICAgCiAgICBpZi5jOiBkeW5hbWljIHdpZHRoIGZvciAtaSBhbmQgLW8gb3B0aW9uCgptc2xpZmNhayAyNiBNYXkgOTkgMDg6MDA6MDcKICAgIC0gZml4LXVwcyB0byBidWlsZCBXaW4zMiBNU1Zpc3VhbEMrKwoKbmJhIDI2IE1heSA5OSAwODoyNDozNQogICAgCiAgICAKICAgIFNvbWUgZml4ZXMgZm9yIFNvbGFyaXMgMi43IChwcm9jIGFjY2VzcyBzdGlsbCBkb2VzIG5vdCB3b3JrIHdoZW4gY29tcGlsZWQKICAgIHdpdGggZ2NjICgzMi1iaXQgY29tcGlsZXIpCgpuYmEgMjYgTWF5IDk5IDA4OjI5OjI2CiAgICAKICAgIEZpeGVzIGZvciBGcmVlQlNEIDIuMSBmcm9tIERlcmVrIEouIEJhbGxpbmcgPGRiYWxsaW5nQHlhaG9vLWluYy5jb20+CgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDc6MTYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA3OjQyCiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc3dpbnN0YWxsIGJlICJ1bmtub3duIiBzaW5jZSB3ZSBjYW4ndCB0cnVseSBrbm93LgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA4OjA5CiAgICAtIChpcGZ3YWNjLmgpOiBtb3ZlIHRvIGNvcnJlY3QgbG9jYXRpb24uCgpoYXJkYWtlciAyNiBNYXkgOTkgMTY6MDg6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1ha2UgY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6MzE6MjUKICAgIC0gKHByb2MuYyk6IHVsdHJpeCBmaXhlcy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNzozODo1NgogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCgpuYmEgMjcgTWF5IDk5IDAyOjU2OjI1CiAgICAKICAgIAogICAgaG9zdC9ocl9zd3J1bi5jLCB1Y2Qtc25tcC9wcm9jLmM6IEZpeGVzIGZvciBTb2xhcmlzIDIuNwoKbmJhIDI3IE1heSA5OSAwMjo1OToxNgogICAgCiAgICBzbm1wZC5jOglQcm9wZXJseSBoYW5kbGUgdGhlIGNhc2Ugb2Ygbm8gY29tbXVuaXR5IHNwZWNpZmllZAogICAgCWZvciBhZ2VudCB0cmFwcy4KCm5iYSAyNyBNYXkgOTkgMjM6NTU6MDkKICAgIAogICAgc29sYXJpczIuPy5oOglkZWZpbmUgX1NMQVNIX1BST0NfTUVUSE9EXyBhcyAxCgpuYmEgMjcgTWF5IDk5IDIzOjU1OjQ5CiAgICAKICAgIHJlYWRfY29uZmlnLmM6CWNvbXBsYWluIGFib3V0IGV4aXN0aW5nIGJ1dCB1bnJlYWRhYmxlIGNvbmZpZyBmaWxlcy4KCm5iYSAyNyBNYXkgOTkgMjM6NTk6MzcKICAgIAogICAgaW5ldC5jOgkwIElTIGEgdmFsaWQgc2hvcnQgKGFuZCBwb3J0IGFkZHJlc3MgZm9yIHJlbW90ZSBlbmRzIG9mIHBvcnRzCiAgICAJaW4gTElTVEVOIHN0YXRlKQoKbmJhIDI4IE1heSA5OSAwMzoyNToyOQogICAgCiAgICBjaGFuZ2UgdGhlIHRyYXBzaW5rL3RyYXAyc2luayBkaXJlY3RpdmVzIHRvIHN1cHBvcnQgYSBjb21tdW5pdHkgcGFyYW1ldGVyLgoKbmJhIDI5IE1heSA5OSAwMjo0OTo0NwogICAgCiAgICAtIHNtdXguYzogZml4IGEgbWlzc2luZyBudG9ocyBpbiBhIGRlYnVnIG1lc3NhZ2UKCm5iYSAgMSBKdW4gOTkgMDA6Mjc6MzYKICAgIAogICAgLSBwcm9jLmM6IFlBUEJPIChZZXQgYW5vdGhlciBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cpCgpuYmEgIDEgSnVuIDk5IDAwOjI5OjM1CiAgICAKICAgIC0gc25tcF9hZ2VudC5jOiBjaGFuZ2Ugbm9DcmVhdGlvbiByZXR1cm4gdG8gbm9BY2Nlc3MuIFRoZXJlIGFyZSBwcm9iYWJseQogICAgCXNpdHVhdGlvbnMgd2hlcmUgdGhlIGZvcm1lciBpcyBjb3JyZWN0LCBidXQgdGhpcyBpcyBsZXNzIGNvbmZ1c2luZwoKbmJhICAxIEp1biA5OSAwMDozMzo1MgogICAgCiAgICAtIGtlcm5lbF9zdW5vczUuPywgaHJfc3dydW4uYywgYXQuYywgaW50ZXJmYWNlcy5jOiBmaXggYXQuYXRUYWJsZSBhbmQKICAgIAlpcC5pcE5ldFRvTWVkaWFUYWJsZSBmb3IgU29sYXJpcy4gQWxzbyBhIHR3ZWFrIGZvciBnZXRLc3RhdEludC4KCmhhcmRha2VyICAyIEp1biA5OSAwNzoyNzo0NgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMi5wcmUyICkKCm1zbGlmY2FrICAyIEp1biA5OSAxMzo0NjozNAogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLGZyZWVic2QzLmgpIGZpeCBidWlsZCBvbiBGcmVlQlNEIDMuMQoKbmJhICAzIEp1biA5OSAxNDozMToxOAogICAgCiAgICAtIGtlcm5lbC5jOglhZGQgc29tZSBzYW5pdHkgY2hlY2tzIHdoZW4gcnVubmluZyB3aXRob3V0IHJvb3QgYWNjZXNzLgoKbmJhICAzIEp1biA5OSAxNDozNDo1MAogICAgCiAgICAtIGhyX3N3cnVuLmM6CWFkZCBhIGJsYW5rIGJldHdlZW4gcHJvY2VzcyBwYXJhbWV0ZXJzCgpuYmEgIDMgSnVuIDk5IDE0OjM4OjE4CiAgICAKICAgIC0gbmV0YnNkLmgsIHRjcC5jLCB1ZHAuYzoJZml4IHNvY2tldCB0YWJsZXMgZm9yIE5ldEJTRCAxLjMvMS40CgpuYmEgIDMgSnVuIDk5IDE1OjEyOjAxCiAgICAKICAgIC0gc25tcHRyYXAuYzogZml4IGEgYmFkIGZyZWUgd2hlbiBjYWxsaW5nIHNubXBpbmZvcm0uCgpuYmEgIDMgSnVuIDk5IDE1OjIxOjA5CiAgICAtIHRjcC5jOiBsb3N0IGEgJzsnIGZvciB0aGUgRnJlZUJTRCBjYXNlIC4uLi4KCmRhdmVzICA0IEp1biA5OSAwNDo1MTowNAogICAgLSAoYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyk6IEZpeCBSUE0gaGFuZGxpbmcKCmRhdmVzICA0IEp1biA5OSAwNTowNjo0NAogICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IEFkZGl0aW9uYWwgbGlicmFyeSBmb3IgUlBNIGhhbmRsaW5nCgptc2xpZmNhayAgNCBKdW4gOTkgMDk6MzA6MTIKICAgIC0odGNwLmMsIHVkcC5jKSBhcHBseSBLZW4gS2V5J3MgZml4IGZvciBGcmVlQlNEMy4xCgpuYmEgIDQgSnVuIDk5IDExOjUyOjM4CiAgICAtIGlwLmM6IEZpeCBmb3IgRnJlZUJTRCAzIGZyb20gS2VuIEtleQoKbmJhICA0IEp1biA5OSAxMTo1MzozMgogICAgLSBrZXJuZWxfc3Vub3M1LmMsIGFzbjEuYzogRml4ZXMgZm9yIDY0LWJpdCBTb2xhcmlzIDcKCm5iYSAgNSBKdW4gOTkgMDU6NDc6MjAKICAgIC0gaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jOiBjbGVhbnVwIG9mIGNvbmRpdGlvbmFscyBmb3IgRnJlZUJTRAoKbmJhICA1IEp1biA5OSAwNjowMjo1MgogICAgLSBjb25maWd1cmUuaW46IHByb3BlciBjb25maWd1cmUgY2hlY2sgZm9yIHN5cy9zb2NrZXR2YXIuaAoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ1OjEwCiAgICAtKGlwLmMsIHZhcl9yb3V0ZS5jKSBmaXggc2l6ZW9mLCBDUFAgI2VuZGlmCgpoYXJkYWtlciAgNyBKdW4gOTkgMTA6NTI6MzIKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDaHJpcyBTbWl0aDoKICAgICAgLSBkb24ndCBwdXQgQ0ZMQUdTIGluIHRoZSBsaW5rIGxpbmUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTA6NTQ6MjEKICAgIC0gKFJFQURNRS53aW4zMik6IGFkZGVkIHRvIHRoZSAzLjYuMiBsaW5lLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjI1OjI3CiAgICAtIChGQVEsIFJFQURNRSk6IHVwZGF0ZSBmb3IgMy42LjIuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6Mjc6MTUKICAgIC0gKE5FV1MpOiAzLjYuMiB1cGRhdGUuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTE6MzA6NDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUgZm9yIDMuNi4yLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjMyOjU0CiAgICAtIChJTlNUQUxMKTogdXBkYXRlIGZvciAzLjYuMi4KCm1zbGlmY2FrICA3IEp1biA5OSAxMzowMjoxMAogICAgLShpZi5jKSAtIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCmhhcmRha2VyICA3IEp1biA5OSAxNTo0NjoyNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGliZGIxIGJlZm9yZSBsaWJkYiBmb3IgcnBtIHVzYWdlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDE1OjUwOjAxCiAgICAtIChGQVEpOiBtZXJnZQoKaGFyZGFrZXIgIDcgSnVuIDk5IDE2OjAzOjI1CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciAtbGRiMSB0aGVuIC1sZGIgZm9yIHJwbSB1c2FnZS4KCmhhcmRha2VyICA3IEp1biA5OSAxNjo0Mzo1MAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHJwbUdldFBhdGggdG8gaGVscAogICAgICBkZXRlcm1pbmUgd2hpY2ggdmVyc2lvbiBvZiBSUE0gd2UncmUgdXNpbmcgKDMgb3IgMikuCgpwamwgIDcgSnVuIDk5IDE3OjMwOjMzCiAgICBBZGRlZCBSUE0gdjMgc3VwcG9ydAoKbXNsaWZjYWsgIDggSnVuIDk5IDAzOjQwOjM2CiAgICAtKG1pYklJLyosc25tcGxpYi8qKSBNYXJra3UgTC4ncyBmaXhlcyB0byBjb21waWxlIG9uIEhQLVVYIHdpdGggYUNDCgptc2xpZmNhayAgOCBKdW4gOTkgMDM6NTQ6NTAKICAgIHNwZWxsIGNoZWNrIENPTU1VTklUWQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNiAtPiBWMy42LjEKCQptc2xpZmNhayAgOCBNYXIgOTkgMDQ6MDI6MDEKICAgIChwYXJzZS5jKSAtIGZpeCBzdWJpZCBpbml0OyByZW1vdmUgdXNlbGVzcyAnLVBsJyBvcHRpb24uCgptc2xpZmNhayAgOCBNYXIgOTkgMDQ6MTQ6NDEKICAgIC0gKHNubXBfYXBpLmMpIHVzZSByZXF1ZXN0IGRhdGEgd2l0aCByZXF1ZXN0IGNhbGxiYWNrCgptc2xpZmNhayAgOCBNYXIgOTkgMDU6MDE6NDkKICAgIC0od2luMzIvY29uZmlnLmgpIHJlbW92ZSB1bnVzZWQgU1lTX1RJTUVfTkFNRSxHTE9CQUxTRUNVUklUWS4gYWRkIG5ldyBjb25zdGFudHMuCgptc2xpZmNhayAgOCBNYXIgOTkgMDU6MDc6MTMKICAgIC0gKEFHRU5UKSBNQVhfTkFNRV9MRU4gLS0+IE1BWF9PSURfTEVOIGluIGV4YW1wbGUKCm1zbGlmY2FrICA4IE1hciA5OSAwOTo1ODoxNwogICAgLSAoc25tcGxpYi9wYXJzZS5jKSBDb21wbGV0ZSBEYXZlIFNoaWVsZHMnIHBhdGNoIGZvciBjb250aW51ZSBhZnRlciBlcnJvci4KCm1zbGlmY2FrICA4IE1hciA5OSAxNDoyODoyMAogICAgLSAoc25tcG5ldHN0YXQ6aWYuYywgcm91dGUuYykgbGltaXQgaW50ZXJmYWNlIG5hbWUgc2l6ZXMgdG8gZml0IGZpeGVkIGxlbmd0aCBidWZmZXJzLgoKaGFyZGFrZXIgMTAgTWFyIDk5IDE1OjA3OjMxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogZ3JvdXAgbGluZXMgd2VyZSBiYWNrd2FyZHMuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTU6NDg6MjIKICAgIC0gKFJFQURNRSk6IEFkZGVkIE1pa2UgQmFlci4KCmhhcmRha2VyIDExIE1hciA5OSAxNTo0ODo1MgogICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiBjaGFuZ2VkIHNvbWUgY29tbWVudHMgdG8gLyogKi8gaW5zdGVhZCBvZiAvLy4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoxMDozMQogICAgLSAoQUdFTlQpOiByZW1vdmVkIEFHRU5UCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MTA6NDcKICAgIC0gKG1pYjJjKTogZml4ZWQgYSBjb3VwbGUgb2YgYnVncyBhbmQgYW5zaSdpZmllZCB0aGluZ3MuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MjI6NDMKICAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKTogbW92ZSBNQVRDSF9TVUNDRUVERUQgZGVmcyB0byAuaC4KCmhhcmRha2VyIDExIE1hciA5OSAxNjoyMzo0NAogICAgLSAoc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oKTogUGF0Y2ggZnJvbSBFcmlrIEphY29ic2VuOgogICAgICAtIGZpeGVkIHByb3RvdHlwZXMgZm9yIERFQlVHUCgpIGFuZCBERUJVR1BPSUQoKS4KCm1zbGlmY2FrIDEyIE1hciA5OSAwNzowODo0MAogICAgLSAoZGxtb2RfbWliLmMpIDogVXNlIE1BVENIX0ZBSUwvU1VDQ0VFREVEIGluIHV0aWxfZnVuY3MuaAoKaGFyZGFrZXIgMTIgTWFyIDk5IDA5OjE1OjE0CiAgICAtIChtaWJpbmNsLmgsIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgICBzbm1wX21pYi5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLCBkbG1vZC5jLAogICAgICByZWdpc3RyeS5jKTogZml4ZWQgTUFUQ0hfRkFJTEVEL1NVQ0NFRURFRCBkZWZpbmVzIC0+IHV0aWxfZnVuY3MuaC4KCm1zbGlmY2FrIDEyIE1hciA5OSAxMTozMToxNgogICAgLSAoZGxtb2RfbWliLmMpIDogZXhwbGljaXQgdGVzdCBmb3IgTUFUQ0hfRkFJTEVECgpoYXJkYWtlciAxMiBNYXIgOTkgMTI6MjA6MTIKICAgIC0gKG1pYjJjKTogZml4IGFzbl9wYXJzZSBmdW5jdGlvbnMgdG8gcGFzcyBhIHBvaW50ZXIgdG8gdGhlIHNpemUgdmFyaWFibGUuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MTc6MDgKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgpoYXJkYWtlciAxMiBNYXIgOTkgMTQ6MTc6NDQKICAgIC0gKHNtdXguYyk6IHByb3RlY3Qgc3RyY3B5KCkgYWdhaW5zdCBhIG51bGwgcGFzc3dvcmQgc3BlY2lmaWVkIG9uIHRoZQogICAgICBjb25maWcgbGluZS4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDozNDoxMgogICAgLSAoaHJfc3lzdGVtLmgpIC0gZG9uJ3QgcmVxdWlyZSBocl91dGlsOyBkb25lIGluIG1pYmdyb3VwL2hvc3QuaAogICAgLSAoaHJfc3dydW4uYykgLSBzb2xhcmlzMiA6IG1ha2Ugc3VyZSBrdm1fb3BlbiBpcyBjYWxsZWQgYmVmb3JlIGtkIGlzIHVzZWQuCiAgICAtIChocl9zd3J1bi5jKSAtIGFkZCBsYW1lIHN1bm9zNCBlcXVpdmFsZW50IGluIEhSU1dSVU5QRVJGX0NQVS4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDozNTozOAogICAgLSAodGFyZ2V0LmgsIHRhcmdldC8qLmgpIHJlcXVpcmUgdXRpbF9mdW5jcyBvbmNlLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE0OjM2OjM5CiAgICAtICh1dGlsX2Z1bmNzLmgpOiBNQVRDSF9GQUlMRUQgLT4gLTEsIHNpbmNlIHNvbWUgdXNlIGl0LgoKbXNsaWZjYWsgMTIgTWFyIDk5IDE0OjU0OjUxCiAgICAtIHJlc3RvcmUgY29uZmlnX3JlcXVpcmUgbG9naWM7IGZpeCBzcHJpbnRmIGNhbGxzIHRvIGNvbXBpbGUgdW5kZXIgU3VuT1MgNC4xLnguCgpoYXJkYWtlciAxMiBNYXIgOTkgMTU6MjM6MTgKICAgIC0gKElOU1RBTEwpOiBkb24ndCBwcmludCBtb2R1bGUgbGlzdCBoZXJlLi4uICB0ZWxsIHRoZW0gdG8gbG9vayBhdAogICAgICBjb25maWd1cmUgLS1oZWxwLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE1OjI0OjM3CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUsCiAgICAgIGlwZndjX2tlcm5lbF9oZWFkZXJzLmgsIGlwZndjaGFpbnMuYywgaXBmd2NoYWlucy5oLCBsaWJpcGZ3Yy5jLAogICAgICBsaWJpcGZ3Yy5oKTogUGF0Y2ggZnJvbSBEaWRpZXIgRGhhZW5lbnM6CiAgICAgIC0gbmV3IG1vZHVsZXM6IGlwZndjaGFpbnMuCgptc2xpZmNhayAxNSBNYXIgOTkgMDU6NTQ6MDcKICAgIC0gKE1ha2VmaWxlLmluIGxpYnNubXAuaCBtaWIuYyBzbm1wLmggc25tcF9hcGkuYykgdXBkYXRlIENNVV9DT01QQVRJQkxFCgpoYXJkYWtlciAxNSBNYXIgOTkgMDg6NDk6MTAKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jKToKICAgICAgLSByZXZlcnQgdG8gc25tcF9wYXJzZS4KICAgICAgLSBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4KCm1zbGlmY2FrIDE1IE1hciA5OSAwOTo0MjozNAogICAgLSBzZWNvbmQgcGFzcyBhdCBDTVVfQ09NUEFUIDogRGlzYWJsZSBieSBkZWZhdWx0LCBsZWF2ZSBzbm1wX3BhcnNlIGFsb25lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE0OjMwOjQ1CiAgICAtIChzbm1wLmgpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudGVkIG91dCBkZWZpbmUuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTQ6MzE6MjMKICAgIC0gKGFjY29uZmlnLmgpOiBhZGRlZCBDTVVfQ09NUEFUSUJMRQoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjIxOjAyCiAgICAtIChocl9wcm9jLmMsIGhyX3Byb2MuaCwgbG9hZGF2ZS5jLCBsb2FkYXZlLmgpOiBmaXggdHJ5X2xvYWRhdmUgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6MzE6NTEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbnRlcmZhY2VzLmMsIGxpbnV4LmgpOiBkZXRlY3QKICAgICAgL3Byb2MvbmV0L2RldiB2ZXJzaW9uIGF0IHJ1biB0aW1lLCBub3QgY29tcGlsZSB0aW1lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjQ2OjEyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaXhlcyBmb3IgbGludXggMi4yIGludGVyZmFjZSBzY2FubmluZy4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTo1NTozNQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjU4OjA3CiAgICAtIChGQVEsIE5FV1MpOiB1cGRhdGVzIHRvIHRhbGsgYWJvdXQgdGhlIEFHRU5ULnR4dCBmaWxlLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMyAtPiBWMy42CgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MTQ6NDMKICAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LgoKaGFyZGFrZXIgMjIgSnVuIDk4IDA5OjE2OjMyCiAgICAtIChtYWluLmMpOiBQYXRjaCBmcm9tIEplcnJ5IEcuIERlTGFwcDoKICAgICAgLSBjb21tZW50ZWQgb3V0IHRyYWlsaW5nICNlbmRpZiBjb21tZW50LgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMwOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzE6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogY3JlYXRlIHNubXBfcGR1X2FkZF92YXJpYWJsZSgpLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjU2OjQ2CiAgICAtIChzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmVkIGhleF90b19iaW5hcnksIGFzY2lpX3RvX2JpbmFyeSwgYW5kIHNubXBfYWRkX3ZhciB0byBzbm1wbGliLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjA4OjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgICAtIG1pc2MgbWliIGZpeGVzLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjQwOjQwCiAgICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAgLSBjcmVhdGVkIChwb29ybHkpIHNlbmRfdHJhcF9wZHUoKSBmb3Igc2VuZGluZyB2MiB0cmFwcyBmcm9tIG1pYiBtb2R1bGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQyOjMyCiAgICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQ1OjE1CiAgICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTU6MDM6MzgKICAgIC0gKGdlbmVyaWMuaCk6IHB1dCBpbiBhIGNvbW1lbnQgdG8ga2VlcCBjb21waWxlcnMgZnJvbSBjb21wbGFpbmluZyB0b28gbXVjaC4KCmhhcmRha2VyIDI4IEp1biA5OCAwOTozMDozNAogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBzbm1wX2FkZF92YXIoKS4KCmhhcmRha2VyICAxIEp1bCA5OCAxMToyODoxNwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsCiAgICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgICAtIGJlZ2lubmluZ3Mgb2Ygc25tcHRyYXBkIGV4dGVuc2liaWxpdHkuCgpoYXJkYWtlciAgMSBKdWwgOTggMTU6NTY6MTIKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHN5c3RlbS5oKToKICAgICAgLSBhZGRlZCBERUJVR1BPSUQobmFtZSwgbmFtZWxlbik7CiAgICAgIC0gbW92ZWQgREVCVUdQIGRlZmluaXRpb24gaW50byBzbm1wX2FwaS5oIHdoZXJlIGl0IGJlbG9uZ3MuCgpoYXJkYWtlciAgMSBKdWwgOTggMTU6NTc6NTMKICAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6CiAgICAgIC0gZml4IGV4dGVuc2libGl0eSBjaGVja2luZyBvZiBvaWRzLgogICAgICAtIHNlcGVyYXRlIHJ1bm5pbmcgb2YgZXh0ZXJuYWwgY29tbWFuZCBpbnRvIG5ldyBmdW5jdGlvbi4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjoyNQogICAgLSAoZnJlZWJzZDIuaCk6IHVzZSBfVVRNUF9QQVRIIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjozNAogICAgLSAoaXJpeC5oKTogZGVmaW5lIF9LTUVNVVNFUgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI3OjEyCiAgICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgICBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjM0OjI2CiAgICAtIChzdHJ1Y3QuaCwgdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIHBhc3MtcGVyc2lzdC5jLAogICAgICBwYXNzLXBlcnNpc3QuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAgLSBjcmVhdGUgYSBwYXNzLXBlcnNpc3QgbW9kdWxlIHRvIGhhbmRsZSBjb250aW51b3VzbHkgcnVubmluZyBwYXNzIHRocm91Z2hzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU2OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogcmVtb3ZlZCBmcm9tIGFnZW50IGRpci4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1NzowNgogICAgLSAodWNkX3NubXAuaCk6IGFkZGVkIHBhc3MtcGVyc2lzdCBtb2R1bGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTg6MDMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgICAtIHJlbW92ZSBvZGQgdGltZW91dCBjYWxjdWxhdGlvbiBjb2RlIGZvciByZXRyaWVzID4gMy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMjowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDM6MzYKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowODoxOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDowNDoyMgogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLAogICAgICAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgZGxtb2RfbWliLmMsIGRsbW9kX21pYi5oLCBleGFtcGxlLmMsCiAgICAgIGV4YW1wbGUuaCwgZGxtb2QuYywgZGxtb2QuaCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBETE1PRC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEV1Z2VuZQogICAgICBQb2xvdm5pa292OgogICAgICAtIG5ldyBkbG1vZCBzZXQuCiAgICAgIC0gZml4IGNvbmZpZ3VyZSBzY3JpcHQuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6MjA6NDIKICAgICAtIChkbG1vZC5jKTogdXNlIHNubXBkXyByZWdpc3Rlcl9yZWFkX2NvbmZpZygpIHdyYXBwZXJzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQzOjU2CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MjUKICAgIC0gKHVjZF9zbm1wLmgpOiByZW1vdmVkIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdCBmcm9tIGRlZmF1bHQgaW5jbHVkZSBsaXN0LgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjM0CiAgICAtIChwYXNzLmMpOiBpbmNsdWRlIHN5cy93YWl0LmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDo0MQogICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NToyMgogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjQyCiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTozMTozNgogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTU6MzE6NTAKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNTo1MToyOAogICAgdmVyc2lvbiB0YWcgKCAzLjYucHJlMSApCgpoYXJkYWtlciAxMCBKdWwgOTggMDk6NDI6MTYKICAgIC0gKHNubXBkLmMpOiB3cm9uZyBwZHUgcG9pbnRlciBmb3Igc25tcHYyYyB0cmFwcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0NjoyOAogICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6NTUKICAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MTE6MTAKICAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgIC0gZml4ZWQgdGhlIFVDRC1TTk1QIG1pYiB0byBkZWFsIHdpdGggbW9zdCBzbWljIGVycm9ycy4KCmhhcmRha2VyIDIwIEp1bCA5OCAxNzoxNDoyMQogICAgLSAoc25tcGNoZWNrLmRlZik6IHdvcmsgYXJvdW5kIGZvciBuZXcgbXVsdGktZGVwdGggbWliIHRhYmxlcy4uCgpoYXJkYWtlciAyMiBKdWwgOTggMTU6MzU6MDcKICAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE2OjIzOjQ1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMjoyNwogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQzOjMwCiAgICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ0OjM4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHBlcnNpc3RlbnQgY29uZmlnIGZpbGUgcXVlc3Rpb24uCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDQ6NTMKICAgIC0gKE1ha2VmaWxlLmluKTogdHlwby4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NzoxNQogICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBwcmUvcG9zdCBtaWIgbG9hZGluZyBjb25maWcgZmlsZXMuCiAgICAgIC0gY3JlYXRlIGluaXRfc25tcCgpIHRvIHdyYXAgb3RoZXIgZnVjdGlvbnMuCiAgICAgIC0gbmV3IHNubXAuY29uZiBkaXJlY3RpdmVzOiBtaWJzLCBtaWJkaXJzLCBtaWJmaWxlLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ3OjQ4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogaW5pdF9zbm1wKCkuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDg6MjUKICAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDg6NDAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogdXNlIGluaXRfc25tcCBpbnN0ZWFkIG9mIGluaXRfbWliKCkuCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NTA6MzQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICAgICBzbm1wZC5oKToKICAgICAgLSBzdXBwb3J0IG1pYi1tb2R1bGUgc2h1dGRvd24gZnVuY3Rpb25zLgogICAgICAtIGRvIGEgbWluaW1hbCBwZXJzaXN0ZW50IGNhY2hlIGltcGxlbWVudGF0aW9uIGFuZCByZWFkIGl0IGF0IHN0YXJ0IHVwLgogICAgICAtIHRlc3Qgd2l0aCBiZWdpbm5pbmdzICh3cm9uZyBwbGFjZSkgb2YgYWdlbnRCb290cyB2YXJpYWJsZS4KCm5iYSAgMyBTZXAgOTggMTQ6Mjk6MDMKICAgIC0gKGZpeHByb2MpOiBhZGRlZCBjb21tZW50IHRvIHRlc3QgQ1ZTLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDE2OjEyOjMyCiAgICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KCmhhcmRha2VyICA5IFNlcCA5OCAxNjo1NTowNAogICAgLSAoc25tcGQuYyk6IGZpeCB0cmFwIHN0dWZmIGJyb2tlbiBieSB0aGUgY29kZSBtZXJnZS4KCmhhcmRha2VyIDExIFNlcCA5OCAwOToyNjo0MgogICAgLSAoKik6IE1lcmdlZCB0aGUgTVQgY2hhbmdlcyBpbnRvIHRoZSBtYWluIGJyYW5jaC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo0NjowMQogICAgLSAoc25tcF9hcGkuYyk6IHByb3RvdHlwZSBtb3ZlIGluaXRfc25tcCgpIGFib3ZlIGluaXRfc25tcF9zZXNzaW9uLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjUzOjIzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IG1vdmUgdW4tY29uZmlndXJlZCBkZWZpbmVzIGFib3ZlIEBUT1BALgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA4OjU0OjI0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERvbid0IGZvcmNlIGNjIGFueW1vcmUsIGFsbG93IGdjYyB0byBnbyBmaXJzdC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo1Njo1MQogICAgLSAob3YvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgZHVwbGljYXRlIHNlY3Rpb25zIGFscmVhZHkgZGVmaW5lZCBpbiBNYWtlZmlsZS50b3AuCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDI6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDg6NDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogTW92ZSBDQU5fVVNFX05MSVNUIHRlc3RzIGJlbG93IGFyY2ggLmggZmlsZXMuCgpoYXJkYWtlciAxMyBTZXAgOTggMTg6MjQ6MDAKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBleGl0IC0+IHJldHVybi4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDoxMjowOQogICAgLSAoc25tcHRhYmxlLmMsIHNubXB0cmFuc2xhdGUuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgLSBtZXJnZSBpbnRvIG1haW4gbGluZSBmcm9tIHRoZSAzLTYtcHJlMS10cmFucyBicmFuY2guCgpoYXJkYWtlciAxMyBTZXAgOTggMjA6MTg6MTAKICAgIC0gKHNubXBfYXBpLmMpOiBkZWZpbmUgdXNhZ2UgbWlzcGVsbGluZyBTTk1QX0JBRF9QQVJTRSAtPiBTTk1QRVJSX0JBRF9QQVJTRS4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMDozMDozOAogICAgLSAoc25tcF9hcGkuYyk6IHByZXZlbnQgZG91YmxlIGluaXRfc25tcCgpcy4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowNToyNgogICAgLSAoUkVBRE1FKTogTmFtZSBhZGRpdGlvbi4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowNjo1MgogICAgLSAobWliLmMsIHJlYWRfY29uZmlnLmMpOiByZWZpeCB0aGUgbm9uLW1hbGxvY2VkIGNvbmZpZ3VyYXRpb24gdmFycy4KCmhhcmRha2VyIDEzIFNlcCA5OCAyMTowOTozNgogICAgdmVyc2lvbiB1cGRhdGU6IDMuNi5wcmUyCgpoYXJkYWtlciAxNCBTZXAgOTggMTI6MzU6MTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5zdGFsbCBzbm1wX3Nlc3NfYXBpLjMuCgpoYXJkYWtlciAxNCBTZXAgOTggMTI6NDM6MzIKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBkbG1vZF9taWIuYywgdXRpbF9mdW5jcy5jLAogICAgICBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywKICAgICAgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHNubXBfYmdwLmMsCiAgICAgIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgaHB1eC5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLAogICAgICByZWdpc3RyeS5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywKICAgICAgcGFydHlfdmFycy5jLCB2aWV3X3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVuYW1lIGNvbXBhcmUgLT4gc25tcF9vaWRfY29tcGFyZSgpLgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjAyOjM0CiAgICAtIChpbmV0LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtZW1vcnkgcmVsYXRlZCBmaXhlcy4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowNzowNQogICAgLSAobWliLmMpOiAvLyBjb21tZW50IC0+IC8qICovIGNvbW1lbnQuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDc6NDUKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggaW5pdF9zbm1wIGNhbGxzIGZyb20gc2Vzc2lvbiByb3V0aW5lcy4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMzoyMDoxMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGFkZGVkIHRoZSBGaWxlVGFibGUgc3VibWl0dGVkIGJ5IEpvbmFzIE9sc3Nvbi4KCmhhcmRha2VyIDE4IFNlcCA5OCAxNDowMTo1MQogICAgLSAodWNkX3NubXAuaCk6IGFkZCB0aGUgZmlsZSBtaWIgbW9kdWxlLgoKaGFyZGFrZXIgMTggU2VwIDk4IDE0OjA0OjQzCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ2hhbmdlIGZpbGUgcmV0dXJuIGNvZGUgZnJvbSBUcnV0aFZhbHVlIHRvCiAgICAgIGludGVnZXIgc2luY2UgMS8yIGRvZXMgbm90IGZpdCB0aGUgY3VycmVudCAwLzEgcmV0dXJuIGNvZGUgc2NoZW1lLgoKaGFyZGFrZXIgMjEgU2VwIDk4IDExOjExOjM5CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEzOjA3OjA3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBhcnNlLmMpOiBOZXcgZmxhZzoKICAgICAgLSAtLWVuYWJsZS1lb2wtdGVybWluYXRlZC1jb21tZW50cy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowNTo0MAogICAgLSAoc25tcF9hcGkuYyk6IGRvbid0IHJlbHkgb24gdGhlIGdldHNlcnZieW5hbWUgcG9pbnRlciB0byBzdGF5IGFyb3VuZC4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoxNToyMgogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gVGhlIENNVSBsaWJyYXJ5IGhhcyBhbiBvcHRpbWl6YXRpb24gaW4gc25tcF9jbG9uZV9wZHUoKSB0aGF0IGRvZXMKICAgICAgIG5vdCBjb3B5IHplcm8gbGVuZ3RoIHN0cmluZ3MuICBJIGhhZCBtZXJnZWQgdGhpcyBpbiB3aXRoIGNoYW5nZXMKICAgICAgIG1hZGUgZm9yIG11bHRpLXRocmVhZCBzdXBwb3J0LiAgVW5mb3J0dW5hdGVseSwgSSBkaWQgbm90IG1ha2Ugc3VyZQogICAgICAgdGhlIGNsb25lZCBQRFUgaGFkIG5vIHBvaW50ZXIgZm9yIHRoaXMgY2FzZS4gIE9vcHMhCiAgICAgLSBBbm90aGVyIHByb2JsZW0gaW4gc25tcF9jbG9uZV9wZHUoKSB3YXMgdGhlIHRlc3QgZm9yIHplcm8gbGVuZ3RoCiAgICAgICBzdHJpbmcgd2FzIG5vdCBiZWluZyBwZXJmb3JtZWQgb24gdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNoYWluLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjI0OjE2CiAgICAtIChtaWIuYywgbWliLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tCiAgICAgIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoyNToxMAogICAgLSAoc25tcHRhYmxlLmMpOiBwcm9jZXNzIGFyZ3MgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIGdldF9vcHQoKS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzozMzowNgogICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgICBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc3R1cGlkIE9TIHVwZGF0ZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo1NTo1MAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBpbnN0YWxsIG1vcmUgaGVhZGVycy4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo1Njo0MwogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4gIEl0J3MgZ29pbmcgdG8gY2hhbmdlIHRvbwogICAgICBtdWNoIGluIHRoZSBmdXR1cmUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTg6MDM6MjcKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB2ZXJzaW9uLmgsIGFuZCBzdHJpcCBpbmNsdWRlcyBvdXQgb2YgY29uZmlnLmgKCmhhcmRha2VyIDI1IFNlcCA5OCAxODowNDoxMQogICAgLSAoc25tcF9hcGkuYyk6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50LW91dC4KCmhhcmRha2VyIDI1IFNlcCA5OCAxODoxNDoyMAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHV0aWxfZnVuY3MuYyk6IHVzZSBVU0xFRVAgaWYgYXZhaWxhYmxlIGZvcgogICAgICBzbWFsbCBzbGVlcCB0aW1lcyB3aGlsZSB3YWl0aW5nIGZvciBwcm9jZXNzZXMgdG8gZmluaXNoLgoKaGFyZGFrZXIgMzAgU2VwIDk4IDE0OjU3OjExCiAgICAtIChDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBpbnRlcmZhY2VzLmMsIG1lbW9yeS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBwYXJzZS5jKToKICAgICAgLSBtZXJnZSAzLjUuMyBjaGFuZ2VzIGludG8gbWFpbiB0cnVuay4KCmhhcmRha2VyICA1IE9jdCA5OCAxNjo1MzoyMwogICAgLSAoZHVtbXkuYywgZHVtbXkuaCk6IHVwZGF0ZSB0byByZW1vdmUgY29tbW9uX2hlYWRlci5oCgpoYXJkYWtlciAgNSBPY3QgOTggMTc6MDM6MzQKICAgIC0gKGhyX3Byb2MuYyk6IHBvc3NpYmxlIGZpeCBmb3Igc29sYXJpcydzIHByb2Nlc3MgcGVyY2VudGFnZS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODowMwogICAgLSAodmFyX3JvdXRlLmMpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MTg6MTYKICAgIC0gKGhwdXguaCk6IGhhY2sgZml4ZXMgZm9yIGhwdXgxMCBhbmQgcnRlbnRyeS4KCmhhcmRha2VyICA2IE9jdCA5OCAxNToxODo1NQogICAgLSAoY29uZmlnLmguaW4pOiBzZXR1cCBkZWZpbmUgZm9yIEhBVkVfVVNMRUVQLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM0OjU4CiAgICAtIChyZW1vdmUtZmlsZXMpOiB1cGRhdGUuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MzU6MDYKICAgIC0gKHZlcnNpb250YWcpOiBmaXggZm9yIGN2cyAxLjEwLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM4OjQ5CiAgICAtICh2ZXJzaW9udGFnKTogdHlwby4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozODo1NgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMyApCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NDk6MTEKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcHJvcGVybHkgbG9jYXRlIHZlcnNpb24uaCBpbiAkKHNyY2RpcikuCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NDk6MzAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IG1ha2UgaHRtbC4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1MDoyMwogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSB1bi1uZWVkZWQgaGVhZGVycy4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1MTo1NgogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBkZWZhdWx0IHBvcnQgcHJvYmxlbXMgKGFnYWluKS4KCmhhcmRha2VyICA3IE9jdCA5OCAxNjo1NDozOAogICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZXhpdGluZyBwcm9ibGVtcyBvbiBOVC4KCmhhcmRha2VyICA3IE9jdCA5OCAxNzowMDo0MAogICAgLSAobGlic25tcC5kc3AsIGxpYnNubXBfZGxsLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHdpbk5UIHByb2plY3QgZmlsZSB1cGRhdGVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDA4OjA5OjEyCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1c2UgemxpYiB3aGVuIHVzaW5nIHJwbSBsaWJyYXJpZXMuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MDg6MTgKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIENoZWNrIGZvciBmdWxseSBxdWFsaWZpZWQgb2lkIHN0YXRlbWVudHMuCgpoYXJkYWtlciAgOSBPY3QgOTggMjM6MTI6MDIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHN1cHBvcnQgZm9yIHN0cmljdCAoY2FzZSBzZW5zaXRpdmUpIG9wdGlvbiB0byB0aGUgbWliIGNvbXBpbGVyLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDIzOjIwOjI1CiAgICAtIChGQVEpOiBEYXZlIFNoaWVsZCBleHBsYWlucyBpbiB3b25kZXJvdXMgZGV0YWlsIGFsbCBhYm91dCB0aGUgVkFDTSBtb2R1bGUuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6MTc6MDIKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcHVibGljIGNvbW11bml0eSBleGFtcGxlcyAtPiBwcml2YXRlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQxOjEyCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbWFjaGluZS90eXBlcy5oLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjQxOjM4CiAgICAtIChob3N0X3Jlcy5oKTogbmV0L2luX3Zhci5oIGZvciBmcmVlYnNkMy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo0MjoyMAogICAgLSAoaHJfc3RvcmFnZS5jKTogbWFjaGluZS90eXBlcy5oIGFuZCBzeXMvdm1tZXRlci5oIGZvciBmcmVlYnNkMy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo1MDoyNgogICAgLSAoZnJlZWJzZDMuaCk6IGRlZmluZSBmcmVlYnNkMiBhbmQgTU9VTlRfTkZTLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjUxOjU4CiAgICAtIChmcmVlYnNkMy5oKTogb3BwczogIGRlZmluZSBNT1VOVF9ORlMgYXMgIm5mcyIuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDA6MDUKICAgIC0gKHNubXBkLmMpOiAtQTogYXBwZW5kIHRvIGxvZyBmaWxlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjQxOjUyCiAgICAtIChzbm1wZC5jKTogZG9jdW1lbnQgLUEuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDI6MTAKICAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLUEuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NDk6MDMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGZvciBicm9rZW4gY29tcGlsZXIgd2FybmluZ3Mgb24gTlQuCgpoYXJkYWtlciAxNCBPY3QgOTggMTY6NTI6NTEKICAgIC0gKG1lbW9yeS5jKTogZml4IGZvciBocHV4OS4KCmhhcmRha2VyIDE2IE9jdCA5OCAwODozODozOQogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGFpeC5oKTogYWl4IGhlYWRlciBmaWxlIGZpeGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDEwOjU0OjQ5CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBGaXggcGFyc2VyIHRvIGRlYWwgd2l0aCBhbm9ueW1vdXMgY2hpbGRyZW4gcHJvcGVybHkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTE6MDg6NTYKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gd2F0Y2ggb3V0IGZvciBlbXB0eSBmaWxlIG5hbWVzIHBhc3NlZCBpbi4KCmhhcmRha2VyIDIxIE9jdCA5OCAxNzowMToxMgogICAgLSAoLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmKToKICAgICAgLSBuZXcgdW5wcm9vZnJlYWQgbWFudWFsIG9uIHRoZSByZWFkX2NvbmZpZyBhcGkgKG1vc3Qgb2YgaXQpLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDA3OjU3OjE3CiAgICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIE5VTEwgY2hlY2tpbmcgb24gdGhlIGZpbGVzeXN0ZW0gbW91bnQgcG9pbnQuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTQ6MTEKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zZXJ0IEAgc2lnbi4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NDo0NwogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMpOiBidWcgZml4ZXMsIG1pc3NpbmcgI2VuZGlmLgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU2OjA5CiAgICAtICh0a21pYik6IGVkaXRhYmxlIG9pZCBmaWVsZC4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1OTo0NAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wZC5jLCB3b21iYXQuaCwKICAgICAgc3lzdGVtLmgsIHZhY21fdmFycy5oLCBkbG1vZC5jLCBkaXNrLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLAogICAgICBsb2FkYXZlLmgsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuaCwgcGFzcy5oLCBwYXNzX3BlcnNpc3QuaCwKICAgICAgcHJvYy5oLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsIG1pYi5jLCByZWFkX2NvbmZpZy5jLAogICAgICByZWFkX2NvbmZpZy5oKToKICAgICAgLSBuZXcgb3B0aW9uIC1IIG9uIGNvbW1hbmQgbGluZSB0byBwcmludCBvdXQgLmNvbmYgZmlsZSBkaXJlY3RpdmVzCiAgICAgICAgdGhhdCB0aGUgYXBwbGljYXRpb24gdW5kZXJzdGFuZHMuCiAgICAgIC0gY3JlYXRlZCBhIG5ldyBvcHRpb24gdG8gdGhlIHJlYWQgY29uZmlnIHJlZ2lzdHJhdGlvbiB0byBhbGxvdwogICAgICAgIHNwZWNpZnlpbmcgb2YgYSBoZWxwIGxpbmUuCgpoYXJkYWtlciAgNiBOb3YgOTggMTc6MjM6NDYKICAgIC0gKHNubXBkLmMpOiBmaXggdjIgdHJhcCBnZW5lcmF0aW9uLgoKaGFyZGFrZXIgIDYgTm92IDk4IDE3OjQ0OjQzCiAgICAtIChzbm1wZC5jKTogdjIgdHJhcCBzZW5kIGRlYnVnZ2luZy4KCmhhcmRha2VyIDE2IE5vdiA5OCAyMjoxMDowOAogICAgLSAodGttaWIpOiB0b28gbWFueSBpbXByb3ZlbWVudHMgdG8gY291bnQuCgpoYXJkYWtlciAyMyBOb3YgOTggMTU6NDI6NTIKICAgIC0gKGludGVyZmFjZXMuYywgaXJpeC5oKTogZml4IGxvY2F0aW9uIG9mIF9LRVJORUwgZGVmaW5lIGZvciBpcml4LgoKaGFyZGFrZXIgMjMgTm92IDk4IDE2OjM1OjQwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgICAtIC13ICYgLVcgb3B0aW9ucyB0byBkZWZhdWx0IGFwcGxpY2F0aW9uIHBhcnNlX2FyZ3MuCiAgICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDI6NDQKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMsIHNubXBfYXBpLmMpOgogICAgICAtIHVzZSBzZXRsb2NhbGUoKSBpZiBhdmFpbGFibGUgdG8gY29ycmVjdCBpc3ByaW50IHByb2JsZW1zLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA3OjQ4OjUzCiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogbmV3IGZ1bmN0aW9uczogc25tcF9taWJfdG9nZ2xlX29wdGlvbnMoKSBhbmQgdXNhZ2UuCgpoYXJkYWtlciAxMyBEZWMgOTggMDc6NDk6NDMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogLVAgZmxhZyBmb3IgdG9nZ2xpbmcgbmV3IG1pYiBwYXJzaW5nIG9wdGlvbnMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MDY6MzMKICAgIC0gKE5FV1MpOiBiZWdpbm5pbmcgbm90ZXMgZm9yIDMuNi4KCmhhcmRha2VyIDEzIERlYyA5OCAwODowNzoyNAogICAgLSAoZGlzay5jKTogZml4IGRpc2sgc2l6ZSBlcnJvciBmbGFnIHJlcG9ydGluZyBvbiBTb2xhcmlzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjEyOjEzCiAgICAtIChwYXJzZS5jKTogc3BhY2luZyBpbiBtaWIgb3B0aW9uIHVzYWdlIGZpeGVzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjE0OjQ0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHJlbW92ZSAtdy8tVyBmbGFnIGluIHVzYWdlLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjE4OjA3CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiByZW1vdmUgYSBmZXcgZGVmaW5lcyB0aGF0IHdlcmUgbWVzc2luZyB1cCBzb2xhcmlzIDcuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDE6NTUKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IHdhdGNoIG91dCBmb3IgTlVMTCBmaWxlIHBvaW50ZXJzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQyOjIwCiAgICAtIChpbmV0LmMpOiBpbml0IHBvaW50ZXIgdG8gTlVMTC4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0ODozOAogICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIEplZmYgSm9obnNvbjoKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbWVtb3J5IGxlYWtzIHdpdGggdGhlIFJQTSBwYWNrYWdlIGluZm8gY2FsbHMuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NTc6NTIKICAgIC0gKFJFQURNRSk6IGFkZGVkIEplZmYgSm9obnNvbiB0byB0aGUgY29udHJpYnV0b3JzIGxpc3QuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NTk6MTYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTUgKQoKaGFyZGFrZXIgMTYgRGVjIDk4IDA3OjMxOjI2CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcG9pbnRlciBjaGVja3MgYmVmb3JlIGZyZWVpbmcgbWVtb3J5LgoKaGFyZGFrZXIgMTggRGVjIDk4IDExOjM2OjM5CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdHlwby4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMDoyNAogICAgLSAocGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gZml4ZXMgZnJvbSBNaWNoYWVsIFNsaWZjYWsuCiAgICAgIC0gbWlzYyByZWFkX2NvbmZpZyBmdW5jdGlvbnMgcHVsbGVkIGluIGZyb20gdGhlIHYzIHdvcmsuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTE6MDMKICAgIC0gKGxpYnNubXAuZGVmKTogdXBkYXRlIGZyb20gTWljaGFlbCBTbGlmY2FrLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjEyOjU0CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGluY2x1ZGUgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxNjozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBzdG9yZSBjb25maWd1cmUgZmxhZ3MgdG8gYSBkZWZpbmUuCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTY6NTMKICAgIC0gKHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgpOiBtaWIgb2JqZWN0IHRvIGRpc3BsYXkgY29uZmlndXJlIG9wdGlvbnMuCgpoYXJkYWtlciAyMSBEZWMgOTggMTg6MTk6MTIKICAgIC0gKGZpbGUuaCwgVUNELVNOTVAtTUlCLnR4dCk6IG1vdmUgdGhlIGZpbGUgbWliIHRvIC4xNSBzbyBpdCBkb2Vzbid0CiAgICAgIGNvbmZsaWN0IHdpdGggdGhlIGRlbW8gbWliLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE4OjIwOjI1CiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFdpbjMyIG1lbW9yeSBsZWFrIGZpeGVzIGZvciBvcGVuZGlyKCksIGV0Yy4KCmhhcmRha2VyIDIyIERlYyA5OCAwODo1MDoyOQogICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCBjb21waWxlIGRsbW9kcwoKaGFyZGFrZXIgMjIgRGVjIDk4IDE0OjU2OjQ0CiAgICAtIChtaWIuYywgc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBteSBicm9rZW4gc2V0X2xvY2FsZSBzdHVmZi4KCmhhcmRha2VyIDI2IERlYyA5OCAxMDozNToyMwogICAgLSAoZGxtb2QuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBkbG1vZCBjb21waWxhdGlvbiBpbiBzbm1wZF9yZWdpc3Rlcl9jb25maWdfaGFuZGxlcigpIGNhbGwuCgpoYXJkYWtlciAyOSBEZWMgOTggMTY6NTU6NTQKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIG5ld2xpbmVzIGZyb20gc3ByaW50X3ZhbHVlKCkgd2hlcmUgYXBwbGljYWJsZS4KCmhhcmRha2VyIDI5IERlYyA5OCAxNzowMjozMwogICAgLSAodmFjbS5jKTogRW5hYmxlIG11bHRpcGxlIHNpZGUgYnkgc2lkZSB2aWV3cyBpbiB0aGUgdmlldyBmYW1pbHkKICAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgICAtIE5vdCBkb25lIGluIGEgY2xlYW4gZmFzaGlvbi4gIE11Y2ggb2YgdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9ucwogICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgIHNwZWVkLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ2OjExCiAgICAtIChldmVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgIC0gbWVtY21wJ3Mgc2l6ZXMgd2VyZSB3cm9uZy4KCmhhcmRha2VyIDMxIERlYyA5OCAxNzo0ODo1NwogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG5lZWQgdG8gcmVhZF9vYmppZCgpIHRoZSBjb250ZXh0IG9pZCBiYXNlLCBub3QgdGhlIHBhcnR5IG9pZCBiYXNlCiAgICAgICAgaW4gb25lIGxvY2F0aW9uLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjQ5OjUxCiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG9pZExlbidzIHdlcmUgd3JvbmcgZm9yIG0ybSBvaWRzLgoKaGFyZGFrZXIgIDIgSmFuIDk5IDA4OjQ4OjI5CiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgIC0gbmV3IGNvbXBsZXRlIGxpc3Qgb2YgaWZUeXBlcy4KCmhhcmRha2VyICA1IEphbiA5OSAxMDo0MTo1MgogICAgLSAoc25tcHRhYmxlLmMpOiBNYWtlIGZpZWxkIHNlcGFyYXRvciB0YWtlIGFyZ3VtZW50cyBkaXJlY3RseSBhZnRlciB0aGUgLWYuCgpoYXJkYWtlciAgNSBKYW4gOTkgMTA6NDg6NTEKICAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgICBzbm1wdGFibGUuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAgLSBtYWtlIG1haW4oKSByZXR1cm4gYW4gaW50IGluc3RlYWQgb2Ygdm9pZC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDoyODoyMQogICAgLSAobWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYyk6CiAgICAgIC0gSW1wbGVtZW50IHRoZSBuZXcgdG9rZW4gYmFzZWQgZGVidWdnaW5nIG1lc3NhZ2Ugc3VwcG9ydC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDozMDoxMgogICAgLSAoc25tcHRhYmxlLmMpOiBjaGFuZ2UgaW50ZXJuYWwgZGVidWcgdmFyaWFibGUgdG8gbG9jYWxkZWJ1Zy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDozMDo0NwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtYWtlIC1EIHJlZ2lzdGVyIHRoZSBkZWJ1Z2dpbmcgdG9rZW5zIHNwZWNpZmllZC4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo0OToyOQogICAgLSAoRkFRLCBSRUFETUUpOiBVUkwgY2hhbmdlcy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MDoxNQogICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MDoyOAogICAgLSAoaWYuYywgbWFpbi5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA5IEphbiA5OSAyMDo1MjoxMAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IERFQlVHUE9JRCByZXBsYWNlbWVudDogREVCVUdNU0dPSUQuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NTI6MjIKICAgIC0gKHNubXBjbWQuMSk6IGRpc2N1c3MgLUQgdXNhZ2UgY2hhbmdlLgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIxOjUwOjEzCiAgICAtIChhZ2VudC8qLmMpOgogICAgICAtIHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgICAgIC0gaW1wbGVtZW50IG5lZWRlZCAtRCBmbGFnIGNoYW5nZXMuCgpoYXJkYWtlciAxNCBKYW4gOTkgMDk6MDI6MzYKICAgIC0gKG1pYjJjKTogdXBkYXRlIGZvciBTTk1QLnBtIDEuOC4KCmhhcmRha2VyIDE1IEphbiA5OSAxMToxMDowOQogICAgLSAoc25tcDJwLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDExOjEyOjIyCiAgICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDE1OjI0OjAyCiAgICAtIChhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2Ugc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2UgcmVnaXN0ZXJfbWliKCkuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6NTg6MjAKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCgpoYXJkYWtlciAxNSBKYW4gOTkgMTU6NTg6NTAKICAgIC0gKHZhY20uYyk6IERFQlVHTVNHIHR5cG8uCgpoYXJkYWtlciAxNSBKYW4gOTkgMTY6MTc6MDUKICAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIHNtdXggcGF0Y2hlcy4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzowNDoxMgogICAgLSAoc25tcGNtZC4xKTogdXBkYXRlZCAtRCBkZXNjcmlwdGlvbi4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzoxMjowMwogICAgLSAoc25tcGxpYi8qLltjaF0pOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYXNuaSdpZnkgYWxsIGZ1bmN0aW9ucy4KCmhhcmRha2VyIDE2IEphbiA5OSAyMzoxMzoxMAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNiApCgpoYXJkYWtlciAxOCBKYW4gOTkgMTA6NDc6MzYKICAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KCmhhcmRha2VyIDE5IEphbiA5OSAxOTo1OTo1MwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIF9fUCBjaGVja2luZy4KCmhhcmRha2VyIDE5IEphbiA5OSAyMDowMTo1OQogICAgLSAoc25tcHRhYmxlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2F1dGguYywgbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAgLSBhcHBzL3NubXB0YWJsZS5jIC0gc29tZSBjb21waWxlcnMgd2FybiBjb21wYXJpbmcgcG9pbnRlciB3aXRoIGludGVnZXIKICAgICAgLSBzbm1wbGliL21pYi5jIC0gYWxyZWFkeSBtZW50aW9uZWQgYmVmb3JlOyBoZXJlIGZvciBjb21wbGV0ZS1uZXNzCiAgICAgIC0gc25tcGxpYi9wYXJzZS5jIC0gbWlub3IgdG91Y2h1cCBvZiBpbmNsdWRlczsgc3lzdGVtLmggZHVwIHJlbW92ZWQKICAgICAgLSBzbm1wbGliL3NubXBfYXBpLmggLSBNU1Zpc3VhbCBDKysgZG9lc24ndCBoYXZlIF9fRlVOQ1RJT05fXwogICAgICAtIHNubXBsaWIvc25tcF9hdXRoLmMgLSBtaW5vciBmaXggb2YgY29tbWVudAogICAgICAtIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIC0gc25tcF9wYXJzZV9hcmdzIG5lZWRzIGEgbmV3IGZ1bmN0aW9uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjA6MDgKICAgIC0gKEZBUSk6IHBlcmwtU05NUCBhbmQgeTJrIHF1ZXN0aW9ucyBhZGRlZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMTozNQogICAgLSAoYWNjb25maWcuaCk6IHVubmVlZGVkIGNvbW1lbnQgcmVtb3ZlZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxMjoyMTo1NwogICAgLSAoaW50ZXJmYWNlcy5jKTogdHlwbyBpbiBhbnNpIGNoYW5nZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjQ6MzQKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgICBob3N0X3Jlcy5oLCBtaWJpbmNsLmgsIC5jdnNpZ25vcmUsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywKICAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGlmLmMsIE1ha2VmaWxlLmluLCBtaWIuYywgcGFyc2UuYywKICAgICAgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsCiAgICAgIHZhY20uYyk6IGRlYnVnZ2luZyBzdXBwb3J0IGNvZGUgbW92ZWQgdG8gc25tcF9kZWJ1Zy5bY2hdLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjExOjU5CiAgICAtIChNYWtlZmlsZS5pbik6IHZlcnNpb24gdGFnIGNyZWF0aW9uLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjEzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNoZWNrIGZvciBhc20vcGFnZS5oIChsaW51eCkuCiAgICAgIC0gY2hlY2sgZm9yIHN5cy9zdHJlYW0uaCAoU0NPKS4KICAgICAgLSBGaXggcnRlbnRyeSB0ZXN0LgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjQyCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3N0cmVhbS5oIGZvciBTQ08uCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTQ6NTgKICAgIC0gKHZlcnNpb250YWcpOiB2ZXJzaW9uIHRhZ2dpbmcgYWJpbGl0eSB0byBkbyBtYW55IHRoaW5ncy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNjozNAogICAgLSAoYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jKToKICAgICAgLSBzeXMvc3RyZWFtLmggbmVlZGVkIGJ5IFNDTy4KICAgICAgLSBpbnRlcmZhY2VzIHNjYW4gZml4ZXMgZm9yIGxpbnV4IDIuMCB2cyAyLjEgY2FuIGJlIGNvbmZpZ3VyZWQgZWxzZXdoZXJlIG5vdy4KICAgICAgLSBwcm90ZWN0IGdldF9hZGRyZXNzIGNhbGxzIGFnYWluc3QgTlVMTCBwb2ludGVyIHJldHVybnMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTc6MTcKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKToKICAgICAgLSBsaW51eCAyLjEga2VybmVsIG5lZWRzIGFzbS9wYWdlLmggKGFsbCBpbmNsdWRlcyBuZWVkIHRvIGJlIHJlLXdyaXR0ZW4pLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE3OjQxCiAgICAtIChsaW51eC5oKTogZGVmaW5lIExJTlVYX0lOVEVSRkFDRV9TQ0FOX0xJTkUuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MjA6MDQKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB1Y2Qtc25tcC1pbmNsdWRlcy5oLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIyOjA4CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIyOjM4CiAgICAtIChGQVEsIFJFQURNRSk6IGFkZGVkIHZlcnNpb24gc3RhbXAuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MzA6NTgKICAgIC0gKENPUFlJTkcpOiBJdCdzIDE5OTkKCmhhcmRha2VyIDIwIEphbiA5OSAxNTozMToxMwogICAgLSAoUkVBRE1FKTogaGVscGluZyBvdXQgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo0ODo1MwogICAgLSAoc211eC5jKTogdHlwbwoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjQ5OjMwCiAgICAtIChocl9zd2luc3QpOiAjaWZkZWYgUlBNIHByb3RlY3QgYSBmcmVlIHJvdXRpbmUuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NTA6MTcKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtaWIgbW9kdWxlIG1ha2UgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjU0OjAyCiAgICAtIChzbm1wZC5jKTogZXhwb3J0IHNkbGlzdCBhbmQgc2RsZW4gdmFyaWFibGVzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjU0OjM2CiAgICAtIChzbXV4LmMpOiBkZWJ1Z2dpbmcgY2hhbmdlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNjo0MToyMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNubXBfcGFyc2VfYXJncy5jLCBtYWluLmMsIHNubXBfYXBpLmMpOgogICAgICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBhbGxvdyB6ZXJvIGxlbmd0aCAobGVnYWwpIGNvbW11bml0eSBzdHJpbmdzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE3OjAyOjM3CiAgICAtIChjb25maWcuaC5pbik6IHJhbiBhdXRvaGVhZGVyCgpoYXJkYWtlciAyMCBKYW4gOTkgMTc6MTE6MjYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTcgKQoKaGFyZGFrZXIgMjEgSmFuIDk5IDA4OjM5OjM0CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgSi4gU2xpZmNhazoKICAgICAgLSB0eXBvIG9uIEpvZSdzIG5hbWUgZml4ZWQuCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6NDA6MjYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX2FwaS5jLCBjb25maWcuaCk6IFBhdGNoIGZyb20gTWljaGFlbAogICAgICBKLiBTbGlmY2FrOgogICAgICAtIE5PX05VTExfQ09NVU5JVFkgLT4gTk9fWkVST0xFTkdUSF9DT01NVU5JVFkuCgpoYXJkYWtlciAyMSBKYW4gOTkgMDg6NDI6MTcKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtb2R1bGUgZGVwZW5kcy4KCmhhcmRha2VyIDIyIEphbiA5OSAwNzoyMzoxMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIENoZWNrIGZvciBOVUxMIG9uIHNlc3Npb24gY2xvc2VzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjA4CiAgICAtIChzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGRfaGFuZGxlcnMuYywgaW5ldC5jLCBtYWluLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gbW9yZSBhbnNpIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjI4OjI2CiAgICAtICh2ZXJzaW9udGFnKTogdHlwby4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDoyODo0MQogICAgLSAobGludXguaCk6IDIuMiBkZWZpbmUgdXBkYXRlLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjMzOjI0CiAgICAtIChjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2NsaWVudC5jLCBzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAgLSBhbnNpIGZpeGVzLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDEwOjM0OjExCiAgICAtIChzeXN0ZW0uYyk6IGZpeCBzdHJpbmdzLmggaW5jbHVkZS4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxMTo0OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSB0ZXN0IGlmIF9fRlVOQ1RJT05fXyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvbXBpbGVyLgoKaGFyZGFrZXIgMjUgSmFuIDk5IDExOjE1OjUzCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgaG9zdF9yZXMuaCwgbWliaW5jbC5oLAogICAgICBmaWxlLmMsIGluZXQuYywgcGFyc2UuYywgc25tcF9kZWJ1Zy5jKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxNjoxNgogICAgLSAobGludXguaCk6IGNvbW1lbnQgdHlwby4KCmhhcmRha2VyIDI1IEphbiA5OSAxNjoyNTozNwogICAgLSAoUkVBRE1FLCBSRUFETUUubWliMmMpOiBtaWIyYyByZWFkbWUgZmlsZS4KCmhhcmRha2VyIDI2IEphbiA5OSAwOTo0NTo0MgogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGNoYW5nZSByZWZlcmVuY2UgSVAgbmV0IGFkZHJlc3NlcyB0byAxMC4xMC4xMC4wLgoKaGFyZGFrZXIgIDIgRmViIDk5IDEzOjMzOjI1CiAgICAyMDM2IC0+IDIwMzgKCmhhcmRha2VyICAyIEZlYiA5OSAxMzozNDozNgogICAgLSAoc25tcGQuYyk6IHR5cG86IC1MIC0+IC1BIGluIGhlbHAgc3RyaW5ncyBkb2NzLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAwOjEzCiAgICAtIChGQVEpOiBtZW50aW9uIGxhY2sgb2Ygc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMTowMQogICAgLSAoVE9ETyk6IFJlbW92ZSB1bnN1cHBvcmVkIG1pYiBub2RlcyBmcm9tIG91dHB1dCBpbnN0ZWFkIG9mIHJldHVybmluZyAwJ3MuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDI6MDQKICAgIC0gKGhyX3Byb2MuYyk6IHVzZSBbMF0gaW5kZXggb2YgbG9hZCBhdmVyYWdlIHRhYmxlLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAyOjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtZW50aW9uIHRoYXQgdGhlIG1lbW9yeSBzZWN0aW9uIGlzbid0IHN1cHBvcnRlZCBvbiBhbGwKICAgICAgICBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgIDggRmViIDk5IDEyOjIxOjI1CiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIEpvaG4gUG9sc3RyYToKICAgICAgLSBjYWxsIGFjY2VwdCgpIHRvIGdldCB0aGUgc29ja2V0IGZpbGUgZGVzY3JpcHRvci4KCmhhcmRha2VyICA4IEZlYiA5OSAxNTowODo1NwogICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gVGsucG0gbWVudGlvbi4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxMzowMQogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IGlpbmRleC4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxNDo0MgogICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZyB0aW1lIC0+IG1fdGltZS4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxNzo1MAogICAgLSAocm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IElmSW5kZXguCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTg6MDgKICAgIC0gKGluZXQuYyk6IHByb3BlciBicmFja2V0IGluZGVudGF0aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE5OjIyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNlIHNpemVfdCBpbnN0ZWFkIG9mICJ1bnNpZ25lZCIgZm9yIHhtYWxsb2MsIGV0Yy4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToyMDo0NwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1ha2Ugc25tcF9vaWRfY29tcGFyZSB1c2UgY29uc3Qncy4KCmhhcmRha2VyICA4IEZlYiA5OSAyMzoyMjozMwogICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cGVkZWYgYWxsIG9mIHRoZSB2YXJfeHh4IGFuZCB3cml0ZSBtZXRob2QgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDggRmViIDk5IDIzOjIzOjQxCiAgICAtIChrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCkgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5jbHVkZSB1cGRhdGVzLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjEwOjMzCiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgRkFRLmh0bWwuCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MTA6NTIKICAgIC0gKG1pYjJjKTogdHlwby4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDozNTo0NgogICAgLSAobWliLmMpOiBpbmNyZWFzZSBidWZmZXIgc2l6ZSBmb3Igb2lkIHByaW50aW5nLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjEwOjM5CiAgICAtICgqKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY29udmVydCBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4uCiAgICAgIC0gY29udmVydCB0ZW1wb3JhcnkgY2hhcmFjdGVyIHN0b3JhZ2UgYnVmZmVycyB0byBTUFJJTlRfTUFYX0xFTi4KICAgICAgLSBtYWtlIHRoZSBsaWJyYXJpZXMgcHJpbnRfIGZ1bmN0aW9ucyB1c2UgdGhlIGZwcmludF8gZnVuY3Rpb24KICAgICAgICBhbHJlYWR5IGRlZmluZWQgYW5kIHBhc3MgaXQgc3Rkb3V0LgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjIyOjAzCiAgICAtIChob3N0X3Jlcy5oKTogaW5jbHVkZSBzbm1wX3ZhcnMuaCBhaGVhZCBvZiB2YXJfc3RydWN0LmguCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6MjM6MTYKICAgIC0gKGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgICAtIE1vcmUgYnVmIHNpemUgc3RhbmRhcmRpemF0aW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgogICAgICAtIEEgZmV3IE1BWF9OQU1FX0xFTiAtPiBNQVhfT0lEX0xFTiBjb252ZXJzaW9ucyB0aGF0IE1pY2hhZWwgbWlzc2VkLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjM0OjAwCiAgICAtICh0Y3AuYyk6IHZhcl90Y3BFbnRyeSB3YXMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgaW5jb21pbmcgb2lkIHdpdGggdGhlCiAgICAgIHdyb25nIGxlbmd0aCBhbmQgY291bGQgc3VjY2VlZCBhdCB0aW1lcyB3aGVuIGl0IHNob3VsZG4ndCBoYXZlLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ2OjQ4CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEV4dC0zLTYtcHJlOCApCgpoYXJkYWtlciAxMSBGZWIgOTkgMTY6NDg6MDcKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTggKQoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ4OjI5CiAgICAtICh2ZXJzaW9udGFnKTogdXBkYXRlLgoKaGFyZGFrZXIgMTYgRmViIDk5IDE3OjA1OjQ1CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZWQgbWliMmMgcHJvZ3JhbS4uLiAgc3RpbGwgaW4gcHJvZ3Jlc3MuLi4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMDowMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEwuIEhpdGNoOgogICAgICAtIGZpeCBpZl9uYW1lIHZhcmlhYmxlIGJ5IG1ha2luZyBpdCBzdGF0aWMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTM6MzgKICAgIC0gKHNubXBkLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHByb3RvdHlwZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxMzo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdXNhZ2UgZml4LgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE1OjU5CiAgICAtIChpZi5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFrZSBzbm1wbmV0c3RhdCB3aW4zMiBjb21wYXRpYmxlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE2OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZSBhZ2FpbiBmb3IgYmV0dGVyIHN0aWxsIG91dHB1dC4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxNzoxMwogICAgLSAoTWFrZWZpbGUuaW4pOiBzZXBhcmF0ZSB0YXJnZXQgZm9yIGdlbmVyYXRlZCBtYW51YWwgcGFnZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTg6MDYKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHVzZSBhICctJyBpbnN0ZWFkIG9mIGEgJy4nIGZvciBJRUVFODAyLTExLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE5OjAzCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBjb21tZW50IHJlZm9ybWF0dGluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxOTo1MgogICAgLSAoY29udGV4dF9wYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZG9uJ3QgdXNlIGEgdmFyaWFibGUgY2FsbGVkICd0aW1lJy4gIFRzayB0c2suCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MjE6MjUKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGZwcmludF92YXJpYWJsZSB0byBub3QgcmVjdXJzZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyMzo0NAogICAgLSAocGFyc2UuYywgcGFydHlfcGFyc2UuYywgc25tcF9hdXRoLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0IGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjI4OjU0CiAgICAtIChjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wLmRzcCwgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLmRzcCwKICAgICAgc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gd2luMzIgdXBkYXRlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNjoxMzo0NwogICAgLSAoc25tcGQuYywgZHVtbXkuYywgd29tYmF0LmMsIHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGRsbW9kLmMsCiAgICAgIGRpc2suYywgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgIG1lbW9yeV9mcmVlYnNkMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsIG1pYi5jLAogICAgICByZWFkX2NvbmZpZy5jKTogd29yZCAtPiB0b2tlbiAoIndvcmQiIGlzIHJlc2VydmVkIGluIHNvbWUgY29tcGlsZXJzLgoKaGFyZGFrZXIgMjIgRmViIDk5IDA5OjExOjUyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIHNlbGVjdCAiYWxsb3cgdW5kZXJzY29yZSBpbiBNSUIKICAgICAgICBzeW1ib2xzIiBpcyBtaXNzaW5nLgoKaGFyZGFrZXIgMjIgRmViIDk5IDA5OjQ0OjIxCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gRG9uJ3QgcHJpbnQgImNhbid0IGZpbmQgbW9kdWxlIFhYWCIgbWVzc2FnZXMgd2l0aG91dCB3YXJuaW5ncyB0dXJuZWQgb24uCgpoYXJkYWtlciAyNCBGZWIgOTkgMTQ6NDM6MjEKICAgIC0gKElBTkFpZlR5cGUtTUlCLnR4dCk6IHVwZGF0ZS4KCmhhcmRha2VyIDI0IEZlYiA5OSAxNzoxMDoxMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBsaW51eC5oKToKICAgICAgLSBDaGVjayBmb3IgYW5kIGhhbmRsZSAyLjIgL3Byb2MvbmV0L2RldiBjaGFuZ2VzLgoKaGFyZGFrZXIgMjUgRmViIDk5IDEwOjAzOjQxCiAgICAtIChSRUFETUUsIHVjZF9zbm1wLmgsIG1lbW9yeV9zb2xhcmlzMi5jLCBtZW1vcnlfc29sYXJpczIuaCk6IFBhdGNoCiAgICAgIGZyb20gRGF2aWQgRi4gTmV3bWFuOgogICAgICAtIG1lbW9yeSBzdXBwb3J0IGZvciBzb2xhcmlzMi4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNTowMjo1NQogICAgLSAobG9hZGF2ZS5jLCBsb2FkYXZlLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGltcGxlbWVudCBsb2FkIGF2ZXJhZ2UgcmVwb3J0aW5nIGFzIGEgaW50ZWdlciBhbmQgYXMgYSBmbG9hdC4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNTo0MjozMQogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBVbmxpbmtlZCBPSUQgLi4uIGNjaXR0IDAgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgICAtIENvbnRpbnVlIGFmdGVyIHJlc2VydmVkIHdvcmQgZXJyb3IgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgICAtIE1vZGlmaWNhdGlvbiB0byAjMiBjb3VydGVzeSBvZiBOaWVscyBCYWdnZXNlbi4KICAgICAgLSBNb2RpZmljYXRpb24gdG8gcHJpbnQgc3ViLWlkZW50aWZpZXIgPT0gMAogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgogICAgICAtIEluc3RlYWQgb2YgcmUtb3JkZXJpbmcgYWxsIHNpbmdseS1saW5rZWQgbGlzdHMsIHVzZSBhIG5ldyBtZW1iZXIKICAgICAgICB0aGF0IGZsYWdzIHdoZW4gYSByZXBvcnQgaGFzIGJlZ3VuLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjA2OjQ5CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGFuZCBtYWRlIGJldHRlciBleGFtcGxlcy4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMDoyMQogICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgMy42IHJlbGVhc2UuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MTA6NDcKICAgIC0gKHNubXB0cmFwZC5jKTogdXNhZ2UgdXBkYXRlLCBhbmQgLUggc3VwcG9ydC4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLAogICAgICBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOgogICAgICAtIG5ldyBkb2N1bWVudGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjMzOjA5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU5ICkKCmhhcmRha2VyICAxIE1hciA5OSAxMDo0ODowMwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHR5cG86IGZpbGVNYXggLT4gZmlsZUVycm9yRmxhZyBuYW1lIGNoYW5nZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyNzoxMgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHJlbmFtaW5nIG9mIHZhcmlhYmxlcyBhd2F5IGZyb20gc3lzdGVtIGZ1bmN0aW9uIG5hbWVzIChpbmRleCAtPiBsaW5kZXgpLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjMwCiAgICAtIChlcnJvcm1pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGVycm5vIHZhcmlhYmxlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI3OjQ1CiAgICAtIChpZi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gZnJlZSB0aGUgaW50ZXJmYWNlIHRhYmxlLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI4OjE3CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBjYXNlIGVudHJpZXMuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBwdXQgYSBwcm9wZXIgKHZvaWQpIGludG8gdGhlIGZ1bmN0aW9uIHByb3RvdHlwZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyOTo0NQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjMwOjE5CiAgICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSBhZGRlZCBNSU5fT0lEX0xFTiBmb3IgaW5zdHJ1Y3Rpb25hbCB1c2UgbW9zdGx5IChpdHMgdW51c2VkKS4KCmhhcmRha2VyICAxIE1hciA5OSAxMzowMzoxNQogICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cGVjYXN0aW5nIGZvciBjZXJ0YWluIGZ1bmN0aW9ucyB0byAoY2hhciAqKS4KCmhhcmRha2VyICAxIE1hciA5OSAxMzo1OToxNAogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSBjb21wYXJlX3RyZWUoKSBnbG9iYWwuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTQ6MDQ6MDUKICAgIC0gKHNtdXguYywgc211eC5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIGNvbXBsZXRlbHkgcmUtd3JpdHRlbiBzbXV4IG1vZHVsZXMuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTQ6MjA6MTEKICAgIC0gKHNtdXguYywgc211eC5oKTogMy42aWZpZWQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MTA6NTcKICAgIC0gKGFsYXJtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDYXN0IHRvIHBvaW50ZXIgdG8gaW50IG1heSBvdmVyZmxvdyB0aGUgcmV0dXJuIGJ1ZmZlci4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAgLSByZW1vdmVkIGEgdHJhaWxpbmcgYmFja3NsYXNoIHRoYXQgd2Fzbid0IG5lZWRlZC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxNzozNgogICAgLSAobWliX2FwaS4zLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICAgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLAogICAgICB2YXJpYWJsZXMuNSk6IE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzcGVsbCBjaGVjay4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoxOTo1NgogICAgLSAoc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIEVDRSBkZXB0LgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjIyOjQwCiAgICAtIChhc24xLmgpOiBwdXQgYmFjayBpbiBNQVhfTkFNRV9MRU4gdGVtcG9yYXJpbHkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTc6NDM6NDkKICAgIC0gKHNtdXguYyk6CiAgICAgIC0gYWxsb3cgbnVsbCBsZW5ndGggcGFzc3dvcmRzLgogICAgICAtIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCgpoYXJkYWtlciAgMiBNYXIgOTkgMDg6NDc6MjkKICAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gRG9uJ3QgZGVmaW5lIE1BWF9OQU1FX0xFTiBpZiBkZWZpbmVkIHNvbWV3aGVyZSBlbHNlLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDEwOjQyOjM0CiAgICAtIChzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBpcGZ3YWNjLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBTdWdnZXN0ZWQgZml4ZXMgdG8gZWxpbWluYXRlIG1vcmUgc2hhZG93ZWQgZ2xvYmFsIHJlZmVyZW5jZXMuCiAgICAgIC0gZml4dXBzIGZvciBwcm90b3R5cGUgWyh2b2lkKSByZXBsYWNpbmcgKCldLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDEzOjIzOjU3CiAgICAtICh2YXJfcm91dGUuYyk6IGRvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gYSBwb2ludGVyLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjE3OjUzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfZGVidWcuYywKICAgICAgc25tcF9kZWJ1Zy5oKToKICAgICAgLSBuZXcgZmxhZzogIC0tZGlzYWJsZS1kZWJ1Z2dpbmcgdG8gY29tcGxldGVseSB0dXJuIG9mZiBpdHMgc3VwcG9ydC4KICAgICAgLSByZW5hbWluZyBvZiBET0RFQlVHIHRvIFNOTVBfQUxXQVlTX0RFQlVHLgogICAgICAtIGNsZWFuIHVwIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IG9wdGlvbnMgbGlzdGVkLCBpbmNsdWRpbmcgcHV0dGluZwogICAgICAgIGEgbGlzdCBvZiBhdmFpbGFibGUgbW9kdWxlcyBmb3IgY29tcGlsYXRpb24gaW50byB0aGUgYWdlbnQuCgpoYXJkYWtlciAgMiBNYXIgOTkgMTU6MTg6NTkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB0eXBvLgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjIxOjM0CiAgICAtIChzbXV4LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBMaW51eCBjb21waWxlcyBkaWUgYXQgU09fUkNWVElNRU8uCiAgICAgIC0gLVdhbGwgdHlwZSBmaXhlcy4KCmhhcmRha2VyICAzIE1hciA5OSAwODoyNTozMwogICAgLSAoUkVBRE1FKTogQWRkZWQgTmljay4KCmhhcmRha2VyICAzIE1hciA5OSAwODoyODowNQogICAgLSAoY29uZmlndXJlKTogcmFuIGF1dG9jb25mLi4uCgpoYXJkYWtlciAgMyBNYXIgOTkgMTE6NDA6MTEKICAgIC0gKHByb2MuYywgc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgIC0gVXNlIC9wcm9jIG9uIHNvbGFyaXMuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTc6NTE6MjYKICAgIC0gKENoYW5nZUxvZywgRkFRLCBORVdTLCBQT1JUSU5HLCBSRUFETUUsIFRPRE8sIGJ1Zy1yZXBvcnQsIHNubXBkLmMsCiAgICAgIFJFQURNRS5taWIyYyk6IGVjZS51Y2RhdmlzLmVkdSAtPiB1Y2Qtc25tcC51Y2RhdmlzLmVkdS4KCmhhcmRha2VyICAzIE1hciA5OSAxODowMDo1MQogICAgLSAoTkVXUyk6IG1lbnRpb24gbmFtZSBjaGFuZ2UuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDI6MDcKICAgIC0gKE5FV1MpOiBtZW50aW9uIFNNVVguCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDI6MjMKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTEwICkKCm1zbGlmY2FrICA0IE1hciA5OSAwNDowODowMQogICAgCiAgICAoc25tcG5ldHN0YXQvaWYuYykgLSBhZGQgdm9pZCB0byBlbXB0eSBmb3JtYWwgcGFyYW1ldGVyIGxpc3QKCmhhcmRha2VyICA0IE1hciA5OSAwODozNjozOQogICAgLSAodmVyc2lvbnRhZyk6IHJlcG9zaXRvcnkgbW92ZS4KCmhhcmRha2VyICA0IE1hciA5OSAwODozNjo0NgogICAgLSAoUkVBRE1FLnNtdXgpOiBhZGQgTmljay4KCmhhcmRha2VyICA0IE1hciA5OSAwOTowNzowNwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXggdm9pZCB0ZXN0IGZvciBhbnNpIGNvbXBpbGVycy4KCm1zbGlmY2FrICA0IE1hciA5OSAwOToyMDowOAogICAgCiAgICAKICAgIChhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMpIDogcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlcwogICAgCiAgICAoYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYykgOiBjaGFuZ2UgIip3b3JkIiB0byAiKnRva2VuIiB0byBoZWxwIHNvbWUgY29tcGlsZXIKCm1zbGlmY2FrICA0IE1hciA5OSAwOToyNDoyNgogICAgCiAgICAKICAgIChNYWtlZmlsZS5pbikgLSBmaW5kIG1pYmRlZnMuaCB3aGVuIG5vdCBidWlsZGluZyBpbiB0aGUgc291cmNlIHRyZWUKCmhhcmRha2VyICA0IE1hciA5OSAwOTozMzozMQogICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgIC0gZml4IGxvYWQgYXZlcmFnZSBvbiBzb2xhcmlzLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjM4OjI4CiAgICAtIChyZW1vdmUtZmlsZXMsIGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLmNvbmYpOgogICAgICAtIHJlbW92ZWQgZWNlIHNwZWNpZmljIGNvbmZpZyBmaWxlcyBmcm9tIHRoZSByZXBvc2l0b3J5LgogICAgICAtIGRvbid0IHJlbW92ZSBsb2NhbC8qLmNvbmYgaW4gdGhlIGZpcnN0IHBsYWNlIGFueW1vcmUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6NDY6MzcKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBtc2xpZmNha0Bpc3MubmV0OgogICAgICAtIFdoZW4gdGhlIGFnZW50IGlzIGNvbXBpbGVkIHdpdGggSEFWRV9MSUJSUE0gc2V0LCB5ZXQgbm8gZGF0YWJhc2UKICAgICAgICBpcyBmb3VuZCwgYWdlbnQgd2lsbCBjb3JlLi4uCgpoYXJkYWtlciAgNCBNYXIgOTkgMTM6MTg6NDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdm9pZCBjaGVjay4KCm1zbGlmY2FrICA0IE1hciA5OSAxNToxMzowMAogICAgCiAgICAKICAgIChocl9wcm9jLmMsIGxvYWRhdmUuYykgLSBmaXhlZCBjb3JlIG9uIGdldGxvYWRhdmcgaW4gYSBkaWZmZXJlbnQgd2F5Cgptc2xpZmNhayAgNCBNYXIgOTkgMTU6MjU6NTMKICAgIAogICAgKGRpc2suYykgLSBleHBsaWNpdCBicmFjZXMgdG8gYXZvaWQgYW1iaWd1b3VzIGBlbHNlJwoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjI5OjI0CiAgICAKICAgIChocl9kaXNrLmMpIC0gY29uZGl0aW9uYWxseSB1c2UgZGVmaW5lZCBES0MgZGlzayB0eXBlcwoKaGFyZGFrZXIgIDQgTWFyIDk5IDE1OjQ1OjAyCiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgZXhhbXBsZS5jLCBzeXNPUlRhYmxlLmMsIGlwZndhY2MuYywKICAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB2bXN0YXQuYywKICAgICAgdm1zdGF0X2ZyZWVic2QyLmMpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIGhlYWRlcl9zaW1wbGVfdGFibGUgdG8gcmVwbGFjZSBjaGVja21pYigpLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjE0OjE2CiAgICAtIChSRUFETUUuc211eCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSB1cGRhdGUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMTY6MjY6MjYKICAgIC0gKGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gZml4ZXMgZm9yIGR1cGxpY2F0ZSBkZWZpbmVzLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjMyOjE2CiAgICAtIChtaWIyYyk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjUwOjE2CiAgICAtICh1dGlsX2Z1bmNzLmMsIGR1bW15LmMsIGV4YW1wbGUuYywgd29tYmF0LmMsIHRjcC5jLCBocHV4LmMsCiAgICAgIG1lbW9yeS5jLCBhbGFybS5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBtaXNjIGZpeGVzLCAtV2FsbCBtb3N0bHkuCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6MDA6NTAKICAgIAogICAgKHN5c09SVGFibGUuYykgLSByZW1vdmUgc3RhdGljIHVfbG9uZyBsb25nX3JldHVybiwgZm9yIGNvbnNpc3RlbmN5LgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE3OjA3OjEwCiAgICAKICAgIChzb2xhcmlzLmgpIC0gdW5kbyBfU0xBU0hfUFJPQ19NRVRIT0RfIDogYW5vdGhlciB0aW1lCgptc2xpZmNhayAgNCBNYXIgOTkgMTc6NTA6MjkKICAgIAogICAgUmVwbGFjZSB1c2VzIG9mIGJ6ZXJvIHdpdGggbWVtc2V0LCBiY29weSB3aXRoIG1lbWNweS4KICAgIEZpeCBwcm90b3R5cGVzLgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE4OjExOjM3CiAgICAKICAgIChzbm1wX2FwaS5jKSAtIGV4cG9zZSBzbm1wX2ZyZWU7IHNubXBfcGR1X2FkZF92YXJpYWJsZSByZXR1cm5zIHB0ciB0byB2YXIgZm9yCiAgICBmdXR1cmUgaW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkuCgptc2xpZmNhayAgNSBNYXIgOTkgMDk6NDA6MTEKICAgIAogICAgRml4IFdpbjMyIHZlcnNpb24gb2YgZ2V0dGltZW9mZGF5IDogdHZfdXNlYyB3YXMgbWlsbGlzZWNzICwgcmV0dXJuIG5vdyA9IDAKCmhhcmRha2VyICA1IE1hciA5OSAxMDoxMToyOQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHRoZSB1c2Ugb2YgJ2hlYWRlcl9zaW1wbGVfdGFibGUnIHJhdGhlciB0aGFuICdjaGVja21pYicKICAgICAgLSBleHBsaWNpdCBjb21wYXJpc29uIHdpdGggTUFUQ0hfRkFJTEVECiAgICAgIC0gZG9uJ3Qgc2V0IGRlZmF1bHRzIGZvciAnd3JpdGVfbWV0aG9kJyBhbmQgJ3Zhcl9sZW4nCiAgICAJCShzaW5jZSBib3RoICdoZWFkZXJfZ2VuZXJpYycgYW5kICdjaGVja21pYicgZG8gdGhpcyBhbnl3YXkpCiAgICAgIC0gVXNlIGRlZmluZWQgY29uc3RhbnRzIGZvciB2YXJpYWJsZSBpbml0aWFsaXNhdGlvbiBpbiB0aGUKICAgIAkJd3JpdGUgcm91dGluZSAoc2ltaWxhcmx5IGluIHRoZSBtaWIyYy5jb25mIHBhdGNoKQogICAgICAgICAgW1RoaXMgaXMgb25lIG9mIG15IGhvYmJ5LWhvcnNlcyB3aXRoIG91ciBzdHVkZW50cywgc28gSSBkb24ndAogICAgCQkgc2VlIHdoeSAicHJvZmVzc2lvbmFsIiBwcm9ncmFtbWVycyBzaG91bGQgYmUgZXhlbXB0IV0KICAgIAogICAgICAtIE1ha2UgcHJvcGVyIHVzZSBvZiB0aGUgdGhyZWUtcGhhc2UgbmF0dXJlIG9mIFNFVHMKCmhhcmRha2VyICA1IE1hciA5OSAxMDoyMToyNQogICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZTogcmVhcnJhbmdpbmcgYW5kIGNsZWFuaW5nLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDEwOjQyOjQwCiAgICAtIChzbm1wX2FnZW50LmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHN3aXRjaCBDT01NSVQgYW5kIEFDVElPTiBwaGFzZXMuCgptc2xpZmNhayAgNSBNYXIgOTkgMTE6MDI6MzQKICAgIAogICAgKHRjcC5jKSAtIGJyZWFrIG91dCBvZiBpbmZpbml0ZSBsb29wIHdoZW4ga2xvb2t1cCBmYWlscy4KCmhhcmRha2VyICA1IE1hciA5OSAxNToxMzowMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmUgcGVyc2lzdGVudCBzdG9yYWdlIGluZm8sIHNpbmNlIGl0cyBub3QgdXNlZCB0aGlzIHJlbGVhc2UuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6MzE6NTIKICAgIC0gKHNubXBfaW1wbC5oKTogY3JlYXRlIFVORE8KCmhhcmRha2VyICA1IE1hciA5OSAxNTozODozMgogICAgLSAodGttaWIpOiB1cGRhdGUuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6NTc6MzYKICAgIC0gKGtlcm5lbF9zdW5vczUuYywgd29tYmF0LmMsIGhyX25ldHdvcmsuYywgc25tcF9taWIuaCwgc3lzdGVtX21pYi5oLAogICAgICBkaXNrLmgsIGVycm9ybWliLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLCBtZW1vcnlfc29sYXJpczIuaCwgcGFzcy5oLAogICAgICBwcm9jLmgsIHJlZ2lzdHJ5LmgsIHZlcnNpb25pbmZvLmgpOgogICAgICAtIC1XYWxsIGZpeGVzLCBtb3N0bHkgaW5pdF8oKSByb3V0aW5lcyBkZWNsYWlyZWQgaW4gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE2OjAyOjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVwZGF0ZWQgLS1oZWxwJ3MgbW9kdWxlIGxpc3QuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTY6MTA6MzAKICAgIC0gKHZtc3RhdC5oKTogZGVjbGFpciBpbml0X3Ztc3RhdCgpLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjA4OjIxCiAgICAtIChGQVEpOiByZWZlcmVuY2UgQUdFTlQgZG9jdW1lbnQuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTc6MTE6NDgKICAgIC0gKG1pYklJL3N5c3RlbS5oKTogcmVtb3ZlZAoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjE5OjE0CiAgICAtIChGQVEsIE5FV1MpOiBmaW5hbCB1cGRhdGVzLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy41LjIgLT4gVjMuNS4zCgpoYXJkYWtlciAxMiBTZXAgOTggMDk6MDI6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDc6MTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IGlmIGEgbWliIG1vZHVsZSByZXR1cm5zIGFuIGVycm9yID4gU05NUF9HRU5fRVJSLAogICAgICB0cmFuc2xhdGUgdGhlIGVycm9yIHRvIFNOTVBfR0VOX0VSUiBmb3IgdjEgcmVxdWVzdHMuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTM6MTkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyNSBTZXAgOTggMTY6NTM6MzEKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiB1cGRhdGUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDI6MzkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcGVybCBlcSAtPiB0ZXN0ID0gKG9wcHMpLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjA4OjI1CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY2hlY2sgZm9yIGEgbnVsbCBuYW1lLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjQyOjEwCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHVzZSBhIG1lbXNldCB0byB6ZXJvIG91dCBuZXcgcG9pbnRlcnMgaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoKaGFyZGFrZXIgMjggU2VwIDk4IDEzOjA5OjA2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBkb24ndCB1c2UgYSAmIG9uIG9zZjMgZm9yIGFycGNvbS5hY19lbmFkZHIuCgpoYXJkYWtlciAyOCBTZXAgOTggMTM6MDk6NDUKICAgIC0gKHNubXBfYXBpLmMpOiB0eXBlY2FzdCB0aGUgZGVmYXVsdCBjb21tdW5pdHkgc3RyaW5nIHRvICh1X2NoYXIgKikuCgpoYXJkYWtlciAyOCBTZXAgOTggMTU6NDI6MjEKICAgIC0gKG1lbW9yeS5jKTogL2V0Yy9zd2FwaW5mbyAtPiAvdXNyL3NiaW4vc3dhcGluZm8gZm9yIGhwdXgxMC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjUuMSAtPiBWMy41LjIKCmhhcmRha2VyICA4IFNlcCA5OCAwOToyNjoxMwogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyICA4IFNlcCA5OCAwOTozMzoyNQogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyICA4IFNlcCA5OCAwOTozNTo1NQogICAgdmVyc2lvbiB0YWcgKCAzLjUuMSApCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NDU6MjQKICAgIC0gKE1ha2VmaWxlLmluKTogUHV0IGFuIEAgc2lnbiBpbiBmcm9udCBvZiB0aGUgbGFzdCBlY2hvIGxpbmUuCgpoYXJkYWtlciAgOSBTZXAgOTggMDk6NDY6MzUKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9mcmVlYnNkMi5oKToKICAgICAgLSBDaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBVU0VEIC0+IEFWQUlMIHNpbmNlIHRoYXRzIHJlYWxseSB3aGF0CiAgICAgICAgd2UncmUgcmVwb3J0aW5nLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDA5OjUwOjIyCiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfZnJlZWJzZDIuaCk6CiAgICAgIC0gY29ycmVjdCB3b3JrIEkgc3R1cGlkbHkgbWFkZSB3aGVuIHRpcmVkLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDExOjAwOjQ0CiAgICAtIChORVdTKTogdXBkYXRlIGZvciAzLjUuMi4KCm1hcnogIDkgU2VwIDk4ICAxODozMTowMAogICAgLSAoc25tcHRyYXAuYywgc25tcHRlc3QuYyk6IGFkZCBTT0NLXyBtYWNyb3MgZm9yIHdpbjMyIHN1cHBvcnQKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkKQ2hhbmdlczogVjMuNSAtPiBWMy41LjEKCmhhcmRha2VyIDIyIEp1biA5OCAwOToxNjozMgogICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMDoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYW4tPmh0bWwgbWFrZSBzcGVjaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDExOjA4OjQxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzaHV0ZG93biB0cmFwIHNwZWNpZmljYXRpb25zLgogICAgICAtIG1pc2MgbWliIGZpeGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQyOjMyCiAgICAtIChkaXNrLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gZml4IGNhbGN1bGF0aW9uIG9mIHRvdGFsZGlzayBieSBkb2luZyBibG9jayBkaXZpc2lvbiBmaXJzdCB0bwogICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDEwOjQ1OjE1CiAgICAtIChzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOiBQYXRjaAogICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBmb3IgbmV3IGRlZmluZXMgYW5kIHByb3BlciBoZWFkZXIgaW5jbHVkZXMuCgpoYXJkYWtlciAyNiBKdW4gOTggMTU6MDM6MzgKICAgIC0gKGdlbmVyaWMuaCk6IHB1dCBpbiBhIGNvbW1lbnQgdG8ga2VlcCBjb21waWxlcnMgZnJvbSBjb21wbGFpbmluZyB0b28gbXVjaC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjoyNQogICAgLSAoZnJlZWJzZDIuaCk6IHVzZSBfVVRNUF9QQVRIIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNjozNAogICAgLSAoaXJpeC5oKTogZGVmaW5lIF9LTUVNVVNFUgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjI3OjEyCiAgICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICAgc25tcGJ1bGt3YWxrLmRzcCwgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5kc3AsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5kc3AsIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5kc3AsIHNubXBzZXQucGxnLAogICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgICBzbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsuZHNwLCBzbm1wd2Fsay5wbGcpOiBQYXRjaCBmcm9tIEpvZQogICAgICBNYXJ6b3Q6CiAgICAgIC0gd2luMzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU4OjAzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGZpeCAibnVtYmVyIG9mIHJldHJpZXMiIGJ1Zy4KICAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCmhhcmRha2VyICA4IEp1bCA5OCAxMzowMjowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDM6MzYKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgZnJlZSBlbnYgcG9pbnRlcnMgdGhhdCBhcmUgY3JlYXRlZC4KCmhhcmRha2VyICA4IEp1bCA5OCAxMzowODoxOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBtaXNzaW5nIG9iamVjdCBpZGVudGlmaWVyIGxhYmVscy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0Mzo1NgogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIGZpeGVzLgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6MzQKICAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjQxCiAgICAtICh2ZXJzaW9uaW5mby5jKTogaW5jbHVkZSBzeXN0ZW0uaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjIyCiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjI4CiAgICAtIChzZWRzY3JpcHQuaW4pOiB1c2luZ19tb2R1bGUgY2hhbmdlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0Njo1NQogICAgLSAobWVtb3J5LmgpOiBNRU1TV0FQTUlOSU1VTSB3YXNuJ3QgYmVpbmcgdXNlZC4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoxMToxMAogICAgLSAoVUNELVNOTVAtTUlCLmluYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlZCBzbWljbmcgaW5wdXQgZmlsZS4KICAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjIyOjMyCiAgICAtIChSRkMtMTIxNS50eHQpOiBjcmVhdGVkIGFuIGVtcHR5IG1pYiBtb2R1bGUgZm9yIGltcG9ydGluZyBvZiBUUkFQLVRZUEUuCgpoYXJkYWtlciAxNyBKdWwgOTggMTY6NTk6NTEKICAgIC0gKCopOiB1cGRhdGUgZm9yIDMuNS4xLgoKaGFyZGFrZXIgMjAgSnVsIDk4IDE3OjE0OjIxCiAgICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNTozNTowNwogICAgLSAobWliLmMpOiBkb24ndCBjaGFuZ2UgcnVubmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBzdHJ0b2suCgpoYXJkYWtlciAyMiBKdWwgOTggMTY6MjM6NDUKICAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4pOiBmaXggc2Vkc2NyaXB0IGluY2x1ZGVzLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDA5OjI1OjMzCiAgICAtIChkaXNrLmMpOiBpbmNyZW1lbnQgaW5kZXggYnkgMSBzbyBpdCBkb2Vzbid0IHN0YXJ0IGF0IDAuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MDI6MTQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB2YXJpb3VzIGRvY3VtZW5hdGlvbiB1cGRhdGVzIGFuZCBub3Rlcy4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMDowMjoyNQogICAgLSAoc25tcHRyYW5zbGF0ZS4xKTogbnJvZmYgZXJyb3IuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MjU6NDQKICAgIC0gKHNubXB0cmFwZC44KTogYnJvdWdodCB1cCB0byBkYXRlLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEyOjEwOjA3CiAgICAtIChzbm1wLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEyOjI0OjIyCiAgICAtIChhY2wuaCwgYXNuMS5oLCBtZDUuaCwgbWliLmgsIHBhcnNlLmgsIHNubXAuaCwgc25tcF9hcGkuaCwKICAgICAgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsIHZhY20uaCwgdmlldy5oKToKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9ucy4KCmhhcmRha2VyIDI5IEp1bCA5OCAxMzo0NDoyMgogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGluc3RhbGwgc2hvdWxkIGRvIGEgcmVhbCBtYWtlIGFsbCBmaXJzdC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1NzoxOAogICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiBmaXhlcyBmb3IgdjJwYXJ0IG1vZHVsZXMuCgpoYXJkYWtlciAxMiBBdWcgOTggMTU6NTc6NDIKICAgIC0gKGV4dGVuc2libGUuYywgcHJvYy5jKTogZml4aXQgcHJvYmxlbXMgd2l0aCBhcnJheSBpbmRleCB3cm9uZy4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNTo1Nzo1MgogICAgLSAobGlic25tcC5kZWYpOiBmaW5kX21vZHVsZSBhZGRlZC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjowNToyOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGxpYndyYXAgY29tbWFuZCBsaW5lIGZpeGVzLgogICAgICAtIC0td2l0aC1sZGZsYWdzIGNvbW1hbmQgbGluZSBvcHRpb24gY3JlYXRlZC4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1NTozMgogICAgLSAobWliX2FwaS4zLCBzbm1wZC4xLmRlZiwgdmFyaWFibGVzLjUpOiB1cGRhdGVzIHRvIHJlbW92ZSBtaWIudHh0IHJlZmVyZW5jZXMuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTg6MTEKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gZG9uJ3QgaW5jbHVkZSBsaWJyYXJpZXMgdGhhdCBhcmVuJ3QgbmVlZGVkIGlmIGdldGhvc3RieW5hbWUgaXNuJ3QgaW4gb25lLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU5OjUwCiAgICAtIChzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCB0aGUgRVJST1JfTVNHKCkgbWFjcm8gdG8gdXNlIHNubXBfc2V0X2RldGFpbC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODoyMTo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYyk6IHVzYWdlIGZpeGVzIGFuZCAtbS8tTSB0byBzbm1wdHJhbnNsYXRlLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQyOjQ5CiAgICAtIChhdXRvX25saXN0LmMpOiBmaXggZm9yIHN0dXBpZCBhaXgga2VybmVscy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgLSAodWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdF9mcmVlYnNkMi5jKTogUGF0Y2ggZnJvbSBKb25hcyBPbHNzb246CiAgICAgIC0gbWFrZSB0aGUgbWVtb3J5IGFuZCB2bXN0YXQgbW9kdWxlIHdvcmsgdW5kZXIgZnJlZWJzZDIuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICBmaWxlIHZtc3RhdF9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDoyOQogICAgLSAoUkVBRE1FKTogQWRkZWQgdHdvIG5ldyBuYW1lcyB0byB0aGUgdGhhbmt5b3UgbGlzdC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDozNwogICAgLSAoc2Vkc2NyaXB0LmluKTogY29ycmVjdCBpbmNsdWRlIGZpbGVzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjUyCiAgICAtIChNYWtlZmlsZS5pbik6IENQUCBuZWVkcyB0byBjaGVjayBhZ2VudC9taWJncm91cCBmb3IgaGVhZGVycy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo1MjozMgogICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGFkb3B0IHVua25vd24gY2hpbGRyZW4gaW50byB0aGUgY29ycmVjdCBwbGFjZSBpZiBJTVBPUlRTIGFyZSBzY3Jld2VkIHVwLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA5OjMyOjQ1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEphbWVzIEguIFlvdW5nOgogICAgICAtIHVzYWdlIG91dHB1dCBjbGVhbiB1cC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxMzoxMwogICAgLSAoQ09QWUlORyk6IGNvcHlyaWdodCBjaGFuZ2UuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTQ6MDYKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIE1hbGxvYyAtPiB4bWFsbG9jLgogICAgICAtIHBhcnNlciBjaGFuZ2VzLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjE0OjU5CiAgICAtIChhdC5jKTogZml4ZXMgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAzOjAyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6MjUKICAgIC0gKHNubXBfdmFycy5jKTogaW5fYV92aWV3KCk6IGNyZWF0ZSBuZXcgZnVuY3Rpb24sIGFuZCB1c2UgaXQuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6NTAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9pbXBsLmgpOiBmaXggcmVhZC93cml0ZSBjaGVja3MuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDM6MDIKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDoyNQogICAgLSAoc25tcF92YXJzLmMpOiBpbl9hX3ZpZXcoKTogY3JlYXRlIG5ldyBmdW5jdGlvbiwgYW5kIHVzZSBpdC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjoxMDo1MAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2ltcGwuaCk6IGZpeCByZWFkL3dyaXRlIGNoZWNrcy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjozNzowNAogICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxNjozNzoxNQogICAgdmVyc2lvbiB0YWcgKCAzLjUuMS5wcmUxICkKCmhhcmRha2VyICAyIFNlcCA5OCAxMDo1NTo1MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsIHNubXAycC5jLCBzbm1wX2FnZW50LmMsCiAgICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBzbm1wZC5oLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywgc3lzdGVtLmgsCiAgICAgIHRjcC5jLCBzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwKICAgICAgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsCiAgICAgIHNubXB0cmFwZC5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCBtaWJfYXBpLjMsIHNubXBfYXBpLjMsCiAgICAgIHNubXBkLjEuZGVmLCBmcmVlYnNkLmgsIGZyZWVic2QyLmgsIG5ldGJzZC5oLCBhc24xLmgsIG1pYi5jLAogICAgICBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGVzLCBhcyB1c3VhbCAod2hlbiBpcyBldmVyeWJvZHkgc3RhcnRpbmcgdG8gdXNlIC1XYWxsCiAgICAgICAgLVdzdHJpY3QtcHJvdG90eXBlcyAuLi4uKQogICAgICAtIHNubXBkIHNlbmQgYW4gZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwIHdoZW4gaXQgdGVybWluYXRlcwogICAgICAtIHBvc3NpYmlsaXR5IGZvciBzZW5kaW5nIHYyYyB0cmFwcyAob3IgaW5mb3JtcyksIHZpYSB0cmFwMnNpbmsgZGlyZWN0aXZlCiAgICAgIC0gZml4ZXMgdG8gc25tcGxpYiBhbmQgc25tcHRyYXBkIGZvciBidWdzIHVuY292ZXJlZCB3aGVuIHNubXBkIHNlbmRzCiAgICAgICAgYW4gSU5GT1JNIGluc3RlYWQgb2YgYSBUUkFQCiAgICAgIC0gLW0gYW5kIC1NIG9wdGlvbiBmb3Igc25tcHRyYXBkCiAgICAgIC0gLUQgb3B0aW9uIGZvciBzbm1wdHJhbnNsYXRlCiAgICAgIC0gZml4ZXMgdG8gY29uZmlndXJlIHRvIGNvcnJlY3RseSBjYWxsIEFMTCBtb2R1bGUgaW5pdCBmdW5jdGlvbnMKICAgICAgLSBtYWpvciByZXdvcmsgb2YgdGNwLmMsIGZvciBuZXRic2QuIEkgaG9wZSB0aGlzIGlzIE9LIG5vdywgSSBoYXZlbnQgaGFkCiAgICAgICAgdGltZSB0byB0ZXN0IGl0IG9uIGFsbCBwbGF0Zm9ybXMgeWV0IC0gYnV0IHRpbGwgZnJpZGF5IDotKQogICAgICAtIHNubXBuZXRzdGF0IHByaW50cyB1ZHAgc29ja2V0IHRhYmxlCiAgICAgIC0gc29tZSBDTVVfQ09NUEFUSUJMRSBzdHVmZgogICAgICAtIG1hbiBwYWdlIGZpeGVzLCB3aXRoIGFuIGluY2x1ZGUgbGlzdCB0aGF0IHdvcmtzIQoKaGFyZGFrZXIgIDIgU2VwIDk4IDEwOjU4OjEwCiAgICAtICh0Y3AuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAtICBDb21iaW5lIHRoZSB0d28gKGFsbW9zdCkgaWRlbnRpY2FsIG5vbi1zb2xhcmlzIGNhc2VzCiAgICAtICBBZGQgc3VwcG9ydCBmb3IgdGhlIG1pc3NpbmcgTGludXggZW50cmllcyAoSW5FcnJzL091dFJzdHMpCiAgICAtICBBZGQgc3VwcG9ydCBmb3IgdGhlIG1pc3NpbmcgU29sYXJpcyBlbnRyeSAoT3V0UnN0cykKCmhhcmRha2VyICAyIFNlcCA5OCAxMTowMzozMwogICAgLSAodGNwLmMpOiByZXZlcnNlIERhdmUncyBjaGFuZ2VzIHNpbmNlIHRoZXkgY29uZmxpY3Qgd2l0aCBOaWVscycuCgpoYXJkYWtlciAgMiBTZXAgOTggMTI6MTk6MDMKICAgIC0gKGV4dGVuc2libGUuYywgcHJvYy5jKTogdXNlIGNvcnJlY3QgbmFtZSBpbmRleCBmb3IgbG9va3VwcyBvbiB3cml0ZXMuCgpoYXJkYWtlciAgMiBTZXAgOTggMTI6MTk6MzMKICAgIC0gKHNubXBfYWdlbnQuYyk6IGNoZWNrIHRvIG1ha2Ugc3VyZSBvcGVyYXRpb24gaXMgbm90IGEgU0VUIHdoZW4KICAgICAgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgc3VjaCBhcyBub1N1Y2hOYW1lLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE0OjA0OjQyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvbid0IGluY2x1ZGUgbW9kdWxlcyBub3QgcmVxdWVzdGVkIGV2ZW4KICAgICAgaWYgcmVxdWlyZWQgYnkgYW5vdGhlciBtb2R1bGUuCgpoYXJkYWtlciAgMiBTZXAgOTggMTQ6MTA6NTMKICAgIHZlcnNpb24gdGFnICggMy41LjEucHJlMiApCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDM6MzAKICAgIC0gKFRPRE8pOiBhZGRlZCBzZWN1cml0eSBjaGVja3MuCgpuYmEgIDMgU2VwIDk4IDE0OjI5OjAzCiAgICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KCmhhcmRha2VyICA0IFNlcCA5OCAxMDowOTo0NwogICAgLSAoaW50ZXJmYWNlcy5jKTogZml4IGZvciBzZ2kncy4KCmhhcmRha2VyICA0IFNlcCA5OCAxNDoxNDoxOQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gZml4IHRvIGFsbG93IG5vbi1zb3VyY2UgZGlyZWN0b3J5IGJ1aWxkcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDoxMDowNQogICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpZmRlZiByZS1vcmRlcmluZyBmaXhlcyBmb3IgYWxwaGEvbGludXguCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDc6MDAKICAgIC0gKHByb2MuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHNvbGFyaXMgMi42IGZpeGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ4OjA5CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDYXRjaCBzdWJpZGVudGlmaWVyIGNvcnJlY3RseS4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0OTowOAogICAgLSAoYXNuMS5oKTogcmVtb3ZlIF9fUCgpIGRlZmluaXRpb24uCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDk6NTMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWFsbG9jIGNvcnJlY3Rpb25zIGZvciBFTlYgdmFycy4uCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTE6MjIKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgaW5pdF9taWJfaW50ZXJuYWwoKSBjYWxscy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo1MzoxMQogICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBleGl0IC0+IHJldHVybiBvbiB3aW4zMiBzeXN0ZW0gcm91dGluZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTU6NTEKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBOVUxMIHJldHVybiBieSBtYWxsb2MgcHJvdGVjdGVkLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjE3OjM2CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgZGVzY3JpcHRpb24gb2YgdGhlIHZpZXcgbWFzay4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgLSAobWVtb3J5X2ZyZWVic2QyLmgsIHZtc3RhdF9mcmVlYnNkMi5oKTogY3JlYXRlZCBmcm9tIG1lbW9yeS5oIGFuZCB2bXN0YXQuaAoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjI3OjQyCiAgICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6NDc6MzcKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmggZm9yIHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjU0OjE2CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY2hlY2sgbWFsbG9jIGNhbGxzIG1vcmUgY2FyZWZ1bGx5LgogICAgICAtIG1pc2MgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEzOjE1OjI2CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgY29uZmlnLmggYXMgJChpbmNsdWRlZGlyKS91Y2Qtc25tcC1jb25maWcuaC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMzoyMToxOAogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oKToKICAgICAgLSBNRU1VU0VEUkVBTCAtPiBNRU1BVkFJTFJFQUwgKHR5cGVkZWYgcmVuYW1pbmcgdG8gbWF0Y2ggZnVuY3Rpb25hbGl0eSkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTQ6MDY6MjEKICAgIC0gKHRjcC5jKTogYmFjayBvdXQgTmllbHMnIGNoYW5nZXMgc2luY2UgdGhleSBicm9rZSBvdGhlciBhcmNoaXRlY3R1cmVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE0OjE5OjI0CiAgICAtIChNYWtlZmlsZS5pbihzKSk6IG1ha2UgZGVwZW5kcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxNjozOTo1OQogICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jKTogNjRiaXQgbG9uZyByZXR1cm4gY2xlYW4gdXBzLgoKbWFyeiAgNyBTZXAgOTggMTk6MDE6MDEKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluCgptYXJ6ICA3IFNlcCA5OCAxOTowMjowMQogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4sZml4IHdpbjMyIGNvbXBpbGUgZXJyb3Igdy8gbm9uIGludGVncmFsc3dpdGNoIGNhc2UKCm1hcnogIDcgU2VwIDk4IDE5OjAzOjMzCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbiwgcmVzb2x2ZSBjb25mbGljdCB3LyBzdGQgbGliIGxvZyBmdW5jdGlvbgoKbWFyeiAgNyBTZXAgOTggMTk6MzA6MTEKICAgIHJlbmFtZSBhbmQgc3RhdGljIGxpbmsgZGVidWcgdGFyZ2V0cywgZGxsIHRvIGJpbiBkaXIsIGFkZGVkIHNubXB0ZXN0LCBzbm1wdHJhcCwgc25tcGRlbHRhIHByb2plY3RzCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wZGVsdGEuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXBkZWx0YS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRlc3QuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0ZXN0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdHJhcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRyYXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICByZW5hbWUgYW5kIHN0YXRpYyBsaW5rIGRlYnVnIHRhcmdldHMsIGRsbCB0byBiaW4gZGlyLCBhZGRlZCBzbm1wdGVzdCwgc25tcHRyYXAsIHNubXBkZWx0YSBwcm9qZWN0cwoKaGFyZGFrZXIgIDggU2VwIDk4IDA5OjI2OjEzCiAgICAtIChORVdTKTogdXBkYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNCAtPiBWMy41CgpoYXJkYWtlciAyNCBNYXkgOTggMTU6MjI6MjEKICAgIC0gKEZBUSk6IHVwZGF0ZSB0byBjaGFuZ2UgYSBmZXcgdGhpbmdzLgoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjM4CiAgICAtIChORVdTKTogY2hhbmdlIHZhY20gbmV3cyB3b3JkaW5nLgoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjU3CiAgICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggZm9yIG5ldGJzZCA8IDEuMy4KCmhhcmRha2VyIDI5IE1heSA5OCAxMDoxNDozMgogICAgLSAoYXQuYyk6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6IGZpeCBmb3IgaXJpeC4KCmhhcmRha2VyIDI5IE1heSA5OCAxMDoyNDo1NAogICAgLSAoc25tcF9hcGkuYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gZml4IGNvbW11bml0eSBuYW1lIGxlbmd0aCBwcm9ibGVtcyBhbmQgaW5jcmVhc2Ugc2l6ZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxMToyNjo0NwogICAgLSAoY29uZmlndXJlLmluKTogcGF0Y2ggZnJvbSBOaWVsczogaW5jbHVkZSBzeXMvc29ja2V0IGluIGlmX210dSB0ZXN0LgoKaGFyZGFrZXIgMjkgTWF5IDk4IDExOjI3OjU5CiAgICAtIChjb25maWd1cmUpOiBtYWtlIG9mIGNvbmZpZ3VyZS4KCmhhcmRha2VyIDI5IE1heSA5OCAxMTozNDo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKToKICAgICAgLSBBZGQgYSBkZXBlbmRhbmN5IGxpbmUgZm9yIHNubXBfdmFycy5vIGZvciBhbGwgdGhlIG1vZHVsZSBpbmNsdWRlcy4KCmhhcmRha2VyIDI5IE1heSA5OCAxNToyMDo1MwogICAgLSAoVE9ETyk6IHdpblNOTVAgbWVudGlvbi4KCmhhcmRha2VyIDI5IE1heSA5OCAxNToyMToxMwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgYWJpbGl0eSB0byBzcGVjaWZ5IG1pYiBpbmZvcm1hdGlvbiBvbiB0aGUgY21kIGxpbmUuCgpoYXJkYWtlciAyOSBNYXkgOTggMTY6MjE6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtb3ZlZCBtb3N0IG1pYmdyb3VwIHBpZWNlcyBpbnRvIHJlbGV2ZW50IHN1Yi1kaXJlY3Rvcmllcy4KICAgICAgICAtIGNoYW5nZWQgYWxsIGhlYWRlciBmaWxlIGFuZCAjaWZkZWYgVVNJTkdfKiBsaW5lcyB0byByZWZsZWN0IHRoaXMuCgpoYXJkYWtlciAyOSBNYXkgOTggMTY6MjE6NTEKICAgIC0gKHNubXBfaW1wbC5oKTogY2hhbmdlIHBkdSB2ZXJzaW9uIGZyb20gbG9uZyB0byBpbnQuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTU6NDUKICAgIC0gKGFzbjEuYywgYXNuMS5oLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gaW1wbGVtZW50IHNwZWNpYWwgZGF0YSB0eXBlcyB2aWEgb3BhcXVlczogZmxvYXQsIGRvdWJsZSwgaW50NjQsIHVpbnQ2NHMuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTY6MDcKICAgIC0gKHNubXBzZXQuYyk6IGVuYWJsZSBzZXR0aW5nIG9mIG9wYXF1ZSBmbG9hdHMsIGRvdWJsZXMsIGludDY0cywgdWludDY0cy4KCmhhcmRha2VyIDMxIE1heSA5OCAxNzo1Njo1NQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtYWtlIGl0IHBvc3NpYmxlIG5vdCB0byB1c2Ugb3BhcXVlIHNwZWNpYWwgdHlwZXMgd2l0aCBuZXcgY21kIGxpbmUgZmxhZy4KCmhhcmRha2VyICAyIEp1biA5OCAxNDoyMzoxNQogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfbmV0d29yay5jLCBocl9vdGhlci5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaHJfdXRpbHMuYywgYXQuYywgaW50ZXJmYWNlcy5jLAogICAgICB2YXJfcm91dGUuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZnJlZWJzZDIuaCwgaHB1eC5oLCBsaW51eC5oLCBuZXRic2QuaCwKICAgICAgc29sYXJpcy5oLCBzeXN2LmgsIGFzbjEuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXV0aC5jLAogICAgICBzbm1wX2ltcGwuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgICAtIG1ha2UgaG9zdCByZXNvdXJjZXMgd29yayB1bmRlciBOZXRCU0QsIEZyZWVCU0QsIFNvbGFyaXMgYW5kIExpbnV4LgogICAgICAgIC0gU3VuT1M0IGFsbW9zdCB3b3Jrcy4KICAgICAgLSBBZGQgLXMvLVMgdG8gY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHByaW50aW5nIG9mIHNob3J0ZXIgb2lkcy4KICAgICAgLSBudW1lcm91cyBidWcgZml4ZXMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTE6MTAKICAgIC0gKHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLAogICAgICBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgICAgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgpOgogICAgICAtIG1vdmVkIHNtdXggc3R1ZmYgaW50byBhIHNtdXggc3ViLWRpcmVjdG9yeS4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODoxNQogICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gbW92ZWQgaXBmd2FjYyB0byB1Y2RhdmlzLjEzIGFuZCByZW1vdmVkIF5NcyBhbmQgc29tZSBibGFuayBsaW5lcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODo0NAogICAgLSAoSU5TVEFMTCk6IG1lbnRpb24gaXBmd2FjYwoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjU4OjU5CiAgICAtIChSRUFETUUpOiBtZW50aW9uIENyaXN0aWFuIEVzdGFuIGluIHRoZSBjb2RlcnMgbGlzdC4KCmhhcmRha2VyICAzIEp1biA5OCAxMTowNjo0NwogICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgpOiBQYXRjaCBmcm9tIEV1Z2VuZSBQb2xvdm5pa292OgogICAgICAtIGltcGxlbWVudCBhIGR5bmFtaWMgbG9hZGluZyBtb2R1bGUgZm9yIGxvYWRpbmcgc2hhcmVkIG9iamVjdCBtaWIgbW9kdWxlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxMToxMDo0OAogICAgLSAoUkVBRE1FLCBleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oLCBleGFtcGxlLmMsCiAgICAgIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKToKICAgICAgLSBtb3ZlZCB3b21iYXQgYW5kIGV4YW1wbGUgdG8gZXhhbXBsZXMvIGRpcmVjdG9yeS4KCmhhcmRha2VyICAzIEp1biA5OCAxMToyNzoyNwogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogaW5jbHVkZSBtaWJJSS9zbm1wX21pYi5oLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDExOjI5OjA0CiAgICAtIChtaWIuYyk6IG1pc3NlZCBhIG5lZWRlZCBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBpZmRlZi4KCmhhcmRha2VyICAzIEp1biA5OCAxMjoxNzowMAogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgICAtIGZpeCBwZHUtPnZlcnNpb25zIHRvIGJlIGFsbCBpbnRzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjM5OjEyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IE5ldyBmbGFnczoKICAgICAgLSAtLXdpdGgtY2M9Q0MKICAgICAgLSAtLXdpdGgtY2ZsYWdzPUNGTEFHUwoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjQzOjQ3CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXB0cmFwZC5jKToKICAgICAgLSBjaGVjayBmb3IgZ2V0ZHRhYmxlc2l6ZSBhbmQgdXNlIGEgZ2VuZXJpYyBpZiBub3QgYXZhaWxhYmxlLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjUyOjI4CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGZyZWVic2QyLmgpOgogICAgICAtIG1vdmUgY29uZmlndXJhYmxlIGRlZmluZXMgdG8gY29uZmlndXJlIHJhdGhlciB0aGFuIGluIGZyZWVic2QyLmguCgpoYXJkYWtlciAgMyBKdW4gOTggMTM6NTU6NDAKICAgIC0gKGkzODYuaCwgaTU4Ni5oLCBpNjg2LmgpOiByZW1vdmVkIHRoZXNlICh1bnVzZWQpIGhlYWRlcnMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MDI6MzQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IG5ldyAtLXdpdGgtY2MgYW5kIC0td2l0aC1jZmxhZ3MgYXJndW1lbnRzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjIxOjEwCiAgICAtIChocl9kaXNrLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgc25tcHNldC5jLCBhc24xLmgsCiAgICAgIGludDY0LmMsIGludDY0LmgsIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAgLSAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDoyMzoxNAogICAgLSAoTWFrZWZpbGUuaW4ncyk6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjI0OjU4CiAgICAtIChNYWtlZmlsZS5pbik6IHJlYWRfY29uZmlnLm8gaXMgbWlibW9kdWxlIGhlYWRlciBkZXBlbmRhbnQgdG9vLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjI2OjEwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUxICkKCmhhcmRha2VyICA1IEp1biA5OCAxMDo1MjoxMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRlc3QgZm9yIHNldGVudi4KCmhhcmRha2VyICA1IEp1biA5OCAxMDo1Mjo0MAogICAgLSAobWFrZXRhcmdldCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc3VwcG9ydCBmb3IgbGFyZ2VyIHRyZWUgZGVwdGhzLgoKaGFyZGFrZXIgIDUgSnVuIDk4IDEwOjU0OjMxCiAgICAtIChhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIE1JQl9BQ0NFU1MgZGVmaW5lIGNoYW5nZXMuCiAgICAgIC0gc2V0ZW52IGltcGxlbWVudGF0aW9uLgogICAgICAtIGlmZGVmIHdyYXBwZXJzIGZvciBPUEFRVUVfU1BFQ0lBTF9UWVBFUy4KCmhhcmRha2VyICA4IEp1biA5OCAxMDo1MDoxMgogICAgLSAoRkFRKTogdXJsIHR5cGUgc3BsaXR0aW5nLgoKaGFyZGFrZXIgIDggSnVuIDk4IDEyOjM0OjA5CiAgICAtIChNYWtlZmlsZS5pbik6IGNyZWF0ZSBhIC5jIC0+IC5vIHJ1bGUgdG8gbWFrZSBzdXJlIGFuZCBwbGFjZSB0aGUKICAgICAgb2JqZWN0IGZpbGVzIGluIHRoZSBhcHByb3ByaWF0ZSBzdWJkaXJlY3Rvcmllcy4KCmhhcmRha2VyICA4IEp1biA5OCAxMzo1OTowOAogICAgLSAoUkVBRE1FKTogQWRkZWQgRXVnZW5lJ3MgbmFtZS4KCmhhcmRha2VyICA4IEp1biA5OCAxMzo1OToyNQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSByZmMgIyBmb3IgdmFjbSByZWZlcmVuY2UuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MTI6MzcKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHJlbW92ZSBtb3JlIGNvbmZpZyBjcmVhdGVkIGhlYWRlcnMgb24gbWFrZSBjb25maWdjbGVhbi4KCmhhcmRha2VyICA4IEp1biA5OCAxNDoxNjoyNgogICAgLSAobGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IHczMiB1cGRhdGUuCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MjI6NTAKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaAogICAgIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBhc3luYyBzdHVmZiBhZGRlZC4KICAgICAgLSBnZXRfdGMgYWRkZWQuCiAgICAgIC0gYmV0dGVyIGNvbW1lbnRzIGluIHNvbWUgcGxhY2VzLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjU1OjUzCiAgICAtIChzbm1wX2FwaS5jKTogdW5kaWQgcmVkbyBvZiBjb21tZW50IG9mIGdldHRpbWVvZmRheSgpLgoKaGFyZGFrZXIgMTAgSnVuIDk4IDA3OjExOjQ0CiAgICAtIChjb25maWcuaC5pbik6IGhhdmVfc2V0ZW52LgoKaGFyZGFrZXIgMTAgSnVuIDk4IDA4OjUzOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtICBzdGFydHMgdG8gc2VwYXJhdGUgb3V0IHRoZSBoaXN0b3JpYyBTTk1QdjIgc3R1ZmYuCiAgICAgIC0gIGRvZXMgYSBiaXQgb2YgJ2NvZGUgdGlkeWluZycuCiAgICAgIC0gIHN0YXJ0cyB0byBtb3ZlIHRvd2FyZHMgcG9ydC1zcGVjaWZpYyBoYW5kbGVycy4KCmhhcmRha2VyIDEwIEp1biA5OCAxNDoxNTo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMiApCgpoYXJkYWtlciAxMCBKdW4gOTggMTU6MzA6NTkKICAgIC0gKFRPRE8pOiBhZGRlZCBEYXZlJ3MgbGlzdC4KCmhhcmRha2VyIDEwIEp1biA5OCAxNTozMToxMgogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCmhhcmRha2VyIDEwIEp1biA5OCAxNTo0Nzo1OQogICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiAtV2FsbCBjbGVhbnVwcy4KCmhhcmRha2VyIDEyIEp1biA5OCAwODo1MjoyOAogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB1cGRhdGUgZm9yIFZBQ00gc3R1ZmYuCgpoYXJkYWtlciAxMiBKdW4gOTggMTA6MTI6MjcKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBzaG93IHZhY20gZXhhbXBsZSBmb3IgcHVibGljL3ByaXZhdGUgZnJvbSBhbnl3aGVyZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMDoxMjo0MAogICAgLSAoTkVXUyk6IG1pbm9yIHVwZGF0ZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzoxMgogICAgLSAoc25tcF9hcGkuYyk6IHRyYXAgdHlwZXMgd2VyZSBpbnQncyBub3QgbG9uZ3MgKGZhaWxlZCB1bmRlciA2NGJpdCBhcmNoKS4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzoyNwogICAgLSAocGFyc2UuYyk6IGZ1bmN0aW9uIG5hbWUgdHlwby4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzozOQogICAgLSAod2luMzIvY29uZmlnLmgpOiBkb24ndCBoYXZlIHNldGVudi4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzoxMzo1NwogICAgLSAobGlic25tcC5kZWYpOiBhZGQgc2V0ZW52IHRvIHRoZSBsaXN0LgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEzOjQzOjQxCiAgICAtIChORVdTKTogNjRiaXQgZml4IG1lbnRpb25lZC4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzo0ODoyMQogICAgLSAoa2VybmVsLmMpOiBkb24ndCBwcmludCBrbHJlYWQgZXJyb3JzIHVubGVzcyBpbiBkZWJ1Z2dpbmcgbW9kZS4KCmhhcmRha2VyIDEyIEp1biA5OCAxNToxNzo0NwogICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZSBhbmQgdXNlIGEgdWNkRXhwZXJpbWVudGFsIHNlY3Rpb24gZm9yIHRoZSBpcGZ3YWNjIG1pYiB0aWxsCiAgICAgICAgaXQgc3RhYmlsaXplcy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODowODoyMwogICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1pc2MgdHlwZSBmaXhlcy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODowODo1OAogICAgLSAoc25tcGRlbHRhLmMpOiB1c2FnZSgpIHVwZGF0ZS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMDowMgogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsCiAgICAgIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMSwgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXAuMSwKICAgICAgc25tcHdhbGsuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jdW1lbnRhdGlvbiBjbGVhbnVwIGFuZCBjZW50cmFsaXphdGlvbiBvZiBjb21tb24gb3B0aW9ucy4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoxMDo1NAogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiY29weSAtPiBtZW1jcHkuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MTE6MjIKICAgIC0gKG1pYi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSByZW1vdmUgMm5kIGluaXRfbWliKCkgcHJvdG90eXBlLgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjIxOjUzCiAgICAtIChSRUFETUUsIEFkZE1vZHVsZUZvckR1bW1pZXMudHh0LCBEVU1NWS1NSUIudHh0LCBkdW1teS5jLCBkdW1teS5oKToKICAgICAgUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgICAtIG1pYiBtb2R1bGUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBmb3IgZHVtbWllcy4KCmhhcmRha2VyIDE3IEp1biA5OCAxNToyNzoxMwogICAgLSAoUkVBRE1FKTogbWVudGlvbiBkdW1teSBncm91cC4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo0MTowMAogICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQ6IG5vdCBmb3VuZCBtb2R1bGVzIHdpdGggY29uZmlndXJlPy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo0NjozMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIEJTREkgdXNlcnMgYWdhaW5zdCAvdXNyL3VjYi9jYy4KCmhhcmRha2VyIDE5IEp1biA5OCAwODo1ODowNQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgIC0gZXhhbXBsZSBvdXRwdXQgY29ycmVjdGlvbnMuCgpoYXJkYWtlciAxOSBKdW4gOTggMDg6NTk6NTMKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAgLSBpbnN0YWxsIElQRldBQ0MgbWliLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjAzOjQ4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpeCByZWdpc3Rlcl9taWIoKSB0byBpbml0IHBvaW50ZXJzIHRvIG51bGwuCgpoYXJkYWtlciAxOSBKdW4gOTggMTI6NTA6NTUKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGZpeCBjaGVja21pYigpIGluIGNhc2Ugd2UgZ2V0IGNhbGxlZCBvbiBhIGdldCB3aGVuCiAgICAgIHdlIHJlYWxseSBzaG91bGRuJ3QgKGJhZCBhcnRpZmFjdCBvZiBuZXcgdHJlZSBzdHJ1Y3R1cmUpLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjUzOjIyCiAgICAtIChzbm1wX3ZhcnMuYyk6IG1lbXNldCB0byAwIHRoZSBlbnRpcmUgc3VidHJlZSBzdHJ1Y3QuCgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MDE6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxOSBKdW4gOTggMTM6MTI6NTUKICAgIC0gKE5FV1MpOiBMYXN0IHVwZGF0ZSBmb3IgMy41LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMyAtPiBWMy40CgpoYXJkYWtlciAgMSBEZWMgOTcgMTI6NDQ6MjQKICAgIC0gKCopOiAzLjMuMSBicmFuY2ggbWVyZ2VkIGludG8gbWFpbiBkZXZlbG9wbWVudCBicmFuY2guCgpoYXJkYWtlciAgNSBEZWMgOTcgMDg6NDY6NTAKICAgIC0gKHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1ha2UgdHJhcCB2YXJpYWJsZXMgbG9uZydzIG5vdCBpbnRzIGZvciA2NGJpdCBtYWNoaW5lcyB0byBtYXRjaAogICAgICAgIGFzbl9idWlsZF9pbnQgZnVuY3Rpb25zLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDExOjU4OjUyCiAgICAtIChhcHBzLyouYyk6IHN1cHBvcnQgcmFuZG9tIGFjY2VzcyByZXF1ZXN0cyBvbiBhbGwgYXBwcyB2aWEgLVIgc3dpdGNoLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDE0OjMwOjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gaW5zdGVhZCBvZiBlcnJvciBmb3IgY29uZmlnX3JlcXVpcmUgbWFjcm8ncy4KCmhhcmRha2VyIDE1IERlYyA5NyAxMTowODowMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgbWFjcm8gdG8gY2hhbmdlIGRlZmF1bHQgTUlCUyB3aGVuIG1vZHVsZXMgYXJlIGNvbXBpbGVkOgogICAgICAgIGNvbmZpZ19hZGRfbWliKCkuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTE6MDg6MTkKICAgIC0gKGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oKToKICAgICAgLSB1c2UgY29uZmlnX2FkZF9taWIoKS4KCmhhcmRha2VyIDE1IERlYyA5NyAxMToxNDoxOAogICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsCiAgICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHdvbWJhdC5jLCBjb21tb25faGVhZGVyLmgpOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gTGVpbmVuIHRvIGltcHJvdmUgaXJpeCA2LjIgc3VwcG9ydC4KCmhhcmRha2VyIDE1IERlYyA5NyAxNTowNzoyNgogICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4pOiBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgLSBtaXN0YWtlOiAgYnNkaSB3YXMgZ2V0dGluZyBkZWZpbmVkIGFzIGlyaXguCiAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmhhcmRha2VyIDE1IERlYyA5NyAxNTowNzo1OQogICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBhY2NvbmZpZy5oKToKICAgICAgLSBQYXRjaCBmcm9tIFRBTkFLQSBUYWthc2hpOgogICAgICAgIC0gc3VwcG9ydCBtb3JlIE9TIHR5cGVzIGluIHRoZSBvdi8gZGlyZWN0b3J5IGZpbGVzLgogICAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAgIC0gZG9uJ3QgY29yZSBkdW1wIG9uIC12IHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMToyMDowNAogICAgLSAoaHJfc3dydW4uYyk6IENvcnJlY3QgYSBub24tY2FzdGVkIG1hbGxvYy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTozMzo1OQogICAgLSAoaHJfZmlsZXN5cy5jKTogU29sYXJpcyBzcGVjaWZpYyBmaXhlcy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTozNToyNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbik6IEJTREkgZGVmaW5pdGlvbiBmaXhlcy4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0MTo0OQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6MjgKICAgIC0gKG1pYmdyb3VwLyouYywgY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6MzkKICAgIC0gKHNubXB0cmFwLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0Mjo1NAogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQ2OjA4CiAgICAtIChocHV4LmMpOiAjaWZkZWYnZWQgb3V0IHVudXNlZCB3cml0ZUhQIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDEyOjMyOjIxCiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gVGVkIFJ1bGU6CiAgICAgIC0gVXNlIHN5c2xvZyBvcHRpb24gTE9HX1BJRCBvbiBzdGFydHVwLgogICAgICAtIGZvcmsgaWYgc3lzbG9nIGVuYWJsZWQuCiAgICAgIC0gRW5hYmxlIGxvZ2dpbmcgdG8gb3RoZXIgc3lzbG9nIGZhY2lsaXRpZXMuCiAgICAgIC0gcHJpbnQgYWxsIHRyYXAgZGF0YSB0byBhIHNpbmdsZSBzeXNsb2cgbGluZS4KCmhhcmRha2VyIDIzIERlYyA5NyAxMjo0ODozMQogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIENoYW5nZSAtZiBmbGFnIHRvIC1sIGFuZCBtYWtlIC1mIG5vLWZvcmsuCiAgICAgIC0gZml4IHBhdGNoIHdoaWNoIG11bmdlZCBhYmlsaXR5IHRvIGdlbmVyYXRlIGJvdGggLVAgYW5kIC1zIHNpbXVsdGFuZW91c2x5LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQwOjM2CiAgICAtIChSRUFETUUpOiBBZGQgVGVkIFJ1bGUgdG8gY29kZXJzIGxpc3QuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDI6NDcKICAgIC0gKCopOiBUdXJuIGFsbCBkZWJ1Z2dpbmcgcm91dGluZXMgaW50byBsaWJyYXJ5IGNhbGxzIHRoYXQgY2FuIGJlCiAgICAgIHR1cm5lZCBvbiBhbmQgb2ZmIGF0IHJ1biB0aW1lLgogICAgICAtIERFQlVHUCgpIGlzIG5vdyBhIHR5cGljYWwgcHJpbnRmIHN0eWxlIGZ1bmN0aW9uIGFuZCBpcyB1c2VkIGV2ZXJ5d2hlcmUuCiAgICAgIC0gdm9pZCBzbm1wX3NldF9kb19kZWJ1Z2dpbmcoaW50KS4KICAgICAgLSBpbnQgc25tcF9nZXRfZG9fZGVidWdnaW5nKCkuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDQ6MzgKICAgIC0gKHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuOCk6IGRlYnVnZ2luZyBmbGFnIGFkZGl0aW9ucy4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0NzowOAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gYnJlYWsgdXAgY29tbW9uX2hlYWRlci5oLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjI3OjU0CiAgICAtIChhdC5jLCBhdC5oLCBob3N0X3Jlcy5oLCBpY21wLmgsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5oLAogICAgICB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaCwgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgICAtIGNsZWFuIHVwIHJlcXVpcmVkIGhlYWRlcnMgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE1OjU2OjE4CiAgICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQKICAgICAgaWYgZGVidWdnaW5nIGlzIG9uIG9yIG9mZi4KCmhhcmRha2VyIDIzIERlYyA5NyAxNTo1OTowMwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0IGlmIGRlYnVnZ2luZwogICAgICBpcyBvbiBvciBvZmYuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTY6MzA6NDcKICAgIHZlcnNpb24gdGFnICggMy40LnByZTEgKQoKaGFyZGFrZXIgMjkgRGVjIDk3IDA5OjM3OjA2CiAgICAtICh0a21pYik6IEZpcnN0IGltcGxlbWVudGF0aW9uLgoKaGFyZGFrZXIgMzAgRGVjIDk3IDE0OjAwOjAzCiAgICAtICh0a21pYik6CiAgICAgIC0gbmV3IGNvbW1hbmQ6IHRhYmxlIHRvIGRpc3BsYXkgc25tcHRhYmxlcyBhcyBhIHRhYmxlLgogICAgICAtIG1pc2MuLi4KCmhhcmRha2VyIDMwIERlYyA5NyAxNzowMTo1NwogICAgLSAodGttaWIpOiBDcmVhdGUgYSBncmFwaGluZyB3aWRnZXQuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjc6MzgKICAgIC0gKG1pYl9hcGkuMyk6IGNoYW5nZSAiYWxsIiB0byAiQUxMIi4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODowMAogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBhZGQgYSBmaW5kX21vZHVsZSgpIHJvdXRpbmUuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjg6MjIKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHB1dCBpbml0X21pYiBiYWNrIGluIHBsYWNlIChvcHBzKS4KCmhhcmRha2VyICA1IEphbiA5OCAxMzoyODo0MgogICAgLSAoVE9ETyk6IHNubXB2MwoKaGFyZGFrZXIgIDUgSmFuIDk4IDE2OjI5OjM5CiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBhc24xX2J1aWxkX29iamlkLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDE3OjMzOjA3CiAgICAtIChwYXJzZS5jKTogc3dhcCBhcmdzIHRvIG1lcmdlX2Fub25fY2hpbGRyZW4oKS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOToxNDo1NAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBmaXggYW5vbl9jaGlsZHJlbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTg6NTAKICAgIC0gKG1pYl9hcGkuMywgc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jIHVwZGF0ZSB0byByZWZsZWN0IG1vdmVkIGhlYWRlcnMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTk6MTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogbGluayBkaXJlY3RseSB0byBsaWIuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTk6NDcKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcmVtb3ZlIHVudXNlZCBoZWFkZXJzLgogICAgICAtIHNubXBfcGVycm9yIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MjE6NTYKICAgIC0gKGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBldmVudC5jLCBocl9kZXZpY2UuYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaWNtcC5jLAogICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEZpeCBoZWFkZXJzIGZvciBGcmVlQlNEIGFuZCBOZXRCU0QuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NDA6MzYKICAgIC0gKEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIERvY3VtZW50YXRpb24gdXBkYXRlIHRvIGZpeCBwYXRocyBmcm9tIHJlY2VudCBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQxOjM4CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIGZpeGVzLgogICAgICAtIHNubXBfcGVycm9yIHVzYWdlLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQ0OjUxCiAgICAtIChhc24xLmMsIG1pYi5jLCBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmgpOiBQYXRjaCBmcm9tIE5pZWxzCiAgICAgIEJhZ2dlc2VuOgogICAgICAtIGhlYWRlciBjaGFuZ2VzIGFuZCBib29sZWFuIGNoZWNrIGNvcnJlY3Rpb25zLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjUxOjI3CiAgICAtIChwYXJzZS5jKTogVW5kaWQgYW5vbi1jaGlsZHJlbiBjaGFuZ2UuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6NTY6MTQKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW5jcmVhc2UgYnVmZmVyIHNpemUgdG8gaW5jcmVhc2UgbWF4IGludGVyZmFjZXMgcmVwb3J0ZWQgb24gU29sYXJpcy4KCmhhcmRha2VyIDE2IEphbiA5OCAwOTo0NDo1NgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gU2hlc2hhZHJpIFlhZ2F0aToKICAgICAgLSBzaWduYWwgYSB0cmFwICgyKSB3aGVuIHRoZSBhZ2VudCBpcyBzaHV0IGRvd24uCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MDg6MzkKICAgIC0gKENPUFlJTkcpOiB1cGRhdGUuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MDEKICAgIC0gKCovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgICAgY29uZmlndXJlLmluKToKICAgICAgLSBiZWdpbiBzdXBwb3J0IGZvciBjcmVhdGluZyBhbmQgdXNpbmcgc2hhcmVkIGxpYnJhcmllcy4KICAgICAgLSBhbGwgTWFrZWZpbGVzIG5vdyBpbmNsdWRlIGEgTWFrZWZpbGUudG9wIGZvciBlYXNpZXIgZnV0dXJlIGdsb2JhbCBjaGFuZ2VzLgoKaGFyZGFrZXIgMjEgSmFuIDk4IDExOjEyOjIyCiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAgLSBpbmNsdWRlIHN0cnVjdC5oIGV4cGxpY2l0bHkuCgpoYXJkYWtlciAyMSBKYW4gOTggMTE6MTI6MzQKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywKICAgICAgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICAgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgoKaGFyZGFrZXIgMjEgSmFuIDk4IDE3OjMzOjI0CiAgICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAqL01ha2VmaWxlLmluKToKICAgICAgLSBEbyBhIGJldHRlciB2ZXJzaW9uIG9mIHNobGliIHN1cHBvcnQuICBTaG91bGQgYmUgdXNlYWJsZSBub3cgYXQgbGVhc3QuCgpoYXJkYWtlciAyMSBKYW4gOTggMjI6MDU6NDQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY3JlYXRlIG0vIGFuZCBzLyBkaXJlY3RvcmllcyBhbmQgdXNlIHRoZW0gZm9yIHN1cHBsZW1lbnRhbCBjb25maWcKICAgICAgICBpbmNsdWRlIGZpbGVzIGJhc2VkIG9uIHRoZSBjb25maWcuZ3Vlc3Mgb3V0cHV0LgoKaGFyZGFrZXIgMjMgSmFuIDk4IDA4OjMwOjM1CiAgICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9uJ3QgY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGluIGxpbnV4J3MgRklMRV9UT19CVUYgbWFjcm8uCgpoYXJkYWtlciAyMyBKYW4gOTggMTE6MTk6MTIKICAgIC0gKGdlbmVyaWMuaCwgaTM4Ni5oLCBpNTg2LmgsIGk2ODYuaCk6IG0vKi5oIGZpbGUgYmVnaW5uaW5ncy4KCmhhcmRha2VyIDIzIEphbiA5OCAxMToxOTozMwogICAgLSAoYnNkLmgsIGdlbmVyaWMuaCwgbGludXguaCwgc3lzdi5oKTogcy8qIGJlZ2lubmluZ3MuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTI6MDIKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwKICAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMpOgogICAgICAtIGNyZWF0ZSBuZXcgZnVuY3Rpb25zOgogICAgICAgIC0gcmVnaXN0ZXJfc3VidHJlZSgpCiAgICAgICAgLSByZWdpc3Rlcl9taWIoKQogICAgICAgIC0gdW5yZWdpc3Rlcl9taWIoKS4KICAgICAgLSBnZXQgcmlkIG9mIHJlYWRfY29uZmlnIHNwZWNpYWwgc3R1ZmYgZm9yIGV4dGVuc2liaWxpdHkgYW5kIHB1dCBpdAogICAgICAgIGluIHRoZWlyIG93biBzdWJtb2R1bGVzIHdoaWNoIG5vdyBjYWxsIHJlZ2lzdGVyX21pYigpLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjE0OjIwCiAgICAtIChyZWdpc3RyeS5bY2hdLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGUgYSBuZXcgdGFibGUgYXQgdWNkYXZpcy4xMDMgdG8gZGlzcGxheSByZWdpc3RlcmVkIG1pYnMuCgpoYXJkYWtlciAyMyBKYW4gOTggMTY6MTU6MDUKICAgIC0gKGF0LmMsIGRpc2suYywgaG9zdF9yZXMuaCwgaHJfb3RoZXIuaCwgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWNkX3NubXAuaCwgdWRwLmMsIHZlcnNpb25pbmZvLmMpOgogICAgICAtICNpbmNsdWRlICJzbm1wX2FwaS5oIgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjM0OjQzCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgsCiAgICAgIGV4dGVuc2libGUuYywgcGFzcy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBtYWtlIHRoZSBtaWIgcmVnaXN0cnkgcmVjb3JkIGFuZCBkaXNwbGF5IGEgbWliIG1vZHVsZSBuYW1lIGFzIHdlbGwuCgpoYXJkYWtlciAzMCBKYW4gOTggMDg6NTc6NTQKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdGVzdCBmb3IgJ3BzIGF1eCcgKHJlZGhhdCA1LjApLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDA5OjAxOjA2CiAgICAtIChVQ0QtU05NUC1NSUIudHh0LCBtZW1vcnkuYywgbWVtb3J5LmgpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAgLSByZXBvcnQgY2FjaGVkLCBidWZmZXIsIGFuZCBzaGFyZWQgc3RhdGlzdGljcyBmb3IgbGludXguCgpoYXJkYWtlciAzMCBKYW4gOTggMDk6MjQ6MTkKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCB2YXJfc3RydWN0LmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIG5ldyBzdWJ0cmVlIHN0cnVjdHVyZSBzeXN0ZW0uCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDA6MjYKICAgIC0gKHBhc3MuYyk6IHB1dCBwYXNzX2NvbWFwcmUgaGVyZS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MTo1MwogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgpOgogICAgICAtIG1lcmdlIERhdmUncyBjb2RlIHdpdGggbWluZS4gIFN0aWxsIGEgZmV3IGJ1Z3MgdG8gd29yayB0aHJvdWdoLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQyOjE3CiAgICAtIChyZWdpc3RyeS5jLCByZWdpc3RyeS5oKTogYmVnaW4gbXVuZ2luZyBmb3IgbmV3IGhpZXJhcmNoeS4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MzoyOAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZSBtb2R1bGUgaW5kZXhpbmcgdG8gdXNlIG9pZCBpbnN0ZWFkIG9mIGEgbnVtZXJpYy4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0OTo1OQogICAgLSAoZGlzay5jLCBob3N0X3Jlcy5oLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLAogICAgICB2ZXJzaW9uaW5mby5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBmb3IgYWRkcmVzcyBzdHJ1Y3R1cmUuCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NTU6MjAKICAgIHZlcnNpb24gdGFnICggMy40LnByZTIgKQoKaGFyZGFrZXIgMzAgSmFuIDk4IDEzOjQ5OjU2CiAgICAtIChSRUFETUUpOiBJIGNhbid0IHJlYWxseSBoYXZlIGZvcmdvdHRlbiBTaW1vbidzIG5hbWUgaW4gdGhlIGxpc3QKICAgICAgY291bGQgST8KCmhhcmRha2VyIDMwIEphbiA5OCAxMzo1MDoyOAogICAgLSAoYWNsb2NhbC5tNCwgY29uZmlndXJlKTogZGVmaW5lIGlmbmV0IGZvciBsaW51eC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNDozMTo1OAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlmX3NwZWVkLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDE0OjMyOjEzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBmaW5pc2ggbGludXggcHJvYmxlbXMgYW5kIHVzZSBpZl9zcGVlZC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNToyNTowMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMpOiBmaXggZGVmYXVsdCBwb3J0IGZvciBzbm1wdHJhcC4KCmhhcmRha2VyICAyIEZlYiA5OCAwODo1Nzo0MQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gSGF3a2luc29uOgogICAgICAtIGZpeCB0eXBvIGluIGNvbmZpZ3VyZSBmb3Igc2hhcmVkIGxpYnJhcnkgZXh0ZW5zaW9uIHcvbyBzaGFyZWQgbGlicmFyaWVzLgoKaGFyZGFrZXIgIDYgRmViIDk4IDEzOjI5OjQwCiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKTogcHJvdGVjdCBhZ2FpbnN0IG5saXN0LmgKCmhhcmRha2VyICA2IEZlYiA5OCAxMzo0NDo0NAogICAgLSAoaHJfZGlzay5jKTogY2xvc2UoKSBnb3QgY2F1Z2h0IGluc2lkZSBhbiBlbHNlIGl0IHNob3VsZG4ndCBoYXZlIGR1ZQogICAgICB0byBhbiBpZmRlZiBlcnJvci4KCmhhcmRha2VyICA2IEZlYiA5OCAxNzoxMDo1MwogICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGF1dG9ubGlzdC5oLCBrZXJuZWwuYywgc25tcF92YXJzLmMsIGlwLmMpOgogICAgICAtIGNyZWF0ZWQgYSBuZXcgYXV0b19ubGlzdCBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGlwLmMuCgpoYXJkYWtlciAgNiBGZWIgOTggMTc6MTE6MjUKICAgIC0gKGdlbmVyaWMuaCwgaHB1eC5oLCBpcml4LmgsIGxpbnV4LmgsIHNvbGFyaXMuaCk6CiAgICAgIC0gdXBkYXRlIGZvciBhdXRvX25saXN0IHN5bWJvbHMuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6MDIKICAgIC0gKGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywKICAgICAgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIGtlcm5lbF9zdW5vczUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsCiAgICAgIHZhcl9yb3V0ZS5jKToKICAgICAgLSB1c2UgYXV0b19ubGlzdC4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowMzoxNwogICAgLSAoYXV0b19ubGlzdC5oKTogcHJvdG90eXBlIHdyYXBwZXIuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6NTYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGFuZ2VkIC0td2l0aC1zaGFyZWQtbGlicmFyaWVzIHRvIC0tZW5hYmxlLXNoYXJlZCB0byBtYXRjaCBvdGhlciBwa2dzLgogICAgICAtIGRpc3BsYXkgYXJndW1lbnRzIGZvdW5kIGZvciAtLWVuYWJsZS1zaGFyZWQuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDQ6MzEKICAgIC0gKGJzZC5oLCBic2RpLmgsIGZyZWVic2QuaCwgZnJlZWJzZDMuaCwgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oLAogICAgICBzb2xhcmlzLmgpOgogICAgICAtIGRlZmluZSBzeW1ib2xzIGZvciBhdXRvX25saXN0IHRvIHVzZS4KCmhhcmRha2VyICA5IEZlYiA5OCAxMTowNjo1MwogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGZpeCBwcm90b3R5cGVzIG9uIG15IGJyb2tlbiB0YWJsZSB3YWxraW5nIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE3OjUyCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUzICkKCmhhcmRha2VyICA5IEZlYiA5OCAxMToxODo0NQogICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGlvY3Rscy5oCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTg6NTkKICAgIC0gKGludGVyZmFjZXMuYyk6ICBpbmNsdWRlIGlvY3Rscy5oIGlmIGF2YWlsYWJsZS4KCmhhcmRha2VyICA5IEZlYiA5OCAxMToyMDowMAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBpb2N0bHMuaC4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToxOTozMwogICAgLSAoZ2VuZXJpYy5oLCBhdXRvX25saXN0LmMsIGF0LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBtZW1vcnkuYywKICAgICAgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZml4IGFsbCBteSB0eXBvcyA7LSkuCiAgICAgIC0gY3JlYXRlIGF1dG9fbmxpc3RfdmFsdWUgdG8gcmV0dXJuIHRoZSBsb29rZWQtdXAgdmFsdWUuCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6MDkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBwcyBhdXggc2hvdWxkIGRlZmluZSBhdXggbm90IC1hdXguCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6MzMKICAgIC0gKGhvc3RfcmVzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRvbid0IGluY2x1ZGUgY29uZmlnLmgKCmhhcmRha2VyIDExIEZlYiA5OCAwOToyODo0NAogICAgLSAoaHJfbmV0d29yay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBzb2xhcmlzIGZpeGVzLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI5OjA2CiAgICAtIChzb2xhcmlzLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHVuZGVmIElQX0ZPUldBUkRJTkdfU1lNQk9MIGJlZm9yZSBkZWZpbmluZyBpdC4KCmhhcmRha2VyIDExIEZlYiA5OCAxNjo0NDoxMwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzZWQgZG9lc24ndCBsaWtlIFthLXpdKyB0eXBlIGV4cHJlc3Npb25zLgoKaGFyZGFrZXIgMTMgRmViIDk4IDA5OjA3OjMxCiAgICAtIChGQVEpOiB0eXBvOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCgpoYXJkYWtlciAxNyBGZWIgOTggMDk6NTA6NDMKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgICAtIHVzZSBzbm1wX2lwYWRkciBpbnN0ZWFkIG9mIGlwYWRkciB0byBhdm9pZCBocHV4IGNvbmZsaWN0cy4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1MzoxMgogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMpOgogICAgICAtIHVzZSBhcHByb3ByaWF0ZSBtYWxsb2NzLCBhbmQgTlVMTCBpbml0aWFsaXphdGlvbiBvZiBwb2ludGVycy4KICAgICAgLSBtYWxsb2MgdGhlIHN5bWJvbCByYXRoZXIgdGhhbiB1c2luZyBhIGZpeGVkIGxlbmd0aC4KICAgICAgLSBpbnNlcnQgZGVidWdnaW5nIGNvZGUuCiAgICAgIC0gZW5hYmxlIHByaW50aW5nIG9mIHRoZSBubGlzdCB0cmVlIGlmIFRFU1RJTkcgaXMgZGVmaW5lZC4KCmhhcmRha2VyIDE3IEZlYiA5OCAwOTo1NDowMQogICAgLSAodGNwLmMsIHVkcC5jKToKICAgICAgLSBubGlzdCBzeW1ib2wgbmFtZSBlcnJvcnMuCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MDY6MDAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHZtc3RhdC5jLCB2bXN0YXQuaCwgdWNkX3NubXAuaCwKICAgICAgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgICAtIGltcGxtZW50IGEgdm1zdGF0IG1pYiBncm91cCBvbiBsaW51eC4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODoxNTo1NgogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gY2hlY2sgZm9yIHN5cy9zeXNtcC5oLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE2OjIxCiAgICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBmaXggYSBkZWJ1Z2dpbmcgc3RhdGVtZW50IChtaXNzaW5nIGEgdmFyaWFibGUpLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjE4OjA1CiAgICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jLCBpcml4LmgpOgogICAgICBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAgLSBwb3J0IHRvIGlyaXguCgpoYXJkYWtlciAxOCBGZWIgOTggMTE6NDU6MjAKICAgIC0gKHNlZHNjcmlwdC5pbik6IGRlZmluZSBMSUJESVIgYW5kIERBVEFESVIuCgpoYXJkYWtlciAxOCBGZWIgOTggMTE6NDY6NDgKICAgIC0gKHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmKTogY2hhbmdlIHRvIERBVEFESVIgZnJvbSBMSUJESVIuCgpoYXJkYWtlciAxOCBGZWIgOTggMTM6MzE6MDcKICAgIC0gKGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBsb2FkYXZlLmgsIHByb2MuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gdHVybiB0aGVzZSBtaWJzIGludG8gcmVhbCB0YWJsZXMuICBSZXF1aXJlZCBjaGFuZ2luZyB0aGUgbWliIHRob3VnaC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzozNDo1NQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KCmhhcmRha2VyIDE4IEZlYiA5OCAxMzo0NDoxMwogICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAgIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICAgICB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgICAtIGFsbCBiY29weXMgLT4gbWVtY3B5LgogICAgICAtIGluY2x1ZGUgYSBmZXcgZXh0cmEgaGVhZGVycyBmb3IgREVCVUdQIHN0YXRlbWVudHMuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MjU6NTMKICAgIC0gKGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl91dGlscy5jLAogICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBtZW1vcnkuYywgbWliaW5jbC5oLAogICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsCiAgICAgIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywKICAgICAgdm1zdGF0LmMpOgogICAgICAtIG1hc3NpdmUgLVdhbGwgYW5kIC0tc3RyaWN0LXByb3RvdHlwZXMgY2hlY2tpbmcuCiAgICAgIC0gYnplcm8gLT4gbWVtc2V0LgoKaGFyZGFrZXIgMTggRmViIDk4IDE0OjMyOjA1CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBjaGVja3MuCgpoYXJkYWtlciAxOCBGZWIgOTggMTQ6MzI6MzgKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBwcm90b3R5cGluZyBjaGVja3MuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6Mjg6NTEKICAgIC0gKG9wZW5ic2QuaCk6IGNyZWF0ZWQuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6Mjk6NTgKICAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHJlbW92ZWQgdW5uZWVkZWQgc3R1ZmYuCiAgICAgIC0gYWRkZWQgb3BlbmJzZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMDo0NwogICAgLSAoYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsCiAgICAgIGdlbmVyaWMuaCwgaHB1eC5oLCBuZXRic2QuaCk6CiAgICAgIC0gdHJpZWQgdG8gbWVyZ2Ugc29tZSB0aGluZ3MgaW50byBzLyouaCBkZWZpbmVzIGluc3RlYWQuICBUaGVyZSBpcyBhCiAgICAgICAgbG90IHRvIGdvIHN0aWxsLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjMzOjE0CiAgICAtIChjb25maWcuaC5pbik6IG9wZW5ic2QgZGVmaW5lcy4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMzo0MwogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjUxOjE4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU0ICkKCmhhcmRha2VyIDIwIEZlYiA5OCAwOToxOTowMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gZml4IGluY2x1ZGUgZmlsZSBkZXBlbmRhbmNpZXMgb24gaXJpeCB3aXRoIF9LRVJORUwgZGVmaW5lZC4KCmhhcmRha2VyIDIwIEZlYiA5OCAxMToxNToxNAogICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KCmhhcmRha2VyIDI1IEZlYiA5OCAwNzoyNzowOQogICAgLSAocmVhZF9jb25maWcuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IHJlYWRfY29uZmlnIHBhcnNlcidzIGVuZCBvZiBsaW5lIHByb2JsZW1zLgoKaGFyZGFrZXIgIDQgTWFyIDk4IDE1OjQ5OjMyCiAgICAtIChDT1BZSU5HKTogZG9jdW1lbnRhdGlvbiByZXF1aXJlbWVudCBjaGFuZ2UuCgpoYXJkYWtlciAgNiBNYXIgOTggMTQ6MDE6NTIKICAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWwuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGRpc2suYywKICAgICAgZXZlbnQuYywgZXh0ZW5zaWJsZS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgbWliaW5jbC5oLAogICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCByb3V0ZV93cml0ZS5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgsCiAgICAgIHZhcl9yb3V0ZS5jLCB2ZXJzaW9uaW5mby5jLCB2aWV3X3ZhcnMuYywgc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgICBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgICAgaWYuYywgaW5ldC5jLCByb3V0ZS5jLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGFibGUuMSwgLmluZGV4LAogICAgICBNYWtlZmlsZS5pbiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgICAgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LAogICAgICBNYWtlZmlsZS5pbiwgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgICBtaWIuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHZhY20uYywgdmFjbS5oLAogICAgICB2aWV3LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIEltcGxlbWVudCB0aGUgU05NUHYzIFZpZXcgQmFzZWQgQWNjZXNzIENvbnRyb2wgTW9kZWwgKFJGQyAyMjc1KS4KICAgICAgLSBoZWFkZXIgZml4ZXMuCiAgICAgIC0gYmV0dGVyIGhlYWRlci1maWxlICNkZWZpbmUgbmFtZXMgdG8gaW5jbHVkZSBTTk1QXywgQVNOXywgZXRjLiBwcmVmaXhlcy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0NzowMQogICAgLSAodXRpbF9mdW5jcy5jKToKICAgICAgLSByZW1vdmUgR0xPQkFMLVNFQ1VSSVRZIGNoZWNrcy4KCmhhcmRha2VyICA2IE1hciA5OCAxNTo0NzoxOQogICAgLSAobWliSUkuaCk6IGFkZCB2YWNtX3ZhcnMuCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDc6NDAKICAgIC0gKGhvc3RfcmVzLmgpOiBtb3ZlIHNubXBfYXBpLmggdXAgYWJvdmUgc25tcF9pbXBsLmguCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDg6MzMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcmVtb3ZlIHNlY3VyaXR5IHR5cGUgcHJvbXB0cy4KCmhhcmRha2VyICA5IE1hciA5OCAxNzo0MDowNAogICAgLSAobWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gaW1wbGVtZW50IHN5c09SVGFibGUuCiAgICAgIC0gcmVnaXN0ZXIgbWlicyB1bmRlciBpdC4KCmhhcmRha2VyIDExIE1hciA5OCAwODowNjoxNwogICAgLSAoKi8qLyovKik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGF1dG9fbmxpc3Qgb24gcHJlY2VlZGluZyBfIGFyY2hpdGVjdHVyZXMuCiAgICAgIC0gQ2hhbmdlICphbGwqIGRlZmluZSB1c2FnZSB0byBuZXcgU05NUF8gYW5kIEFTTl8gcHJlZml4ZXMuCiAgICAgIC0gbGVhdmUgbWliIGFjY2VzcyBvcGVuIGlmIG5vIGNvbTJzZWMgc3RhdGVtZW50cyB3ZXJlIGZvdW5kIGluIHNubXBkLmNvbmYuCgpoYXJkYWtlciAxMSBNYXIgOTggMDk6NDA6NDIKICAgIC0gKGhwdXguaCwgaHJfZmlsZXN5cy5oLCBtZW1vcnkuaCwgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmgsCiAgICAgIHNubXBfcmlwMi5oLCBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oKToKICAgICAgLSBmaW5pc2ggY29udmVydGluZyBhIGZldyBvZiB0aGUgZmlsZXMgdGhhdCBOaWVscyBtaXNzZWQuCgpoYXJkYWtlciAxMSBNYXIgOTggMTA6MzA6NTAKICAgIC0gKHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgICAtIGZpeCB0aW1lIHZhbHVlcyBhbmQgbW92ZSBzeXNPUkxhc3RDaGFuZ2VkIHRvIHRoZSBzeXN0ZW0gZ3JvdXAuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6MTQ6MDkKICAgIC0gKCopOiBQYXRjaCBmcm9tIENyYWlnIEJldmlucyBmb3IgT3BlbkJTRAoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjI3OjAxCiAgICAtIChpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oKTogUGF0Y2ggZnJvbQogICAgICBDcmFpZyBCZXZpbnM6CiAgICAgIC0gcG9ydCB0byBPcGVuQlNELgoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjQ1OjQ2CiAgICAtICgqKTogcGF0Y2ggZnJvbSBHYXJyZXR0IFdvbGxtYW4gZm9yIEZyZWVCU0QuCgpoYXJkYWtlciAxMSBNYXIgOTggMTI6NTY6MzcKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaWNtcC5jLAogICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIEdhcnJldHQKICAgICAgV29sbG1hbjoKICAgICAgLSBmcmVlYnNkIDMgc3lzY3RsIGltcGxlbWVudGF0aW9ucy4KCmhhcmRha2VyIDExIE1hciA5OCAxNDo0MToxMQogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICAgaG9zdF9yZXMuaCwgaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLCBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgICAgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmgsIGhyX25ldHdvcmsuYywgaHJfbmV0d29yay5oLCBocl9vdGhlci5jLAogICAgICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsIGhyX3ByaW50LmgsIGhyX3Byb2MuYywKICAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICAgICBocl9zd3J1bi5jLCBocl9zd3J1bi5oLCBocl9zeXN0ZW0uYywgaHJfc3lzdGVtLmgsIGludGVyZmFjZXMuYywKICAgICAgaXAuYywgbWliSUkuYywgbWliSUkuaCwgc3lzT1JUYWJsZS5jLCB2MnBhcnR5LmMsIHYycGFydHkuaCwKICAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAgLSBtYXNzaXZlIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgZml4ZXMuCiAgICAgIC0gZml4ZWQgdGhpbmdzIGJyb2tlbiBieSB0aGUgZnJlZWJzZCBwYXRjaCAob25seSBzb21lIEknbSBzdXJlKS4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo0MjozNQogICAgLSAoYXV0b19ubGlzdC5jKTogYmV0dGVyIGRlYnVnZ2luZyBwcmludGZzCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NDU6MjIKICAgIC0gKGhwdXguaCk6IHN3aXRjaCBpbmNvcnJlY3QgYXJwdGFiIHN5bWJvbHMuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NTY6MTMKICAgIC0gKFJFQURNRSk6IG5hbWUgdXBkYXRlLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjU3OjE2CiAgICAtICgqL01ha2VmaWxlLmluKTogZGVwZW5kIHVwZGF0ZS4KCmhhcmRha2VyIDExIE1hciA5OCAxNzowNTo0MQogICAgLSAoc3lzdGVtLmMpOiBkb24ndCBjaG9tcCBuZXcgbGluZSBvbiByZWFkX2NvbmZpZyB1dGlscy4KCmhhcmRha2VyIDE4IE1hciA5OCAwOToxNzo0MgogICAgLSAoUkVBRE1FKTogY2hhbmdlZCBPViBwYXRoJ3MgdG8gbmV3ZXIgcmVsZWFzZSBwYXRocy4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzoxMDozNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmUtbnVtYmVyaW5nIG9mIHRoZSBuZXcgdGFibGUgbW9kdWxlcy4KCmhhcmRha2VyIDE4IE1hciA5OCAxMzoyNjoyMgogICAgLSAoZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAgLSB3YWl0IGZvciBwaWQgYWZ0ZXIgZ2V0X2V4ZWNfb3V0cHV0KCkgd2l0aCBuZXcgd2FpdF9vbl9leGVjKCkgZnVuY3Rpb24uCgpoYXJkYWtlciAxOCBNYXIgOTggMTM6NTY6MTYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYywKICAgICAgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtYWluLmMsIG1pYl9hcGkuMywKICAgICAgY29uZmlnLmgpOgogICAgICAtIFNOTVBMSUJQQVRIIC0+IFNOTVBTSEFSRVBBVEgKICAgICAgLSBhIHJlYWwgU05NUExJQlBBVEgKICAgICAgLSBtYWtlIHRoZSBhZ2VudCByZWFkIC5jb25mIGZpbGVzIGZyb20gU05NUFNIQVJFUEFUSDpTTk1QTElCUEFUSC4KCmhhcmRha2VyIDE4IE1hciA5OCAxNDowOTozMQogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNSApCgpoYXJkYWtlciAyMiBNYXIgOTggMTg6MTM6NDEKICAgIC0gKHBhc3MuYywgcHJvYy5jLCB2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gbW92ZSBzeXMvdHlwZXMuaCB1cCBmb3IgdWx0cml4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDA5OjE1OjQ1CiAgICAtICh0Y3AuYyk6IGluY2x1ZGUgdGNwaXAuaCBmb3IgZGlnaXRhbCB1bml4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjM5OjEzCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6CiAgICAgIC0gZml4IHRoZSByZWdpc3RyeSBtaWIgdG8gdXNlIHRoZSBuZXcgbW9kdWxlIHN0cnVjdHVyZS4KICAgICAgLSBjcmVhdGUgYSB3b3JraW5nIGZpbmRfc3VidHJlZSgpIGFuZCBmaW5kX3N1YnRyZWVfbmV4dCgpLgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEwOjM5OjUwCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IHNpbXBseSBkb24ndCBkZWZpbmUgQ0FOX1VTRV9OTElTVCBvbiBsaW51eC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo0NDowNgogICAgLSAoc25tcGQuYywgc25tcF9hcGkuYyk6IFNwZWxsaW5nIGVycm9ycyBmcm9tIHRoZSBDTVUgY29kZSBmaXhlZC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo0NjozNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGxpbnV4LmgpOiBuZXcgZGVmaW5lOiBET05UX1VTRV9OTElTVC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDo1OToyMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBBZGQgYW4gJiB0byBhcnBjb20uYWNfZW5hZGRyIGluIG1lbXNldC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMjo0ODozMAogICAgLSAoTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogQ29kZSBmcm9tIERhdmlkIFQuIFBlcmtpbnM6CiAgICAgIC0gaW50ZWdyYXRlZCBEYXZpZCdzIGNvZGUgdG8gcHJpbnQgY291bnRlcjY0cyBhcyBpbnRlZ2VycyByYXRoZXIgdGhhbiBoZXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTM6MDc6MDAKICAgIC0gKHYycGFydHkuYywgbWliSUkuYywgdmFjbV92YXJzLmMpOiBkZWNsYWlyIHJlZ2lzdHJhdGlvbiB2YXJpYWJsZXMgc3RhdGljbHkuCgpoYXJkYWtlciAyNSBNYXIgOTggMTY6NDk6NTYKICAgIC0gKGhwdXguYyk6IGZpeCB3cml0ZV9tZXRob2QgZGVjbGFyYXRpb24uCgpoYXJkYWtlciAyNiBNYXIgOTggMDc6MjI6MzAKICAgIC0gKCouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbWlzYyBwb3J0aW5nIGltcHJvdmVtZW50cyAodGhlIGJzZCBncm91cHMsIHN1bm9zLCAuLi4pLgogICAgICAtIHN3aXRjaCBhdXRvX25saXN0cyBjYWxsaW5nIG9yZGVyIG9mIF8gdnMgbm9uIF8gbG9va3Vwcy4KICAgICAgLSByZXZlcnNlIGFsbCBzdHJpbmcuaC9zdHJpbmdzLmggaW5jbHVkZSBwb3NzaWJpbGl0aWVzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDA5OjIwOjA0CiAgICAtIChzbm1wdHJhcGQuYyk6CiAgICAgIC0gQmV0YSB2ZXJzaW9uIG9mIGFuIGV4dGVuc2libGUgdHJhcCBkZW1vbi4KICAgICAgICAtIC1DICdjb21tYW5kJyBvbiB0aGUgY29tbWFuZCBsaW5lIHJ1bnMgdGhlIGNvbW1hbmQgYW5kIGZlZWRzIGl0CiAgICAgICAgICBzdGRpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhcC4KICAgICAgICAtIHYxIHRyYXBzIGFyZSBjb252ZXJ0ZWQgdG8gdjIgdHJhcHMgZm9yIGNvbnNpc3RhbmN5IG9mCiAgICAgICAgICBpbmZvcm1hdGlvbiBzZW50IHRvIHRoZSBzY3JpcHRzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIwOjIxCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAgLSBjcmVhdGUgY29uZmlnX3B3YXJuKCkgdGhhdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBlcnJvciBjb3VudCB0bwogICAgICAgIHByZXZlbnQgZXhpdGluZy4gIFVzZWQgZm9yIGRpc2tzLCBzaW5jZSBzb21lIG1pZ2h0IGJ5IHByb2Nlc3Mgb3IKICAgICAgICBuZnMgbW91bnRlZC4KCmhhcmRha2VyIDI3IE1hciA5OCAxMToyMDo1NAogICAgLSAoZGlzay5jKTogdXNlIGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIGRpc2tzLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDExOjIyOjM1CiAgICAtIChocl9kZXZpY2UuYyk6IGNoZWNrIGRldmljZSBpbmRleCBhZ2FpbnN0IG1heGltdW0gKHNlZ2ZhdWx0IG9uIEhQVVgpLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjEwOjA1CiAgICAtIChSRUFETUUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6IFBhdGNoIGZyb20KICAgICAgQXJ0aHVyIEh5dW46CiAgICAgIC0gdGNwd3JhcHBlcnMgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoyMzowMwogICAgLSAoaW50ZXJmYWNlcy5jKTogSW50ZXJmYWNlc19TY2FuX05leHQgbmVlZGVkIGEgNHRoIChOVUxMKSBhcmd1bWVudC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoyMzozMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wZC5jKToKICAgICAgLSBjb3JyZWN0bHkgI2lmZGVmIG91dCB0aGUgdGNwd3JhcHBlcnMgcGF0Y2guCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6NDI6MTMKICAgIC0gKElOU1RBTEwpOiBkb2N1bWVudCBsaWJ3cmFwLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjQzOjA2CiAgICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIGludGVyZmFjZXMuYywgaXAuYywgcmVnaXN0cnkuYyk6CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDEgQXByIDk4IDA5OjUyOjMyCiAgICAtIChzbm1wX2NsaWVudC5jKTogZW50ZXJwcmlzZV9sZW5ndGggaXMgc2l6ZW9mKG9pZCkgZGVwZW5kZW50LgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjI3OjA3CiAgICAtIChhdXRvX25saXN0LmMpOgogICAgICAtIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIG9mIHRyZWUgdHJhdmVyc2FsLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjMxOjI5CiAgICAtIChORVdTLCBQT1JUSU5HKTogdXBkYXRlcyBmb3IgMy40LgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjQ3OjU1CiAgICAtIChGQVEsIFJFQURNRSk6IG1vcmUgMy40IHVwZGF0ZXMuCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NTM6MjcKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCB2YWNtIGV4YW1wbGUgY29uZmlndXJhdGlvbi4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo1NDoxMQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IG1vdmVkIHRoZSB2aWV3IGV4YW1wbGUgc2VjdGlvbiBhYm92ZSB0aGUgYWNjZXNzIHNlY3Rpb24uCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6MTA6MDcKICAgIC0gKFRPRE8pOiByZW1vdmVkIGEgZmV3IHRoaW5ncyEKCmhhcmRha2VyICAxIEFwciA5OCAxNDoxMTo0OQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICAxIEFwciA5OCAxNDo0MDo0NAogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oKTogbWFrZSB1bnJlZ2VzdGVyaW5nIG9mIG1pYnMgd29yay4KICAgICAgLSAoaW4gbW9zdCBjYXNlcyA6LT8pCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6NDM6MTQKICAgIHZlcnNpb24gdGFnICggMy40LnByZTYgKQoKaGFyZGFrZXIgIDEgQXByIDk4IDE2OjM1OjU5CiAgICAtIChzbm1wdHJhcGQuYyk6IGFsd2F5cyBzZW5kIGVudGVycHJpc2UgYW5kIHRyYXBvaWQgdG8gc2NyaXB0cy4KCmhhcmRha2VyIDIwIEFwciA5OCAxMDozMTowOAogICAgLSAoc25tcGQuYyk6IGNoYW5nZSBvaWQgZnJvbSB0ZXh0dWFsIHRvIG51bWVyaWMgdG8gYWxsb3cgbm93IG1pYnMgdG8KICAgICAgYmUgbG9hZGVkLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE1OjU0OjI5CiAgICAtIChob3N0X3Jlcy5oLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgICAtIGNvbnNvbGlkYXRlIHRoZSBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgYSBiaXQgKHNob3VsZCBtYWtlIGl0IGVhc2llcgogICAgICAgICAgdG8gZm9sbG93KQogICAgICAgIC0gUmUtc3RydWN0dXJlcyB0aGUgRGlzayBzZWFyY2hpbmcsIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gc2V0IHVwCiAgICAgICAgICB2aWEgdGhlIGNvbmZpZyBmaWxlLiAod2hpY2ggSSBzdGlsbCBuZWVkIHRvIGRvKQogICAgICAgIC0gU3BlZWQgdXAgZGlzayBzZWFyY2hpbmcgKGJ5IGNhY2hpbmcgaW52YWxpZCByZXN1bHRzIC0gYSAqbWFqb3IqIHdpbiEpCiAgICAgICAgLSBIYW5kbGUgcGFydGl0aW9ucyBzZW5zaWJseSAoYXJ0aGVyIHRoYW4gb25lIHBlciBkaXNrKQogICAgICAgIC0gSW1wcm92ZSBTb2xhcmlzIHN1cHBvcnQgZm9yIHRoZSBEZXZpY2UgZ3JvdXAKCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1Njo1MAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIHN5cy9ka2lvLmgKCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1OToxMgogICAgLSAoaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggc29tZSBob3N0IHJlc291cmNlcyBmb3Igc29sYXJpcy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMDozNgogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYXBwcm9wcmlhdGUgdXNlIG9mIHN0cmR1cCBkdXJpbmcgc3RhcnR1cCBhbmQgYmV0dGVyIGZsYWcgY2hlY2tpbmcuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDA6NTYKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaGVhZGVyIG1vdmVzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAyOjEyCiAgICAtIChpcC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0ZXN0IHN5bWJvbCBkZWZpbmVzIGFuZCBjbGVhbnVwLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAzOjAzCiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIG90aGVyIGNsZWFudXBzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA1OjAwCiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZ2V0aG9zdGJ5YWRkciBtb3ZlcyB1cC4KICAgICAgLSBpbmNsdWRlIHN5cy93YWl0LmguCiAgICAgIC0gc3lzbG9nICVkIC0+ICVsZCBmb3IgbG9uZyBzcGVjaWZpY190eXBlLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA1OjM0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdHlwZWNhc3QgYSBwb2ludGVyLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA2OjAzCiAgICAtICh0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSAjaWZkZWYgY2hlY2tzIG9uIHN5bWJvbHMgYW5kIGhlYWRlciBtb3ZlbWVudC4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNjoyMQogICAgLSAoc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB1bmRlZmluZSBhIGJ1bmNoIG9mIG5saXN0IHN5bWJvbHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDc6MTAKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5lZWRlZCBwb2ludGVyIGNvcGllcy4KCmhhcmRha2VyIDIyIEFwciA5OCAwNzo0OToyMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgd29yZGluZywgY2xlYW5lZCB1cCBhIGJpdC4KCmhhcmRha2VyIDIyIEFwciA5OCAwODozNToyOQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcGFyc2UgQklUUyBrZXl3b3Jkcy4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDowMDowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtaWIgb2lkIGxvY2F0aW9uIHVwZGF0ZXMgZm9yIHVjZC1zbm1wIG1pYi4KCmhhcmRha2VyIDI0IEFwciA5OCAxMDowMjoyOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcmVuYW1lZCBsYWJlbHMgdG8gYmUgdW5pcXVlIGZyb20gdGhlIG9sZCBkZWZpbml0aW9ucy4KICAgICAgLSByZW51bWJlcmVkIGFnYWluLgogICAgICAtIGNvbW1lbnRlZCBvbiB0aGUgZGVzZ2luIG9mIHRoZSBtaWIgYXQgdGhlIHRvcC4KICAgICAgLSBDaGFuZ2VkIGJhY2sgdG8gU01JdjEuCiAgICAgIC0gcmVtb3ZlZCBsb2NrZCBzZWN0aW9uLgogICAgICAtIHJlbW92ZWQgdm1zdGF0IHNlY3Rpb24gdGlsbCBpdCBnZXRzIGltcGxlbWVudGVkLgogICAgICAtIHJlbW92ZWQgc2VxdWVuY2VzIG9mIHNjYWxlcnMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTA6MjI6MDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiB0aGUgdGV4dHVhbCBkZXNjcmlwdGlvbnMgd2VyZSB1cGRhdGVkIHNvbWUuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MDM6MjYKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3JlIGNsZWFuaW5nIGFuZCByZW5hbWluZy4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMjoxMgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBzdGF0dmZzLmggZm9yIGZfYmF2YWlsLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjA4CiAgICAtIChocl9maWxlc3lzLmMpOiBpbmNsdWRlIHN5cy9wYXJhbS5oIHRvIGRlZmluZSBNQVhQQVRITEVOLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjMzOjI0CiAgICAtIChocl9wYXJ0aXRpb24uYyk6IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBqdXN0IG9wZW5lZC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMzo1OAogICAgLSAoZGlzay5jKTogY2FsY3VsYXRlIHZmcyBibG9jayBzaXplIGlmIHBvc3NpYmxlIGFuZCBzaXplID4gMjU1IGJ5dGVzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjMxOjMwCiAgICAtICh0Y3AuYyk6IGluY2x1ZGUgbmV0aW5ldC90Y3BpcC5oIGZvciBEVTQuMC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNjozMjowNQogICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgpOiBuX3ZhbHVlIGlzIGEgbG9uZzoKICAgICAgLSByZXR1cm4gdGhlIHZhbHVlIGZyb20gYXV0b19ubGlzdF92YWx1ZSBhcyBhbiB1bnNpZ25lZCBsb25nLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE2OjQwOjQ1CiAgICAtICh2YXJfcm91dGUuYyk6IHdhdGNoIG91dCBmb3Igc2luZ2xlIHJvdXRlIGxvb3BzLgoKaGFyZGFrZXIgMjcgQXByIDk4IDEwOjU5OjE5CiAgICAtIChNYWtlZmlsZS50b3ApOiByZW1vdmVkIHVubmVlZGVkIHZhcmlhYmxlLgoKaGFyZGFrZXIgMjcgQXByIDk4IDExOjAwOjA4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBTSExJQl9MRENPTkZJR19DTUQgYXMgIjoiIGZvcgogICAgICBzdGF0aWMgbGlicmFyeSBjYXNlcy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMTowMDo0NAogICAgLSAoc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gUHV0IHRoZSB3b3JkICJUaW1lb3V0OiAiIGluIGZyb250IG9mIHRoZSAiTm8gUmVzcG9uc2UiIGVycm9ycy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMzozMToxMAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNyApCgpoYXJkYWtlciAyNyBBcHIgOTggMTY6MjQ6MzQKICAgIC0gKHRrbWliKTogYnVnIGZpeGVzIGFuZCBuZXcgbWliIG1lbnUgdG8gbG9hZCBuZXcgbWlicy4KCmhhcmRha2VyIDI3IEFwciA5OCAxNjo0NjoyOAogICAgLSAodGttaWIpOiBOZXcgbWliIG1lbnUgY29tbWFuZDogbG9hZCBhIG1pYiBtb2R1bGUgYnkgSUQgbmFtZS4KCmhhcmRha2VyIDI3IEFwciA5OCAxNjo0ODowMgogICAgLSAodGttaWIpOiBidWcgZml4ZXMuCgpoYXJkYWtlciAyOSBBcHIgOTggMDg6NTY6NDQKICAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggLUggaGVhZGVyIHByaW50aW5nLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjI2OjU4CiAgICAtICh0Y3AuYyk6IGRvbid0IHVzZSBUQ1BTVEFUX1NZTUJPTCB1bmxlc3MgZGVmaW5lZC4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDozNDoxMgogICAgLSAoZXhhbXBsZS5jLCBwcm9jLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgIC0gbmxpc3QgY2xlYW51cHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6NDM6MDQKICAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYywgd29tYmF0LmgpOiBtb3JlIGNsZWFuIHVwcy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMTozMTo0MwogICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oKTogbW92ZXMsIGNoYW5nZXMsIHJlbW92YWxzLCBhbmQgZml4ZXMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6MzI6MDEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwdXQgdm1zdGF0IGJhY2sgaW4gYW5kIHJlbmFtZWQgdG8gc3lzdGVtU3RhdHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6NDE6NTgKICAgIC0gKHRrbWliKToKICAgICAgLSBkaXNwbGF5IHVubG9hZGVkIG1vZHVsZSBlcnJvci4KICAgICAgLSBkb24ndCB0cnkgdG8gbG9hZCBhIGZpbGUgb24gYSBjYW5jZWwuCgpoYXJkYWtlciAgNiBNYXkgOTggMTE6MjI6NTYKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0a21pYi4KCmhhcmRha2VyICA2IE1heSA5OCAxNDowNjo1NwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gYWRkZWQgaW50ZXJuYWwgdGFibGUgc2VjdGlvbi4KICAgICAgLSBtaWIgbnVtYmVyIGNvcnJlY3Rpb25zIHRvIG1hdGNoIHRoZSBzb3VyY2UuCgpoYXJkYWtlciAgNiBNYXkgOTggMTQ6NTg6MjMKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jLCBleGFtcGxlLmgsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLAogICAgICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgIHV0aWxfZnVuY3MuaCwgdmVyc2lvbmluZm8uYywgdm1zdGF0LmMpOgogICAgICAtIHJlbW92ZSB0aGUgbmV3bmFtZSByZXF1aXJlbWVudCBmcm9tIGNoZWNrbWliKCkuCiAgICAgIC0gY3JlYXRlIGhlYWRlcl9nZW5lcmljKCkgZm9yIHNpbXBsZSBzY2FsYXIgdGVzdHMuCiAgICAgIC0gdXNlIGhlYWRlcl9nZW5lcmljKCkgaW4gYWxsIHVjZCBzcGVjaWZpYyBzY2FsYXIgbWlicywgYW5kIGV4YW1wbGUuW2NoXS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowNjo1OQogICAgLSAoTkVXUyk6IG1pbm9yIHdvcmRpbmcgY2hhbmdlLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA3OjI4CiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgIC0gbmV3IGZ1bmN0aW9uOiBjYWxjdWxhdGVfdGltZV9kaWZmKHQxLCB0MikuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDg6MDAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIGJvZ3VzIGluZGV4J3MgYmUgMC4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowODozNwogICAgLSAobWliMmMpOiBjcmVhdGVkIGEgbWliMmMgdGVtcGxhdGUgY3JlYXRvci4KCmhhcmRha2VyICA2IE1heSA5OCAyMjoyODo0NwogICAgLSAod2luMzIvY29uZmlnLmgpOiB1cGRhdGUgZnJvbSBKb2UgTWFyem90LgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA1OjU1CiAgICAtIChDT1BZSU5HKTogY29ycmVjdGlvbiBmb3IgZGF0ZXMuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDc6MDYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3lzL3N0YXQgaW5jbHVzaW9uIGluIGZzIGNoZWNrcy4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNzo0NgogICAgLSAocmVhZF9jb25maWcuYyk6IGRlYnVnIGluZm8gZm9yIGNvbmZpZyBmaWxlcyByZWFkLgoKaGFyZGFrZXIgIDggTWF5IDk4IDEwOjU3OjQ5CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIHBrZ2xvY3MuaC4KCmhhcmRha2VyICA4IE1heSA5OCAxMTowMToyNAogICAgLSAoaHJfc3dpbnN0LmMsIGhyX2Rpc2suYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzLgoKaGFyZGFrZXIgIDggTWF5IDk4IDE0OjUzOjM2CiAgICAtIChkaXNrLmMpOiB3b3JkaW5nIGNoYW5nZS4KCmhhcmRha2VyIDExIE1heSA5OCAwODowODozNwogICAgLSAodXRpbF9mdW5jcy5jKTogYmxhbmsgbGluZSByZW1vdmFsLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA4OjUzCiAgICAtICh0a21pYik6IG9wdGlvbmFsIHBvcnQgbnVtYmVyLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjA5OjU4CiAgICAtIChtaWIyYyk6CiAgICAgIC0gY291bnRlcjY0cy4KICAgICAgLSBjb25zb2xvZGF0aW9uIG9mIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4KICAgICAgLSBtb3JlIGVycm9yIHN0aW5ncyBpbiBhbGwgZmlsZXMgZm9yIHVua25vd24gdmFyaWFibGUgdHlwZXMuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MTA6MzAKICAgIC0gKHBhcnNlLmMpOiBvcGFxdWUncyBjYW4gaGF2ZSBhIHNpemUgc3BlY2lmaWVyLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjEwOjQ2CiAgICAtIChpbnQ2NC5jKTogYWRkIGluY3JCeVUzMigpLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjI5OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuaCwgc25tcGQuYywgc25tcGQuaCwgdmFyX3N0cnVjdC5oKTogUGF0Y2gKICAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHRoZSB0cmFwc2luayBkaXJlY3RpdmVzIGluIHNubXBkCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzA6MDEKICAgIC0gKGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNvbWUgcHJvdG90eXBlcyBmb3IgdGhlIGhyXyouYyBmaWxlcyAobmVlZHMgRGF2ZSdzIHJlY2VudCBwYXRjaCkKICAgICAgICBXYXJuaW5nOiB0aGUgcHJvYyBwYXJ0IHN0aWxsIGRvZXMgbm90IHdvcmsgd2l0aCBTb2xhcmlzIQoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjE4CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjM3CiAgICAtIChzbm1wdHJhbnNsYXRlLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDozMTozMwogICAgLSAoU05NUHYyLVRDLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGhpcyBsYXN0IFtwYXJzZXJdIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZQogICAgICAgIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQgd2Ugc2hpcCkuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzI6MjcKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIENvcnJlY3Rpb25zIG9mIGRpc2sgZW50cnkgY2FwaXRpbGF6YXRpb24gcHJvYmxlbXMuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzQ6MzgKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAgLSBmaXggdGhlIHBhcnNlciB0byByZXBvcnQgdW5saW5rZWQgT0lEcy4gVGhpcyBkaWQgcmV2ZWFsIGFuIGVycm9yIGluIGEKICAgICAgICBDaXNjbyBNSUIgKENJU0NPLUlQTUNBU1QtTUlCKSB0aGF0IEkgaGFkIGJlZW4gdXNpbmcgKGl0IG5lZWRzIGFuCiAgICAgICAgSU1QT1JUUyBjaXNjb0V4cGVyaW1lbnQgRlJPTSBDSVNDTy1TTUkpCiAgICAgICAgQWN0dWFsbHkgdGhlIHBhcnNlciB3b3JrZWQgb2ssIGV4Y2VwdCBmb3IgdGhlIG1pc3NpbmcgZXJyb3IgbWVzc2FnZXMuCiAgICAgIC0gcmV3cml0ZSBvZiB0aGUgcGFyc2VycyBsZXhpY2FsIGFuYWx5c2VyLCB0byBjb3JyZWN0IHRoZSBlcnJvcnMgdGhhdAogICAgICAgIERhdmUgUGVya2lucyBhbmQgb3RoZXJzIGhhdmUgcG9pbnRlZCBvdXQgcmVjZW50bHkgKG5hbWU6Oj0gLCBERVNDUklQVElPTiIKICAgICAgICBhbmQgcHJvcGVyIGhhbmRsaW5nIG9mIC0tIHBhcnRpYWwgbGluZSBjb21tZW50cyAtLSkuIFdhdGNoIG91dCEgdGhpcyBsYXN0CiAgICAgICAgbWF5IGZpbmQgZXJyb3JzIGluIG9sZCBNSUJzIChpbmNsdWRpbmcgdGhlIHZlcnNpb24gb2YgU05NUHYyLVRDIHRoYXQKICAgICAgICB3ZSBzaGlwKS4gTXkgRm9yZSBTeXN0ZW1zIE1JQnMgaGFkIGVycm9ycyB3aXRoIHRoaXMuCiAgICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCgpoYXJkYWtlciAxMiBNYXkgOTggMTA6NTI6MTYKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBtb3JlIHN3aW5zdCBmaXhlcyBmb3IgcnBtIG1vZHVsZXMuCgpoYXJkYWtlciAxMiBNYXkgOTggMTA6NTI6NTcKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBpbmNsdWRlIGEgZ2V0ZHRhYmxlc2l6ZSgpIGZ1bmN0aW9uIGZvciBocHV4OS4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMDo0MgogICAgLSAoTkVXUyk6IG1vcmUgdXBkYXRlcy4KCmhhcmRha2VyIDEyIE1heSA5OCAxMToxMToxMAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBtdW5nZSBycG0gbGliIGNoZWNrIHRvIGxpbmsgd2l0aCAtbGRiIGFzIHdlbGwuCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6MTE6MzIKICAgIC0gKGRpc2suYyk6IE5VTEwgLT4gMC4KCmhhcmRha2VyIDEyIE1heSA5OCAxMTo0NToyMQogICAgLSAodm1zdGF0LmMpOiBjb3JyZWN0IHN0cmluZ3MgaW5jbHVzaW9uLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjQ1OjUxCiAgICAtIChzbm1wX2FwaS5jLCBzeXN0ZW0uYyk6CiAgICAgIC0gbW92ZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIHN5c3RlbS5jIHRvIHNubXBfYXBpLmMsIHdoZXJlIGl0IHNob3VsZCBiZS4KCmhhcmRha2VyIDEyIE1heSA5OCAxNToxNDo0OAogICAgLSAoZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLAogICAgICBwcm9jLmMsIHV0aWxfZnVuY3MuaCwgdm1zdGF0LmMpOgogICAgICAtIGluY2x1ZGUgdGltZS5oIHByb3Blcmx5IGluc3RlYWQgb2YgcmVseWluZyBvbiB1dGlsX2Z1bmNzLmggdG8gZG8gaXQuCgpoYXJkYWtlciAxMiBNYXkgOTggMTU6MTU6MDEKICAgIHZlcnNpb24gdGFnICggMy40LnByZTggKQoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIxOjIyCiAgICAtIChpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYyk6IG1ha2UgaW50NjQuYyB1c2UgY291bnRlcjY0J3Mgc3RydWN0dXJlLgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIxOjQyCiAgICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IHJldHVybiBhIGNvdW50ZXI2NCB0byBhIHNubXB2MSByZXF1ZXN0LgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIyOjA5CiAgICAtIChpcC5jKTogaW5jbHVkZSBuZXQvcm91dGUuaCBhbmQgc3lzbG9nLmggZm9yIGJzZGkuCgpoYXJkYWtlciAxMyBNYXkgOTggMjE6MjI6MTcKICAgIC0gKG1lbW9yeS5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCBmb3IgYnNkaQoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjI1OjM5CiAgICAtIChtaWIuYyk6IHNwcmludF9ieV90eXBlKCkgZGlkbid0IGhhbmRsZSBjb3VudGVyNjQncy4KCmhhcmRha2VyIDE0IE1heSA5OCAwNzoxNzozNAogICAgLSAobWVtb3J5LmMpOiBtb3ZlIHN5cy9wYXJhbS5oIHVwIGFib3ZlIGZzLmggaGVhZGVycy4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyMTo1NQogICAgLSAoRkFRKTogbmV3IEZBUSBmcm9tIERhdmUgU2hpZWxkcy4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyMjowOAogICAgLSAoTkVXUyk6IG1pYjJjIG1lbnRpb25lZC4KCmhhcmRha2VyIDE0IE1heSA5OCAwODoyNTo1NwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiB0eXBvcy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxMzoxNgogICAgLSAocGFyc2UuYyk6IHNpbmdsZSBxdW90ZSBtaXNzaW5nIG1vZHVsZSBuYW1lcy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxNzozNgogICAgLSAocmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgICBocl9zeXN0ZW0uaCwgaHJfdXRpbHMuYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFuc2xhdGUuMSwKICAgICAgYnNkLmgsIHNvbGFyaXMuaCwgc3Vub3MuaCwgaW50NjQuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhbnNsYXRlIHN1cHBvcnRzIC1SIGFuZCAtci4KICAgICAgLSBtaXNjZWxsYW5lb3VzIHdhcm5pbmcgZml4ZXMuCiAgICAgIC0gb2lkIHNlYXJjaGVyIGFsd2F5cyBpZ25vcmVzIGNhc2UuCiAgICAgIC0gZml4ZWQgaHJfc3lzdGVtIHRvIGNvbXBpbGUgb24gU3VuT1M0LgoKaGFyZGFrZXIgMTUgTWF5IDk4IDEwOjE5OjA1CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gcHJvdmlkZSBhYmlsaXR5IHRvIGRvIHJhbmRvbSBzZWFyY2hlcyBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgdG8gbG9vayBpbi4KCmhhcmRha2VyIDE1IE1heSA5OCAxMToxNzo0NAogICAgLSAoRkFRLCBtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gaGFuZGxlIHJhbmRvbSBsb29rdXBzIHdpdGggbXVsdGlwbGUgb2lkIHNlZ21lbnRzLgoKaGFyZGFrZXIgMTUgTWF5IDk4IDExOjE5OjEwCiAgICAtIChjb25maWcuaCwgd2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLAogICAgICBsaWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5wbGcsCiAgICAgIHNubXBnZXRuZXh0LnBsZywgc25tcHNldC5wbGcsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLnBsZywKICAgICAgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHdpbjMyIGZpbGUgdXBkYXRlcy4KCmhhcmRha2VyIDE4IE1heSA5OCAxMToxODoyMQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgdGVzdCBvbiByZS1jb25maWd1cmVzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDEzOjEzOjE4CiAgICAtIChocl9zd2luc3QuYyk6IHByb3RlY3QgdXNpbmcgdGhlIGRhdGUgcG9pbnRlciBhZ2FpbnN0IE5VTEwgc2V0dGluZ3MuCgpoYXJkYWtlciAxOCBNYXkgOTggMTU6Mzk6MzgKICAgIHZlcnNpb24gdGFnICggMy40LnByZTkgKQoKaGFyZGFrZXIgMTggTWF5IDk4IDE4OjE0OjE5CiAgICAtIChpbnQ2NC5jKToKICAgICAgLSBpbmNsdWRlIGhlYWRlciBjaGFuZ2VzIGZvciB3aW4zMi4KCmhhcmRha2VyIDE5IE1heSA5OCAxMDo0MToxNAogICAgLSAoYXQuYyk6IHNldCB0byBkbyBub3RoaW5nIHdoZW4gQ0FOX1VTRV9TWVNDVEwuCgpoYXJkYWtlciAxOSBNYXkgOTggMTA6NDE6NDkKICAgIC0gKG1lbW9yeS5jKTogZml4IHN3YXBpbmZvIG9uIGhwdXgxMCBzeXN0ZW1zLiAoL2V0Yy9zd2FwaW5mbyAtcikuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzM6MDIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBleHRlbmQgcmFuZG9tIGxvb2t1cHMgZnVydGhlci4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNDozMQogICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzY6MTQKICAgIC0gKHV0aWxfZnVuY3MuYyk6IG1ha2UgY2hlY21pYigpIHVzZSBvaWQgbm90IGludCBmb3IgbmV3bmFtZS4KCmhhcmRha2VyIDIwIE1heSA5OCAwNzozNzozMwogICAgLSAoc25tcF9pbXBsLmgpOiB2ZXJzaW9uIHNob3VsZCBiZSBhIGxvbmcuCgpoYXJkYWtlciAyMCBNYXkgOTggMDg6MjU6NDEKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBjb25maWdfcGVycm9yKCkgLT4gY29uZmlnX3B3YXJuKCkgZm9yIG1pc3NpbmcgdG9rZW5zLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA4OjI3OjA2CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMiAtPiBWMy4zCgp3aGFyZGFrZSAxMSBKdW4gOTcgMDQ6NTM6NTMKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBtYWtlIE1JQkZJTEVTIGVudiB2YXIgd29yayBjb3JyZWN0bHkuCgp3aGFyZGFrZSAxMSBKdW4gOTcgMDU6NDY6MTgKICAgIC0gKENoYW5nZUxvZyk6IHdob29wcy4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MDoyOAogICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gQ2hhcmx0b24gdG8gZml4IGxlYWRpbmcgc3BhY2VzIGluIHNlZHNjcmlwdC4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MTo1OAogICAgLSAoY29uZmlndXJlKik6IGJzZGkzIG5lZWRzIHRvIGRlZmluZSBic2RpMiwgbm90IGl0c2VsZiAoZHVoKS4KCndoYXJkYWtlIDIzIEp1biA5NyAyMzo0MjozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogbmVlZCAyIGxlYWRpbmcgJy0ncyBvbiAtLXdpdGgtbWliLW1vZHVsZXMgZmxhZy4KCndoYXJkYWtlIDI2IEp1biA5NyAyMzozOTozMgogICAgLSAoc211eC5jKTogX19QIG1hY3JvcyB3ZXJlIGNhbGxlZCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cyAobmVlZGVkIChhcmdzKSkuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDU6NTM6NTcKICAgIC0gKGFnZW50L3NubXBfe2FnZW50LHZhcnN9LmMsIGFsYXJtLmMsIGV2ZW50LmMsIGFwcHMvKiwKICAgICAgIHNubXBsaWIvc25tcHssX2FwaSxfYXV0aH0uYyk6CiAgICAgICAtIEFkZGVkIGJhc2ljIChtb3N0bHkgY29uZm9ybWluZz8pIHYyYyBzdXBwb3J0LgogICAgICAgLSBNZXJnZWQgYXJnIHBhcnNpbmcgb2YgYXBwcy8qIGNsaWVudHMgaW50byBvbmUgZmlsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNTo1NDozNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jKTogRG9uJ3QgcHV0ICYgaW4gZnJvbnQgb2Ygb3NmNCBhY19lbmFkZHIuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6MzM6MDgKICAgIC0gKHNubXB0ZXN0LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCBnZXQgLT4gZmdldCAnXG4nIHByb2JsZW0uCiAgICAgIC0gQWxzbyBtYWtlcyBzdXJlIGl0IGhhbmRsZXMgdXAgYW5kIGxvd2VyIGNhc2VzLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjM4OjQzCiAgICAtICh3b21iYXQuaCk6IGJldHRlciBkb2N1bWVudCBjb25maWdfbG9hZF9taWIoKSBleGFtcGxlLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjQ5OjQ1CiAgICAtIChjb25maWcqLCBtZW1vcnkuYyk6IFBhdGNoIGZyb20gdmxhZEBtaXNlcnkucm9zcHJpbnQucnU6CiAgICAgIC0gaW1wbGVtZW50IG1lbW9yeSBzZWN0aW9uIG9mIHVjZCBtaWIgb24gbGludXguCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDY6NTg6NDkKICAgIC0gKG1pYl9hcGkuMywgcGFyc2UuW2NoXSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gSGFuZGxlIG1pYiBtb2R1bGUgcmVwbGFjZW1lbnRzIHRocm91Z2ggbmV3IGZ1bmN0aW9uIGFuZCByZXBsYWNlbWVudCB0YWJsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNzoxOTo1MQogICAgLSAobWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMpOiBTdWdnZXN0aW9ucyBmcm9tIExhdWtrYW5lbiBNYXJra3UgTlJDL0hraToKICAgICAgLSBNYWxsb2MgdHlwZWNhc3RzIGFuZCBvdGhlciBjb3JyZWN0aW9ucyBpbiBjYXN0aW5nLgoKd2hhcmRha2UgIDEgSnVsIDk3IDAxOjEwOjAwCiAgICAtIChzbXV4LmMpOiBmaXggcHJvdG90eXBpbmcgZmFpbHVyZXMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDU6NDE6NTgKICAgIC0gKGNvbmZpZyosIGNvbW1vbl9oZWFkZXIuaCwgaW50ZXJmYWNlcy5jLCB2YXJfcm91dGUuYywgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gZml4IGZyZWVic2QzIHNwZWNpZmljIHByb2JsZW1zIChiYXNlZCBvbiBzdWdnZXN0aW9ucyBmcm9tIEJpbGwgRmVubmVyKS4KCndoYXJkYWtlICAxIEp1bCA5NyAwNjowMjo1NwogICAgLSAoYXBwcy8qLmMpOiBCZXR0ZXIgdXNhZ2UgaW5mb3JtYXRpb24gYW5kIHVzYWdlKCkgc3RhbmRhcml6YXRpb24uCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDY6NDE6NDQKICAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6IGJzZGkzIHNwZWNpZmljIGhlYWRlcnMuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDc6MjA6MjUKICAgIC0gKGNvbmZpZyopOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA4OjM3OjUxCiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxICkKCndoYXJkYWtlICAzIEp1bCA5NyAyMzozMzoyMwogICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBtaWIuW2NoXSwgcGFyc2UuW2NoXSk6CiAgICAgIC0gTmV3IG9wdGlvbiB0byBzbm1wdHJhbnNsYXRlICgtYSkgdG8gb3V0cHV0IGEgYXNjaWkgZHVtcCBvZiB0aGUgbWliCiAgICAgICAgZGF0YWJhc2UgY2FwYWJsZSBvZiBiZWluZyB1c2VkIGJ5IHRoZSBwYXJzZXIgZm9yIHF1aWNrIE9JRCB0cmFuc2xhdGlvbnMuCgp3aGFyZGFrZSAgMyBKdWwgOTcgMjM6MzQ6MTQKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTIgKQoKd2hhcmRha2UgMjQgSnVsIDk3IDIzOjUwOjQ4CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBFZGR5IEouIEd1cm5leTogIHVuY29tbWVudCBnZXR0aW1lb2ZkYXkoKSBjYWxsLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAwOjI5OjI0CiAgICAtIChUT0RPKTogYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGJ5IGFwcHMuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDE6MTE6NTQKICAgIC0gKGNvbmZpZyosIGxvYWQuYywgZGlzay5jLCBwYXJzZS5jLCBzbm1wLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgICAtIFVsdHJpeCBmaXhlcyBmb3Igc3RhdGZzLCBsb2FkYXZlLgogICAgICAtIGltcGxlbWVudCBzdHJkdXAgaWYgbm90IGZvdW5kIGluIHN5c3RlbS4KICAgICAgLSB0ZXN0IGZvciB0ZXN0IGZsYWdzIGZvciBrZXJuZWwgY2hlY2tpbmcuCiAgICAgIC0gd2F0Y2ggb3V0IGZvciBwcydlcyB0aGF0IHJldHVybiBlZ3JlcCB3aXRoIHRoZSBwcyBhcmcgb24gdGhlIGxpbmUuCiAgICAgIC0gdXAgbWF4aW11bSBkaXNrcyB0byA1MC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMTozMzozOAogICAgLSAoa2VybmVsLmMsIHByb2MuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgIC0gSW1wbGVtZW50IHJlYWwgcHJvY2VzcyB0YWJsZSB3YWxrcyBvbiBVbHRyaXguCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDI6MzQ6NDUKICAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKToKICAgICAtIGZpeCBzd2FwIG9uIEhQVVggMTAuMjAKCndoYXJkYWtlIDEzIEF1ZyA5NyAwNDo0Nzo0OQogICAgLSAoc25tcHN0YXR1cy5jKTogb3B0YXJnL29wdGluZCBuZWVkIHRvIGJlIGRlY2xhaXJlZCB1bmRlciB1bHRyaXg0LgoKd2hhcmRha2UgMTMgQXVnIDk3IDA4OjExOjQyCiAgICAtICh2ZXJzaW9uLmgsIGFnZW50LyosIGFnZW50L21pYmdyb3VwLyopOgogICAgICAtIG1vdmUgdmVyc2lvbiBzdHJpbmcgdG8gYSBnbG9iYWwgaGVhZGVyLgogICAgICAtIGluc2VydCBVU0lOR18qX01PRFVMRSBtYWNybydzIGluIG1hbnkgcGxhY2VzIHRvIG1ha2UgbW9kdWxlCiAgICAgICAgcmVtb3ZhbCBtb3JlIHBvc3NpYmxlLiAgWW91IGNhbiBub3cgY29tcGlsZSB3aXRoIGFsbW9zdCBubyBtb2R1bGVzCiAgICAgICAgaW5zdGFsbGVkLgoKd2hhcmRha2UgMTQgQXVnIDk3IDAwOjQ2OjM4CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIG1haW4uYyk6CiAgICAgIC0gYWRkIC1WIHZlcnNpb24gZmxhZ2UuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDc6Mzg6MTcKICAgIC0gKGNvbmZpZyosIEZBUSwgUkVBRE1FLCBhZ2VudC9taWJncm91cC8qLmMsIGFwcHMvKi5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmlkIFBhdWwgWmltbWVybWFuOgogICAgICAgIC0gcG9ydCB0byBBSVggNC4xLjUuCiAgICAgICAgLSBmaXggbW9yZSB0eXBlIGNhc3RpbmcgcHJvYmxlbXMuCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTU6NDIKICAgIC0gKGNvbmZpZ3VyZSopOgogICAgICAtIFR5cG8ncyB3aGVuIGNvcHlpbmcgaW4gYSBhdXRvY29uZiB0ZXN0LgogICAgICAtIEFkZCBlcnJvcm1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IChzaW5jZSBpdHMgbm8gbG9uZ2VyIHJlcXVpcmVkKS4KICAgICAgLSBiYWNrcXVvdGUgYSAuIGluIGEgc2VkIHJlZ2V4cCB0byB3YXRjaCBvdXQgZm9yIG1vZHVsZSBuYW1lcwogICAgICAgIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgby4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNjoxMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FKTogUG9pbnQgb3V0IHRoYXQgbWliIGxpc3QgbXVzdCBiZSBpbiBkZXNjZW5kaW5nIG9yZGVyLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE2OjM3CiAgICAtIChwcm9jLmMpOiBkb24ndCB1c2Ugc2V0ZXJyb3JzdGF0dXMoKSBpZiBub3QgdXNpbmcgdGhlIGVycm9ybWliLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjIxOjI2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmlkIEMuIExhd3JlbmNlIGZvciBuZXRic2QgKiBic2Qvb3MgMi4wLgoKd2hhcmRha2UgMTUgQXVnIDk3IDAyOjMwOjU5CiAgICAtIChjb25maWcqLCBzbm1wZC5jLCBzbm1wX2NsaWVudC5bY2hdLCBzeXN0ZW0uW2NoXSk6CiAgICAgIC0gZml4IG1vcmUgbG9uZy9pbnQgcHJvYmxlbXMgb24gNjQgYml0IG1hY2hpbmVzIHVfbG9uZyAtPiBpbl9hZGRyX3QuCiAgICAgIC0gQ2hlY2sgZm9yIFNJT0NHSUZBRERSIGluIHN5cy9pb2N0bC5oIGFuZCB1c2UgaXQgaW4gZ2V0X215YWRkcigpIGlmCiAgICAgICAgZGVmaW5lZC4KCndoYXJkYWtlIDE1IEF1ZyA5NyAwNjo0NjozOQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMyApCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjE6MjMKICAgIC0gKG1lbW9yeS5jKTogdHlwbyBpbiBpZmRlZi4KCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMTo0MQogICAgLSAodmVyc2lvbnRhZyk6IGNoZWNraW4gdmVyc2lvbi5oLgoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIyOjE4CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgbmV0YnNkLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE1OjIzCiAgICAtIChtaWJfYXBpLjMpOiBkb2MgYWRkaXRpb246ICBhZGRfbWliZGlyKCkgcmV0dXJuIHZhbHVlLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE2OjM2CiAgICAtIChwYXJzZS5jKTogRnJvbSBEYXZlIFNoaWVsZHM6CiAgICAgIC0gc2VsZiBjb250YWluZWQgbWliIC50eHQgZmlsZXMgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjE5OjE2CiAgICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgpOiBkeW5peCBkb2Vzbid0IGhhdmUgbmV0L3JvdXRlLmguCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MjE6NTcKICAgIC0gKEZBUSk6IEZyb20gRGF2ZSBTaGllbGRzOiByZWZlciByZWFkZXIgdG8gYW5vdGhlciBhbnN3ZXIgYXMgd2VsbC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNTozMzowMwogICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKTogWU1XUkFNRlNGTjoKICAgICAgLSAoeWV0IG1vcmUgd2FybmluZyByZW1vdmFscyBhbmQgbWVtb3J5IGZ1bmN0aW9uIHN0YW5kYXJkaXphdGlvbnMgZnJvbSBOaWVscykuCiAgICAgIC0gbWlub3IgbGludXgvbmV0YnNkL2JzZGkgY2xlYW4gdXBzLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDA5OjUwOjA4CiAgICAtICh2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jKTogRnJvbSBOaWVsczogd2FybmluZyByZW1vdmFscyBhbmQgc3RhbmRhcmRpemF0aW9uLgoKaGFyZGFrZXIgMTUgT2N0IDk3IDA5OjU4OjM2CiAgICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzOgogICAgICAtIHdhcm5pbmcgZml4ZXMuCiAgICAgIC0gcmVtb3ZlIHRoZSBwcmludGYncyBmcm9tIHRoZSBsaWJyYXJ5IGFuZCBzZXQgYSBzbm1wICdlcnJubycgZXF1aXZhbGVudC4KCmhhcmRha2VyIDE1IE9jdCA5NyAxMjoxMjowMgogICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBuZXcgZnVuY3Rpb246ICBzbm1wX3BlcnJvcihjaGFyICopCiAgICAgIC0gZnJlZSBhbGxvY2F0ZWQgc3BhY2Ugb2Ygc25tcF9kZXRhaWwgdXBvbiB1c2FnZSBieSBzbm1wX2FwaV9lcnJzdHJpbmcoKS4KCmhhcmRha2VyIDE1IE9jdCA5NyAxODo0MDozOAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHIqKTogSG9zdCByZXNvdXJjZXMgbWliIGZyb20gRGF2ZSBTaGllbGQuCiAgICAgIC0gbWlub3IgcGF0Y2hlcyBieSBtZSwgbW9zdGx5IHBvaW50ZXIgZXJyb3JzLgogICAgLSAobWVtb3J5LmMpOiBmaXhlZCBhIG51bGwgcG9pbnRlciBwcm9ibGVtIHVuZGVyIGxpbnV4LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDExOjQ1OjU4CiAgICAtIChGQVEpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxMTo1MTozNAogICAgLSAoY29uZmlnKiwgYWdlbnQvc25tcCosIGFnZW50L21pYmdyb3VwLyouW2NoXSk6CiAgICAgIC0gQ3JlYXRlZCBhIG5ldyBtaWJtb2R1bGUuaCBjb25maWd1cmF0aW9uIG1hY3JvIGNhbGxlZAogICAgICAgIGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHdoaWNoIGNhbiBiZSBjYWxsZWQgdG8gcmVxdWVzdCBwYXJzaW5nIG9mCiAgICAgICAgdGhlIHNubXBkLmNvbmYgZmlsZShzKSBvbiBhIHBlciBtb2R1bGUgYmFzaXMuCiAgICAgIC0gQWxsIHJlbGF0ZWQgcGFyc2luZyBoYXMgYmVlbiBzdHJpcGVkIGZyb20gcmVhZF9jb25maWcuYyBhbmQgbW92ZQogICAgICAgIHRvIHRoZWlyIGNvcnJlY3QgbW9kdWxlIGluc3RlYWQuCiAgICAgIC0gTmV3IGZ1bmN0aW9uOiBjb25maWdfcGVycm9yKGNoYXIgKik6IHByaW50IGVycm9yIHdpdGggZmlsZSAmIGxpbmUgIy4KICAgICAgLSBiYXNpYyAtV2FsbCBjbGVhbnVwcyBpbiBociogYXMgd2VsbCAobm90IG5lYXJseSBkb25lIHlldCkuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6MDU6MTQKICAgIC0gKHBhc3MuYykgZG9uJ3QgbnVsbCBsYXN0IGNoYXIgaW4gY29tbWFuZCBsaW5lLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjA2OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBkb24ndCByZXBvcnQgYW4gZXJyb3IgaWYgeW91IGNhbid0IGZpbmQgYSBzbm1wZC5jb25mIGZpbGUuCiAgICAgIC0gZG9uJ3QgcmVwb3J0IGFsbCBsaW5lcyBhcyBhbiBlcnJvciAob3BwcykuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTY6Mzg6MzMKICAgIC0gKG1pYi5jKTogRnJvbSBEYXZlOiAgcGF0Y2ggREVGQVVMVF9NSUJTIHRvIHRha2UgJysnIGluIGZyb250LgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjQ0OjM3CiAgICAtIChtaWIuYyk6IHBhdGNoIGFsbCBvdGhlciBlbnYtdmFycyB0byB0YWtlICcrJyBpbiBmcm9udC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNzowMTo0OAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjE1OjUxCiAgICAtIChhZ2VudC9taWJncm91cC9SRUFETUUsIHdvbWJhdC5bY2hdKToKICAgICAgLSBkb2N1bWVudGF0aW9uIHVwZGF0ZSB0byByZWZsZWN0IGNvbmZpZ19wYXJzZV9kb3RfY29uZigpIHVzYWdlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE3OjE2OjU4CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC9ocl8qLmMpOgogICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgICAtIHJlbW92ZWQgaG9zdC5jCiAgICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTg6MDE6NDYKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCwgdWNkX3NubXAuaCwgc211eF9nYXRlZC5oKToKICAgICAgLSBjcmVhdGVkIG5ldyB3cmFwcGVycyBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlcyB0byBtYWtlIHRoZW0gZWFzeSB0bwogICAgICAgIGFkZCBhbmQgcmVtb3ZlIGFzIG5lZWRlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxOTo0Mjo0NgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgbGludXgncyBPUyB0eXBlLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE5OjQzOjEzCiAgICAtIChzbm1wX3ZhcnMuYyk6IGRlZmluZSBhdCBsZWFzdCBibGFuayBmdW5jIG5saXN0X2luaXQoKSBvbiBsaW51eC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMDoxNTo1NAogICAgLSAoUE9SVElORywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMDo0NTo0NwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhbGxvdyAtdiAyaCBhbmQgMnAgZm9yIHBhcnR5IGNvZGUuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDA6NTcKICAgIC0gKGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMpOiBjbG9zZSBvcGVuIGZpbGVzIG9uIGxpbnV4LgoKaGFyZGFrZXIgMjEgT2N0IDk3IDExOjAxOjI3CiAgICAtIChORVdTKTogYmVnaW5uaW5ncyBvZiBORVdTIHVwZGF0ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTE6MDI6NDYKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTQgKQoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjI1OjAzCiAgICAtIChhZ2VudC9yZWFkX2NvbmZpZy5bY2hdLCBzbm1wZC5jLCBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZWQgcmVhZF9jb25maWcuW2NoXSB1cCBhIGxldmVsIHRvIGFsd2F5cyBiZSBjb21waWxlZCBpbi4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozMTo1NAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZCBzZXR1cC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozMjowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgbWFrZWZpbGVpbmRlcGVuZC4uCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MzY6MzMKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBkaWQgYSBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMjozNjozOQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNSApCgpoYXJkYWtlciAyMiBPY3QgOTcgMTE6NDA6MDYKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCwgcmVhZF9jb25maWcuYywgZGlzay5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gVHlwbydzIGZpeGVkIGJ5IE5pZWxzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDA5OjU2OjI2CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC8qLmgpOgogICAgICAtIG5ldyBjb25maWcgbWFjcm86ICBjb25maWdfYXJjaF9yZXF1aXJlKGFyY2gsIG1vZHVsZSkuCiAgICAgIC0gbW92ZWQgYXJjaCBkZXBlbmRhbnQgbW9kdWxlcyAobWVtb3J5LCBocHV4LCBrZXJuZWxfc3Vub3M1KSBsb2FkcwogICAgICAgIGZyb20gdGhlIGNvbmZpZ3VyZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KICAgIC0gKGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIHR5cGVjYXN0IGtsb29rdXAgY2FsbHMgZm9yIGZyZWVic2QyLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjAzOjE1CiAgICAtIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcF92YXJzLmMpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSB2MmggLT4gdjJwLCB2MiAtPiB2MmMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MDQ6MzMKICAgIC0gKGFwcHMvKi5jKToKICAgICAgLSBjaGFuZ2VzIGZvciBXSU4zMiBzdXBwb3J0LgogICAgICAtIHN1cHBvcnQgZm9yIGNvbW1hbmQgbGluZSBmbGFncyB3aXRob3V0IHNwYWNlcy4KICAgICAgLSB2MmggLT4gdjJwLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE2OjQyCiAgICAtIChzbm1wbGliLyouW2NoXSk6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIGNoYW5nZXMgZm9yIFdJTjMyIHN1cHBvcnQuCiAgICAgIC0gdjJoIC0+IHYycC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSBjb25maWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MTgKICAgIGZpbGUgd2luMzIuZHN3IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToxOAogICAgZmlsZSB3aW4zMi5vcHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI1CiAgICBmaWxlIGxpYnNubXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyNQogICAgZmlsZSBsaWJzbm1wLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcC5kZWYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI4CiAgICBmaWxlIGxpYnNubXBfZGxsLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjgKICAgIGZpbGUgbGlic25tcF9kbGwucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgZmlsZSBzbm1wYnVsa3dhbGsuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozMQogICAgZmlsZSBzbm1wYnVsa3dhbGsucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNAogICAgZmlsZSBzbm1wZ2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzQKICAgIGZpbGUgc25tcGdldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICBmaWxlIHNubXBnZXRuZXh0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzcKICAgIGZpbGUgc25tcGdldG5leHQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0MQogICAgZmlsZSBzbm1wc2V0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDEKICAgIGZpbGUgc25tcHNldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ0CiAgICBmaWxlIHNubXBzdGF0dXMuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NAogICAgZmlsZSBzbm1wc3RhdHVzLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDcKICAgIGZpbGUgc25tcHRyYW5zbGF0ZS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ3CiAgICBmaWxlIHNubXB0cmFuc2xhdGUucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgZmlsZSBzbm1wd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjUyCiAgICBmaWxlIHNubXB3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTc6MTEKICAgIC0gKGNvbmZpZyopIHdpbjMyIGhlYWRlciBjaGVja3MuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MTc6NTAKICAgIC0gKGFnZW50L2tlcm5lbC5jLCBzbm1wX2FnZW50LmMpOgogICAgICAtIEVSUk9SKCkgLT4gRVJST1JfTVNHKCkuCiAgICAgIC0gZnVudGlvbiByZW5hbWVzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjE4OjE2CiAgICAtIChhZ2VudC9taWJncm91cC8qLmMpOgogICAgICAtIEVSUk9SKCkgLT4gRVJST1JfTVNHKCkuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjE6NTMKICAgIC0gKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIHB1dCB0YWJzIGJhY2sgaW4gaGVscCBzdHJpbmcuCiAgICAgIC0gcHV0IHZlcnNpb24gc3RyaW5nIHJlcXVlc3QgYmFjayBpbi4KICAgICAgLSBtYWtlIGVycm9yIHN0cmluZ3MgYmV0dGVyIGFuZCBwdXQgYmFjayBpbiBwZXJpb2RzLgogICAgICAtIGRvbid0IGJvbWIgb24gdW5rbm93biBwYXJhbWV0ZXJzIGZvciBmdXR1cmUgdXNlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjIyOjIxCiAgICAtIChzbm1wbGliL3NubXAuYyk6IHB1dCBzdHJkdXAgZGVjbGFpcmF0aW9uIGJhY2sgaW4uCgpoYXJkYWtlciAyNyBPY3QgOTcgMTU6MjM6MjAKICAgIC0gKHNubXBsaWIvc25tcF9hdXRoLmMpOgogICAgICAtIHJlbW92ZSAjaWZkZWYgT0xEIHJlcXVpcmVtZW50LgogICAgICAtIGNoYW5nZSBiYWNrIGludC0+bG9uZyBhcmd1bWVudCBjaGFuZ2UgZm9yIHNubXBfY29tc3RyX2J1aWxkLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjM3OjQ2CiAgICAtIChzbm1wbGliL3NubXAuaCk6CiAgICAgIC0gc25tcCB2ZXJzaW9uICNkZWZpbmUgY2xhaXJpZmljYXRpb24gb24gZnV0dXJlIGltcGxlbWVudGF0aW9ucy4KICAgICAgLSBtb3JlIGNsZWFybHkgc3RhdGUgcHVycG9zZSBvZiBmdXR1cmUgU05NUFYzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE2OjI2OjU3CiAgICAtICgqKTogbWVyZ2Ugb2YgVzMyIHBvcnQgYW5kIG1haW4gdmVyc2lvbiBicmFuY2guCgpoYXJkYWtlciAyNyBPY3QgOTcgMTY6MzQ6NDUKICAgIC0gKHNubXBfYXBpLltjaF0pOiBmaXggcGVycm9yIGxvc3NlcyBmcm9tIG1lcmdlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjA0OjUxCiAgICAtIChocl8qLmMpOiBFUlJPUiAtPiBFUlJPUl9NU0cuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6MDU6MTIKICAgIC0gKHNubXBzdGF0dXMuYyk6IHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFpcmF0aW9uLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQyOjU1CiAgICAtIChzbm1wX3ZhcnMuYyk6IHR3byBtb2R1bGVzIGZvciBleHRlbnNpYmxlIGNvdW50LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQzOjIyCiAgICAtIChhZ2VudC9taWJncm91cC9ocl8qLmgpOiBwcm9wZXIgaW5pdF8gcHJvdG90eXBlcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0Mzo1MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtaXNzaW5nIGEgZWxzZSBzdGF0ZW1lbnQgKHNpZ2gpLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQ0OjI3CiAgICAtIChzbm1wX2F1dGguYyk6IG1lcmdlIGJ1Z3MuICBNaXNzaW5nIGJyYWNrZXRzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjQ3OjAwCiAgICAtIChzbm1wX2FwaS5jKTogbWVyZ2UgYnVnczogZWxzZSBjaGVjayBhZ2FpbnN0IHBkdSBjb21tYW5kIHR5cGUuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MDI6NTYKICAgIHdpbjMyIGZpbGVzCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MDU6MzYKICAgIC0gKHdpbjMyKTogIGFkZCBmaWxlcyBvbiBtYWluIGJyYW5jaC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoxODozNgogICAgLSAoc25tcHdhbGsuYyk6IHJlbW92ZSBnb3Ryb290IHZhci4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoxODo1NwogICAgLSAoc25tcGxpYi8qLmMpOiB1c2Ugc25tcF9zZXRfZGV0YWlsIHRvIGhhbmRsZSBtYWxsb2MvZnJlZSBvZiBzbm1wX2RldGFpbC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODoyNjo0MQogICAgLSAoY29uZmlndXJlLmluKTogZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUgbWFjcm8gdG8gYWN0dWFsbHkgd29yay4KCmhhcmRha2VyIDI3IE9jdCA5NyAxODozMTozNAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNiApCgpoYXJkYWtlciAyOCBPY3QgOTcgMDk6NTY6MTEKICAgIC0gKGFjY29uZmlnLmgsIHN5c3RlbS5bY2hdLCBzbm1wLmMpOiBtb3ZlIHN0cmR1cCBkZWYgdG8gc3lzdGVtLltjaF0uCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6MzA6NTUKICAgIC0gKGFjY29uZmlnLmgsIG1pYi5jKTogdXNlICc7J3MgZm9yIERPUyBlbnYgcGF0aHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6NDI6MjMKICAgIC0gKGNvbmZpZyopOiBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgY2hlY2tzIGZvciB0aGUgKmJzZCBncm91cHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTQ6NTQ6MjQKICAgIC0gKCouKi4qLiopOiByZW5hbWUgbWFjcm8gX19QIC0+IF9fVUNEX1AgdG8gcmVkdWNlIHN0dXBpZCBjb25mbGljdHMuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTU6NTA6MDUKICAgIC0gKGNvbmZpZyosIHJvdXRlX3dyaXRlLmMsIHZhcl9yb3V0ZS5jKToKICAgICAgLSBmaXggcnRlbnRyeSBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgcHJvYmFibHkgbmV2ZXIuCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MDk6NTcKICAgIC0gKGFjY29uZmlnLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBkZWZpbmUgYnNkaSBhZ2VudCB0eXBlLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE3OjEwOjU4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBQYXRjaCBmcm9tIE5vYnVvX09rYWJlQHlva29nYXdhLmNvLmpwOgogICAgICAtIGZpeCB1bndyYXBwZWQgZm9wZW4oKSBieSBhZGRpbmcgcmV0dXJuIE5VTEwgY2hlY2suCgpoYXJkYWtlciAyOCBPY3QgOTcgMTc6MTI6MDAKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTcgKQoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjQxOjU0CiAgICAtIChzbm1wdHJhcC5jKTogcmVtb3ZlIHVudXNlZCBubGlzdCBzdHJ1Y3QuCgpoYXJkYWtlciAyOSBPY3QgOTcgMDk6NDI6MDcKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHN5cy9zZWxlY3QuaCBmb3IgYWl4LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjU3OjQ4CiAgICAtIChkaXNrLltjaF0sIHN0cnVjdC5oLCBzZWRzY3JpcHQuaW4sIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gYWxsb3cgYSBtaW5pbXVtIHBlcmNlbnRhZ2Ugb24gZGlzayBzcGFjZS4KICAgICAgICAtICh3YXMgb3JpZ2luYWxseSBhIG1heGltdW0sIGJ1dCBJIGNoYW5nZWQgaXQgdG8gbWluaW11bSBpbnN0ZWFkKS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDowNjoxMQogICAgLSAoZGlzay5jKTogZml4IHBvaW50ZXIgcHJvYmxlbXMgZnJvbSBvbGQgcmVhZF9jb25maWcgZm9ybSB0byBuZXcuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6MDY6MzQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiByZW1vdmUgc3BhY2UgYmVmb3JlICUgc2lnbi4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDoyNTozMQogICAgLSAoKi9NYWtlZmlsZS5pbiwgbWFuLyopOgogICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBwYXRocy4KICAgICAgICAtIChtb2RpZmllZCB0byBwb2ludCBhZ2VudCB0byBzYmluZGlyIGluc3RlYWQgb2YgZXRjZGlyKS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDo0ODoxOAogICAgLSAoY29uZmlnKiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gTW92ZSBzbm1wbGlicGF0aCB0byBAZGF0YWRpckAgd2hpY2ggZGVmYXVsdHMgdG8gL3Vzci9sb2NhbC9zaGFyZS9zbm1wLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjU0OjA3CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IG9wcHMsIGZvcmdvdCB0byBwdXQgaW4gQGV4ZWNfcGF0aEAuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTE6MjA6NTQKICAgIC0gKGFjY29uZmlnLmgsIGFzbjEuYywgbWliLltjaF0sIHBhcnNlLmgsYXBwcy8qLGVycm9ybWliLmMsbG9hZGF2ZS5jLAogICAgICAgZXh0ZW5zaWJsZS5jLCBkaXNrLmMsIHNubXBkZWx0YSopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRoZSBub3cgd2VsbGtub3duIE5ldEJTRCBmaXgsCiAgICAgIC0gU3VuT1M0IGNjIGRvZXNuJ3QgbGlrZSB1bnNpZ25lZCBsaXRlcmFscyBvciBzdHJ0b3VsLAogICAgICAtIGFkZGVkIGEgY2hhciB2ZXJzaW9uIG9mICI7IiwKICAgICAgLSBhZGRlZCBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBldGMKICAgICAgLSBjaGFuZ2VkIHRoZSBhcHBzIHRvIHByaW50IGFsbCBlcnJvciBtZXNzYWdlcyB0byBzdGRlcnIsCiAgICAgIC0gY29tcGxldGVkIHRoZSBhY2Nlc3MgYW5kIHN0YXR1cyB2YWx1ZXMgaW4gc25tcGxpYi9wYXJzZS5oCiAgICAgIC0gYWRkZWQgYSByb3VnaGx5IHBhdGNoZWQgdmVyc2lvbiBvZiBzbm1wZGVsdGEuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6MjM6MjYKICAgIC0gKHBhcnNlLmgpOiBTVEFUVVNfS1dfT1BUSU9OQUwgLT4gU1RBVFVTX09QVElPTkFMCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NDM6NDQKICAgIC0gKCouKi4qKTogX19VQ0RfUCAtPiBfX1AsIGFuZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBsb29rIGZvciBpdC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo1Nzo0OAogICAgLSAoY29uZmlnKik6IGNoZWNrIGFuZCBpbmNsdWRlIHN5cy9jZGVmcy5oIGluIGNvbmZpZy5oLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjU4OjAxCiAgICAtIChob3N0X3Jlcy5oKTogZG9uJ3QgaW5jbHVkZSBjb25maWcuaCB0d2ljZS4KCmhhcmRha2VyIDI5IE9jdCA5NyAxNDowMDozOAogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOCApCgpoYXJkYWtlciAgNCBOb3YgOTcgMTI6NDc6MTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtICNpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgICAgLSBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUgLT4gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFCgpoYXJkYWtlciAgNCBOb3YgOTcgMTI6NDc6NTkKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gQ2hlY2sgZm9yICRwcmVmaXggYmVpbmcgZGVmaW5lZCBhcyBOT05FIGZvciBvdGhlciB2YXJzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQyOjU3CiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogcHV0IHNubXB0cmFwZCBpbiBAc2JpbmRpckAKCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NDo1OAogICAgLSAoY29tbW9uX2hlYWRlci5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgZm9yIGhwdXgxMCByZS1kZWZpbmluZyBwcm9ibGVtcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0NToyMwogICAgLSAoaHJfZGlzay5jKTogbmV3IHZlcnNpb24gZm9yIGhwdXgxMCBzdXBwb3J0IGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDY6MTcKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYyk6IFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBidWcgZml4ZXMgYW5kIGhwdXgxMCBzdXBwb3J0LgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ2OjQ2CiAgICAtICh2YXJfcm91dGUuYyk6IGZyb20gRGF2ZSBTaGllbGQ6IGRvbid0IHByb3RvdHlwZSBtYWxsb2MuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDg6MDcKICAgIC0gKCopOiBtZXJnZSBmcm9tIERhdmUncyBwcmU2IHBhdGNoZXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NTI6MDAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsIGRpc2suYywgcHJvYy5jLCB1dGlsX2Z1bmNzLmMpOgogICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIi4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo1Njo1OAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gI2luY2x1ZGUgIm1pYl9tb2R1bGVfY29uZmlnLmgiCgpoYXJkYWtlciAgNSBOb3YgOTcgMTQ6MDA6MDkKICAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWxfc3Vub3M1LmMsIG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBvY3RldCBjb3VudGVycyBmb3Igc29sYXJpcy4KICAgICAgLSBNYWtlZmlsZS5pbiBwYXRjaGVzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDE0OjQwOjA3CiAgICAtIChtZW1vcnkuYyk6IHByb3RlY3Qgdm1tZXRlci5oIGZyb20gbXVsdGlwbGUgaW5jbHVzaW9ucyBvbiBuZXRic2QuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTU6Mjk6NTAKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTkgKQoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI0OjIyCiAgICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGludXgvaGRyZWcuaAoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI1OjM1CiAgICAtIChocl9zd3J1bi5jKTogZG9uJ3QgcHJpbnQgYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgdW5kZXIgbGludXguCgpoYXJkYWtlciAgNyBOb3YgOTcgMTI6Mjg6MDMKICAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHBhdGNoIGZyb20gTmllbHMgZm9yIHNvbGFyaXMgPjIuNi4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozNzoxNAogICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogVVNJTkcuKl9NSUJfTU9EVUxFIC0+IFVTSU5HLipfTU9EVUxFLgoKaGFyZGFrZXIgIDcgTm92IDk3IDEzOjM3OjQ0CiAgICAtIChocl9uZXR3b3JrLmMpOiBkb24ndCBwYXNzIGNoYXIgKiogdG8gaW50ZXJmYWNlc19zY2FuX25leHQoKS4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozODozNgogICAgLSAoc25tcHdhbGsuYyk6IHN0b3Agb24gbm8gcmVzcG9uc2UgZnJvbSBob3N0LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjE5OjI0CiAgICAtIChhY2NvbmZpZy5oKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGRlZmluZSBfQ1JUSU1QIGZvciB1bml4IGR1ZSB0byBXMzIgYmFkIE9TIGRlc2lnbnMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MTk6NTkKICAgIC0gKHNubXBnZXRuZXh0LmgpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIF9DUlRJTVAgaW4gZnJvbnQgb2YgZXJybm8gZGVjbGFyYXRpb24uCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6MjA6NTQKICAgIC0gKHBhcnNlLltjaF0sIHNubXBfY2xpZW50LmMpOiBwYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gdXNlIF9DUlRJTVAgaW4gZnJvbnQgb2YgZXJybm8gZGVjbGFyYXRpb24uCiAgICAgIC0gZGVmaW5lIGZpbmRfbm9kZSBleHRlcm5hbGx5LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjIyOjA5CiAgICAtICh3aW4zMi8qKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHdpbjMyIHNwZWNpZmljIGNoYW5nZXMuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTU6Mjg6NTkKICAgIC0gKCopOiBtZXJnZSB0byBtYWluIGJyYW5jaDogIHBhdGNoZXMgZnJvbSBKb2UgTWFyem90LgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjE2OjUzCiAgICAtIChjb25maWd1cmUuaW4pOiB3YXRjaCBvdXQgZm9yIC91c3IvdWNiL2NjIG9uIHNvbGFyaXMgYW5kIGRvbid0IHVzZSBpdC4KCmhhcmRha2VyICA3IE5vdiA5NyAxNjozNzowMQogICAgLSAoTkVXUywgUkVBRE1FLCBUT0RPKTogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKaGFyZGFrZXIgIDcgTm92IDk3IDE2OjM4OjQ5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMCApCgpoYXJkYWtlciAxMiBOb3YgOTcgMDc6NDI6MjQKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogVzMyIHNwZWNpZmljIGZpeGVzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA4OjI2OjQ1CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIEZyZWUgYSBwZHUgaW4gYSBzcG90IHRoYXQgc2hvdWxkIHRlY2huaWNhbGx5IG5ldmVyIGJlIG5lZWRlZCwgYnV0CiAgICAgICAgaXMgbmljZSBmb3IgcGVvcGxlIHJlYWRpbmcgdGhlIGNvZGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTc6MDgKICAgIC0gKEZBUSk6IERvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxNzoyOAogICAgLSAobWliX2FwaS4zKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE4OjAyCiAgICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCBmb3IgbGludXgvaHB1eDEwIHByb2JsZW1zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI1OjMwCiAgICAtIChORVdTLCBUT0RPKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2MgdXBkYXRlLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI3OjA4CiAgICAtICgqL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI3OjQ2CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNvbGFyaXMgcGF0Y2hlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyODoxMQogICAgLSAocGFydHlfdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjk6NDIKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBhZGQgQGRhdGFkaXJAIHRvIGZpbGVzIHRoYXQgbmVlZGVkIGl0LgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMwOjU3CiAgICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdmFyaW91cyAocmVtb3ZlIHVubmVlZGVkIHZhcnMsIGV0YykuCiAgICAgIC0gYWRkIHNubXB0YWJsZS4KICAgICAgLSBtYWtlIHNubXB0cmFwZCBtdWx0aS1saW5ndWFsLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMyOjIyCiAgICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB2MmMgc3VwcG9ydCBhbmQgYXJndW1lbnQgcGFyc2luZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjMzOjIwCiAgICAtIChtYW4vc25tcGRlbHRhLjEsc25tcHRhYmxlLjEsc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvY3VtZW50YXRpb24gY2hhbmdlcyBhbmQgYWRkaXRpb25zLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjM4OjM2CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwYXJzZXIgaW1wcm92ZW1lbnRzLgogICAgICAtIHBhcnNlciBkaXJlY3RvcnkgY2FjaGluZy4KICAgICAgLSBzYXZlX2Rlc2NyaXB0aW9ucy9taWJfd2FybmluZ3Mgc2V0IGZ1bmN0aW9ucy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDo0NDo0NwogICAgLSAoTkVXUyk6IGRvYyB1cGRhdGUuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6MTA6MjcKICAgIC0gKHN5c3RlbS5oKTogRG9uJ3QgaW5jbHVkZSBjb25maWcuaCEKCmhhcmRha2VyIDEyIE5vdiA5NyAxNToxNjo0NAogICAgLSAocGFydHlfdmFycy5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNToyMTo0MQogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6NDI6MDIKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxNjowNTo0NwogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTEgKQoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjI3OjExCiAgICAtICh3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDogZnVuY3Rpb24gY2hhbmdlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDozNTowMAogICAgLSAoKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgIC0gRml4ZXMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDozNToyNwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBEYXZpZCBaaW1tZXJtYW46CiAgICAgIC0gRml4ZXMgZm9yIEFJWC4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDo0MzozMwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBmaXggcXNvcnQgcGFyYW1zIGZvciBTVERDLgoKaGFyZGFrZXIgMTIgTm92IDk3IDIwOjQ3OjQ3CiAgICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IFNUREMgdHlwb3MuCgpoYXJkYWtlciAxNCBOb3YgOTcgMDg6MzE6NDEKICAgIC0gKHdvbWJhdC5jKTogY29kZSBjb21tZW50cyBmcm9tIEFsYW4gQmF0aWUuCgpoYXJkYWtlciAxNCBOb3YgOTcgMDg6MzI6MjYKICAgIC0gKFJFQURNRSk6IGNvZGVyIGxpc3QgdXBkYXRlLgoKaGFyZGFrZXIgMTQgTm92IDk3IDEyOjIxOjEwCiAgICAtICh3b21iYXQuYyk6IHF1aWNrIGRvYyBjaGFuZ2UuCgpoYXJkYWtlciAxNCBOb3YgOTcgMTI6MzU6MTkKICAgIC0gKEZBUSwgTkVXUywgUkVBRE1FKTogbGFzdCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoJCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4zIC0+IFYzLjIKCndoYXJkYWtlIDExIEZlYiA5NyAxMjo0ODowNgogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5saW51eC5oKTogUGF0Y2ggZnJvbSBKZW5uaWZlciBCcmF5OgogICAgICAtIEdldCBhZ2VudCB3b3JraW5nIG9uIGxpbnV4LgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjUwOjQ2CiAgICAtIChzbm1wX3ZhcnMubGludXguaCk6IFJlbW92ZWQgbm9uLWxpbnV4IHNwZWNpZmljIHN0dWZmLgoKd2hhcmRha2UgMTEgRmViIDk3IDEyOjU0OjM2CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBGaXggaHB1eCBzcGVjaWZpYyBwcm9ibGVtcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxMToyMQogICAgLSAoKk1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBQaGlsaXAgR3VlbnRoZXI6CiAgICAgIC0gRml4IGFsbCBNYWtlZmlsZS5pbidzIHRvIHN1cHBvcnQgYSBkaWZmZXJlbnQgc3JjIGRpci4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxMjoxOQogICAgLSAoUkVBRE1FKTogVXBkYXRlIHBlb3BsZSBzdXBwbHlpbmcgcGF0Y2hlcyBsaXN0LgoKd2hhcmRha2UgMTEgRmViIDk3IDEzOjE5OjM3CiAgICAtIChhbGwgLmMgd2l0aCBtYWluKCksIHNubXBsaWIvKik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgICAtIE1ha2UgYmV0dGVyIHN1cHBvcnQgZm9yIHNoYXJlZCBsaWIgcG9zc2liaWxpdGllcy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMDoxMQogICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBGaXggI2lmZGVmLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjExOjI0CiAgICAtICh7bG9jYWwsbWFuLG92fS9NYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgaW4gZnJvbnQgb2YgdGFicy4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMzozNAogICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmUgbm9uLXN0YXRpYyBtZDVkaWdlc3QgcHJvdG90eXBlLgoKd2hhcmRha2UgMTEgRmViIDk3IDE0OjE0OjA1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTEgKQoKd2hhcmRha2UgMTEgRmViIDk3IDE2OjQyOjAyCiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluaW4gdG8gZGVzY2VuZCB3aGVuIG1ha2UgY2xlYW5pbmcuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTY6NDQ6MDgKICAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGZpeCBzcmNkaXIgcHJvYmxlbXMuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTc6MDA6MjYKICAgIC0gKE1ha2VmaWxlLmluKTogUmVzdCBvZiBQaGlsaXAncyBwYXRjaCB0byBmaXggc3JjZGlyIHByb2JsZW1zIChzaCB2YXJzKS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo0MTowOAogICAgLSAoYWdlbnQvc25tcF92YXJzLCBhZ2VudC9taWJncm91cCk6IERhdmUgU2hpZWxkIHNwbGl0IHVwIHRoZQogICAgICBzbm1wX3ZhcnMuYyBhbmQgcmVsYXRlZCBmaWxlcyBpbnRvIHBpZWNlcyBmb3IgZWFzaWVyIG1hbmFnZW1lbnQuCiAgICAgIFRoZSByZXN1bHRzIG9mIGhpcyB3b3JrIGFyZSBpbiB0aGUgbmV3IGFnZW50L21pYmdyb3VwIGRpcmVjdG9yeS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo0NzoxMwogICAgLSAobWliLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIHJlbW92ZQogICAgICBBTlNJIHNwZWNpZmljIHJlcXVpcmVtZW50cy4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNDo1MzoyNAogICAgLSAoYWdlbnQvKk1ha2VmaWxlLmluKTogIE1ha2UgZGVwZW5kLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMwOjA0CiAgICAtIChhbGFybS5jKTogdHlwZWRlZiBmb3IgZ2V0U3RhdFB0cigpLgoKd2hhcmRha2UgMTcgRmViIDk3IDE1OjMwOjM2CiAgICAtIChldmVudC5jKTogV2FzIHBhc3NpbmcgYW4gaW50IHRvIGJjb3B5IGluc3RlYWQgb2YgJmludC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMToyNQogICAgLSAoaWNtcC5jKTogZG9uJ3QgdXNlIHJldCB2YXJpYWJsZSwgc2luY2UgaXQncyBub3QgZGVmaW5lZC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMjozMAogICAgLSAoaW50ZXJmYWNlcy5jKTogUmVtb3ZlIE1BWF9OQU1FX0xFTkdUSCByZXF1aXJlbWVudHMuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTY6MTE6MDkKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMiApCgp3aGFyZGFrZSAgNCBNYXIgOTcgMTU6NDY6MzAKICAgIC0gKGNvbmZpZyosIG1pYmdyb3VwL01ha2VmaWxlLmluKToKICAgICAgLSBtaWJncm91cCBjb21waWxlIGxpc3QgaXMgYnVpbGQgYnkgY29uZmlndXJlIGFuZCBjYW4gYmUgYXVnbWVudGVkCiAgICAgICAgYnkgdGhlIC0td2l0aC1taWItbW9kdWxlcz0ibGlzdCBvZiBtb2R1bGVzIiBjb21tYW5kIGxpbmUgdG8gY29uZmlndXJlLgoKd2hhcmRha2UgIDUgTWFyIDk3IDA5OjQ5OjU5CiAgICAtIChjb25maWcqLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBBZGRlZCAubyBmaWxlIGxpc3QgdG8gYWdlbnQvTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KICAgICAgLSBuZXcgZmlsZXMgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZToKICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaDogIEEgbGlzdCBvZiBtaWIgLmggZmlsZXMgZm9yIHNubXBfdmFycy5oLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgbW9kdWxlICptdXN0KiBoYXZlIGEgLmggZmlsZSkKICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5pdHMuaDogQSBsaXN0IG9mIGluaXRfd29tYmF0KCkgdHlwZSBmdW5jdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbmx5IHByZXNlbnQgaWYgZXhpc3QgaW4gd29tYmF0LmMpLgogICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9sb2Fkcy5oOiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgbmV3IG1hY3JvIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtaWIuaCBmaWxlcyBjYWxsZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX2xvYWRfbWliKCksIHdoaWNoIHNpbXBsaWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvYWRpbmcgb2YgdGhlIG1pYiBzZWN0aW9ucy4KCndoYXJkYWtlICA1IE1hciA5NyAxMDowMzo1OAogICAgLSAoc3lzdGVtLmMpOiByZW1vdmVkIHN5c3RlbSBubGlzdCAodW51c2VkKS4KCndoYXJkYWtlICA1IE1hciA5NyAxMToxNzo0NAogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gRWx3eW4gQiBEYXZpZXM6CiAgICAgIC0gRml4IGEgUERVIGNsb25pbmcgYnVnLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjIwCiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODoyMwogICAgZmlsZSBrZXJuZWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODo0NQogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6NDgKICAgIGZpbGUgc25tcGQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KCndoYXJkYWtlICA1IE1hciA5NyAxMTozNToxOAogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mzc6MzUKICAgIC0gKFJFQURNRSk6IENvbnRyaWJ1dGVyIG5hbWUgYWRkaXRpb24uCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTU6MDY6NDEKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjEzOjM4CiAgICAtIChhY2xfdmFycy5jKTogaW5jb3JyZWN0bHkgZml4ZWQgcHJvdG90eXBpbmcgZXJyb3JzIGZvciB3cml0ZV9hY2woKS4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoxNTo1NAogICAgLSAoc25tcF9hcGkuYyk6IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBpbiBzbm1wX3BhcnNlLiAgUG9zc2libHkgd3JvbmcuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6Mjk6MDUKICAgIC0gKHNubXBfYXBpLmMpOiBZZXAuIEl0IHdhcyB3cm9uZy4gIFRlc3RlZCBhbmQgd29ya3Mgbm93LgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjA2OjM0CiAgICAtIChleHRlbnNpYmxlLyogLT4gbWliZ3JvdXAvKik6IG1vdmVkIGV4dGVuc2libGUgc3R1ZmYgdG8gbWliIG1vZHVsZXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6MDc6MDcKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBtb3JlIG5vbi1taWJncm91cCBzcGVjaWZpYyBjYWxscyBhbmQgaGVhZGVycy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTo1OToyOAogICAgLSAoc25tcF92YXJzLmgsIG1pYmdyb3VwLyopOiBzdHJpY3QtcHJvdG90eXBpbmcgYW5kIGNvbmZpZ19yZXF1aXJlKClzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjA3OjUzCiAgICAtIChtaWJtb2R1bGUvdmVyc2lvbnRhZyk6IG1vdmVkIGludG8gcGxhY2UgZnJvbSBleHRlbnNpYmxlLwoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjM0OjUzCiAgICAtIChocHV4LltjaF0pOiBBZGRlZCBocHV4IHNwZWNpZmljIGZpbGVzIGZyb20gZXh0ZW5zaWJsZSBkaXIuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6NDM6MDgKICAgIC0gKGV4dGVuc2libGUvKik6IGN2cyByZW1vdmluZyBmaWxlcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMDo0OTowMAogICAgLSAobWliZ3JvdXAvc3RydWN0LmgpOiBtb3ZlZCB0byBoZXJlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDExOjQzOjA1CiAgICAtIChjb25maWcqKTogZ2VuZXJhdGUgYSBtaWJfbW9kdWxlX2NvbmZpZy5oIHdpdGggZGVmaW5lcyBvZiB3aGF0cyBiZWluZyB1c2VkLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjM5OjI0CiAgICAtIChtYWtlZGVwZW5kLmluKTogbmV3IG1ha2UgZGVwZW5kIHNjcmlwdAoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQwOjQwCiAgICAtIChyZW1vdmUtZmlsZXMpOiBhZGQgbWFrZWRlcGVuZC5pbgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjQ2OjE1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogRml4IHNlZHNjcmlwdCBnZW5lcmF0aW9uLiAgc2lnaC4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0Nzo0NQogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgZXh0ZW5zaWJsZS8gcmVtb3Zlcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0ODo1OQogICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6IHJlbW92ZSBleHRwcm90by5oIGluY2x1ZGUuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NTA6MTUKICAgIC0gKG1pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKTogZGVwZW5kLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUwOjUyCiAgICAtIChocHV4LmMpOiBpZmRlZiBhIGZldyBoZWFkZXJzIGZvciBjb3JyZWN0IG1ha2UgZGVwZW5kLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUxOjMwCiAgICAtIChzbm1wbGliL3NubXAuYyk6IHJlbW92ZSBzZWNvbmQgY3R5cGUuaCBpbmNsdWRlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE0OjAxOjUxCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTMgKQoKd2hhcmRha2UgIDcgTWFyIDk3IDE1OjAxOjA1CiAgICAtIChtaWJncm91cC8qKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE1OjAyOjE4CiAgICAtIChjb25maWd1cmUpOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTY6MDk6NTgKICAgIC0gKGNvbmZpZyopOiBtYWtlIG5ldyBjb25maWd1cmUgb3B0aW9ucyByZXNwZWN0ICQoc3JjZGlyKS4KCndoYXJkYWtlICA3IE1hciA5NyAxNjoxMTo1MAogICAgLSAoY29tbW9uX2hlYWRlci5oKTogY29tbWVudCBvdXQgZW5kIG9mICNlbmRpZi4KCndoYXJkYWtlIDEwIE1hciA5NyAxNjo1NTo0NgogICAgLSAoY29uZmlndXJlLmluKTogTmV3IGNvbmZpZ3VyZSBvcHRpb246ICAtLXdpdGgtb3V0LW1pYi1tb2R1bGVzPSJsaXN0Ii4KCndoYXJkYWtlIDEwIE1hciA5NyAxNzoyODoyOQogICAgLSAoY29uZmlndXJlLmluKTogc3BhY2UgcHJvdGVjdCBtb2R1bGVzIHdoZW4gY2hlY2tpbmcgZm9yIHdpdGggZ3JlcC4KCndoYXJkYWtlIDExIE1hciA5NyAwOTowNDowMwogICAgLSAoaXAuYyk6IGZyZWVic2QyIHBhdGNoLgoKd2hhcmRha2UgMTEgTWFyIDk3IDE3OjM5OjIzCiAgICAtIChtaWJncm91cC8qKToKICAgICAgLSByZW1vdmUgdHJhaWxpbmcgO3Mgb24gYnVuY2hlcyBvZiBmdW5jdGlvbnMuCiAgICAgIC0gbWFrZSBldmVyeXRoaW5nIGJ1dCBpbnRlcmZhY2VzLmMgY29tcGlsZSBvbiBpcml4Ni4zLgogICAgLSAoY29uZmlnKixzeXN0ZW0uYyk6IHVzZSB1bmFtZSBhbmQgZ2V0aG9zdG5hbWUgaWYgYXZhaWxhYmxlLgogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBEb24ndCBjaGVjayBfS0VSTkVMIGlmIGlmbmV0LmlmX210dSBhbHJlYWR5IHdvcmtzLgoKd2hhcmRha2UgMTIgTWFyIDk3IDA5OjI4OjA0CiAgICAtIChtaWJncm91cC9zbm1wLltoY10gLT4gbWliZ3JvdXAvc25tcF9taWIuW2hjXSk6IE1vdmVkIGR1ZSB0byBuYW1lIGNsYXNoZXMuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTU6NDc6MDAKICAgIC0gKGNvbmZpZ3VyZS5pbiwgc25tcGQuYywgc25tcF9hZ2VudC5jLCByb3V0ZV93cml0ZS5bY2hdLAogICAgICB2YXJfcm91dGUuW2NoXSwgaXAuW2NoXSwgc25tcC5bY2hdIC0+IHNubXBfbWliLltjaF0pOgogICAgICAtIE1vdmVkIHNubXAgbWliIG1vZHVsZSAtPiBzbm1wX21pYiBmb3IgbmFtaW5nIGNvbmZsaWN0cyB3aXRoIHNubXBsaWIuCiAgICAgIC0gTW92ZWQgc25tcF92YXJfcm91dGUuYyAtPiBtaWJncm91cC92YXJfcm91dGUuYwogICAgICAtIE1vdmVkIHdyaXRlX3JvdXRlLmMgLT4gbWliZ3JvdXAvd3JpdGVfcm91dGUuYwoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjQ4OjM3CiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgdXBkYXRlLgoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjU1OjIwCiAgICAtIChtaWJncm91cC9SRUFETUUpOiBkb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxMiBNYXIgOTcgMTc6MTU6MjAKICAgIC0gKHNubXBfYXBpLmMpOiByZXR1cm5zIGZyb20gaW5ldF9hZGRyIGFyZSBpbl9hZGRyX3QgKHVfaW50KSBub3QgdV9sb25nLgoKd2hhcmRha2UgMTMgTWFyIDk3IDA5OjM3OjM3CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgIC0gKGFwcHMvKi5jLCBwYXJ0eV9wYXJzZS5jKTogdXNlIGl0LgoKd2hhcmRha2UgMTMgTWFyIDk3IDEwOjE0OjU5CiAgICAtIChleHRlbnNpYmxlX3N1YnRyZWVzLmgpOiBSZW1vdmVkIGZpbGUuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTQ6MzU6MDUKICAgIC0gKGFnZW50LyosIG1pYmdyb3VwLyopOiBtb3ZlZCBhbGFybSwgY29udGV4dCwgdmlld3MsIGV2ZW50LCBwYXJ0eSwKICAgICAgYW5kIGFjbCB2YXJpYWJsZSBncm91cHMgdG8gbWliZ3JvdXAvLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE0OjQ0OjU1CiAgICAtIChrZXJuZWxfc3Vub3M1LltjaF0pOiBtb3ZlZCB0byBtaWJncm91cC8uCiAgICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jKTogZGVsZXRlIGZyb20gYWdlbnQgZGlyLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjM1OjI2CiAgICAtIChocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBtaW5vciBwcm9ibGVtcy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTozNjoxNAogICAgLSAodmlld192YXJzLmMsIGNvbnRleHRfdmFycy5jLCBhY2xfdmFycy5jKTogZG9uJ3QgaW5jbHVkZSBzbm1wdjJfdmFycy5oLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE1OjQ1OjE0CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlcy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTo0NjoxNgogICAgLSAoKi9NYWtlZmlsZS5pbik6IE5ldyBtYWtlIGRlcGVuZCBydWxlcyB0byBzZXBlcmF0ZSBzeXN0ZW0vbm9uIGRlcGVuZGVudCBzdHVmZi4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjowNzo1MgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIGFuZCBydWxlIGZpeGVzIGFzIHdlbGwuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MTA6NTgKICAgIC0gKGNvbmZpZyopOiByZW1vdmUgZHVwbGljYXRlIGdldGhvc3RuYW1lIGNoZWNrLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjE3OjU5CiAgICAtIChhcHBzLyovTWFrZWZpbGUuaW4pOiBkZXBlbmQgcHJvYmxlbXMgZml4LgoKd2hhcmRha2UgMTMgTWFyIDk3IDE3OjE3OjMyCiAgICAtIChjb21tb25faGVhZGVyLmgpOiBmaXggcGF0aCB0byBhbGFybS5oLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE3OjQ3OjMyCiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgIC0gQSBsYXJnZSBudW1iZXIgb2YgcHJvYmxlbXMgd2l0aCB0aGUgTGludXggcG9ydAogICAgICAtIFNvbWUgcHJvYmxlbXMgd2l0aCBOZXRCU0QgMS4yQywgYnV0IGl0J3Mgc3RpbGwgbm90IHBlcmZlY3QKICAgICAgLSBNb3JlIChzeW1ib2xpYykgZGVidWcgb3V0cHV0IGZyb20gc25tcGQsIHdoZW4gdXNpbmcgLVYuIC1kIGltcGxpZXMgLVYKICAgICAgICBTaG93cyB5b3UgdmFyaWFibGUgcmVxdWVzdGVkIGFuZCB2YWx1ZSByZXR1cm5lZAogICAgICAtIFJldHVybiBpcFJvdXRlTWFzayB1bmRlciBTb2xhcmlzCiAgICAgIC0gc25tcG5ldHN0YXQgLXIgc2hvd3Mgbm9uLXN0YW5kYXJkIG5ldG1hc2tzCiAgICAgIC0gc25tcG5ldHN0YXQgLW8gKG5ldykgc2hvd3MgaW50ZXJmYWNlIG9jdGV0cywgd2l0aG91dCBlbnF1aXJpbmcgZm9yIG10dQogICAgICAgIGFuZCBvdGhlciB2YXJpYWJsZXMgbm90IHByZXNlbnQgZm9yIGEgQ2lzY28gRnJhbWUtUmVsYXkgdmlydHVhbCBjaXJjdWl0CiAgICAgICAgaW50ZXJmYWNlCiAgICAgIC0gc25tcG5ldHN0YXQgdGNwL3VkcCBwcmludC1vdXQgaGFkIG50b2hzL2h0b25zIGluIHdyb25nIHBsYWNlcyBmb3IgcG9ydAogICAgICAgIG51bWJlcnMgKHNob3dzIHVwIG9uIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlcykKICAgICAgLSBhZGRzIGEgbWFrZXRhcmdldCBzY3JpcHQgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBwYXJhbGxlbCBzeW1saW5rZWQKICAgICAgICBzb3VyY2UgZGlyZWN0b3J5LiBVc2VmdWwgaWYgeW91ciBtYWtlIGRvZXMgbm90IHN1cHBvcnQgVlBBVEgKCndoYXJkYWtlIDE0IE1hciA5NyAwOTozOToxNQogICAgLSAodWNkLXNubXAudHh0LCBtaWIudHh0LCBNYWtlZmlsZS5pbik6IERvbid0IGJ1aWxkIG1pYiBmaWxlcyBhbnltb3JlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjQ2OjMxCiAgICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBtaWJzLy4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo0Nzo0NwogICAgLSAobWliLnR4dCk6IHN0cmVhbWVkIGRvd24uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NTA6MDMKICAgIC0gKG1pYnMve3JmYzEyNzEsc25tcHYyLHVjZC1zbm1wfS50eHQpOiBOZXcgbWlicyBkaXJlY3RvcnkgZm9yIHN1Yi1taWJzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEwOjQ4OjM1CiAgICAtIChNYWtlZmlsZS5pbiwgY29uZmlnKiwgbWlicy9NYWtlZmlsZS5pbik6IGVuYWJsZSBtaWJzLyBtYWtlIGluc3RhbGwuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTA6NDk6MDMKICAgIC0gKHVjZC1zbm1wLnR4dCk6IHJlbW92ZSB0aGUgbGFzdCBvZiB0aGUgc2VkIHNjcmlwdCBkZWZzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjAxOjE5CiAgICAtIChzbm1wZC4xLmRlZik6IFVwZGF0ZWQgdG8gaW5jbHVkZSAtYy8tQyBhbmQgU05NUENPTkZQQVRIIGVudiB2YXIuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MDc6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogRml4IHNlZHNjcmlwdCB0byBpbmNsdWRlIHMjIGFzIHdlbGwgYXMgcy8gY29tbWFuZHMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MTc6MDYKICAgIC0gKG1ha2VkZXBlbmQuaW4pOiBydW4gb24gc25tcG5ldHN0YXQgZGlyIGFsc28uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MTg6MTcKICAgIC0gKGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTE6MjA6MzkKICAgIC0gKHNubXBfdmFyc19ldmVudC5oKTogYXhlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjIyOjI5CiAgICAtIChzbm1wX2dyb3VwdmFycy5oKTogYXhlLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjUxOjU5CiAgICAtIChjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pOiBmaXggdHJhcCBieSBpbmNsdWRpbmcgb3B0aW9uYWwgLm8gZmlsZXMuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTM6MjIKICAgIC0gKHNubXBkLmMsIGNvbnRleHRfcGFyc2UuYywgcGFydHlfcGFyc2UuYywgc3lzdGVtLltjaF0pOgogICAgICAtIDY0Yml0IGZpeDogZ2V0X215YWRkcigpIHNob3VsZCByZXR1cm4gaW50IG5vdCBsb25nLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjU0OjIyCiAgICAtIChhY2NvbmZpZy5oLCB1Y2Qtc25tcC50eHQpOiByZWNvZ25pemUgbmV3IGhvc3RzIGZvciBzeXNPYmplY3RJZC4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1NTo1MAogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU0ICkKCndoYXJkYWtlIDE0IE1hciA5NyAxNjoxNjo1MgogICAgLSAobWliZ3JvdXAvUkVBRE1FKTogVXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxOCBNYXIgOTcgMTY6NTI6MzQKICAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTggTWFyIDk3IDE2OjUzOjI2CiAgICAtIChGQVEpOiBzbm1wLmNvbmYgLT4gc25tcGQuY29uZgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjQ5OjU0CiAgICAtIChtZW1vcnkuYyk6IHByb3RvdHlwZSB3cml0ZSBmdW5jdGlvbiBiZXR0ZXIuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTA6NDkKICAgIC0gKGV4YW1wbGUuYywuaCk6IE5ldyBleGFtcGxlIG1pYiBtb2R1bGUgZHVwbGljYXRpbmcgdGhlIHBhc3N0ZXN0CiAgICAgIHNjcmlwdCBpbiBDIGNvZGUuCgp3aGFyZGFrZSAyNCBNYXIgOTcgMDk6NTE6MTYKICAgIC0gKE1ha2VmaWxlLmluKTogV2F0Y2ggb3V0IGZvciBtdWx0aXBsZSBzcGFjZXMgaW4gQyBkZWZzLgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjUxOjMzCiAgICAtIChSRUFETUUpOiBydW5zIG9uIGJzZGkgMi4xLgoKd2hhcmRha2UgMjQgTWFyIDk3IDEzOjU2OjUwCiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMjUgTWFyIDk3IDA5OjM5OjAxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgc3lzbG9jYXRpb24gYW5kIHN5c2NvbnRhY3QgZXhhbXBsZXMuCgp3aGFyZGFrZSAyNSBNYXIgOTcgMTM6MzA6MDUKICAgIC0gKElOU1RBTEwpOiBtaW5vciBkb2MgdXBkYXRlIGZvciBuZXcgZmxhZ3MuCgp3aGFyZGFrZSAyNiBNYXIgOTcgMTc6MDU6MTEKICAgIC0gKG1pYmdyb3VwL3N5c3RlbS5jKTogcmVwb3J0IGFnZW50IHVwdGltZSByYXRoZXIgdGhhbiBzeXN0ZW0gdXB0aW1lLgoKd2hhcmRha2UgMjIgQXByIDk3IDA4OjQyOjAxCiAgICAtIChGQVEpOiB2YXJpb3VzIHVwZGF0ZXMuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6MDI6NTYKICAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjIwOjMwCiAgICAtIChSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYyk6CiAgICAgIC0gc211eCBzdXBwb3J0IGZvciBnYXRlZCBmcm9tIFJvaGl0IER1YmUuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6NDc6MDYKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IHJlbW92ZSBkdXBsaWNhdGUgKHdhcm5pbmcpIFRDUCBkZWZpbmVzIG9uIG9zZjQgc3lzdGVtcy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNTo1MTo0NAogICAgLSAoc25tcF9iZ3AuW2NoXSwgc25tcF9yaXAyLltjaF0sIHNubXBfb3NwZi5bY2hdKToKICAgICAgLSBjb25mb3JtIHRvIG5ldyBtb2R1bGUgc3RhbmRhcmRzIG9mIGNvZGluZy4KCndoYXJkYWtlIDIyIEFwciA5NyAxNjo0MToxMAogICAgLSAoc25tcF9iZ3AuYywgc25tcF9yaXAyLmMsIHNubXBfb3NwZi5jLCBzbXV4LltjaF0pOgogICAgICAtIHN0YW5kYXJkaXplIGhlYWRlcnMgZm9yIGF1dG9jb25mLgogICAgICAtIHNtdXhfaW5pdCgpIC0+IGluaXRfc211eCgpLgogICAgICAtIFNNVVhERUJVRyAtPiBET0RFQlVHICgtLWVuYWJsZS1kZWJ1Z2dpbmcgdHVybnMgdGhpcyBvbiBhdXRvbWF0aWNhbGx5KS4KCndoYXJkYWtlIDIyIEFwciA5NyAxNzo0NTowOQogICAgLSAoY29uZmlnKiwgc211eC5jKTogQ2hlY2sgZm9yIGhlYWRlcnMgYW5kIGRlZmluZSBGRF9DT1BZIGlmIG5vdCBkZWZpbmVkLgoKd2hhcmRha2UgMjIgQXByIDk3IDIwOjQ5OjE1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTUgKQoKd2hhcmRha2UgIDkgTWF5IDk3IDIyOjM4OjE1CiAgICAtIChtaWIuW2NoXSwgcGFyc2UuW2NoXSwgTWFrZWZpbGUuaW4pOiBOZXcgcGFyc2VyIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gUnVuLXRpbWUgY29udHJvbCBvZiBpbml0aWFsIG1vZHVsZSBsb2FkaW5nCiAgICAgICAgICAgICAgKHVzZXMgZW52IHZhcmlhYmxlcyBNSUJESVJTLCBNSUJTLCBhbmQgTUlCRklMRSkKICAgICAgLSBEZWZpbmVkIGludGVyZmFjZXMgZm9yIGxvYWRpbmcgbW9kdWxlcyBhbmQgcmV0cmVpdmluZyBlbnRyaWVzCiAgICAgIC0gTW9kdWxlIHNjb3Bpbmcgbm93IGluY2x1ZGVzIFRleHR1YWwgQ29udmVudGlvbnMKICAgICAgLSBUb2tlbnMgaW1wbGVtZW50ZWQgaW50ZXJuYWxseSBubyBsb25nZXIgcmVxdWlyZSBpbXBvcnRpbmcgdGhlCiAgICAgICAgY29ycmVzcG9uZGluZyBtb2R1bGVzCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6NDY6MzAKICAgIC0gKHNtdXguYywgY29uZmlnKik6CiAgICAgIC0gY2hlY2sgZm9yIHNndHR5LmggYW5kIHByb3RvdHlwZSBiZXR0ZXIuCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjI6NDY6NDYKICAgIC0gKFRPRE8pOiBVcGRhdGUuCgp3aGFyZGFrZSAgOSBNYXkgOTcgMjM6NTI6NDAKICAgIC0gKHNtdXguW2NoXSk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6MDM6MzIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZyAobW9zdGx5KS4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDoyODoyNQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgbmVnYXRpdmUgbnVtYmVycyBpbiBtaWJzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjQ2OjQ0CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDo1MDoyMAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMgKGV2ZW4gYmV0dGVyKS4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo0MToyMwogICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZG9uJ3Qgc3VibWl0IGJsYW5rIGJ1Zy1yZXBvcnRzLgoKd2hhcmRha2UgMTAgTWF5IDk3IDE2OjQ1OjE0CiAgICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIHVwZGF0ZS4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo1MjoxMQogICAgLSAobWliX2FwaS4zKTogTmV3IGZpbGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDEwIE1heSA5NyAxNzoyMzoyMQogICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRlZmF1bHQgdHJhcCBjb21tdW5pdHkuCiAgICAgIC0gbXVsdGlwbGUgdHJhcCBzaW5rcy4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0Mzo1OQogICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogIEJTREkzIHNwZWNpZmljIGhlYWRlcnMgYW5kIGRlZmluZXMuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDQ6MTkKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogcmVtb3ZlZCBDQ0hBQ0sgPz8/LgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ4OjEzCiAgICAtIChJTlNUQUxMLCBSRUFETUUsIFRPRE8pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0OToyMwogICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBtaWJfYXBpLjMuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NTI6NDgKICAgIC0gKG1pYnMvdWNkLXNubXAudHh0KTogUGF0Y2ggZnJvbSBNYXJpbyBEZUZhemlvIHRvIGZpeCB0eXBvcy4KICAgICAgLSBjb21waWxlcyB1bmRlciBTTk1QYyA0LjFnLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjI4CiAgICAtIChJRi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MjkKICAgIC0gKHVjZC50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMQogICAgLSAoRXRoZXJMaWtlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMgogICAgLSAoSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjMzCiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNQogICAgLSAoSVAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjM2CiAgICAtIChTTk1QdjItQ09ORi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNwogICAgLSAoU05NUHYyLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozOQogICAgLSAoU05NUHYyLVNNSS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MAogICAgLSAoU05NUHYyLVRDLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQyCiAgICAtIChTTk1QdjItVE0udHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDMKICAgIC0gKFRDUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDUKICAgIC0gKFVEUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDYKICAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDgKICAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQ5CiAgICAtIChSRkMxMjcxLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo1MQogICAgLSAoUkZDMTE1NS1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NTIKICAgIC0gKFJGQzEyMTMtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUyOjEyCiAgICAtICh1Y2QudHh0KTogd2hvb3BzLiAgUmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMTo1NzoxMAogICAgLSAocmZjMTI3MS50eHQpOiByZW1vdmVkLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEyOjAyOjI2CiAgICAtIChzbm1wdjIudHh0KTogcmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMjowMzowNAogICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHJlbW92ZWQgc25tcHYyLnR4dCwgcmZjMTI3MS50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTQ6NDg6NTkKICAgIC0gKHVjZC1zbm1wLnR4dCk6IENoYW5nZWQgSUQgdG8gVUNELVNOTVAKCndoYXJkYWtlIDEzIE1heSA5NyAxNTowNToyOAogICAgLSAoY29uZmlnKiwgSU5TVEFMTCk6IE5ldyBmbGFncyB0byBzZXQgcHJvbXB0ZWQgdmFsdWVzIGluc3RlYWQgb2YgcHJvbXB0aW5nLgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjA1OjUzCiAgICAtIChSRUFETUUpOiBhcmNoaXRlY3R1cmUgbGlzdCB1cGRhdGUuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MzY6MDgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlZCBmcm9tIHVjZC1zbm1wLnR4dC4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTozNjo1MQogICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gVUNELVNOTVAtTUlCLnR4dAoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM4OjQ3CiAgICAtIChtaWJzL01ha2VmaWxlLmluKTogdWNkLXNubXAudHh0IC0+IFVDRC1TTk1QLU1JQi50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTY6MjI6MTMKICAgIC0gKGNvbmZpZyosbWliLmMpOiBOZXcgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtZGVmYXVsdC1taWJzPSJsaXN0Omxpc3QiLgoKd2hhcmRha2UgMTQgTWF5IDk3IDExOjQxOjA5CiAgICAtIChNYWtlZmlsZS5pbiwgbWliLnR4dCk6IHJlbW92ZWQgbWliLnR4dCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5vIGxvbmdlciBuZWVkZWQuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6MTM6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogd2FybiBpZiBtaWIudHh0IGlzIGluc3RhbGxlZCBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4KCndoYXJkYWtlIDE0IE1heSA5NyAxMzoxODowMgogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBPZGRiam9ybiBTdGVmZmVuc2VuOgogICAgICAtIFByb3RlY3QgYWdhaW5zdCBiYXNoIG5lZWRpbmcgJzsncyBvbiBtdWx0aXBsZSBzdWJkaXIgbWFrZXMuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6NDU6MjQKICAgIC0gKHNubXBkLmMpOiAgVHlwZWNhc3QgbWFsbG9jLgoKd2hhcmRha2UgMTQgTWF5IDk3IDE1OjAwOjIyCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTYgKQoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjIyOjE4CiAgICAtIChpbnRlcmZhY2VzLmMpOiBwYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gZm9yIEZyZWVCU0QKCndoYXJkYWtlIDE1IE1heSA5NyAxMToyMzoyOQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IHB1cmVseSBudW1lcmljIE9JRHMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6Mjg6MTUKICAgIC0gKElOU1RBTEwpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHJlZmVyZW5jZSB0aGUgbWFrZXRhcmdldCBzY3JpcHQuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6Mjk6MzMKICAgIC0gKG1pYl9hcGkuMyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBNSUJTIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gQUxMLgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjMwOjAxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGltcG9ydCBpbmRlbnRpZmllcnMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzE6MDEKICAgIC0gKFNOTVB2Mi1TTUkudHh0KTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjogIGNjaXR0IC0+IDAuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MzI6NTYKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBwcm90b3R5cGluZyBhbmQgbnVsbCBjaGVja2luZy4KICAgICAgLSBpZiBNSUJTIGlzIHNldCB0byBBTEwsIHBhcnNlIGV2ZXJ5dGhpbmcgZm91bmQuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTQ6Mzc6MzkKICAgIC0gKHBhcnNlLmMpOiBwYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRlYWwgd2l0aCBtdWx0aXBsZSBtb2R1bGUgSUQncyBiZWluZyByZWZlcmVuY2VkIG9yIG5vZGVzIGRlZmluZWQuCiAgICAgIC0gc3VwcmVzcyAibmFtZSBjbGFzaCIgd2FybmluZ3MgZm9yIGFub255bW91cyBub2Rlcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNToyMjo1MQogICAgLSAocGFyc2UuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBBZGQgbmV3IG5vZGUgc3RydWN0dXJlIGVudHJpZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MDE6MTgKICAgIC0gKGNvbmZpZyosIG1pYi5jKToKICAgICAgLSBDaGFuZ2VkIGVudiB2YXJpYWJsZSBNSUJGSUxFIC0+IE1JQkZJTEVTIChzaW5jZSBpdCBpcyBhIGxpc3Qgbm93KS4KICAgICAgICAod2lsbCBhY2NlcHQgTUlCRklMRSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgogICAgICAtIEJ5IGRlZmF1bHQsICpubyogYWRkaXRpb25hbCBtaWJmaWxlcyBhcmUgbG9hZGVkIChpZSwgbWliLnR4dCBpcyBubwogICAgICAgIGxvbmdlciBsb2FkZWQpIGFuZCBtdXN0IGJlIHR1cm5lZCBvbiB0aHJvdWdoIGNvbmZpZ3VyZSBvciB0aGUgZW52IHZhci4KICAgICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnMgdG8gc2V0IGRlZmF1bHQgTUlCUywgTUlCRklMRVMsIE1JQkRJUlMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MjI6MTkKICAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgICAtIERpc3BsYXkgZGVmYXVsdHMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjoyNjoxMgogICAgLSAoY29uZmlndXJlKiwgSU5TVEFMTCk6CiAgICAgIC0gV29yZGluZyBhbmQgb3JkZXIgY2hhbmdlcyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjQzOjM3CiAgICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NlbjoKICAgICAgLSBGaXggdWRwX2lucGNiIHN0cnVjdHVyZXMuCgp3aGFyZGFrZSAxNiBNYXkgOTcgMTE6MjU6MzAKICAgIC0gKHBhcnNlLmMpOiBQcm90ZWN0IG1hbGxvYyBhZ2FpbnN0IDAgZXh0ZXJuYWwgaW1wb3J0cy4KCndoYXJkYWtlIDIwIE1heSA5NyAwODowMzozNQogICAgLSAodWRwLmMpOiBPbmx5IGRvIE1hcnRpbiBKYWNvYnNzZW4ncyBmaXhlcyBmb3IgZnJlZWJzZDIuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MTg6NDkKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiBDb21tZW50IG91dCBPYmplY3RTeW50YXggaW1wb3J0LgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE5OjEyCiAgICAtIChwYXJzZS5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgaW1wb3J0IGNhbGxzLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE5OjI4CiAgICAtIChtaWIuYywgc25tcF9hdXRoLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKd2hhcmRha2UgMjAgTWF5IDk3IDEwOjA4OjI1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTcgKQoKd2hhcmRha2UgMjAgTWF5IDk3IDExOjI0OjI3CiAgICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjogIEZpeCBteSBjcHAgc3R1cGlkaXR5LgoKd2hhcmRha2UgMjAgTWF5IDk3IDE2OjUwOjE4CiAgICAtIChUT0RPKTogc25tcHNldCBzaG91bGQgY2hlY2sgYWdhaW5zdCBzaXplIGRlZmluZWQgaW4gbWliLgoKd2hhcmRha2UgMjAgTWF5IDk3IDE2OjUwOjU1CiAgICAtIChwYXJzZS5jKTogY29kZSBmcm9tIERhdmUgU2hpZWxkOiBhZGQgYmFjayBpbiBmaW5kX25vZGUoKSBmb3IgcGVybCB1c2FnZS4KCndoYXJkYWtlIDIxIE1heSA5NyAxMDoxMzozOAogICAgLSAoTkVXUyk6IFVwZGF0ZSBmb3IgMy4yLgoKd2hhcmRha2UgMjEgTWF5IDk3IDE1OjM4OjMyCiAgICAtIChORVdTKTogQ2hhbmdlcyBmcm9tIERhdmUuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTU6NDA6MzEKICAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgoKd2hhcmRha2UgMjIgTWF5IDk3IDEzOjEzOjU5CiAgICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiByZXN0b3JlZC4gIEdvdCB0cnVuY2F0ZWQuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6MzU6MTQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogU2V0IGRlZmF1bHQgTUlCIGxpc3QuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6MzY6MTcKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpYW5uZXMgcHJvYmxlbXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzc6MDIKICAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQpOiBGcm9tIE5pZWxzOiBjaGFuZ2UgaW1wb3J0IGNsYXVzZXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzc6MzkKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpZW5uZXMgcHJvYmxlbXMuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6Mzg6MTMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBtdWx0aXBsZSBmcmVlcyBpbiB2MiBwZHUncy4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzo0MDowOQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyB0byBmaXggU05NUCBwZXJsIGFnYWluLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjQwOjMyCiAgICAtIChzbm1wX2FwaS5oKTogQ2hhbmdlIHRyYXAgdHlwZXMgZnJvbSBpbnQgdG8gbG9uZy4KCndoYXJkYWtlIDIzIE1heSA5NyAxNjoyMzo1NgogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU4ICkKCndoYXJkYWtlIDIzIE1heSA5NyAxNjozNDozMwogICAgLSAobWliX2FwaS4zKTogTW9kaWZpeSB0byBub3RlIGRlZmF1bHQgbWlicy4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1MDoyMAogICAgLSAoSU5TVEFMTCwgY29uZmlndXJlKTogZGVmYXVsdCBtaWJzIGxpc3RlZCBjb3JyZWN0bHkuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTA6NTI6MTIKICAgIC0gKHNubXBfYXBpLmgpOiB0cmFwIGxvbmcncyBiYWNrIHRvIGludHMsIGJhZCBzb2x1dGlvbi4KCndoYXJkYWtlIDI2IE1heSA5NyAxMDo1NjoxOQogICAgLSAoc25tcGNoZWNrLmRlZik6IG5ldyB2YXJpYWJsZXMgdG8gc2V0IHdhbGsvZ2V0L3NldCBjb21tYW5kIGxpbmUgdXNhZ2UuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTE6Mzg6NDEKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG5pZWxzIEJhZ2dlc2VuIHRvOgogICAgICAtIGNsb3NlIG1pYmZpbGVzIGZvciBNSUJTPUFMTC4KICAgICAgLSBBbGxvdyBTWU5UQVggRGlzcGxheVN0cmluZyAoU0laRSgxLi4yNTUpKSBpbnNpZGUgT0JKRUNULVRZUEUuCgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4yLjEgLT4gVjMuMS4zCgp3aGFyZGFrZSAxMCBKYW4gOTcgMDg6NDM6NDIKICAgIC0gKENPUFlJTkcpOiAgVXBkYXRlIGZvciA5Ny4KCndoYXJkYWtlIDEwIEphbiA5NyAwODo0NjowMAogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciAvZGV2L2tzeW1zIGZvciBzb2xhcmlzIGtlcm5lbC4KCndoYXJkYWtlIDEwIEphbiA5NyAwODo0NjozNgogICAgLSAoc25tcHRyYXBkLmMpOiBSZW1vdmUgYnJva2VuIEZEX1NFVCBjb2RlLgoKd2hhcmRha2UgMTQgSmFuIDk3IDE2OjQ1OjMzCiAgICAtIChQT1JUSU5HLCBSRUFETUUsIFRPRE8pOiAgQWRkZWQgdWNkLXNubXAtY29kZXJzIGFzIGRlZmF1bHQgbWFpbCBhZGRyZXNzLgoKd2hhcmRha2UgMTcgSmFuIDk3IDA5OjI4OjU2CiAgICBwYXRjaCBuaWVscy4wCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTE6NTE6NDAKICAgIC0gKHNubXBkLmMsIGV4dGVuc2libGUuYyk6CiAgICAgIC0gTmV3IGFyZyAtYyBGSUxFOiAgCSAgIFJlYWQgRklMRSBhcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSBhcyB3ZWxsLgogICAgICAtIE5ldyBhcmcgLUM6ICAgICAgIAkgICBEb24ndCByZWFkIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcy4KICAgICAgLSBOZXcgZW52IFNOTVBDT05GUEFUSDogIFJlYWQgc25tcGR7LC5sb2NhbH0uY29uZiBmaWxlcyBpbiA6IHNlcGVyYXRlZCBwYXRoLgoKd2hhcmRha2UgMTcgSmFuIDk3IDExOjU4OjQ2CiAgICAtIChzbm1wZC5jKToKICAgICAgLSBVc2FnZSgpIHVwZGF0ZSBhbmQgdmVyc2lvbiBwcmludG91dCB1cGRhdGUuCgp3aGFyZGFrZSAxNyBKYW4gOTcgMTQ6NTU6MjgKICAgIERhdmUgU2hpZWxkIHBhdGNoZXMKCndoYXJkYWtlIDIwIEphbiA5NyAxMToxNzo1MwogICAgTmllbCdzIHBhdGNoZXMgaW50ZWdyYXRlZAoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjA5OjI1CiAgICAtIFBhdGNoZXMgZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIGltcGxlbWVudGVkOiBpbnRlcmZhY2VzLmlmVGFibGUuaWZFbnRyeS5pZlNwZWNpZmljLAogICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgICBpcC5pcEFkZHJUYWJsZS5pcEFkZHJFbnRyeS5pcEFkRW50UmVhc21NYXhTaXplLAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWFzayAsCiAgICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlSW5mbywgaXAuaXBOZXRUb01lZGlhVGFibGUsCiAgICAgICAgICB1ZHAudWRwVGFibGUuCiAgICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgICAtIGlwTmV0VG9NZWRpYS4KICAgIAogICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgICAtIHVkcE5vUG9ydCwgdGNwSW5FcnJzIGZpeGVzIGZvciBTb2xhcmlzLgogICAgIC0gbGludXggYXBwbGljYXRpb24gc3VwcG9ydC4KICAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAgLSBzaW1wbGUgY29sZCBzdGFydCB0cmFwcyB2aWEgZXhlYygnc25tcHRyYXAnKS4KICAgICAtIE1JQiBwYXJzZXIgZml4ZXMuCiAgICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjIyOjUzCiAgICAtIFBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgIC0gKHNubXBfY2xpZW50LmMpOiBXYWl0IDEyMCBzZWNvbmRzIGJlZm9yZSByZXR1cm5pbmcuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6Mzc6MDgKICAgIC0gKGNvbmZpZyopOiBBdXRvaGVhZGVyIGlzIGR1bWI6ICBQdXQgbWFjcm8gZGVmaW5lcyBiZWxvd2UgQEJPVFRPTUAgc3ltYm9sLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjM4OjU5CiAgICAtIChzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogUmVtb3ZlIEFOU0kgY3BwICNlbGlmJ3MuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTA6MzcKICAgIC0gKHNubXBfdmFycy5jKTogYnNkaSAjaWZkZWYgZml4ZXMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTU6NDUKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIDxtYXJ0aW5AZXhtYW5kYXRvLnNlPjoKICAgICAgLSBhZGQgYnNkaSB0byBzb21lICNpZmRlZnMuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTU6NTg6NTEKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgIC0gd2F0Y2ggb3V0IGZvciBzdHJpbmcgbGVuZ3RocyBvbiB2ZXJzaW9uIGRlc2MgYW5kIHN5c25hbWUuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6Mzg6MjAKICAgIHBhdHJpY2UuMSBwYXRjaAoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjQzOjI1CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5bY2hdKToKICAgICAgLSBQYXRjaCBmcm9tIFBhdHJpY2UgVkFOQUNLRVIgPHZhbmFja2VyQHdvcmxkbmV0LmZyPjoKICAgICAgICAtIGZpeCByZXF1ZXN0IGRlbGV0aW9ucyBpbiBzbm1wX3JlYWQoKS4KICAgICAgICAtIGFkZGVkIHJldHVybiBhcmd1bWVudCB0byBzbm1wX2FkZF9udWxsX3ZhcigpLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjU5OjAyCiAgICAtIChleHRlbnNpYmxlLmMpOiBQYXRjaCBmcm9tIHN4anpoYW5nQHNzcy5zc2kxLmNvbToKICAgICAgICAtIGZpeCBkaXNrIHJlcG9ydGluZyBvbiBzdW5vcyA0LjEuMyB3aXRoIE9EUyAxLjAuCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTY6NTk6NTYKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMSApCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzM6MDQKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT46CiAgICAgIC0gI2lmIERPREVCVUcgLT4gI2lmZGVmIERPREVCVUcuCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzM6NTIKICAgIC0gKHNubXBkLmMpOiByZW1vdmUgc2Vjb25kIGNoYXIgZGVmaW5pdGlvbi4KCndoYXJkYWtlIDIxIEphbiA5NyAwODozNDozMgogICAgLSAoc25tcF9jbGllbnQuaCk6IHJlbW92ZSBzZWNvbmQgKHdyb25nKSBmdW5jdGlvbiBwcm90b3R5cGUuCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDk6MTc6NDIKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBQYXRjaCBmcm9tIEthcmwgTGVoZW5iYXVlciA8a2FybEBoYW1tZXIxLm9wcy5OZW9Tb2Z0LmNvbT4KICAgICAgICAtIGhhbmRsZSBtdWx0aXBsZSBpbnRlcmZhY2UgbmFtZXMgPiAxMCBwcm9wZXJseS4KCndoYXJkYWtlIDI5IEphbiA5NyAxMDo0Nzo0MAogICAgYnVnIHJlcG9ydGluZyBzY3JpcHQgYWRkCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDc6MDAKICAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgIC0gQWx3YXlzIHVzZSBtdWx0aXBhcnQ6IHZlcnNpb24gaW5mbyBhbmQgY29uZmlnLmNhY2hlIGFyZSBvbmUuCiAgICAgLSByZS1hcnJhbmdlZCBhIGJpdC4KICAgICAtIEFkZGVkIGludHJvZHVjdGlvbi4KICAgICAtIEd1ZXNzIGF0IGRvbWFpbiBuYW1lIGlmIHBvc3NpYmxlLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA3OjU5CiAgICAtIChhY2NvbmZpZy5oKToKICAgICAtIFNOTVBCTE9DSyA9ICFTTk1QQkxPQ0sKCndoYXJkYWtlIDI5IEphbiA5NyAxMjowOTowNQogICAgLSAoYWNsb2NhbC5tNCk6IEZpeCBjaGVja19zdHJ1Y3RfZm9yIHRvIGRlZmluZSB0aGluZ3MgY29ycmVjdGx5LgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjEwOjI4CiAgICAtIChjb25maWd1cmUuaW4pOiBOZXcgcHMgb3B0aW9ucyB0byBjaGVjayBmb3IuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTE6MDQKICAgIC0gKEZBUSk6IHJldmlzaW9uIG9uZSEKCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMToyOQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IHVwZGF0ZQoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjU4OjQ2CiAgICAtIChrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBGaXggdmFyaW91cyB3YXJuaW5ncy9lcnJvcnMuCiAgICAgIC0gSW1wbGVtZW50IHJlYWwgdHJhcHMuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTM6MDM6MTUKICAgIC0gKHZlcnNpb250YWcpOiBNb2RpZnkgLi4vLi4vYnVnLXJlcG9ydCBhcyB3ZWxsLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEzOjA4OjExCiAgICAtIChidWctcmVwb3J0KToKICAgICAgLSBjaGFuZ2UgdG8gYWRkcmVzcyAoYmFjaykgdG8gdWNkLXNubXAtY29kZXJzLgogICAgICAtIEFkZCBhIHRyYXAgb24gc2lnbmFscyB0byByZW1vdmUgdG1wIGZpbGVzLgoKd2hhcmRha2UgMzEgSmFuIDk3IDA5OjU4OjEwCiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIGtzdGF0LmggYW5kIGlmIHN5c2N0bCBjYW4gcmVhZCB0aGUgYm9vdHRpbWUuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6MDE6NTkKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uOgogICAgICAtIENoYW5nZSBzb21lIHN5c3RlbSBzcGVjaWZpYyBpZmRlZnMgdG8gQ0FOX1VTRV9TWVNDVEwuCiAgICAgIC0gRml4IGNvbXBsaWF0aW9uIGVycm9ycyBvbiBic2RpMi4KICAgICAgLSBGaXggcm91dGluZyB0YWJsZXMgZm9yIHNpbWlsYXIuCgp3aGFyZGFrZSAzMSBKYW4gOTcgMTA6NDk6MDcKICAgIC0gKHZlcnNpb250YWcpOiB1aCwgY29tbWl0IGl0IGFnYWluLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjUwOjA0CiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGZpcmUgb2ZmIGtzaCBpZiBocHV4ICYmIHNoLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjU5OjQzCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IGNoYW5nZWQgYXJjaCB0byBocHBhIGFuZCBtYWtlIHN1cmUgL2Jpbi9rc2ggZXhpc3RzLgoKd2hhcmRha2UgMzEgSmFuIDk3IDExOjAzOjExCiAgICB2ZXJzaW9uIHRhZyB1cGRhdGUKCndoYXJkYWtlICAzIEZlYiA5NyAxMDowMjoxMgogICAgLSAoYnVnLXJlcG9ydCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gZG9tYWluIG5hbWUgZml4IGFuZCBlZGl0b3IgYm9tYiBvdXQuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6MDM6MTAKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjb21tZW50IG91dCBwb3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtIGxpbmVzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ2OjAyCiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIENoZWNrIGZvciB3aG9hbWksIGxvZ25hbWUuCiAgICAgIC0gRG9uJ3QgcGFzcyBudWxsIGFyZ3MgdG8ga3NoLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ3OjA0CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQKICAgICAgLSBNYXJrIHN0dWZmIGZvciBsYXRlciBjaGFuZ2VzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjQ4OjA2CiAgICAtIChzbm1wbGliL3N5c3RlbS5jKTogIFVzZSBDQU5fVVNFX1NZU0NUTCBpbnN0ZWFkIG9mIGJzZGxpa2UuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTE6NTA6MjMKICAgIC0gKGNvbmZpZyopOgogICAgICAtIENoZWNrIGZvciBpcml4IDYuMiBoZWFkZXJzLgogICAgICAtIENoZWNrIGlmIF9LRVJORUwgbmVlZHMgdG8gYmUgZGVmaW5lZCBmb3IgaXJpeCBhbmQgaWZuZXQgdXNhZ2UuCiAgICAgIC0gVXNlIHRoZSBmb3VuZCBVTkFNRSBwcm9ncmFtIGluc3RlYWQgb2YgYXNzdW1pbmcgd2UgaGF2ZSBpdC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo0NDo1MQogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IHR5cG86ICBuZWVkcyBhIHNwYWNlIGJldHdlZW4gJ3N0YXRpYycgYW5kICdzdHJ1Y3QnLgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjQ3OjU4CiAgICAtIChzbm1wX3ZhcnMuYyk6IGFkZCBzb21lIGlyaXggYXBwcm9wcmlhdGUgaW5jbHVkZXMuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NTE6MDQKICAgIC0gKFJFQURNRSk6IHJlbW92ZSBwcm9qZWN0IGhpc3RvcnkuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6MTU6MTEKICAgIC0gKFJFQURNRSk6CiAgICAgIC0gYWRkZWQgRkFRIHBvaW50ZXIuCiAgICAgIC0gRGF2ZSdzIEVuZ2xpc2ggcG9pbnRlcnMgKGllLCBoZSBwcm9vZmVkIGl0IGFuZCBJLCB1aCwgZG9uJ3QuLi4pLgogICAgICAtIHN3aXRjaCBmdHAgbWlycm9yLgogICAgICAtIGJ1Zy1yZXBvcnQgc2NyaXB0IG1lbnRpb25lZC4KICAgICAgLSBJIC0+IFdlLCBtZSAtPiB1cy4uLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjMzOjExCiAgICAtIChSRUFETUUsIE5FV1MsIFRPRE8pOiBVcGRhdGUgZm9yIDMuMS4zLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjUzOjA0CiAgICAtIChidWctcmVwb3J0KTogbW92ZSBjb25maWcuY2FjaGUgdG8gZW5kIG9mIG1lc3NhZ2UuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTM6NTU6MDUKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMyApCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzU6MDIKICAgIC0gKEZBUSk6IERhdmUncyBsYXRlc3QgcmV2aXNpb24uCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzU6MzcKICAgIC0gKFRPRE8pOiBBZGRlZCBzdWdnZXN0aW9ucyBmcm9tIHVjZC1zbm1wLWNvZGVycy4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNjo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBGaXggaHB1eCBwcm9ibGVtcywgKmFnYWluKi4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTozNzoyNgogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIFNpbW9uOiBjb21tZW50ICNpZmRlZiBlbmRpbmdzIGZvciBBTlNJIGNvbXBsaWVycy4KCndoYXJkYWtlICA0IEZlYiA5NyAwOTo0MTozOQogICAgLSAoRkFRKTogQWRkZWQgVE9DIGFuZCBhdXRvciBub3RlcyA7LSkuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTY6MzM6MDEKICAgIC0gKEZBUSk6IERhdmUgdXBkYXRlZCBhcmNoaXRlY3R1cmUgbGlzdHMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTY6MzM6MzIKICAgIC0gKFRPRE8pOiBtaXNjIHJlcXVlc3RlZCBhZGRpdGlvbnMuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MDc6MjUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUHV0IC9kZXYva3N5bXMgYWhlYWQgb2YgL2tlcm5lbC91bml4LgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjExOjE1CiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wIG1pYiBncm91cCBjbGVhbnVwcy4KICAgICAgLSB0cmFwIGdlbmVyYXRpb24gY2xlYW51cHMuCiAgICAgIC0gYWRkZWQgbWFuIGVudHJpZXMgZm9yIHRyYXAgZ2VuZXJhdGlvbi4KICAgICAgLSBpbXByb3ZlZCBhZ2VudCBkZWJ1Z2dpbmcgb3V0cHV0IHdpdGggYWdlbnQncyAtZCBmbGFnLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjEzOjA5CiAgICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IG5saXN0IHByb2JsZW1zLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjIwOjEwCiAgICAtIChidWctcmVwb3J0KTogQ2hhbmdlIHN1YmplY3QgbGluZSB0byBzaG9ydGVuIGFuZCBmb3JjZSBiZXR0ZXIgZGVzY3JpcHRpb24uCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjM6NDEKICAgIC0gKHRjbCwgdGssIHNubXB0Y2wpOiBOdWtlZC4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyNTowMwogICAgLSAoTkVXUyk6IHJlbW92ZWQgdGNsIHN0dWZmLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjI5OjU0CiAgICAtIChNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluKTogcmVtb3ZlZCB0Y2wgc3R1ZmYuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6NDE6NTAKICAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlNCApCgp3aGFyZGFrZSAxMCBGZWIgOTcgMDk6MjI6MDMKICAgIC0gKEZBUSk6IERhdmUgU2hpZWxkcycgYWRkaXRpb25zOiAgZmluZGluZyBtb3JlIGluZm8uCgp3aGFyZGFrZSAxMCBGZWIgOTcgMDk6MjI6NTMKICAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFJlbW92ZSBtYWxsb2MgcHJvdG90eXBlLCBub3cgaW4gc3RkbGliLmguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xLjIgLT4gVjMuMS4yLjEKCndoYXJkYWtlICA1IERlYyA5NiAwOToxMzo1NgogICAgLSAoaWYuYyk6ICNpZm5kZWYgLT4gI2lmZGVmIGZvciBzaWdzZXQuCiAKd2hhcmRha2UgIDUgRGVjIDk2IDA5OjE0OjU5CiAgICAtIChtZDUuYyk6IHJlbW92ZSBhbnNpIHNwZWNpZmljIEMgZmVhdHVyZXMgKHVuc2lnbmVkIGNvbnN0YW50cykuCiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4xIC0+IFYzLjEuMgoKd2hhcmRha2UgMTcgT2N0IDk2IDA3OjAyOjU4CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4xLkJTREkgKQoKd2hhcmRha2UgMzAgT2N0IDk2IDEzOjQ3OjIxCiAgICAtIChQT1JUSU5HLFJFQURNRSk6IEFkZCBhIG5ldyBQT1JUSU5HIGZpbGUgdG8gcmVmZXJlbmNlIGF1dG9jb25mIHBsZWUuCgp3aGFyZGFrZSAzMCBPY3QgOTYgMTM6NDk6MDkKICAgIC0gKGNvbmZpZyosIGVjZS1taWIuZGVmKToKICAgICAgLSBDaGFuZ2UgZXh0ZW5zaWJsZSBtaWIgbG9jYXRpb24gdG8gdWNkYXZpcyBlbnRlcnByaXNlIG1pYjogMjAyMS4KICAgICAgLSBSZW1vdmUgYXNzb2NpYXRlZCBwcm9tcHRpbmcgZnJvbSBjb25maWd1cmUgc2NyaXB0IGFuZCBldGMuCgp3aGFyZGFrZSAzMSBPY3QgOTYgMTc6MDY6MTYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBudW1kaXNrcyB3YXMgYmVpbmcgaW5jcmVtZW50ZWQgYmVmb3JlIGxhc3QgdXNhZ2UuCgp3aGFyZGFrZSAgMSBOb3YgOTYgMDg6NTQ6MTEKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuICA8c2ltb25Ac3dpdGNoLmNoPjoKICAgICAgLSBhc25fYnVpbGRfdW5zaWduZWRfaW50LCBhc25fYnVpbGRfdW5zaWduZWRfaW50NjQ6CiAgICAgICAgLSBEb24ndCB0cnkgdG8gc3RyaXAgRkZzIGZyb20gdGhlIGhpZ2ggZW5kIG9mIHVuc2lnbmVkIHZhbHVlcy4KICAgICAgICAtIFNraXAgdGhlIHN0cmlwcGluZyBjb2RlIGVudGlyZWx5IGlmIHdlIGhhdmUgdG8gYWRkIGEgbnVsbCBieXRlLgoKd2hhcmRha2UgIDQgTm92IDk2IDA5OjMwOjQ2CiAgICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogIE1vcmUgaW5jbHVkZSBjaGVja3MgZm9yIGxpbnV4LgoKd2hhcmRha2UgIDQgTm92IDk2IDEwOjA4OjQ5CiAgICAtIChjb25maWcqKTogQ2hlY2sgZm9yIG5saXN0IGluIC1sbWxkIChpcml4KS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOToxNjo0NQogICAgLSBOZXRCU0QgMy4xLjAuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MjQ6MjMKICAgIC0gTmllbHMgMy4xLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjM1OjUyCiAgICAtIEJTRGkyIDMuMS4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOTo1NzoxNgogICAgLSAodmVyc2lvbnRhZyk6IE9ubHkgdGFnIHJlbGVhc2UgdmVyc2lvbnMgKEV4dCopLgoKd2hhcmRha2UgIDcgTm92IDk2IDE0OjE2OjAwCiAgICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IENoYW5nZWQgZGVmYXVsdCBTTk1QVjJBVVRIIHRvIFNOTVBWMS4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNjozOQogICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGlmZGVmJ3MgYXJvdW5kIHN0cmluZ3MuaC4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNzoxNwogICAgLSAoc25tcF92YXJzLmMpOiBpZmRlZiB0eXBvcy4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxOTozMwogICAgLSAobWliLmMpOiB0eXBlY2FzdCBmb3Igc3ByaW50X29iamlkKCkuCgp3aGFyZGFrZSAgOCBOb3YgOTYgMTc6MDM6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogQ3JlYXRlZCBhICd0b3VjaGl0JyB0byB0b3VjaCBjb25maWcgZmlsZXMgcHJvcGVybHkuCgp3aGFyZGFrZSAgOCBOb3YgOTYgMTc6MDY6NDYKICAgIC0gKE1ha2VmaWxlLmluKTogRml4ZWQgJ3RvdWNoaXQnLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE0OjUwCiAgICAtIChleHRlbnNpYmxlLmMpOiBVc2Ugc3RhdGZzIGlmIHN0YXR2ZnMgaXMgdW5hdmFpbGFibGUuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTY6MjIKICAgIC0gKHNubXBfdmFycy5jKToKICAgICAgLSAjaWZkZWYgdHlwby4KICAgICAgLSBwcm90b3R5cGUgZm9yIEludGVyZmFjZV9TY2FuX0luaXQoKS4KICAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wIGJlZm9yZSB1c2luZy4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNzozNgogICAgLSAoY29uZmlnKik6CiAgICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcC4KICAgICAgLSBDaGVjayBmb3Igc3lzL3Zmcy5oLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjI0OjI0CiAgICAtIChzbm1wdHJhcC5jLCBpbmV0LmMsIHJvdXRlLmMpOiB0eXBlY2FzdGluZyB3YXJuaW5nIGZpeGVzLgoKd2hhcmRha2UgMTUgTm92IDk2IDE2OjQzOjMzCiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBNYWtlIHVuYW1lIGNhbGxzIHdvcmsgY29ycmVjdGx5LgoKd2hhcmRha2UgMTUgTm92IDk2IDE2OjQ0OjExCiAgICAtIChwYXJzZS5jKTogIEFkZCBiYWNrIGluICJyZWFkaW5nIG1pYi4uLiIgZGVidWdnaW5nIHN0YXRtZW50cy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwODoxODoyOQogICAgLSAoc25tcF92YXJzLmMpOiBUcmFzaCBpbnRlcmZhY2UgY2FjaGluZy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwOTowNjoxMAogICAgLSAoc25tcF92YXJzLmMpOiBNZXJnZSBmcm9tIEZyZWVCU0QyLTMtMS0xLgogICAgICAtIEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KCndoYXJkYWtlIDIyIE5vdiA5NiAwOToxNDoyMgogICAgLSAoY29uZmlnKik6IEFkZCBjaGVja3MgZm9yIGlmbmV0Lltpb11ieXRlcy4KCndoYXJkYWtlIDIyIE5vdiA5NiAxMTozNToyOQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS8qLmMsIG5ldzogZXh0cHJvdG8uaCk6ICBSZW1vdmVkIGFsbCAtV2FsbCB3YXJuaW5ncyEKCndoYXJkYWtlIDIyIE5vdiA5NiAxNDozODowNQogICAgLSAoY29uZmlnKiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IFVwZ3JhZGVkIHRvIGF1dG9jb25mIDIuMTEuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMTU6MTA6MzYKICAgIC0gKGV4dGVuc2libGUuYywgcmVhZF9jb25maWcuYyk6IHJlbW92ZWQgbW9yZSAtV2FsbCB3YXJuaW5ncy4KCndoYXJkYWtlIDI0IE5vdiA5NiAxNjoyNTowNwogICAgLSAoa2VybmVsLmMsIGNvbmZpZyosIElOU1RBTEwpOiAgTmV3IGNvbmZpZ3VyZSBzd2l0Y2g6ICAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MuCiAgICAgIC0gVGhlIGFnZW50IGRvZXNuJ3QgZXhpdCBpZiBpdCBjYW4ndCBvcGVuIC9kZXYva21lbS4KCndoYXJkYWtlIDI0IE5vdiA5NiAxNjo0NToyNwogICAgdmVyc2lvbiB0YWcgKCAzLjEuMi5wcmUxICkKCndoYXJkYWtlIDI1IE5vdiA5NiAwODo0NDowMwogICAgLSAoe2FnZW50LGFwcHN9L01ha2VmaWxlLmluKTogUHV0IGxpYnNubXAuYSBpbiBmcm9udCBvZiAtbCBsaWJzLgoKd2hhcmRha2UgMjUgTm92IDk2IDA5OjE1OjU3CiAgICAtIChjb25maWcqLCBzbm1wX2ltcGwuaCk6IE1vdmVkIHZvaWQgLT4gY2hhciBkZWZpbmUgdG8gYSBjb25maWd1cmUgdGVzdC4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowMjowNgogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIENoYW5nZSBjb21tZW50cyB0byByZWZsZWN0IHdoYXQgaXRzIGFjdHVhbGx5IGxvb2tpbmcgYXQuCiAgICAgIC0gUmVtb3ZlIGlmZGVmIGFyb3VuZCBpZm5ldCBkZWNsYXJhdGlvbnMuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDM6NDcKICAgIC0gKGV4dGVuc2libGUuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gUmVtb3ZlIHJldHVybigwKSBvbiB2b2lkIGluaXRfZXh0ZW5zaWJsZSgpLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjA2OjA0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERlZmF1bHQgc3lzbG9jIFVDRGF2aXMgLT4gVW5rbm93bi4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODoyMToyMAogICAgLSAoSU5TVEFMTCk6IFR5cG86ICAzLjEuMyAtPiAzLjAuMy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODoyMTozNAogICAgLSAoUkVBRE1FKTogVXBkYXRlLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjM0OjEyCiAgICAtIChpZi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBXYXRjaCBvdXQgZm9yIGludGVyZmFjZSBuYW1lcyB3aXRoICcgJyBpbiB0aGVtLgogICAgICAtIFJlc2V0IHNpZ25hbCBvbiBCU0Qgc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODo0NTo0NgogICAgLSAoaWYuYyk6IFJlc2V0IHNpZ25hbCBvbiBhbGwgdHlwZXMgb2Ygc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODo1Njo0NAogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBUcnVuY2F0ZSBzeXN0ZW0gbmFtZXMgYmV5b25kIFstX10uKi4KCndoYXJkYWtlICAyIERlYyA5NiAwODo1NTo0OQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIGlmUGh5c0FkZHIgLSBpbiBJbnRlcmZhY2VfR2V0X0V0aGVyX0J5X0luZGV4LCBIUC1VWCBoYXMgdGhlIHNhbWUKICAgICAgICAgICAgRXRoZXJBZGRyIHN0cnVjdXJlIGFzIE1JUFMuCiAgICAKICAgICAgLSBpcEFkRW50SWZJbmRleCAtIGluIHZhcl9pcEFkZHJFbnRyeSwgdGhlcmUgaXMgYSBmYWxzZSBtYXRjaCBvbgogICAgICAgICAgICB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlLCBnaXZpbmcgdGhlIHdyb25nIGFuc3dlciBvZiB0aGUgZmlyc3QKICAgICAgICAgICAgaW50ZXJmYWNlIGluZGV4LgogICAgCiAgICAgIC0gdWRwSW5FcnJvcnMgLSBpbiB2YXJfdWRwLCB0aGUgY291bnQgb2YgVURQIGVycm9ycyBvbWl0cyBkaXNjYXJkZWQKICAgICAgICAgICAgcGFja2V0cy4gIFNvbWUgc3lzdGVtcyAoaS5lLiBIUC1VWCkgaGF2ZSBleHRlbmRlZCB0aGUgdWRwc3RhdAogICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGVzZS4gIEkndiB0d2Vha2VkIHRoaXMgYW5hbG9nb3VzIHRvIGEKICAgICAgICAgICAgc2ltaWxhciBhZGRpdGlvbiBpbiB0aGUgdGNwc3RhdCBzdHJ1Y3R1cmUuCiAgICAKICAgICAgLSB0Y3BDb25uU3RhdGUgLSBIUC1VWCBoYXMgYWRkZWQgYW4gZXh0cmEgc3RhdGUgaW50byB0aGUgbGlzdCwgd2hpY2gKICAgICAgICAgICAgdGhyb3dzIHRoZSByZXN0IG9mIHRoZW0gb3V0LgoKd2hhcmRha2UgIDMgRGVjIDk2IDEwOjA0OjAyCiAgICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gV3JvdGUgQUNfQ0hFQ0tfU1RSVUNUX0ZPUiBhbmQgdXNlIGl0LgogICAgICAtIE1ha2UgQUNfQ0hFQ0tfSUZORVRfRk9SIHVzZSBhYm92ZS4KICAgICAgLSBDaGFuZ2VxdW90ZSAnW10nIC0+ICcnIGFyb3VuZCBzZWQgZXhwcmVzc2lvbiB3aXRoIFtdcyAoLURvc3R5cGUpLgoKd2hhcmRha2UgIDMgRGVjIDk2IDEwOjA1OjE3CiAgICAtIChtZDUuYyk6IFB1dCAnVSduc2lnbmVkIG1hcmtlciBhdCBlbmQgb2YgY29uc3RhbnRzIHRvIHJlbW92ZSBnY2Mgd2FybnMuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTE6MDQ6MzMKICAgIC0gKHNubXBfdmFycy5jKTogRnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBGaXggYXJwIHRhYmxlIGZvciBocHV4LgogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBhcnBoZC5hdF9uZXh0IGFuZCB1c2UgaW4gYWJvdmUuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTE6MTQ6NDMKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIHBhc3N0ZXN0KTogTW92ZSBwYXNzdGVzdCB0byB1Y2RhdmlzIHN1YnRyZWUuCgp3aGFyZGFrZSAgMyBEZWMgOTYgMTQ6NTE6MjQKICAgIC0gKGVjZS1taWIuZGVmKTogVXNlZCAtPiBBdmFpbCBpbiBtZW1vcnkgc2VxdWVuY2UuCgp3aGFyZGFrZSAgNCBEZWMgOTYgMDk6MTY6MDkKICAgIC0gKGFzbjEuYywgcGFyc2UuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgICAgIC0gUGFyc2VyIGZpeGVzIGZvciBtdWx0aXBsZSBub2Rlcy4KICAgICAgICAtIG1lbW1vdmUvY29weSBkZWxldGVzLgoKd2hhcmRha2UgIDQgRGVjIDk2IDA5OjQ5OjM4CiAgICAtIChQT1JUSU5HLCBSRUFETUUpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4wLjEgLT4gVjMuMS4xCgp3aGFyZGFrZSAxMSBTZXAgOTYgMDg6NDk6MTQKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBGaXhlZCBjb21tdW5pdHkgbnVtYmVyIGNoZWNrcy4KCndoYXJkYWtlIDI0IFNlcCA5NiAxNjo1NDo1OQogICAgLSAoY29uZmlnKiwgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6IEFkZGVkIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE2OjU5OjI2CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IHR5cG9zLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE3OjAyOjQ3CiAgICAtIChzbm1wX3ZhcnMuYyk6IE1vdmVkIGEgdmFyaWFibGUgZGVjbGFpcmF0aW9uLgoKd2hhcmRha2UgMjQgU2VwIDk2IDE3OjE2OjU4CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogdHlwbyBmaXhpbmcgYSB0eXBvIChzaWdoLi4pLgoKd2hhcmRha2UgMjUgU2VwIDk2IDE0OjE0OjUzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogZnJlZWJzZDIgdHlwZWNhc3QuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTU6MzA6NDYKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBGcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gYWxsb3dzIHRoZSBDTVUgbGliIHRvIHJldGFpbiB0aGUgVEMgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEKICAgICAgICBwYXJ0aWN1bGFyIG9iamVjdC4gSW4gcGFydGljdWxhciB0aGlzIGFsbG93cyBEaXNwbGF5U3RyaW5ncyB0byBiZQogICAgICAgIGRpZmZlcmVudGlhdGVkIGZyb20gT2N0ZXRTdHJpbmdzIHdoZW4gdGhleSBhcmUgbG9va2VkIHVwIGluIHRoZQogICAgICAgIE1pYiBUcmVlLgoKd2hhcmRha2UgIDEgT2N0IDk2IDE1OjU0OjIyCiAgICAtIChleHRlbnNpYmxlLmMpOiBpbnQgLT4gZG91YmxlIHRvIHN1cHBvcnQgbGFyZ2VyIGRpc2sgc2l6ZXMuCgp3aGFyZGFrZSAgMSBPY3QgOTYgMTY6Mjg6NTIKICAgIC0gKGNvbmZpZyosIHJlYWRfY29uZmlnLmMpOgogICAgICAtIENoZWNrIGZvciBtbnRlbnQuaCBhbmQgaW5jbHVkZSBpdC4KICAgICAgLSBDaGVjayBmb3IgL2V0Yy9tbnR0YWIgb3IgL2V0Yy9tdGFiIGFuZCB1c2UgYXBwcm9wcmlhdGVseS4KICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIHBpY2sgZ2V0bW50ZW50IG92ZXIgZ2V0ZnNmaWxlIGlmIGJvdGggYXJlIGF2YWlsYWJsZS4KICAgICAgLSBkZWJ1ZyBjbGVhbnVwIChvZmlsZSAtPiBzdGRlcnIsIGNoZWNrIGZvciBET0RFQlVHIGluc3RlYWQgb2YgY29uc3QgdmFyKS4KCndoYXJkYWtlICAzIE9jdCA5NiAxNjowNTo0NwogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBNYWtlIGFnZW50IHByb3Blcmx5IGNoZWNrIHNubXBzZXQgZXhpdCBjb2RlcyBhbmQgdXNlIHRoZW0gKG9uIENPTU1JVCkuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MDg6NTkKICAgIC0gKHBhc3MuYyk6CiAgICAgIC0gQ2hlY2sgZm9yIHBhc3N0aHJ1IGV4aXN0YW5jZSBiZWZvcmUgcmV0dXJuaW5nIEVSUl9OT0VSUk9SLCBlbHNlCiAgICAgICAgcmV0dXJuIEVSUl9OT1NVQ0hOQU1FLgogICAgICAtIENvcnJlY3RseSBjaGVjayBmb3IgYW5kIHBhc3MgIm5vdC13cml0YWJsZSIgYW5kICJ3cm9uZy10eXBlIiBwYXNzIHJldHVybnMuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MTA6MzgKICAgIC0gKHNubXBfaW1wbC5oKTogIFR1cm4gb24gb2xkIENNVSBkZWJ1Z2dpbmcgc3RhdG1lbnRzIHdpdGggLS1lbmFibGUtZGVidWdnaW5nLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQzOjQwCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogQWRkZWQgc25tcGdldC9zZXQgdG8gcGFzcyBleGFtcGxlLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQ0OjI2CiAgICAtIChNYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgZnJvbSBzZWRzY3JpcHQgd2hlbiB1c2luZyBicm9rZW4gY3BwIChnY2MpLgoKd2hhcmRha2UgIDQgT2N0IDk2IDA5OjQ2OjA5CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKToKICAgICAgLSBDbGVhbmVkIHVwIG1hbiBwYWdlIGZvcm1hdHRpbmcuCiAgICAgIC0gQWRkZWQgbm90ZSBhYm91dCBTTk1Qc2V0IGNvbW11bml0eSBzdHJpbmdzLgogICAgICAtIG1pbm9yIHByb29mLXJlYWRpbmcgKG1ham9yIHByb29maW5nIG5lZWRlZCBzdGlsbCkuCiAgICAgIC0gUmUtb3JnYW5pemVkIGEgYml0LgoKd2hhcmRha2UgIDQgT2N0IDk2IDEwOjAxOjIwCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogbGliIC0+IGxpYi9zbm1wIHBhdGggY29ycmVjdGlvbiBpbiBGSUxFUyBzZWN0aW9uLgogICAgLSAoc25tcGQuMS5kZWYpOgogICAgICAtIEFkZGVkIGEgRklMRVMgc2VjdGlvbi4KICAgICAgLSBHZW5lcmFsIGNsZWFuIHVwLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA3OjQxOjQwCiAgICAtIChwYXJzZS5jKTogIE5vdyBsb2FkcyBhbGwgbWlicyAoZmlsZXMpIGluIHRoZSBkaXJlY3RvcnkgU05NUExJQi9taWJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDA3OjQ5OjU5CiAgICAtIChwYXJzZS5jKTogIFByb3BlciBhdXRvY29uZiBkaXJlbnQgaGVhZGVycy4KCndoYXJkYWtlICA3IE9jdCA5NiAwODowMTo0MwogICAgLSAoTWFrZWZpbGUuaW4pOiBNaWIgaW5zdGFsbGF0aW9uIGNoYW5nZWQgdG8gcmVmbGVjdCBuZXcgbWliIGRpcmVjdG9yeS4KCndoYXJkYWtlICA3IE9jdCA5NiAwODo1MzowNgogICAgLSAoY29uZmlnKik6IGNoZWNrIGNvcnJlY3RseSBmb3IgZ2V0L3NldG1udGVudC4KCndoYXJkYWtlICA3IE9jdCA5NiAwOToxMTo0MwogICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBzbm1wIHZlcnNpb24gY2hlY2sgb24gZXJyb3IgcmV0dXJuIGZyb20gc2V0LgoKd2hhcmRha2UgIDcgT2N0IDk2IDA5OjEyOjIzCiAgICAtIChyZWFkX2NvbmZpZy5jKTogVXNlIGdldG1udGVudCBjb3JyZWN0bHkuICBQYWluLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjIyOjQ3CiAgICAtIChNYWtlZmlsZS5pbik6CiAgICAgIC0gYWRkZWQgLS1yZWNoZWNrIHRvIGNvbmZpZy5zdGF0dXMgY2FsbCB0byByZWdlbmVyYXRlIHNlbGYuCiAgICAgIC0gQ2hhbmdlZCBlY2UtbWliLnR4dCAtPiB1Y2Qtc25tcC50eHQgYW5kIGluc3RhbGwgKGFuZCBnZW5lcmF0ZSkgcHJvcGVybHkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTA6MjM6MzIKICAgIC0gKGV4dGVuc2libGUuYyk6IENob21wIG5ld2xpbmUgb24gdW5hbWUgb3V0cHV0LgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjI0OjEyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogQWRkZWQgJ3N5c2NvbnRhY3QnIGFuZCAnc3lzbG9jYXRpb24nIHBhcnNpbmcuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDA6MTAKICAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGltZXN0YW1wIHN0YW1wLWggYXQgZW5kLgogICAgICAtIGVtYWNzIGxvY2FsIHZhcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTE6MDE6MjUKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBSZW1vdmUgZXh0cmEgYXJncyBmcm9tIHN0cmNweSAod2FzIHN0cm5jcHkpLgoKd2hhcmRha2UgIDcgT2N0IDk2IDExOjAyOjQ2CiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEyOjIzOjA1CiAgICAtIChzbm1wZC4xLmRlZik6IENoYW5nZWQgdG8gcmVmbGVjdCBTTk1QTElCL21pYnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMTI6MjM6MjcKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBBZGRlZCBzeXNjb250YWN0IGFuZCBzeXNsb2NhdGlvbi4KCndoYXJkYWtlICA5IE9jdCA5NiAwODowNDoxNAogICAgLSAocGFyc2UuYyk6CiAgICAgIC0gUGFyc2UgT0JKRUNULUlERU5UWSBhcyBPQkpFQ1QtR1JPVVAgKHNhdmVzIG9ubHkgZGVzY3JpcHRpb24pLgogICAgICAtIENoYW5nZSBwcmludF9lcnJvcigpLCByZWFkX21pYigpIHRvIHJlZmxlY3QgZmlsZSBhbmQgY29ycmVjdCBsaW5lIG51bWJlci4KCndoYXJkYWtlICA5IE9jdCA5NiAwODozMDoyOQogICAgLSAocGFyc2UuYyk6CiAgICAgIC0gcHJpbnQgYSBuZXcgbGluZSBpbiBwcmludF9lcnJvcigpIGlmIGRlYnVnZ2luZyBpcyB0dXJuZWQgb24uCiAgICAgIC0gdG9zc09iamVjdElkZW50aWZpZXIoKTogY2F0Y2ggbXVsdGlwbGUgYnJhY2tldCBjbGF1c2VzIChJRSB7IHswIDB9IH0gKS4KCndoYXJkYWtlICA5IE9jdCA5NiAxNDozNjowMwogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gc3RybmNtcCAtPiBzdHJuY2FzZWNtcC4KICAgICAgLSBOVUxMIC0+IDAuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMTQ6Mzg6MDUKICAgIC0gKGV4dGVuc2libGUuYyk6CiAgICAgIC0gc29ydCBwYXNzIHRocnVzIGJ5IG1pYm9pZCB0byBwcmV2ZW50IHBhc3Npbmcgb2ZmIHRvIHdyb25nIG9uZS4KICAgICAgLSB0eXBvczogIGV4c3RlbiAtPiBleHRlbi4KICAgICAgLSBpbml0X2V4dGVuc2libGUoKSBjYWxscyB1cGRhdGVfY29uZmlnKCkgdG8gcmVkdWNlIGR1cGxpY2F0aW9ucy4KCndoYXJkYWtlICA5IE9jdCA5NiAxNToxODo0MgogICAgLSAoc25tcF9hcGkuYyk6IEZyb206IGdhaEBiZWxsY29yZS5jb20gKEdhcnkgQS4gSGF5d2FyZCkKICAgICAgLSBGcmVlIHBkdSBjb21tdW5pdHkgdG8gcXVlbGNoIHB1cmlmeS4KCndoYXJkYWtlICA5IE9jdCA5NiAxNToyMjoyMwogICAgLSAoUkVBRE1FKTogQWRkZWQgdGhhbmtzIG5hbWUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy4xIC0+IFYzLjEuMC4xCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6MzY6MDgKICAgIC0gKE5FV1MpIFR5cG8sIGV4dHJhIHF1b3RhdGlvbiBtYXJrLgoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM3OjA1CiAgICAtIChUT0RPKSBFeHRyYSBtaWIgcGFyc2luZyBpZGVhcyBhZGRlZC4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNzozNgogICAgLSAoZWNlLW1pYi5kZWYpOiAgY29tbWFzIG91dCBvZiBwbGFjZS4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxNjo1NTo1MQogICAgLSAoc25tcF9hcGkuYyk6IEZpeGVkIGEgZ2NjL0ZyZWVCU0Qgb3B0aW1pemF0aW9uIGJ1ZyAoc3R1cGlkIGNvbXBpbGVyKQoKd2hhcmRha2UgMjYgQXVnIDk2IDE2OjU4OjAzCiAgICAtIChldmVudC5jLCBrZXJuZWwuYywgcm91dGVfd3JpdGUuYyk6IEZyZWVCU0QgbW9kaWZpY2F0aW9ucwoKd2hhcmRha2UgMjcgQXVnIDk2IDA4OjQ2OjQzCiAgICAtIChleHRlbnNpYmxlLmMpOiAgRnJlZUJTRCBjaGFuZ2VzIGFuZCB1c2UgZ2V0bG9hZGF2ZyBpZiBhdmFpbGFibGUuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDg6NDc6NTcKICAgIC0gKHNubXB0cmFwZC5jKTogRml4IGJ5dGUgb3JkZXIgcHJvYmxlbSAoY29udmVydCB0byBuZXR3b3JrIGJlZm9yZSBzZW5kaW5nKS4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwOTowMToxMAogICAgLSAoc25tcHRyYXAuYyk6CiAgICAgIC0gRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAgICAtIG1vcmUgYXV0b2NvbmYgY29tcGxldGU6IHBhdGhzIHRvIGxpYnJhcmllcyBhbmQga2VybmVsIGxvY2F0aW9uLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA5OjM4OjMzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgoKd2hhcmRha2UgMjcgQXVnIDk2IDEwOjAwOjE1CiAgICAtIChzbm1wX3ZhcnMuYyk6IE1vcmUgd2FycGVkIEZyZWVCU0QgY2hhbmdlcwoKd2hhcmRha2UgMjcgQXVnIDk2IDEwOjA0OjU2CiAgICAtIChhdXRvY29uZiopOgogICAgICAtIEZyZWVCU0QgYWRkaXRpb25zLgogICAgICAtIE5ldyBrZXJuZWwgbG9jYXRpb246ICAva2VybmVsIChpY2spLgogICAgICAtIExvZyBmaWxlIGRlZmF1bHQgaW50ZWxsaWdlbnRseSBjaGVja3MgZm9yIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KICAgICAgLSBDaGVja3MgZm9yIGdldGxvYWRhdmcoKS4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNDo0MjoyMAogICAgLSAoZXh0ZW5zaWJsZS8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gY2xlYW5lZCB1cCBnY2Mgd2FybmluZ3MuCiAgICAgIC0gZml4ZWQgYSBzcGVsbGluZyBlcnJvci4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNDo1OTo1NQogICAgLSAoYXBwcy8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gc2V0IGV4aXQgY29kZXMgb2YgMCBmb3IgYWxsIGFwcHMuCiAgICAgIC0gUmVtb3ZlZCBTVlI0ICNpZmRlZnMuCiAgICAgIC0gR3JlYXRseSBpbXByb3ZlZCBzbm1wdHJhcC4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowMzoxMgogICAgLSAobWFuL3NubXB0cmFwLjEpOiAgYWRkZWQgYnkgTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNjoyMQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHVjaGFyKHMpIGNhbid0IGJlIGxlc3MgdGhhbiAwLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA2OjUwCiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBwcm90b3R5cGVzIGZvciBnY2Mgd2FybmluZ3MKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNzo1NgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIHNubXB0cmFuc2xhdGUgYW5kIG90aGVyIGFwcHMgdGhhdCBuZWVkIGl0LgoKd2hhcmRha2UgMjkgQXVnIDk2IDE1OjA4OjI4CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIGdjYyB3YXJuaW5ncyBOVUxMIC0+IDAKCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTo1ODoxMAogICAgLSAoc25tcHN0YXR1cy5jKTogUGF0Y2ggZnJvbSBUcmV2b3IgQm91cmdldCA8dGJvdXJnZXRAcXVhbGNvbW0uY29tPgogICAgICAtIG1hbGxvYyBzeXNkZXNjIGluc3RlYWQgb2YgYXNzdW1pbmcgPCAxMjggYnl0ZXMuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6MDM6NDQKICAgIC0gKHNubXB3YWxrLmMpOiBSZW1vdmVkIFNWUjQgaWZkZWZzCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6MjI6MjUKICAgIC0gKGF1dG9jb25mKiwgc25tcF92YXJzLmMpOiBSZW1vdmVkIHNvbWUgc29sYXJpcyBpZmRlZnMuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTY6Mjk6MTAKICAgIC0gQ2hhbmdlZCBteSBlbWFpbCBhZGRyZXNzIHRvIG15IG5ldyBvbmUuCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjM6MDUKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSByZW1vdmVkIC1YcyBmbGFnIGZvciBnY2Mgb24gc29sYXJpcy4KICAgICAgLSBsb2dmaWxlIGNoZWNrcyBmb3IgZXhpc3RhbmNlIG9mIC92YXIvbG9nIGFuZCAvdXNyL2FkbS4KCndoYXJkYWtlIDMwIEF1ZyA5NiAwOToyMzo0MgogICAgLSAoc25tcHRyYXAuYyk6IHBhdGNoIHNjcmV3ZWQgdXAuCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjQ6MzEKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiAgQWRkZWQga2VybmVsX3N1bm9zNS5vIHRvIHNubXB0cmFwIGZvciBnZXRLc3RhdC4KCQp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MzQ6MDkKICAgIC0gKE5FV1MsIENoYW5nZUxvZyk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKCndoYXJkYWtlIDMwIEF1ZyA5NiAwOTozNDo0OAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMC4xICkKCndoYXJkYWtlIDMwIEF1ZyA5NiAxMDoxNToxOAogICAgLSAoUkVBRE1FKTogVXBkYXRlZCBmb3IgMy4xLjAuMQoKd2hhcmRha2UgMzAgQXVnIDk2IDExOjQ5OjM4CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbWFsbG9jIHByb3RvdHlwZSBkdWUgdG8gY29uZmxpY3Rpb25zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMC43LjIgLT4gVjMuMQoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM0OjAzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgICAtIEluY2x1ZGVkIGFub3RoZXIgaWZkZWYgdG8gZW5zdXJlIG5vICNkZWZpbmUgbG9vcHMgb2NjdXIgd2l0aCBzdHIvaW5kZXggZm5zLgoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM1OjI3CiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLHNubXBfdmFycy5jKQogICAgICAtIENoYW5nZWQgdGhlIGludGVyZmFjZSBjb3VudGVyIHRvIGEgc2hvcnQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzIChidXMgZXJyKQogICAgICAtIFVuZGVmZWQgYSBmdW5jdGlvbiB0aGF0IGlzIG5ldmVyIHVzZWQuCgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6Mzc6MTcKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKSBTb2xhcmlzIGZpeCBmb3IgaW50ZXJmYWNlcy4KICAgICAgLSBGcm9tIERhbiBBLiBEaWNrZXkgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CgpoYXJkYWtlciAgMyBNYXkgOTYgMTQ6NDA6MTgKICAgIC0gKGFwcHMvc25tcHRyYXAuYykgQWRkZWQgI2luY2x1ZGU8c3lzL3NvY2tpby5oPgoKaGFyZGFrZXIgIDkgTWF5IDk2IDEzOjI0OjAwCiAgICAtIChhcHBzL3NubXBzZXQuYykgQWRkZWQgJy4nIGFzIGEgZGVsaW1pdGVyIGZvciBkZWNpbWFsIGVuY29kZWQgc3RyaW5ncy4KCmhhcmRha2VyICA5IE1heSA5NiAxMzoyNzo0MAogICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KCmhhcmRha2VyICA5IE1heSA5NiAxMzozMzoxMgogICAgLSAoYWNjb25maWcuaCxhZ2VudC97TWFrZWZpbGUsc25tcF92YXJzLmN9LGFnZW50L2V4dGVuc2libGUvbWFueSk6CiAgICAgIC0gQWRkZWQgc3VwcG9ydCBmb3IgcGFzc3RocnUgbWlicy4gIFRvdGFsIGNvbnRyb2wgaXMgaGFuZGVkIHRvIGV4ZWMncy4KCmhhcmRha2VyICA5IE1heSA5NiAxNjoxNDoyOAogICAgLSAoY29uZmlndXJlLmluKTogU29sYXJpcyBzcGVjaWZpYyBjcHAgZmxhZ3MgYWRkZWQgZm9yIFNVTnNwcm8ncyBjcHAuCiAgICAtIChhZ2VudC97c25tcF92YXJzLHNubXBkfS5jLGFnZW50L2V4dGVuc2libGUve2V4dGVuc2libGUsbWlzYyxwYXNzfS5jLAogICAgICAgc25tcGxpYi97bWliLHNubXBfY2xpZW50fS5jKToKICAgICAgLSBDbGVhbmVkIHVwIHByb3RvdHlwZXMgdG8gbWF0Y2ggbW9yZSBjYXJlZnVsbHkgKHdpdGggU29sYXJpcydzIHNwcm8gY2MpLgoKaGFyZGFrZXIgMTAgTWF5IDk2IDEwOjI3OjE0CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBIHBhdGNoIHRvIGZpeCBhIHZpcnR1YWwgaW50ZXJmYWNlIHByb2JsZW0uCiAgICAgIC0gcGF0Y2ggc3VwcGxpZWQgYnkgIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgoKaGFyZGFrZXIgMTAgTWF5IDk2IDE4OjE2OjU3CiAgICAtIChtYW55KTogTWVyZWdlZCBiYWdnZXNlbi0zLTAtNy0yIGJyYW5jaCBpbnRvIG1haW4gdHJ1bmsuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTY6NDUKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKTogZXhlYyBOYW1lcyB3ZXJlIGdldHRpbmcgaW5jbHVkZWQgaW4gdGhlIGNvbW1hbmQuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTc6NDMKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9ycyBiZWZvcmUgcmUtc3RhcnRpbmcgYWdlbnQuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTg6NDQKICAgIC0gKGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKToKICAgICAgLSBCdWcgZml4OiBHTE9CQUxTRUNVUklUWSBidWc6ICBzYXZlIHJpZ2h0bW9zdCB0d28gYml0cyBpbiBhY2wuCgpoYXJkYWtlciAxMyBNYXkgOTYgMTU6NTk6MzAKICAgIC0gKHNubXBsaWIvc25tcF9pbXBsLmgpOiBDaGFuZ2UgUldSSVRFIHRvIGluY2x1ZGUgV3JpdGUgZm9yIFYyIGJpdHMuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDg6NTk6NTEKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcGFzcy5jKSBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gSW1wbGVtZW50ZWQgbWlzc2luZyBwYXJ0cyBvZiBpbnRlcmZhY2UgYWRkcmVzcyBhbmQgbmV0d29yayBvdXRwdXQgKC1pKQoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjAyOjI0CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIFBhdGNoIGZyb20gIkRhbiBBLiBEaWNrZXkiIDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAgICAtIEJldHRlciBjYWNoaW5nIGFsZ29yaXRobSBmb3IgaW1wcm92ZWQgc3BlZWQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6MDU6NDkKICAgIC0gKCovLmN2c2lnbm9yZSkgaWdub3JlIGZpbGUgdXBkYXRlLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA2OjQ5CiAgICAtIChNYWtlZmlsZS5pbixzZWRzY3JpcHQuaW4pIEFkZGVkIFBSRUZJWCB0byB0aGUgc2Vkc2NyaXB0LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA3OjM1CiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50ZWQgcGFzcyB0aHJ1IG1pYnMuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6Mjk6MjEKICAgIC0gKENPUFlJTkcsIFJFQURNRSwgVE9ETykgUmVsZWFzZSBkb2NzIHVwZGF0ZWQuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6NTA6MTUKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgcGF0Y2ggbWlzdGFrZS4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MToxMgogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9yZWFkX2NvbmZpZy5jKTogYW5zaSBzZW1hbnRpYyBmaXggZm9yICc8Jy4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTo1MTozNwogICAgdmVyc2lvbiB0YWcgKCAzLjEuQTEgKQoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjAwOjU3CiAgICAtIChJTlNUQUxMKSBtYWtlIGluc3RhbGwgYXMgcm9vdC4KCmhhcmRha2VyIDE1IE1heSA5NiAxMjowMzo1NAogICAgLSAoUkVBRE1FKSBBZGRlZCBhIG5vdGUgKHBvaW50ZXIgdG8gZG9jcykgb24gdGhlIGFnZW50J3MgZXh0ZW5zaWJsaXR5LgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjIzOjQwCiAgICAtIChhcHBzL3NubXBuZXRzdGF0L2lmLmMpIHJlbW92ZWQgJiBpbiBmcm9udCBvZiBhcnJheSBwYXNzZWQgYXMgYXJnLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDEyOjM1OjE2CiAgICAtIChzZWRzY3JpcHQuaW4pIEZpeGVkIGEgaG9ycmlibGUgdHlwby4gIFAgLT4gUFJFRklYCgpoYXJkYWtlciAyMiBNYXkgOTYgMDg6NTA6MjgKICAgIC0gKG1hbi9NYWtlZmlsZS5pbikgVXBkYXRlZCB0aGUgd2F5IHNlZHNjcmlwdCBpcyB1c2VkLgoKaGFyZGFrZXIgMjIgTWF5IDk2IDA4OjUxOjAxCiAgICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZ3VyZSwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IEF1dG9jb25mLTIuMTAKCmhhcmRha2VyIDIyIE1heSA5NiAxMjo1MDoyNAogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jLCBzbm1wX3ZhcnMuYywKICAgICAgIGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jLHJlYWRjb25maWcuYyxzbm1wX3ZhcnMuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgICAtIGZpbmFsbHkgbmFpbGVkIHRoYXQgbWlzc2luZyBpbml0aWFsaXphdGlvbiB0aGF0IGdhdmUgcHJvYmxlbXMKICAgICAgICAgIHdpdGggdGhlIEFUIHN1YnRyZWUKICAgICAgICAtIEkgYWxzbyBpbXBsZW1lbnRlZCB0aGUgZGlzayBwYXJ0IG9mIHRoZSBleHRlbnNpYmlsaXR5IGluIHRoZQogICAgICAgICAgYXR0YWNoZWQgcGF0Y2guCgpoYXJkYWtlciAyMiBNYXkgOTYgMTI6NTU6MzMKICAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSByZXdvcmtlZCB0aGUgd2F5IHNubXBuZXRzdGF0IC1pIHdvcmtzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjQzOjQ5CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbid0IGRlZmluZSByYW5kb20gaWYgaXQgYWxyZWFkeSBleGlzdHMuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDQ6MTUKICAgIC0gKGV4dGVuc2libGUuYyk6ICBBZGRlZCBhIGRpc2sgd2FybmluZyB0byBzdGRlcnIuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NDQ6MzkKICAgIC0gKGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmMpOiByZW1vdmVkIE5VTEwgZGVmaW5lcy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo1Njo0MgogICAgLSAoaWYuYyk6IHR5cGUgY2FzdGluZyBidWdzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE2OjI4OjA4CiAgICAtIChhY2wuYywgcGFydHkuYyk6IGluY2x1ZGUgc3RkaW8uaAoKaGFyZGFrZXIgMjMgTWF5IDk2IDE3OjA5OjI0CiAgICAtIChjb25maWcqLCBleHRlbnNpYmxlLmMpOiBmaXhlZCBkaXNrIGNoZWNrcyBvbiBTb2xhcmlzIGFuZCBhbHBoYSdzCiAgICAgIC0gdXNlIHN0YXR2ZnMgb3ZlciBmc3RhYiBpZiBib3RoIHByZXNlbnQuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTc6NDg6MDkKICAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgZ2V0bW50ZW50LgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEyOjIzOjUyCiAgICAtIChzbm1wbGliL3BhcnNlLmMpOiAgcGFyc2luZyBmaXhlcyBmcm9tIE1pa2UgUGVyaWsgPG1pa2VwQGNydC5jb20+CgpoYXJkYWtlciAyNCBNYXkgOTYgMTI6Mzk6NTEKICAgIC0gKFJFQURNRSk6IEFkZGVkIGEgdGhhbmtzIHNlY3Rpb24uCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDg6MjgKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBleGFtcGxlIGZpbGUgY2hhbmdlcy4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzowOTowMgogICAgLSAoY29uZmlnKik6ICBDaGVjayBmb3Igc3lzL21udHRhYi5oCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDk6NTIKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBpZmRlZiBjbGVhbnVwCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MTA6MzQKICAgIC0gKHBhcnNlLmMpOiBkZWNsYXJhdGlvbnMgY2xlYW51cAoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjEzOjIxCiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogIG5vdGUgb24gY3JlYXRpbmcgY29tbWVudHMgYWRkZWQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6Mzg6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiAjaWZkZWYgdHlwbwoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjU0OjI1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6ICBkZWZpbmUgbWVtbW92ZSBpZiBub3QgZGVmaW5lZCBhbmQgbWVtY3B5IGlzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjU1OjE0CiAgICAtIChpZi5jLCByb3V0ZS5jKTogY2FzdCByZXR1cm5zIGZyb20gaW5kZXggdG8gY2hhciAqLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE0OjAyOjUzCiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIG1lbW1vdmUgYmVmb3JlIHlvdSBkZWZpbmUgaXQuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTQ6NTM6MjAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBwcmludGYgLT4gRE9ERUJVRyBjaGVjawoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI4OjQxCiAgICAtIChhY2Njb25maWcuaCwgY29uZmlnLmguaW4pOiAjaWZkZWYgdHlwb3MKCmhhcmRha2VyIDI0IE1heSA5NiAxNToyOToxMwogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIHNvbWUgaWZkZWYgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE1OjI5OjI5CiAgICAtIChzbm1wX3ZhcnMuaCk6IHJlb3JnYW5pemVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC43LjEgLT4gVjMuMC43LjIKCk5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+IDEgTWF5IDk2IDEyOjM3OjM1CiAgICAtIChtYW55KSBGaXhlcyBmb3IgU29sYXJpcyAoMi41KSBzdWJtaXR0ZWQgYnkKICAgICAgICAgICAgIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgICJTb21lIGFyZSBteSBvd24sIG90aGVycyBhcmUgZnJvbSBZdXJpIFJhYm92ZXIgd2hvIG9yaWdpbmFsbHkKICAgICAgICAgY3JlYXRlZCB0aGUgcGF0Y2guIFNvbWUgb2YgdGhpcyBpcyB0aGVyZSB0byBlbGltaW5hdGUgdGhlCiAgICAgICAgIGRlcGVuZGVuY3kgb24gdGhlIHVjYmxpYiBjb21wYXRpYmlsaXR5IHN0dWZmLCBzb21lIGlzICJjb3NtZXRpYyIsCiAgICAgICAgIGJ1dCBpdCBhbHNvIGZpeGVzIGEgc2VyaW91cyBwcm9ibGVtIGluIHRoZSBhZ2VudCwgd2hlcmUgd2Fsa2luZwogICAgICAgICB0aGUgbWliIHRyZWUgY2FuIGxvb3AgZW5kbGVzc2x5IGlmIHlvdSBoYXZlIG11bHRpcGxlIG5ldHdvcmsKICAgICAgICAgaW50ZXJmYWNlcy4iCgpoYXJkYWtlciAgMSBNYXkgOTYgMTM6NTQ6MTgKICAgIC0gKGNvbmZpZ3VyZSosIGFnZW50L2V4dGVuc2libGUve3JlYWRfY29uZmlnLGV4dGVuaXNibGV9LmMpOgogICAgICAtIGNvbmZpZ3VyaWZpZWQgKG5ldyB3b3JkKSBzb21lIG9mIE5pZWxzJyBjaGFuZ2VzIGFuZCB0aGUgYmNvcHkvbWVtbW92ZSBzdHVmZi4KCmhhcmRha2VyICAxIE1heSA5NiAxMzo1NToxNgogICAgLSAobWFuL3NubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWYpIC5DIC0+IC5CLCB0byBpbmNyZWFzZSBucm9mZiBwb3J0YWJpbGl0eS4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNToyMwogICAgLSAoYWdlbnQvcm91dGVfd3JpdGUuYyxhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgIC0gbmV0YnNkMS4xQiBzcGVjaWZpYyBmaXhlczogY2xhc2ggd2l0aCBzeXNfZXJybGlzdCBhbmQgcnRfZHN0IGRlZmluZXMuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6Mzc6MDkKICAgIC0gKGxvY2FsL3NubXBjaGVjaykgVGstYjEwIGZpeGVzLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM3OjI1CiAgICAtIChzZWRzY3JpcHQuaW4pIGZvcmdvdCBORVRCU0QxSUQgZGVmLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjU2OjIxCiAgICAtIChhY2NvbmZpZy5oLGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oKTogcmVtb3ZlZCBjb21lbnRzL3NwYWNlcyBmcm9tIGRlZmluZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC43IC0+IFYzLjAuNy4xCgpoYXJkYWtlciAyNSBBcHIgOTYgMTI6MTg6NDMKICAgIC0gKENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW4pIERlZmluZWQgREVCVUdQIGlmIERPREVCVUcgaXMgbm90IGRlZmluZWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiAgVjMuMC42IC0+IFYzLjAuNwoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjExOjM5CiAgICAtIChsb2NhbC9zbm1wY2hlY2suZGVmKSBUay1iOCA9PiBUay1iMTAgY2hhbmdlcwoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjEyOjIyCiAgICAtIChjb25maWd1cmUpIGF1dG9jb25mLTIuNyAtPiBhdXRvY29uZi0yLjkKCmhhcmRha2VyICA1IEFwciA5NiAxNjoxNToxMQogICAgLSAoc25tcGxpYi9hc24xLmMpIHJlbW92ZWQgYSByZXF1aXJlZCAndW5peCcgZGVmaW5lIHN1cnJvdW5kaW5nIGEgaGVhZGVyIGZpbGUuCgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTk6MzUKICAgIC0gKG1hbi9NYWtlZmlsZS5pbikgQWRkZWQgYSAnY2xlYW4nIGRlZmluaXRpb24gdG8gdGhlIE1ha2VmaWxlLgoKaGFyZGFrZXIgMTIgQXByIDk2IDE0OjUxOjA4CiAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKCmhhcmRha2VyIDEyIEFwciA5NiAxNDo1MTo0MgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUuYykKICAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCgpoYXJkYWtlciAxMiBBcHIgOTYgMTY6NDk6MjMKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpCiAgICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAogICAgLSAobWFueSkgQWRkZWQgc3VwcG9ydCBmb3IgaHBwYTEuMS1ocC1ocHV4MTAuMDEKICAgICAgLSB0b3RhbGx5ISByZWRpZCB0aGUgcm91dGluZyB0YWJsZXMgZm9yIEJTRCA0LjQgZGVyaXZlZCBzeXN0ZW1zCiAgICAgICAgKGFscGhhLCBocHV4MTAuMDErLCBuZXRic2QpIHNpbmNlIGhwdXgxMCBkb2Vzbid0IGhhdmUgNC4zIGNvbXBhdCBzdHJ1Y3RzLgogICAgLSAoZWNlLW1pYi5kZWYpIENhcGl0YWxpemF0aW9uIHByb2JsZW0uCiAgICAtIChjb25maWd1cmUuaW4pCiAgICAgIC0gQ2xlYW5lZCB1cCBrZXJuZWwgY2hlY2tpbmcKICAgICAgLSBTdGFydGVkIHVzaW5nIGEgYXV0b2NvbmYgMi44IGZlYXR1cmUgdG8gY2hlY2sgZm9yIGNhY2hlIHZhbHVlcy4KCmhhcmRha2VyIDE1IEFwciA5NiAxMjo1Mzo0MAogICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0tZW5hYmxlLWRlYnVnZ2luZy4gIFR1cm5zIG9uIGRlYnVnZ2luZy4KICAgIC0gKGNvbmZpZ3VyZSkgRml4ZXMgZm9yIHR5cGUgY2hlY2tpbmcgb2YgNC40IHJ0ZW50cnkgc3RydWN0dXJlcyBvbiBhbHBoYXMuCgpoYXJkYWtlciAxNSBBcHIgOTYgMTQ6MTE6MzkKICAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLXdpdGgtZGVmYXVsdHMuICBEb24ndCBwcm9tcHQgdGhlIHVzZXIuCiAgICAtIChjb25maWd1cmUpIGJ1ZyBmaXhlczogIHdhc24ndCBxdW90aW5nIGtlcm5lbCBhbmQgZG1lbSBsb2NhdGlvbi4KICAgIC0gKGNvbmZpZ3VyZSkgZ2NjIGNwcCByZXF1aXJlcyAteCBjIHRvIGFjY2VwdCAuaW4gZmlsZSBzdWZmaXguCgpoYXJkYWtlciAxNSBBcHIgOTYgMTQ6MzY6NDgKICAgIC0gKGFnZW50L3NubXBkLmMpIEZpeGVkIDIgZ2V0dGltZW9mZGF5IGNhbGxzIC0tIGFkZGVkIGEgTlVMTCB0aW1lem9uZSBwdHIuCgpoYXJkYWtlciAxNiBBcHIgOTYgMDk6NDc6MTgKICAgIC0gKGNvbmZpZ3VyZSkgSSBmb3Jnb3QgRE1FTV9MT0MgbmVlZHMgdG8gYmUgI3VuZGVmJ2VkIGlmIG5vdCBmb3VuZAoKaGFyZGFrZXIgMTYgQXByIDk2IDA5OjQ4OjA2CiAgICAtIChhZ2VudC97cm91dGVfd3JpdGUuYyxzbm1wX3Zhcl9yb3V0ZS5jfSkgT1NGMy4yIHNwZWNpZmljIGNoYW5nZXMuICBhcmcuCgpoYXJkYWtlciAxNiBBcHIgOTYgMTg6MDg6MjkKICAgIC0gKHNubXBkLmMpIEFkZGVkIGZmbHVzaCBjYWxscyBhZnRlciBwcmludGluZyBwYWNrZXQgZHVtcHMKCmhhcmRha2VyIDI0IEFwciA5NiAwODozNjowNgogICAgLSAoY29uZmlndXJlLmluKSBNb3JlIGhlYWRlciBmaWxlIGNoZWNrcyAodm0vdm0uaCAoKyBvdGhlcnMpIGFuZCB1ZnMvZmZzL2ZzLmgpCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6MzY6NTAKICAgIC0gKGFnZW50L2V4dGVuc2libGUvZXh0ZW5zaWJsZS5jKSBJbmNsdWRlIHVmcy9mZnMvZnMuaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6Mzc6MTMKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKSBGb3Jnb3QgYSBxdW90ZS4gICh3aHkgaGFzbid0IHRoaXMgYXBwZWFyZWQgYmVmb3JlPykKCmhhcmRha2VyIDI0IEFwciA5NiAwODozODoxOAogICAgLSAoYWdlbnQvYWxhcm0uYykgRml4ZWQgc29tZSBkZWZpbmUgbmFtaW5nIGNvbmZsaWN0cyBmb3IgTmV0QlNEICh0aW1lcmFkZCgpKS4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo0NDo0NQogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykgbW9yZSBjb25maWcgZmlsZXMgZm9yIE5ldEJTRC4KICAgIC0gKGFnZW50L3NubXBfdmFycy5jKSByZW1vdmVkIGFycCB0YWJsZXMgZm9yIG5ldGJzZC4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo1NDowNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGVjZS1taWIuZGVmLCBvdi8qKSBBZGRlZCBOZXRCU0QgdG8gc3lzLU9JRCByZXR1cm5lZC4KCmhhcmRha2VyIDI0IEFwciA5NiAwODo1NDozOQogICAgLSAobWFuLy5jdnNpZ25vcmUpIGFkZGVkIHNubXBkLjEKCmhhcmRha2VyIDI0IEFwciA5NiAwOTowMDoyMQogICAgLSAoUkVBRE1FKSB1cGRhdGVkCgpoYXJkYWtlciAyNCBBcHIgOTYgMDk6MDc6NDAKICAgIC0gKElOU1RBTEwpIHVwZGF0ZWQKCmhhcmRha2VyIDI0IEFwciA5NiAxMTo0Njo1MgogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYykgQ2hlY2tlZCBmb3Igc3lzL21idWYgZm9yIGRldGVybWluaW5nIHJ0ZW50cnkucnRfbmV4dAoKaGFyZGFrZXIgMjQgQXByIDk2IDExOjU1OjEwCiAgICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBAIyQlaW5nIHNvbGFyaXMKCmhhcmRha2VyIDI0IEFwciA5NiAxMzoyNTo0OAogICAgLSAoY29uZmlnKixhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBjb25maWcgY2hlY2tpbmcgZm9yIHJ0ZW50cnkucnRfbmV4dAoKaGFyZGFrZXIgMjQgQXByIDk2IDE0OjM3OjQ3CiAgICAtIChsb2NhbC9zbm1wY2hlY2spIG5ldyBwcmVmOiAgZG9uJ3QgcG9wIGZvcndhcmQgb24gbmV3IHByb2JsZW1zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogIFYzLjAuNSAtPiBWMy4wLjYKCmhhcmRha2VyIDI0IEphbiA5NiAxNjozMToyMAogICAgLSBSZXR1cm5pbmcgRVhURU5TSUJMRURPVE1JQi5BR0VOVElEIGFzIHRoZSBuZXcgb2JqZWN0aWQKCkRhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+IDI0IEphbiA5NiAxNjozMzowOAogICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+CiAgICAgIC0gZml4ZXMgLXAgUE9SVCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGFjdHVhbGx5IHVzZSB0aGUgcmVxdWVzdGVkIHBvcnQuCiAgICAgIC0gZml4ZXMgdGhlIC1sIExPR0ZJTEUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgaXQuCgpoYXJkYWtlciAyNCBKYW4gOTYgMTY6MzY6NTEKICAgIC0gKE1ha2VmaWxlLCBjb25maWcuaCwgZWNlLW1pYi4qLCBzZWRzY3JpcHQuaW4pCiAgICAgIC0gY2hhbmdlZCB0aGUgd2F5IG1pYi50eHQgaXMgYnVpbHQKICAgICAgICAtIHNwbGl0IHRoZSBjb21tYW5kIGludG8gdHdvIHBhcnRzIHRvIGJ1aWxkIGEgZWNlLW1pYi50eHQgYXMgd2VsbAogICAgICAtIGFkZGVkIGEgbmV3IE9iamVjdElEIGFkZGl0aW9uIHRvIGVjZS1taWIudHh0CiAgICAgIC0gREVGTUFYTE9BREFWRSAtPiBEUkVNT1ZFTUVFRk1BWExPQURBVkUKCmhhcmRha2VyIDI2IEphbiA5NiAwODoyNTowOAogICAgLSBUaGUgU29sYXJpcyAyLjUga2VybmVsIGhhcyBtb3ZlZCB0byAva2VybmVsL2dlbnVuaXgKICAgICAgLSBUaGFua3MgZ29lcyB0byBwb21taWVyQHZvbG5heS5zdG9ydGVrLmNvbSAoVmluY2VudCBQb21taWVyIChUb3Vsb3VzZSkpCgpoYXJkYWtlciAgOSBGZWIgOTYgMTc6MDU6MDAKICAgIC0gQmV0dGVyIE9wZW5WaWV3IHN1cHBvcnQKICAgICAgLSBSZXR1cm5zIGRpZmZlcmVudCBzeXNPYmplY3RJRCdzIGZvciBlYWNoIGFyY2hpdGVjdHVyZQogICAgICAtIEFkZGVkIGEgJ292JyBkaXJlY3RvcnkgZm9yIE9wZW5WaWV3IHN1cHBvcnQgZmlsZXMKICAgICAgICAtIGN1cnJlbnRseSBjb250YWlucyBuZWNlc3NhcnkgZmlsZXMgdG8gc3VwcG9ydCBhIFVDRCBiaXRtYXAgZmlsZQogICAgICAgICAgZm9yIGhvc3RzIHVzaW5nIHRoZSB1Y2Qtc25tcCBhZ2VudC4gIFNlZSB0aGUgb3YvUkVBRE1FIGZpbGUgZm9yIGRldGFpbHMuCgpoYXJkYWtlciAxMiBGZWIgOTYgMTQ6Mjg6MjcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oaW4sIGFnZW50L2V4dGVuc2libGUvbWlzYy5jKQogICAgICAtIFRoZSBhZ2VudCBub3cgc2V0cyBhbiBhbGFybSB0byByZXN0YXJ0IHJhdGhlciB0aGFuIGRvaW5nIGF0IHRoZQogICAgICAgIHNubXBzZXQgdGltZSB0byByZXR1cm4gYSB2YWx1ZSB0byB0aGUgc25tcHNldCByZXF1ZXN0LgoKaGFyZGFrZXIgMTYgRmViIDk2IDE2OjMyOjQxCiAgICAtIChhY2NvbmZpZy5oLGNvbmZpZy5oLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykKICAgICAgLSAuY29uZiBmaWxlIGFkZGl0aW9uOiAgImNvbW11bml0eSBOIFNUUklORyIgdG8gY2hhbmdlIGNvbW11bml0eSBuYW1lcwoKaGFyZGFrZXIgMjEgRmViIDk2IDE2OjEyOjM5CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZC5jb25mLjUuZGVmKQogICAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgc25tcGQuY29uZiBtYW51YWwgcGFnZS4KCmhhcmRha2VyIDIxIEZlYiA5NiAxNjoxNTozNgogICAgLSAoYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jKQogICAgICAtIEFkZGVkIGFwcHMvc25tcHRyYXAKICAgICAgICAtIGNvZGUgdGFrZW4gZnJvbSAyLjAuMSBhbmQgc3VibWl0dGVkIHRvIG1lIGJ5IGZyYW5jdXNAbWV0c255LmRlbHBoaS5jb20uCiAgICAgICAgLSBJIGhhdmUgeWV0IHRvIHRlc3QgaXQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMDk6MDk6MTUKICAgIC0gKGFnZW50L3NubXBkLmMpIEFkZGVkIE9fVFJVTkMgdG8gdGhlIGxvZ2ZpbGUgb3BlbigpIGNhbGwuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTA6MDY6MjQKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYykgc21hbGwgYnVncyBmaXhlZAogICAgICAtIGRpc2sgZW50cmllcyB3aXRoIG5vIHNpemUgc3BlY2lmaWVkIGNhdXNlZCBzZWctZmF1bHRzLgogICAgICAtIGJldHRlciB0eXBlIGNoZWNraW5nIG9uIE1JQiBmb3IgJ2V4ZWMgTUlCJyBlbnRyaWVzLgogICAgICAtIG1vcmUgZXJyb3IgbWVzc2FnZXMgYWRkZWQuCgpoYXJkYWtlciAgNiBNYXIgOTYgMTY6Mzg6MTYKICAgIC0gKGVjZS1taWIuZGVmKQogICAgICAtIENoYW5nZWQgY2FwaXRhbGl6YXRpb24gc2NoZW1lcyB0byBiZSBtb3N5IGNvbXBsaWFudC4KICAgICAgLSBNYWRlIHRoZSBtZW1vcnkgbWliIFNZTlRBWCBwb2ludCB0byB0aGUgTWVtb3J5IHNlcXVlbmNlIGxpa2UgaXQgc2hvdWxkLgoKaGFyZGFrZXIgIDYgTWFyIDk2IDE2OjU4OjExCiAgICAtIChzbm1wbGliL21pYi5jKSBwcmludGVkIHZhbHVlcyBmb3IgdGltZXRpY2tzIGFyZSBubyBsb25nZXIgbmVnYXRpdmUuCgpoYXJkYWtlciAgOCBNYXIgOTYgMTA6MzE6MzQKICAgIC0gKHNubXBsaWIvc25tcF9jbGllbnQuYykgQ2hlY2sgaWYgdmFyaWFibGUgY29udGVudCBpcyBOVUxMIGJlZm9yZSB1c2luZy4KCmhhcmRha2VyICA4IE1hciA5NiAxNjo1NjowOAogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9leGVjLmMpCiAgICAgICAtIHJlbG9jYXRhYmxlIGV4ZWMncyBmYWlsZWQgdG8gY2xvc2UgdGhlIGNhY2hlIGZpbGUuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTM6Mzc6MjUKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiBjb21tZW50ZWQgb3V0IG5saXN0IHdhcm5pbmdzLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjE3OjI2CiAgICAtIChtYW4ve01ha2VmaWxlLmluLHNubXBkLjEuZGVmLHNubXBkLmNvbmYuNS5kZWZ9LHZlcnNpb250YWcsc2Vkc2NyaXB0LmluKToKICAgICAgLSBjbGVhbmVkIHVwIGRvY3VtZW50YXRpb24gbW9yZSBhbmQgYWRkZWQgdGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSB0cmFpbGVycy4KCmhhcmRha2VyIDExIE1hciA5NiAxNToxNzo1NwogICAgLSAoUkVBRE1FKTogY2xlYW5lZCB1cCwgcmUtYXJyYW5nZWQsIHNob3J0ZW5lZCAoc2VjdGlvbnMgbW92ZWQgdG8gbWFuLyogZG9jcykuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6NDA6MTcKCiAgICAtIChSRUFETUUpOiBtb3JlIGNsZWFuIHVwIGFuZCBhZGRlZCByZWZlcmVuY2UgdG8gdGhlIHVjZC1zbm1wIG1haWxpbmcgbGlzdC4KCkdpb3Zhbm5pIFMuIE1hcnpvdCA8Z21hcnpvdEBiYXluZXR3b3Jrcy5jb20+IDExIE1hciA5NiAxNTo1NzoyMAoKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IGZpeGVkIGEgdGltZW91dCBidWcgY2F1c2VkIGJ5IGFyY2hpdGVjdHVyZXMKICAgICAgd2l0aCBhbiB1bnNpZ25lZCB0aW1ldmFsLnR2X3NlYyB2YWx1ZS4KICAgICAgLSBUaGFua3MgZ29lcyB0byBHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiBmb3IKCXRoZSBwYXRjaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC40CgpoYXJkYWtlciAxOSBKYW4gOTYgMTc6MzE6MTYKICAgIC0gKGNvbmZpZ3VyZSopCiAgICAgIC0gdXBkYXRlZCB0byBhdXRvY29uZiB2Mi43CiAgICAgIC0gSG9wZWZ1bGx5IG5vdyB1c2luZyBjb3JyZWN0ICdtYWtlJyBkZWZpbml0aW9ucwoKaGFyZGFrZXIgMTkgSmFuIDk2IDE3OjMyOjU3CiAgICAtIChhZ2VudC9leHRlbnNpYmxlLyouYykKICAgICAgLSBEZWNsYWlyZWQgbW9yZSBzdGF0aWMgdmFyaWFibGVzIChsb25nX3JldCkgdG8gZml4IHN1bjRzIGV4aXQgY29kZXMgKGFnYWluKS4KCmhhcmRha2VyIDIyIEphbiA5NiAxNjoyNzozMAogICAgLSAoYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgICAtIEFkZGVkIG5ldyBkZWZpbmVzIHRvIHR1cm4gb24vb2ZmIHNlY3Rpb25zIG9mIHRoZSBleHRlbnNpYmxlIG1pYi4KICAgICAgLSBUaGlzIGFsc28gZml4ZXMgdGhlIG1pYi50eHQgZmlsZSBkZWZpbml0aW9ucyBpZiBzb21ldGhpbmcgaXMgdHVybmVkIG9mZi4KICAgIC0gKE1ha2VmaWxlLmluKSByZW1vdmVkICR7c3JjZGlyfSBmcm9tIHRoZSBmcm9udCBvZiBzdGFtcC1oLmluCgpoYXJkYWtlciAyMiBKYW4gOTYgMTc6MTg6NTgKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKSBBZGRlZCBhIGNobW9kIHRvIG1ha2UgdGhlIHNubXBjaGVjayBzY3JpcHQgZXhlY3V0YWJsZQoKaGFyZGFrZXIgMjIgSmFuIDk2IDE3OjIzOjE3CiAgICAtIChsb2NhbC9zbm1wY2hlY2spCiAgICAgIC0gYWRkZWQgYWdlbnQgY29udHJvbHM6ICByZXN0YXJ0LCB1cGRhdGVjb25maWcsIGNsZWFyY2FjaGUuCiAgICAgIC0gcmVtb3ZlZCBhbiBvbGQgZGVidWdnaW5nIHByaW50Zi4KICAgICAgLSBjdHJsLWYgPT4gZml4YWxsLgogICAgICAtIEFkZGVkIGtleWJvYXJkIGFjY2VsZXJhdG9ycyB0byB0aGUgYXNzb2NpYXRlZCBtZW51IGl0ZW1zLgogICAgICAtIE1hZGUgaGlnaGxpZ2h0VGhpY2tuZXNzIGEgZ2xvYmFsIHBhcmFtZXRlciB2aWEgJHdpbmRvdy0+b3B0aW9uKCdhZGQnKS4KICAgICAgLSBBZGRlZCBhIGVudHJ5IGJveCB0byB0aGUgZXhlY3V0YWJsZSBjb21tYW5kcyB3aXRoIHRoZSBjb21tYW5kIHRvIHJ1bi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMwoKaGFyZGFrZXIgMjMgT2N0IDk1IDE2OjM3OjQzCiAgICAtIChleHRlbnNpYmxlLmMpIHN0b3BwZWQgcmVwb3J0aW5nIGFueXRoaW5nIGZvciB0aGUgZGlzayBtaWIgaWYgbm8KICAgICAgZGlza3Mgd2VyZSBkZWZpbmVkIGluIHRoZSBzbm1wZC5jb25mIGZpbGUuICBUaGlzIHdhcyBjYXVzaW5nIGFuCiAgICAgIGVycm9yIGluIHRoZSBhZ2VudCdzIGVycm9yIG1pYiB3aGVuIG5vIGRpc2tzIHdlcmUgZGVmaW5lZCBhbmQKICAgICAgc29tZW9uZSB3YWxrcyB0aGUgZGlzayBtaWIuCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDQ6NDcKICAgIC0gKFJFQURNRSkgQWRkZWQgcG9pbnRlciB0byB0aGlzIGZpbGUgdmlhIGZ0cAoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA1OjEyCiAgICAtIChUT0RPKSBGaW5kIGFuZCBmaXggbWVtb3J5IGxlYWsgc29tZXRpbWUKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNzo0NQogICAgLSAoY29uZmlndXJlLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgICAtIChjb25maWd1cmUuaW4pIE1vcmUgc29sYXJpcyBzcGVjaWZpY3M6ICAtRFNWUjQKICAgIC0gKGNvbmZpZ3VyZS5pbikgQ2FjaGVzIGluaXRpYWwgcHJvbXB0IGluIHRoZSBjb25maWd1cmUgc2NyaXB0IHNvIHlvdQogICAgICB3b24ndCBiZSBidWdnZWQgdHdpY2UgYnkgdGhlIGluaXRpYWwgcXVlc3Rpb24uCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDg6NDkKICAgIC0gKGNvbmZpZy5oLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDk6MzcKICAgIC0gKGFsbCBhdXRvY29uZiBidWlsdCBmaWxlcykgVXBkYXRlZCBldmVyeXRoaW5nIHRvIGF1dG9jb25mIDIuNQoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjEwOjQ5CiAgICAtICh0cmFwbm90aWYpIExvZ3Mgbm8tcmVzcG9uc2UgZXJyb3JzLgogICAgLSAodHJhcG5vdGlmKSBCZXR0ZXIgc3RyaW5nIGNoZWNraW5nIChxdW90ZXMgYWxsIHZhcmlhYmxlcyBub3cpCgpoYXJkYWtlciAgMSBEZWMgOTUgMTY6MjA6MTMKICAgIC0gbG9jYWwvc25tcGNoZWNrOiAgICAgICAqbmV3IGZlYXR1cmVzKgogICAgICAtIGhhbmRsZXMgZmFpbGVkIHNubXB3YWxrL2dldC9zZXRzIG11Y2ggbW9yZSBncmFjZWZ1bGx5IG5vdwogICAgICAtIG5ldyBwcmVmZXJlbmNlOiAgWW91IGNhbiBwaWNrIHdoYXQgdHlwZXMgb2YgcHJvYmxlbXMgdG8gY2hlY2sgZm9yCiAgICAgICAgLSAtZiBvbiB0aGUgY29tbWFuZCBsaW5lIG9ubHkgY2hlY2tzIGZvciBmaXhhYmxlIHByb2JsZW1zCiAgICAgIC0gbm8gbG9uZ2VyIHBpbmc6OmVjaG9zIGhvc3RzIGJlZm9yZSBjaGVja2luZyB0aGVtCiAgICAgICAgLSBpbnN0ZWFkIHJlbGllcyBvbiAnTm8gUmVzcG9uc2UnIHR5cGUgcmVwbGllcyBmcm9tIHNubXB3YWxrL2dldCB0bwogICAgICAgICAgZGV0ZXJtaW5lIGlmIGEgaG9zdCBpcyB1cC4KICAgICAgICAtIHBpbmcgdGhlIGhvc3QgaXMgc3RpbGwgYW4gb3B0aW9uICh0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUgYW5kIG1lbnVzKQogICAgICAtIGNvbnZlcnRlZCBmcm9tIFRrLWI0IHRvIFRrLWI4CiAgICAgIC0gQWRkZWQgYSBsb2dnaW5nIHdpbmRvdyBmb3IgZGVidWdnaW5nIGFuZCB0cmFja2luZyBvZiBhY3Rpb25zLgogICAgICAgIC0gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOiAgLVYgTlVNICBpbml0aWFsIGxvZyB2ZXJib3NpdHkgbGV2ZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1MICAgICAgc2hvdyB0aGUgbG9nIHdpbmRvdyBhdCBzdGFydHVwCiAgICAgIC0gTm93IHRyYW5zbGF0ZXMgbWliIG51bWJlcnMgaW50byBtb3JlIHJlYXNvbmFibGUgbmFtZXMKCmhhcmRha2VyICA1IERlYyA5NSAxNDo1NzoxNAogICAgLSAoY29uZmlndXJlKikgYWRkZWQgQUNfVFlQRV9QSURfVCB0byB0aGUgY29uZmlndXJlIGNoZWNrcwoKaGFyZGFrZXIgIDUgRGVjIDk1IDE1OjAxOjEwCiAgICAtIChzbm1wY2hlY2spCiAgICAgIC0gTmV3IGZsYWc6ICAtZCwgZG9uJ3Qgc3RhcnQgY2hlY2tpbmcgYW55dGhpbmcuICBKdXN0IGJyaW5nIHVwIGludGVyZmFjZS4KICAgICAgLSBjaGVjayBmb3IgYmxhbmsgb3V0cHV0IG9mIHNubXBnZXQgYmVmb3JlIHBhcnNpbmcgd2l0aCBzLy8vZwogICAgICAgIGNvbnN0cnVjdHMuCgpoYXJkYWtlciAgNSBEZWMgOTUgMTU6MDU6MjAKICAgIC0gKGFnZW50L2V4dGVuc2libGUpCiAgICAgIC0gQnVnIGZpeDogIGFscGhhcyBhbmQgc3Vub3NlcyB3ZXJlIHJlcG9ydGluZyBpbmNvcnJlY3QgZXh0ZW5zaWJsZQogICAgICAgIGV4aXQgY29kZXMuICAoeWV0IGFub3RoZXIgNjQvMzIgYml0IGJ1ZyBmb3VuZCkuCiAgICAgIC0gQnVnIGZpeDogYWdlbnQtdXBkYXRlLHJlc3RhcnQsIGFuZCBjYWNoZSBtaWIgZmx1c2ggZW50cmllcyB3ZXJlCiAgICAgICAgcmV0dXJuaW5nIHZhbHVlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzIHRvIHZhbHVlcy4KCmhhcmRha2VyIDEzIERlYyA5NSAxNToyNzoxOQogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9taXNjLmMpIGJ1ZyBmaXhlcyBmb3IgZXhlYyBpdGVtczoKICAgICAgLSBhIHNlY29uZCBzbm1wd2FsayBvZiB0aGUgZXhlYyBpdGVtIHdvdWxkIHJldHVybiB0aGUgb2xkIGNhY2hlCiAgICAgICAgZmlsZS4gIEZpeGVkIGJ5IHJlc2V0aW5nIHRoZSBsYXN0IGNhY2hldGltZSB0byAwIHRvIGFsd2F5cyByZXNjYW4KICAgICAgICBhZnRlciBmb3JrL3BpcGUvbWVtb3J5L2V0YyBlcnJvcnMuCiAgICAgIC0gTWFkZSBsYXN0cmVzdWx0IGEgc3RhdGljIHZhci4gIFdhcyByZXR1cm5pbmcgd3JvbmcgZXhpdCBjb2RlcwogICAgICAgIHVuZGVyLCBzdHJhbmdlbHkgZW5vdWdoLCBvbmx5IHN1bm9zLTQgbWFjaGluZXMuCgpoYXJkYWtlciAyMCBEZWMgOTUgMDk6NTM6MTAKICAgIC0gc25tcF9vcGVuIGNhbGxzIGdldHNlcnZieW5hbWUgb25seSBvbmNlIG5vdywgYXQgdGhlIHJlcXVlc3Qgb2YgR2FyeQogICAgICBIYXl3YXJkIDxnYWhAZGlyYWMuYmVsbGNvcmUuY29tPi4KCmhhcmRha2VyIDIwIERlYyA5NSAxNTo1NjoxNgogICAgLSBGb3VuZCBhbmQgZml4ZWQgYSBtZW1vcnkgbGVhayBpbiB0aGUgcm91dGluZyB0YWJsZSBtaWIuCgpoYXJkYWtlciAyOCBEZWMgOTUgMTA6MDE6MzUKICAgIC0gQWRkZWQgc2Vkc2NyaXB0IHRvIHRoZSAuY3ZzaWdub3JlIGZpbGUuCgpoYXJkYWtlciAyOCBEZWMgOTUgMTA6MjQ6MzcKICAgIC0gQWRkZWQgYSBzZWRzY3JpcHQgd2hpY2ggaXMgYnVpbHQgZnJvbSBjb25maWcuaCBhbmQgYWdlbnQvZXh0ZW5zaWJsZS9taWJkZWZzLmgKICAgICAgLSB1c2VkIHRvIGR5bmFtaWNhbGx5IGJ1aWxkIG1pYi50eHQgYW5kIGxvY2FsL3NubXBjaGVjay4KCmhhcmRha2VyIDI4IERlYyA5NSAxMjowNjo0OQogICAgLSBDcmVhdGVkIGEgRVhBTVBMRS5jb25mIGZpbGUgZm9yIGV4YW1wbGUgdXNhZ2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMi4xCgpoYXJkYWtlciAyOSBTZXAgOTUgMTM6NDM6NDkKICAgIC0gcG9ydGVkIHRvIEdOVSdzIGF1dG9jb25maWcyLjQKICAgICAgLSB0byBpbnN0YWxsLCB5b3UgbXVzdCBub3cgcnVuIC4vY29uZmlndXJlIGZpcnN0IHRvIGdlbmVyYXRlIHRoZQogICAgICAgIE1ha2VmaWxlcyBhbmQgY29uZmlnLmgKICAgICAgLSBhbG1vc3QgYWxsIG9mIHRoZSBjb2RlIGlzIG5vdyBkeW5hbWljYWxseSBjaGVja2VkIGZvciBwcm9ibGVtcwogICAgICAgIHJhdGhlciB0aGFuIGJlaW5nIGRlcGVuZGFudCBvbiBhcmNoaXRlY3R1cmUgbmFtZXMuCiAgICAtIHN5c3RlbSBuYW1lIG5vdyBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGF0IHJ1biB0aW1lIChmcm9tIHVuYW1lIC1uKQogICAgLSBjcmVhdGVkIGEgJ21ha2UgZGVwZW5kJyBjYWxsIChmaW5hbGx5KS4KICAgIC0gKGFnZW50L3NubXBfdmFycy5oKSBjaGFuZ2VkIFNZU05BTUUgZGVmaW5lIHRvIFNZU1RFTU5BTUUgZGVmaW5lIHRvCiAgICAgIGF2b2lkIGEgY29uZmxpY3Qgd2l0aCBhIHNvbGFyaXMgaGVhZGVyIGZpbGUuCiAgICAtIHByb3RlY3RpbmcgYmV0dGVyIGFnYWluc3QgaW5jbHVkZSBoZWFkZXIgZmlsZXMgdHdpY2UuCiAgICAtIE1vc3Qgb2YgcG9ydCB0byBTb2xhcmlzIDIuNCBmaW5pc2hlZC4gIFRoZSBrZXJuZWwgcmVhZHMgc3RpbGwgbmVlZCB3b3JrLgoKaGFyZGFrZXIgMjkgU2VwIDk1IDEzOjQ2OjQzCiAgICAtIChORVdTKSB1cGRhdGVkIHRoZSBuZXdzIGZpbGUuCgpoYXJkYWtlciAgMyBPY3QgOTUgMDk6MjQ6MDAKICAgIChhY2NvbmZpZy5oKSBNaW5vciBidWc6ICByZWN1cnNpdmUgY29tbWVudHMgbm90IGNvcnJlY3QgZm9yIGNvbXBpbGVycyAoQUlYKQoKaGFyZGFrZXIgIDMgT2N0IDk1IDA5OjQzOjU0CiAgICAodmVyc2lvbmluZm8uYykgQWRkZWQgMy0wLTMtQTEgdGFnCgpoYXJkYWtlciAgNCBPY3QgOTUgMTY6NTM6MzkKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA1IE9jdCA5NSAxNToyMzowNQogICAgLSBNb3JlIFNvbGFyaXMgcG9ydGluZy4KICAgICAgLSBNb3N0IG1pYklJIGVudHJpZXMgbm93IHdvcmsuCiAgICAgICAgIC0gSGF2ZW4ndCBjaGVja2VkIHJldHVybmVkIGluZm9ybWF0aW9uIGZvciBhY2N1cmFjeQogICAgICAtIHN5c1VwVGltZSBzdGlsbCBmYWlscy4KICAgICAgLSBjYyBhbmQgZ2NjIGJvdGggY29tcGlsZSBldmVyeXRoaW5nIG5vdy4KCmhhcmRha2VyICA1IE9jdCA5NSAxNTo0ODoyMwogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDYgT2N0IDk1IDExOjM3OjAwCiAgICAtIChSRUFETUUpIE1vdmVkIElOU1RBTExBVElPTiBpbnN0cnVjdGlvbnMgdG8gSU5TVEFMTAogICAgICAgICAgICAgICBDaGFuZ2VkIGxpc3Rpbmcgb2Ygc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMKICAgICAgICAgICAgICAgVXBkYXRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjI4OjQ4CiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6MzI6MDQKICAgIC0gKHNubXBkLmMpIEFkZGVkIHR3byBuZXcgZmxhZ3M6CiAgICAgIC1oIGZvciBoZWxwCiAgICAgIC12IGZvciB2ZXJzaW9uIGluZm9ybWF0aW9uCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6MzI6NDMKICAgIC0gKHBhcnNlLmMsIHNubXAuYykgYWRkZWQgY29uZmlnLmggdG8gdGhlIGxpc3Qgb2YgaW5jbHVkZXMuCgpoYXJkYWtlciAgNiBPY3QgOTUgMTY6NDA6MzgKICAgIC0gKHNubXBkLmMpIFVzYWdlIG9mIC0taGVscCBhbmQgLS12ZXJzaW9uIHNob3VsZCB3b3JrIG5vdy4uLiAgR05VIHN0YW5kYXJkLgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjQxOjE4CiAgICAtIChORVdTLy1UT0RPKSAtaC8tLWhlbHAsIC12Ly0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9ucwoKaGFyZGFrZXIgMTEgT2N0IDk1IDE3OjMzOjI2CiAgICAtIFRoZSBjb25maWd1cmUgc2NyaXB0IG5vdyBwcm9tcHRzIGZvciBpbXBvcnRhbnQgdmFsdWVzIHRvIGJlIHB1dCBpbgogICAgICBjb25maWcuaC4gIFNvbWUgdGhpbmdzIG5lZWQgdG8gdXNlICQocHJlZml4KSBpbnN0ZWFkIGhvd2V2ZXIuCiAgICAtIChNYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pCiAgICAgICsgbGlua2luZyB0byAuLi9zbm1wbGliL2xpYnNubXAuYSBpbnN0ZWFkIG9mIC4uL2xpYi9saWJzbm1wLmEgdG8KICAgICAgICByZW1vdmUgaW5zdGFsbCByZXF1aXJlbWVudC4KICAgICAgKyAgcHV0IC4uL2xpYi9saWJzbm1wLmEgaW4gYXBwbGljYXRpb24KCmhhcmRha2VyIDEzIE9jdCA5NSAxNTo0NToyOAogICAgLSAoc25tcGQuYykgQWRkZWQgLXAgcG9ydCB0byAtLWhlbHAgb3V0cHV0CiAgICAtIChjb25maWcpIFNldHVwIHRvIHVzZSAtLXByZWZpeCB0byBsb29rIGZvciBjb25maWcgZmlsZXMuCgpoYXJkYWtlciAxNiBPY3QgOTUgMTM6MDE6MzkKICAgIC0gKE1ha2VmaWxlcykgRmFpcmx5IGRlY2VudCAnbWFrZSBpbnN0YWxsJyBub3cgcG9zc2libGUuICBJbnN0YWxscwogICAgICBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IC0tcHJlZml4IGZvciB0aGUgLi9jb25maWd1cmUgc2NyaXB0LgogICAgLSAoZXh0ZW5zaWJsZS5jKSBjb25maWcgZmlsZSByZS1sb2NhdGlvbjogbm93IHVzZXMgdGhlIFNOTVBMSUJQQVRICiAgICAgIGRlZmluZWQgbG9vc2VseSBhcyAkKHByZWZpeCkvbGliL3NubXAvLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDE1OjAyOjAxCiAgICAtIChNYWtlZmlsZXMpIG1ha2UgaW5zdGFsbCBlY2hvcyB3aGF0IGl0cyBkb2luZyBpbiBhIG1vcmUgY2xlYXIgZmFzaGlvbgogICAgLSAoSU5TVEFMTCkgYWRkZWQgYmV0dGVyIGluc3RydWN0aW9ucyB0byB0aGUgSU5TVEFMTCBmaWxlLgogICAgLSAoUkVBRE1FKSBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCmhhcmRha2VyIDE2IE9jdCA5NSAxNjoyMTo0MwogICAgLSAoc25tcGQuYykgd2FzIHN0aWxsIGxvb2tpbmcgaW4gL2V0YyBmb3IgdHdvIC5jb25mIGZpbGVzLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDE2OjQzOjEyCiAgICAtIChhcHBzKSBhbGwgYXBwcyB3ZXJlIHN0aWxsIGxvb2tpbmcgaW4gL2V0Yy8gZm9yIC5jb25mIGZpbGVzCgpoYXJkYWtlciAxNyBPY3QgOTUgMTY6NTg6MzIKICAgIHZlcnNpb24gdGFnICggMy4wLjMgKSBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAxNyBPY3QgOTUgMTc6MDA6MjIKICAgIC0gQ2hhbmdlTG9nIHVwZGF0ZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgVjMuMC4yCgpoYXJkYWtlciAyMSBTZXAgOTUgMDk6Mjc6MTgKICAgIChzbm1wbGliL21kNS5jKSBGb3Jnb3QgdG8gaW5jbHVkZSBzeXMvdHlwZXMuaCBmb3IgdV9sb25nIGRlZmluaXRpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMQoKaGFyZGFrZXIgMjYgSnVsIDk1IDE2OjMxOjQxCiAgICAtIEFkZGVkIGEgbmV3ICNkZWZpbmU6IEVYSVRfT05fQkFEX0tMUkVBRCB0byBjb25maWcuaAogICAgICBJZiBkZWZpbmVkLCBhbmQgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHJlYWRpbmcgdGhlIGtlcm5lbCBjb250ZW50cywKICAgICAgdGhlIGFnZW50IHdpbGwgZXhpdC4gIFRoaXMgd2FzIHRoZSBkZWZhdWx0LiAgSSB3YW50ZWQgaXQgdG8KICAgICAgY29udGludWUuCiAgICAKICAgIC0gUG9ydCB0byBkZWMtYWxwaGEvT1NGIDMuMQogICAgICAtIGFscGhhJ3MgbG9uZyBpcyA4IGJ5dGVzLCBub3QgNC4KICAgICAgLSBzaG91bGQgYmUgKG1vc3RseSkgNjQgYml0IGNsZWFuIG5vdy4KICAgICAgLSBjbGVhbmVkIHVwIGEgTE9UIG9mIGJ1Z3MgQ01VIGNvZGUgaW4gdGhlIHByb2Nlc3MuCgpoYXJkYWtlciAyOCBKdWwgOTUgMTQ6MjM6NDEKICAgIFlldCBtb3JlIHByb2JsZW1zIGZpeGVkIGluIHRoZSBhbHBoYSBwb3J0LgogICAgICAtLSBtb3JlIGludCAtPiBsb25nIGNoZWNraW5nLgoKaGFyZGFrZXIgMzEgSnVsIDk1IDE2OjI3OjQ3CiAgICAtIHNubXBjaGVjayBjaGFuZ2VzOgogICAgICAtIHRlcm1pbmFsIChhc2NpaSkgYmFzZWQgc3VwcG9ydGVkIGZpeGVkLgogICAgICAgIC0gRGV0ZWN0cyBwcmVzZW5jZSBvZiBhIERJU1BMQVkgdmFyaWFibGUuCiAgICAgICAgLSBOb3cgcmVxdWlyZXMgdGhlIFRlcm06OlJlYWRrZXkgcGFja2FnZS4KICAgICAgICAtIGFza3MgdXNlcnMgd2VhdGhlciB0byBmaXggcHJvYmxlbXMKICAgICAgLSByYWlzZXMgYW5kIGRlaWNvbmlmaWVzIHdoZW4gbmV3IHByb2JsZW1zIGFyZSBmb3VuZAogICAgICAtIHNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgbmV3IHByb2JsZW1zIHRvIHBpbmtpc2gKICAgICAgLSBuZXcgcHJlZmVyZW5jZTogIHBpbmcgaG9zdD8KICAgICAgLSBnbG9iYWwga2V5IGJpbmRpbmdzOgogICAgICAgICAgY3RybC1xID0gcXVpdDsgY3RybC1oID0gaGlkZTsgY3RybC1zID0gc2VlbiBhbGwKCmhhcmRha2VyICAxIFNlcCA5NSAxMTo1Nzo1MgogICAgLSBGaXhlZCBhbHBoYSdzIGtlcm5lbCBsb29rdXBzOgogICAgICAqIENNVSBjb2RlIHdhcyBwYXNzaW5nIGludHMgaW50byBsc2VlayAobmVlZHMgbG9uZykuCgpoYXJkYWtlciAxOCBTZXAgOTUgMTY6MDk6MjUKICAgIE1pbm9yIG1vZHMgdG8gUkVBRE1FIGZpbGUuCgpoYXJkYWtlciAxOCBTZXAgOTUgMTY6MTM6NDkKICAgIE1pbm9yIGJ1ZzoKICAgICAgKHNoX2NvdW50X3Byb2NzKSBjaGVjayBpZiByZXR1cm5lZCBmaWxlIGRlc2NyaXB0b3IgPiAwIGJlZm9yZSBjb250aW51aW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAKCmhhcmRha2VyIDE2IEp1biA5NSAxMDoxMzo1MwogICAgUmVtb3ZlZCAnZ21ha2UnIC0+ICdtYWtlJyBpbiBhZ2VudC9NYWtlZmlsZQoKaGFyZGFrZXIgMTYgSnVuIDk1IDEwOjE1OjQyCiAgICBIb3VzZSBjbGVhbmluZwogICAgICAtIENvbXBpbGVzIGNsZWFubHkgb24gaHB1eC9nY2MKICAgIAkoZXhjZXB0IG9uZSBpbmNsdWRlIGZpbGUgZXJyb3IgSSBkb24ndCBoYXZlIGNvbnRyb2wgb3Zlci4pCiAgICAgIC0gQ2hhbmdlIFZFUlNJT05fSUQgLT4gVkVSU0lPTklEIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIEhQJ3MgaW5jbHVkZXMuCgpoYXJkYWtlciAxNiBKdW4gOTUgMTQ6MTM6NTMKICAgIEhvdXNlIENsZWFuaW5nOgogICAgICBUb29rIG91dCBnY2MvYW5zaSByZXF1aXJlbWVudCBmb3IgdGhlIGFnZW50LgogICAgICBwZXJyb3IoKSBpcyBjYWxsZWQgbW9yZSBmcmVxdWVudGx5IGZvciBsb2cgYXJjaGl2YWwKICAgIAogICAgTmV3IEJ1Zy9IYXZlbid0IHNvbHZlZDoKICAgICAgSFAtVVg6ICBpZiBhZ2VudC8qLmMgYW5kIGFnZW50L2V4dGVuc2libGUvKi5jIGFyZSBidWlsdCB3aXRoIGdjYywKICAgIAkgIERpc3BsYXlTdHJpbmdzIHJldHVybiBnYXJiYWdlLiAgTm8gY2x1ZSBhcyB0byB3aHkuCgpoYXJkYWtlciAxNiBKdW4gOTUgMTQ6MjA6NDgKICAgIEhvdXNlIENsZWFuaW5nOgogICAgICBNaXNzZWQgYSBWRVJTSU9OX0lECgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTE6MjcKICAgIENoYW5nZWQgYW5vdGhlciAiZW1wdHkiIGVycm9yIG1lc3NhZ2UgaW4gdGhlIENNVSBjb2RlIHRvIGEgcmVhbCB3YXJuaW5nLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE1OjMxCiAgICBCdWcgRml4OgogICAgICBTdG9wcGVkIHJldHVybmluZyBhIHBvaW50ZXIgdG8gYSBub24tc3RhdGljIGNoYXIgYXJyYXkuLi4gICgtPiBzdGF0aWMgY2hhcikKICAgICAgUGFzc2luZyB3cm9uZyBwb2ludGVyIHRvIHNldGVycm9yc3RhdHVzKCkgaW4gc2V0UGVycm9yc3RhdHVzKCkKICAgIAogICAgRmVhdHVyZToKICAgICAgQWRkZWQgYSBzZXRhYmxlIG1pYiBlbnRyeSB0byB0aGUgdmVyc2lvbiBtaWIgdG8gcmUtcmVhZCB0aGUgY29uZmlnIGZpbGUocykuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTg6MzcKICAgIGVjZS1taWIuZGVmOgogICAgQnVnIEZpeDoKICAgICAgTG9hZGF2ZSBtaWI6ICBJbnRlZ2VyIC0+IERpc3BsYXlTdHJpbmcKICAgICAgdmVyc2lvbkNsZWFyQ2FjaGU6ICAtPiByZWFkLXdyaXRlICh3YXMgcmVhZC1vbmx5KQogICAgCiAgICBGZWF0dXJlOgogICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxOToxNwogICAgQ2hhbmdlZCBkZWZhdWx0IENDIHRvIGNjIGFnYWluLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjIwOjIzCiAgICBzbm1wbGliOgogICAgICBCdWcgZml4OiAgZmRzZXQgLT4gKGludCAqKSBmZHNldCBpbiBzZWxlY3QgY2FsbC4KCmhhcmRha2VyIDEwIEp1bCA5NSAxMToyNzowMAogICAgVHdvIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uczoKICAgICAgLWwgTE9HRklMRSAgICAgICBPdXRwdXRzIHN0ZGVyci9vdXQgdG8gTE9HRklMRSAob3ZlcnJpZGVzIGNvbmZpZy5oIGRlZikKICAgICAgLUwgICAgICAgICAgICAgICBEbyBOT1Qgd3JpdGUgdG8gYSBsb2cgZmlsZSAob3ZlcnJpZGVzIGNvbmZpZy5oKQoKaGFyZGFrZXIgMTAgSnVsIDk1IDEyOjI5OjMyCiAgICAtIE1vcmUgcGVycm9yKClzIGNvbnZlcnRlZCB0byBzZXQgdGhlIHNubXAgZXJyb3Igc3RhdHVzIGZsYWcgb24gdGhlIGFnZW50LgogICAgLSBlcnJvciBzdGF0dXMgZmxhZyBpcyBub3cgcHJpb3JpdGl6ZWQuICBwZXJyb3JzIGdldCB0aGUgaGlnaGVzdCBzbwogICAgICBvdGhlciBlcnJvcnMgd29uJ3Qgb3ZlcnJpZGUgdGhlbSBpZiB0aGV5IGhhcHBlbiBhdCBhIGxhdGVyIHRpbWUuCiAgICAtIEFkZGVkIHRoZSBiZWdpbm5pbmdzIG9mIGEgcmVzdGFydCBtaWIgdG8gdGhlIHZlcnNpb24gbWliIG9mIHRoZQogICAgICBhZ2VudC4gIFNldHRpbmcgdGhpcyB3cml0YWJsZSBtaWIgdG8gb25lIHdpbGwgY2F1c2UgaXQgdG8gZXhlYwogICAgICBpdHNlbGYgYWdhaW4gKGZvciByZW1vdGUgcmVzdGFydC91cGRhdGVzKS4KCmhhcmRha2VyIDEwIEp1bCA5NSAxMjozMDoxOQogICAgTWlub3IgY29tbWVudCBjaGFuZ2UgaW4gY29uZmlnLmgKCmhhcmRha2VyIDE0IEp1bCA5NSAxNToxMjo0MAogICAgLSBGaW5pc2hlZCB0aGUgcmVzdGFydCBtaWIuICBUaGlzIGlzIGEgc2V0YWJsZSBzdWItbWliIG9mIHRoZSB2ZXJzaW9uCiAgICAgIG1pYiwgZGVmYXVsdCB0byBWRVJTSU9OLjEyKC4xKS4gIElmIHNubXAtc2V0IHRvICcxJywgaXQgd2lsbCByZXN0YXJ0CiAgICAgIHRoZSBhZ2VudC4KICAgIAogICAgICAqICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgaXMgdGhhdCBpdCByZXN0YXJ0cyAzIHRpbWVzIG9yIHNvLCBzaW5jZSBpdAogICAgICAgICBuZXZlciByZXR1cm5zIGEgcmVzcG9uY2UgdG8gdGhlIHByb2dyYW0gZ2VuZXJhdGluZyB0aGUgcmVxdWVzdC4KICAgICAgICAgSWYgc2FpZCBwcm9ncmFtIHRyaWVzIHRvIHJlc2VuZCB0aGUgcmVxdWVzdCAod2hpY2ggbW9zdCBkbyksIGl0CiAgICAgICAgIHdpbGwgQUdBSU4gcmVzdGFydCB0aGUgYWdlbnQuLi4gIG9oIHdlbGwuCgpoYXJkYWtlciAxNCBKdWwgOTUgMTU6MTU6MzEKICAgIC0gc25tcGNoZWNrICh0ay1wZXJsLWI0IHNjcmlwdCkgaXMgcHJldHR5IHN0YWJsZSBhdCB0aGlzIHBvaW50LiAgSQogICAgICBsb3N0IGN1cnNlcyBzdXBwb3J0LCBhbmQgbmVlZCB0byByZS1hZGQgaXQgc3RpbGwsIHNvIGl0IGlzIHN0aWxsCiAgICAgIGJldGEuICBJdCBkb2VzIGV4cGVjdCBhIGxvZyBmaWxlIG9mIHByb2JsZW1zIHRvIGV4aXN0IChwb2ludCBpdCB0bwogICAgICAvZGV2L251bGwpLCBhbmQgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb25zIG9mIHRoZSBtaWJzIHRvIGNoZWNrCiAgICAgICh3aGljaCBhcmVuJ3QgY29uZmlndXJlZCBieSAnbWFrZScpLCBzbyBpdCBuZWVkcyBzb21lIHdvcmsuCiAgICAgIEhvd2V2ZXIsIGl0IHdpbGwgcXVlcnkgYW4gYWdlbnQsIGNoZWNrIGl0cyBwcm9ibGVtcyBiYXNlZCBvbiB0aGUKICAgICAgc3RhdHVzIG9mIHRoZSBlcnJvciBmbGFnIChvciByZXR1cm4gY29kZSkgYmVpbmcgPjEgYW5kIHJlcG9ydCB0aGVtCiAgICAgIHdpdGggbmVhdCBHVUktYnV0dG9ucyBhbmQgc3R1ZmYgKG9oIHdvdykuICBObyBkb2N1bWVudGF0aW9uIG9uIGl0IHRob3VnaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXMgc2luY2UgMy0wQTE6CgpoYXJkYWtlciAgMiBKdW4gOTUgMTY6MjM6NDYKICAgIC0gdmVyc2lvbiB1cGRhdGUKCmhhcmRha2VyICA1IEp1biA5NSAxMjo0NDo0NgogICAgLSBhZ2VudC9leHRlbnNpYmxlL01ha2VmaWxlOgogICAgICAgIC0tICBubyBsb25nZXIgcmVxdWlyZXMgR05VIG1ha2UKICAgICAgICAtLSAgZXRhZ3Mgbm8gbG9uZ2VyIHJ1biBieSBkZWZhdWx0CiAgICAKICAgIC0gU3VuT1MgYWRkaXRpb25zOgogICAgICAgIC0tIGxvYWRhdmVyYWdlIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgICAgICAgLS0gZGlzayBjaGVja2luZyBNSUIgZW5hYmxlZAoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIxOjA3CiAgICAtIEFkZGVkIGEgU05NUEJMT0NLIG9wdGlvbiB0byB0aGUgY29uZmlnLmggZmlsZS4gIFN1cHBvc2VkaWx5IHNldHRpbmcKICAgICAgdGhpcyB0byB6ZXJvIChub3cgdGhlIGRlZmF1bHQpIHdpbGwgYWxsb3cgc25tcCByZXF1ZXN0cyB0byB0aW1lIG91dC4KICAgICAgSGF2ZW4ndCB0ZXN0ZWQgaXQgdGhyb3VnaGx5LgogICAgICAgIC0tIENvbnRyaWJ1dGVkIGJ5IFNhbmphaSBOYXJhaW4gPG5hcmFpbkB0aHVtcGVyLmJlbGxjb3JlLmNvbT4KCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMTo1MQogICAgLSBDb3JyZWN0bHkgb3JkZXJlZCB0aGUgbWliIHRhYmxlIGxpc3QuCiAgICAgIC0tICBOZWVkIHRvIHdyaXRlIGEgZHluYW1pYyBjaGVja2VyL3JlLW9yZGVyZXIuCgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjM6MzUKICAgIC0gQ29ycmVjdCB1c2FnZSBmb3Igc25tcHdhbGsgaXMgbm93IHBvc3NpYmxlLiAgSUUsIHNubXB3YWxrIHRhcmdldAogICAgICAuMS4zLjYuMSB3aWxsIG5vdyBicm93c2UgdGhlIGVudGlyZSB0cmVlLgogICAgICAtLSBTdGlsbCBmYWlscyBvbiByZWxvY2F0YWJsZSBleHRlbnNpYmxlIG1pYnMgYW5kIHdpbGwgdW50aWwgSQogICAgICAgICB3cml0ZSBhIGR5bmFtaWMgdHJlZSBidWlsZGVyLgoKaGFyZGFrZXIgIDkgSnVuIDk1IDE0OjA4OjE1CiAgICAtIENoYW5nZWQgdGVzdCAteCB0byB0ZXN0IC1mIGluIHNubXBsaWIvTWFrZWZpbGUuICBOb3QgYWxsIE9TZXMKICAgICAgKGllIHVsdHJpeCkgaGFuZGxlIHRoaXMuCgpoYXJkYWtlciAxMiBKdW4gOTUgMTA6MzU6MzgKICAgIC0gbG9jYWwvdHJhcG5vdGlmOgogICAgICAtLSB1c2VzIHNubXB2MiBub3cgKGNvcnJlY3RseSkKCmhhcmRha2VyIDEyIEp1biA5NSAxMDozNzo0NgogICAgLSBSZXBvcnRzIGFsbCBlcnJvcnMgdGhyb3VnaCB0aGUgZXJyb3IgbWliIG5vdyBpbnN0ZWFkIG9mIHRocm91Z2ggcGVycm9yKCkuCiAgICAtIENsZWFuZWQgdXAgZXJyb3IgaGFuZGxpbmcuICBTaG91bGRuJ3QgaGFuZGxlIGVycm9ycyBuaWNlbHkgaWYgc3lzdGVtCiAgICAgIGVycm9ycyBvY2N1ciB3aGVuIHNjYW5uaW5nIGFuIGV4dGVuc2libGUgbWliLgoKaGFyZGFrZXIgMTQgSnVuIDk1IDExOjI0OjIwCiAgICBhZ2VudDoKICAgIC0gTWliIHRhYmxlIGlzIG5vdyBxc29ydGVkIGF0IHJ1biB0aW1lIGFuZCB0aGUgZXh0ZW5zaWJsZSB2YXJpYWJsZXMgYXJlCiAgICAgIHNvcnRlZCBpbiBhdCB0aGlzIHRpbWUuICBUaGlzIGJyaW5ncyB0aGUgYWdlbnQgdXAgdG8gY29ycmVjdAogICAgICBTTk1Qd2Fsay9nZXRuZXh0IHByb3RvY29scy4gIFlvdSBjYW4gbm93IHdhbGsgdGhlIGVudGlyZSB0cmVlCiAgICAgIGluY2x1ZGluZyB0aGUgZXh0ZW5zaWJsZSBzZWN0aW9ucyBhbmQgaXQgd29uJ3Qgc3RvcC4KICAgICAgKiBUaGlzIGhhcyBhbiBhZGRlZCBib251cyBvZiBjaGVja2luZyB0aGUgbWliIHRhYmxlCiAgICAgICAgKGFnZW50L3NubXBfdmFycy5jKSBmb3IgY29ycmVjdCBvcmRlci4gIEkgaGF2ZSBhZGRlZCB0aGluZ3MgdG8gdGhlCiAgICAgICAgd3JvbmcgbG9jYXRpb24gdG9vIG1hbnkgdGltZXMgYW5kIGNhdXNlZCB0aGUgYWdlbnQgdG8gZnVuY3Rpb24KICAgICAgICBpbmNvcnJlY3RseS4gIE1ham9yIHdpbi4KCmhhcmRha2VyIDE0IEp1biA5NSAxMjo1Njo0OQogICAgLSBDbGVhbmVkIHVwL0FkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byBjb25maWcuaAogICAgLSBHTE9CQUxTRUNVUklUWSBub3cgdXNlcyB0aGUgbGVmdCBtb3N0IGZvdXIgYml0cyBpbiB0aGUgTUlCIGFjbC4KICAgICAgVGhpcyBpcyBtb3JlIGNvbXBhdGlibGUgd2l0aCB0aGUgQ01VIGNvZGUgdGhhbiB1c2luZyB0aGUgbGVmdCBtb3N0CiAgICAgIDIsIHdoaWNoIHdhcyBkb25lIHByZXZpb3VzbHkuCgoKaGFyZGFrZXIgMTQgSnVuIDk1IDEzOjQzOjM4CiAgICAtIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbiB0byB0aGUgUkVBRE1FIGZpbGUuCiAgICAtIENyZWF0ZWQgYSBtYWlsaW5nIGxpc3QgdG8gaGFuZGxlIGFubm91bmNlbWVudHMKICAgICAgKHVjZC1zbm1wLWFubm91bmNlQHVjZC1zbm1wLnVjZGF2aXMuZWR1KQoKCiMgZ2VuZXJhdGVkIHVzaW5nOgojICBjdnMyY2wgLWIgLXIgLWYgQ2hhbmdlTG9nLmFkZCAtRiBWNC0yLXBhdGNoZXMgLS1uby13cmFwIC1TCiMgIHBlcmwgZGlzdC9jaGFuZ2Vsb2dmaXggPCBDaGFuZ2VMb2cuYWRkID4gQ2hhbmdlTG9nLnJlYWxseWFkZAo=